Pi Accurate to 1,250,000 digits!

It's exactly 1,262,625 digits actually!
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170676477066139249645166758456255035775273135340816023406004177088623389379264433197807035888301859167875326935965393505044460396228274066621637529512876815901937310326343615025500110501032191969831096024658608490454291827494322188601923499678326117414705246206739074674582028298852419870608379911323217561097628748389848843296128604482094880937411037453919636355761851253913916681958850199109749553517875698949406124721847624756264753674515874314388332266895529483003089170031337062245087676879982544214507897261071527851811756206998421971471883777559044409231520548234909630072783130300179120955829788058140175192359388995343010508477032009023923444097983265523603412415432843836142981962010196916503301651009515291994124000609680917003262170186989181343834396736884537995381900900530674440374785427472072420342807324301835535230752563490934038133934892400079917125123045161126949024005904282267847599961335625157959565119755610549593373117815752916432451517773312768358948714236454914180797831091917259030109540301774347237599919459017458412038445299561942067094952526522740476429090138146443970036027591133072016830916259020193997694449757476357217457432202078249657278813880822085307679156628828218818392069135305596652941565043881941886560932367633875946064753699505806844822908554316658150166830415480686034770541910043170196241805748226998192603247967266230174928548531776006067285831875065942142936361035556669795787788540580803842070260538431765990403206391134128793701029695747190034342220066091796132167095418521261785319818211859533972142955375835551104763338350383285954281801550971829843200073659289621682369607745852024617799870781336058029854736354385484413289448543281870115423109051511576232927197417511588798166876084848884557209827870284160400684139558572888796350938633582591798684480258053589900195412203545512927026639996083797756362440935617735975842720173319370227146535499977364346991281272208634303433419078058929292896992571405356637837827438324666836929178995587744781607148493249144749368367228951501161459777512427685813431504082450955705500912866151131373223386860546640218482264957265652634719653873798730584647762832685302482759313953741036940736472196095867186443048573162590204489204133484482347400150133195836052310278305250411551571327118532123323460046278077432459621265731159574177676396859679673374922570264927886978740686672474347876062646948172151162371060369191906411883703510489112787265317031599892095938018211840630787796810238746557411858594164342824268081980708089047442729489877645749932860905041070122271098267430426884796987526805803356697675898255172944407688033135567206876934446563712749770705564151786482411872905157778996121838962845185323754913338167652155148344462292631433162048273770948903951258958832133412702365611028541622326914469984725690006222526636818579241876360716060734331968741710910838938376160333223449539153572875761760068094949863844396073249971195845435526216421622947103648586622647883675706755253392879767237088561479129209789968522843229148446089182318437122380828003349301896097133854736070762171031479364678974103485294755927274445313321536035717963459492108832476376127863405259049706063013818243934217245968581427321334643242655289778163619560623732225544447873641284871900883379871259932713993785436889332033627443274913430197650470800933933297407784802169018068199073989913096267632938870079439815663256439437102971128435600180502587865524592977160671650466235070635275014583059821431779480618183837822630702343258595454555795028343964892717473332668946009091619218356608819316932516731166242328433710357092577407019571223759328879972815961839726004029678816286219836226009534215912052658036795376798119587796211433742178468277238853071694388016133172695434026614550936679309559222118694221043172887569124265342244167003112230372747546463646286098048312294251284034951070435637887311145911939212362683905788722807656717428715552612485350473786233624021563094549042544873954025124628948777549640797095123510846717081158717341075209009934297067642397137171220978202081995645573743849652284854377906544953739641582076451754322928282299699824207108960901959398984951716614448856590247763293422693997366505935074222257386397815383502310521317015766881865212324177149106837633817217517346993494501269014483286000246785667177600642739830303244996616273419364296493126632905642033540373428803694930420201777749615276371873842135843154303354451866020705632181656156750301732380562076648565612559899227747817824103183597252024281653724035082710249994643479692839223922314159195701770858813834530411374522490777124828862210754017965434352657951950024390049784487591824379867964756602219638170296470466927085295354495578095207576421711263622731630444810965223673747857900986396449747796659627878645241069116194752697611621936804941764874400722788057216066746021798507816339838270757740635487703272128789570164601410684559158484159115677455077303421834927971621197625043086858336070253926742692335150838222470178609841678128869074231867205645549076066076107422999579984488158059084837004936813055219960556761418607058004359531254010741472568171847568142412390285113347718968319714967014303890378063000845886091951511438335149759720659570798214833181143816498525991681021823275513742383639183698393892263676567079492173234513229543442946840804004050463862022087665547424004668838333074776825290385570305561981036611370696483687941246204169589782070911167484364333358616799469511045319080182161909980283748609938638509943919967317270160751218408568070945801958056766152212062183761811817660959757848762659035450578786944951196811677600916880704581996785742784671091826414796028770329647919944746664716541275649627920859587195347520685680499777647881834253982180715166677293717450899138281201864311685691076441928592254953030774800714728578810015312741375720543780424309780071993412359640438769737447950140862021263535458076804557724054030481034903681465382297708898049672262538622718472793685192637481234256821510369078057951155391406765684255953080189243290076119943898098561479825353015412834562265501172077116872100972124565146430935308605069604279799985993471627755451761617907973324851492285627737831437509190035505252420433709265516021503664705462503310573482968205984730728682426441680956086272555042495785602366802458096645550767216458342106262351702168406821876333058998343749171339554188806181288184231388572439709390263683024022635335534803374456123348773762276653906362105865486184150706414198301777599940820862573253634965403673686322790533799459253144885359222822310572198793638200516516471559537319240013547144224983628825999352403602413980992343908289037125136627448158664906357943115759848070683875606286457005018468180562749335647593516613454062951075044653230639222131048985047311868082787800153732162852862918391698642548867889060138748843528555695356504253953965466434629343039365285121958112228202050181610902618348632182230885802819648111257363900815351082898007256463073986516059851144411325722483394800448742226713246623001026730270746431306617381051381131802801155165400108543359487722163240000435491775754688182710470008597844134152454221126498912938751025424572924292330419575041360964307229440355753972632086451305685277705859461925149395815939259750007420543183763534682108349609632552993649774787323580930162038542130702706525940027021267501797555899160477303031261016639216480830345218743249506845549433982350507855218598681147016884044782175796269354321614488928848795855072984295652608151167512935137452564866770263265875523134715067472268962116566826767161781481858448589441485922537745849186880487092362723923319696152477797793039941340628755896987897645281218306673921758879734159792063608095661256014644458375719259026880789588622221738088024195506600168884486551300209295645327783748949908866852061191941610014860651037992819046105749427642698206390256686773825901038841694043356576911291069132351599723997082299776602971285139931056943469923964773202901518635775858530985438211294361878735129931835101658060373720780238090234549739767862590262750039964198020799129420988758502541441319965484257445360370561634128175998088225986603656909725971824336224664038706487402871342695358963119543649598137406645932306713577947211668057002793872839286340903914767921731217104672304847875757036179604026850321558398787533479346223823808074005159945525218330982088822338924498506110414578484256447811918204086322059383165917432086506307005638283135649815756371804348066793669234832561750628664845534208358278388578470563452965482126942451161128472836381704990985710048051149611278847411406499042989874114723826906967384175888467659364754018854384489616976318208387879870671462769033998464293846463065293563992616531143543424855386002827746952900427567714166907806109878681460602384505476933299565593014302965106161688366995730783921201404342713402049726336785232745600740492707847574832102294636866194930580142842929359010534055153838027819296745025829614066964269457379825843040091320259237228606212581503944669721460008369309845361899855296484930854361875489700581404445289744646984189493251264104605868118027307643495669916340076214747374712335553869487197056841613770631895290453337631418589769463102522021593718277001142837124662280354480470470668150649611340829830473342190681239728601640312287463940485674628247570014070594391007485067547443913859217395511231555713508217869711974109609214189843510324437168422397147827230548003665737542188313481966722403444162906029142977715887422370377079039340297803083815867837414135063496734796994418769139957429927672302346061463651337818063133808188212255576886857231677083974391722811995244631865606852049170887833970950934365900565394927661228148515082162395105369816120375291073757418010283357090297749541655446233242576525946677115508984451251984359942020081534468984684255167244168185808793250448669269121842360278663418212059515479311584847273261753211440811686987396624997899000253694627195949620789847842931002874351910991797794915926822598306886147176809880638976972571882900242655276972684618221369859652410696236326628629274461283393042672660033527649705735595573429272487987412580009644889017263379989776567524315788577672106623635650913700866925364358382643559050330321575529165299226302005811713694467882956086368761728338453135542908632201611662912057641881981711719576809101353585193122040208693221679873197798532813696831029244883953961443341503338722010878950684701064578697087299917220235909659485100774793390157810979178169470805590318409697719100222875128705505622631594780894278707013037907526593288893750814103873987964048514179483321019574052402725994596096360026714063100251227116014137931129147202393992044450508205900636611992097413147623980772005706994487874468499649647051400913218929625438979239321896585384310634795613889280419545290271849414268121903116251173607986986286331746176480109066770614693421243575332097455236322645369730332912512504041270759167716705145980234204267591082156830529865197561606195541675773884849582700293063576691778593335763215105593056851727182245477001319017162034932208837371054340011417938138653188715861622346555961065700013860851408232675842120384672632408172456118897617783946596017004451109974994641684159743362706817843559196732593365570501906273468513771146607962972833007326725731196741963856390698505365255031107076491843995434640547046934616926487150989719615101155507955261947025991730405461459205775163990955056533521485463520690415972300905270391173880718499284662491360901575083570949985735339352079754119072558126693529495098276279684080296468316345376444118613794780742002256877266413994963879919105087030822901049327349874320700169678339865800550297716168138950155354279575147936681173212644194245883362922377631411938963103509031826665628987966578063304279954384350166591760613563961908790416184700695068614731387258162271038344260058185115062101677588961488419740315150545934376455608242260048737642841093937057824457446133409671740306503798093843462121665298537093909939807847304895493040430318401520982263468348356544887733903670721210998031646850106182687483411751630372483632870892377394074161935685945071623368711402928885065692820269675667962285830552621861449555720166444789315414259578721320141346087871292044392081275075284000071601664643599250103134837095091122376464088886249361820361657302632025504427313035409250022147153471015965493215566232984951482578336916273921523494193487189037274785796118189762106159765750949341884280923451507503043088504996286549791323447772683625130819279586961435768232360173702843208889221381919920261852755844309559878035948139608837575056444334303173166937586779607221967542932597208529900247215541899756687249827406762527026009258709648761903248082885565169020906468481298037195494805664198125785000946140532346621440124201830080247182986531647597254664579115351102262041856338568112029392164356945548542378674660121887330524275825301688395625622372345664967192771670479014029199919214819313157027521805807748001558966372795713866332776542087040146296542998213635926815741673649319911074494486503220137265355741718856151597571551668172892830879723150325942303741592291255167019414855133367992141331565193979861288475325178665746074112656816693123660359358169398575784400607873300462368112503326585202980889001653649523402206403300199935234577869198516549517771057983723929537455478857983841164764186653817443473051625498777689773684690002366109927336677790449947012367468580753314573159951786225294928058506871875825356586234749959105394219480986546421777879704371619281509628098550310753468649416009826973738921792524874657484458803885471443075729034964134185379351730939813085999988346692459890791489232263493432142050063824899816807598247331696250048448070470305938682226454264772632609581729065285224789225841503419833159163960565972746501029418143614366317899112104096073561621346523879822045735728428682932187355329506397695118096964366070633166022016458352603827862500811257000167928436194865190348609172696677674134995995474840673826364520077559649658473985971092219593326562270463579219235699031543982410826147571595541458818981519236388540761793285714649786291198727625782443500097298519793518055901903334738170387362990229853571943627169459651548977998214919603570494238339170278525974887800657017276423040858916958807409677196635284380023990231001867026169107219154897223077274250245326543547259096832744086047760518302233407894531517999773457397780931273578333618818845152498839840850120684816293649284907517085500202241461729078506863374686821634043155928570130711379543715095077856711461677830469627411921888747208824631244883946710234948454935609029167977368167714246034526484405928791832522530303385048872506878582237652684311538610763720954352199858846416860374267713763673663125501135507934401103523688647417904376930544752626644092766691121554360299060589798655959331353311730964438655340131042874544298937719180063835715041234447448191785385011434556116630272158378331718974368667258239958838245569514250678029309287168862361740517908099602904120803788930457389558213694119278465605247083796989268666019164382703568472785838628832927565366462708196704631714427214548314898300111953269797312287804233129973981048130066147558535938842774022774177763477291532901110875321933461023042222262524542202423609065528096534306512570760126027551159904093926654272462200612901243797711511973369284636192125882403783575023890062509294262273842564338080058383079631258410658900754353640951066415415243442908185885137143650759289617230122928384669475079947244441865954249690081237411746175667317115261998249168358624865399703791324053969194838366029580659763410145591571713451519120607688285050178495790584401972333242570000421084142960118551253076618717751748830569916133893786641707186334557608648804247827339213794358078295244727707607916075753670493666853232904824714274897703043009433609479147817837936380837249426595476339621237785240454243441704153187634048801689388050617536801767130404088036539074128875419234118610304321641632468947821133045423613761164853855261273645081784649530928141156937461046188114687768342218398473304593082219504411429216803235910069657124361947218259682854571800316771301759312588881991918240425809671781130531370918693194554183870102076881912638622785491060327366947187452827107646774880868568546882260656028965595690645022849188348270346188671131696984784098755692678240417245843514522679262061715144106905479378668535452248843507477645435887947026016759748015807930159251751492281502547591199215694192700116973909169318396039062043721181828957280087075059124331696866074878080247369423589310834265546228192259400571247854566855149090874000523592625909936192044139220862661118088478381823472851399562177473343039476327472880193613429528756909622110132631592078751119904264304453837470380875936308652043226891564128049242658070154163159121690871148885261085033978546087346274666070275998702830055120347388291116814660227299974753527854863475148828216528112402112053958306798329380427346603072588376116856508016556069159658847700008377872110751776326446902843073835580256532048027507077089333642665997796147328196835019959481104980824683272329671600941892957136011048181219334370919885017165713852401214501009857837468450138473478041718819615571959571365245162214836165097998724646588797454259900042687942313544577428022696334724584318632637520368990926783579109649327715284122251323096689034001344559955085129369643841685377111000527712088146512268827184212779489931529078911498671895025687719699894251725475605254579119319389296982194409127751766446672744435701308702183730358673394749918733348763494277218736857953129793365579032097868183499889185705085725152897427879504536129437927179008491071468124245473695638897224374400414814402241616990822713406325335519974322857000287555503311495877257357273035615196721881734436943376093411084027972692098692584056617273642635844622778877422934489537935811755347889721532507314897100151931256889417039484574537231677409167807746997213055513764409624979699023581500249064600986583625796033710587278671802316289733038134208112920202490561744268195313828655851542880484160765075134221663416961799767855577757076321640811975652432947834072152481308304553188839445163382697258833319883690903429335223356263725382948838821561585444273502071211229381100166058168395714878923092477143939461163078821907320914851485306832839887960131487630108583165960134865615423759830457768928401522583001362339710064713438880058274660913333366067130270060589507410015185701747058074104749183829745884928951075046081753472718857857320748240221010994485071285902129736526204326994904079536409711640919983856321214438352908095326540910303439993503342038599896678970149534080717703156086404229154687412712257058532594244656287389095897460421063164608745027337705768125583736986580509299979792233472694557498897648619202155762263325985292055795629629651620006957082958218054038967256738456095821843487716580462672248729495941822423835095468597465191715005137026650396705596913367317623236268758428993144598075744954495552487865438172118390590243584473608209911137935348640893039124921056823795816794901651756895621360644137285347027006482285959635524263267923297585615595611433115263050087225276470536184429096872059102331836494373836606446081740217528086317546448215504789744494565686871559913618484126657578632751419824395083691660779800209664627082373692429485855370347136903378915171421559040162090452294016765082976408345914634590462485702455227335615973816494949580295565476138442806461140395468096228364021155924555361640095623249454536823070492012626002801902024193608272982038920576089040291467520065129641138349884520519495111698395564567234619643073116099794891466942395612393409726350122276725130584108860199677834719521395637215264715184685696867454311837474509371559931592653690060564949977318392755998539295934442321629659738476764154845922640432927537073759601159308316189335956658038505332845063266105748758597249933804327221439001719226256693926484003047904670993560288742359794607854130186781003352370613626520782406687209435707385580187468465992385960068599979758592853475646509019145254711307083551838146828093384678351881817727826278552420222752758689740483606962059249626120611293505132107569963351204380401918296936642080037889121794019371354077300182688534515222288623936213797143156323497743628166512463105426652822188391067019576913795296204781131943741064256958074311554600647843734015642692164027149958000095441424962711644604561628883270199711939370269392891242402409926436626633532533038723444925947575093798986129972004114137133913756342372942874462135618640731694556941183611265946648993074061467612026797135517283257358927326856251753411776188296167251605896021489022137680651921641430321164910920742046432353221549193403378954418913051980806270245141274193209995370547749169969164123062911543878863857929396559149375578983906415517759562684969786759210992482964509260374826586095490265563275420738903655855081568413629660281538717152501412279536319621641797818590786590391326121156395747790693058023989758722597225935616476002764556848306700757969758952732042936864822018728590326152707749064816591760304349019086579389871250665910927956204059717240033792978307229898263910767195688834846679982210566991817041963053057185317954639686013043036979185339293095673684461148637176222529783600251456213554821302007534660884509724914374832107739441183797659356836568778238589951083284989621769008014350906168232352618980767789964960783279013132448002356414754230728019894564866836594333726270503842867923684785157478532618526392360130918056127195003354510220937053183835623116336396010074916824675863026623508233699855249781894646125091524684394231083289865898752590780975950777223040701715337937485281368390998512835687863375679623434386600118934690174574863303336076892604490923504072242962858506533427477631419862836562745607695224797230269355774787583152114082764818462648837431474329244931761326699815365020690427685240368477860827396187165340241919223400544860809845691613285323630648583603596563123267762667457148033111046351906236272055189661548918639049100887621638181991482721088427764320098201656113147714703725556102622490300753256146838940110594571896781545128850185575021478352918351828467963831458822172469412242231299154848525372239664312355499188206672170362769109610506150419270542859074040048550701993221300557368748717854411470607605395572724482083538978760208468705447561857999070663870413408824207409511588105813741428696413533831640652271495542057646852664732487251743462911282043526340495346426194858741792972592740967965026768860732165597112246577191065508529529601122488421419899411686976084882889127203688638981820707003580953611073590577588925837496827870501876884695727688741179564450821815120239665480280167296653472118393992516740438872567734653209912457913526191127308562237972821698500563286796019442671559455054255788206724990824322639781938660977697555222863467543196891031373689206412435433815430224676258023273901108413921830463177152022200645586375946736651883911844633347654314970563569789968548264385282690032078077242717884343375918910160623306545323137558047361952106338026700871363821556344963498486331861506766561600014785424988943534960645344358442335223637070150242998414294682669761768287753523790134560914536886210759444766698866726051396385607925093251282742032092355786378096847717223370972617183430307951582559482239134722915099876703725842901416572796767976679520540139943030700763278067291437930740886597379900458879109409923891666682378206704936853277257714500977773460426930524764127215407167828473216735032241193551522515398953722158701735154663351478665402104337687426501577671167137607210436182457627309469983178426636966201736934723008276290355768119734177435666630647555596708291100340651297585529540935330287852589304587980208780978371257327397990911052728656104215162133505776219261413828466730621353809291758896264810056604093672281460386246718614358409912932465981390074221013934776594746398228614383636526545597752511937313000281385152436061535459394258462642046553942881336877013740042032290750325960877282674662929542538305274491376513283653044684833872183835043785230051318556793929641879277499910198883807321283704652733928944287612868564976844435359804041165942213821360762893282819465851295095827713480420531959126947646133053465437330931064867930370903924753293070551211271495951143099147150839191191530604604865963107020581381073868983492473503326840826041522234194164964499009384878478240521442319660552805320107443121751751285293183832433655149347514020008006386659493648447128081618514023212535550438901500974251990274044503718841845491894610993660603036079347858858456363628872489270968492155556300884641781929939860572241519575807642376314807628860538915982532151798834700358191994730872168716842730349081674260978039106443269738295147338990178907686602209178990814422711817716358809634107826000012546462453947019931337119609391551009083074229145966089013937936803360760894528323790665537954927536162015409441773872048887177773124043312128549696192169052824437773071022240207101339214149323746659619151849603490095190319057623888368692417052045299256360004428148648378220118497040484960416443677255161513689294930886823080394638260357547690332800244109380370152290234823449473735726241900851018582803985143010646570725496891361408369565988651250863378636200136469720135498440827415228585881999651139428521085891175437192823739986668556206341908965436115715669596146882470907071719055428440769622376774983942919030602764880729197809422760391233159972198894131507914634996579675403934222533002580428167451398074075599373196392264801382816978081726809792404222258490750644787399981563540231475818054926396661358351662759770020871363826694216954953935662227366424004068410866163275424548128828457613672238505993496164167933739380280307148452508072563505083061341842871194094537424402216866722062350438437910763261309512277447831263588303665940566330409338904568016430290048554098686370898274610593604186442277610573570165168319708876293642712436531935670155687674258470453344442360164560278419140763326381356176438930106737060929325773857703168966836009481876844112074003243835833584132592625857211344522076524496758499373980489086058884931856356352634427361148388254275857440715551892251350458135195243308897101214658344976821121492179189272579490861880788565339674386401049586139459099973936602796129169683121053396012130892905198588862937676319425645444478556652295936072428518361645889952587266813372865651861312772941863924668681750186293096795521345985904964664335054890510974828530960414890056935725557128104915168025728163602619028534697686370663173402619423524472342480438836626617560333562167454976320908625861833805500402389451452672863095552796591001169828227440306593347047362359725385152486229573334000172161644928288409597841004796024684706551820691861842880486213578966528903360013367217668620055377635436517817859877028288852444399249305704811326812498576955745673940975181876122613533994685226832806083483640523194908043587804171163709442256255582953561831704822802005490554729664407146513975938126208361743169076734867724424445574062504309235085394136121519935693132094909195302475768461833343148997396993363435324198413116899954546830934078890838808532787967120837100971832139454815127236691071833514582128058029105417467095510807805816591017725656730016033387974836264858913747250644413194570970531898363992211958483633252933964488279892152520932031323131721513027571069686991490836785963238499283700312004914794395542602296971392680864362930247013314999242470417440464755072123930013444251385515000724644270514868580093056724818974197267929416693658742760466853816526136766437199870793047568341407604719251489890749933908144614920512969728982411530495742875637124154631297290719884489424694071713349334525853304209869178988898943763360920664653049221188624945303269496290174676596147661081516224355308446329878252092967591461090099282052540375169092781221998126863191317150764921673780348635330196908755254839697680425700861570086250869422033138889209160511464025341085872736450025079577654179683511944063614640393065532013301752875420986382972809184579390005826315344645520076035330500320645222680126533484856360329463973101878633333236367366158345009944981167358383004393065965915641776911336788392049364867065617014240174553602922635638004902638713726369264778027842302188575466892714931685869610120938253589497913794435190468019066677269090983892142630077805412839064642705034114693169892213408295703840122580313283302971854793178027255238491777181691707445343633488249725646883821358266429729276237330332848319795154943957549129509133413019990210533694523617841213026771627195689900337272682739867675882995110880940210270736049775403559603171492058551903747595036948771854779580183607054302733743243799157413835594516042953216174031567369400257925520328220511722107627129848897965125850915038244748228554080799448212528286447090448907627708030714482121829883427593022579116053110924905302503042748786352871382726548497487460476098391087571293597042678497661613190529871496530731604562017934284633516492955463358545414872490581316774641291524441154592401889321917738577216675668797190789312808500712131058682530212345847413623959400544837618132340876537170925173951621280201729531308472389918469950516592869180723165253462962818200929613523072525999008727243680220010277213074307768271617296773946787801968568665538821017766044116382053875847079804140479755929658119670847562362805743343696796752407417048397275564021460437198753796379521390848768528773087692377365548424764872537222146284415374950518856950244030324536981544513168568194864729331839738402138085690798876571649726074414086387642649924214509283559750610250083525308059961787290171567196075258566688553643524305355113632071876780815449228526012439577360859545423130195720080458169784020548019100905989821964262709530559639389832301529944485175751387437164747897969107427794954056885864795560719384997866526990739378665009129439472881116873020975335473329688769174314671081007882001552615251967243730648974179583686644699863814585185917899294731918921843747833398620826293231886461619151607034355363935238278104798898237896302372297243270385721881384663423814766980498460384663733217956147506553852282921092145466762702679909774101410720887201160015595245968340529979362467095843878138144830749774651971204121804402628457920168830224040998596417902354623147477046979902380490728505338758576522152542646243888196072364660486375914793801261979317664794371908819581289541371961912667941979784708147566999909125268770928424443424073950969702239297489264821017514883400119780829857474325293873077121278159393834305717932852255759695175544260069932580232412236648309144463381507022312365806454508465093192696185964253747568601238773297017857646860210995939535801122816202358839324465798661673366463228884844198624270035554060576944269816487794466841381557867808529787077027928265848668526590531931478173761294876018036623625589313270594272116635482161908728656173075553044546939395749233983332706971412725161428588754810978194556212157371337622608366375319987834372019621928976764240176243527440157294746397280404892578799408999247259578549062203926193715622788958350634822830586232257233775992026816491312753304481662033688361003603425235499453541818240646559655827335001864900758929513714169745453632148271754987416052000196937424118315017273898894800986853226903063670720587405404140720527025512071718138366891904960806179295148007097253230665096230395835180517563677433634217873263957108426935854349689755942693359423403905055910286269690851793667560004687020368139273506226846541849139840994674235809509133687598769154686228348919670388683774957032163693581810795370103161568186299935430967053365259987765326412806851090627510375688264775014219290759203747366441664102782124262488565324020599913794468377027158307265079227072372367267383719863835401864647998935045606478083640893916806827941871499837834701303976503262575560435992424385074706619466089833283247735353603557842235710922478560927728206448239745361664906994998618164078785310423257012149343166046307177299371602098246848328168460204168948954943903619460504180953376771848689691692175112978192207793334808028606773489253391489640858013932333616122546535141741511521107856942191939758277880816429646456409936646267922007379815927793145178081632448217130947238364541957985028027484291473916833329157768140587764190171350026973044197691044933132950624266440216530399598379474151085760530016168501810372670118299819171149417346547030832344155485670757628793254923665437994139700800957344092708537480591529596984137717000947823206550554118354057178726819731444608781510200044885127597044016594083288780999940414143516561992289521194832160950845886664667957471033395148423473572161719621010959761480061028796536751806655575111493130521607319926196384297815421818235084343482204216408617555037251772104316309902418374038562607366758885046607489266439352758823866261635647023688962940723925421039334348667940403783198904963196010010106337397336017373564595517468093372402616088048861850835029804652778397047851228034098177713562971986595868518874383034750480513913063079027598793687868755092960259784716728123774441756107673526846864163514152503875747936409923261720679647695688278886951922594607541795722557200077577642987560762994919033716513939368459186562556493646857981721049670920486028426950464099903654586131959993409964085799823996716171896204985109897257172759012204995787016430124276757030943649829974625656325639170511720854722240194969848250958651749972631365372533392966221216487532379394637483838787707552507177426268825415268056356301693521439006191743967508052328730392270384708571358704388906792216841506435558812976507269504300704580925593039683354536320724259070816780819055514092102449693156030410695053799916437040374146209628076028629018150797448824943163967001579279497246280079077312650686622773398346293859161116512321071377080618303821910550284279276314826160305609373680467148456434710856543140253791173512062865541159499012585916633094755153916473037453548969719376116985324080403473264047526702285920147894344908840529080154508904208550406059598224930787949938034170999616598188807820446622304350683938526803520500778473140698444646062174230322289901880553916654288402275910190279602657049306940627427800152472790861831950909604390187494682738765992247064964761121928147808123080326264792809901694989363752671877007988770950298750097787237644642277782799873259682233834321404855604746652985512306906782241545666536362063783925885144532489866220542115385139679998155366575848453515217205813920536724188064466563554805875130052944083634433580990635806464097050912145125506375009451463062835608391224402684130618102288494659799537019849935792147371495830138554838360416231705776466499057593711322964497051025438092304530947772544363192561796883759312707543063625934334517089369222946825193057978220847700823636832881294219093295994638386658629105260261063876809543841663744760043641816263470881863131597100758719992210706181508886369924432354006734237171389637806824368624733763114855934281965400400946196477740539637755501274356172544901303439079562901724930646239121464092016267507901119448291533368473717486571587022606594655735640275596513050582594289504657141380096005892488644866634941242017395288708647064473449331484106862209002843605314409353335591539896117954900571927442799507035356556068320890605548062781093102250367059002798599652336980637545491585747696417267711196425020058750574636567633730649334450071555150356057531516562382953979365261051539034665669833318180828190866788227779084082999183411933828222576972744924173195600912926118477972113699615505724515464106176343063323872955811462048611050721217798424996573850323125698157152643218780836137795904092466223836141780306128320465764414880514273701606291179639941121804281208723014535655371849188437137292811264877475709347309448860212319154280448474432002721349014850179654321233344446716236354916484268328186308008794261000152924636214646158183042954720098002791015707331809426534361249196204955428432800477782433506254702584141329499359377602251037896647553942593368889313652338458438266136751252596182482747902825852582231625873736968013479945948879785966991687203198710314821625946864467183340271137115654853050040084787489964679066971866990144398644612801304346094941918672689190662668494497936748392506089176662972099529676861761967750057430649337011995698923606434159586139989465590260550224870074024128165892663740933867612625712717948491876236994504503359529939910920471931577223890298416096448498399524613519656983420552737619136787966209282944387291877979491290809554213761035629352576895963138366332395525973803237872771519948108008572802007276053464413867134573141011064107961894614138331377991608227873528933054774486847865276883424728527054446416462243341934010509473835197977844965896761610973544962599748612604646519261174722397682930083255028955308339268686655017672186956725444726228168894226974754534429540009825286249045105947737793826753684245199781291611644973975193914116178356972736376782862317361643005273928644897780638710803283288251046518966723909160024529639763491965393233694505796922121376240900461104236863880341483284848322827868930543412448618646721318490175417092279491111798888806625925230275163310791641936175230321899186772446410010379989558215244488250553383239792969818973333796363517049595195453609043696338454975226759839040468826856931986562641036345344037750767420929041426132896640709090505087600855495530301926443944996706815827482059392699615786632701001933116738146242940698596070478862896188703127025527929293647477042683844822267937161737415806998497492272989467173540402894316465434101393581406788892583006198440683578947069049224672043362279114475342721789183348130930898184442164793474824356359801673971511533467027564345965107435501063194350715969646917382794725048093805502293493200914784226363380530171912199864454916739316301234228338226936884204061026380368007812660883857246857487180095298009442563059783010543348742310668250897278126524050559726084410632168494853284474896177979629142884116593906317891410124369393607980681577272169870810173838002971848966264010491222680352707900960302483025341078121239290345526102741645763005830941486159634528991651239064421201937042944049315447021851867162083612427199972311212831587291537009040696619468837902467406903702238337822404747896006870255994999803193888208542461496267541494807648463490429898177150293389730356365006213029575092556087985001690084535600509545978958028282525573308801996499249244595937672108745578371024003565446625082534140482455762773188866958159914754846976307295040456037088519258410512398165634347760521401105115694841755721311385798253130889808740834192425557318717377679998847995826771193073854925531201133105075962436373082509184107840339285925198589271415935879209264127306521218523927875615918298645676490860992683757803267946574560178866365805477412495394643103127546057898557229105310695047159453452015137646220074544776544982053083076402171295103514049326123805304690129685438155490792644223589698256921360074051460888608520333579099539244821176437501425579784806260070036115624009681570929826789845321546832939540210835448098901734223433167596967106157877672422787099327022336375744482830899841054741801433022698114539921184083595136298163228588584946377377059363221344516738370949048058203928209701914616846952589844188304451832414533924147146009250467475497315684789974464174504527355774940390785919230381368165687498386125433122219248010282784624186465178194666133687690263612389478667421276481493110895608343266003290468675529974721147324329386607937343307104576777776370084017719747848482263543781642206817032940598383950312118043673550882140792195114833506265800380255406514976885621129365717765474592865164342976248331427761218516336366345859779531952022588651330053362514455956176637279650907315949535904712441036181621209917494092468576770850695968183204984751462993695925595858989543449273900322930647472093939867905596112249922109401212341036875387241853860919074427669863023660234686637563410727666098195274412451436134162646700372184636984359987574055455826397130586381885698584536815480958566870463410016637179070720199593116181830978792548903893472687760939406857823526400170525738170814577910644731629154655520745562059225284745860824911068007131964698545174790659973007690468654442882274590094320101492866349591960321454436430878297211645589005239732618871012439001795392963119116566916377678013286314856400439551536586619682083887121142501407221009621847093370685391781064141301780090408192066606696024639475870024904383519776927550695464962323664960386788928175833998020331760197884014401019907701634201514550820131800743758637575003453841865128752541501219948666427056289042008321429242844103222321103752436070764727647032781524053469561280963070818397055893681861596775539642850083886793776013571210219601103250507144782779289321185397681431902046487063884855218209676430271646856799217436456197351651000631613256002932222653392696668312964632697575524071798221719692220236747818891040125903392130277286429799170198456327563067208756379725267177968361927154651505688317453440252150037246584031980366907354082134292982586464800356651560860350499643211347359802250921070792323020652229038706038880065377059917305306169883367385492255537462267200475025049302677582611792105393280890350541285472319473874575608579561747698604777509091636580722441959921136573276476673843755706209155155111188126587319865386019466116036542036557289460785135999570722932601518704697065522438100862187122007369072633334845545521672525780874277576410939202181306267097753591835060738214832478968181982517737825899269591843228419007348502706867703333593439068343821145168692977648059182334141744960608420261820597156163298265926892463310962994743705978250834490459945749562209933046617076715958637893769003961370446313364837639296270833236373775776960844831317319532932288810647945131020537238675792665453449820272077342103362592869007765337937553801087793478276501382625437391220696902828335612177709241484440245077364334943879485759933872758888899806498886163973376027482049772012077486056209025282358897926556164971159899806721431075700801571029972247289491708126249980909993289213034988749804487290759073860059203371004196338796624089508093183192138396949971234838721196224613010063468527398454974499422298582777253942237434827034626733050453220063137675006706048678231165839690820001016700863650247709747065323418407049513846134302013893690219976789996846561478036579566071139707149431261106455721605982985007471830423214145952759530713118515630041405426388807933503990547407634974644346732533897677959629577974581906653635555186857050902704576345588437323982529939636684881897091109065412034567433751048860506845687395604228820205603896165130690545780872584730758505439302686637892664918251486930450917921694422522107010384973879598155875990653338378922038411268983871899017104252014714345727515327048401014458401508791877494593860033597937896782371145496856902704393082676135551131190793943466091926680136527754695000157474263956918848847939622605060742249432297477417003951470188655668678684181977248605610791763778221459476632887541979339341339462423148595046003126584860360253546170076716757305233605415735713625051880858382621116386408442696393083641085372316857199260401863920083104208337280835622121661472437665717774997921883862004424259799753999139973797465042804896619103043298957564764322131858995121897652091933340257559669430820287789450178970199367420434730941331903432687766865053302144624423678194237494236148198552530403878592036087899448946009757175432361702944922722755656424005688069052821380489581608799152150158120706934571563335102931204666541866842855037305763730633533615669896080700446439525334904514578267163526452115891470540528484561201884659772412504824403297477476738137536300268942527885376302084282950477942847508141001133676587251899659163224059958897227979312215281874102356474006765122721085685572520660575589568231342054281820093895453420965866305245069781098343720734448709964855165470493707611086937112362702010332433858817700748385460010206651543519525409637968336023396423801779271892645596600516903979034664975556588432474317376638094894575274293166163534405011384757364723780198824155647973647143848402794908183235624839971153961603056385986669250800879374106783718370009570433745224747313331532029316721419752262264851369006306493710670715912140276086024496340128380874439131101924007095455264469085330092128742800405164630030211803678211356533382973051153628675184597826530760474104050078135974681026779018178992251507209431875800563697860857249339509379674556929180754999875599860134925367830363432225626155900948820199725092390623183173984053165607566064649511007216177572400653849116512288374485448118718896202149432514944420860255399130174973775093125510265870649601673297129288615265154268433481145874464795290406272458036212536036234094664721886030617051772493863644007135302654188463774295236009672541490366416882678848340873043653520332800123937348041762009917077269524230370997652303715285957090165071879167301141608558660021988903848769269096518288668330846879673056288304820863539262057908407760025445499588816629354524772750616228835458702969016132451207906810130728346867171935332845715682996271202201441510755527157711303101261805015136643315173922972875913412870511900891073331574588515448969824476394320011383544205589301462870970383760017922051413229080372638406313249980632303630880964463584742874619070556314640056485763659037300939476226605851294091634442139037353563989190060644933919463199380093110360879703494243949782255665446089892783055632195012832421824987220313717983219407856393827797006994611257234949537867427679649962693971296953570495067761867056397241672100071046745727648116166776899877972532803059519564015943336198138906862546147907434441048311555176523468205835718903225689432870162260369665326001428665610278780902236601555686491147740470442379372113817100512178019203442459487682084000496594831689126690297875497938891825168584082733856994630145199637911727384202080779120062790617724936405843827986565876555487885809424995728933672424468891135223734045185365146778073231194991933967420137837535477612338054036062855474943709028491838869618498434902316625270143687147348336439472242405584134315426537214208870425251641553874059401888969099232863223351624426177190671983338487008024573419154084369832250408769661702733752138393547417671567413141041624351548541357755026207908221666961534926129508135464714838087094664509418100054880101207499705851137717448174521044659120188418527740398566609716778587228938772587311438240109723154751593315631144196517015561401549665745794389302330030439691777743913055823258343905829594067317752687224154172874329705134357436904119315584096267607254512370041042137917387849733906523839618175712691375324820412277817728206261425556559217597738822708100130754612672443499697707863141037039086592117656968377860292273845222934365567253121693534059901375032071344563496352901630124803636697652327804714215825912358389937994465931301194636201171242766675812960221226318084002468887569781076363720857370785828329864439482068106511033469386914804230702214530722166066548521189591854625088968939185263746810937291659284279125762697849214596973085134703820114684831583928341060927820959144262745715064146398489952261602760118729145067366393871192165677927945148219278625146886271022140101901800026178867279172499055790537164880549269677377301632197740773972349777263797174662993907377236193233615581435851027517749914208132483838693422970743243126359985193327252274051730140283430537147899226449826951149840157359874011657527999156385693545731241198525522060026409912746157930736326320153568358933209684080503655508619075279719858975291473167679762373148312183182452597197780507289998474060284347046627408665067465941130769464009255106212133064317524035944383817914259692548624845109259997584163870116675300557244277094063724217620280050782425936280120532543660401274896774424884143090682688020201942330038607655772116459244464420022424568397783259114306128432894037752078264363810941421506299658861424681136893665366778129677622477229013450373409909472922890863608440062414066243067437758631062691889089075100115370255263733572069740174961957940114850089429403376488623951439073022641446554367047791958654943676258541057691384011442387435134036415954759513652612700704710154738331255284264855824879540400283334803407421178082346216904520787488516606810919936053924981002144562927057568140477253753811175754944264023297227483631836669785523667721895146441007988806847752091893409899603017247750019350549357299575065195046879591197566469870555723737909694379715236296398182276675658099151592120579743656976028818190012199152575795247120803031337725102708582997129163725705543859039509672012032472767099027526905699806113337104574813735086643435848834143806214354381624469510394321057729403431030553915551356896786328849503075190047680240101127295337140350307903024330455656131972767762405804700748892963951790299023470507065311371830033909320215255836357406805234311695975624483521082869800819642527565615575597001541264624624083949148401716802232152012692458532321053412605837130372080922601957631979621176268455634767834516235739129670298049896013994880768370028421304567562152272589930460556823709620656912892228232474782694357050145291849287627937636920068322612194056501413049091134280926604585920186107279741322599541478838734620226457546609209020913952921560950151137394834319681939607916046032860015481423035695653485266507263879892355468366397971064881844205835930722564513931589727003384172260023841918338142087627446266371667762896775100370065508897939781315511026385118491686580034328549446575703201467945113389417410597505651978651588972544418450684529093729631966599520409374995707735518182207716761321160433131589075825058848365473075667560071082135660916417159092114057097106616595394188960567644564661049933299228146549905108358989717462693705679016670200251455577684499727090292283862518335742570475480734099716793290979831918844426100173562688106530072863139199925513528904732276672514828448017232437676784891818367359569856906038861669110065333495879604673882662001287732085497272286745312306815368711160795837519769336750260628039917880162997485063832174172043790751045882345769220886905727334621262353866710930665822479822966014914647498031368883964432110234917983621006672059365868446467612805086996656277241545646365996374487226123082563456819328312190688381318219836754896794005915726692132895475466082766286796637653999916139987338173342039714044484701019010878483852686181933114101629353028965874406540598278475684525984758287389832878978205657436013307785742514240190633852701461898497312727474705535507675471838086460922436742042314476017882363171454582411462455443273687668973361641998819079312992343472482365282412887039576806160956519238984621639875824032487300051174770276594979483738262295904886151355755477598961194058340129926895511165405354046782301837248597127009037606770239825323098926411455455334525757193967537980953163434880498695806113848837423065228802580443127083193674828781517030926287332943151661873091501236876646988674496502318808449769187442432070570055847986045746457122791507414461090515484474428736620151712837691387799695807345068604459519972258181012945372990019246753770710644751708218866734191280710807378465788952882981767460729807986894272902663058003073060058356090351530301224268179432580856282409709091441188364418673873913469610884488816165977436119115812811946303537639009188179998133929259811340982094591891708215762014637914135088115234645128065065229492420007610121044953049390874241579344139399110427244832289535396790946620458029684617272821947595207513029800244429828896889642943955103088161008233542226675196467420509859688335807016258423117884844431489032385391735107970199369884091427195320218519145489188628662570134972059070166969461873679585059090698310098795554443364042707301045796977447266991454444589455046475612919057661013961798041695253540517846143100069771258943683874964852916045508542376436760191068551253619891665605770701086081848877260037690559312794902707812770954113740678337482643783439184579454261935231198230385677061168796130087457535772152836231262630051079485104107322595072590542769269244315174942111402419797469430759581874018430362661128410509953573351178721308738011673256580057482211706334845847101777535760019774498636146193734075168307725101674328588339310483424793049598717539926933811380345402071911404864298761294923556854517534216235636847306637304518247108828637694846698023492507171554999758832286184023634915288098294673123087735815632513532803813872630401434276736212107283206206462431355497529309288196435130957196701976586009078425586128273635105509756728013343908406455187954198978888665098159065067466326992382728281167031942914520872087658948541739737564422579381148875752576200889413037975050820488308416800918489868180321788413244727982750802428873808643352694265653515502957806925395048270312818484855309761117620143246914747813164482273726027147769881470319520691653767240846424115611426810670253286924431567546119638579237369937444519348907460885512324381452549418683476592613328299080614034099491524648853139082120082558278416939746837636491615824073104574921342176802175794368030927768327059876389274321396856887239285493177446734212014769597875545784450974115242466452538656653524897659285353341576481229527481312174865512668099312766376355615600933423621143158143197654680570401664537403109668455604301403903348784743786504253859321260282588349292747755717293221326326816515843376117697901451134945092999784096689063154332937019328274802273037973621606749434791820575425338403453850653866442658055713244281861677089146693476226778366765223838780371742004141097598656295019508817883249791539988620944873991122812988318426894981473843247229120729304400628475177223042972286077809036661098880416979778655178737902434800771204578400456269180631437689204599089400253158064269589452078554389452870665057365264280709215164983608870691860404698356600360467562574894730574358654169994494077104671785054885425624066325904386534010836322797498270198626992259192026196410420621357710878656429872712312428324332353959358694535874259463127089753125701461724443666964267461036620951071704399020079046245927913078975032850333923318554615121567245200174441314381928295751522305145600748760610133510062690484339115816899894675610916229513302504938917013378568907470836491756057657893161444347804109979353246259389439945497274230465277961377628394813021428874503334931261005175107194892295788517398288099224794891750938084695069642545651122920923458343587383154242739217814903906511700268102348504032252791703930947766688300758241368674877703095422020628311814630688488422274998430738122828619373084825071978669380493831202988762346712271064557491949980297397433811239189835346277746128311263677193559881171560997194192779916245709460965560556660230478783214404837251587628540807411887076750372297192444922304340806661365043130324486690067021535196468151074104034201554022889283828860570811675677514576516617264955638626260494292876884572853699025945989666775469682657648321349923648593290316121929641489186148244103172345061477402948201305065486909474487408142503864381689418881966832316660057856633348343012275585369371654057687355022274551187528832754879513547267529943510581724405722572004352700053772903454239641800416097432157962409019722447857982828267040243462821324761399482192471239577061283057385121721556317870617823924339625858985225024301462446595670121037848243293903766147833627511662388686134673532181712382389576891039599574963358707512622913689326317427089028162373713364305251870819645533467081380512571492899128517167997309219724434002886432874477508394416110574123458978821385722163529160549748096866602745516897642194738917606042644390175500978539385327128579173204369080268183820579285426916333634515168774356547179245111302459305559494658762473987789831910656893858853230064002499137724799830562056448277589791606518030674956610974055625914607395570648858518446959526989408257171170539276189639711169009897486658146236090651757637668416714117573525073396855067577106043836252285646868646220945594972965762639417761236839914556048569439403907109793034842717533162060730298643030884526024194370229347012629057883904052027942493012434151276157764143936041725394873887584424722926625280827911264392071718195716226777144960167977326471957171909526571660753913703019712906595170876369729381232874352675892823786781131813861497370645036436364467476658295169005625756879759512130626494543046593167826334292619830225316186088212609452121629482144994324628462873932930437887665187348003398706909291590775121491910767177177640042344132052621887223600580112660483478292154965335105083629716474736664157337048093681798965690519574321437573435381151726474630863647850701025606648040828885932874988554831190857249689570401683471284028839606415696279708673681138168130086410893890719473346745257261586749694134852156972619415542232416645581320509800514278646283555040652118282068836834415105825748144351823372343487605665392419303373788798371025557230181361578947771788290824935437392528292822125931641353776304033908491291069939930762681597977731912247382862708906100845062083975764640552219708623615274170191081076885573445649413979980268693752018496846873779024127279489384379214354531662353772898857462744143040771295119484429583608903617117971511672015183006364606744245592893973821150854058381349484734026014673704192855281920491837245219501718633259234727227149788030255645934128238859536709384254213327611278840508915030130328015430829741650176667936257256397836372566972578466586017995169261792273518717634327365917000523604342083040901806950861541079616109159846243711156914899426642944450781251449604248048239018221453030964033280359861530756108942326107294642868509061778841965865936613246742104206922877092287084544338147796968001020101655586724027319252975153287095507773111578279499673940402302052106410190734389143423650276244358423725138848526369213235963724340680940468939365252697000176909999675086117181367262016154868960138905899365751151993636921928495607554387424586696503867224258829140584349999695316208715887959827373046355170824407513328081156045179490566225766753288217047028976865482731529212113013758336150061326843453307258178639911556622849799387990134935138310020177644834101464293589886095731533206264403181630850286554062440102941401315204441457364768298966356386405676599800053474580279233054901530379214681928643807360596500133113580520492058826817872870479350404882577843260871227691404411816111727377920003096103147253526280788900334287240656927917355287005316737201754018464834332197614061546346998436111402855265398034845482883188429491449635738485168504186122734860850444273795785409971171815348126450545065841705449087932146538095883049844506784537663312577379496825920008729396834063311401472494286433299236855376386577891901933426146321159716538151996371190856071283566492927741577902781577960743701176305389273034666764486238031748271643861381048028900108459766415467242743111878124502268005394213194321531464903132255050810957658807756983890905878231754461815812429642018859378510672905167313767419286150143702635867826345160325296059974405896932724839161891499885718740012335694165490105287867269766967320899058496957995212611893622343570136884831408658759557238306124951812571663856421390687746778977310937414290430333601742113526451181052555097592107249304994466688566429696904059512314808445077891661186430988787655512098911226254872911873919672796836751894101496114710931784096549255968385092361423701418717347453240752461423371075661962400353587808103384077850932219929415319978543499390167328487166331903603136097301951986744638653181612615602036434547374332400095313694393717075952450770694068804027401609025222926231026432195446172909371080971431812377286607259496010024190993070349414913756461502896944752436362587423083687583939889669705631651307010983169782620165069611749433163335821094446215875911041196280847242168270667001577464273068226579295116181208659439724827139523379794184664336560886305207414681424514587961720685657279405748155175378741057553228158763667004392985277173577409390474602513916634811887263468733422907945565795090432524241327023280043803178190980533138785275281640746613898986272408556380583886870930144105651694221885715085993825515716199377053032873059673100436407066551535820184436668724212373744267249228129227985923952024467462331680579027079138097458720514292509060678065435949274764675024286498122330550505138150322633812691203076353745028491278539623573919564738232161401519887423710532924032747793615089690523936802731036399674833913360910022863532652431284215765605906182442430710868494649638544628159472846938367338794100990886861352229093235312627381768335956625219668713412729696696415632409868814968949251430879452785085727695075358582268919705326168631786916595392376140788709642547877770550502088098063574194448259520306369152221191068776423735398948890670008513149109512194302707708321219098451078323032737479634896037389703355055691256406989441383337798854829361585152711946067007575168493384010106668960332968969911864229598001183004429516155696489216665253871009671050265339902884665028389664296081837510976445392146685275849884061003365106289977507740948723487392573569667781836821250700920979947773797360415228628179974205775118300264884479325639877931578120813370525985782619597968313249616057297725175058445568352599656417155382426818181020919247286081905440820143578870337772501710811035667292024000267830803870766498144933178335593016969066489517001948760835994801352529472063893518013623326550899994691772901470447941213144737115134968574294089093940870194810314501101855569538316942978698355682132320917533093228389800619313306274385666889067344248725870579818779627140147930025541770989164679038777707484549032131524703118833679961035846215283174028934338166934696980192994279607602752433380531652451266382309006309961321120512907422024539537693849948069612257614083028776342086978022304089552219569516168916872229515649488678888229598233938141728909680697861865394753337987059668893544449885177507616366512877988393700993656808197856683473691861474645220066743010053116458980761082682183956075938180569818037454407567582959760573318399625255090822443042522598949640373709685023784167651419852209708668611963148778493202321807670691475669732420046945117329882018907497467915889165027122747179335536824769802044491169019670397442111853336571280716211070931768059543331635812454562534714559615484361960277542632168399713642055716341510841144967645008818490370766924087985928032426591176534965504086686312693800074317888619100435268467191155933608727118005828794953163626669994473650695204368644148327405961587224646602636612431928044848105270553600720020262907129880553848860742372577187102861817703129269376833976332290520354324631540848212862934623219367882388111970816026896734474903774211693423061816920039140958265749571995899276633156280586461349064450646057062767789482064154099542053698468812079029232062912368067322631255593947246260957431099236990570325365972736380545209538034130331147326838749211493185519846052567776832269184908827546988027009018450495009192514447948293302557578442097336932753211520061433561024475199756196907580135999565951970017005429801269249783784282362213035945651542457845802691862211415787983827503018643090558614634780426490801909474265906782276137270733343316111187789833979330114257089254076325526985127962087860437760500918779435075853855927505121878763244854255759845436858931414260150472560726530753254527015316156006237381489134445795260069927985030686123679322039464936815704605119062451092970627062407271842098579868357682565000393812386467960386774857975410339797781774386773539156820215954052014921694182184362552558509200217673944907247216119369572523690552278679918165651725424928480608159512373013661792533956752140120573846053510545309883141929748521285453643343758261357849870843048658669077584889266736462717547795873071059330392243187281032946901442738860399408166968899165448802248962196654769888208425804819630737341303846959123847789883075975119725493499098706517375392346830453619790657014639767989239837469791258665173804798937115954823992244737869189166986604988202770150865919365356080645317949940343508746639993327718516771598964798446664040354139163090140639234817333202766693038832668913688601336880471372511263165173837839162761187154180919134941373916389457378877766425038286241322209500941944323575799037957039595059548754114440892270720863936977887492914900449640856304757045328127345944167349306562238987576493883101361836843624788482176934873904401365028267348941095842124061238187227119851827051589730224780271655004092773778429440263164910050608151849289960541043490337175879554596718811122240641993669382540339292477142038708319186466685733124369538000101853419193939335656853651090429054167870414390085139786365227318814546904805369745311362825350984722218126063046186335662768425613043696187705162816903013798384358083161358413417082245807041277387193961153152725570261395697279037947424679842339926651642902539667880081836456890419012386270745358103037649251499990862342735626498840198656242757504009173688041212405411575595248840441956131054610699330946834415939822234474556963675324667992484447509992699815600256171188764392092606581380158942745740104495389998861414504987469867149169247627649506842988385572929087894493604256617195109237187804602816790727881349408010616827789089972155880159189441830083388690450410033568023049597597180770065226247482600413239236996959945047836393316365263415092410400323194395865638238358191479145505896197708024349448812011830843687106377152439780937505958332481859537337805764883216966774886687558112133991939989416603207282801374920896303590227902671588491359291493365661124519539392828856391072688418497520868978566917356252770497330237128109808893974254766427425815098432343442831905047214891245998123016796274573568973901709457525306256869664112710353469374068930579762085032293295844719936331483226339385060447911611672343134099836535309773222811323013389936804818026711000163299147051998492919911784179773926878488736359113193707837943090015761865526979738120726301832385317303739292400641654913863885160471750519742421354499899593432941736000932028695942934531977440529679320819441972268997001320487938578603991118131366187856904683985456468389907437417970504262011814327226886596169365721830713418337737659481478264099442993806980293027635140393069346462876949191047566057055572863322571591957524319887815335587674063934512702331794242274528850153925060328357082380863731268178086958968345946612169978991856058632563139479778449298911063820555936190195706263219167748509981461120755200382480214439805289034564847319660003753856801473746338904093843257787554241751606697744044042664139356042514596482557192319797837244969381183666996382124608482369602593745847972974407362528273519253205821012922289715739972559917819909656200269970298251125268393644648225099725108837572194333144985637597926988365071913868455813298993486903451849817912177209286504696773257951220658324846095432763302724514212929129659636592759627517892417094918377079663151108476992343365807408773796300368667443394714215777650584007736861838427996582181370108025985403477237019277041635962178241714930631102271550132147858202880865183962789111325978590149146129853229128032444242731225601160534725698614112153678343077943664882857894760202155557386729243606957936923084351214512529174474133070354939723206291963123692821988689911229169215803402643491929938060530221934220848263237513462610942264738963193465867174517313317046201170056365306007928270523106165565591328502899200940086824345519047160909019037244612126816927064944050257594045671421999984847133354343468974812473399641082967870025138651300518906307299797591765968722819064016565901527496709787940493097768908256301197605195324750482861762176951733022413954683130465207665701393171337507610192405681417606461919598979964710753148141005145127735974892840050874706929431620780144442417493143246348243563523391678563670180578527912393291784063383176854874623558849855015038982919257624536210287123150266241727846059643066013393851458844933421347222763840294547069545056166690946532268653663749544782059853506569426549441780155315100096130669633745424669241163327210562440506329604065442453209951470031739321067364985460126761101131418269977280017969763041457600926553796202753883919816636690338328336225725292586557247048616620338846421755909228106445972490458497646944524778080785333940541629090779064041685960906138469501596497653906209932085756289982090421809828905668882053540055638011954913655453328846264384608897920128661021532385704370180930350901077563413046963837552183498055422404376655605334011474884213584761906489958613437851429127821048840522279576077791129525092511942260664198777142044469969891641067145779890310315519191973884206940065505606464453101937453764082257333066646311301884522278746537793306245065826904748939432508017973125910865657321834051786924710717321521773177722897437589080980415967533132704322152861307920401498809417385258992290748220049043619237055980962104592385414976372245989995359011259535180545391325522440296478926870050432454888369428075085712781508554986619878890610862888412774187135940395859207941819582690340236614814594264513642166051222884640023347313892997669542578453531050968221398520558826971811105513175317462515703056813678018539867674538811612354557377466626205633722571934840931461765043230188257696246676341842712550792286810628190595814739535735104020930795374583682039452696825106395017900661598888379357873040071960879515569165485782362358898953503555529970611400536174426958578286171841306388000819634239114403799154904078997175837516009865661229215197520403131201512393223058825376268260247594248215558412579063526824822255806771009840424008308272253814529772878665203825822800378733978838035815587344953943664488498278194855710969928069094085638268363640879261409496246854280677979364125467982122764096833267622662897405352964314854973061409301493041004254652557505119721199918792667178961407031796274501113011137827242297245226812130125265143058502016392657277482004330478604862263711654594924056157180932005050084454850283979748974186642094872260446520302275807168856173088184561829895779890654771670487890334838741828814182824298352686552915897475173752699310735851641964334413973819012992663253477830310158577388757950713522093424124184083108916436718235391406123896352269742982290974133273283289141440699564680967680588945682545286540378415575900707185376082097355589837007642617694349740457911911136402535601900608306989298714797437747400425330526349990628779974191676041750047920946511574735084589760592665217182676573058649178390071716323797660968438709214613539728865879270205556287385415596790979971567788568743632966785021059063453442593927695478918928411416501622903411677411198710108907006529591700880586097949603527655626392706923665436154605366727267953953155835395640980330536840306164854725565220366544054389035610326326506127936408574108583607803278264626479576318657877493842195051452674140223257802613984230498251845970655418344522142745305358407753751921557699052664140174740978717896265400395995766752252056099729326081283486395567027636145343353620764168544173757239621278081583477253208067823974744367256751292049831665516468013098868315680223790346721954048495022687543733970247231279693283270416729634705702204343456391056250252487121647338526432420473226308721710057099481858303696262531750576220918835591738710062830866356920591759700547653220858861100182391160563284738941152472859171393796815478348896601200901960651649615233277388675644806849929040496984364075604851064311483683252385196927681157241024808807493854973521143935476009747880503063104908016269161254293181197709666455617760013682197587226000320854328675389875962725498019205290126833421512103581495824071793392284157857017244898473174844172440546245616993366402684667170662354105414657759481537027602387289474374876686927336432141971068742835934640017445273713080871946815411086498450472002618100937019476570134035093078174541782870484634671591159816537912049516263033138568560315006017590950624522977717872463480856008592884157887495500836987894964792040412237867918999194876051542235615540119098445970952765713129821289383640053779894896717228880587173252091973387499689336033065228842592888790606657215328742357156992149059370048367929608427313581095172523660185885355327869337993814386739085878166270241186706216699866467915196963168096793465692667789900452634134032199428651470231888115394083864262752657205512449425420337016125432989631703482689003889771042070760298038119589671537146929576837731710311523064009208604170310348053449344672110660167354326549993150554854384453251533741273284888424472218979588194608461436944472093973248566886977899228093614217259090285086449385708753124908030602941711139041527798680821652558231415895678460514803444087622286921199564002982629765329024731393547640453600787771475707782184663363591907970623195493482691809034775911037918659983634557648143336079023245856278376681585669108408551093875524127544277112709310575432250885289985175949749884316369051523037249197463846679642470652216099068713399380978915760949055650375380659850152293724755345655536691321261434762186334624716375895021709826251751932239001020726397137681483212080510608174033217754757841878907078629023483021048640607165500202056328746203200561005323420706337672090303062658122674233505496804094532383203498884332450689850288229891179584376119148048667434503201521132844952963040716849066373320081287912931680103242063099610683002794903007601585994100310612644613066042440079552215615100579456010055391934210926960159631824590378993669001677545695234541070427430241925005637270900220712844726876950270611453145422961656085053926529733120596950747438470286579484128421530268214566039352208909061522052312633821875216351949433647849394501259890750862612296594163414724467844952264191431234872847758645613184692602544140266647745376598600021027216850104164931284293988451040863586336215542909994356777795970213294226532042543753056050213204060523032542201153544037505087779814728640396321953399782975535827800350227572739255062814390072842370949914665213248036774065823539065408007776746063617108783641399617892594643494795218953809696757855731357487816603574239214671395011989552521269782490077735462846835201232479237890168655566515391385193322220570607801917091166711397519059098376912630930271534427854406644623750916500634130949148679548964073713874038452908926176738048896784462921941930907774364612484248614091070087623311116979058022362182490501516125834335778079404320105467919950228083457292759581513414661693068638398779569759687640279796888069650723824579253965989502438481340760783005061433431635927466202563261252016919033212524976593928925390978457177863768460590957829221886012741825607168877079188361383097232099576492339451951668173578209559519618074369820808759924070323214173800190368503489740618695004617658066310080083935081216652290620266302113277758906800899842406006963785221591856394792273783285977565505288572872069889622875391842409024577107897404903353167805582563435611868532981061858968815681496240580631114318794535679640658464625138820991014639257394161578793483084716687987502504049297840256299018321560487759853454872523875501011080316281348272349533780364978439939871970591197161737426136913616323778622164125629608014606920900162438514718608343971832688450877264749048364056085920137148808430161690879332146374010110867775172146460078419823856332270006247878928669736953192664348062437121840607599544154574904974551894943486336213503069487711005468001310542666737999225987642216971074818892107404055913884824596722972859104385926380133317200441482462148672018163582643923176547154167569611108279949288419084753578621821862949177309070126341854992203953215972899714567319667878349704562919951279600777020454422507299590481204418041791920997478613445705202452677611151664968223323515122763658099578860613259850216353438076753143846281428961150814288705512596929472541659288850423181033285051141704262878624025017196981569701983823868091089903689141664472951102896272668274247665971798778121886685826124454331687776243780983299579414109268210481298555498405761425439889804269481828939365087625599624033212642268695154995474570474379132602873981154549100557118059166996960924706792837748577118508269257961224272499074494682615526013670967499915672796298892463554583262212616871223072346834516975355422904418548740338568892788267611557829051712409962143487315072844416454911484448346686363347682692461281272081589612477406195248288830498988228432079363227690434663124306052535950906118768386548205382966773585860393020464114272558910857423884646241924347788411554510083996739665260378416139765087590902470334264827482644608296123926151293717187546118238669864992940572772879188968099790593074835025339248425912206191877751477605212575638543222159337463318256232751564709942369268998143065626848248401042485961631010084114116989213808532482915903974013867139014161717543125282976843498947015908950700520305932955176182404981265695604579488838164021891972527549748148081364860015976527839563997757089456741291710324204069984934749615100910929751089764276154746302558432141303799668933664741540829573368650054976877981907275129722756027314650243949073192453022963506240235784732590996850050859122484341468900984332294769537588077267522282669506537779671149094002605827019398952333583776542324713089484883512577520691045059686983671642378004723040157906860524747245874245937173164922584687440055057147809712044850168267882626397031136775711257724518837059479802722591006947874086052243909306017277043488537758999980821728163745453967923572834032304002392880520255160706359814892664962552321716702383368935909692923589217717128582929473119173730227166973376871635613837413512158867872582811363120685030964368915782859771956375287110502206345543890691803573156837625959610112758106639109274643767301954280257336841718384058205041309204447266376402675986141357056892137362346727899074100029395498557823216123883999175729566987209860417919123669387633540571561091714067425429600652195371851484826891855476041245241899675257456144870264109494884143323215024510757450535911470774050679997777503790107573338672466551358312931041887809388380927822358868995407728973772776841885835777279217208319623711788329355784880953187124872235776839365975795134773740433979273245711666637823193418971761144900008207805278792408869623288015767105186175036464467802990835046407410078361867464412560371435344634275245166998972761356623418957951393806311505300098893661322781616364032263619869668062093936674317611891200913278115813548602251212853146905404032797679455504216662901285122924484555800455399520036993411319273549898520413673331358118634865396367939032746868353595942848954312735850200141663974872734187891178426923217725309992205706855612082106309764920347255599521974318045245823688470553304849233455519597731720663819211744430983805225128066586440769234139651798209147396794493726531139096945491984252371833108773219716010550434501517745712671017482588324265169659413247377602957956763985638398397585133530863082180338508409434662887557531140414708946858207845475535338005306100827467129954586918023567213518214292675125847351594675424826586852762036232627232297958258533618579065301252005274078202765445360272186748594725998913409420333075686476322480850006905649631572900994810950574743147828294762732379982669532917791328251452468165157869348297320022834390437388185693557724713964265540599610114757726644610079574098142295525864135042127017658531727769878777204912677214280181025408801153405783020791224235954383586614415298980594251700268918343823590708103848223109583948250665635300994941880628231326781008932243114286743437072491585733805193581810151574425181137443273709843645309141284979621022104744653175043509326500150713808148802721038914949637904553221659908976271110638606710212446774536519971131083438193643201099025332963889994815671950390156091126392843064173980594093034144104008428847456717497096379709884895726544552054837859530818645146136450695241287100154577482639240550642221394753245391176997037203086789110864085218979082238115527108950412853297292977905084850184617670173547761984806030878294842723722978258225780982557590581577505071445542413630040729990152042794504870335870527676002536608276201991883394760196806672555693114495992820204155469531757942803196755617763866101541637765242221583714697842031357726363675623180578583122042558335475031379494221421566162498407368824130570410826889264239383657468287440611270892209535715943528509582442349242362254117925349873533617199953388331420413295794723740769647674556649095817997287342178285578094695141747604592024711678821471968272377809297896899538163122515575313437181544616116620323544645516342258511774959205468580053309578020970123588315576370594350804950246739577887029881565578277581934783539719417432107639150252172248726826766816094177637500734033733080118421599486044564253129057831988267525466969660137133622919194740646968596839988727536831485415112392221706395676594842425522541223496353837926499497731645629195909777035164458741611390548235557914287538558343421087807587203359782640648295383226727713586746287083973764112213554400532313616096817281048185954141933208534453159154713395119196731609370124434251670123923929387214498633251125741090449151832237833938735924148412984893188959434447565579883913611538607368108504690238866884656727278126154195875149810739256730687905031623580404790877890672499918568224099667966712195754960450309517490281704451318317285656748401502588929557726385558942258465207766028013413021379440709185201742606203322679447166739599513818256755399913415381955261664728620186954304436044742524229631964630213183401959188762011195338046702846165509262102339667204045348199027017637818554618039378481471721965883844961322254951812512963983853915300667047748565666795324480891037952766298254682789457131261864981212167024248924597600180660898889247916235032864197217321346629173612429334332355407961209922794320538780048292009912326564170989197031672220361606290572753669061620104275567600804763968465738056579009188401267362425716857209898505163071009641829696776175560872228126365240894759386166787154891410994086358677086761867406710812173638425808177513067504814018400369960522832413781165984744348940069512870488160512072907360449548869918245238169521747803838394365401814813805435088758651664836042447589441469543357800610193543666864857612735357894632479283066797223979282627628877993319973227850398956240313817234820885507778033448016820759764995710707256794969519121991453340644619768437176541553933087933645340636163146166658412133280720895424016345871912935310950621333769214320693325214631446995647042940827287901508843564551648062072239632947027275209650618900279677916089516535739330508831589711986710215076199237353171651783855054288549654755460039971996604987895728625221566876699403144474042280464061248252645730207796553920332971358635751422960392053041794278937974895363429098658183553624015146795346140417711989634806387110369934461734462887504840224848057396371668881336765442389798874898130661462746291967071311673625192489138040692131465845189072714605318844163477417334160893981878171164026726259335855217825245825537957834990955427875605731536846699621548653073352712200995785668311439747758257886394131460357565600030821773971249530310459304676337641596942207344669196812315173724281094288066346889053132208110207778608909208312819665790674490916474122783339172258177590344873420563064027252730172348084098290617921336108731244722672173887202990134473015223456689186934976448498472178895685379126310121096130405077444753107553113987716520347313799388597255778677523405267229939157339240903384630206785228562196333486754268148720101893352797340755511197746729390400995736496571741076214696677668596391138517224950572834891404420599382072065294248375642882344783843775392254979508320103293981356746897928074014846069403884457367758596441850925131956231807246036117718985794682369907811121535337672253478696875920353751896936286387477520916552095624918261539182641856962904860283453995481311105916316874475813836977704325317099384224414388905673647993872959348675983052099557407485695349511647770192428636799423022174259032329885004908561653631861464695059263271339781430364259464846349805701545264002370121176811888692038873075471834970443453041824862559549286808067891396289121260524268780568330135473225909262168723163202507019271836150481063915594160830821861953650412941592718165816293229495428184185988344098365506668997984994700492628666214619415657973468272474038400231979795184478009666238197957455712224676126530089970711132941766461179394844316894282004723461192569889938328064625478942673229027471374422259954149590353165271973204204476842980574760044276959898998883474955162962377770157731596787695504055990012759995229523827018897353242928585760666114368569804453431133364413507448248842648887573923581908429032793030199489770566156183793045683277120052297307324720885250924419457765672446826851567434786824643519134301356471073272550993823935974944215543073021613168422007293835721771455083523470551874960193705401749813877395426541130861128859534388399787590707222130134401572040541615613311198823241446730726484525177327860204701403586693808603036557786927995995655401800052387466471109872447579285620336038039943323968988836475706394164461782312019612839550965069862879799564031394968296125904960627951702452647480156180122029654522689606629920501323829037013475309639528796093357052345481807506533639818410646544852966861244351116033758497230468885972891243257446627895950594715992757767209479259250777378558126089178176970535612350872466562658465371810426336568195095503760828713433288150261892361914309235169167809249809675220231753746196935739605174212881992483881024355764767242570730366159788463655087132670593014684807251020062119800494122227272203361921763723710162938342352209163340755998787233957351540187676671156131430658133827076559861719959651497901380082401867602309925674037247838777408615134290143208468057822799153436820516593071619790308237334373490798768865831365628397646919540439886240645742677820785611086774588813339040280804914874980823512083338326403801693148987471727495099603164391188331443203293146757455546909481571836547451531707383953728838661208914740946948401100666497461703439683824137257280935581883793361268840705871132383696037395340205672906027902372567743744356934582926728090516856283749842825854286142039325312275014219108689200601461339976931043746046079720011215313088260176652211369869465318564932786379064090734732441932971833861558475754269133518083554362808240285124261725317346249999396494855478281947015049629301543399739494496285518669449686021921795432656317982117624408168246317737930469201775239310811807933447171930681186272846825680810119008591729680120203380565689310772538108178988250209800595861995124187845938991163041764516281068459681710082180622267551812088617350638028907836351496782080963645114949712098029915500725855061851530437634499077289516063785940946131158984915254989560677593078992292559863256619084150109934552670088397655289879954190829779169796655882122585848647577971211908437229976959342380402006541609880150256821987920380812211871480582798754490471361733064425677447224231450682856085168417701899193036150555054371338347437596446264440732008805892273423115389345318761130610223718977648847636346261054175376700212599820951653892381085029611667112175512904666113068608172384967371645657932574639293969116030332930620969794236915292101840747068959305174305557740384738481248463573358970357146611744901233433340471509961247042428681547980085787636205202215633438137190182486221082521724181283616353638972268698803955471204649715861414000818804175613284537302349946434472487079824621964070063004394211772239954963354457574322445428796689331365571818977896341199768617090456926310781287192155302082944611090247191447381455193652720026487366146353361238347384308250368355888572396534985001769441338945120562223224545930210647272374172044737217835569479992105178351007585627748567971807948565230335874786591699034382875152058295869008804050454203599374659104652178850535841381121381776217819349654139356930719945780311799129960723337414433056277727324010789365528864256011131409027760427721826836674757437438152415799199058172062217462081614112321725894913049599850729106393673887702876393333798745506625110614350621504373478843842070782013985713273632392912523907920078206608433958631793292892022000682676945341513952526240955330232811283306554095249701929270836915042196723612913652315011873325267865616479563309711668843959561966742282975160936130338076777112742108971633239938925685659920801582772038573207531513366543392120889868969932741593331056514392672477846130377400500163529478060799982323413876324127892515773004729802808512583526864455728662789937743852296994251879722192328164575516546265360534098829106672295473034521358578602198583118672172340619854418106030634184041381031206472138288183229311692925677941878001194566661048882263148508896416801671617572339446380492682321987850748490135229577739832003110947729259191026729891741522246100202471107327511820588488002657599101187170338556159100394266214505310788514832691747711443064405737434724036200727055816069175161189069015888288697919894121959207925789814391346909172470089491790731700585807154814025595550211500199514885653144633985804918303125628017517235708948280099416252630832392069595388101279791019369243629442616832925027390323288256392254426943766574229335488041876199325215661913434122827863792414932010445719965327303390149053625300224708805788724797624271012544975184928528755548205044241743809907205751032479244599420093619717694251202703162135426985610056249256672225515224825569394380238698891000572752162883218388925699274104740656840689056099939499595482148326909953825755147983965834433131525925743319525983913679601576232000709985615598615923417970163656579470032259105541698639965140716865397685756135116918838741502253125335036866065789241056383310551061757558079689886429716026424831549923075005110962548427154435782026362748973921635975402907950404287695139615763931419761514272364622794325887159703707422986846527876394395402089123652195410975622360811508263827733383934004807076294082951682678004692860889224388546587649024425329611163470729583974561609737793192259708016559493398946971967522603946595032869879938708488336285839732623945314461146497708163950289408537261562259374438163327697924882104052954766002518884425606253977855152070401439565336055787083585571193114381004366510485213520967011161486080774663957268087973520466856517508248018231048835302940300906499998338127147521685614241676013902983691307808893388663147690712319153639611407082584673283887554631113844038650826652233447619129312791333343296581778574899342275564661025325921016431153867406066156079013424573063204627473274570975461251883562004168152373561041879260939784554916264459647951037840880810536680134888091241399896165690577520105296323742635892001372138599710507519975963132282075086362838275790774637335814794894342667732988582359387112484329969841804712350041700092151155340586284737497027383726961774366862354518860492957769317123103081682273730708057546857289746642310102891784588452199391735519844473371253297741585792156480268706698310834792408999280340628590341689957759170133235229719031272587961170180493599010489360829561071055157475956970513355466543041758065885701753731097157227517662728400466685012446573829544168017621481219908158949205311473745901819852608120145716252645879294179413766301857802287278541404595108670235360826730723021988483475734837189023169493631421057833634549421587782081442771897577930824316434376279369831785944508355838133637519387775440315745029155703458393762065194304062674317303873919998214107700698218019963359488002970680562528720031309997027636366348035236646432361771426405523442172857206234574951093157564480374399068177723429112172581737007743381230302822631531319131097256366845469330769813906626000454038082862086242267343041009572192994842241150922899783766325105339586727705371323137673965964734318192320970137218430210721614849636792600015251323475117776509762362642148672584555960498517721108808838936811313518684361753695540594765039158907800410723748796719068281006867583084867333797428559588196919282138354751560518161481767778363487845507772487198119003100783356825074611358719890852234976109342197303486266572934462114462789518880751756504393508271227559904335018321392932744994623363349296418270429932361112569444969396436632376833124636793746597100379240446319051345719535005536207298709926561900335069417898568370767053675505627893701665247171961128949490343373622648873836391827285633098824026979771084851333086918397148959761957168074875219814317110198059234646562298954069474051197444506050942792287975600718780790277509694698707305850914570975220098314113731346236387424081727047249962899676699463289943466163233138731541304741619724807387681900541316437193633398139997986219726368044353739791691208094366728558740318748289949263807348448351131338659429555368732210704535736036061925515012384052308716747107075884223578410057980941313479085240663048093448830857414378442339755075847886087355208767404912212002779617337465276231887524834660593570354108271841887366570817212461102847218434844596644761257121269776352600961912264087083791360281570399887356791395465061270809100651335249446443072939864468551791028028520472050714640265541833803099062186725675811412279952645659347078660918388969329239016855121215468281235645995165722389366991297276390193752604886448497348373409754260086819441239119723133841841563441826637646977316561695334855586498979629279270642422084796425216337986508677791091729251255529607839671571736201688580062974075815786188746259254223900418646033805118808115131667587107805520551210847563416826372772867027236829450655326365220872320228397945675120958505847792846611373077846323744894561196788066445156078004481332387466607007472760146650739076353106921355544447354051193318695776621451146453894810518964781540542917092345942076900204819612321968601998221487497736055898334514904223696718978873102649983285155881498163891669015994909171659889869690840316265312155507792383797894260128253617994798676703908132592151299759001441694478943542105329847399691170319886266509789257413870131396488799408900286690549111149485984446970919747378267541145407677889493198192327267610591509317770827593165166127222890750813863505426790124413179062099458489954754238439021094270738274518995836454568921867963858258586344544226429725939242099975601896366480095100833735792807181695352613053583926471104454320091405236646705088458699677254479640821188927266503201031114410387886431623524493318707187663650198690600588310310744560645785473188087783729563151567218774913780097287068023073135128597216046547253953278817353212016477214936653310630701580991264907127227195404183424650331794540878482021811622902251659759545194585286588864073543200622126523365064090862562861659476905966761068656464771572692640481824057400414039151885594941329142794644579484908810950182737197883182365151407210054812891475995943477880210840773341088189175080941334355264471528472543910414877937653651883531686983485206261153582125286322143304766146497456637875239704724024139664612388692028028855306891617273358422517783969187149544447134124415633244485195444963900346291249181824129177829826441881524492451128773893547561432115076913011350362877934801281617684815973684850148562680429982301887791110373708748936828314705460494422341627790251107077850686834690715716260106811237302187370188495608665950840636133188193335989368902841181935184433260812190370777184982737165928180329035169730479767947422235535786949027072053540290794964734832680215784924904504636458458352771027025982608574694412649310085088418999281309932758410941369084786998826465197330986447889257626485451625910180662246206165458795829207532711070002037553558932670244816643306546543221746848756855864588750186130348206174077362592996251148941635137954687511704737746068404632884326813611030757260965813306981973783079416080204554608671317181965601657817753328955333088925768727537834275355558857917437495521934254231847347757330422483979254060409874068138689608278822262155283639625724219340796630194371623418269633838813244924459480673279579867114597399437182241234581485363915546356360205221008662986298888983653005575184398344890413737427554690645021279543336857499131400346620944965161768855713246080411538930209775678930443179464627425566076299199885581955888630182363217020262501145269058967825371887423816786308256845124137561085336547041832309601887294794970033022762424610285148740693636166505575618649232493305457299750646806812883205036967879832088301342893863524570852706268414381134101983993767945600988035002510413770477552689775068953087057566606253704164907255517015001311024510214231688736126906679774129610370468952702215191495518547785018860560257384492615755347030376125854362244103814862107602674673146449047422514052226082764352546677142595785806565204177814361098722200942120108174096177451923540252844743917524285167844464705334707463548006316188694396114503880861522807135220325474984771060031541918552611199065655967380409223394152752074395549511024326427687286978932925513042644852970115757045869959132184325221099080964644861188220904860922612694225068505138480785431664347284049606203832148684880655135672127907318405850382803972321480910265071362809210580415077350751934115146919804999538710017349903458778941795370732086841095298490737984793771636359012371737350572115303921569674736953128860814210024423406972356773250851757072256550302042914771863089021558546143092364916891136403542325575283719209256982606614813019342353109628611594447353163015367593870111121765224229052283544746894138437846933168778945763299893085285659745166064165258329292842725826598991827338006585733137649421022711429190322112060742020262926570309928095936122265365161722272276788775617474082674486759870670946303550175849037723275176157989239813082101782887219511177908437648885210553470593763826840108771679970794497785641837574787168925190509257052736220501926529987415982855319679146570658038851957736453196212620075944115762656802459206439139092444463752813688083267739564385825977076223525488659393619908253848146787633022764896164184682536025713581518223614041774167871383384113204820785569476866920714324945010313297473043106008305869531146925041388584672677306174802467612972956890174820909613605107508012707376850783266338865698478675326412080143162134981634552416052856031111178875333455276639420492161065793416806461476874275900467943781773146051754742679060693712601325012648826971520355374672610683940403378405207463782551846814881094014390730484997735743762571150135841213342844528666356814241993016042560426182514288682860131345694137753053134974432227581779202334386051948844697875226104809201461517096464475421880262195290816373497962474479720988563106374699655416212322238196739852582635124079705967973242989532379085639365767067484199218841694521459940063335756402494563232340695719292033242575026152554114632011951055668152121047396863888076518352137472249563970375805153287472884433370166125150534363700303131116003739620335932081282048710680674692957967707381783603753562934955176230223499516528017156943397399855845938817579950468719270373931570945630108424494098893345527692612506479159897648598234690438565418675612826005314451303537332877469662914548885309825548133012726703041069743513318740511518515013834492485418210940630864475147257041637462973504256083823113700447503388108103398258091383833333412771331581043158740908665027359903039583155167714435930155581768432196911574577731792301735851589248206346242252084239284414386547300558227135256010421516850586573060989542882088238726601967042672981593220359050073712730038669966093267270513833944491296875416520303531798495876106236740850874593258943913304256496380973309167394032946020598538411509410690904640833998724558425133348334823848141786155283499146534571843755498135395337105374828972968305419560854103182433268555818092345751428286930116651077995431027108318623117463772504030484769040802550530388780017883233215398408610653297180196311552309150683683651017005274454446462849629854786207357282025082672768031499712378239774258231590498613973720594673226174573904670398409306303223921968726632651280221165108121989440874884980756095773395810817720452901070528767533294997675762681244385211244963896492942708859698525090102106044251194742379010126546256251758060253410846517271745149306599649932325171767885928089960522397565816012191220806439363896316207417264390909646755841397981978993160194589604018177691707024426756813679692438337454894171983090631970467960381811909927425738554930014081203087811920015716669729797820369864356041354538438100554887481984296386059522183813496652818257749614805039969393985300495372150280923874248846405890396753145115153304279680016579996675284215542892191715095999987001418445727837390559188521265124230791020641487603744560530080991123236218410082940352621907310096005368441097283350925100671739342895813932038967669000306991826242839737348604072305341654763547332619493826319034935151845643975343674515901597745098392140475367904394892467898962715156985217283056254186892673152512463461161336686913172220333934015474286188429527850186460098734211557958122519625523583466978902141769918681797151705706028787189080530263245904847764911088224011134046060154482242462955488244318206143649301083233942733820963010107941784090836777610148116545430946973875094107428444621584980786770444616684177595261124237464300480290598034679899226319314787911676939707690044131589347333771424980666127279554606792116605677187076793332952525121012094116158346013683347410616849545826835952802845644420708139446132103797064786798421867419943209631352096386005669139773178601850976706843665356811809651491249811154063773445388942072953586021565978554427727861214020493918458793601691784061439409517999428892272289704067010467136253978455815721088755900789210986242012149140329807017921760832031010024367959913157485435205530246129210387695493316780809877952891371801987986388223514397380970462073894981784740513347979019700688316729913842337900581144415908727198273065778628695868518743782562100117371486301048210015753218584829199272553994845525563751057648433357443818566165534400126767807074674651560103738541429290451583707651908295825692691493036107211911845267108391702005233545283309514691451163429841266919861627998678756488472036098577813560817087953554646330862146904528539376087444588963366559480528724489760077284677634362142566029991837864684785856201454232869032081308158865480152053160176347862720717279077390506901677285851400493838440689957141573860325245068376361476489497042444664526087972058721741432237930620203523089440052392089826206458953707905912103976976762219204976291958751401050699468944687860176779756079203998816890793254085894667525876541221061696043966327196551278133904737595914723843767086008072701220939846867203891143300641670986984164041852699935264783398726107021318579272827468440543469029664973115338833183500174350059573433514479757936541234823117855372901751814219608222496091891078916898923778193521174437895506346487994446103917311354624257335215798793753823775390833447306986084708982608398416594486775675249393563911355605538052146335613280018485408171837578656891419086258852720465125193160783952242214473166719359541819065851010157880664867752364354524424278164256776359587585409708612438902804530005883428701809109230953468784144817052735368306748904371333767388582861789114826703836287151496776002412275028331938039770572977209099493861438635254456745419189644208017601291247057576788929951962260102035211348770732488091172229049595135954920853438550677897242531475333919243579143955973736147540179804034294639743088619052133561295287530031118527169156678763416915944679847356431276446074036535330434194237539623649033883538985000185680104629540105206065453870422606779866253144590343362291282421533029151323334863136253900765053247482478451142232012507639107644512793259449517583599406510093766384503137604068329084879524026940954995161998636602001158630702015389971781294057641770421852489905232240682213453412379664682659672705169705583433238321276108469021328480650155791951782390741175754635939830548808817761276709169243174830642787569863073062161252415404964642726936631237071768798220001564862568181806389445273316693375678050619114254050022634628675583567606876483868418465652577271065720271115587901237788972577552687382290477820963839565520222011086812103855632818648985344412019979398689000298819089754187101739088142189489041420566788032032568004747194512505641153539955743859463859615009543521853824675777158451332563914110601002373419386361022784696144397875386668750470492575112944361885111113858973566064927496775895265708400456273827099177845922225605231498368218386015071871422821416244352446972974867798612539732019293242809199198929117688711608645391060276051216210183884633544814666551649297077007587388613522970119116028993192358176858263537075795210152763115297597977074367626533354573620833793089312150918255913398062410927327309183686730054602512593645195946037299621018157620549502196668064612472309136914300371189983768584861334435346683385343354547621575944907241274925148501134243849619381713115185108867009685553867234556862875350635413295389411209496175284872672937784608713408740965833929079812943829901441766431916669957390203906579467901429096789197727762374536674932402654771761358362302674224179453418982224464086630417855580900436862420168122821266083243420503169821240411355049934298578731928170996960098864586600660808210684911836739961188990435318664753063304397927432682742169440489677002111257675273992143439176880903205234023327450276769922651347756127121237627547463721691167636598213895746390626114695496412113512218132335114683407212644803974989456175080099810263992711095134468321761202131588444372666872928223993745916754790844148305537783292732868436816081573708035291501555129277911785937508319822683628643328574457177334915173204601434192473898047678084553689183153978352478732695716502668665452007712894635443519690117241788912287621749450612009173442475814568184556155766737136901133847728989299123786471561172993227840128263444007787119003970425520608832749543778004153971164186882409758807816038543721772131174779079102469403290540674870407065058648574043350237744045873217271804025880243602059080167047578605144482255692905619827487644489840443068344362297817028577209860149683400403689038186525675474500230681163625540752092127918629954057458518062489880123891188432715020658451217247785576403161588700705777649295319547642867609794635888480227248380146219834763279789943251437741530043073425448127366350443498420884000548853031264084442638724837908899902145123619128786759427540230505120349781574845931205204702336944818373556693650322325469736611585725127526309059500480800987033976621609289766818578344730998376887523881698217958735577206741112811402216564893982529443607665907180360059257029590024751578886947335058817277041297508484492847104538225063852885766950243373713773400718264687303860133428887059676355863482905884814762039816983385363314191879350789580949556820139154470949632414383673945709760203661339864905111187995780721472019317960669521819846946576812875711159192168062604872497236534508698055320798424314496950366048784334251958217146608854347439489485705539597899309842461034361675027583170745257647120643774426173497960041343330375267462609869976791845153115430785573045756963124841509725757902519660787314287181032118764689087721463929239913453506298317058876394400965407646241888703447289010273298639545861798419555770442944474501136449691295895079602875998705102510371990947867862063231848585059699233369197611327053623852752629832571389259964828007774895430688221224041309053314974939635526274480613281114390378655704903574883419863605499962181883481093064783612621076702976303661024278906858344345396319948966664473721982523926841780091096035988983655559878884758388975655829130511776497084235110299771124755387402180328514768027254740057677730631957349247465363637091067056063994999239777083762306375914410836605119588562435716763352013144434672272357127076939295910556272246054830803064067396964615412726130829847216029418468460283736760226816130944475256336912797528016038439388576336908313273698684209651912641073843502211917967209968797624955606415353386676530630952768937669936074629055259107291761613849149350861475774796744364744062062201333907858752798809644201609606211497384213027873652835324551142161279476032314191481638212791015074134896457546852786195025335505581255883537546435931267082257286223685411035197468625856247475135206875155579988826539949231605176913338586777229101665926435253531070905922829168761864111933616364187630640121022318130716069966191393417871541698860109920538017567151716374371083104084908137855068179323413114959229657129409467723844179968188580183931940102265718528037787480902449719139978944106164428114794140219048961744433385774056480124358134062945181598118763490913970288429161579692353651552975127962400816498762962832292373324157559858516383793597874534016453785142000367240929165733190212076257339971841767116431586241475294678927671519079768328969662940369688763316156334871948573834259251851016098679469883109850146115663020827589429268499353175444671611180772080228543397674365059538977742464925497660455182704759195670764760189657765581137167168151299114692432330141178970141721130015933057184401623150536995169457604873078097881495781434482459899234081960960466307838936264723830240564111380351120273707934156455067302716817823195502365256541789692660175615359211516836109384701148219155346153744527963890353587989637541749513428286836102339263627636818262438827108615011978955679740620160641269387308853985298505520269462148285889996152555036806345343206917551976335388229251728667838929879489797633569299358538108123951662614194007057328997895431464064140206572508146516423592907977118801626423826503069675111183607891694219763056951639609970284284243849524449260657255667297645771938469000552702493943036379769028961791106505345249980182352424865600709451745096039929979389994956064446523842465185693004891124398885288251358651173389499370207422083626193227373663895398448022664396326337608802806328257499139050602454080893628515643891579905285665096247903833043560961337487446280913972863032481981465895781222999020531626104007690627933456902796624837728790628403613251458743846525227135835624394825314266302446108085064000229560354440538566790138521213666073937604138209450059552853051146475852701908480629722223629423729059313615593585323280337559090462090761425949814101821931537968830572837640751879635965388102124289843972174866952897074122724184047100078056059780691131295048792011811794368352299141863249271251142362349863302744064253596937677854150292256624046024711079548963183110025138186111046319508389578262326952284058065817675553837416495678646188055693832779553040378637933390992062293931951502745956371885457514439063573616705881248925770755477362511548078649232413781919393067612982751140662673697905187943846923949809384722183355594560217478497715959622834486895749830845092167735790722765143087649484510039188638754669975663009976736920865748191113420867114285474708425139535011627714439978775791131076387575364779053575751748311191987857485448679312879572327355925353284138220332517593349660778689055927913010238960203421510891844909480965577128357279222576554063030653611216943720793854133458461816330135029963874268687368392899579386849603731110601360706726320467262869645348893772224808588558880271588672374482141343838541639945732660574432589468290873521693047582135960376329050876802359725119189474193818205863562316456787803200974701921909554482926512054892099495904271595552277707030751938580306017858621876914954914393464830022001992827236285091988584681920293846444262420677701624813370312236124172407526327445167700376068608883824181679835317580874122069622200250675246402779141165366481349888762051750074667634899680536237630034687426530958694356300573319638708849651900280029010430272303426949419731320748346276205894759134236409323774153856208792321604588802954205197205918731979744800143431163357786814831098512461125815081102822021720611419964167224732858782780782153936966719512156186021518040940349836152607672629715467073488605201336677134526721312466102770295366742502254862134805925820426073548961391746417569928672339686458695683244607301998260185974261634264082130041785485507621466001461091751475274377938798953191670750410424583424673651314184851678977969604215466409031173612369178125888575610671180295097483920863352657901512234313759818890940492705380010124761052143378799577516868897702164054895442541123528406634026917552743279423593197418142793213694765894336501687388478398050877335668139100859367591600916650828227951477853063559267699095504948675804971901559687189354938375930205027494276688843304543547829065429389647948883128316806439554526443615746897602957120693601414401419094279624480502655719011964974697211385029878321118450570722766379735311679689736263484721157513378844315637520896033477354392794554123346402209907296233099467757621036897645613053888056282802629438552976609376637075003755255678862584742257712184100299319513255490562349992098446865460120406587857024646663263470862172637646666468710970565135777408856804224068027775631843794114114788595561403854825035631391680353444147280874943989416283471002673425005621839768988904040561339770865557440936215978176351385370819940132946570443305898358450808907696435670508610566923838193370588312373263875339123902903115458094465248394058781544437186885162838400351105075317680353403301495806562310947974244981245225695475571667867081544313420705839841690858791188385960303054624864207269640392664307621760171376789941211002942943595574936609019659923575090426702091901578860748399674190947959088772685219007431721729135140792928146697794603790976383121395562852084699432200684036777721576587906939771115420248435031042929216928039109835902302781230219281949303489657136969850359851414999969704438687458770527447698368508870251509715582057341208293205917040732756905305711015074541248055807773591229676078718191609314422332986926943031193876258192486058877917005403448688197433309834308915741069562145872085795740006872266674021268469256788057577308010875948737273938492355455097854569068688968686645801781791653061755691783925104529095354411731834788875902026433952484239761358342754983602324723317409576671107798202905051138637406377020249273795953442531000266436102045243628066527037762419401157462033924261985673674368187998189613393367425218085466253700438320903686706827202160072685262441878181014737413898966243225226038403727712693014470814030779090311584733866640493220378276803314613307267168282730293762583907449576348257488252584135837158691384121079993951051708210081872643915021328881753973321107528050644660881137258002262635306584200798928138219445232047810487589726450555060168609901737857015243394099098786508846737635486744925116821824221260163203687008006595256004350974034799722945757811590372857987839325990884813187147986735054877938264219286752889026225052513795822673031406381439096705521552648316500549524378419419003395186293210540044056590378676460695134460332402431162954570847742603499024187122444780163988898590145334515151897097375348988987876521697943094446887012666496757103838708891603930914478594267979118915604600303542910502898239167159618579776405758309826759923094052626531368248546589706461326708878010556323163290696564294946477173987857058324567657342855567837012404157508922033951077193324894211811395362371117020132935666198485015104046242012081886111622879470815219088060283611342838060491494194658919787443520397487439150254139284030301882060169181232591631348138273807290609064382878775433070872334203354711331216150804751009173849175519953213858937125611687684809986668228620745027786546870767974336295280163979809867564505155862691481362594439088786567627023983268594709394222909175555763887603456913465929081996540748978020711621710037157662111838824163115044034569211232781603976263611262843930397887638989454210874525262741453713873855434700211447017596818147088347073596157540143216943870984283593965879580978062121333859743967825948455639008793555598286840497841573175319394983309434994966370346769564922143672682267026655801706121178548356001019472349748220934755377633301550351342768366490087701768278163474619418414159922319677597212181988091427339162262712359943687893105283347147036863907460427737057210951197096846442983837061864995200139219970843224120100753178535793843519230241843440343616470295431386679576075442675205738798540929713830622764041172251399152460493568829879965053370754552303932950468316689291513159866667014685910514156689605266761542951815887862387485673521921786882230394892877918755942559587978243983094667034459543846811512122957892648331470026348178409433532226353727207481478988599973229491394412624406024727659428374871627087823910239478646581063825739293333113984662292260911604739183081620856018930662668568418602824076103494393145281447585654982585641798808174605645746054866564551245711963067727097590365441337274981414111103267092074129208744684921435546513921929644655137506253356033410517669759188135681592834444783745153092670854980501438510034945055757860518324826925883372596790029387117611112026395916512956739631317979517988244825421119405441774391326632452158985011005100831280477684058818049827938837657932698175262501270941907334256737089603267996190638378565725434547749630656206409635922986317102787008065049611877454070199633224431311195882740744563712825714489144606588223648777514659720973242730822811248604596342618090107918311656944243958917247948104265016092543641932379341788458200904255943567313721473711542136462077251311490390853993429239718503015807107117019185141726818711409177429615974376508170020106591627642175111255754175084033614739500038298542616447942510872238814740315627305639036718689334393081373083207194896320477517804752014926588506286348857084490105996458989789577460001024398735309509376881504396432147692234732588000221262301456743027181476995899062208213407763888147369263353725500386673400390701542052963402055621052844737180365257389606335157949347925531785562891840980527397215338763846050687093887768508646811109591080919301580760194720054867271608400574097110739355638916943757167645458368264342933743901901004497046659323742359388015444753067927908635324600910359012882016577536672806159229364914982075930430922367676005803615570936292638030935162726527810765705252615123807774840886995054750265840828878880457201389300475930284266408099480146884118366804650292031235604531675426346443373694273376789539607710957115449393445651019455443116164643145995089746145186868456039454242988394097119049167364628132068625423274819690034633598264452922327074917779043025070503904160028664656826951929877610621455823393852498299649472992498880402553972240903202441469976094616218770107401616390263941761066562700209235624260960023059768916252517906743192425005179337296160495112940474561439044963782731229808638401637187249048913292424664960217332746274487739619780689732369611223753685278227843909560000728429764187221361141663962273030205836778260328276967681791825976569293606103353427440321074586008466366700042560137286454862463103923864872632651991174623956875102056446173828853418424292106188201139995286095647666476424005348428278252301500429016640824153606739851489635513010241458757797616561535135573527707526450522628659409714747569133991496754928145495011323006910102190321054356393997229033455770459639595925736698023918035284907471209324880869943012191225306889656944169943115736962775905934546187569269505479248221443771573740070516672648832199753326461455319158141380054921635253908236130723011191096198262259685123932092194255581266148977662149641297789822770020335145501450344168207298027007074810530116534299562797214455615350605137563265752483535384070337803994887784326912551653193080272454214530351928454456674443310099144815840855849876099518814579092964636300631230810921799663191945880325757561886651816063387540544985258570597043893189540857554301579052643929300559082071872430658857455567187753750678601893186051617884991173906594330633766671152365070447303741322039879951793092977579916549518319620889552331513363425653207689786982572503041840996614185374736045370595258319252936558441526856859701880741277344823190773812648127512323606157082349625721180794427883606207380446520620589898853074806957327364254762893445201466976362537376431715177533980731636524901578535487519589677251067039442913317963427266460647435004002264876875206138506603259435465196810039840799287727921406270101043073408635480333961836336038015655474784562464517295661417524637887157743667391914282730836834207404436535361230814963319780193995417937697782591277048494294893062982144413214140706316167995236452925317493150277650888773624896755661671750527169884756191515133018990458477607876543656354774006274224410387580588844896031329934172733667858469179682363794042797527168076605668660638778549043261146404900645099819495692088005463884188950039444352707921612275966161360296799584532874456432783548538112157011169926128126512818385025992552111820997518959452400479668680835743308588271132348884591792068227820505136262016505305710669660251588881002220170862863398375460867887777918676797798523042465400976656008215127312125071949198119394342731525123578482337411096945436153656585220612104641039199849152083252681732149483334860007160396204979396966241939936555606311413112824195756794379471470404422227758784929369903788827749547530197803303490821364865124458382980439307010821611032411142914237814348607872734216484488200388312401408049443736796085714516055381181022789612278885478464102920306342018031500891838567230884881705374266198302824549775059577732189743927049274141911611761795808809112933585827537878634493620479964019070084696464243160687504062929219928821742727399785811955633947340457324765661364783242185797122555277826972895342927596954251237918316109603087514709038236126841312503674204710822990114638949708849219063629474928708279367086537445098384627539780482032670783507337490692294383605339316427273646624461881118600294747861270278300658107545499299363504860206355169135714658167475790328951058155117107843534405566437994119677003784258577908205569051862595673567803980152404524730121135455719535419152410518360016305551289832904418153677598758878274313342352953888844689042227749253427688426631221370633089916215016294787154207621876198692698496210300112191453644475040104070184318555407513951373269786042047600669251883055142840253347442645764622554650223232189322263140421865036752958894261020646467137641729009023194598782965083530310659551206480374694199548091675203844948379016122787766869961896545554027085064716560052760559078421313991743059815277240334858535260188410865716520379465416681930429726914167824871990964065481740828851337480578868428542496836280972690106579788140353043913659135532674076708205427653573738733349314850253593044092358428256278522912494146650121087464748844452162095654238971967768480175967423586135560048825989235774920108386197173595626614511606115179601541045444361411216817687547479952982492953087847697305933525440270737751904059609884864804195852588318983250249777430475336269670779200957028554199084789348164218621617816357671526455686600033828932262489506708088862921607201535115035902610339080492008102760313001041684457892558147495289298981157457243307205066240873356662617130878376839755174052631522994586680314555447015091962023724246384218676902988154050397138624358115174501293364671980414931546190605855214664526946558925377736578211863760944341034938947390240962875102924308187349351423233926339461467999766435121175002018964478470655057659753438662823838149089184386327937155212343410008057328584103845824367036307553827756498910560499358332767358490024665932386039973352920401457677401633173100215687580861364015393144605487340869921285848479864880382771825106648255377212967015931575397328471246435479421863837181428287758786404161327551750456387011280752895263163706906824580727932036143655793312077174248417233111419625144546026187899935846033936582725236619374179974854328582619436569537258487273018498907116773507735890359317514245262139396059499053477882370265646365733810451906899147870649886411171690938003224587037420436333381657552345972948517032156174914702707807066874974463912604996196527506363827629505257036052026432628337921244029881960585694455321252650721384326378149413161212529900412464056305866395234421102358943081513218336641981547561967186868897106157202894061717919050012316537344023694891074413858555996562653311060648864940074947549663762277623435196021583818800419260917713262264428273563075052729450711506891358362871436708532783692142433929297026307643747819401228873295556935731985084517083773538865949552558119923747435771638178794031605128046678685425198675682443944821822914649030221100214531330947992244501785323998735431352187973178470566024726159091501200393624679766773906411922133743103423135586690528351988494496610490253106949595287998451177498207539530468553847784831491375263344697890534932235167972415482759305690731969559881230840835582316710250316565200007395834889091820045648055224593215057768410204101477463243716779475860051574074481470169446316417682272784557333837896234221179276274394778580485857964408179995018506689702013980153586206567549293469304453165321517974552462469729614736354335718955724560610245795372169889969314320771672389188101268313588961679155925488700887882748634939271593722107242843244047330960037695403519597488521356382511184516664135575556892003811580880306676492997741115902741856667050313059359611786193772471365869402349133367154756153515318112775477913319914307160797935881549620441466108238002262553759615502890347315524269449133793985309358651621724803182627824311249136404738330457358069879397632609676446481824783002417741084658575019262466216688987639790187430822611060413598525086531963774371313939210745255781650308935294887479117713726367661840543135401632010321012041226509369677041544530846256986643775762861435672272747501991699848857467881669366814458007563207673605299665671431691987207450372884762797345889630820535491899266026126902458455864480733351812387188631015953766109196713763406854039824805250666841241428536256603512661350320171004636777504510231057540262398143687385921026351550584912744020531829996524551613662537278488901683680269545081251790826194273303627171730231755946145229913528916431172882199464863318424636403549227827302185884058529988021213581201764381968050433364262551433110605356270500421298453357583484206117917248200471240205121528538977638665947228088217398152829936670721729322010779183532268194348016751954619667751538916551949800060894736010865812109175957960433840918859623264629007523353379662308648798613187472092130619153770701250196190873586903805313217302202029686549563184371636617370267491030788387325617879231096131608766090138853307197889769193527667023608571929059946932754078624726074992380208156751509981592862380738073575950363884954084386663725845414791200015941684470191301821866429097149177945445245864198292077203322064540647129679590462548958252576126994998796114650950302248552179141264770731177190301645143076398825210311426059881270624937675520287861627509424799928217002957855324457159857805636061857738254505032082421483988916338580907180710499013790573142221909753727219116210962227815739005225639135169243334664340151199760296110100593676764566513630361085131401814260548216559556596928830668924352587147577991479671679849095075739746780608038498982014845193574871572481424886809470521579677509092366297712820149619562997998073333426952592322443321883488123361890454031494583371757263040601825251487941777741365797950078734864271789183314322031310072385795812511567796989329623437571070124896647666918975131477794204675415226178825885507055491027755431660125423542990000621804354259397163477783958509886616025926019620981154757265724492960070836064048512776657690035518402355816797450757243449988278320566579434617574750339913478369329126624914415100377811156828499968062166156854852120866922391132147458014007472048976281375642057840084987131553707982514196908725356039693961280427606756539508716737146677256518171909501334977033561042098205515576764168657802536698577295629010507863656998924923647266428041050693832163913022431875194921493042417480610008587396290954485922790659303993636899424570233941131695454766144323510116087904037015940992629914124458360410268832553245897721934181762002803567901231167898255016066431661936545506955970143311480949918335178838804411623431504747689764487611222426774491813527703906674185189762011869095464128836760496995446247694248110111127824371853980947927190689113613423407781956117710178160995959071585466910393334401107246337820583608368632077585500077237551358094480684169046939627273025467942601876361637132504772805554022991986018327346259116669285474512145914001536907792883710821045307243327859794546505385374603797269431013180079889442837762271769159563480366328818689342187507082743675768378097503401111710665906119275086102118802990915915990749111990073126777984727465251700236318434936527745373710282485451430344737956867229242782845295481716042663667153376349467169469787401552065430031864884401180743575756518516680689077307219479110055715836054137588533573513112866900338929800399022821344699875469886079709772593096223649534804193718464520249336439933819692731096156519514614820524619358904875740438978543429533850355468814811380807124581879951324219082676424878606161647338895381944676797199897471299207845167693927823494894054357784927314606739954622052360391173780122850062633487156628223026228638637680845152093246666869902568450644971317534375223644185310477377939408031823825426045062080202011780161877375369119569872232302386884599249115904657222659024847468493090210012157632910415634524723001795369119581530279313771468926272737298473334658588415271400426703774705960600887807401238594592381888658931081581965426858669783957727148413285596235146428159954865585388198926737033484075017129823075345306831381904985756538269280967132352703170006167661651833044133316612394384134008719197210312862449531956675029941923357280132148610361379787147903121836400130128229415281962807575420051104768427721148763553057927556220386538796564966007450943026151844261896645920714673837893639658146761627740147500930492929858073227122281538314080104548964447341106675465465182862406533402918975523317409773536724245511750264432830521673305798707610967440322540353462322312253620230832927869972311824912768042040330144019472020248235348295669376936670460715995413772545159509108603055502452024435483623082768944689777034820903447204250959687845357757848645164095253167806301097761631525578475898053077340802744772859724665335266210663479774984703118932155577718162429025926269498825448666816008630278046253053691906972844818364323933425352515697512195307015202583794929468343050510745064555786906672164603558715439742295031607207903806293071406543189900908548188663181796666670452218224401234917741448116322226869512459046763930506574564464110876787475621889643271127358348805131079465900061575356881331176288950264590354661343083111279240208548847272850502580783917876070062675512127747984633943692322728090074564050287192086968406515222827273097394591247384451464989649800658428587381672357703727942678735711902780951601265432829484141928525651464474919300965325175264232852450097053882169416448970326948544428235545322762713868963340698919865693067021100825444162656066223749002744725816626684023549867824705713069374213297294223292392665463534481981795674373202289585018558619358788352349408899961245724668939283777170008199846839518800539271613996467801983816256755945796606599471374480683074946308108878111472139724290483265722424243314536456694300996849832453930841817612127871681220680695173149263968306098254221474443942902749995117902804859757679996181957951501984750060092651928367377619530605876689761745370752072306427938061379701411830556839562613665408465465691497640504302683447539289932347586758396836521601370872229069876506132040342556939561343953596367606788621567510301705225220116930550477501945248294833252563917337891360235178806652518166359764662190596708870779004169032234810979138518900461766206461287616568610332100874906152953153439537796946268199034361244073634041982480893256025659146523930326543616059229698043539544081639689251510963850532211465176982037618180947912042999389627580693919377064247172387358672758138990011846811473119276877966490987659916608171926472842348109661174049572268097837868246306828166624939620018609401180227736045409096690419901404004769382121895574790249706801823849254469429016122869079812057265453436746303673694108071454483051796339339349321163371799029096727250160772543736153611366343281249552244654189149641787060202318496321824931902500273811451331994367745469920678339112479879391221374210969504677891969942935539729356792079746399908358115522478145265559819532202034623353845815391239505517135177076541163392350152006188640716231142290314378556584283076431484097664086047544126347933505303788370773711196736813967799727514672091156525003360351438833517732901790251058964326598851804480223197022342006158267775962711015585342969835028938971732982854201173769580545035381193087186679394913553748762285541562777885236792352941727417618502090756691323620863085932279459508730851407514196645050989467265324383892859496448546913270187213710323074292913842927657094325350507956576789206943942276855989891099162324919714783997889634426433595694458211286955062889043267351229094137016655978484066514436412520481493241432766120807286158648785593073607119427326578246919936134207940324711636582781223147429411002546966633635139231779211222644523618207986587812991633781855594487459816179778041599997152314338374885449054624059785566930877204572531562343626990371017547279994956572124719909874597631947191609332332191911911720559402086389765707310947379315566598888938465238421253321855204190881926349162876001806806378094940475539205721531327904895357313043132027935940569185325291622619915377429449311967263563013877244639622842523544710345710982226352578257423249160965938429032881805929713831999244852693593713321082390128625103579598636322363572154303607846071570758427351351721803673817933654936455155369816619625356702531878585261301059604981713568123838015515428063620344935002261362901768853623094046210287010259735174059341978977448880227159990921428293293648673273368611919450765678223190700674333410940598412277511176042145286457991208339860070986052196607075116318089393727272046688380181105216263486929234024909507659764323841591065295655265665628287574918231966616435829100020300469012292392770897207832118891840503651730327541294106657909423805262462051225003393704942406121731009591560146855590349092115784370159746327007477050136191597695831426440262426430365626456156541581982617321866799688515771552829041487513543543608795665394808892483535758915292683771735258525336065223879740015759823922224938837563442170187818563679186699377685333283934355051860896783603835899871934906051869670479130697775788689758354521212691960906837405497751498809470746637050291566486654547523089344663481039534707002725089579553601493452487069222258935930875329109193112113973380947718600194757205025403241813179869976194874512780464214197260765138335372677837652461228881381181757823211439140730772120271384915461301759465078216564251274736592672051639565368106695684927025887961691962994752503740320069464318134240700555542654980159832000760945271396246261470611929938716685746700027182683275875194559074241068088699906481811635408834213811939198857850925779970399215221190226091929243526025428438695971998207617175194886444409328781095852276522398516412843383651729038778606874473182998992944447669585688961364937161924344120588326853399554138536715924431129532150377648297521071747999870508054021588810827352471278676837436069444006675469811562029468479776164679236663957516323979583514468814798283626242796584629269827160336283813050209474529916786699412980981414791026400975107051205429103527572562645694016270371059779697853471007464599977025984250901993934155793675230627088401393443085650002108601869987052842443679455995167374229199765958373377768402001759149000587519058445846799710348176030888407816051774624995620038403474780816280550225863465781353661507516171479223267414633375263979741406039159926974460136867991316188991677019174490869079261364765803987612352171258637905318962091075118855856288832734634695033759907365622451403310871494989210500662202903318765591577882885084408245142581163383870610562569200043326136718156504969104142310856859252771715333605424252673542621163209171153931014919617364144608137969280009681372247066993004135468168497609422873856880950133668317376224823094517209109537895533410844155519998945257225937452547074379942160643990813624028703511059867467150034270945695377327612357550657367798636761066125352598361376890090986637693428753012162662725609671682107933809682201909655646726525140811437392368564654729492006065521157131878776558299784255547507971648946391378023171715015535724763355012345381293471355285786884086543086605358765022496977171394167162159436176679284342219431825264317794699510465648929007790490117734466000250884203585084382637042319969255236717782381998328768480423527459854627749417775699458981088328275734857957648388674309376145631512570041645822984739419439568567784422167635815313329527961219275961072103061657418171346366626311846355003639794576024859599548141719883361124673303426862701436164029720964533275852201832726766933219325918902132490888588648327047841908972786638848345401832824640354164329699991756589770835953712498312762840331075227602476285050728493317111836139189794473092614182021253859165780717094854537782489060105803103155244159601818100890264298276243018192511525379870883716273835546194144704653485679510437871735327850833765609549186901640429557109857445794692256823253154735719651018891348803740737508177303921703838724306724952962683658673116227810189007863114965030668216080040460148407530754024619815693565631943903518435219675273585105124125445219184672929108932490593472828840722099878820577857779708657761764806692331052546891054749023255949179229232994814724793654342122094599542858212424101218836099287793254088850590768533927364942807487879334025373439201165636117842176818362075150906889826823980057691566844176987220940853576980302430964322981900241991834119946075553883469857308919394942165703635259431326280736971311551072810776945413791307792384375537747006127747150728953871309932377905248690022752841167511460317463073929697681050619066121282151296494365574231451788889641962383917187014245124314151135634561085317563829727998631718147009335987756972479324092708690681428850141593158905390136482318936123451465421000095658575812559326516684298164974823085980588910356010076994093017069295834877415497484608809214680172463873931230599537008370142341923165541264095108685399719136402437266547041876496147618017124371384673674976694644928609730271132301552276699323967692357054650551695368824346036683466753830919448982402822352462506396204869467376623944777836520038335180870581994610150351350554701236025108459073695106043221388663632588771754432488366708323669693765904724172654749131937513122057930672943358613276445905367979352360011563704490496444330183810278707865620074240068702501221207359178578879094758804294833268306806445691834596864698984362572367840030789120229857076057491940022262449833360689912304208511299611945014286222576345241124558171031163975916352588877848133663042458183644309279639487068450312418376424743956216117014021637535683801638812148360104683617715495266034516053826780295608187537700619821806611053612377972032410958150251718682497593310912965943540735557973456721896511555616928806797994268028792114497533928018966794908927933585219344327352347060583621795135438001531634091545000092886015269160189743717384017751052962233235134046762315311049517363821610302762114208619728668737277007945364842945637044241015680990600111620748641839228601619522046049355691678746142498698291682465313709336473121015745469084114406427634191821799173880450594997409046822295233352302911294789915300911056792652529115298837576630438784943834136952149008154282161854593407038356214805787284616326402235073891216542997442581492328851698720728073122927079166761919959528810291784609843778585375185445877014944324652409800488572797333134664363461366848770291997176861871498601961640892722625762581838474611185731478597494290682453094388753430839649531120247512707999803260592395870026160155078698218087378636132382669178059038437164440334524931105414717582295782790579339344600367898264486231151773116900966174737324637122602996573494242721625957855106919981225640618292923634762119133911325905942454361958051114238856088987384181516945340957369923530319154998805753740260110390230587899360368369601894766356380283796590122589309110531328329150761363040164430122158380919287731021383712990456587694618224593753727160368420443744355706866605528265827763316480729022955022478772625365260432786034960671060846569304183682726151454361648853178162120340602923318100549940798396474950222640906616590195550650226413620638349806923324825461946403580649403022607251014929774156938271672579917729645375019998186723747553525697499965203325057560421949589941604266985618071860690839350230805408440754775235186742055268931400469810983107219747796353956871726998350196940574454936625742321835971502690512728173681058265436812713711835619568703944340327177978183337757117220613117135435895640745712483497741352509312212080784377296957220011084527710597897260423968885202860449692277135883859363961055645911081981244280559571156888919669757475029830581667587768613199194829787953408149250123476982033493537570022289286223263384337284785446421745363768654748319121496912408140542829356221494965343262703289332512423793972179952127619427797373184829092925403017216638273478357839970031131538534415345664457197320483588976168029706108276512258120527639365982073693341427744098279866408705227490503549250749250913309629822453109514765075501388879166926193221391253353097482310466356016053073776342010953793589944565905296198605329530421071959604757052369745632392236304941353057488814229368998074735350131309578537172067126532468857476203721356801309875170855352236865834290002814144533693426270190040166956551430447064122871012297084434135992557327393770631372585241968478904898806092731067094995012051498771851313897518127977313446281982502962581002046912718489640471490784611844649641466558711131956823329355021983633363724390399804290285263798452153782926309702386985784046706183743648449114929389678832235676559817275715170973892739577498824765933752130769258902222010638732909874387231650634276300615382898940090077275276457452591328081958268450097879192511404854592911949781576550249286638063113774382923454518976165098279392488463465350855837290313280635902083538760482804330354364509657868062842393188853845511547572721475314127865530267093988644853108194893102411572995449482472973009274357848424335020498298945838527463229945548003745010366074254334713477908039850357453481992757548840308302142013399250998023094046208330870398883034507238779621385338239781434654209618619910460192328625813314614104045905309124592789340411112241887648265732327820252839267251483920103650316290641971556980398625631922940696048463534019757625327271659982173543483577931146612691193818938083409521085268902058288764715594008923379190708884480860718086834115107890277038027514392266388040810185258573825020274520593966038868895534657984976849231658555075276590398790240054762297574880244845547761611886613263727306006782749052070100819848926321248503394330569004832204555770699232550681420846288854905150573008909714044302594417090019488611165482356074245328683230479771336293838929325609241678235162375618983569645022961446558197642443583714703549868858151884340102070079738091006926012922788815594730195163978337188519673888495786168802320393688026491103265815246489284709451933716634204093822163539168895059705766026027172895773771692697550050271666666478763952663871584015714629914629319732801514694338154150603633912952548047403500733488245704506240105087290402933343964881728794932481924581912343871506394460697724230444818736838492220157716475499412193023893125629001884923666091835256216807045381415447107662902605382027153053834311266405448726841685344457631288386927680957193492243134676483521801155849391681979622041086340105102842363344711749731173352630393170452578441372915955323599538040450935100743877672056084548507471442416409725832254634582127938482939500703347486683054752359853340365911492778342015319947563785776119826997360821898155450875409551132653312058795276519791689845252897971155834615444302519115982688616944147454323995202781349906422056907426823687167084534313931973967312016479373556259991601485013389575275492313197419172089578736086990262616601231122256161014108113675925020461953413598628189675215115684882360059565893658295986653114772454693655864809416236463890597482393832751893396698631117904440255383398944340420467849818489374204036983719053801393988722878442256287554442014200407487712562474152353351038090268621047267905674782766931795749246479035850957142493502241735906707795748996321786007370717697065546425507828170368797138173490193454725294068161573576976159321022073925631977790508537987967096024704487640385797473181240129675934488565912664099701009364150108910896090142414206352033119455958992092247073931077531454881946359202978215251480049186618739767586900646056734610543739170009356107312510874679061764877884887649209969314806858282174559214191418013199521620880821866617496798953975579782260322250354920287457509172379112879557099330765024417643583749056548049477710112751978998960912190312016851245280487743616906283365231560669956276756742644294645890266161229613014436587874523881780407199316577926564701923554872919753409582174898698615812460504750977786441016463423630652752809567688843133038286507159228169724551466909028734210510983296725870911791507150158088569637553481334089327714673963976613030481416382313864490990875745326216251054804540077623659457830825686511071258469898969371010896082913455027810988197830299328527354545696805154605966492952602017912763175374577062889178674903314243802882304749551955719633512919649554170730047626185257749034198171397565835044219104685706874664429370097491743183316616100895626384461996232570445321410809010675743327246146509587452234826327732949955418140098607666397753421781168026808793041114484893612302346751539608072183382964313601979638524009570231378852244342899771054816722068626616551729862536698845949762747560230000735159994163581501574389683242605802849525652021273717947504548980940732875635368414284351977158770926554391841329853182028233831853234721001115422060760376472603851894477605068124798674030274778682320478852265183051249923094460202320690959922415520786003243842597440007061161333964240735897137433053297540092573669087092713323389326419186736113775234038483669207384049344542045983420922916774072508115611909480901914184052260104316514961796483712138851883159583077169157792935529011930054499290106360050828607943434691655968549981037835314085190225109680039472683363038207499573570330733308519296357499543351148749840082968208232504615390527179771106258118357179356747958418210294046475908082128384365440400836476411050746592821313568127675943522160928351609128507902804131714480753676136514989827999996261654748896371223258955893049385988409340727894150246778436650604504863921497074133809227900775352508741869243439473705355121852107871481021320118469660700807842337371684387734432267659208772384262018063387547329605718783040405463119591953032020927983553472213578358769067272007549461549219424888193312228195892765194584969849276757494828461691495789381537344215861000981604187731558918358300717816539320896494578841346394012086216651289004365299454191490052192482843674125354470354440555624589057845527609234020574614776108117556225675631834513369440761933819614944453119331842885483267491065091620392255615098239911700825213535280279548878883727339605898559420896709564205170541870737839205045069570759229562705499054061774419466678645274708290908779811266064273631158805202016536870418748196478032313838096213260243782172997169111733133251937160278241334850532257731232373956638900925544230102010531996920093245988092174925423900225775763316232678079162555968852259060769633521024073325418299872492294541325022582236300711645364596590901148109175951256750111803614261499472145111453953605696097500500930942095022432034096944178793446823594438381003638354123139460514498130257779142021094347143696164513886227887861188467869381403649967455178137523352428849482358183120785125655439543836882360712436189173133375458379956489293519088251935204463499955230132345025006192761886945520884168872941242187491075977939450104546305486410010067648295229672189464602103060108767940326407900660302488933922408047690141581718333631126605039054973630314761802451918092815829387666784559436684138692818347261730340588207345574947511392130263752370723435016483819574067983503613491540060810410216782442545051476444649591971621378442128170222324642384715287262139631773446761122333815801850285676077411240986613316425396237769909624500985513567799275360073615457322577495185823618813968915198815781138049363516887532424481381916099733312353806539898280687833202255262256993364776256492762387681447119969993789421121086926172186071201215956174368261477702926666254095170130414447978675922086697343635369812005444396645074635100596960592547839761521428203766996758260534155515247602337688656488813053666347324629365855692088068524105299068804130098767099521040128874985384448143567334358630762637219647729146472029084186599986157980374063436080532033138601526513069812896945278351215727143031628109972422021821685205182127330942139679775110702779623203045707148623007856702790379583887013889235065918347378332222808795870449236661421396254388166577414319311801079636858145567152585147997897792538255098770638091100854479160675276837700132618361535633626296409781755223146185253008800522157542743184898805520324459943512829874580186117886713267887609856520254524143137290015851911728124613610656612956073174359414101739139489076924414916228495890745870972590270883598253495740933073575699849930008987246374478984639982168832904617526636953860028007836956869254807062228199826205510894141720345478031743630791533305632591755251907141296533035420933937076011200205553958616663910270141403672068378446906308218008912131363389368815803251148315283014809822723129266445260443550487686722627761371222549371994490643860125338411309461386588609959499835683066970588826614135613959161698191662150462213836511803086077234095745305165326539324787650572438212534850321424690350350931823426258061410788278317384974146695335606735701839937177092873013052717180870157897030793276519341183664203114557420449556338855240936453149792538853934128055456943754762527790135987363197284554285952699738192577977007218285116399583685589623373753726498380063505611555849395344724997634879833352735650545117362496710896031201355587203657174624893699316297341586774036927896092125126856840525031037052035244499387596579053531774232781113842088507083660767428520150525824276141926222552679658471276130428447902667404168511850824053341828290860289504930919752772840341895747941955552388400810282903213108425121769828635937208260824406144640768568759986622442236783002822631371818282012644210274033115280727815741073845507979244706468440975105138781624310298168464998197635865075969867681158794010134620716882223856534239462994574768957430874120181399483053750602471273986737323367501898229105001344511183700861880285916665146578203604053480569779246320755174581429977300341525266290355202293242968763079489415501173894464315261849957729337054602642471969152529635166301354383228245337155482649053828825347794931631590492856750553142135314921790244935584829286243936665364617856629963239388466774234269541117399260271169074470284348861233782262030787184314372567967653500878465524497181322517864733678545669814762076892574663682744099021016607969271151320575433773182641772284466140444579475128411621508052072471839529151418677790139998849568532016584106834583157261551813900122183185784699269855783026566074873023673540844818658092979398899524764845155505904858053738154069584834916060820599625849522181563881515457763750738819554466730193091077407592507293024688265711191918632458705667499612815766680734438051535699042275591119337050177288334035637361191515666458409164652187880683400797408576844830894548283230464287592868284723808571131351602239211374601105859507923876901861127931298763806958820560269207959753379717475410917503498890724471586838950260564113173304307746484421964489219414986789597959676909440051890192427922319190345293275617012981996687139645773252541077536163887094137130940441500276343955000909099149509746004435923767731435542617994361503302829843222617372079953994090377747952002468464569029428188337578218068740099188111591484588919462860942053907574954931042328225801161970260739046679385374522179295528282397570144672184923437004227950461223778614069893340758950261458908025398157017500075033986044280068194988368484160879521663616598361915710629433324618117123527555279769450271936680698596731292804664180766273099074219557728027502620706703796676558948714876806464101447861974127342770375408303951138051953852799015428199008042146645378640468747042629840530192259444100900051339155034897656005243194891077705786948293400611861508942031876971883924076852571827063704352572832576196355012328402736839556220261806454106695815159680714167435336755590691723756459690743904765467188397158388261478885310475153451605535621016293757855079547377484373959939780945550044756938648532783476655969095956318565751932277018977360637293536122294528035781905561434477724979651338294920945269086234384182844477372057052652510134222837035746130342043636049386194485602054508294552542738946239831662007108766843852720505450261793117169834093233501945692935962342564425654237474485358484421759208363419367141568725027988186529587326429695366280436156670406603680222163273590751339444613482769214374468734530372893005277238936835930096677400556347437661273540536388941319396160811832685309969706366335891545194992034543270144655707456534124734547807634495391794917719764990440844144469153891854804392684713519169612504607994361011374696140286263412658451778753017214180097624751927613221250901677142225573419409243634818851074907057681227521439161082017410863953743109928734417836507577931385040935871585281379519629518358803707319156061028634337293107356069111982111375822255040429055028998982885612511077668203762082760370988399786035390732412374173178957189671252008893830611172032736471297693239153333161975716492086386335273433495344452643178859266400684057696729891430901740480439826530906553596216194917982431327721986218149732123928293654792327225540914976655201621074109542195918486966909659669276427976449506284293015700998502404754351356373859105467182718040502604602230370130117803208388126075370247686885810588297796752257191953570857957987085299926560204242494650610459126377734815542832698129307559391943174419579758305714607103493979172617596377990031252558998133673115994274742370577117059337127468669425221810856653680080045024229802017038260663221235765157953989432053162801063844068788760017095811489356944547237917266383558249772386944494239911452998195321150813091895947447990123457187363520977926795289947369851337677725503825157255259775446632580182161570642742569766144854763865538655152988820512261015084303157063037037457425361756609419879688445817064874699757501484069608391341808299374650537799497821673778145526814520928608896122458389042720358204628381576143022230862826507841580445608591738284569245227782580067959189600889259729464792337480445858413952634440227436418787908335994136970746549770433491094955112493497732145966650578372804885579128886670258360443906332141201250911122250638158333927678604224094692026439385544882217927388473176164588411003077711691095976453369517588224137362424457118638484748265276716939153774717679382390742066544592711722976370878439705827765866425826890597762984415106290845175377821404781743177101432357103038855404999952531051773959901412927674835686891253000314477717602748847421860006088676497366407945925663979011654363270197456522401040087073748100570078820098807512968820941719045494778375132753615858630343280794672089152135979148044092477090471767372361062239639900108134860993590853211291347017878958082517786074240659782346294791282455889862121247168930299396094075662578379091185931670695056268883579029465427465789504120639798876511659290178879313173970806844639943412555745869712051713423628692637059254178943049303537650760634482899247019465178662005918981097117849383346968617839551838797571217574311477184893822522137337181737926337445499368987119191187454926820648663800814721178935272096642450481406496392894646757413563780570192129451885377229168102347093946075693051954833235034723206534564182247094769296484120372138692616258225233883865488989061457607382357422280919407283537852667458912542875230821544159643818262313242895342878211048891973250254882795469630149540017414091770423595398794233223960935880200140632953822313187177773880461493625674225254833152182211065175556884251937938272547100244298786354732241827214834204183098832063381578695172120078351375393697105575765484336701511951332555083648206664566365613126960002328364625356358355385191124179173392738054374417380516237985584009391883388117252963653103151112162799128882959662293947026181716963874270967114278624339046589102279252442729190809491090242295614630604511949227980321649700265881530445255846876608904387142268734937116359919987191302794410124853056411240989389958898243079255849894411877643117603996143155266878783882147525528064193421048342449136515140021557908856254514401566062755089906413907765616739165326455420171961195902191505592554387350032103572126169061408814732494803996661044667483706703305010774029528116680276495136186584158067971942358574402839629676713401674658590448251273286432462386582755059431323165915482650354341959578081732336363531589593018553284728915087502856980011256715142343447417286943857699304196990852691164424202802474668071786786854374611302274118798472845340550050271652750813932570802085446722112331451322246587700292805346070087817888409018004016818718701037872802645650587959884862977111163099778083920254104688707195128808213788209135532799697493399294734457626250945363535202672904388062867459336353629397533026131192788534024818521796675912241595030146439019470364706630802775173465961172715709706712152783007156336586305620771097510774339972270146068337012701247565894705421602997728631060846243968048342723965539503213705833075197525866559027156552652018865778189502196436469586599881893092878835770245967413217084226137183661112807864658904575790349225884672649992296047196848105018008994358738063715838131211396901327251792504767795548466651800346115938106780718843905190231331123660780287542429795226942721734369255923731409910094364085254878029607509832260938754149222817289955045042464180708701518530091056471111208260563796856100450604408225669761481880710899656647432174244833776005161336171729312804441813995186867800870918855591565544154519616934714767571106204734061514763715232986468691926639285956949142590538025383969912610826425419164267200396157376707769498520131974416550971606576115481337479877939246873614833072466218258349362551629535385774400903359432895827929687893187498320943432664678125807355351587034391897409642856443375121127163675295871560318981660519688108363830922257642563617995681401226114242191151835368421697662525371191680932926189428993427866600347368370795979320435000108474463512687707289479879473861616806769734145133924490830294758029993248142010226644985437377044197397295129526818075422703370727861510377468491636280488817498313721512373293765528736096070174511707978157389089151683722996556007559241923233415903824869780834988460866730687408884058701958875219934522341529726503746028466279059620093372637390687086939328557046629856913367875596707737981449225588630038148602668916875224519907042011868006806124791500359046304832373403906377819242618660185053843013619087035184337702796974374211264000093039940784818905702113558025014373259038780738798991452968903080522172468394318819628337224013779798237207823537569660584636685072685120892620805161168921325196371730361329792608995666853850945390760920535129752212236849956676989041287318706460905676502427588507644744702657902720088728043042986498261998856253732742726442926156654154412617521713120583369399707676647994273376920015467492191223381185299089562418580291743018303344944884258669750403699534024137620364282674387642156645760602943509493135505786527726740893612929333748063037000640249857713108264385161215056728276785832818148370918066203057917674481954593925672843374909698675887643841186509576742759942395065640348038363602316903736597245399831319306079900397505597560187537085520864839413650522336501230183525262647694578636589105847846669594871187716492848309055513808722592671655467076843164917547724256019854430084576794651397162192855154431138566490061092164751857039050268618289360408035302508384952827231118982039102372426010301692029881724910847452279375695229897234563409199100834885134837299076768082999816261911422370167908443190818450983253148403443483563990632189050683895896451851846795584177936798483764346611147706952881898116870074010534794497379531685550986111862641161898102627832208043654597524786758034463411954689647654149678567061607991216305579665520272165056130148730975681715596411401814370959202768819118137931371157195551456932602454355304411703031104098922969952001071286152725800619944699352438698747049311986160673378808553043548658664072155488100893352354690620010747965840823895010689253848529504186115323265521066510364490453505565368118101274294877710025317967923444683320048091629593289070617655294302757541018334020709048960229346862288303886249419043269073031038725182038890844110709839182585156423290281047957315698595630847916157287696535021194690463772618022774755345278115370410433479030484478707907320391422807738483582782714761898484665859018271354903193099837025097159298936843750767666971539944111059258253591922639739289013092770752774952811791372415025040697500250569229554511595911308771117521602741824523280755974410454584093319119054484481768542032210189832642068564715094480966888528543558437306678819485298076582459195363116690130359845274066795764536610303334287027267311095742416251331501562340701894114519677552981960388392531007031563218869193935088640439067840538114955381086304716380743293641893225637378875426517828039837461937521422347315412119019368984437241986613393669549498611959491808440171746902396713537623618226475440278480235034392646701221430653549011175129746701428093259390563199874393908935421101332572407925555431844574815914605092939864038557570430461168788621931197311327458085701195994512054808509721316891332075820837573237830134778336155929176040223354124516016060808872117996539985022656433705983433743074354941688043378293542648326855816556998808598000140096121240090636804953453591373399977456120569562387944083330450785233225587838764393939610238010060082896856970255931935446775690733913784647200396378614360028821511468386165148644282834030167957386667110309117492781586197712354925760112037822749474372338398360048706812286604297065969500465267416670132649188900973429679570349796648525888497098747517893752811117062462714892572518125505626495423720204954860393265813711422732241221331281081858704747260335179562319840380268281032809863607220600799189293332732556539091107239653832014041206896044509287752879679639398955041587208199515905801126385751486758071017984058257121893529559371516251258551781360243988625443105863343149716519004738870395320635637341771534240261838116087983657652055925821305079022589776200432461538751597054176011660700201873829683440837584563634099557049692119981252328526578510142830389595724978326549305893855305721105228694289360682668764875385928730232632558296717818953064050028694084161188428496612411387006884824613336350944170423675698598483987440033905905580775061168182288477386895108903637700492801007274572675483999500410549200464901843583706387449298424097029833283232852109164743724489368078179640291832040821747339661619464216156850456131654850365203415936979205739422019851766034923040538984662989198207468389583863069969035019163967309547989970803340479754917218376256071651574368598380805148563914242558022974749656091271219575271398573329232011357153911077795932415399381648088729275558895053072410525794684722219471706632609536351739445183543055305681406744973353673737697147904686345676085454931233432915998524128899573036344195432375946642398796787143881627481799313474125747313829980970208052402640893807160123277868803085954267406319838173003593177559279643267872327934360027906273781806921363060811805055349159779168921359331796909121272133446698345792054134113494096855287949078153735937805055166346766238890117162253852757906107146374371067450810055065184461078619743236688016858832180521929647336904955793934991602848543490995954441182108103169259463996623967866466018541341670122941285873218935564866429109777419306219713134594406876119249192227161419444219393033484677929339465399157165838985222976665275629182700047741367410538715734648793974881464111653717630415822446924606817117886597308676847945836864737885890343908421419829513695061588750978148063330334259161947958984977386006357701185245691652929129375441873675592253770153944468004103242765921994264215539501444433926057866146506837864635267611692406755460619117275739407298226602161784872347361022896824219992903058017041291844548754069747532311317902409720145063250061362101203854517226005333092083046445522245862199721515784173481691324838126624980154945178338598296224825679396381202281256565349101610422400459285212612143129192029424483418230628511564148600103842141913115372825293259005741870787972343675206329551116385752449726608879740701121981166860218095889042785231674183122622472369809272338200043909857702497237028304968405601797147682398284461922159073888287161867470735247927413805468507760100196241494813672261592204824231752946640718845941750192112221445086641288132356348766603505481356223231116021914171644879118042926227840381130603280735074334015051567751921647995171029144293042598215346222562675510195950550045998270366392472557042223406520189138198393757771296660433961821259663863087256048132934255437069090815119988054899379082173092109617469280060408911276966838319185881308150588711779348675439497997161892384817251459014520675581465204520411392428899282803752228145297271830372047646750156658120953001231257580307890048218758731905670823840219888538766943319522269442896701464887353109251336770670526576222270940947533390010711723082444824899790275153118373833054477797818976199208080410835257444435221577554692458658672148190702055646806410011342684503732393257100741174081352854851724744965938523556400557550918060912607673671075288683391372834854063659837090548914218894929791927636232887968924645183578222452013897416487489603529291595416640355388708859457585305233405597634533965885441076293767937220296627168065984434386579525489785985624252271084741680619547427967066535564633082525545931721515567873821107698568403790223286942308319956720190322296447256878723976792452337006728672909282971230524152475274927802010180394794789753567747475835879153297477554016397796152094162708696564611501275552225065344922482786449225780375380529584414661903638798401746247046567228493542924684607788557798143629186159785195825452059486911964978947399097456567634117480677698124636125519937261403441717859886580883745442394947334450182905709661012880770715755017914529893203835719826599581271405804502308906564684770591736377806976952076223282354398860397365595546328736120070856955717061048681756675335819150520405952965942031121717365162861573344595551696274082040579826872696454785284096879844172740121072663201211273030459374213371500115515211747822665226846604224549439440601222854924985290936839046325518461027591104367450466279396675089051422043787334423421805057722118522315012606991238928461099034681913319522152982153285377268799413316099784583947504585572626288876750263645155689491240884188109812232010148286351791977037541745746854019788299460932923108241595821173324082262261622123763533553818094151908804711160420897681163688768584920838505848339846830687277560318794904887268439946866041809651357565289030450036328176988819516104085697619154576360716904766225480515166640571812676303774754092892189846568226745531838217923918924234835388625517968983423426832206282982619051062089452086678820062973014704108289419708748048737183638129119809590522707572638677347715778937032353302838033720110311721224750581774038591097732923781038764549580751039133446641443039848984258850935903666409780319947838208641912914610209588943809924854569424140973903128337247970032769099954702162658825992155704116401327382832740922458796382081269880266440450825305760830202107206168425173013515197676245040548691649518800686604813612759927531918468532089872684040041518849821208422932822558056169296959436818976925365236860559872736524360611811480390516713042329840921667983954888866422489120009295592806582277651690863069101344562484962506365592023456783586955330064794133777355527431375535016522259001766895805728363131394540958878309773682883312896361168841995084550870762492159496148351058203489711605981555821865246033561443644239107954574163211518001621826847029518497823497801817557536313692996468878057016112361218052760757302670992476222718030508242164477152759221585510475399445422620199059621917301608594395330620379161855033569331163378311410947920495795018776544913538889969860931574910641772804732054960385798966727235232940192974689498520046201547255397720240515193133520369467276156569315707403578620429939995449821568404710300910906472985716252352324260503746425639595243675851512053893276423822313611883973231493126044678504555663693380805797756083637192120486509044321104326679982213585488321912969573894603862965042351792363746836690953841264034968929077889921442985740194238445087034539359897020965888032485174899300298962641286681876832369585994581403312833057132785682094900845730268355112705672869220473272333899622821732073810313072814757991715540101112998709973659906255878062597434571422245067149111534914738666221931248858026145645400993059999990957904823020469380531655370808501876732471524009366673132502894213883521003997918378683707895537549034216709789975931506526789131082700891840215604510231150559788877025539752856003415029172667329975718759476658201073068982016568777662566800379883865024381652430732955968809033630824321858077383109170977349099005084885172882657668605364063997630785735883771960067682399337388767261114579910405167240706323955870752295954473371799089905033115369877576115699355900690319471352718241399771763193528451530011457852692502325705332327414450990120231649420298833666956810288979630584112965546291159446846682590436682724997915797398073804157910632319055555320037460113787819193241673390727177776515287538931636767276106480358986279344815269533701458121729985250684125714619786730299575661930374985090881320374006606949121331977400027362491902462125401458285497217969226230456901694293352786237080943161319180308957234166381058727364935624852753093477044486451692152454158696501550758875717104828247327937423676303969729637935358079520977045641393272638204982723483866910847254648547859618457159695585578814958088317554008479682663983601282952372479237659136765647994071585282370931186466655147926514099286469624207807916119845056957204399714908545879641414223757828843590899478200691820644463749272309071072642924106325026138168443532435034935838759959601502253718093706537398754221543210281720175172720252127732124140816792863083382163399331429709362084096077395294597346066606540945514734916959034645801543537587943109631110786288890116212753227007041344457185142462890986289401291697686363257530259117794008886614837448540691006164760016903626020976197129235306992682766460346730305057011746709006311537904347575148403269641929408061978285012688030785409455712610040378225090442705560647595751474469213011000613426223003046363004052670117997070015018738510038169627308482321504834088234064909111396010082006143460690121568744261725170877379876580139440661870178442653015887531797526198554355102916425160376048658369793757825886735469544604553850519796771991735592874697575338424771595504954336612786529319267902453967783893131227599051340941589475590716597307282529685951598471824390681044239234244612207922094068848017298024834517871093036469597429911095422291701711081351888267089973819702701839286270333764436543402643039181451606048504645875740406014663660491064180347741319262302781066420825484759325780500891888283742850218982225334897032198985974729479294892151811354078270667167510632479565418988396059689367610816874492117508967220894770707985982021279165052644508605208883061769368461105920329906376750122879934557228734364463642612902738612263806993043811868158606246275630049757944126872318342928956388939402751144845535989977011376462079248914957751666779055518212685479675722189426603957064022101756070714945647309585075868753868157845887626136522026669353219245565536947266442227695913041700887002922943510524558127058705281946233716859811306033075150147059937352262136319147546484806243387354235400562202113844626011715441258793297309713800644628650931323118517353947930693506706254197611683484270391189584599671687634496886761724192338582264663142239347562650355568393923393059017046103681383584654516414453742769574872440013677505865165960069924733554078809849590437087037460790117553976518322521169150324966520025289812865826172809270338175133105724583120324950397702835563003540199649084320683106217629353393089982599659642245362729824772791404768179550169735073529531284212428690311047159051225291239692636984372381345216957676862013555558055316310918381679470784869567365890922288926139122259706607806775857221193823960191364792191243817164849358266120488519897998248960575215707539249271142746126122031369196146106645937108207687420145867140166601193660505404366824933880802689591013162590005981281438188160799163898308245854340779652714789182563574923843923562454576651549330628642530955366888967440125498692956936301933946827430936209915420439160431917211625361005271151359537681905066286543362883696012802266634751970319115052985379579199519971325483365891427429646077508292886209379665729170771423514181805903241076654958689989653277694372380606557156002342523665661861306485675244956351771960688316911394072535332949744897230384342413281916793991777291432356077000214234026680337857406668814401508865063935271533781811277607667810670279456649443301219780452927549202603983460063039704075456690158317017997828544834209792815712912319556948561759573391095546635405761116123056912463760378876317283287825452522671833258734670792979253820902696819871742298307949713912130365047768984493673093193369468176056441675411261252181186869929298754377350586874141472734975188877856196087563640353990413506193348149939038122644334733503620621017207751867223499054913200709855329027223704631070907304710326010040085182895876327250307056393436734424634080318892060205119794784001646911157336017632966580165199109533942677856957084096640370389536337487735645119084693667457221391754867256966122567014141556008425743945495546772682986201851464344322800535912388970181849907014979181395478757080731979506990620688180905116370756304661285070376313008310843893061618637174192594105028764673830215289553672535355826535327847551625008296046641989085957539781220654761232089438158383860689018217268713044387967580845182294939717212838686558785698631306608287777764919969710285185980345069645608237074220294795190292851600409570276877409428766602404295938726492163156088854186750127308472396285730572843592207541990791455548375614395347285296638897999783499282768532838875426773824899651272463423460408939153366645836398607726428022841749126256052946092653125590565229932691332363421547405325650555224358509400263968389065052308270468206604636276732579420469141855268644379164052864898421827342244348429157004949255832047956346707659702794363886478324974843713332579507370545119956479682986536968068904952823665299620379353918927263718922005586513339589884322813549798262351043177625952229697384453990189522370041113493055066026214492300276393213923306173834542722216837914425049411802012143672323141438565230426835180004194169103688201514205926845087160885104745147391883510986913906541439311513985772615001556849964125103602307409528783814854131298616611445228831792387651311371864683396377702974646572024445259074070337831347710599131145305452804447096256783625794317243638916524414434917458576283863630609566412122253449781253721453202353203042686323949922778821910656281191716414513530345915645079288565888738056249423987161397283417685066772463622031864228927996553551354567129688882684972312654373011266990258025126147997594110971777528738309955457847671560660445422273664466729818978883468558599074087913644758390417673698110584653712527338960792796975672749384455719728862173951662330715911689001347433469532531295074527531945604048105050121137304030698341760699621834470794927430237743035971733238003546725581821796133922022972552289668804401160366105085389097644656242696892478956591103341377170817521856732670975013878949551160334160274651801892018348238309955466292120911563156936435979756172700763465789599839037387144246357058971620024208874963624839947794570678786417301542978647083659784042219820150456027590644898789059392839446912723968321887076316668256359682907078103501789426650529601099232634707326500532127777400229502183328074409675797195193905867345670820577516852532134710927181561755456340915549531401240594280830230216058751853997611706856115879752432373784144765513241630626903312104591488766242703443472640062565064849064803658265942344694171989320677509027642879391030400644690626486745387459975528487194960455986974844229384257083173182955853864987631352648414217559901826092737468075787345831026998803329221173275850548170798174421315955617916218111775619684870385968587162495261547000700787277914481748150327352859276647694115286081526225567517522735355117899630833836803050106469368012182558770213124627277993069845704385288865258557407529493725846190722249255843176564656736845818753857132516094312090925965462994109321544129812926851642548988153611079821463052034420143375707057613424337736504338247689258785537139091158759628189498270906320305151102433046044321247900121804580054982846589186861903787309574763630475723829755494587184330888320135214313113190719605415119893149646007961498079545390017172874583128177236483676036367168397483861226252855867018543706109693069973301720605392089162716770391595120687816576473879489450644720195677706987310711770311548510020691061651826695259293460837570478856468407033552121212139199461366832354632048668238849303062639767399185775672915661755288575762058840118363379582265054196566162446786025315298705278500354113482838537521761558101691744341537550354680669243733653261797420768906650405288068256096377702880475523532355747889304642298211655381579039424689130668666259070770092046120586335338391267449695437197436437370254401891197838433323512306927981941328351658170614046527698914831329882581565810761221521558090171013080239946735465186726765555111910402851088175533803883385114815021944480367830169149395145535785587441485029562341597653626669096151756569479926555078864272888229257789074091276926336348198244215228563936128847934698518490625614994370619319666256051264176087446942475163910481228047196313361993486731329554401733756443057268028243779314013815010633216606125662773146416920204736297039181504790078046569618725553778332390752839324025754102199299148654392714310491404051336848966566693370351176796715524877198714407241021824327446862425953667820825376148353426556937156689303546740067079642106226103097882227194004029344171133212297278386726223131369485391265903548415267535884206113514369116853851257652715910848230706576988121432716965470179214760761801344649477646118320891363834762088550918074023551555711492232190112481078134344525135656187613713280735662678841781851414683778794061388966209073245802488768433369039669915838748485359395412025078879320897442061398973706325074455636144391913266213062478888595213591472567082324207140173467749959962150015287922412312367591128618842137156380228798518738775929296464829291801846812031096790455003605385849503940414674428796405645101782862843028442672418509989222580487012578442570456255052487687399730891968639188241465575335676478291656249018476125037935614367125525565760617128694840677705247628336191909844694774068849898038629428702895652898689960189893058195288186577183415306260969093630721081987772284846115905850027254087712174045714477326906217180544148586848184186436147996417132043698437281061707298286081164073551213722325739236483455151462289033771316544629549861328535866568016494847945910633444881043039143297072405279055960359787578056782912723919025028879216641927478346614145833403626321438052260355998583914898795312123556675064319423859294759476729385649998952144322411078227561599742484779859174250262141504521241803636252052901101178286310101230290100116851661111982238140226796191403084544408475565710915235865695945458425127335206530406162248097039230150969355887789189001849388160071823525146446751213618479923046995464295320384362504890662267279143134043502243135067365120699972698490354940668423461318472638676953748874679884554808149237850556953588470422723709280462884381276996979270343052427131314454944300555960439682604431530575839129811726838439223550690154009324670192927209969476731997872954017489566730099148934175613182820816272082752177069555490890516475344136126420054039757955464991677224361548105673288033055605554817958754283506757996099606174944402315372917134139710878458203935021947482195031140760781660834717983823037281663570009880354891703888459177072005193502362950041687645711104321517906287279899063832611021297597213629438574720358529658181876147259453398359094497573279154813970064584919436990400659938532722889866382498096556721952192216818822215299293646390846409799427349985979861562656873201752226569292693751786034336092333120234862693538220513902313411758007781198764786591994085635641728504370236983408404226910008890127123719874597892495463328175568767496199264158291663697222580315597158819114249604949991690683381419672028021564671694347767942170052774785886196917016383465657793716241592216204223093499510326743442591005637650435576839923246617245232537834173796138028931463224593567349886407793256171881112460547276096239026769524062740502932577041377480532546061345322219718660275102285862836957568272363723263335009415587983684463114513027396849822086777496800647699387978771313044152492432761182448604477129409400336400407623045508039066327900110275282555353022740156716083812676401459450919935275770671935370556781056049571186152002178052777130211997437233635497138773266299499764946385236760815789568430201990080849719101993434151879683223422236998441221364554811229247780975954930482500926724316521876575697003769256146067725177071766897621171048047483778482520360194851382262957185433685895337359314079653801905033675221589320984983114031875435583336564050993211875560673051512972829019017228797744443219969811403292828163439159776582186317410738604933651880259821732124173362277229282201448346214400435191680784750989671720108306674791527072342768367201572809000200583216152222705493889749751015390686031386623638319579807326269637454872143351751127047444927100952010827134024131989004592618157875894784628307819454345101718711177995818368451267986546021690290269318714073696532396081875669462169978298624354659699912774069894432971991814321572508647026304049015384428751527672133737004382118766129513493756273666938471633510983212884909226923759866664090210626224831148627053994647030952388119474734646897707681981157237492712624132516264261514258358452425520300981132517059031649052951413060108959363656468181364823733829827719728335371994259762209502590970614114784372894979778978914060002310071435102187550451232714720372249447535696286962738405343616063567771879972001167516381201194495194553130128351254998071851881448563577785299935665629469203104698501248514788142801612098923582406690782407576828624839496507182899004396255869216830675817737498655006121114158510934799247681569797503847730335777364033466311050540695764989456409462820826119275957385360166173580953849510815891244818843045176145820384235600022435854887055477886273994407766885702856918493236494120720956373488521567527867431511247473500805222496339806751652475115660341540682936302681521741114484657236838348223544599727694152207506082500106208245328463932040685216938166913207078484963546412339233637285184654562237593474238786036206563827773789977917462299075176837973940791718275660774653985910197990754810923666384794586088359461452581165785623462942347260246971638938366178766837062746909916190061800784104107562236643126612976210424812429039544005195744766530998665840334485183806506948803538862318147514638372961951906401837690681842777263952033159565110200721713404919382779923973719422224253909167735351978201080529713059005549131730357365606235416385356993924284256362556483924539767320495474260189714874904743461021808069258109554017163059535622992527927396644606528832260894433286555919014803592369701874161046468027920177927963505826226477251587193273092746501875955263751585536650463292763348893371944328810223087935694125959314500427045217448951769619820916073193296133885955729254610980040924895576732313579279465996783788999594051816187367678794358232529964637635483018963487893486415656931839998001875560415469495645077888396304801092634035534539731525800007622320156634832028314227975302390640534369099251496506454465812472726459723619835699581247697276088263928599266778205977077222549715569822803069859885475304558742063548258407854023035875859826861484770947160039596691193420143052391305093825298660902936325702274963108123696868809668153970276854196803511079928442188115199647885724549826263449523150381469501527031795285538553889241482559844882937691236277755783854562008583005394833090130525243176814589659358203999746467265587038403144288267985120609851430076995531658608265377270993589393923504280689892527919078159285869075053327741153093741618169377172495107792123930123817786028447586335547035444656115279836591611855533640779306701622976825269924941684550973900774049056695748054497566626925267473849302185069380070786355089366193594975984468977591276159795718100105531083766198348056195677210473777554707153944996255049230643735399627118587942959119169375773745396410340674432832235105405529228454281598764653055221030207538468185134255515263697188852341247455533926273264311444828712798546888083764614822569683890261797246475179049739941114701456353440451870863845909855795127936177845458373144931491901770879196651407963768261252102304066306675663232989401962726214600028948162502035954481142632939549554691869879751051488733175819445641807183657501127145015225650622859971476136677147425414965042863861160846894408062719474497843705462783217582347843666788717202984505514694325535093042494662000052865023395974847289812165189458881928795505100604209521669341985285267121968669541738283195431958611626828529099104050525010169761008539168645909176667502423607732020361401053977615750369513666940268658874574632835567761029007035532686868691334053283554157348475644781821603997078775270983317785954687030884020728233805541083211507944622781368134360365333157350699093054833591072700072843943372289181422778658272964410373324899658585184766431709841700191967665321151967733062329098249661062448772193432480826261133221855388489149889999546537688181111778056686128135233381240006913933442016829279055811182807299231890447422662265485333862548570150379463239365466522902982147628665405629094826360413231363809417795426784863994942998794666517137709700389132951599313608879838069055722458937667805020354635473951116973133817790392533819941345429548169975144708212648322280241499510867488536960387797204559871540407655777366845108879112330720162619572670054293601004331488859289681755190715136156516206924952428950873015449561400674939800753804681662044616721148774265760344849566220306216736164920367611411618161039542207449505369866360704232307404343624531030443187676678165002594913393866404209871923055804940446491835764887200910912642757784541991185314436111253741367434287381839076850443901794916545611881245338036566439030118324031238420887301082510151540828191120347565614340516840714100602206072788644897792248563916781954736056298382916088419378981262388744083368840239467545645992870357214650446062870849373988064067018022080060097620618061998479620653202403055789473167100723297369535605602534071221393351506078888807398441417838090174856265531510036363403445523164192366184681933394446863989564093642355269470439187012927796103995793143362480685454513288618156184267912472615100061763607235334524109935642524879085211341524143183406096583263574598514426339762700705928191757056127748098834726885309294399117021577607525248465717346313288471189512786949632265634415314921852906745531362691390795933820498594311219340640256718039432394995231795553908889030607418804788721437208327434459564866572429606112670535181475512459565552227152801094241990747788078870992767473035258154668659752230665355613950630114338836440660410593855563180837777496262755596585170082468968783450229643115645753493911856140701782771960527046482949936288954990762287876785070987259221361294055661367040690579009706379931036191571478395740968129423880880086750901365019634547853191891324808712133790314593734206629895690062183940940336824391124405750513603846568952718300099179872139984178771258897728608457164080053111709309764391327964859270204555118544782920971900111273250760239661146115427085445477854819138277092902238594767670916819536242541985576958161530354095058597623267707476125524906396888541406322908409064443812684652159127728938389702903947620004951248544059545353037849320531921669325467988401191006151185734902261300232920282357675410278899506034807958905622888561792678088699713858099370994467925450538607946505667189902572242922166266885481500792903062252778524079688135025640800384629150814330221565084979796119302005287368972604469781925629899302177479681453090097696671474491645793232217908148261234134451006235589526294053431625308936526951509721191118487681956711338912487723343707743191260965526115875077236557082756439663433409440735043262726184367495460994969650991599722524453925804565344874851878819283437478415616406828578534752117291425539259008129347086642432240246545818342305626112694374468109575876228524571824798623147282330699702672819382072440736837427602998292499933253112857190532654083037623629941858683431660347449926177711593047673815059007084658744743915056291139549868175125109595402795446164284404150824908508751161647154097315035158416744120890209857818167019201821796758005680790803689248593296909333262594827499399868703374821362661551132477318002339191029176600054153877508040992705199834821565915011848337766263850435401947268743731378736690468526880396545021991984913869732432971557818059329120986441212022545860991577700571047436303748694518289868129701835294262784775063582126868899692162319879165461616812292605676072035327210372037491317020987442260349135861809103129014035473239358398170836660073494760799136720353257755117798047540041721348163751823544874714717187491830381355200926440283901233199295255718454429518889128265806019970522257741092426527409721051996603579536253291649035851419751805407160687141980004246934857960190514754702232102280299362732405032123803063035880040309824030023929981616680442754730987375143450804379312461886372273286791759304661093296372128098066945696354906043453364069954604135841016154477707485752728766043594388589851081818286118274618930597944009654750503003966897840546900719764297497935026303848620608664828524251926567394124977713618185289429854839877693113028848116162148454612226078961376776685236454135786783550086784214032154708138585645791007128612348633355022323244253926966801324967559035202139953309895078784752612919680450202530456723164262387393358207831307262159457247607818634203487620712790375719719998722957504450043065992807546083413971045833466666713930450241002159971114415812894969667411284070906299299478217805596078755127206897614008897766100843429431961269518902148809781082295226833090850187769120590180981966516649101460306333767494494137178707767447599659943157146384332698978469474973305934144326218022009919181012427987788913197012985379955731740909135465150716626073956187906549103340758347192445271271086987479231332298169662189637802576313266058737486678515966055925829518434595257732126856913426258475159954210701341277970027761334957446256757041302276986735412094246336441916835557414294464701905969752096771192707663808259590309989197475756431170316861063123947536106396580501162006497220372734397533328174958482206039504615637872340812909401005035426653793127799389837223156026255159465716330646429771646833532566648570944970089467365139353254701861321413900724554672938642678795017422940505803751849324948686986417393005845897228664334053131954892135686088306935802116170731838001578892315751704598451927275319042966910143754636856249280573410312112542924112884825314582073513892077322722675668669681660104973604506486073593583575177435690971199050255992931118586903216612209848234298867598950289553007060741679369328890528069218490230568307925738320860803411274114291289568079895861121202237805369020416968943768191632486060853942156133287774554946551314038977723449452256853484451378636533829521663405813130965853405310409491951636483842440492709543419257770432249116355350777416936826068524526015091986181174153463030431581946592708335340130222978456205256708752390954534885726435587641365856941056464336091862383068717261885736157690774155229628404097766367470481072465674302574916261666380773930527959425364184039147335007864434280741015660497321121791256583829670236638197285006491676031553697010495405196175590925407389933503579165100471386243204406945850498878224247113290037448545277668712483945866887976825157065342173348625703919266491137724288200021528003974024049755308088109095688643311350184082033424254059465870355385917462953638934177804548522597387893059150199206783640421961070103009700652024985950232882452847716736250920756232260122815243808514534480309946633459190000953362619384111269963507223214772535905636350483549571636105517266748584907925237860099931678635497405271963404977624475570444059581066555762859509503873184478393376283512192280454496385647594427492197358450106323520607067112057164639294004005859441709551694495566611191061336912611984123952447900234464458281880754531668384841341477181514484189851669995469035737053238845488786786588987569243193626790829542658430155270308763973258148388691956373265641971352202104027165004604876712337041445786456616452795527113866127044514291381712224722238444160995944293500357235666815041714026659888557107039791153741778800455468363539941760890090452637184553509811210297728472984941801586348570099537276936237904283335215805061427819342106448322742816839221751861680695102579869497840425363440787301360389022817201721865900860875471730307467742777026276111988116987678450793318936919840713381152133958028424018402363804117159670115425329212738046187997645585282582279424872341430801171388197776515790223683516847174219879013673487192747439149719696218036412407850074213049697116987844677344468841275730189950694315056219890620873294817843921365334222236723415146504734520184661018586247827166762328352315618956652552253575641823901453011550209934443297081126762994954543947474514996981840658211599394952444254688637474148476223601123429608384767308221258544693593485699039103609552224085773688930204115268758799246020760542705058250170918385234951780654684958192121326074603267479051775404611757764763933911116859155301476388709175517068562333633722529035403127735540450596111949578698171054801187042887844181023489259706492683693601511472494444243493629353894787010336405034057493732344042850949657410007653277683743787423891756071173139488898106540683472287226147378176716715629777152820015036744224178755316522598312820997226655935086498973915613485242368880601880383135055159741338306020695462556033479077657587093205956276910557892505321375365612403462894890702790373141691922310557078345336533589307862436985402822143751681747741579097964256611815595763466079163134506515420038245140707292974556112049577740579282373112907433402800877866160717516506882225529400339614280774509357360389410835296680775741241520227373731241169848365456337982457269471186700824379855003566354597193047540316579426594635029507803852962996041274704116715385904331144941451708240231930187826615185975245014310348819092807402992976376773169530605451777068638198970027235832043102147934136039628251875056167135175149053413973396593034690063352067905774099095401815573450571354769612205984459683672215176607672721244974982591659514688524105338527914068235680423574917549962281028879230974101294900645308174226874502793965796650373841489292131084460163441920971168900543634108714508450418287157041247944025185671994345143845504243988800559586301247591235486518505384784396801394719369537094805301854977708431370554144904899855378021509084877365629634057274076111732855886482287581460579551796422613633953266979222472495803321985154577150084606056643108781109277971434399206272751912881946835481432129723596002478372679702250430238087345048864260190592234306439739127287748361359429161832646620287272362784076334596347866620346524762299785996431729472565722610267736810903275060147534303102077180155599691222501745571962356592191580258699684373499700831156273819787361353592254430498788715115264828884888004364023020925824561058920102053819805071922175190621755015623912536952955414429271152013753029433813046174445184177563419562039930717878990644957919500571001592263429954340178880610141709658701135587320632712429904202095319877060929084283212774578417574776702360571475290765474672895849198796768901851055985640445143799149071865905002428335230762608654984091841680253244441754168424824737659648679464298711475936922658838524812920122990077346156631739248940011784012659113408737430753600873866740406055385913089637064935664144486561786204755553972074507867511548588324461176630280338932648836302181970747398322058700362061625756149918333271012781336689576599774580068783456552012614177789286671260661435136407928829553683515203674699400095245980265267894542312748832313773591124448366438673083675107637890009180227333997313045142514175506235322045471976643382682952218321596712958328485269073049997834506766407951806194016585292424618531454236200065602396651547263518112948543668314462736593376397874515442249937375445091732015400950678757391613434123199077913865838528948743438976700627584669697022808942607539389892605984119347910215959374434235101645245134036730305270111094555039456640301388792663218266342984381536139781220026857117013659846430069630163082783470057311321522887790757353340893258518603253285701901303234511485021400625763472797855642859226617542508114660807715722655592614156365876346357250030818784429083412015677171975717871433946936632813723139188315947414278893964225734902291391040948596016735572721602756400090712591652145812057362767217970105547336752130320812857115495107675468199165144362320490407278561861562355976991952309118171305428411968593560765453214783845592977950186640930282725304577863865535128860077729604940588826366794301382841024181139483921344270835053286228010970511730043120931064046781223619163638850520333152801250029951996326506652730651435956428580132663022415299401035245688544472280441360716814026181564367796287790565388574688035130320371300351180800708156417683243497260093369312052784935628763210551012524343641976850005071362916096056078259812229858314995500524406461960607537285090517472707899116208642983627689935604257639645938722595385571169533927406905002781139589884285820835853832943202492709352812697545816988886981283189825410456260994232625916640692971299067143087842429714885054473455377061910743048886131433577980760916571371080985342896852998264218950646093215740938557866899199005738835731261130459783736391519307902515102457152902927977919098663482101482250217285787533392340173864209423272006320479655133652059671458710028966523704885816470694150687659015221833106294226275324224737320055447513600440840252064271170305358499269673707017625924329652233024666399102833808020575189392358253646893023673260462099210212951337820880590159159179600502660228012030451535130067108318019801426963947544140375612304531731332044815560411456488759024149200857668429604325017452872306166736186397919579456207816850061019254364496093169762072718163350633363214222017805583060083773375752035964892128133313881500552272076142045499542010007626908555135874244786146913427029094459321848915789780097868314208721593891613922332531561361175772158509921202438425731528063588569244487288762134555991446063107685624946905914444256121387763544104163502590403557169093803373381620041901178057123973665300222648448739402282852948350086979807707158292907801927526399979263106892674983145720741348252147010436556758231438482675873355292324636844275077312967494789243843992438449538956679818988389641684173653684277231318405490909069259452631418880822812476955548097698842142691102402743359023243848076924191329566022976818151091573404911667036701795374264157138609932003628620625752305354212855209640670549734292471270682138595749688176362077878379918642723831508724540149144735397988509989890726595502078018020823280608765660068680242752506694401398326613070398628334517000687516324208579639045869442799468913428345459329146111112714546706133179136687499996523797964806568516219756041025928413782767716280643057652031675377203726706878249738139651199062635368187660015961591814583435179132140682843201867462724091845479625102811404263713296103623419523622014056992645399363838925953694000386663952750712326184939434320414427237548373583170567709508260154748583015891541476240363487808451102578510988556215009198800877918479671273010408513503291089327521733091949974361472174045982806085952680335903359723720881498866987469308683765944924610296903638743754985513818311779849057239716317585526622350868825484634393422872602057105534447195430356136225188856703265932406375032368276801141594366341705027529685437180879801889168042711462287393754861228258549516264280637110884274265374626157407016372881746481858216984921514839654136533239454566991105878921570449088069918224361413666214736098797176447118179316422420205824754214999696611511849166541175996131867320394483599018698128660081357794567745242903720863942987863329377857868706664709273218837928099192956123785271545373247084838158250734880794984996157092821017328272065966876464596955911337160291401748421722412946792774351050593055743824592910110276647287076411711329460466471534379731093108194506491044318966253817274446175495671283150657545683989007536978211317963092363566447684469357329169356101821291649190471639151671415495215719642987521605073765898633995679239254754518195456025906145264149372238277835463454154677755090038797226361346812809349029481313716066178003581327239467900507072066422836544872640923841040551746788430188524677990575782967614344301292965421414976899769417731770973319396453458714562625752670676677596075560589977919411719540868983802947433337509400823405014233428102267839157728202823807337612743690763384269044765685801454053436690967223984057639824731069107772492282338785348496952894370404187734676117498276826141596938922863663332015914677436662339564188277865055728115035302450478620841496202686113848606248727922053940263069878954378536218191398534951301148884485578566100891011227304977635169405015978063843526634410273453478987704478776430268474726067588692891191314043036947233947792116419658016939998094214851470930386410785463584627900464100306606711903416438220413499955257040173179884204471239462177804064520748061901608630633519636836391585701857472402697993597974480404662796999323767402311947138840741175723942159808966969187953831722886293298138793606956755233160383809484113340755834998793843304186563141022681309260616576231700307874267428909458877741125522392562493507781739730010357550253010371764524777354502572556350435785601635268626333509912291607036023216946441402044167433359546183078731988239389960735827288092640188835500949496611727557147831806515286810661538330213992264905286288711695267002178213169767006213636074991194797088432761678796524478417049224957649774429333479129078275270283430937772148804862202173659994692267582775152523740279367016361827691431812766556792173934051089930359649372883049604132931543991535103990710825955264147858669870133838829433669454386039361815301444174985996832245815743774927787059477730047057200902573481080630847643280675344191004233716563292706308326946836089207921356637967134057902847480255732163602415156213637142938308549022000661299163455561590877165260354963691768788914930273482450069769550318093417442985486435445199166643396276068150246630380735527040610946544084152001325708388726906044557218442434514808948491699314571278632916736037308303148553806736431361698089589585237427058771872742950566199285526109087079616844032310755941300437029891490364095155019353211714717932058914354249186581167753525346817338492201013021849881360190589148142373132697561640952770632554152493997693868810427534839458616069563221784559533264864225480822662574588642532212712189074881651056605079674794210527734458026630039197480712919041570406269725662928309209988780649419452088073640727039153894383329059610433640923388107528394991327912704707355117148715034240094282524678950780182615905008869783591340404734508699158691254789547524683011579678713891063935833879510586871106712146463632629387461945254924443275207458406996938459433926814484746874330743522772376048534401869132430129233247699475663956732905258464556299140656969440069918007638617819693159242013949962619327815165797662497620962029965374458587719798622123493619937858571454680946678604654400317594856003870444931996061407848671864011824148914845802161734607879225928508613384850069563491123664875623596506040138232074113831944966370607888154045500202168708258617535266144486629448256727106787114723784147178390888956459200181659339983076506851132818158648202655398380670919687310851890291298021775490181647465806154732215354807161887165492862851834473796308318923340892892753148861641872489349160257722520191356722318565503998306055993582627826270172797252087997668691502945403967217140161738886923068052169463832822724585679128309090846192593613611187249644496353189443533694804195346723479712618601859453119621410377337557925097913814750962411735344319813076214617126654878462477844199024819258154731582036687988783791206225645083920630534835543929981162388164015800904075569853815318039917744001220444421394785037295872125862777747359829003103068185017378247156948702886985196697241330770644874454890599181351605172569908075742247340203048395672014122521152107860472695412188056814646152430957938340362745993709429966333295582798390644245743343523392650386726927206653351621753870216854588280574087648664864886385814194489959094120404625150419844019083216861761964194667578023786166300433991704884421632381348001675368284305018074734657719269470410822722502382123288940865553212441324383875302346144521918038377139115306912163897833779484401906188266359404117049987230338605507971045863813060043783940201667538747140687769380717025181620736353167382860232564432819782504673899730663431256998796966162619055434799823388000687849799056093478887037120972242354666365231741539758528897850982998517269391514743134251591262939553532349514925618428095196327165289103290976403626797856425538229672153690477703927083674349236715566039157613796544891960066629474885641194570308119264165057754322676515134831442232143446274890525190910080812966608508641602457844153247123261742826299319309376093514306352791986577384839591539179615459638743795070768594715686117885397858003040500952071350340164634993228695405673905384259324450735224164777585358198934735410495899078106918169012378253606871912107632363196544554985018688821117457672208672168985430545999569324804948715609065706543838955437905894207173343667673657477816708057583969023962466962840864917522843339631301310074999770548956143969145853792420934198252041275287007435085349617379084881775002875142072129829451196676128218691283162159366146721646445888749935158972287804069540404727213722588736119336167946085668041091668583915326615495336814779977638797740324415344045252375750769865463771978513161143925304408856692121718063621936548808702303424877440042805063818289357904517324554247342110400913990552836009359408866066701044354090835263110817304098727225483562005676641011489835990888537658296177453460080597945160738562990411798158977295701090741003371826459998115502595718127579408566213988659795577911484663958884436104184934221426759426527321091873510937610033031814783284000755907152674418703363756854167160193408236134741154718478794925605097609436658503925801363519266455145501087337026782434685422723429838758426797541714493118132749731742764439468065348387902104085302415552513845012064514123006199610898112725138667935236480600335172118003622286228503709076495001536781539853583160750637586170061796056008103813819155108852299551368986310136164050054588196025051910915296032759436316592763952118828571639028910501461484266334449308144447724798130898450460791134108397638475599398106504041393661661108121104137947930679334964118552035072727142051772618659559674496591994310517061495986184917172552049433150829142189755245116671622871098295500380777957549525178565829448259684015350318197496331251994255441868196599632585353831112120204260081689781352601480295144203632388830560607199439309497429023955626523170250053596065911830334635692750451705180486702993428884691674108863954664853529033925685807991199857524171314551702534434592400091090383484026890507794153340434774655311632126376529901867530242955981461758900841749640583608516633101600425847831936792813959530960707787600294726424154618108980368834702838624194267342095983399268298716846970387951833999897002518581008531142381923410422790774767446059862957379505643908394276608634438535345304249193213420591698459459149785918422733634740659248640326001168073244442587889398760479837733883678855676814584434385949119390861182183290799137742881272639490619695896485397984712889968193359645218924858281905021758585500109993134855056049623668902972715170246725926722475983734722669626614262725596650301753431840043497887752965039353753847888247774159247666122373967503658547841020500252189003355581627586512350080287293022603037813380107505800720469082257204722136350211259854267360068174248645725393050373309400946508807090825250554053069508913146714177271760436489282353119139930141928640482407609424604532924944212944473081823232149261304687874411746882043943225138270570460332776950543702183256279546604719830523599352938575024274689505811100957215389705923625110375987643180898781571552405131859346154677949869686932452074477723430912081337482718309542147014550573309010698198808092087475258820709923802200110712845952917434766096403022818484014511532250142950883672401764224861164879614242011549626630955914113659375373982429498984522292159433855065570247228457188147354785843096622821275611052773214715213599219072980122807757879979867665939915373437408147797844190220827682579174132335504204940502661849552908896655052927824760174236834923306476353647221665375105969834896446657417336276819130970090833063896348395809108390516433327366078738390837720593752213557188998052865351484970116313973067360136134679465442603311157339034432103313080324111934760923579542055481971807041785590414763254320215272578218167275425305572436129201486773244899963634543375965188091363548733254538279303031510739073632656231348604267653845283068597878450255394236226047644172260113430254243325279394415545211922441731879214432946107057319375162619713481097245222814243967568531963303098542569595212385552844628961035707163999187123131780881453324019701201186017440433127253560225859527351465023971628365798107625599476367003325117580554105731470810164935166567373063512695249677013287866488632511201850425145495978061920288184008154167550658311938154168068143011326902005595956163406658129604309172206509193240603536190917018798056247771115084028668577549637709243299253721753228547691247183884543749401088247894916780498839708840657488629309993883743603588021065309848679259148063534091072443579692963947789162484535626452479335252340661998612859669436582840898544865137341093977231774434536743419251195218011054373638874911782576912081284385257677953837860872140391447938701347076969949894943338344104847659543586809932332386111825397582846766756887795058901288214843540080776345480268075140541564017476155782582881939486579474326937735106726736607663600422041187342981584086147853037457687412683623145306426996941916168502891423924917048899234961930219606722107440806850083298883266326392299207711619653742888876206801000551794549204678678549204753974451153766055577018031046706415280841765255325500279032393391070311005750086338536920852823701745157892430850336013542354570459472983982330608413082643374378912702313112058001524308045475705209096092166058436994815793950207163737731992821059139347781001694722229063985358951190517066822510079010322500364169695005910478973613245435402457082097095873712005323405266811472532796594548153559221811422707703974540361563758608197566118762685351572777884613048943757213777248731323792582286465126969048627115902725457423671900005433095945158223448554937246047395588137912534059376849171765334814336296719734008824239753116301152074609226760092669013617867736077643606915076104143184686917759421526029672866940548446717912673001556284279624580486115532461726164460719712125530275196752727933364085953195434038795165414844043830560884688646874696999770528721567614035789548051237093238576493757240276613073323642866668780877780496154114110314401769166947836835592347547540062286098047226056758036999120724257415646846395710000108834734795792672493865640674500452720181601848858394964836982383722235094835298773674110068741569703779071269248258565319402731326320265946183648637062853412585431732295039671388726962846017288899415760782723176020856548011411002752986775110375384208708245983736730468102384113299627196779874830676790344519929628791577914574590074767059426104740237345731203969296509982067538737000258020366725404703120348208639626379762252208101606531423028247819156602933011006193424535127375650379269827254236270856030598768063421522789744144615979108554853488607358775215788579908464330671682988557721994370765231779369387422229660926180911506478924144575867917070756513967648527100427221380116987330640036191367594618354573697439994079998151102062157643450428730224447707453869852923851396155532327243723814167948707764336073779328456397822107539805002371760297302498470201360278939802879641597415765551531648751983188169770835973588808686028737494571046414539375593044509302063042066097258805990557256344001213836258333952093283038080400009816845123841677834059751847620805612725934189145366673543283118150256391650203295659673874975364085383088518935733015130964139932316700104506400968442704456833291227937965467768393759695760275382273057525209626900771863280966120693664292954137582467436875038735341335751896953175991918289653060850925465902732131740407588231359763328772391023606866163900451399746905458701985906384828215644129816445498448591278203357382917503964600279618843830415213598255323445308450335998131466392336164435626950203450665344901516561214040985891855785863576597354274410158040917589739205710086274685319176798849354656636432535485734136545853430486907393415883471545158952620662206230254845333620228160230206071280532330958886448589023088884498020769286884349148233819168299752619261807903250954680513282689793754508556360299835997569242390872670021832502065168196271823064350354566091308706030956210695380868228275843804338938427897020174801549352018937244756426736024025081297736523249315979159852898582158966918231213339787484460703069049860457545533301811391495241741815808842363378186152932990924897100826496339319957049045512648195080483762425014386050905344030012925357623668281566778523942348122678275687725254484440919853812620247464354499525345349907349590091405067721292555179307299044113042337658036069095240902409979702127034565451144658682271003708407228002604773288188270407084244235322625242326687437357612743930188875787676617424591024300845129296839654315675382483540358648739607103173304459201831964435905569208357590612248215616425884567117629366181720624574785212730085702795452865901189123475389688005909307243563189932176020931002682302640807713949444174479841820957523495580827503377481740950107477070518920148966935450872539485610582318190551989285441044793259330018895180688081681367549700685899493056064839616308926819974811125503873266151371370907486966952411417747940095237289178308694585605570173253458607994400539424584095291923650011529125574091499597836568841499445289128862682338610525674862535768405654585745009703643486451705013695970088602373437899501858833287834050011893250203300084765420973341601887363830444069473607440951700355412434017707376791308771262967139810267839869846846312343947303129470332216661327303736827572842968513387780061434384506783376534637491648657394779682118016333245365440820283678121986266938003719744658223986795483784493668998422240128151828378911714657501827019435300782469143602620413679811419341639704608762051691883984344890956916205921074652958573999835555358494672459377493955095866258275291627662218772395260846642167320336772957269311615353122516787393225883154990730065713343852854031516085209371795743735098194473976264630911601769313443617767414384748255833136007347258527510263800892595227707281184924605361929807025816663548348891403404370183770191755580338260214229841841875756674026963810999487004362908297305546846528774038921052243935190986552397812245026750855185523914900705350737187509748311284967175222319186124990270692250302634372166014367774667726345225245982547967204096330360890147517598165077784862616749361933505756254000353487154501509711805215729150243318321027316202744003365412998828525684017187855624979492048452502300885186558301875611532634836898539684773625453890618171896829264238232048220506128611873259932541259351701500717720956744015682566573655796819224910786965793178048240255622489852017045883831340299775620277069818779155896250244499008394639751798909944315511625396406385971269913704444049514863899683089884419991844463045828134135505365705357264415521706616969726251941208701955995097844049915611577460039703645698144507421864024859753711001786807532790468909925124829185006493681427147285639740764135074843320614837336327327660277463509713624959307026465626706277510738807525804788815211964293532752425865889888832399551088911244097303738981924904358997816933024818493206815084995370341321060580834823673151356747439080017382442033527162412068328328913091317079987592619671001704929299507361098949714677112639342185471799187373354855745908649545214719381552590673538267300409322731810759614916468820402300272158753203757655550013201835118261736450788708376164418911366676059940498033255370005719580188219546552498694426233681850637049777919219214558869185088739568662215504672061863520525529380149362066229246590868496253467817730825023448540548431429484304037155510348877775211912830877918544825094414776329741318976196997150243960225067066172864576733803685001574951898244963944579359155672045875218113709121441204960774674208076240475082914470111665251361934617375380856211148339793761508982580674674300450803358395577842909101061519469659901830531548785612462003223131576879606508166396443202065516787310777087543387083026878729105755718403062578935369912905238900387448958481513472792849963641511096638274356249283344893912044323398196874297839625905367601697868085663073647274806124621491404498737737239672695201113199090344119122847837206778646223417741573787812205584360986551305704155571382336217366725184109630680755126885762429608568246732058345764955054344652258526604866918951926831220506103120501506922041370337527889330135416663475411676054533233233538603369618076819058826717939382653619736738746125893978003220280690872097520869756116432230480472240550406767120891223258561382135757765809330317238518908981325086557249163291067661353937691552470996986881466825062227335517165356815036825901558993651389532520896231494398667386504294636100683793622469210952901219327749100795317154253955818148305068371650926777774795398181323331673589798900055982163246319778492584590372733820104611905172119235073265853896496827749310200338610358561705537651230894353981599969196120408339165445193641024987203518881092297580881167749586125315689768352461485924074496802416185438511803701834883977362371777394841676401234343646237572005098019051890597738804350567701434281724064422393346925641920331654514887205285638443430565502102072194876126812993191359885937562388249538043069589548591213690032784748267021872816788762669617158329114863861735308750850674160201063683089049470989573399988958756895182101989121937428586764061449912048048734019371126350486989087718054923414118089814285552925826356871872442879553561899915178401530828332028657122315249243781030037046205064833784508921199899024388436563062029126325504976398866702233479619394912063393344106147764359029519652087887891527426821434939574040147060581164871042264422557025280147302150902129914518496790412692850724922732510684113683081282634636541784078032896740123470309990928563882375724255251667908884619995330221309303127277283076431083986729944812641166698301335357525363279899859666541752677606373864041788141483770749931725580926838588854917426032623018984944399747660297738148652437462707587819461319880955120657358016600353265182456796304616934838500011755401082019473840720754792981274052649784764428076469590351030290897937177703256170122633661128876232496110536339051123066144589484370451973044488537509490831046395945152728366261694575391192758523131165596569844437541660973892197518431635521382253076630663973919012908794995422842828002974373472381164419876653971352509620370347525949202139199015641379841597140417008892529469197847853623630747498011992418217895169998987163960681651791371377194391378343692412490508453617644498997969286722081807318302264232726770543795137343200765219681581582338642071817270526759738277006712156532653116532105626741747702098286179537810753548038684696323613843298007798997837247951333833565246328971372511957506221366016599863783986639071267588431186640155704574547163114961743789430920489382716640544010440716843105732611788726498085085909844593399129660592248356916660099146020323610856556990971706697758723378173429474763150272434904210324347332485998431212808085264729317006305029626626158107102232932775310019058915414750500962531379792687802040081321826656113349944947032444187880292603543600759210897569126311070318090090403528554067280892683650927461815838504635749300124871204972081338028249822291636344466535311366742156473510370658257558793270149296846811814798994907090247901359339815890830365940583771888964550448810791530145828020653796964677868884661423887151346857863146112606699000931431812492428939633150017398090481738809440941760863462246687891953387123346679006310509750146244177527871574998730276704590902033977461079084511819287310728984534052245150667482912551931870013420290577992311306905841553795378092242021848257268464789138170862521778759659466853426751375467743036970341776205396623119025547444670436143736926625233913080520433153682501972749089266781018594879820329588076810648770927696999797737773781379759008437483357084908989536269726407543140878087119105523676184016434797297846017471124393229671410127666905917808939799336868920660167327356111200780070685078254544622326304558898136467352879225415260251323545514957671479598967801207094183694896467343951468895565991318384115802916354139519371129893785160445963608989541384817204465269805244046394325881159180790241979419769576506958251067880532690434690636297304858538619819392736111368592782688480079706400657311672049713791591573927616572596171700318981424999247154649897907649628218259041008476769096826887478445971276827987894934147178957640861308495339044733277384073847230960102589038999491444319921687735805862172992279718018896336449501269638493237435426610555147560634728295554946665661315062041817415610400650131113499053729541472150964225285320311043486313635436649218901248406603734892388305049870326871678400312173804168183418056510669710302932839895362519009773037893175682135803626410897758533740661764670704120050411795028473449755726641030738596378367923624080514500861951800083939763568309451062673167362449811650860500951103165820182995710711854138809523692876739931220224970078005816223832359990047119294088990162250567529523155917926597891615303410375861324195575926774079071567066041479784212282331687776962263461550334564040838565555264284690007601862392832140461225170755547201632865601023227208260773640466801114014231349738603539891552677487244463274129471162600741659795027423917181995102520199530845875766584120543738941354860202975657035508259722359961708135534593164318975827703769616171309295474818882963591262582847939426744850596522167381405219503077646006444869088591169429014286115083827151782459698576785424761919799447958471197726298241367325263303048520920000171811979308770829518557310050592971616760101967713098537280646034864975301124077756631211691926812399227301876214400362492742723189680207637726677212262428672122217124337724609684185978113468842081162945215006988995840502527403897924298170153717294058321680079870072678230096881238883190344766745729870102198478999764147348653152049584507402953674829176363152024306923438043279569029190589601580392279419220259006103470175522940496203883974360548593767115488833282411947569576619208645779135351133284244489107249083722770162654602726244332910032211638725153909531339549690875383609167906819576650813211131678391896719522992193317216375817349764137264029615928047958191897357002385205949794272729937416042968441792186319882449881475507930694834559008507612683952526314112475055454581470681439562732943410933265930375477243988409794771326722056627890033463727324817881184169550842025258758147288070012191168781499081740583506718241311844359980007452736236650193742441402932488571575918149419316715968338171958026041095027359234001351125098480412900326165782198026238452090292663797900276810717189010759455431881434764003761209930312847508452937847175742713159208311965868030582425602000455649224199271833238422734440268065890119047430075771762294512072090672768058534987951237992359766986848160833233428034821518301691686777611422305790924806370101779009200770528852379953583455892684058615381220085230546183991673677804107123888208745969893918238086842323879601716915070937352872365475267784680644256691756860533876978878638643117262284216342258610120726757155120271149243897629215206618053086096111016694600202140076799411871247991093558320117459818401445978698638134134869270001486873669308270880064253082122681374914658454926775887751915499882734415593361366263043222619197247166704310627114405262096474831780471408911036461394245996442713234642965073020053821431222230659636542829585953239544301914373666418191626813202922716798591796241465950359927853190229314083984223738958079394705661485520071649982948981158495904471805930780024310144729438625920813402191574652897911511382925051619494744081454354474380311560305180046222185583474922368679927841031365193485786567487238701262589079478815799350544686703227693759659287900810415370559625565877231966112425216231375895816903572610671891480925371794584604913654863795892011130015345057802449487755159778418901593562644872658571565885902752751705404987546606437479184417130782547939839722977824419108026773506114230563277310135312306164223347544055344998220528010624534751151835844230904619793212994271664294166147484943520884037346451147132006651431042494652805664881157899782006718233867969407015805702379343285897498279302545741352816257748099960194362591011086632106462794867461871309996023892142877404380232282542057552885014685336980278819198520472287939616193892948898683806402218026497982122403433486513369653122634746706707801714959179073140593550591523980925840117741994121282977451608156786345296453932636274230187358131773359894259883519207605913042049862536173212798420329697796952047145257884825572717358163686104375588055913674285994765417085106655457946437158346877469092640633117340083511408412851611671605606503336761178943319762509649523429646052584827858819743386351111205511211080897926313777535690267054932927257731512325497002231913823038957144700599110977728268177650667037776891185486965573127751006904083007234142298337592000446169444610007670260528155395772784833006376866278670565791839436034808432077474536318122198916341660173960949699495026527726366787856582773529937260437760636032544120239390953823645518547594779073114449742317035922302482086292219147519053003146165903475821297164366415073580209626571129456992402966998163731238178432122902028602307559749969914204014401851094100064404419384321114986386146124126403153118600864133938475002735206255713762633940141514565902197199147172048699230472642206120052060931448620802908588712221917849429600782539140746060586907639950674485638087282474052609103147425973755539420125965161106301110241932150493814066412196437119954394449134412158157874074504722152001780291881602525287679921789476577534209056022467003048271282591516635618507832005929666698909760414341658936595790129662331737655404302447422066163960622389204034456426854943832711665527438814543895066216451765285544361489418573446527573821245578894782053516753192507437881061151645841886971380266389491093359080826187375042987466888358523838237497946071503767683692695016314327534680543231597223708145415607597187503857384015964048227843279558382481475898646040604019003850803450776078736440061072088481896271105681702369850482471142321105988430418125072142366217611143953134015544620160495034047454578626919319504243389728358204988679771521275139466415059654513353068061267857312275938888180380833933344167789809627761719761135483931142275041717167259388195505400842244461740981801557601025039127770020831183871722451928049938190412222934318636410170782190959574286569830350192057235846617677731285797921014357522576362102651064393703814260462759601759883065016537780735171723378466790890286153468725627071645493420328118935236468341488294443878174666397461393622484972116251243106839206136090583745248403580862441456081955671348673977482063402664819801447733868602002266590748064448727716809714457045039339364604643230390045957811600595638788381365106687898539916480394791667639882705946670696616440842605556214471116979052344429484843820629342741326586719083813344438377013940324104571873321363101263546357507267442945974386179569236059668536160021546246067372020245851393911765091591688561409597107780463180828437857668756210797174651684786377572347779721706392519439130093120295114455596787775740317452905324990411380283104382232044384078442245761031091502697335606811488349230007685939230059221790532867667933744154241923384758409391944669770277028381324696576458119215955132871537035896801951277805996723366830832898112542681248223433089763064437749774122731519112493263083415579190080288438771252856703953979785650335599996316450063785815790414496511087306561729384648042200007581692473174308895298834576384967228571756156260216657843680977235437665022197733444409253881675743268021947497215766084116851902016558120121732041132203335518087764039921790680511834850853560249883593473857150438136655314198171453507314222335293153724403681924223566405321032896300351235904613956066349155490804458220706941209239317818291585521245158059951477299540006224586202849900263264172961956221803678778223602071929950301506119049721457068334650220544851668887337422769360481719598851828513628239116160866461942874093821444540359936756400973093656620625350579008214301579060550707889069630005220666876139445437345050061640440497454712619095571443927462464209777250820646817843676759890932494522287348392027420180767082278578743422898978913820799474831799127327633138491596798560309205772873695846287793824453642487484479879135389885111534526623978774807700833651458388659267471850476072711083978609950137321604176535316539046941286985114970959472056093165985405009101251238607519532776379422818253336037496324029173867350657402676711730915450558254063645953194113115743650052598671336589404605863926274193318965348959064785283548210148871326884174323614016223041279590505182634098425240373100645868862517750401483795232059504372886767641482992565113627943344171008724155829641642502876342527316595177144941260406974458560048472305819798539765808056857983724600512103794796051374506256312202151217862241911823813821401450931584248090189667981748192169805641869503223242590631203514931220004796351805945565477722514103030673954123529751705795339185325693347844208028814828090850204808005370062603638045814903705987955962633313564910584214505261068071105476043206003371641336503759256235488701994856262605065339649933807284738716810547397611265301863240171786595196095681580990974108353367939087814617080731977319248872925416716268266868539933679542825251518297082172259209781600437486125304982977564990546952406135962470563931165794841563039726697055933194059783996764722468028837287323514537249462886656210993764625252843903766747911024409058699657357795155686002566267124515799639060169746525691872147215271971455426342582158517217902545380760020342889435035787558125647258637829385012817109535663316350891974008478199947461194409416778677723489335600990997167445371096697141000506537195463209012731739691386509105366169119534222847690826582324986918540358107296708745248942382037886925583352348148723922398174408972911458736141850097871520849368667019283659347361586161978126284596428797324390310795042518993947249720742008547733466736557111881042753966804951866750362617325499046692815873313515410567826689681593599561167351940598101142442640182276812575432839629079030166212061909223491438158765490432293992669809183959672071566295566364384914916019286259870092224020339264866084500467580974953797229440706920653720998043860076129309686607576837926546813771623102506347259772561412576730668871168889702859537426802686641606497114024360306666985695713236899170755753928252322225218319976435547190249300489864586704990535314905419598198158795855762769201317601989074333027184434507320653561983895185466029859965574942700667262401759210110836559257600470337862731173941327185515618535583235819923355179122133466625629821516452646294561539360761755279838536317942006653613333503857649073286769768824041935783571252305115634576277929443342361961938834402033667999855507211709546880104846740737603660004882825816547872701228281260528221100986768206076288852988175855403001577389661645854151217999536769505649928062385006240699238338702895164193819637952384251208740036244094228098051504511360287096068845212104794493293496333686445395878841295090178895370389715679038056822128894547475858266610977462460491941713997454486856829811491875819500489097504309090117976174777836499193849465636739570281537538155999266567035355866824979838911457657365585386802344444763226628977245572526257602814509427466563512320942993196178004922500371052382546126512214508133457538963165821653626663313945242910343271607901820115880591009879824383795489118635504611662110017300393260842195952983246960311989650307051450896470012322607245479146284608394505145102760239754947243825004784204434115534076081373523192052323468293570564528210200129921864531324480329425184564485006360840033755124946233444680294582106653306831426290480090724223710026739799553916355464782305610890306774759892629805887310169130252246421095135814957143311095304654238011945110974874244533692209038648307002922460444277986904813514108613271842010652112843293654843272439114939781287019708791297030221577289677822370000042431516536991569801748554554732598212943341411306393831167720375855661294118979447581074613104432628541364744361389062702024116237897706665212128288766027464126365337059141330296681365446116645444961737257877062412758833806303377099164984992818635452155962653358054607596012339522393640781202557767304841045522369103406683677741715479492181348841258219747862352947713541119976347166257379650675912942412705757858181485680037679745952003237892385858567241279569696530830834935816487951446735264001467458920067206657428864397920441643882692613285769063954357629497729131116013635494428448592289973307344949920889945963767003754497740264972632091251487429562210524148677581958492382249189715445307189572785713585304413272669996867126636221466917637343298416620825949603110979341007233660092787855293849707813151878792505624290399544584755257828708721385461828339109389341381647046425112594642588521823224701260316866985698939381238656752958355103756429729039606581845892743468597548506188967276135977707623023224567978130134718615280280763737926993078790153833866395058812122400931181850030874223897057434618654688469142393187671199772729205643720591918973633866157137866982152114676839006847702071455024208037809976557862414184356889956624848345139689005746376821781143655730659282393853638085891325526984258530029574218520793973464909101227173709652012596791766445459814434630118479319644771503840191269873138916909186841922199033017442666374495237592477295134041023530443768524711372266504430026346257603024774500428857462030378722234459432769250208954230321965924000341231145471960461989398177833856837095671568318149700337797682806705288049349573901743519124568833630902998741570991158286000416844963995045894949379989818381195065188873121855951608212156296205989277675968621887725351850407055892196033749663252845699471136256751824962397754566925462271287395739782705108997186462998326688373166297349091109409529066791744571156945702109567994736453305988515407194610381314443447158601091873664449927730581663077595215906703016048584076595082255020448686673544728750292205884129607573221928399973579846228033303312140469039547937855035301083073429814605716943258720010778568566964707614809261050362521727682802104275926416158845247745879268081168782504311226036090963973576632030982557946371494566702261142253737404113295281349245265742109775127165617808362615355718273989910607917271642238260306605175066671934111358160215828763875918486251664604496873663635142953660362095725790004215633007169738042862748457529824700138044041886913348723026207646189985895774771393792278114137433358100054298907853389383529439057218579985092956886149717961960038092256568100888412151504232211639414576351652871860987546985357417663274851993157378616282539835333973181172403129373561245610914167430671933486275887367476747387009601163228910259525771482449269454918981998209674034679847166435498330945111807702295394701626625916820695900422387491495036690225702688922888113446616567579194626231760201764984173293579234440089770359060193475515309888156630663487237083139673037911579811462649857666864378259486729217629972716296564713897959682150497222364311624224214392401901688449264866875459698473319676676604963226475348133915204328771363452450151525929174056377551228251168653581391383631885869998752332829386521941835950211575899487658381669628008483853680193845263404751335547273334631200211235491243748415892523980008143441751273228747476348177365637997876364876022874134952063951296488131916640324837720615241446028607328610885200436366476758221220717572615294775910204216906993345588855773212265593268918302623359272441728122663332394742251343136184061105648788033585540433902041551027826110540030865278551078859779379023382709337143495868496650106753323841681482704957067154752347848572256693895373783182380385211153595934191797650241025375063795239651958210472584409640020483593299418831185150898362338791470733107668942346123967208417539204756241572885982971085242178845293917328692189780631422439840880333619196983480427230173910246352617584916192056364779688646575889805007036283274473593258686824995817517851864825009546166097853945194778416437384410415561898633436895050948423476501712694376041583649240435480227343741838684766726184798166048818554834269042873218083520435511248711460022160827707170537053567353283924293863789327004130421887374087559482175891558365923821555318048943263601108847840431919355761759513981102046737073693327871723678340094707360359152649566511197436527272880486301079541214217681869968419135937103946271538110743755209326503222681609266118063085992286310268209961899467304632057721712486026992945887665934426057533382841101820447901308217305332881366522395889769229612386810635692826444348795977425364611133680230096608867137560766768875076691827211166183560479089520948771258715780059014788163180450691420427709356862076683877872246014593464642611675048033223747223955017459558925722279437602805427978535513981335700868747576677381088085583064533025735339243076836152237197289666412703538891538896599844168384583605663069034350607725100349852788619973675001780749017617142591581348726898627854794208053725576640780731916067977157520571105997058025994600373384371290046311983745317933172476192493308421771327658411970799946365628314893379838747947387632900911377419968179081042423873294725452355429240240236327009016207625205512373509924453641703596718818033429870210530683874002904248529217400942472665442596436328276700772352865070176294954186757758813962847321562041474588624675241594642831868022175330328761608933685068318512006292658093481047666312983671228491246861410141763236646369996523404487558833864460507010172223305330172705426841493112725166245281181003719353420498488129744433659551550710109633479744654506519700272761295191095464700641541505280422125364881906483467183615803235271929862419550210426093776321468825176305529623057189590365003301937717939069629434541302006368248423170426009005168395802615605575497144790265814464662904556672024076664107267121738889593587240219972864475245346384217759389228044573295612212298791928111708043844099479901521467643897883536862243133180773179535941327577933681409257103139010557587602729322249723517828027726151440075654951576213942052824849776287434665067394743994855336814170626402001711561107216125670526946483968664046204776596188071041809243510679777830836608515149200189216580138519038260039941132512931539290216958279110186260866041400374960518976306238218686626527629080552208529521813722259579505732595464047912464782583764720429951493511799991565198592539025188099317170200060105051968490986107623647954118248501680073175399607256919770406427034435849321830542409995107140067291034284136956893759485739275402295017936265330924144448771746126404437531552485355087847016327866941469953501756820992566658470995419923338362467528483732415047242707285126378297076948408784086791015412078683727349942518973576256724109254051483315889270652081317211442672747184983126238004849647091207439317460596048495085431149797678998806757329605286042782001526417900540207487737279544013188455689673204139072161345915215559893585234317888608174296014122357982958354601794775174479628438175765281980367613606901211024367942062230451757860712893352105992270827913238667206752702521917194299915541565232475224100741042119676585196441208792098700411397391710821163985697948388984628081379820724392434091500713329312035290062764914926062252759303146873587415720913213005147668649793890776642283973681190535176952989861384051003980772371536237718183151261077022525050344137714552723187512999299753879626711214006710622280541366379688791898292583353107891416888495953183097050330578692714034745080722142750602056780782963808472381904621260829028606480164876514659540996794554476773130622291341722223194247374661706563704930646637794242098637566294668662316790208401340958906409535566731280568563045370390743638470994283340767398498650993218040152682993885577070510480266720598502294230151888851704965152523971027163350852179508609768925823461908308018321014697554763923532048259047275122785211779278185642000663223039691818900183003330425973194841320357292327676854861491187656699317637284660906466136161032866547417814109796752165230862333177344239208314308118533100887377711555920317990091639806247543724244365674995770303930103500396584026704386089744262181505992517497866315200688114258366057438271243029395681983111404780116436604226469144086107802004627405261839721395799878491499465559227489581263435249148345496762629730269067212008778643126992802429747630861334161149059634093493180870278387764323733860311031119640500750443258916530785923309519069097502284801890532711617095018876935271253796007520200599048318962895511369358210287226432689753189088246122439209383588618400077519127246521055807658921492836622383795847983151696182646808838342178895917835591219152947847602456737094459791804701803328129029757769468612964018892195955448284046776871567038618601034892007490568882563958917445697029316110960003424663904067720684310684697320701391179838097158958936912062463964243826129008191518622954364675010730602972758920600199312165286151535500943656812187044988992369728443680475467234784969611683371407923444071758701239255389204406671221702896148528082919894395385538177057511863809511415921418513599473722383855500480884267661483209770498482946172543439198695651427830023885003168935207980714080773194361046499330332186495996985550663340981386077880464915896256477398157583748132603406284835284404520816458089154407074551533326624844397376740646573711247758598060269531959794824676919300758557131729884536457144365556501211020667285568658362652122530068717014757430344784941324228276161938272436583643929002781573260819420366470731853919694167904843376392315684282981914303550711395755093850170929412720658238192895856382292255770886477116757669470720761038794475004528424291629043957976724273153518496765705878512109237390117949547003490273403984241764506773210282394202800752369519426900903593921446430975789047282380178566045873864003518004849458696109647271358351370084955216122247792071573492447553492189907404165053282720801101154973493223945646285028471496504736412254329539103389501838970188013870782929453719550743227956198610367482110097985088978990712259259420240965994988008975780083127807457077057203679745717915334436886022613775911859297850718399268878974324145639989368086932912360097733146228848166343973776913263227443883640765709368968849887900460878185433478304540264162684499075174327030264172428350705707735013230888894768303973283618031127384640633725747989613101606965195468339483358149892272439878221252928368073790611538062129650924817285633582515977606111140222037100400091737868364336506760427516869760124095198559208888419815350706504469092963159426231573472770751729784352349739095437435543122603389581220598666403907714136146515349160962871346890959521590853501040659557776585836556828310778343417763733891989654045433241759404800744129956265964870585742435975861686587104471094007558507402669956128589830136579543932602070450651299910520376877791158909060120518062401017025734585533235177052765323471198535541050226877727841476273247480801853579161777846671566456408306377733300637721434229181235213477905299638708025583984604547959805272188671384306810256427963206486415585073631076120234199314760950824042433826632906395422413067507142211841818381255315824269286606462803546657620169807661958019249889275435208584988851625116759972408221909940825075023760447975486338322991470311652584730188937603866258046795257878733041858803482947402450721293696417613549220204953433090164160751428958394578278920773164862044419455108794968875980999659076119904128591578505805991619984619304525315913613312987323448999771686575180776036009603623157648507371894294550321245069176902585268311265855624796627747968113069368330209133982258970532522137833145440436651023893487885439766457989401710807444608186797051590017215816512293239095180332324426975673566648800309041463258019508863303847904528062016103845033981298975769112107654699637926711102672844127930664898116982437606870345266708186807513826510981931862454667517613303461444395989101510556528850994143963607748755469812013663079116033125381062930232041758921759816845536626126020855177672536956026266005028358310866624776894508706612397650688797742397838758478743157976379939501402104335079192678667162886065315378927297744561991432268137049625571884023585302460750493537218575382616942365724345949475591552890611726638260149668393035258960770671017844672873249653499759819180478577137914231087046008027000451706721352701296708280172028297726994454186839825016057084691931267699962678378817064461528404925849381794881145867793513218956243305928973762727000960138257981129968251818843744923453053342389731487891389440770236554679107002017716944099877216171717594434720130028695648673515796618771884824382396444211390330582409191953967396677046241240413885903441654549670312545174560872663649624669110531907592441266062999129909620411646163673269847212177642662051354269800667246571927812207558416410557692719308889888632631865262385026353699114755758484219785606104258878534075235930166909308248599227740680701816404921372464342960622315377055353770436922632186994215282641237130162325412804495222528805308584042415493183686650644009571368933731053761419439963721026232840874545458886712922890326047663691139625793842525357940140804561521545187567397649466005755420299376048983170714404882856389141830701292892121891542788119663119862463355622678616716953676618323812730179249392874468542349664798714537142167875118007596664338013851883772393236975051528354299494674473785928886877449326214419286047337708941531825744596191703395080498778741813757488058511101655807181717614146838329058318890483463372543569125172179437651726084265922105111562949478244248205142528212129226375574392261735271548177693368049670712041018164629934518912941728365135738832389707674778770409800906429812387573639013185494695676502588872055235038744995764228361331570042164631967415179072506181860635083218865426283836542229755479082374948008542974450792982901130062979508977927422510349958322038107764494394613561213289298526231297587070768662003566659228917243431413070727906170479060836404567807152800823428213559596556544264667193285118521202173835006600277873492295755705032860088691945925109700683415152672214140329968536443010035215229172580182598534998782273159723157378865812640836210542165732724547623904738704444517996338775173333874096631582028291470264047682837054696293127240507747631682023842232962572959251797096758084589192968703965960215811445310412720367004167365638925128527388839795852861298691559621187859615407702530453536038809348834080502445865164367936792710268222705363576606809519239965684248346801662665611873138470301964558511271508686367782551763636891561352194001754441886346940623275875272979360754630943780743698372960638790073960397269438147401204840662484721029287012847426548960190400268319073775512647180360381014342370908172771358303361596263616313121803697858190010308203909297625791842058472807803730190497531330945912889857272840851149243250699527152284272739401055762174596269630045896457161252946177232050168376667881575841093805618647555645409533184103044779598597836227559801136761851430624113546351846194611225482001741227422057701534643677511720238928176326756110984543633514878446871975273856134456809088995143414094632566866172124821139241971887331040672755570023160843715922671841006936074583092101632696111267961252284815953618688494568575529862234400310675132655041854922735161980864828414582305792429834812698192829410412714204270832466441718869344028399979808496072613315271330635152525906580620914677038184568265672174745324176267058572559161527999807526680257458471153636654402371742015502104358846328398944528018456127659359889256025556624795510384351835071532882904794481185502723295416522794961536972204422452866105925068922476948834061967097507443231957738367158275727978076060986172020776065886937938241650424016217159783675111134670926624504717387209261419909688650305236119362023542967832912131824470236826580967106316628193053726496360539278847310447992553155571569437051397053816908288705737331261307971700508459018659319785065701320533227026576667824580072785890330091540751136477333984292255211740350003477847535826976252570230949450187415075828443082801943660013448515536035058872063116341849537954547692933610424539179126244023387369823489665264141249890603694011907687992922342834050276509821340077139527043379596048826704901403076517328001127020179587973301714297847561086275629459788250945353439094884490443246529023204020709186881492370057545961310066996949321244165140883583024689474453686362717483754432239490380515746287746983050305772715630417450385328316326669858175239333916407091432198234123523057497172337105339898053037784592268847281318336152687721170028007601762858972908850184951386097556774755987855071660873390212735095135760359186214240716594623093670326838529720609675210863624166223697603697859440783255619729378356747772907378113051428446103225049115563278233742572543314925138819210141453417423107751565675759965691790631054857929351765544883764418200441336250816890455285696593406430711044296318931764842598632746542696419712396059006077777614107809754865905760149763549358270620504620385648836442140927737674396923064472739311104518814135938815760940224949782145263331394232398986409247851819645044045832910531583175649532345663119833503234306184785889236417264137795272480094790614703214453522592046523567294487135812762444181194303204347995442140839490207122458731565521376355255595730834904067603007927504943943640102345345235937587739128546684371872969074592683333656922175705737543778601509407176866502494997994970894152436844018672737937744277185816698002702547524354706750297073972424768108973531439657979248531298984818227766956683814855403241260898709887538968881192237471374338641658334010156298536364274146362044170505238809426938375529401721338087857201023158700035435338324857341395270791569470972612115208674485543119021078740597115747444186141180535741356172593593003943842575776859917178280594104918742469506219426531599947800320656738520710718662983348610967245224582529289651425806500541884182111790361555051312682277644226251161627657660691043218678438671078708077969723252326796540632451885704815360022657963570179610400940535399500599164209197504711955090379551801143561039836943254785257211465541645965690255387302770251155181684219178508432471745527958092303701548374123199793222620573479456189149814055299792845909998232701616961713967731740103460521813669270355552669627587093110228179164259141480256001214391875961619155836733113771873052771525028537550644307450993431601005235381058140224524504647619225046644246950108453133047148756489395314164959387053401254585036861692552434963189228130934779641196043086224575254981014266161559302783659039633580402347982232701481451181746470338034348282237269904079274635699348415875507270976697181251602869360998228923891819752788554616947702202164408026472605685058784550118352156605704567719625979024507699616886148009955974747727200774991044458278598333180422704729934951811337258188997957901959690612839902297939485500706022782636676302391128902234606638843170459894033982643966595263448342015890116675771579718453305427524136239500147629260264369305317076323696686085121415753224713229972837766850742492863706642358621266759093867197266090802350755714738105052580443582215654770331840511249157397838307041560850643440248094333176817272993572929446172480424331837089211083991461376726867145499193777856540072202084379613052995913685036801388770528777974138044982348798441864122210299511085793691971487652650522773897439317023790607191559619378100006759688363843961185415189342896395386807344617737288552814397721538223919196513478253687157218354410722683412758443595852259331506389379883853173729504636899216389399795556342909756211473118942306517817196257476417023144181455583159402317566086208680998510750249593051500023090674158711501030154849237441041389906063542923133773213966761182598099801104159488217503147777673671879417781179658713174296254306619127949381862547748189663119634408525136043776101346619637738365106049833781620810962269533049365322992370162421936135848559310582969683729660493984823646562322655080057397952370024249359060809470871992063311791644718545507131379687817592755259082821760832007743427465529571831408714384742855161707611798847097380955207002297957878576874688658237086755522140992879241882768132763311066143118794778508906143908003290954413962437155496511418895738385153715122216588187275389397097583530784117375252087132952596623292377267416175848505046042355452947768171899778697786550795741905508952272628988480218321142832711758086466205137494269437730375283218300997944479576667225866159284151261825314773609878206163375648773837296109847927125685281496511391199453014032765131395432036795683111003831648557291562693336700349674441420082289424452124282269134900329349695349899951484821432301154154752180711530605278982609812284436398828960213088996856989550045697684866615475022808939322243168588434409405177427488989643633014385599064890610751327290960054399837437155112441998136656805307444790742721485356736529323574963330295207974057008580871305164103211186497222528665653107885506053550837638891398637971798413359728876590594888198469919963818787757925786559683966997975011544589832962225749693622239149109941867801216833513909357354693867296801652739234750626757851437983415465364550693895406145098920252405075388040925571041100353545467844777964461205432600972714311585188096838369075118414840437862661994952892132104112859814878827483708311711405740758593950745065330716899005095654488037675492086105350759617679543129621656583123047567468695186513803734636506476766993531207610762434988173843468210359737692827544910463533753609756089825758867676066692646592987232502705201437130568448281608020475182132979741265001024264851172736518546290543876145090380732283149302382920293332972224641440640674384629550440617917177522712531023688092235198815847101388311732467123310836429598467719057047939054406849199061408039079369378253358568581965921071482258216525399187518341875286137320391490651622734210006604954309811386646391709105117440970079846019468455834498876961390330486881631625556127645509536774246703040009528146381053804169715020232319720900117480768195551937337681041299163522838738771979241667595610381797436971063648333934009725994978356062275895694905200750831768390890516691927399967591617722575219457741364234210538128861545414552578911566037920664984336957310800529740312737647170399926890445810792177188858333558248308293273628346990522263714676970222122455022183149192541727264734658225391724205872925952902522731306667925146916644849988313559418322724992454957298432846930701132358351463851348033800188510114478790206634403835523917001554826441060789567562504103587543979525172464995109555186488410848926874180674444308624389729354829420996320996643972873137358425766755690465793762405410774952572919340671095513362887064256287635038887189755398635719233605750348249873045599664768193229665400809265151067713378477585249564607472105325976170170238499957935467397217210369665284943534572548449566816413464523667319380951826000844351825427887770787118268064790382075829834603482277718707391036549120276565825185886354922847079409366499075351391406136935675758485714241250878257168606461517031173708289206265032136273113809258097745721552526146382783211773765025529923999655365390169973837590275316249722837005277202142921294920268067034949142829701903147562857468648651586388359536488615939420360238398578849648211928105583553179734966387513641966540603109376989470545732162717841699952135641176286994167135229930251246184107436411255682030060655482992982573591007233056353554313674284376602228326933955253298520116520961009085978728994646674688283397117393659738886673753300433508489583087021184575606790398939277151796634610111791864487121229462289223138904136450564512091988890200290990406172268498088691237339685514283776749066726724060398062062423437738379573769516931753485168909313961983266715825718993153738086055233953979431931628963834369192316427470360933386905967286062046266481298541095291872941951884105866892533056313724210762103694108672938290306799066205527571377009399797607873672249403475586208582798442516183420157073153995807892064141138756085002824849290510803840625671952836647373695969881706496244939972771805202549899865291440461158080735257680443788374192073857820630114650515629576337357092251600544362236492687635569061356664173644060121854801698126317852030845091073147592374944852029870907614846490062401803500530170130398175086809439682878054282488994533718197356894197893933214490647096503432564102310855541489785100534973360503334261801771906995492466762578868799681824008778094265707692833071798476543625702794008998435101789566345780291116406559398285265534605970003807616848297795460425166024452336496257153967565424072932855357947855399844550907242860465873947866248469964038795752760237766234622496639229118596113697187599488779808948861024237660732154303613361443894491532495769180120679942234695143570639204626065354787075696747835378838358161482688402383890260771625391762878679662272295269683657667199341680317994079478249323336348418452102125712146672549633794880702926891424804416795201090760259417632462489366078189394496182619592860584395224658917230759268119682000600560673328521171094438816144374137943287590802751804461311997768358735577235879605812186212292895180394693465443922733888820702903764857965430396537882941763737904025024906653545784584880915433094470457933878821785433560710315328987975896457100289114819630971409911190168988230580945514459874061850638490226483438398192338354048316902613115207482011273935495654097408359943422836177417641181980771148978305880207015647106523159411305741775657776944255124475896538762098886167235720470516509745720922692752469822666699561418532133005038776496493796074085845960174868532746333337773127213407124026829741580473905191553155018879548119201319038925620119314841213397529885440252465017370558512571537805734162418667054757496056938927872458335703612649649539124741938294185474928549008123268574184802932940027932505232445875250885504481452945622792881857229857176378802189918727398729387825335488301514259795940372395914037076242317419436399980485548068227494637091251035507658966214287603504015454302356895346041478634191717570701644661811696029957769809681612815801403471998599302912012756253874460836861929213591299289848222712668559427775301461161570189776876561737640458603418215273916584268819805070973327769824103755227820956668662247549101260311764647433779545467649868275328122432192930387686146152735703548803403507258207880284201415830999482430474368096246197382914982534701114062112233049091813527880041671934821719766780051074620157582496966570797101311366379155447802289718979088166414489216191914493080683600454701375940187724077970054941043193837620453728665757242080804314796054042393059859642776667137432586330036518632844297718676396306368210203654148466615142553922443406366691670005895373942782286825209445471916366896417215327449818800858220581008948489736026282930556998641990302754660276917381156837567399796383141864405039748454198184050777199779308881337641634401798701912555395127496521669704394590931322369663231576288667633361561469536491019105921642592244263428640251858265793245571105298778072069745905287580408001456136105697179413138022670840884145325053311592701591793223980665967681571350435359629754112187149751310891037308346002267275820783620720673153431119162691339876150650328676874046593626960667649760416497854343411849600060538905894920246850514671437660472923489821509965479373904492600210373114693421192850630818015504537798527503262110731108196265275120061303590529388324232277108809448380062088215107015990262060176044812806181169769195503065617482392283258528492770337551169142931939669462020577539790280398931512678335480291954855175393496343014045784906859088615521946090406395428504554420620122039323981036483579070162110365893857997917961923916648324007419128018807754592136181550902367157353744631906124052658326019539136436640491834121109247364612863077385874247025471144015040437917967654324425883684418434421038050750993819475321381765603433112558127105291701887517334594438515275487249909109760548898742904285240579061590857505981632900830699049352852120320505842970886330546933650004534371977428435113341895642127374162547144248714362998710392795782229093378493338299741982005378396610368147420491106651852056490169284902833494846499053133460750689506608966307188002346511138022429496591507762748406494073177341599260062952916954560529979397658612517630979463116416496467094479187678921085470696557843028441006514108135900674396310314537649385615216571824466540746963183079140074036234232491065697551674493398574816379350351454035340473686611494518449143892424511203986999471087606847166262172393064333899764220744620847211180364068431483538494124210863267752405322035944448060024306634817730598834596851863469484311715293532323107293987334876032150246779492239999572323780644651656044503197673414909487442729011774208985112696430651976872439969177326525985317810792858606470104471899712360917467537698844441456562951762366762793616234133007460646204188863803866409892806105361140931917691667256420276928481823190965184118032919877456984299300155090504086265413462932523346224832781915022942709203769672421681231867196549690346530120260647960303403446723240928768044381145967318429820403018151935238711733899412394152969748438335486432627763331961584300017865186557985150234199184829895075554919262019598845027725494575388376108779803570897274789171445588370329520668738420174314839710799750575746442226416115108587007041360641285173306278286472918031537936202388413124604543178037880389740453899103421352991179410762814507293535425679769713225671995789358852367922903171380923440749421588193018061405965375346495026622011985861359940180223896030290816983228453192126270145418602520412259916124043413402460455769296522855670057723893907223834370531333510760239318512851351998192762495901894695282585511030894938290503408021767154073542937678406354360112844983878282647684802827698735976142305755126459015970301765144698765250011304189177842860531687951737641570802120856476166479024142115260045241748696324437744102781315708234932131471314785110407298366706547964616187473161810185658433134330154873644349354616236282981519295293795127771048073536786474625884363280504132616293917034453289397841033816714872315739835392723795777837521881199959441052670371997230111678129083923825339984808714101479335541158558747364566909347483193487908361943095316761064158050083140563376552710624338023132772332904697193899767318259846209896713305898880629355595781394964440826388437714688964614037488509424563818616905860031832023558174575069863292882370479310135021969659267743760923086825933335989663636882001600330566202058355950488819768245199776976590819792482828410775434972425389879719117550660047079911637226663203859514174952860679408008112753144134992550237347774098442807660034488492452425177022419225004576551327889087971840622610687289863352771152130985639734198484927050901329262453704228335069914544443650454512832254921021032355003350684724188953202729074371976780573058633540227634435804769436546082782648416485626417793216390970999853214960127071669330263300316059291817097251328458887804430567734684585042765107201300217363745843551863171840264405039432081762560889985936911291707978454653893236293764127991358073391155247494104075362100531329508787496709283337441921823849750085887523580182519467533769145409590223970833302300159633576355826492491766126859422954472714572883671249641039041431493174197956813637100180876319320280421053924918517897752836891215811299650138959772113052396643452859738633487342301274895638250352316259649437564553117188357598784220755772065481827826128542767339102895449865266106721646928711673085506958428636542467124326777294940959637416485498269530363538529177028479208453294735428680549908264103300510352340818706951976246361114472975533773966443937101499318741531433282308232635008059836768530140848694707606822655584363170869063774126048067620785599615837373960404555973035710915928247368732547569396130395543175739258764675073490382247872906101944918897780039440262762195996850043752459701422249215215416737831054137290224527942479627170792020571687147428527661360930075910889755328569672352001996547248863465074048134161731657630194445638385338559395716831269706967235395120858803950666125864596614050720846187700986010661790882220995139545989713071275585661538611269559791223126335925743802752190234222195829428166726581599211648571467613540694137636856137096839708371854305438667855935865951520559328994690008064524182133051545332405198330449063438395970407355328420895745507943375981768669089093672282570707990033090140157502418487433754471627188211341432994788939595942932912402471796917420119348030374134700537728394116108510240571141163668198598956328242317764423706056920150630353637816604497745329402363644175372525613655710150777253932839447142185529229152763075761467283318708535178152298128034236235120703221500477088639703852958568939642967335029089512701734468487053977991569486508647607037910443516250733175054649854453048678696052093959308090545630006975243578095124721327879678720429876140153644842376361198164040694421561268178117717652606386066395469979772834757887784782366827804705135292203718599180123532088507403186577251189346196624076899959681387052799109570945203561461327279313965999403204483512883644829834500165175836845383977056160385066745143527160486699145367034106092734425449040513628511161229026331705084779751834791295824344873277399372614446054615040135551220414882722830950995449723783272445051191630688854295632544256231295362578608219636606507220759627150038163697528941820683574799112527796301680391399189203684219629526281722053018476541008776923603737171220006869033079492237686932085183388290901280527256113623565994158677552849174835411603298886813168481677417796366839888282348331668468489038256818565393804333021956812248766102818591520223357100616887817607881464601702182431348433876490599037742037042834399595168420554409769290076601176751716115654320794769505419340046952485405571287223395961035132416476753054524551613465424392066974124122010466378583144872321548275914966232969664340548273113194012802485030977275924285464453960899083770401827539057712346926569469857533463681975125423629725856605227773236570510924693668089074144882649943071984395641977430706373869008966863158868199818995984479167175872083172292884022966261506839003680647419617249834634705139738990569313751941751046089377811175154516905518905120729190465976092266229939046573684605987405493195680071818357149437942889785612238684142456679110853018476390230434392348859903606856318242162740734314189327808627488171529819147785858951845428896658425584996649397267503248337123704593757294619545271329940523944309971559869262121644234934652311135549533220534678517644817434007109556620705989848585507383826912032518816079857382568303158923873339488466596348836457815587504422907344282631964887090377005340935811659285924958518328516583834344706168351700368703969106020119456095377089083464883657744546774821986319866167928401453081338655597738025037883280876122134556401114954256192838406082478267738285908657750127908492461244253143862963467200506621908740653436917801695351328206097524759565655864462623731171393040482697935903376715434379819212173647969636970613287022303904260769003184433883065110231085225582533794909454264978152526176806663635845576255763948772871669340266683611818804489026754570282392908823056269093346552349153409532568151679775032500897346761968291319365287626697477496333741787586749614875660672607671016881229744488314638951067185029979674167229581699478473354192470695930362917047604190985039177820775156908004850745128365092438947600881507394772578032957606462230197103813462824005649724857422122082789239665130124833189277366050735796034079818343868585914095313475988917825995086410430871651104331013627877547843142407135638610051643169501849004410269374898599213914383221818336595857067324720869735960185917675864760632620985298787422490842824037902662122728777813263706566387926112367291882055649340404728253434786816967323246644090268775511058880415968680964857642495250886313486071678326883204074980510463576889488699145179117435297198330531512951231827552917609294403107438676506258721549546218158174695937449689033557810112485322064331234967682260864603360551943781996877893868466315903078050321664592934850955926409755914349638839255367530564796855315844601099446574091751742441950783248534847759011982929762733520191127156488255903815063161236690939942113229980994803630966422064176931410282139688785773156255019712358597886075810325431145278538971703683133613301779526980837122116644744110899760037006929898575047620397217922657952975604034398922716304347115409353367709146928813418288030228505447412022157344040501838560963954014388233384793017782387101545894153166695518598261691426927466887974578089050854292883279306588907794922136272537553300987102435817479461478254528345337169645619139252226444161232422930214864671847229785910760806250034823523976113419071380115109181961523840410710171383988762186990732685815037273183621842778262186949248425123292149661945760225619108928903299937200575682906490832629709751913038047404917250681124195007077023485263887114396712611380303075524931364655683080877085824664363330806556550319422238275082092351991633916719199512540340425809894186976665702492951378645386197990770141943698890993748476241494128985208942505876156882175903846764900933172247847132223159987100837478194732113843197413869421740948358600497561612617466609988648027611285986763844643558889033556813976266880972404222524459187350473602731556823676848794257583595994762014228730059152011095113287146330531722247438025914318535398289077836865936005962631511406210906887281778607256460237080225912536741479702030613344921389611949318372571639516709006798150593263797904980400213730078823116260065233269727085773777202150909085436947156400874017508279594320640663488056320825235465177194462938169775595237940158391485159210385544483334635239987379018556922746273276248044729085224731454187991463943214501504609928455518480644570746083664073940739424816878291160551063896143470167687489018594927975716274892054159972979420670451386352841345342135798043252369452178995461103462338755484214851566474667686301584744034333762439434601814029010691361170281558586696801522308500848838606142249589211098561412703443367856511515293637638400597310926586650193741278278969867860999100561507664279065404774319018078684333240621133745008164969412887026541501360327606268065741216019713335223132980775914435333275181228690552970173618885048557070001311356805654190881467759213786668115849980470235062419334874797213206228607358423440851011216333188776331820475790003285194099513907826995042344193644966997610894042520295877603570917131035563553736109261596008198932237246049396090570599345568074125519293438865750346896760841312081267736347025708572412874295089753709768284227838672666007645352958111161676494388683652078469576324345084063255271875418765922819318041817445702593585173846670549945237446070433486521540720262040005860132805729093588109314810055436205061981857663590070426916813860200962053062842071600782143689970476634853553139352410094339409946099759506847545898804330305026330638450228294920531937405179425959972542880779837034856091000873060328864114848239539482650718947464590523053240241247649861207657977789267838237789674192900048229746635113752626219413880924958111999256289585478214947345757316665339810053779559454142254326881572081500149886854710261296336449562591795730167846912088339394958703945777118644251504899727125588973253429422309674425083345682825338898370280383194562795652943808234536739785981861486109222774057708554042077609711374221142788643852863582823073586231797386008519555453217874085528404672236386496982315069351351165851187986974295050287936305694096227275466357022688416435616663855344657041119679226318798677498462074625652628811938791162887569742904181154387528432668462752214156188176339719506357895508689907662822683477593906911460225355905193119663117464847398461467223915347510417740461062270109974118362243305742987340741050933920930155986871379562330531319505253797716316768043595770227333985263341864972564047682593228775987585148666634850700467485209509027618391057209738375127837174384520208502382195410236248383645104102111307895491352116876387851594140845058774971806235637831696486269550849494225221508847654121724348831455278768546272895431782245246220851220324616894731347005798273114475132719611680087391194051614143084141269745737560251221192287037124886545571965089421195994642131226301442600116262432915330226217037156102322787926234356163987888302784085543062101715406514148109168702806965225644280499146868972992078756767526664973332008348885746271372148325372780659823477843080738025180471756945268150263400306496413844223795102177328299640096312785863620220416530372851384095819690440727677063826991538269277485479471524562846754686206939824500086722775211244607009844582874013006818925707332596033298941072253019717021508198401851431569632045841585899893147642858684654583155722391943059876402891733876030422328023015152921584211152821837941356217279503544545453922545234307854556288222327977505316190499818575667965217047291981966272814040857018308463175130413218493218427768770949347244366648195380723110124519370451874533156549611871901125555091632109778550486878937111542450494474555685703696283405561494381713281350669362724753138396981604729617379125943764221214590535087714061923337987850272724944928488223544844122587144467533119639563340408031253336413521553306395280575202131603327249302749767628096221243874498404538560472550001678700638367629879552001641021633509439829668073394088217553016116993626139641230040468062605888487371882659504040252920084111280323435562141677801528010816104351441554040165955289865945945381333824830234379532905746878187987197457319634870767688779093901676501234396685911792631725694900744169997978726556308731735092827925895012340843901954936993748930938419848837136100595212888228791963466894561819776252545465201153860290607534401342963768956253195247509214733954601797044023914558794603789494301222623079884345234567046952919065662844526209300534440080519506941619616548630255689026862859877571029557694807541263438814669666830276643644869044615237115762359958567027317776782938231333602384774687262804034432649660048302865654492331930961623233041614879843398687470503059042210182678962814342939917023993668713070072612552217090693139424875454464920279604193239240724671669785005223421359679585017685817236402004984949985326549030531502106363019665663199637317503311370608324372619141039925334892934043167534021849477425302059711754818049871256384514455805201204229396411404249058291116772631473341316915585773861870516793338393723035420050736844768280983682946425979873272773751529219354759916998148379835697380156779601888543984705500311142043349742215410369581151827679466884871748037577657842627942219551133103085050830295959341518046850023279928184125069974216948355683440241433686884138155232448947238119062168153210057216703518417790378918843375815638505014040652127883444588709395746508384962938738065158327139897840607096272536353103491422869307767218874525597084731364164405220854946107981762343633890469658895548962244214362567139745655610088523091815652299425029795541606318635417980201546701741221678670984438779553169596797253288299149957731738389768375321923765705635225393116079348917158161271263580755415720325526122971951053359500840483803884514430652329791117904842759799218585863029542458797912587912915602015359146473646799420535575568065014301532473580721660682695095292423468059001340066461467165604559841516498476436861294709245814680752452761555346266449108140907434676030692640635311729518841335407531798492719013967969060018805544317620418020762164222764883038138342284547848921459607083121018298784705610317773146760873877791815647295013976146255829732786299925258009750971069477016593939910728110238857242639456654614993216191862954863411130324024322139994274959760291669352736707672667480042454354986286304008113779881982783653373657869565507996989146861539750192762866722795336264171099213851644168392474098695411386294786385431391310878586118451436489586001786818037545828630805954897660281238494231133194596316402514381846674717466339679393581001312664167374378423497365715201660000297116801206490780245610269498679230084148434296307028537491335699719002658558121831335519275050980881279610805409956204663056424770104184243064120232053610035775564409971531130762884746527618102212703332464940110492065410388309152176756190684673119535238236612566745178119577174812368342380839691004176453596909390648199919975090250268751299630635939852255302092541872048471980902685967991719429074329669426025392661109563480075701933962136124768084459640279074209901580894634163761070006726784597729069225723028055280699062396117531332453285433169451826534603368745138009130466661897536437563403590784091894975356447054306964632837547851263231459492569796592272056823504848127825301265121063396946903216713211702997027766581452746740463611733061323948342615680048611399845236292699742778196874005148365808090228683858597725727998643345751112740014819939549345232593615177913672193350210873175448789523918814427073404576904643806400641069568873541938743495274141994992441386249619955275777485280222918763130143233395406897986410203974244464249210824063406148564573155172355544646259769010050051409729397325021291872388055242414648394844797945712607170872085652401781946358066924884209432759445969712888463309398346425811897410931787922767468514786028561758841349686963142695950677042506616979306470902241265509163407337891508844634972569839965160534850296350555470402449771244276044529880041439944855863707530823329495425702826680519055072791672244263409725962719069634370848743173760185188133814643839718938886147569927272947032626037923671639396771884957544239432524293702701715765924190536476907046603067476514654192461540205037589354916601871548211490842996162537342267458325008005347800280179383117740353836437464035983775658177590959423715804738210493880262715232718711448223091511793150676470343852929438579854848209843362805507186702043941735242226513962740580003576984233868171527127910809349415442830877811273998169618561874336771425917195018934101145240350608067383797826779044952351037756604525196607577494000761931282742298276713006882713532446359692846535529780689866331480580774645796064974522080574780824131981196088724994045792305923479684200702989077663738089070188443727524211893955873427437011105442571824705879407308895676548022730225087795108496089000300401564048628748820100161504298503932537027755406340489244581797954811182947232213451051319072126975789008443393148299100588321914483600029520469544269776182986996273286331716516496784082280000116082383920536235526584274882208662204746735473292116874693167843141036678954333709766157587869894357473951091103278275375440677966303135527101566034557636511457128739705258021262471066577303552495410712950489927760736472695860465326517980797353397343601963729905157748009085777076992258914222130719277451948179612054791061435528046396415410379379286306155488207123957061122920024225746602440416755920546578548804192112493600080684654801837771911630600675524479669652168278395328024803561571125268305181814258366298858503246269619824844008807852297715841469496035062338920134398261013965137906971285505067606447897849405426757128576534332645500100721357764620102967570654535524463247097897257561706051508043111928640547098836477590773029097464645324004557714412298296677725759382558418230951486370960427308960165194116920422690123142825538831997602389767210780233975811506039364678805322187614284607766356750969310299262273119272787864508452852006187446101138868572928980584087911216245273291522411417700906003693531301950467785427705269264237729303015306945509753148281193393626463483675068379527546497429979884556337541115259134861921503505429523519446076877116281724041252937704295827874687369081656252064467512860418603319336240204277560749796073766479364981320108927913441150377321408463230584972409244560760962927028602605295835194696746047298762760909823414190340119144726672379690752026424667455393782606536647956116807137279196798337306562706518042115067019680861827529445162586980922217371716768583432481968064719986955390019737668706581460254327000885433207359918296073407365149454388723361396471853817302118265901940116863389358299068198071361171769171975389436453003434038897758813980545273390051615607145738947360730271556179358219326417694216429007340936012141750388881867323318444515727386807421055284807994963607668609666168841431565735241340306610182162028767238487403041002474567065769776196980746625082413197476717574732537811402232104267426096313931533270392029745574834035094022227591569893663876059066892823770545124641054873234291057992483071912476340574232934735336441467975185727930084948684456588121014562516624662593671139995394631212277153909912472184940955381416235938058015501910081727602732482636367095095120141613636208080027074516524855012612559878016625894430708917327687172022829832419699895398589211480888514469532130899745916099505619683262820124392333067370037155234739494560102967362858130889051037761055679886791340697529463629098167958896226351857038701756454659220742313280817485883026623450865875082586768424910882037047226160019802267748552263883953616749805973821471176686372072016791806178915600953854680999807372329128426359648915042876190833645652921727082367362932826966198590472458173967084060188383433584087184235539178972523091550121697630465951430555556227043353534419950801774653469370873987043113085396658057375582504164419154647346507356492721585738887868620979642786660185552556402676803362263508070675332720787091101557540983769843333607370734729444923015569653394632941409040319500767074713504201996680466318823220694680752334611237946028172474321305851009842270696126474750129243297148747483435332998697763314349623113011038823857805677384063634880440647189934254391710081565188326712937525725331919406165654055672180065883268082648483699551386176615045834496368550642555765018464334166014772622217227421682375258622421359899807619668996724580820514873511966956343443712979895756871390238810960887790667779679693325084159109255974622474677753042662544320917692504071372229897176075395602662160609905126542507502440903293780152129862728758746751398235832245953611115935693026108934575183110627987462522029191727209514822808514862745571922385654820046479320980217482429526195524670708119748683861789576507287036843492462613504790628856995544181124512915412602402830233516741258372078735476539036444578844613717801182774767945113992262243240088827917131841779329323408042350589968316202476028128231490623016559995630330115543599722679641714033720322883348338373943160628929649409620195846143374092214322295262920932758194274797754533914068669352150147843497402819299925814651988027895820044097680171964781709945330342399580965316262089449109618960176137825163996219960964724306068328376300804529257022579429500301220298374117884353184318937005560278174108759414693729157096847878849359214845446556327275933562215956494908956760818517027885400498242649351579884474463581068000802529241053511715580197798345214993641956753750535188348618507540036675853442453699374516991428026824973807368411723544858238706810672294648662482692499380585504004290805575462605392300071412172548753714092483991035380026533833169903600304177183990440590107207933428011821517591589486092383596453354647923017111349628492737712922832630258393211793384726997509603574110508845499717916484525103759753192111522581607593882964630611824620908365634921609470541172188077153368187869666821509719874898795808404179168746145491205324306637535119257145129519133909613953111420629652901397914687624535207017968132653952322336265238320774121964129444309033727597375892521505617640527815736784337988090000643252114345562464745101214155142769625657205069939287692022550618394546432549195363396934808664051866703668210172809395640330969496759587573100605748410445924702972293023874776427186054837576213792819046453549728783071429691596666716158108760686015449930373570562717138985284054768504558611882673828032310350339258625856820542017810018068994749520553702464773009871214140843930907353651087652063586969635412164358158944286322326318428795966917447678582576627569123623699834962028876394363434090946286297234871772708338072284868690173492290904271229898982392844106667363225106653743292602132832229020402971452818790260620035802281513606220211129042918347165383102274933528834641611173977635788723239086152589992997537462071120041039885318009671160799068212772069622217128365901857048568582557723038339427670645358976944376813269283426257230748064171976792444558415958491012219549562222027424775330895351731755695638530334393298047995398774172179369118580454885565112728056971963195034944661734663902172585573966315838390138699656940128685572027030389466122785691973381886654104183751824694492690495643400791375513686444155719168333783449341689562660067137082697607079858208300423186811668410607508955811741512249697460682511102715756949139290728932232284933939805199001611637930943412287586550966467174377221540208004155982143131912245723377730787913583992675238040318385152461958620170776367586081385993342136376912662291621550858419055680519291759447029331588134853430434146986428188930803676014746412872759304490610103685165030378294240597971465055696331538795229814429751441735183849261854331323409000445512457506870336624363526310745784897970387363993614062031835395788959003783509929905153114053192161460527939645060424824063125939540927232868287251849005806681068323995058369709331245251906957223313426928281709476566589809237184819773070334404406063369207788367873367908705650308337226005438071834217991297220686077978089815347654043327133153402076302923673726117405736881761328610226795791347764685990520626284666262019083849782273850301590759798086164389097895970617728444693634945449959829439687881636291465883107290198796275015716635223204345586355525029598100654330086773422365596607668166430729494688729150463505837880577361750833471931892161480310332401057869351659033310326780359981504745045688964549495895326353557744299668364468146714731349494535670851912830320111270468412429987296082832245393910486720010251386572009873908414571907055625159280586974747696212768462165494445254182270640498367348127311363778769654181574922513425292881834493656751053302251217810218043310841135604289327279345204406032205240943099653127122887882343431238925209656430175341497128738704654728022355960098251172408846836464367134928147277627803463737730880472043237598339363437657610442112483379446493200028326375312907591960393953551530437552772569985660904362228057802261402683358063732569087188300465504272420925018977805068713728385756114462542016026097184457980183271173544972974450036252988739164189106213893587056257410437252465258240069744435701702423446745735724997489645070630037915169623498944807059706766272941086279299611004586567051375447929804479471409206835029488053534731290264957542576936547649354263560532482392775497493592049259556633193267198882489166006853423876358747281688006821265330011916472797769597325247213243585773750784530308837098294361885450578076316538524188147167277126646278602755053909194384239595360137379162026755685231258726026055417525776253741906510357629205821390355557366557829495813372102780299582162007901982773661793784004066856700663100278358511959067486940417877290919756081161291249774269436869720652935249896892728645528104123932637128299345418628544046917796109743468449568678251534504930015992356637335093621133274435350664540536378264216567324254339553007456927931602251270548468107598770354418725706806280344288571778699362204027310094838844779545613141354690663965541602050927504648803474071333522827139923473779367120040290082847446936556232357762541049687966226326872480775452663566280931580273005384669556187346498200165136920108004244000870135256227611115225635801284943213363544844491374742426242212934801094743093046862218974974575676053323452266229223819199724550279554395495674376312159745218337869047113334946294984053876667546836611748825011039919985594679318395720824838385657893584394022501140625436473255405428667359200298660329328121597032365347324573633380284503909212429144385359250404160899324845032624065931591414868998301942150665523770091613752841777733032567098456005834367709083250914017588478527840617973413511291809662044588002568386212598706000312955503501444535444011663118564709866895810488978591400151253263963670891786864057733890771574137200220013134015009804941427104158178480483418865126301257123363752548581571166875005425548297287044095937269998779306082669810561230505165310396822121385109742453636911583635833415986143494624336433268579765047490974839540278976067684005519732021884575953035417194034278375293273958715154155300981057194498525272926656387262410926916294880191365360120144016050352772674356898041023283765856040094942755866843193622648338495906514682838018302053855011460789811022540281996191031248849854011967735924136421105648160902236552945276421489771624974755808345101704747243394201533003977662159937963832758920723759249242970017677771368200442745331655138921517155724299264628305364144776304574881562589441488399804649276573145359741478567950230001961171291323740426361681623477657092656574198830461053466394792466623935019544091777055292396043493539968282988221459675861861949994169370236066072986059541724559494990050001018801764019444007295275507314085076078161707376150228246608689442537502305871116587169962794257587902292163896338346017738670643387862522300809665865196441672950897631507053021614899718666671277392686076450612668494795311809552579151652281971887469828141916578839985004274827444274324988258498470960014790425075533099165866157911697219693247582241527563628453607486569787138247725733232490063043434282899186082677741244097098915199956588698337023396097292627062521079298658152563189288627652000647316682529010050666532029212182301049795725643178898537039625021609640310172511522137306893958436509226679349921104856012466544322440903278258965235857703056843075190816458327754812964595382900026401728798388785597734547693648544357520260236182239297827738679294905106756655991056555146265189944713733072807194809015480238449355367104951725518431723633859666336093624666438480574563590732672238891264897527589688951645813764939623317316423296798149818959871265552072579443647443378330487034855803858538681086416515751107838545042274840982451963822015212945645483135747970003252057112224587447469348800122339976196591077143456136099393645441621664969259385718460579017902395381840513025387087453642196059962282029726779552676199064204143704031977787202875371838370945493862357350285676193059279290271574452433326386316058451076638217359737983122437077158429397736917466014965238297750988898960951464258297827810963528357295317235750139178348061247133314604724903562614661629174032380261400439124623491704696273026180835550224206653567334139955566259911447461070373372660495796894079278633301862179889817493494438471296837568716709312455098621817111728056852712659599741013136377624087701106573966812045940206112151937707844649684708686196922687007896061221045532861660708797043569808303025915518097459286309978398599866682786824451644814639715915999454052664012841880915489567788399999000362846720648907100083478814694315268519552023582498955085483844773436846167499510918073903733832613459521645395472853148421970451275171316644466587625149076814909920437009736215594601309028940622043407463131777348769335101020606004226474517677659040004270895835931415488862269032424885964118849513976773715264461488138813238013187029272947754969574826241681169973757101440982004235397683020263631839713513387443428661453899934444180159799309466288433703523728865838957904788666940916207325569540052846178255365234880300121459818200232511062080123897364120333574776192147581831812978200267054533269852165557901246347405296076262983186132115132709782436967768236500645684961369087987146461639339558242565845210524327623922364951993419030616740019988117853774351208466245527467076282105043415411946483805031811464083678325813290334720355865616448224735868199057917047225667651637753380787386797690852524407824073484889175935348491913178147748263754442171471504716970600039033106102036386695794418844083846037259573046478955249073618678099990050836592531852667468804943122517870621521871487308371133216745488307059804895509045445479885523406226397205102613595284541653719960850573809273927244025297105050587960250987310682613045881992469671625079733252089521444220928217636931740715989691263868732630680905894599148752890012733948104400335631055169637945449139235192229544864427977056837400380616538043695023531057437469812952625479843146970484411970678848238086426724167337413314422627791329705289481914271358186403909071286865693557950119993042329926618217763078549209703182314533590613384853931031236540157787724982196228294406872603269771747194487355114360106509690276739268453154417225272782913575242099098898433298759606945730920139038099977421167282948882701237009879164725510168111619345538875528123535454466652996158670284607661148457375458697823279721376049631838249515890147625760427528964374433331124135265478755084014602393661418486537865726967588245753048933611458201459281471689853468436488095148566058462153487155752237433310407069357894005489233936090801931903484055171723068202677596511075977437236408653094906664613928608293440110516709585983535166272233971943017195902392237012226486957741137925603673918853657609596180803535947444138469684972375827517467683453562052590062717997824016447906435373908731979181462983068755744214573086997498983716467736624942191174212521006443260135374133982858197663863778128658176655642180583366523589267407562650303107144969928396844639028986339681397542174268387526229106673953433215418324198125739229653628546216503955956389421520366596502208850324930223329524272913135069282531077848173205169606267516214998529836866261809480656132706688040162270635937620453415209526256178585005282701974291010505108384827488620423120522261549874162591766929226569780428431068586567880423983692278731752500013929953582151260491996230466766558115509713905418171235561832342531049184191034487820743113416550396067030793804353820626878284986469202248166207113321928470263024375587612864005766312012784212819629557359736650662011249608594683927381711014676196555025051157643023420599919958182514237611276528112339450089438838323236432324185701452244503361401148051134108011749042241113219784538018297710965375391114138246145091950155814029255727473100081043657827682867164072539647803447535676973440313973889653389693685662318131626220866118310191303247032393261330793623323267488958891413264552946548354175809114452756279934423183370636182783219990715642789238671964819018171715940628544182311220430250669292381156844876419038764891359691900375852428257993141327081980514253361150366642116119509968414612650863816257450982999710990829382254616402807140204433376881732747937004124042645300585581905480062422668012535826343811291442612822526973579867164752272126196488783979648910357703700843579229008149283222489003198694094562521490638371702187762945015758613508098522190963681242219382211824333910896543925356257719794176046468028706330512207319956957724852118203764387901510290381480612893898893956089127016581832747532383924172891937288947272522151634255135112850509196300627218650443851274768550158417025116382137601711282502941352401634887380139206525620134604079604959592180640556157080006561645768084218393208765203994152292089243437276293095418180361119367054263717471991111503048043372776364961314124607338899689334311561234818789139312831782307302150503720055007678943171479751992986255094044946895355958791593687161350531470963357431092451747077542283558821498642172084620209860578212676970890826779618308501382553627057207129732350239983584276390285319521431772553268465022964074314685625262792895602574331860746552049918943124048573566837394697610319649695849099007153970176493543582140700192707471494401826298500860600065286408812780797999120375037810029787185616874320332570747824231135412528058610079259643444971579991676901185619351396453361959690978361617867779981702681208464673413853292739869402017477263603539700070223477555451605088367288263361902781560236805204949817540540310398316880412362455508095305981984776987547210581261654078547336622466551146136812382613953395152250527451814051130895548939714164340294342224809122844667595805284544104440254941159383554921376127871013385400795743509854525881939398030005265224246518485137785683789103373245949159050594250996585983388559029980178868660868278418299823119015367562929199367579708576651009404773946241155278775293097944377232063443299874016708873345270797907099338007635447317261816646319018024362251736757708936079534928109946705986714351543957326614261372632942649356549536165010761413251075978450814853819621701666436111490200440882442942283887663394581497974702174746585403757065315678166966972647288304871090860503370523947920165195184184361876736026178712846543481439850610566771491166390669013032940593875955512094689307547883000217109304357923162398888920466681977649418695482557356383041628320710650256733608409019831403953803327938661885964307515613861532807536190611303509557084991012834084100820523960430537660018150110181804912922360146337165613528459548496204399842118633933812100720390950912704503572747805812554660361443663209717033215360065054685692843992665598257241435055388763246728904757342029138820271164563588317050094674156721307903034920407705992520969008836358618914148884155896512782888410572003523975009481955891839026580414527185506643933860110318373903867371095518596413205394708445173241098310890831123239579038365523698958226540157165607904052852639903688646209976992909358065982973172237858895326992826593701804694774202346698667636243347238050994159121097791959890767283964950311877671448680530025941417701670279809066718118821080452602388299598630863874060265163383578390575296091735162022186919528416013567701376323419255705967050019228978408729413896322585767231640629863156713109090980702336696371583242647045930406552817542161288135535961549411181364616375594553897044997466074299472904189278862419756493926007390835736807494642368682763356705366074705641215585230045642138128695940526513659385737683690896563451008396307471119928884801312066147738017903934093199472450000326021771084077043787163989930943457831548038088597838830974791596523420237286352950897428426336291232045914101629843358065362739665823387852935157389143666221380525336049229903223756696577998715403690279078581166932288779879251641226973268052546021819387040666126419604003047593038388767214145942998161158861028983168884603249374415188301326742758536891823395133681182439761865725522025810153024343553763781537758720125986459017816240308449047455940319742999143625100016389402219109869308487976010407563014953189071548979145395545731678563572463626674162476962767310871835140039496583200535764906905419404645219605942013851527538305413260164220699893276524010889042431931443037226231934479109185321246408350064277735090502491671459325615961831543589478944765137071322104777991511323216388563858050165430484901904095208182851268868301902459363990683128479443724141104979671896151061045071207311849632403518987926205948871518091457711665883253762711620592462151325271808755816383823979447390407126311212202128450276758294046391371887682213991088239550892500899076230949124506489774853042555615959365233394943867287884366654909894864134597757044689660780739225326689699672470191529665485012607561739050385691494204601763964352013738408203840764889000885571928129176748755570447556812132780460944439664263927528553497235771318306443418100391036259280694208982869269001127463368743793834855294782070994814138247271183891504586034671050204136436078384333923662550959521091530210149434964110393289586418540829439084706382800455844204030054680169108657362780015407186416468822609091177669381463350362538070527178897285642467316741282511448773196722534192781953080430397309506124273569748018441430772864331821113921063528728208251572727485799342649227912496592747514491312463089003206144121451715189647962321386988162668625977798099793484761084949495095859763745322363318077355441596250481179393373363798682086375041250199913807847736179629766423635907061023658939171923825013186555110564982553262399824033936635470133032337791578318400005856584227647294593994857212261984026134959702253751805706055026586458631551149070394230491821588216391102450484489134152902542434433596476982323699473705524243586791477379200292138507543328481388305427286394222400593280567291065681994119124552173499445520298322524435287213595583259384914754024346755937376066647643464271725674918809755872269660309396653860170845620604540694916491170210502463498846291560022207446753528516406950277679468910182168254130399886219117468424956929523757574250926892057051974585898141888718881009319725208017990788476096565858224036149596996347136700086142389386655579964947629989413353908025630270316259339156226714938378666326058418630836910074792213335400807722906913761571767499374522079342102425481246191653302788096204332945147197581639607433036658317448576821129706431692952304971666263892870508919777698993080721328430591714640102657791192565160007554141243024049377762202898469327574916442395957240986314532471975042135771244137722539413912234738472453255569709870968577259152245093968516491078483537518132600770959077134643204118485862072901548843212584058185906539785966193487995442138825803106258149799150236068469711647358114440300900318070421195785730566726520179142459550845142049154771688043550138063481077621402877774161927842955437137745804997462849346231734748179023903097043086131353079278192026141836531889123644883245199587315531634611768432006348719159504200409335682964060241611293803987554878552648824944073010604814053203306496298996844398133397008952478463107208174199298850767812129269182475688560930032241069002410575255616354742723381969239565006829080412643458541326249220899356963393646248950665828026981681986652363250625614989480865238957157532005574806507497977623430019579558448105064713295555961490116717602872602824579248291617593435648688013292444114699950502179677365905687428338206263192682937760000962432092121749484265122177793113749272129615771114070357220293113951719277330167307046705515366677227912666340451860818851710382401346975960939747864480195332557390613770905692711996416528991159248892385089946911883082323655082315024041992643369847649367596959290560091560802952729763363068909597211747400485013488973058527451517545598218671587234999318205798276812427468023805876560627187080277170476512914225569487516014878277930225497596437715526009859624394083649273154313761368046457939253440916596555042394980285678837542131216265950058723808793730584761119125287496630848024696059230177957573253953991333767209384919737911499378564933695587283520991817769293986413674167267406700652023812963850761799580219886538441623898830734669018060513617088558727981567436972080805175931162827000147918525905408308935834734014073877739098273407148289296931061435815942276649443154737689006970763612066339604917968122945442233675063698702595890708297109804406254791245458830473276605155300980286298507251755891248725762410980871540941222225156907897761644158381420071977092824237626744456949820564814069760882997414045068769093437488116479171802334629942210953652342710562349680558848458789388018057712983266465764772888023973233447761756799754356932252288005650252151998150392184380542321620825489230725617331623186583109835475238853205782829765455838519389062230167761823577291613964096731124309101226297811400236706078206694217211882375516750793803354429669834538753653762413373985684334326686598654081792385217580506963400979153759209987279970973129622662333078945554244730674103610146051615849740129170565370919892206633308252899236463999519220435975126795218603854108788518314041152009278766154197754941303799421436301087796317268076817499821660646745459425771104762294575258145823597460544437205646448091930859044933775241284750544983185193866832365292777442614367452897856753264569822531532742997747284677046000213941026253688239794517352869363224780875513310053825825390090935952078992664767939688226031382382769514741104558661321537954561956800125148737218809043995380867118829649253842948755760376247428138010955001871650358575606554308672354026370754751012193831411476408912562579866533631700943578195232625388010708849131246435019925604187867653621615830294734228767178880617016096968238199363071386474846727863770125819720343521689267749629282237105910224802750348534717874411516285990149989264751487081682162988045098351546961513900323362460467400858001814904389161019535733498572385382776102301649024301618456576847080625614913375925602850128726162341076586931550709252780171938498385001883841489273449860194190428053246949041979597440505613177326704316531177323891562397945286845759193314340584711244281087984122567448300043222508336762193508951184638566617356130267476640204983162118627450238037701005657186189643426368001370883954709023364525231783203223750445353904145716495209887167002085940929779948622449292197454125091539195309223031340690298314312799417790385217640857400858417855831766330959432563750392946122601153406021398244724102382520094784313029722463928097539560027974994739656982191132842522189022715165225681012979805670397638858035022921009685915944178984256312902621118119880764686635490237289708656599804536345136945220007960716874994905546491470562610438115135394972682405681664412462562934186254541518028897234824602360849457904271560890076278668074430269490580338204860030270289746622978155619961925307746114090717105022885878812816615056479840125022729646089533098378368357464718183706088097457314679604690633734992992103579735025452941829336170014714598029418564263985776479097145152008661973961801922642318593923588553505006702958299885620660443125753634717723364584380860886193795349644261680359717010849347308582042515977686564850597667824832193755577362312958078641278966630210388331261459112523708962151719532144009372939462232409808051869708448994440600958120237324947467110738220739126631307783519005850815873492213599045587128336693647897566874719273019665604548432204160253668267176709836589632200579404237769912270144287659205995951192686775092965130800553982811330373445904482882459279710756801584147246316195407789941866150339137179357592478929873989749092787690337376805304801916900615694720691305383779211991585187903892580073159569108538080577568680639771788458350042570313631516075508377194265622807722045185008646642916417145149475961802085043910040609002222770366680291404500625325779381090386762207784150992989174329898910646140601877173011518288492571462908397999809939924902494863181921316258882661830161790172889717066243974663274360919661602397184509888538098470227742072014298085915970275543950898907873285604160349994563272932683757628584333891214592879750341595972738548446162837678853519194980013477955691147206241825294207985898306421718357287661726628698943781394058574927570914029776310390989106431040213520799914706035567904447190535290087963375489765775554018374713808625653160213635357821498231430698469785092424152094181366796912503328758002527505655191305384997911703585225285474530577498846567080936711006289426305198431342723703186544089725450408346083521801455870619135717514265406966699075628099117574320197186296502988876967110044831757704943336552827030314301091917744815527987218162631195397713386746707079907622839527526509938212855852260508705475286804747084643873131454374661349074583296575027234589881206464242737662755866869710479793677454996804264134116236851146410364008913674985034028454945598587120617914242464880829851249257010366120196316701417487119517539537882186088149407732900535614092243895500487372628183613497534723547340252085760452361505743963306072705401784826328379553758826838613070071126831012423097439607148430194732121826943393607695088197700891004916204163321662196101384537698257977522411151402380873705863444088540383306780617337081671570808611784068288063866921190355845148257539805827420483861513728226981565243107156013606485322466513132050088892478550184174888095115167765712134266036589658552503432375583896983462251651577470759122321116228494611760625652729537538948976261817022072859875379724949149160456949810232171696047158881048607522404982334829377301906082304033450043234799611663145681627883907086640385984828786194495366429876243293373878152336020856060059257000047331931743684836627915290640467626248095209418713000395181427689371064172840242674516437743010484896687016815142853569685910964505788833968058325569612353137965235885347536781928399046678510558412325669804946553688583507707757755161324196833142547556025609783137175970620705407114292340407652276471971451212205513187808417982321324469275762503793781977329814816348176066951208050898259722399549852542148322783823928251044172040027558303108103895653805831858714207162164148213034161976594731607462662032376015200855417581741661955152174582415589674507250534662867653015236276903223921321390456239073250624428282803281832759178767531922866516958442884041594773677753965340929880266047510286063416344080543456873097760090705532754709232579729506701102816920771818513480877584707819810710423195763460174761595670442209368732730051104316198209024617965443872467215237908759972914420042630133982545822652783702355220938731886221010355813358583760036918901022044715783040626882469816509270338328529580716124832999805057398316789866368453658457841253244822020199652411537547412311871492902639589912371830334678523986879975810031675273928485282239459542808543337486716973129316017983847124558936767763933539139316713906366175281779230471584881199134757185936893656800218478953109869915637968842430214014917783601008142580090676737947241850320483485635506455982419154302649167368829154644092184495314394998538680158875888589601387231073062812885285079498137594677983994896854026169378856452187608749824816403095702773158728097283146639506794923347055078161121526647740527401717577202486640954714953413590887771755068634282059482907476000438024934148350924362007394599297747948904342383073755650254634089656141437186596651970197071012828320014307217359599431867730571300319494374822090522709155957572166576839760833365929972516040634191287238325958950516457795618293230154944212309508902905391638858282834553348347623454057876965343020462986651136418464697373018177969050961072332328627996649189545852855122902738560983154031582884341030630181735819329979066751259325360359842104146324827744267842844410663551825891238505539129845944275165714133575674660788624634437830537188405398003385180714633255921429961399744341372625519589905860476568132257666188174328673590035363474071420892456103753034801427186804024375295213118344323167164478358038637769274854346927103132821151484248747662390118373862232439424947270696131435483179083181790692300447853245149239992461360456825307173069156334227272865558072478657820851240163601295768780037847129403671552343505243018277656351296579747817900142196520569554646780092815190632284453041915391702929762977948159528264696172063933399146752194774369711647167679975370379426454422477687188535856050218502329765932619453301563101623183131876641764555833776090857869192231952241906132351756023931939328680118390172245792180132676627645680403066997538539448632379528193718810104695668086761899796854996574099515868710330434549937856612383116225620436281802868761317157953504173273840310531079475716534663542024397124107788600884135712543800786524568093115681237204082187969417276750533502286207537241192520560571604673153965080408193558411431523787294090950615702795421900604755425146885042210662352472191330254950485487030178878435718033864968634563219006759147871058708951857180481102128709585816764869604757896097176950642299386564745535720773723595025820204407789766461251006741167467322728237682497995081079505100848186635901309537613735782168486739030190253565306019637986759188514149966998861306697934588926248477269276245871338387930757741981945285489292738862680476919610992914926215653252646999288188055220578347423599225612815938136495218539068138198701399683662909694359338234181887758859948955779413251227496202537919028154684200845838339268605287599005454694788470170474958545373528484713060037432477962886323927894924982373094507530742618101057471412669624407307738535519449805156831954706904740358125724280622833968969248304079814467226082296258021249982498269284946769666163473695943847147180595008351389048890174815236060327823888067864212276928598508539241269697217834158418524918200113341968974112184076498115848212817753403690083818697077596867876173189266174738376067823475279591904400438689220076929160536569613945816487111271816397217142252203030669532652729235334493573403042516894292296409817298831619213891318274272197707125475531149526018699016612595108863549137968940727961440424837655713558279156134498007920273742490174751539554087654028330764044019460028163704578239962450442403870711527162706595513354838914550468716385093283007635174560185209643642636194359063431081406157401799961932867357719472681337966254891994482019631011712602844635662546791790230374647075148585361389325307215700349147795648606975809015925203521023151232609735640846424325677610995806024454608011879307450073178260498182111292341561007934254496828813449539040723875252933728174622679680505547593867525135647330336442993647433256498587597240400419008422765755657696096661558847447915004796766516935926096596802020479226688233757604994393511244388901509597780193975143460506009984591412695047011885319503881778176733026277254082517750374256232090697192141417719966441781781978366356872248501118613800057992499528838932173857401243148819818583906634015600136049782060278931883961772200869251417206985044159113465902619830016567857111695184002939196655904142642968335050138984292047981013063200997498116796879859688982839136431112335909629767639776550626734020583075602075460806647389073115930043264126259369030654459777574246424862582571049762256255472421280659433635107133240147570476762005102670079726244761658393516538114856684839220342423953030724729784056326665931653305173230189566428969298318902748725873297144693299501904648067613426762536250742408208078348500585728344580832790086687861852895192620502105639832310008473051960088887546353329076192756141883404959720229699670721744922606615068071419994259155705600777743052542016309602369160719557186228798179871060861242997328349932955445890872732849661350374447761658968310027813715405368101094555837346220115587233942508631025902127985038090921770519445747029217359074579886106104675585440979701235762517541003234318523243668444623459534394521140008125474015449612198222796723065845727369029528939974871896293572787286651863831258995698622115710300010398022869360413700919901952969920367661716500039004266905254128178242666527567422809602638776467839361332629413004496216792854523024413251619332432591348924830423340392143255183041408450178591208924422465423557091211774212768487531715704317020653985236838565969948692233841765191769615769710432791881959383604795734663370185006075824352980236950238898954920502867691435238855948431166262044739004435010773827489716237748986720319895634025078780236120753728860091870255147063395375149929944634215724765107518970967671941773743877487443248644634698488835832118591658256162176096075136188187632924320611306759031418360807531893699024145273794463865721339904969929587179353376665427891444296417621243157661021949268372282682365887238551496326952488668245796818998978061423935848443193605419632549880526701755653050546766790190524963528359067212133285198102836177129182020141425237122214769535665096068164557144534261905574711408794347396224481693865199487144753342217686120066760405529071615757971066604468879529148989050672618173483061720790621958807359463359467792119990738727307021744012775490248122116586052001904220177109054563526124854112555635897875222075739846130848909090464456561072028912531266120878691759095726124301748414542672144404796544382767579137387086719891089461600837771712133622896395645624332766420805659342065633182690395861367588970830976866587388567656547175307716723130972275964512963775114303302022664688669259507418214974592878754590759167966282471535250869694564992332775082537388545374247182854662889717371041158808469986256632128615986207436054463788138294778799203772030856296677669492304958909773576401136684135688217162948959365356186191484861468702095788152788119224605322826553231508230490562398804457220521104372058498344762198938782702639510617977251868051078240406981274281203818125352344166320850890304222533129584231161269338408288259642924263209787183136030615784065718646986939686776370560923471327833919528245665546273168800894481624791597822792343665563811307894097489725181606262200384248504573043858697130869163446975578147949790046745053864121280197299692328815421454255362094037884321475703514464870680761342200506882317263810067451151555309557596736048349095036302323260468024778133905403924041052334478457027421657013290573009349174643484325426530476114442394457613569985502188054111157371647167642068132093642052220634547283577528449597712404095642679857765740295258139131248399671576262216321269582459467919746300685881705073835290047302734428978964109939620766588182684432890822805476631913385768029083966319337935511974467126316404474908599963992511568137460331292883555934511579310087302599253196726306136043458963329579586251585689724724619552761051844626863621590486608932007096551075892477687943413463923292695677043034723154060305591179799345976628665939486552509345266029502120043995406037380694164506877867762291005522626469586725129397879245429526558995757477399083618791109657044131157762429114398662080795546926703785866647805239682302716352466614473363543781599825766595478199407719941396314663388211931597837395672083769413324024046398866906319062523098671343105918067170474572437487721972480326445263387540069642587690155921613203486951555682535898100465470222818473766034722477840991523309714398079918132951174001903855426380865238725421159638182558875739865381232974507554737970581728588334448478761870080607475646291604779864185263733745204313538462993117213999378566003056888912915196425827098930577864016667124944439770901035403406546539533099257838351421198270915427827005933665978968161512694763114946169605699602740010730582278583356609138385618932435540369776528219239972339021185688855934109133758799829133714648745968400907541245886205027842163892526366058500637005820352279592228588481965242116290312393638166841061291155198322064222893690954429247901451055580033015132275149131208561180424853768853572758982946222040096903710638259602480308561906214950104805340993671869427939421635401757192059158538239426843773889922491724221255567536317217440458731630895659583727118816473268462374429305653939668411626859601152587192914448009222529909574336537287004764415332205211659615413017741006406661285870322581419388669085576492921190727064087487994765179869170338375465066867069457293320959699712192992481718405958798845398785187881467246855937533983492407968030072084129067268730181483492631824720726998404802162991391147038067061249645142567090602412449173053668944258411838306108134530249954981900774228050228660989889514660670815170414297100121289169677591824185748006910120186750900601450158009659428623886173070000255343851156948323901345197692885756526117453526499196396462916227361261129975452749184920757933757310246678580556659494431274555792236536924774965412102120157885992149746593478533840373683225338565139879019017086263743281589505566202680889612955914315931727903221128968038042906318510845679995640046021845557690765492933134607699164518251335504685452995130994719659923715005738738573592939526333022909853391612978309625155416779538947396269877444721717776665112351462187920720257548739200719438568530340300507267998193092438530079132078471213312997033199897439311037758765658422911985174380589532156961802029878128393744746398929516230119053336443647302863621701670806798154134818310089861318431412652805540222112200193279537023954131152487274521986492740645405742375955000901034954561541112048511857285102170943661724495342616894555167438683352161000356052140509239873868195592412040314852683824717983018837075772211572276131499334106049498807509415807263326347758643830925920647108489066095650135264281999195976362681095642717629324717512007582095915013415219759282594423306134804518158576534791451838675489945577388881638613995023469057557420908365721405558911383750192782387003809432353380171156400991984681497521595529598251781723754289326934243615747461399786309542995244540849201515585599414174190122380580159274194130707510779329648612474567921880725532447016531171925041976620826605773875903971465147787371471030890015440856565076754688487572019899250707760278291313993709524121289863125040898318711367829219441334066598444255342133538780203754552713460492593122642839380126217482661912552742224003308930406915238097378665855413616750189164696620185907012930592720755643882794361416648601095412054970257164829569985455505729294156125322391462449337085967895992995345963435139557954271820536574283343906698820655259729745127716503093354228594648054586700580723566730379402964196080155993407690868533101471578825462467011074945126602345098180659204256978997793997284676401067702038100871005370737306390179827301776449567594232085190248289816068438302735731375711659841414420100441245982069503801704790384851554816979783415821205807667647259108175372360497288006889457692313322743680578135685920412420065340222723535008875496943974480031204844588059711845562162313292984522776361638637395061884302333157422539164011646859566530600177472751036586059505095864226575828443353480495725901118105271776978006449620346328840693758838422904883816687180024862225641957940968823991534340395027047883411047498744501503505711130984243011111414267288803216016081876222980009599362823002342002554083081868196219178594322579576999782540612031186946410637291103469587718303948796280804570028396128462845186643837842059516485706943293531222453046001512217147996796296395214768973351582933487633077487116692447730299818099182018302570074550408954764819545778448106013074323228292594600899379444070533997871717358250224174996945402748283692416614961339995457150125896482838950700199274098530151034342175912464848623984675563674399611589349604553791870658382755074277552728504497601832741267879901544700394847484770957907309292400685755149066361059315140219040963858622377959350517070211797084448578538947122414055263919269198639569953735316208478405432654854103582667431685862739973498767290980638569967924614847965444145321506485639662209716835470458102421161540609791103892270060146559056586467000648250199649645102690505247775143225971653726209760003955613437363070979518529901380058905217015951734407162407546208434978605456528689147371824440228976872556874219145108936102651336272444850325652790138185473415635565655153530266574788583995343691141873584336423448962355844731857673605743877446189056746078763324093363814217865037960807455050419183848623935312447614127656930378592098676141751075194029399158612483902270446926553848521804828903106358333418057421216710873416058517169532330922486414437289533054028413206633023157517050539341273439767399320003715915942231845054253375065087103117645788775066485654042862578759647327569970369348353008982011792370702189840421422407173013209920028769732078604482799975691964342206212042523844250205819820764273875766126934407888077065096702845704131478517382164961556790067347244904781434800546377315193728517566354941444574493140041365262572066485741735807824798782816488154183311534185448155336004130982518416526069022362544631505997960195492246670176966528867240168858307223577299741075132322120749642712490912590767623851749570839021993388607495243490550487846683246047041473456177238631059432175996504868637801812142687655156304379138353816839164993857008538013810364542240124781271698283560222345854365502081727099887782739317559080062358669504862453595539094399851919928367539996087137340802002553947817648344682277436229215937354559440050738858232966874640930416453568689845002933741242030169346880810691515407611402985344400210858986949264276330085829622105272814512072585512611314733011087905867680613816169564799824281937321234486662089594343455024235100961413428035733662003953995896952388875414459811802983919492705033432957794502808483509043087576512030947918080043023827916677289065320921397136174375232410394516603001992477310867874366533784032470118094119590008356956128697776164798800017527203612382445489609321950358606333485507746628117499825648289573206233118565699203948016712795883030532641212916276902840881091718599608057780594220924362066042065059508054704079899055481470099339688166775322783803112338210871453504109568396706974627866725574799489123547734993858242162424093742317023486118021912449950441988767603433452499326386136161586364054002907582581315533495131907552417193110949652259324020379055218083673886200967416104252604384687286150142325584392088596537086535380457172303003985421740077780325374468848793095134171177088996396189554779688642166034305439099388748915054426453163679849901769137934718637123726590743594711452013902867737610303126748744595127084737763006988973956888165854373271651551171073622771557616335367372875097950166704079571746266117862085682102115098694796426491650015805931863464122790893900656262442179309893741381456302092772764557640081947338803206780338834699267610572816607049479808782248709590129961989524248016374560509980076835730731566486112674894724707479072259846255527492736095277088318294233467114605441690733256253965719534817821651921468067091924439820081713014483736707680636805655617239655172776492776923114656865758523445877178147678934635809748534779758917296713787940674001032888990351133869593457763367069618953691966673838621489012135305745477350748628564488813561918275075543933806829239588705378048928058341076710347811070025408250924806489169716914953554901145020911871244932898498034363378175710591584686153769819809978909363140790421418876844830522281406997196219625075913718113919415447244754591070918939103298636883410915038131078496777595198025259995807501781806468669079975186178401747629132518144159959729758240769150243689201768206454303449001008574236471604801070736842423935961879434112116140655756988201179879711582279506816107972818390023860034152220185208005940140295240666304164599315524504737572149071080843012906951636441367831131713418205099255614123301717872439690236278883961090736330013551427516982903786532508894127952175073008496872208613187726791482121692341512153509213943039259269833447955652861952232658420787627844516298218131330334386235045685748448746040536345441568884582462588450032273105913555578454091469736597894185688457039247102838242117493925614350087249272116391974872231457703041064158624088873609182101990383989776274267190850435187842808168318616615592118606406638323243438533389269865012104325028190014822367888309203751118838388811439159395825815982846565769692821053059331418732764040286589730084358884496150214067668934346870362441622952281283054738831694915058262915391673364594982637952008747507753639918380967299838423823917854622569363723140213504380323371950407287320277263644102289965048026084503005372654763754901595604277744894077066272026237310571912541049300534238338456733170430551563118705885060111406320595463227889844376724297202893207141140784136045253155869339087896301200827502448197368515455056676072286104945998288881467432069608419837566650112099488171461464168152177749060164717061790087020750021408543795457473187668390367364777858829110589209687439162571494153645038741452539242623967621608805380505511015685631901059162185617737239985137183365772210088759030468617466583390587579057149615307820824737803559485249043792538462236948721925486469710584648575085165839072567743015321674437211258917312640903058084569521271130029935604661602145210640518270616457254780677930662192667869569252030821819123248010030405576525746669376527167476711773978097098235357317713208032369570771532477533630202387918905406267200172379183439654133896214677774406500482403367645234656910888334258619523105341009393976853888122380631216427382821518732979035698994730989533531576768235850387482079167068256286243960001676355599174266915925972452330883832847136669990627073534837548250060791959032261468596394685368790173526738802625292930793225298606732587309740692954569360937116698596910291585291540913178698625315623627777195327646567441942610309836852295526434880082771779070988260655527591288697852714448065254662913687896888981252433879293896678175836405804111724275858506351455271575642944288909504706852440515882539044950037652569095320579641259523416231802789417007156220706469883348489767939500792175599187712087576627712495013070484015487331438233992892021990063524389464736633170416315877935128454396574986549297749403353749225408628584781021160391102376056349960334963186785375120307308170903566084605178086076381067686122408645873995280005764724940742105834531027969452969687969515821971312251640195938672093249891815792475558263419180691650671292746576390624327680358170591449623640255742674485175201938221062232413396010742406191173798197915840219542273544204414068831626968905791154029643728818607602939739270120199212308975525462602269976693942557212812888975911779239323418908520051617966567074735340420523939127108849208217731210679932200525036636852142767210065647723884157359945521884993023909081115086802710643902756633581120119853112520382965930138613354639157916313013361927515954486669167503373209231314944069401312665897765541090295306158897508103529603806189328197242871313544720570351352968255577449620834445793353479835363512992764271669335759113109134345573978477068121231325093146539629359329166916526831248184015608097008997184271350552336144225196325825972433322359582306052972069635284196075137863345218848749303555076879768090833162534002392471890809937976237698534531320807140727125205882768895697890948108736095308779016560262439434200937384158424571211455402292949551430556486751990797993310587155845265305227682355463955152296484780515979768048529777414652155387298367174939146065030156455742405842333879984455913655612571642456512751816838040592588346903281018347939288795929909330349569648435410467281705990928051242497923331584612844422725039081561664182715994796319872292562733517558615558241416238620290858520394346325642142878819810787836505710477425994781955448870604440016753936222348618967316443293263272832694364665558498125895716855758308288088343830135986538144702660080435568495343972989539168798795951168995000992824627554714504329259476731773203124487810566109075969283333615692415897064306301626941729344431732855287492318391206277676339670588317087985205565416648558923145830564098514503433982293419913918489477142584520098202310408425483906000293581302514826298592387208310197514649051204165510610208336525012349560651496307041891418429839393296078429556680581347341741604209743946536881958934558976872514158286507968407041852711457705736291374244079885916324481423633244594933471960491886190497527180802414544055618689680652352469832309180543053175146850872599234411611494864998765658592581209191083184724998219396453949179633176315957629400417637993602211683629466281997752164249132861209377991560477318223032626231294011597202597396641421236966092190242745927205873311182187847751610793717462501570927182563826406188238467795817671908008907654753558615532715877655345707761691319613430171369902706163643011001888248835619281003096128426059794038854411417413696324396894762233415289580251206722172250808075469442125112510360954421875078925949010273710006509484188217978729849174897336645430480676023473447359814671654522624609599998701592570731679324905700616021826010447539639896927626410739249451913421919727979557776330263198154754677478189147448818618383002387888309997773334571710023532497568665880620539341329100585165914065634305748245717461976077065497002287852668459516442880309121574276105255675235896894576343853105068761996733891038116368664323964945732672924016972150665211669086644491076128661831491027847128379034046032046566601131331303815917445891598147777647633964961774180204375627738857944965112028022310298971406769133912953920925548851055708003307604942383042479047793913661696886627726071677203185958927772208414909129439966267481892457905233643047223549165992109081989707568552501921307383574286735501172496782181562797613868844937781662557491870784889243369193185127477174376270455266210700326901907215757567502011635791998374616610683017246747107682243574962557905215124673262627604604774209980521919608621214429650570074196592462041350806292105308345329198843650684052881935119586509251602733680716593966331583264842432257484257401202477145844052838950113115224359242617012409480875592652857183567260738053857003802939334428038322922218176591590496306606697205289656335988208007210298444813377258628125495066455955067236401691244256861120600881288245572584156008018892846333215718453135023384179797304279647809099551787442162722985398765664958506761458047562203159159696266734327606963915790416362208013035526011352329424687539455174119510558003817150548286488337875765069722171858523166142547838602801844490856894148427334773026457107615148997654507980172501578027708509801366150829238825086466974685902819806307764745874683392001895116750362843318278018470331401275831273399081546990541387832978230174373335580871814983506205230614456384440721943565141582730663622342725355747619821456628652472780622863287699298310837949171393660353581363809156718634172190522366999802550904659671118822603528077636997722518689851665301528711984634368390711960169577785294254507463811303893264351387956818061463897093679416912703422612932439852046493177613072191599196317150058963158249386444629460267856147805141941878170194305043992967158536515242017212372115859198164412473592085301226957314946482683132143447602708072375947856166479792850013372523733431010858861044957722851770190251174199939316769961740355363210455825557140955055408965959825368746224784679971995168263316789195293566167918960916885886628905925713794542503157484623587902981399036845733451330568615881301082050173181717297782269373428388811662967858863469016427449051521275242478104211841678914983192745869241751560300928329600468929727298112600197063869005991369975743409408011475426065435231339116350832196692959463775538679115152435807995286567970351197715134674337870718246160224711396591308244080596781553984871929665560018794133586894194434824274760787769300520269099198560887258614300692137816250113763873260149454175882079701598162575517621820622657595225803403240277918142941974456918765561959047096227533214288578345752238825251759787004481544877864877617400381751835653640521804965008613771167649184343086705441344480008727212210531992636887641621201167613642315260625826800041338601989887689623447583775816586084991929188189508017386051981806674423802665634285325090407685107350489087359001480434208009660418139256481321457524240331669180006226915788877054612696512231788430377115432189185352705000221925784168287718578809535067652292428696065062240072760895370479749484726062938773301022769352301351690339597711173990008202328325729319538590526576149473843976598598019544386136181330355066273577398668166441708300945691161682595293679293344134001074035202376130599830039994210193614636512305115639790175313027112541653430486736110602819183318592501939153428870270358266986249589783424813872588039804637939204904665824211303305107145344492215193126639960296394467682800741263606903922559261734830959896855744305213813771319241230336579246919920285060116954522663465612554714270318259522654536630627040460406011891452145649004133012495738028660446719036436533725027722295430222455760944005961411791235887596769136760015773559433512257561921391167099836721364459296912905926713881658170246739915166951117770363986384968915582332387932057784113300667332242650258365594415966813188668925813444998121968267880063993212446771392143906786481880911183241796996029062844526516253184194251522692131736507592870006440780780868974402955239368566261546907419697211302294006716973482703604792725450345800332470835542495804664597077097792339375542010382103054978671974101439397444455075903962024931910214307714471445999424182854697478887664364509598119354213106061118257344554926906674720223100953612758535206251061247766115938800296337536004504305446246554549549815623532487822489013123773965706431331195337561712016355007559631919997647098949658928429629314787795612489224551476364377742165723497569716778843438091716981386283723526253378401052284047212395982345129426762192791365442612307902854702255306714112960885207685702237268803751574789558374541576829335725044429249662058525992388421810912393402749436504753533292110819938170982846174250993127165410902961736120971964901229613897844698907726734473668934757132454000702199666330341718055460894493107074502280992375702257544000354939536363896242439921416104346549625973603376807457901133561435427313287411883438621053965332647313084433494015209067545392319070571568986083197521156372378684184046151551060376358258908856084473356204006247216084814107937666471356807315955346330146969754592672003006174955891109071750925519138974765564539650114536327495363349758883173059982629323185407223931793397320837970985822268238788349432042631059979773049127164088347016684441292221329685750975844244911331027070736211183253407336618783299780779561050547589032834753114050292580198455721523079658768333111367005858430946829034401538795216175717851687195866687667040832610622482487341539193582300286535778576409703685553036258404282157442540910372111928010983231286950685500732903425607061756253046571713964321040652476914848044698682350442913626425395970848510780776904061781299884565821814270855423229532084105040511901602673579176943262217692790715776934317535397343994932299847258723933293112213693079083336169259285746746612729278259898391336880441655722042288258799996641293157195158210682264646250404574184845802223969839074316755362561916783697174139114313622824342289760666958640934732521243438208226180765845470344908566680306915826072646299092963720420115590319953033528184985653503534152515772745912108269721642540501395186636906658881368842446269344996331268409882960158406643096844457442401873388428001682868383960763257145574176480510854407177558956237779391337033223573122434448518685971190300915551645130979992308035173567214307514621683679793380877868183293916559463804756786103662897691646166407064332543137081843482968658731111598461862258486797200520720134253186780879413212633759943585377415734628190340210734914845125158301733321038597250551342716390048572342174421886608585924848598908769968468473811446802020824097567097596794979941134075964368076735405186475574383732557302970856360005370845972194591720275295342432491248351105569182004805978786151751906813406099569743088059835988075304796923137877215912722784430234569282163929128905752470850147463028025030291452603636756498878362641536047264702447502863542083738993713944969481193749900265392961458487197083295949469811216228104798899364130520598989425104705813082959783386256165818349263674825944271904337507801448954622195114380783028556939138383721443794413326163288715417463416104196956603845054938358689744800964812640325747267305747436347374002285600877605083173802691143339127574672393265313299294280164996751223534543318107842341882409474807307912488106143240708272110820937831969132574100511337473779791545894657468607238833353419112149021281658778614694923146900029156097396805124232536783310124110734260307213433682992695191868275247064796452917523126486464746057452948362369783260106174363276732540121776142209775257247040493654148571019291196367848448435890177120968236339325786921043903367571126642867073687416456846163230918900070869448880699306088009133019335846687266714057630894975225924285820624716648588829507760679131221848946410451267082645169042590453645305601646248348295217411531965802431879079451792431664898161830413515951080011839350774625079648344652697507323876837487687951034203239589652978345464684786129929750612107419568077077508648690904329879969344288518844680352737533829670311443952654210226182010887615657735103665758621692210329224186000159660769936150545278767018386645417946718189717129352655682167894437865843185861630190136346766185685320310354082241050061700456927100845764270284244800647842720361698905633126682009820732524385433349079795220893573263501900529390246640547615648597410976483671015127686376160583220041781078128103633106978424642323572302645864378896522203144691562475593901369006924291421638326598880727426176024567267126789691283032140298646491136071996502819421327128245318200791459158128357475274063848112353443767670065455450016986346072958918842659071997845626323529400199099861062089281903360589560217643244590936831050859707743458393796706424991431864528073831970308345226402938861874705609638086298192464824443283300878042209276058574796147526635036301844717385350762486235124279118744583253880752105497827174149048480541656290014538233282818161388299823856826918128467019342113253391021936361679720690876156948951335591281917055349755887948228224332977298748852115063986905871949321617837151853218983025854604478169142227041119234453064006021049132258675022681388219449433664327243916920756515000727526018726049441671476755756733938258409285547860778991336273740739587833878462878280315992599292122127932737302068409904139768944649658602979451505080883033616777145188338499753111967797960135425317427419106347440628557703553895499591853527580555097209808451435766632576330342696079666221720178144623419986779869101382875229443715000261007644131360966891495137665753030640571589893486937136366363043402385564699917231976433670300646753801139574844017920744017228043977042258102061132381047843373472885912862378004725314085102055606294316057955819839291109410913016255922632673293330437994537402112263179907340915060454950775970959478498819774103999518932361934530513447464160006605131826849911661769479210118114113308549039041718998760033155893265980673455996175185386710942764999629831836123528804939533698367555913434909113704885545919534570775796175932083584995780643413053333227269606957396433022596821396338262204719469137131408492130463582796673729154244924302767718251611577952986743848340940305788856309104042933953743766197186642188606224599496446288174430486749718610061843350152714973324252182962451627563576222925441044252306676204653359678055287414424559540458720578964220709162578790301208309249837807494591322728343091603498504816242262785961331686962950228996426667688912530295382470902141997930506793686332793700363972550062174111222734871106564321250669222237838592340519156018932563568644420836495313112503312844362763837861968095535743297635498925386506888980357545786699733549739682138254358290728438090088623132835616629373257038795417586908482096855191921228108079356672469717379575711536529616630405487137765411647734980408573953343051932463146157667874170474170922150328029218305411718235109560085311989720505803748910906799926941165739776542865359254134739080982182081334547782469997647040546088169065664221265666192540308138992207142418102470755909869600191206266974070266771436992913754542622925665249727507374466758435227130972722652288260319883926485989967518410079680163090043051406614858627022237747112089489956621624356791507864172138917557790260454054285900844961190010954399058179599408447907371176080838817833170808266601635872528647326042677942472159431303387717868402821289448526697185359238687519651190586719218569875724371676344588036370220258840300564167861651907491537262333636606379433008974049328842644936992218893221376172945085945684358955010014933621537074412352554853730178628391476911965353373760365293911645483688751357311083611918445939806372120930094169937954184460728973980000580110218268271751321037575420814208424841267777542394347129174243898385368456334014779812478549225734696741307814239489175245104773950408012125925094128376512468943169706980239488374174824181229525777979303757492377461598521226184122468368146025796198554791914262600073066551171747467194782361219127177724790809786053908238643329143539258720818951375365307231915495046493063209718043758099664817192648842324580139817932231870633516308521949441019549743774904393709404728620426848940393445287411296594084332139787323716921517281918584302453099133823868428649634087929915139745372160977185509627093897189005825509937571293039686435571342605390910630272276911771108361652823631441338956945993736516135689699694031323514367364908238134315250943907588572524732299261831209185353031256462002814321320813392552688805185421111510239148635387628634181258474955161672363294137586045490972554049875663907071416158033037954276903770052950793704916400636570943211599130622744445559055283082034023212810815202632398799965075330665730974895746966043803323610682472640082464742219499503863595936361323005440517322416997822891808619241044280670563781709196357928021877641764126834950419041107120146880465124591796231653983761777086760214795096607528753896748890800281403191488636701490437337013114756716237835378509649426172147416002025185973144191038767924684445404434594249002388761720778251939903458139337397646485972257152070802829076886790818042102094838728880062943353351384355181226646481477970060709295377273458472085475665261367259821235617335614812832760301393534925233036224471294513519144394255095427752319131574747174722738179494257385158490864334737093651684007155591514271077158560988636306246061674650873392772855171234929527498568566337352433183565057539940526580144305038761234213363708518494633791278737814591139450945038837791204155722394886208514542437116573236116810882444671055008757750993388136098974240254295063150443925322954382236245581606951361913893907732908149014533718896671450261946626225954236425463043421288337999954822664048161024646977523244229357186468763290245259207289462321041776970781599720544115618375416424467383477842190057457478739177437080295822312616542385384063186709045226746526973983104601361176591694044350370919811023226320734473386272913077202659706296032142604876101407277449442785443000557275789601483617649794059553228410201161476670055324184655991245805630215655925020347454520097075858366866208574446684889479092877195954875281783557984614010342556025673775793585891506741568867360687281242790768002983885391873100362237996487344713778949393122882727206037273157135885291094598243803328140564677669913784604346403997804097000663478159600731433557615364446902277793265130870871283461704930861586101670029622461869111986126710826426110219744592225902611478407902133633802127313424937070447664772958739830811891407073526901345688768635277941876253679409272268595859680296272349361327670968052724028381283724706543059161210971409042906396382817246540843621296562943669957290466603280940781237381004742294825788470386646592859148430008626634363714086228769867589600539739968457781567489718902768223880196640690933076137039580909309081647785864952141295857912055524782724928334099903638991618834381949213041666881046025188267960412882799030181438134903346959366887506289033376807861581487515590124434941512469798963510042280928375017433141585603156919264559068637002749902323404601903816342712748973925386647332308604501124180094003704951863460212762925539290786173079439652231244245511766765249741115418313821470161380417906654700937029734757252762267223141798438735661787377510183711301430115924117951555961091345100658142325481878018148519783229996882936752658477823905880587868855440307406615753578542183304698110262344000839252117089691027886048937178824753707355986028688367291072881931922131536761057591877266585781261313621925640499436691849603851740083789489396886561814415420290118659852670004353612533443696863817649813598668485129540013743555881279252091403088392110131490515961435951475666258974615601308782669109473713904765718632991582390311071670949889923896251821530694296704836812489812006956345935270171715749958141957381758265550403841583523307563869229117491349170761506710797214142427650010874051726736344756755749541078539409870022172215855549037060718634859929061048929634412711476622404490361203815071531615637147418528064475539609214853507157030162284658545848272373817532134603990759687236058482807285554478588564045995978274546754089605776464771437427963294529546489127651380565444130281982640394407927880950287578043415688888341328083556481801618851085670555245538142720265984915637880785058086923361183701603362201289937433062856203546719067261518560545883908351419369203275550013041740753061119324270569887033171365881374209470069860419354454044583717983692442301864914925248400911290421454238987347346418124465832200176018933586260049822768030118348466384713317443776939266258688277963940993557398419315403841561392629226016866245029438043482354722837235982747976779907787519785664785797853951702818151349103577211811421326677334014372511934261630923544725470689811031943708238129706567710707967879021029591857124587635380761831168195225305581693818817737981172559290092502570611365033498282313244328178790175451815087944496074731103308994183633225953163854420146418059754826867198309109097368287193799402977718852040300555825700388395769429991779625061721542629407127795550015980489859730940894030825272817189768998119673804765252189899200602118788070241076634041769399399409825333967612033263874396608337789327214811599396044951698549752326105245626070296188564600900640913988249749803597916506727240700696447061271570286414137083138215114032822142998983892552586655235174731324276347020008576279149911599307784710159882597184642824623567033758299591890104392864271854152768498908337751602616203184650265962453202159543672946219938755181106877265304392354798420162852739379228260761403940097747116807623942589820381084856369091682410983597963784652923965157162960599448830585264718456746906809174455890590383086135163669448415790878648635695969755808918673934852542927018101119461271771392280309365419347748201319876927011515385759875993907678771467757746706296696588524699172041921319067267575024017206615123724811396674997027799313068725713047933846704871276266728988928579235941150915435067469460239162289355448534570684914152277639980464042729917522817645468584130677271841360905171846298766322030520833903006801667428540561019065329930976600861363661585252354223453880739904313469124402901765605610330212760584463006676270383378548925521231916166121227759261756966585319261260903500938990219918384982493406695190524871901349537267531581085129448688567547296794581152123002538456480402227678475827881683283039981969476141523653889409284471128228485183654125365150006789426100557887717528174663160766689612477224619094439796663993478164419218192704170931714532966444354809614246667703650479406823969223960136206289214814707534395790662993133208704727958187793337318608665128283064366113768758875241655042483484260146929196569445762108790876699514423446729940401264276439907556553745703538700793241043781305058156222617228796517894764006872032406882911126563985691886391978240275325965337834349340123739227402188385558874001487739413539854420211457967980806835072391624338009288426350562829142620045226351553798181022417653530130970398500971178526790492965197822459438002780303734312194238660760567309520394681740370401737809519040137576610186716021403294409949301749858038310816498096110136136627349309388881198477911826033168535015285414563273597263439357733146543926804789939223026620776633423236805774497971479567994702794666310597409167870791774543459768432168964214004591851665910047522475104072007112442275241265755477631147405933621793703661758905455942481855235450593689061121058448773940444999416173961456412742075341639368500323080094114081416167118940307521506964235083079892019836446925166467170998889833165289342585818150243709088842293207887406204591981602820967513028563780560756479059349760141230409897563701464660556235058566949498527257751115319669724829373571109290497560400522569765230425909638015637604135835248901135767008495300562282148568774942844556901735804103165508388263555594313208938815403627108951154816385593475374597402918844729601977269346499354257694480963642623248168466057772533041250791830714670852649911300214929260549981764623985721686400404162468812583657611955025790427954556970211404686869193569837933389205327652781147291604266167069128891345083331408643121612532673458223393460557099487939723270939620116768095231171974016074183087004922035724285232959446264754063447306066425523692477076239511598974067318480307423029123223108186982883441908050200020784384037731446471691623738205542296596389429700744521928773171850553794195038934366850445031483626187330084402240776672606755902930525829473319892898451388680762796311605799487619717830316756790830457357435293626090599527412188497872298018673530329413956247486780269370302894949427660088194785813208011180189445084961987600706955746220871958714548229752531608509624312746036374336175403512109007981141921699230892340470391507736947549309971770211242569296437432627357793088053953899997374614519771349047574353442624832038057647050544367306871712725928438923893036030328470035156902671539619764086585132251699416880552007506925953419980975656528128735885042305972670159913961079581636999596429376116493525634680473119378296763493812819231507832001944644463520253394782395726140503995101728864234003609109565138877650565329979541275493140978434552057753875767888016534219649610863314153992808983362785925537179563271034275561225361701546323788343646012927656327720696483991999038304407289560026801203303212341167518110252789540239845443989035339050739445059590581882365781459868045409600951686260138395608745097889708561983667335948653167539818727827533316974535680721796472490721527333752096280092733325086856518665796700350747837946549233664907593511637352675554946864427523550916509990589966262279357719057402605312951860123478633301155692288464107502192963601572681727660006286166568070308295339077226645455618428430762242701853775763508785780503218605816915614091161844090004816909559353522475591961080308746915121923932435376707924933783660851020591610494996835974319755037537088494543674448925014725260670693334903592879193826188460046545785354738067917541069507329867398672908361541593402694493287879596068940940084242801693169287724284189434417773086779224448340007998367154360260868083298568674652787408557960223518334163692940825436090733920221645761955183818936756912180912141824581282146756603421684742833389695363871376531252409178431273601652957707054603721487989195259697516032742836597737289808067237229917465310275471028465584674637942545393496392501461143412354928686525858272188373809241298943288473747844983973046236116442633323285443018044127851479265994989571425586056126327004082243993085434002945105677785699394300164194429613661735892374577348442108131981839674337259829414853042224277533639733791069108191042312927005151435849822192776757044034600613136285365980816770478890559006402632658437010597500818441962317254125112547970270707139294858665512556213362131190211184667195114917955313021560864392228184769663039184710075269001722605411093381682807818205184445176829250042258222484363077338031796868689634904472212279649842179155826786139124452767453895118281855325208827099344554701107511172194821545339353275839905201520251499043735106620718630761007753397491527390199799838696168999412874088360130004552234778030319168388546324549087809260576814298763741060658219279078855791822561872337551150883400355970088953063402881761259865428918000413356742030513125075023076589947542209185859940848566797563129999945319247243003699846198216269723737634951186349461431120079873210262246199896849412957522649129104281639268529957655656844093078799723597773983583855327404553397290007698877083477311782194786459297213099535884372902731149062152604979060591004753774673332266336912978305534647627049657436894057645539731034628188165500331671437007258869886736616694942570144140173621595022832906068137609166929468047167781013491521075273525931362796465574441204471630332539062219275039415935555929820858843160127838571085266090928412093689699477284971644137818817426109812855202336344066527368340899102768175101078892453772293009221889969465356805902913899749235027034463883826411339155426531022090018877475324766047861404564969071024025608527245647782950133419044386959996710436385087076395186520534952084695393177479183432232962537211949438501460040058279750279243237194890538461004951019272752122436819839236594337873124332270163385557031213685246136976844262022699472946115462443329058051065655277349347911252621426440072342752957678002467230813118741258709691500034070897222059709029009201010428596811728238934939645834450309988384822547750561715769409867742201027521553568195858641444088848626326819290536940352807668770140488511755526264453213369086667970635772736985865385778590359454963793798961664902363862743567898796874165501171191198003884205211676733901973601195045596133422957924230364955890062697780221717687250846778966390797708127953696537617298847452857298445762629601993764825719767102746710884857573340891613220790540184221634798618872448503210590932978075903007443644046502467801024588954559673953551587753847433933236047195314499298315379746116416363720253059597310308960353361803208436701383100253559321359270457702663626020289828908623629144578636882197473633659548218742397325634032779551120923278839323072196838160505458204653726438842778188593762665765687245566437929384522759014330663231513969475198187493642421110539946651664610553094451742358479974732362288387195454045812833932369968776420779871370323364628729612055962982682633035384428733457732394812635214060941105354177694568629173197485810715530813204517430915046320647176099599225443413519141091323750818219186643479962362622167600778159236153938242267362201903425227180361962088212443950855691474038521701472824558181284638024357996026669408785149895478067317558016860777147155553040335068479654797927181822960877282758209588252400567577736226176686206525006893955229685073810306995422276906611082578235926777848697616059444694039038277609183027023195911638272331210374470149009700280587523180002292691677611098658499389637771083690751044983422154030207697841890745984404120247795911399750000815571427243444805516201986361292479941520005932376077724618270453276554914303664613480021412442760406744126877538000690847239408625936324553258232564386270080649639883618992379031465552254307075479617853406331889842882328732222244069710328668002298313357635464025558623074365560429882693348903172827345598230289080023075298410365711564572074633183948276649709505012279625785426232741651233923177875484473816956013457912214318225229644463000944514161278955426568841533618971596390971486886584906292322056826302529608853315846525998583481322304677548157448573926059218798077949522210019797632002767868959337857651912848255428667047369943084798599563297192882469049820392675000938566946143696057548434922783559130019442520415827168643346060529221618465613722792139998590140793411642547462212176211887912365874969626994082757635680392770862858816859998521808547433426883612917590117336679327136895156222214482562601610501209439573032905515162479070924547221957771148677612148898118170673536191347064777198690512886446691863532197347117526331569483227753864474794255038513303982542996946630012402529097473978725159824438059399281110440655194192262915845721325677154176950160043615078750947869950362117064839508072056275280313337818539699021015334891658226587965747736398525580197445892447365987245503671806221688700395044657540728379510098373536150268476747352869533567639105248315155720856760322254103489754953128997084533888278720846136641135157746931966865476854154294822814386120611095778544864029145322750733493753135826356861661657363700525297317661577959180455540447485220101475377146469090489482168239796216024682609852878374981200825875306047124435675777198509977652890629230122712769705860147148266812139176689614835868151164913857475028392685313857574571535391019238537393934949588817819415830931827433025558530607777256610714335169510514109674707547426838597589658509908496526624363403687371483900928922679791413270811609957686152665928100707684715890638938481279080111281809863091514896070885994376025311731709835542159759109302516276094326218458919491255697013420472038390584354336621339693489570084959059895873731553455557709537510438682900543185231500412696412796901541745693130067907081216657902461185691930131831520699605618719013895247676203556886024512832228120005090670095512546348230029960722133810557367272111071837954062563384914580322316257130417802883296594277278969740167362208587854783855269349766568515142668102323592871724310814557729799402825329885561979019125646057550115102774137157194706480435878820436395619291469130022124085848583536793002435000912775252050658684217602468099033133333279846524566976932381727990122968872251983061516061591249632282395952198321523384923805379460434953701090649171747799606253928788330591238698725084339183519989772536997836509389155824112599207651282394460241293582305268741587123032369599487098523731281603113815598157555823001419172702169594403471696800424295368789675567207355827696543843791137433974490184892079372639114304480120030160344484159867568371056439232230920943964643895741910610106833021612530962756461903095658295762630808766720851594381191484409468905540723880821475289595268094126738682278365593342495289366298433831382831154722418062135092913742321852991874127249958363793716303792716466460828476913917869704292967109629621980935505129569569289506147283999610236585685801153965756309728037000935182042801299239096625012476514665891851380469212106794621503335345163303381093641591106354249155436387196075015530273831543815055420097211926802354690208457161385732335012976669228285101162621215735366583028937183721105785904256758242991417318141244259572159894958813352033127064127519832116366782218257002476190769470067777374807271203723365217035663527802553900380650178356431021134563535238329528269471830010647805522117468886587981955592523466226848477585215303490012317143872117550392740815614214050798213033329418174674976090351557814769436598250042861670884305426512808662831671497424662027410918749671647476792705997863812128853772378984485039841598444273737968839488950328391375194204068336401320809281775881634954426170914298796308152862671461286618233380326246759137807185170987831686367851108919999733948868441603808020103472106950494786377218448324302591722845285342767505291235879548810319073618397863308414890082506309820877958566352729435679124766365477928004748998488110282023775974336115791380182475271817466963761203142228474644004567866753247949762880734935484763638134261931178687770713084926754491801241715428391768497213590903917115338940141951329360415105544223802635122270293661945551584756905071844273952385887221306487562430564426052689403556986149648171441070734025184807968624006365121905303407213463863553033786542421122072809630288079126745183481413599307922978745510756366362006845593318253200625189947980684098352458388625026310181219744904464471560391519609073861606518155523097469231671752022516964255473877389903168641667703040073946303064041480965906152644463841217968899973154207512670847604745413619361409410712150203154089090362969245916016312903757833596719171314507992251032778046527549842673360918861418641733244565896649651197970985784434465998931858915880791926963303148115619496757537991711217730746612900745561595962422346842721980978569022042517769116282987433679912769752630000235865026305962441466618262677698394937567132841962052484054160959878335049655345288408962543538779276810431173720889014735527562943617011667346483659073675650313369888153713401636650666630151884889459836660009222026608604443492427917896973355946296166563213707797665748267812707495377645689653154908405499285179549163723720130967894632961838823375487461694855212454978147750916474105584327532295204195346668875224870703232219151622506983801413296817162207528833680203033891738937708537106536349963741718853379028442531066031790603908158990020938709606300005630785025254327988352369841965118471035259048134427985515255594369169560798359345418867680848688048910121309427563420096406217090901514967435737155625779587742003935134123331493211959613135983570602895056377517205892594212167134479004199485255749635226893218596946275056095206806793199547040065468512786955460825136062092142717202678144701064682438313013497806454429327522410439143984638575533680844992198024036330167032373868524741801903868879671134502222662722903044073523384381655817023716253029296467539361986260762852578782148214834587634325319708269536886595353106981362946203126007582839884575704026832268830910491040560117248458755537394097215501528749488444695124040594178998935097401977282487967717386874572390405135478301372177201067480761239787222441705582058673817564789762865484685451216399037264367708471691991749932917451810618586236232713357319363382211343869899285970136927384818156332160741625641348674173668834378768669482720027254726170294260062883975399628076121237592886489877731969554336297819048088253345869321134678577894081231072953137600258517889291019603966265350913682372405654248440536063981660401800135400692210873904923433950413532082311739670613734395203529115236345211851381144722264973696327646872492818901854078447333609698512877895632118811337642788874008668028048181156384113242065330993106387186023022290106578493080786082612902719377492620683859010229364177826060432008690773218090580415299881139899142261317338684772473161921724533072106451614905901182799246364876311293930311251878497389501164399942900480039089055098868903950541114523827635880170136455985252577075528135929234269996947106552037999500483140090220435032801326200528326533926086754453910139971917889468095686159128729353263478628439733002559543729543120514169672572705943159930474791917137096564870767748560682435573689646905617252235375106625628956147408762323001179180123578610693109950586608316698695730597632844593901913822391163071734695658944094814224328107612960232256335638342056968293852017796978371721658729532661440062350215522061866629346410965808557149613562010127377794620849077731473717282644682350363327812598584467866824334166734543875968686579919152652323498063383785263483722978866063070212800811842870853392912418578729967648097208883001481762645925752363461037914311530774230656391818897962216608083362233394771644091532256685625966229716357195985111496422489392124348540307873878891304940694699442367643588024421221872330874875529468663015046025804639553113775309464520429508229036223679404287843595047352805881112236750104095532172165466919445250827372937185358275343046426001800595594819463590181085164250745061578281195368487552268629716183492421097123119587289359163036530890643551748520161701335672433054569106926021128645202542114899586062810502375248491079971771813953133337355106570966901047447466646741607778712832104276062155302160397272091049316656190136403192167714489723439059262278899809335610682074171763453756128097122222554942687297700614512425116194270745119102495628700988226661768406484334393869997757010662295524506636154896723224576534205445911982629017392686970122002976401870161485179234910653327851380600432506837967426272463305603573932026237727610794280026954434891094889828085341128941489186180348099990595087967226175156714189551521760365695862423101908735965094102883951484678837421332269761286424295919080541452157549561391334023847820421276662378452790688717056114552851881295345563555144208726062961215054886294586339555085427881410440418987577744527140082148094566695705552061141163582584882819849515530326863021380721695431822839903954036833156314355196393677417333116786438897713564639530728867151201185364772687279875093219806822898924996991383094920298033152126495253681308209976620037018944033512326913709232885442857071095798492994190757562489139729918105289588751287932291297928299192759648502945835364654823824018515629386932320622297802090281023486710188961624159581507950664089245241910200141083661992451805614948231596982626575170344377785063425522360040043388861934944853305306761875617166479165295797715412108290350047320759512263737440679784020244527989102329364404558399376071591962215033211528568155642371759594951066515853100110810327314478506588445642044483157448503311607242044535733296875908268904223822008809769931501178549670705616161183142133376934465327349108654154241296863182424163524396215507711562229260499172529658777150372722944067901074151150049929103903967093337476200973678913450471490116025083203191005808607734170936102223143468394710833532201498731371763275776178084959495747515445893467460472802963752877771040730128042153492674286507264529697256975300664321733192812621799509546598944670250733592591362651470087064889560798971815029098668771927740601909318996386040117659345659566671723140092767556187911507487312264451030904481446074604039413145772814999450688568193100084393679120174140477335372440051503578989701628958163386563622215344762887686335116334455472885815365052167751585236489403671498000393624304635494110522472596146219212026502288102191487518710063662620158090080615763003270075550905604333170678938114177664329812256700330945052926118795949710188808111609050627637131667230291255117494672585976376206527971911613377448399670494753849966125984964534216454218276382962973460561948717277097549049611466831970471600819909058231824162279398334488517536866790004777934930563847726689247745605026326979379901894716038292411881075512959050971363978921583835411865689164031461707063227572848955527093175537377978376689753199355289028460771609142897921534472227810123469016880530381152901868587037752114725296391480798483558656672552495857528159350971911063754349945170311226277847279308842726663732114173910794218990591886667701807843227917122644798681614677541507578182601391712995926472287909427991560373049594346945792176091203659488009610232088036142929190609873689309042208526761160109705451643567040580639907957536905414809998900641037993455243295947477295117523180344586370769502765393477958975673564049495655744477382184450904379300924505562602012596269108852168529089010895968071316379651930250183923823149647462897338430147424797659683776659745459145043600234422028826238747384416855854187883034402343103719934907238136155589364386882558771081981417613451210659629137003296538571821410552212574817965134919061177943681954460236042164742658109029188596576362283457521040751045800924468196450861227539019497650654263319231464065575805734997642483821203650728966719491983341388220171790610116550957402471004601318185614216902770449426077536408546440662114548222218611624629324825848885188578257429112522085347824715137585220635929367689012767683773539876746510426482889510748190430968183693087215799269764319731013286376952856308488501051240834997506093433381235769447881013802421332630464757420654791431559514554805945136931335869980390447650498705328414987514342878698710037729289072868260476287748171346766293177888567791976710922156525633761241136034496010045562254881363128848369577073700954688438166496305762357518588478724112290941111576417399311388937943650503162495894407231483235648439502096572851878576348543774970990663769854414193713153323222352040805019641755420728899559667155094950114728121195866437071899036805387102410153406013868546150494112575539923904971268401462937200162044358233556654388457016803476059117177285789445475441484075120171367347010344360642884664013477678102863687286219646372600073505382967234757207374429438649493774838503369368452156802744297470686430661228013076826416043575506413927529370608497958914016433954788751133109174856966614819873214729839644907269733734435885151398664956543713443871082200397795755289044302852360168078303460088147687316343111280303750483168867640070174734117279183986082722786474401600589050156190055612420689331266923400490720541483603324357763386636163244752796431475636679909151127529497279520365130778429808627927681644603523416517540129891037190068308080869921033046769834639756110351155787293150338898785665744350247600721762195890991955921407568205143418956037478005819907206315310545386219831558995571781642703111138313276696233055177556041302895025350955090126392739922208565429553600028966267641986771865876297377920474275516254126738271251853799867041945788719323057894305574165354703674960390027988999767964760898833800777736844419444388516739980900170539995082907848301703902964260565057611538697323971690850720729629301574113146566320048501151758158784795054194558585426952424337637744547780961583038003365653942202745199302395541130001141322155988665697972623999996062698566593813880852597108415262458613911350979905070453633106036352509598715794397022902765509847362241022512215304534503625277624907283476726220364145867427881626407714394275270899238875546553184786917140334461030372646156701474006263355232492826120177218878995184910182990944592220540699527543924284613475465610698806299404972381927330923737940216432992722651891432033445289354119687555634912937061528794313105587737467542316271876560270105613802757185756975563412893200836772121640218903592129150710324221437050330796958757341710631765662260752610648843730514432026610142790671252543930390548509656456022819296271936769987185650356233149644458668044749539480819590762562391763353456077401192245980050448946297062903561373578074949371762810703317416118999102197522706603349563994150891711092212732244764196213322925048195559629226882405552475989899892461543858533052363810127746669485569507081001120791079764357559066586969166140979564604495206403455689358390960678750329341633961925778810823966351211797710710716827229706867669106602491324636859859066602059825381666616279167002458078130106038082656540520464186474764779147497995661301804201178520237859076362769734126510115811747411612977691982899216145122100382880263572719589337145507648107814292122909976263725042987923791729065082671449642387629520098191862948660619930426115397025339852735896615338484987848096621772098227215599908143825830612284055730364395863334387260829135980750114166366100866309637142086716143959883604307156090467193740605741252357892563507964283179554925134917908676687574078903756198028005304797053508240647291249279240366341527731016142605867874114450385156590342274119775576030781963886908913588931251234588223896890342115739345760764354282542701766809091857737181661509042847069471379687338416259190816760619369300627746553627402247205284044045666646303085100842413225619304296966033533173965141078829667169279586302810096260544966042953935813673258883644409029342832864108574301990404486502238784682980812388301820711522668417784503387601265909065526048488009400097228703039294503780752016000479661730385992996894806655225364431021476213990511410131395540157542180287127222024233959660502690516672193750803062983580647943009136731168645390145910869333490745869264619501005818440423810148793980343277108012395535906196998694814431867538308813182284990493694650050443174877010835802359610718423794626296187314242498979295064819475340260603417107062197684564434885731247571898877995457555477188884884686747898970209118167381785614608062065766404870229311546582038126097650694430634707289789180553959415348200930595795017741943586135020966535964142674574599971023778937778833947388275122618797230555109952725348684194908170007537250386373163179997226991910970115756576237136020177504118067309012071858531452390558114557011697556552007619602974436296245299898964740838478444546827475858708046167974744335851607026266489683828803983976420812972946440006737236568177716610704341036174908817673675415387509311749871265359600478391045105582505563257017909247000370205368224764187847110493128787854697127784234600547694268973431428797732055333609167397371409389419421930826833016964491650327467488023194595747676818840594863091163937443479795225849127486124179730190764322858090711197101827862352057722081198096125787716423889774642883563362015209885381366869087569088563122803750994168645739132407994644351332745728138411437155481886477396343921448343322346999419041896386172440971353301389652654103923878320052124228992251540316211927592388249514893678017777453822469793981224032378609939030522032626996319491141763293400994987396521668279855898331094064630294780145228047423322263585557459012322785288005913003590400297068872452118371612524007070996456474555415068092961716664492812629067248327202345485645442977476354211273299265424338335571091894351271681861804810899405730231607733014697716907478529230967873064147101922500932179108440023251050683075801703239643817407359371957529887047392681063012281170218641712201449087448767900695906150848736227587825931135626242871689685648780095375453786294748255976992443396998039829422379952145913932037125441716836544826594649127846740913800460829785940516929216389535668415230555438991327759938617411829270654499068836652868130628494244696528533276325120616012116001792151130515929975637893799392837925406728764325394896742715904755457219284347999626300238416965847636990999368571496103551528123632042215412253809879013979669438151417773234459608890236456152666905023628191232670265276599360991978838365032018956863874009096451163344705270140273381443404287376779712913191362029454236454094337433931962512640498188358637779281081068606045791655241597583829803865202793017969861402165540425994101016519321624339299929192995201262861505408694510290271009321482676038382859639800541641331855299907317596965629284651251994293840038751225175640929724451622089766085048477204870306483451966691801701970112955390959354647242265611995646366314220408351350860721506704706404192971528871562352228354333117918835592042630694985361947873573154372539550964441868336373893342560021377067403876273422041548001294221103235991343706680012353649254750161821003776530643583659118063041772581977937983426713622092631216549219751352088069746671473066192653201776810795276859908920896529766654901295535909180592324521289490431854058923573947192013822416590091783384312961651462366157654864121973191855967267361778248352855862126473487873924247044413490608484885985684850394419582142401364500053184253059883566524498640321079629548489737743336470224362816271875019992858246857385263178967448934833593819764483158291683544428334864478657516654289482865382486406251651894055138020774668063640140041206036728656302361107257967476657499164208030058576265618443769227409438323480286633701089560864209889182334300485371067703886492015879522283058692920618884860335998873174859209762635171599636423826520066047629476125621031221741805624512205982305280275242890960715389159225479832459335236037472822555700468432856155871637088841859979805846417389176671207165880108182010200029336375842785564168992040706171788740634391138619314431552242275646094950543446667375177367424741417750982971811966828255583371302084146526265355264686570880531987440982280272896279124606567426735022205830191983244201707014345729860656926966232909338331420411830382741250289733159634606865737706849370371043991484013959908490427081301380829117355206758357473659282169136706805766921218209985496646664387663917870021688985167398891978313233301755414207553228617626962022629739245722378446927037866476354879382126711834287493527528184429788312508557835319573895912449711288264824388316455108841912412832649673492666539551031862484031106972960848947932881036702924434080055976491399675082783137355648960864869745871270972403357721225300454095162584229403898817114737706894525823033361256767103686331350292880179039221222978833159806355887595191699833579385007123359868760773417307100551220832562017970730604000868637391974052843339009840212754123956727218702416932647303657742076317632551458459570487029370722323051882251536699188587960159475553481149934616004798224128839786041818209932525909547042681008015250779773608293627895614934075810393679797601719447556726013296255572229658766247650700080347529865190419551907706339059915158646683172635371481890906551546139722088502792464530154410722851717963392495574924767634541471898598387631884646775727631621340129414912209112317332910596663943690222827673751473323989790470081936568659570520402904535187124024291956030729043890381839875969088134327142953946467422703694479081504721815665486315683354551596137829069995075861865772006209850498615960931075843602736777081257330130496492481642210552764427528361111529986003785131740524689760660312946043737071050254819570247481245817571581785286451914060438042504004592341471330173485174019112391208261770666439607735062655021861798537962574430435609281668121610480390771527592649417082437566698058739801724031477481011586714639402607965306154449791730190625395752611375536801961577209600528452133587870214074124661929306170041056347576553652692929655093796783472611432405865818336867812102167882560976107554864076580867455425938028806436978656229360722939194205315859319575995989250844342584163303260875001093653059713577359083034923781179893458371125093700353329470423991277645356715221837608940543758144837137231432859248243673668567455327654909032759889898281665062168563362631760775331920423572886482209788663388067607528408108782943031383720948605278406443777139670840850105534389979291173899102195313865845072308170551133544064434136121050176425534318881703418417215110104948348379869144835416838860829328765886646049076348296385327184030869761480752736009155436378355482592539060329521382599134713891228326259394705304325351073525954397630802487778892319221211409438796827984886467187952390620783348006407244460178048314345089068194468274040832849878926892591749112641360849983007152016336484188069638680040947895461422485936389012531870317686120846322116883874921321288369777764981138630333160334935873683288475486541835962010752473837308529388441286762616204797256518532182394336808566282234917783139185712165853580433872451577482019331008517780481113655216133615337363597282784069258656622701655966596986581256776581996111999236348125400455004558440305709756272273775337014258755560509973445560748215661560079654403617238730868706776994615904007260618638839578997811564080292234168890856573258291434160541047336648299324990185934670840969357831001589955323604305777478613006035564704228709132825264758158953282309294034571522540439407002197291839720367325784681311142317555176234210865473949023898701210331926878043094584543240190699532344227592784915933106749567656144279575472995259505601700038994827939245856257438115392899724176610605171742802309404146991375059272667211115236819055577215705440790287238773927386618786242762932143679839722135280673402405653810440675317311487987114868763113011580230624335032549137774659248462430311418451944116135156347784261623629376246003244868013537733162891788534858559492519307478537642797631787902700137327134815953988758442131321907277452929862908233269792301699703276902136199104915936910882595950384483085882508415940415301519144740967826438384450641610631410367920003163415876643720439066690709423488870947909095461571420448429064288317887705745474275671298116200936645150996620440255874601475204427388724217188163746323778252015129880315136049622894353638573395272480385299306382547926476219125028827526588825000628381855490368409384804131344107719698479092058900931632593989345099500465767111023411787311674621411878472588418947430744951390413037183818634932045261404505487768259058323065773198792273151631773508547290654539538127523729171400897404406433371027205774530521613544303463676474290466760673782618345593023094008779197524335408207939674532241066515981771734325673883914334007819022498671801966556801252693352661103481448293272767579002465094930173286061473773112595846903394778037752248908918617025105470406382195777425786973205245669784620788318832960393636356224905737202954081746615232069804820594734311016336801003061935361641619392254978960001716583392542084432999687020499940152072535191742963048225334872845947986117462545880696285223522379415813554659243248000474549276887799610358519601552273282044197712079378859007342147482276126740561453401713995155098524235326363969349520901459432277696039541385028281140003514890340223937482447512052898204492388471994875309209282033206348623972716771344028047089203491230715667006830660973130421873110836977072581182415421334810408548520173141366690098959463839092916794654434003328302561424252426333411540803113755390683101262285711403031193484520930440694045916175279252956177739052821993899280404718281059167406032886802901331263569794834553309308764046016707587209095382231642338904194334145776658257721654074496982671838903716916903806476779756098931721737887376238538197591781524249142277760031784590329728437352768522530474826858224307992584972997886550855081399177018385298099516701683437038067381776413421687659507786595293112763036677399571158793748406357663513851388306677329050520596184558816966278257644144895562648273818340777888759553006122591548931403895959544360391625198318154385590110708022050687137680648654792215846269299524536053270578289778747214423393977973616715506287965401323119191064208397269560087229422053300387677450448847559884621191575014127451995325244742886588362785331564783796840920477350388763108351122573063369583007213909768607125090651784748716996209121174653824227607445385451712572945811479833488391287721544637305605944359329404130757064417133879924459294198683865981451965664582621163690028094423067594804186093130315402185485277973987149075137245485116551158860207186112750687187653407700703653423732355185266187388163360836939862490481963563514923551316710856953430911964959770843331617013496562656794419460382056508791769186596780059841402677024796826446001212975622311656032131751521579108909419028922323341424051943073945239065092401689263857376244841878762942398210814231308586188749889518872115676435785608361320444530879788007415260824061368249531342924800122529938602346508427194618590032089430561111149500585717484624828067420210860928727287120971140385032025336416593461592269126555326180054282081876411499816240788319980732222881303540273715117579809122808355423035222804727865150811177362776608447367797730156678066350156916275395407059014244394511378662424031403950067952692667197264360028959530661813388038954198572382118458738970336835783295639725469277596339288483291572474313690776807109998930430490943383520898097153320744290478113027871967810084752337158873598352385310081735430611008678321810908363225987441780939687723785685689605866726365983911380453307552166158655319640412124213033988594144033220174090415208427769782365264419948886047782129809248488501101703332933728089968004844051382914000301833670506614912743775300349024599739189525969034988887878495642525690665229133424230406008198154389681136443241259717249132993812946035221963175726579990352890491821799720340885546800031144424370631134747364927534646658173563974844524959605837081590721126985785228132037281894852193122202437180643568543818893940100545022043286550946426924847064758982392905402893252315719394492142976241218185023451711132077270585548182452595898876266401794932796584954070581644816257135317240987114777907181020529959383579718021327551739689588431245195305117487322968150686855469106593686083344223803476221152202341043352396383150259688045605311526542239605363642957616352747462296373134099646323725122710788822496419490115389641491724645550460222994693541945438648189334717203999614491779853931380731663434587978039291415917066067731033226594447104858730755625988124140365330875709332702651677139299130093371168911525332504819598683361787620302138341355570370528685116674834861221264578569775421161482937658517262133058620519799033293344950498093228451859904929797200778291858264708643338505229696357642693637181937907036044601386554370543041048249278060184994949305581918662774325673152412536506874484695945433477027467121018216986123019587857116994397292050690607786281045914536487814996487457674591435767575160402747924164719062219958820510388204957909026925072739519704336837030394315377933148229234202573948786130093046940050164145783503619923928744859237399818405908790066860932647912876152111203015184838881357864856088263715180407745964538524416359032668264637184972358999294207810189827539433721307320092153159761533778210028974675684301497916333879621802565490772073318852500094491746459070791810104743177619709133938655032647349318323258604916494937777296800175872653498599362445635853345487774047764364354133063600106682534878752698962206567129797795127890910858003239617705930607641273075774738847101490703259347143566978187105096014990718588212412837375764352045805886713056409137485088600250729787358082175469110287607268184865432569036037238570329841150514362339851368462768820987646050905526566485881945015814481477284694391251467128897428289770899142010328055589988750127872689394817205139870154993482231361158377934259829433144091290259690023832429936647211015878288391998319628230608704824119367901604326768560060439959674226920644712092644514513774328523079257237316231761900430127544824083591439102235625027681725843404384420733896269264628049540183841574409397879823307645868004782227221225940983494610682836872744024267611572889991958449202514670613968315203107768158587320862974553741848449138043112334583439872140248883486769502294039900603379391891970487399155757244051046008555755094839960286374954806555924458122736386747624807201836044841930548948564215470371869311905608446005285451108828222226115830394103470951660768244421038474071167151631147904469002004186058170111718729374365489088167715669286729950383779186359006381810475928364346242416209475837560165984754165733933894354729547750911865690870606772576713655384048100755792678917397492518128480795806954945854720967392549000623847837003203568144253966517912479159647024172213726250754524830734358627169382655968599857942102288671602755666582007580544497611744802777177001696382825825513684270239734321231015833872574740558105195004609517276875467284418678017145777051740188697968760177029275612440309555569522334735061864360565806758412399416699548173379096392904313270624921419844554802408817229672976554783912427585115821100389720313850355318828883279791811267337863089470847460664994365616241594478656035420949166078564295633991188501614110329504282738507528786076575265373013539485466197112078497634858228141921381808134411492909223646638601884983612015391197221971528895903614026870864154302626644958364401530578350011825938077151056317386022749234679904509417125858624589654731641115353288228176248059058992536808950215094249615367299845782488736216655870352677891695252361319298774012120157447803682523150421275099694566892054905066042958219408069748881605039540636329337705992753711613739178081202803038357344390725429467053034298727222476773178306894455394865185730956204943709283783010230640199463000155614038073052416490026112001929595207307571795444731391478765249140319903927181019560691965720754464440244375525232802075426080441959419268163535273070965751928032674682118650255315700904888536699933115888687476363329822556545846560949866132488081164946907030007020573674609225460043736356730317055453893880702881551022809853866162931439365142230309730755918471695587598022052930992513820344514730787915708516125024180315049018081614102269959615768757645798920945322308159907543381819163825621223041654169803476157520375006295209595372210930754388801642877021679247378612032911235947136873087919483803639102857350441477739075623356139322708592349752868456627732170885904285876888630095979393255284058177005696085048613162358789814909436773434324549772935245292616441357932456843659814399184050470650777184606665411656802772089545891480416087411195980227490118781326122778689248642711176678932207623322527141499362418030894323182707828096847216494240419899080688872327614728873517222757685145130011175565582598244250772230368383443249912743752779280037855636585785155665701430657260717879988976739290230891225971306038664294698612926814581433425775909449890337828070086873478811424046423228293867806208538153295113498521238183625480644527046264986044046629227083849935032248192976774788742436135515747300823747751866289247189353337111412367883915222010275659909462495068792110599571324638953953949262593441975024894448738197758254237864325402621862873722755212141983906009977965607345999823807463893101823456469009167549099502330501957829095938782193835633471474203999708261102155787371359022232182556227710178462477251322092569969741566869773223793370384512001891200890272553088223015108779285258121513799480991413582358232381348430566697464810192247865458794435754356811686011227857941016852235092362241928829039435563061797404932256067009825434859645339239677811264353370033988468029609329811810669193867219237961475663686513200502692658602490973850601964901543206711058091515108848736730053562899401823595368871724192243367042054874644064283630241346111824981527806457524052081507184767439066166351227997106097930627959146421622302266284438064694285273093645732336078056233921670955414601766131956643239255795794254987371187701672882266381797347275317872426973279799203379431648646554562788333268540060342795760035910819544106270028309272314293234618431056736409407421399602526945200227113434398223407513548615241581029897293547823871026262564028436539320980966696644556869801757323413712311858592487487559137090425422331805098880496445004548786571478787694950803599245006116002355296771951486376054773901423192061581997674967937425537959167807846926195326445142246810639487252373194836993431203580310579001062682216282139707297994104327528554865920512390303123666173146216751542368586053640129086924520036176570036782472425606503505212066820989596526737827068893266218648215651512430485998601433959281494060289669528781442816864779146977194373246143283336655803802862322906747099759671377466166494217716049942140576581318669990847428975715519613472900686763519348394444307901731651939177755496350439248538148399313214195123686392088804355688821406739388509040396757087237333057355365550345464346755727423647455820699684802735519003423696535555128189348039247916655476646345102310596518601020894347221788427044769367225956673282547089740888954385676366019335796466468799164406688687429034975600905584474348651465749804957425672993109469580194032880896674451000809668863031766989914901330275181348882894694139455804490597508463397119030542547423183832785805379967293786714884248452486992148946392133586701020802756513060000592651206202711334626503718096706981818995674054990895688527888235977275030059561101314646690488161316655651411051196000050065732789369230494631103640426227220686222016175789405808472866680068578542035579656002757790285477102651482911657233285139816556599172903585702184752823857004221715902216087439931563550643283722854380639263440183497279497559062009197526784508739698488046577875101332133720009234657193436700467206604203176925395417498184304033679351485644037763074268025411081214732565851009778489611456720190148652583807846939880843460577164777552552582026738933004049343917839230417046353157120202947336978472294298532863410080042512373925018397924802656096498960603774974427555785378646495556274591701650095166457875373864231529576236196996501491249152472689897065902531338152258810506214958600752714839886375632673912925672867290839395350301077225147036335532455427618211084187547838199254172560204695597300032748387842599580510190331031176747411541716236269292629979000206076234130241391002498104478907594351270743808938395077729719815486914120660954847197664739667698313962655433833055610013259279169321281530613138328014476634736945303550238031192512734764485207744240219391969049045259799562622751520467945485395010518673651895222784587624675542137858992138432202374433056639142255804322285658820471173380389559500818931870846700024187284861599238059968067030422815299434405268692647641538051981980650091734333477101525520055328741593813091657345715790728755570253679977653699528380504856267330877091770935712618793237870034611180837559397243271343773119803014267650024930510775189439917103570162614120816321896661870303292700715088247993561925670406653273000950283133501535481779702582369259668336273593031823353764092675332213510064781004438690028374486814431577176970262955620803900506537444532040158502358349022923271680816693665339032393659318077807072649532555500610601657671736086995389091990380838362607712323170310880452981550358838317606219631837785773836809976277615131961175459136235946876934329116219618925808449659582275644732394620254096408341806670408367517339983412811974026992322599819687664957068044671595402341667049530693371126822593129398202679392917825971113873509894015024651927700269082310448787640042152892998949084384101305380507375499136391988678841940227404070320094616370395324417183608639683606661224562097282067015882245691908074532017504936145810460040441129921662695099554841332740958770971613745393889448921926044987412985880885673968821434555154190452023171516716237519611402201930432919166137661884750424536509924120192759507468628653003431340260534796665720033904994623546208697265979327634031282286717607694621380755575351546011200706367812712299912692690605072525173379188783509318110954037723528374738737617263027251021095685961604329817680661307259735800806218032090300507667302325522068684483317951269476990454694272320965021867625368363204436907294718165663755710942331282335891904070322400593744000155238501726558283439689937145997134172303300016291723289943991391986941736640212276888621659285846510603114532733034959337112013453740073604184256278348662735282902982568727109713300124742696275821162132608297346566755960297888353428256292771230650716174814863999934843544569988438777911349038535716405341026150708317586755527219223621208341354504376300360077808415041113311039683454020008720864294041501207100245963866926007728663698621458379464902482217235616740056687346869217197570747678774350289373466651298180251733744132753442837149544665844337360217065445564809901327660766447769532791677979818096458596796560244093015356904946439934798610271806519156662141891762206610529736061173684437893682895568954800800555922508855604596818202972091296565639496170915188793608527011025803404682824044057083204703668707548010737181840346159030655899753524985525188254623814606824314925392986478409613311119827284095909915306323700752448824546747616549060430582813524314752372684535267397750421708149357350135348209699858677098509480341141388014955724614342093572370663115084527435980043901738940474061797607208304132220799001435670230471043295328752111100469285575327325071223427337582659332652925182085049539471425762368265241547684933758939540975222819879950294228753640034236076286223156311728630268933048555053325545475866186792870813226525252522702088755272938612429995198977195499569870775365325831040150605030588753861644136386897123975285353268895520151183839845749105466387550372930760537175100098192630214942641912645241382915059985586341147155820053748079085687576462270637803943478376314447156942205784757678117921661094004491510197797316539074245816370156375760328365548365365130274429978256574353935976323451124534094995524045990459729639912237761214863957759940174706109922029872030620235402803018726948631714450648078687992728432657613590719023514242019375881045675262065587458923705250481392673952945181470410027533148070733252408702377478239502962011578732961215917848394331675172326404351079140329929061578541947716447940142183862167627693646353191492992903520004167526149294344541820009022979214121547396907063111535787026526281628626609689964201743873391569880730008649863827047857652291337672904304909373367499139236551692838021812920574359373287829605604279338204314411694397929755571958385107714588175762714990812594699194898090780675036051122453480055310144555722096561727340359817744894803366677165423071418552614051064329512410971509878013078804396214964636605073898511011843629397223483074886544874866529992265381959986458574080246061998563008756494895354145516097221435034788053086338159573657179688465756541575799554742700218169832638027750918618822278902537403200947942467533710028553188485797493631448657738846436416179605732596573052673235136919807354302264566280990946363810270246477249582281014356573491624765655773475738353198376654592780602549882707240184825491629185441988648548555344215718656744075616243444827781005877553451878756111098927373193443565511734893935739765570307893315662695869246460209696375234204334099586251219306840359592898773728233397444180345763040818628238907971126920728660086523451015564796854665463596062336103578279181201145427739112054274340855933525302785159430077110961533474642340455411818614841209196785128568376286262430811230785825697460055903287536711818112943030061125834175548732708325531428986248813914972327848219330754168330175293685537753953710750103659520487005812729655242687576232564524838606734203335616013017062212401153817401682534257589569432850028948192837963176985500012405628511030176132750595018369470681049073578670230133516550081060431323949301816525860341488702027799757159839962384609385671872027823665597950217264062620680344018001355608972296589354989539537448877197728943453757295940972462287185471866052535399774611487677309640424098484201807525470313484621824601801132943922292336634854421451762458972187849084179277744773738250007923250306856890014838414776338450938254001510341501299964253442704501048972865917885857865298527394994599569677661766292554092370882901233885066767224781051044389986024469077547167394368267436981442051197284964342319310034697461064668153247172448921919763954503933954332665125063164512203371406494501640226232206841107050187915508549845104821640303308971869037617974253667188492255559290783666563939360762996818323646100641876877153290685982433978512418059471457693447211221107224516221157530894975576156203275483380491158517278251300585316940124548558553152508131193377874651992999518754955918561058997370767671326366755437327022678020677724266561103770353792767068360837455768579183407402323450004376639142310884500084895784356123020420308022915604333432536755489422859605151212737702737304490024148230399212820901394826094517605835565421239313564673134518073761911035893170208830691816009759660877158537193524668645801302876385043034754042143646151279453466609386892200359730237857745504380862610045921911699207831373561149148147810940258360846997663978626641817241663738120136235115590319251776036698652252670813258532332189055903736565564135272360123762044402648093552595200240392619741321752515307123903574487732973336742969895538208154964334947680774321197114233331892472636204498918934847819581802391891133437853127768073862495357093562467795767980914495549453823955993593141184419752828013456109491185252569821132421125766138128086499496200559231372102894506015958200149475520912513645554971999690992329084151255710682822966172372900438878248296275264794151390127548175909337885474515499044097154044380770622553849308573355324749422427691593233900062168277867830285164471458511853603387431432855415965179800819211200307895127547214569802142561623244065722978920293663137551652802445801818781380762162754431040980952046162460379970070605382273839343293820741226826024787882896118101533094756976756356359797187667300150387149872271940793078281189248506991940773002065817155277215657214329987301923204946693955547387309080248747306735372355376058771998397009034156051073846548772463862839936800462036260710394521004330636546208409908321719867029861679035081441296591916289395014690458773704392572560823748713280792724275018684846300221478588407358462136715771758342559450053934438607710431056939144340382623381089531879456732478686303664887861450511719794516031907226349986164955507762269609464117274851751826340407471993391536164130359039433070229919585959627659371567285562112130098961483417873624668784824592458963592210056180088744276213335544473729721974315857507449430189478097193888813722851532079606536332657110368979047012467157305037262114825949162034052865599361756140247901924209780458785872948209468474099299420429729098262713997568612123636037027954379955051085091341605241244520439880034256352983639805355614251316258092636210613668187832718761552824062455302745457408798869588567651528262649032040434367448828540764426286746221470086806748523948577283777784217999998759873173594516826530491545323437827071697342484359289745077580100538482465001207573698404666059256139015509457476554464719619716527002434807929495659792049071210172899093485383381995565865810532649890652936523920484974684441752797407444870998694267058509743524008244864197949165409039249115042612372253973069742424422819005567492911680062343194442507221690645736691875999217058060624780819215807006661017471482454490870628331068879649162522671813707071106306153341754252280343757127955578384787069081073572103921440261094232504173701774096148553813323559253719250084733083071734144040094948852395807533378213798257076008268117385188115276079234854805151688726289623438427579911155204349687858859986280916819607151403686197610770751617671913301357934120148511043102011239744870489412583066888701391793196570149193951780848806847077555346906346428638037045686809307275610741485434060555029257033171887394615815559705200734614818153425756168481222892178667298775284428454995241047321362794573236023659557080271112743450549841087890567923058588972268326400317509606410681204788758158959219083607586630941360659982464212020839144826639983150212697172570220730506413613647316391208673627917119225233321879884069804529636414621942625799076588371563699296813867243745503603270313034309268705611062592733321815754164385085642395999353997260379890848058938376193912088653961863687339689628618112341493478251653231117932594607407470682794059014778934272567025462978548468307203171172320905596392341879580812325107335303598342398785232179005675446305269854402537721335486810588779671194889904288449395234754524028297491000268705580137636992521757740620700712004680535638290427937524250049499380578818133733123282150300364479034645549616268558148463214359971907882424192808693134225747966200751624493042641466799419359592973433971212744818150377440264240804985547146715560046825706698347267811850710746857559123156119663304413062785108169134660856550933463929181612891886431423222791281329536635847462055823750213185376849910393130847217591509311198659256730572569486156467973297796802544168884900479595173582812408524625261539575711039455162471910662686663932551568978499993401047711122913386813757291782501724547351987747323442698891450408945075673167074048713265135651472980729310682392981360768339367905899141722133779206729241702964112586672824115801622126896010885275813729086611676745060538522836610778866926819604073473442565156910196833132100746585077687343331375109430075860991515431409603588415827357761000762730358591347161369957036374237480166631012843148036787894228291413675095636578871207604823904311841502372153886377286286491463457371959234157054164157746223217876164821033657407968353706030911476783098453754489808269531492168420843948368229255823793012097069318097453818244512703332567916956134194142574260009181256334481006326863029393924703135121945166498891424938940881343821901532408175718736547483078574694110586794997119890945157036702751621250147512668474235349289912420219444059122870007027372636937153130809750557246977223515009367628604392100999657629789695098560743221513390589697647491332262292269501274018193536565988420676865223886321489638699838914734653027029472407686051509064948978577304438910969557406206315392916432821140677732844948492384365406050197822651455702886153743843701494559163062431758483319510721606228485200675602937231740844870250970197204122327838528655515703185519136832040136671576241319214176571464180107288076811990755542232232609077681660983923191095033831981437343783684544019450566255647140193998541325864158539493117006953065952145421588388922984456339167659590423436970716604536363938431562531624500130152856633769431723197216140337640199589245637069606830641030455209771338254303772019603184771589639064533705703101561622961884525574587658858313957021863979136424977046166644438633103835184950966819824219946598015308158162626809017692408103395515365269126511567762304112582150419832152111732424464404116568476423902191005838425165018498981394219363952935437245962526300871123588350975399062600537006259307307859784482522505643152189081403396369139884665349316552158653698796364044315657317250898094040830653356850037132931149463880533617115959851075739846926836795990217378895162723068495533790455986715756669853257539477180487231703288801539498953919462555216823473469934315400624670418605624932539398976952412528303982669218158816045904167688581533102290404990308112588084309899432682776194504921484044962404559191137102240331238582100370863960498726729230695677667325205180283367280418906868540196775892727341361282221448063880122742354354681892554468776557098376990791416087017435516713424774628376263482099085890129043733182385474086845142575381499139258900046904717649876784181407788138951302370419967994652410762977995304631934971203363448863357519839065734443291861874448875183209667641076197646800668542964938332016229773402020253645699709780362446690103450601065915415276715697430918917672715971750527361834569719577491155760305929353083532557635070537499657236122257828694610287934179352357295237282398310115467657295458947014670940176408653055814848069592304664052565088292929229840654296178917156496219176717288719882315601956458225761581244956587319186629439586164066524077141416514524261149551305868761087997717836129221025105470213404117817062610440810132559713408751538646241560907843251209535672403430238439311604510233865980716423758699418124527149547339634763606854221731080013200725725410929290245213522545454350564405473782909611906930013908187244093601062231376926905529063078247770981259585830305818787812320422830235014458951062087296582525124860580700998748046032015918293411719049724739048880850994110349692200243199214695290794039846170051491205461225812288312922472147358834012631961314546018216803793814302373708782116954985926776312957263896054775295447101807909124987840851286950291823298958297141984423816428534397694660833598837219851547239662710574426381930282086124874163660403023424330958326782347296443940619358880883877605689964125512682995291222750866441609483252652438620675571210330131184335312174956262570291833092655476933458808566336231594259386743355601868455975487171876096726636059791387106851002554660988879688084644396124581268204086414508888915505611599985420440797643816443033164230182708923278019488999027218375796193156967342773264851064711302439292691784253531688427563612024326780636923680416791154226314394799945961215241025318233296729049154437288957038393936970676039684275562601645942433151037998166604538806863286306273057277738982969006848687432507700936280986726149303361787152164873886644637871776047779378696678541868105880515888544838280450854852727738788545166923258691555632559718141446494052514256817238446918252491012402178032586174944092865053023617004570190690685221757452649116781967225991312330445923226139405296438893656162822018110962727355923205950028434831073277500917462156627003093950551728068388370522031188110213148383219187933542022622219672974131960334017272901521853619639161331193343442990487457638651571527194200403478859098498701651765116635704269423974559128236986826971274401425625143567612344831649272269475625131359078790080355480247721569017043520078576881551410724951726371715129851084617234526642712367661002260989041037441226483819621047888625696650210690270015618683129937233954907072540234931748055671154642496932223027217360942476377207914192340370131089341443520565522758406060111879367361022247497024528233353903743229297305916250347407286199918522700241056950673572624706561901572941977413352533384444686423816819273290809843924495673006569627732022252388070149973291945062629554358900483479398123200840103846474219545847301901276431793650587186244895486455614575280937988647980901316639128403427328235284067887050495662044669003974232832761804387647153014985362408916123927805539997259287026847756987781851493697383145213540935788672866320503253629773395018102777267228372519607736345222507223366537929434734399124617423407564599743706626467077741087193699261284288204162394838896911535775977065674888394228582694445483176674444113563687046854404641043054776406149773441521396229978099037750375980564728927529260230889884317563248343342817234728199980408883821891871427756335249055018614845025737633143905632995879738345589035302489906262660809988143915572554225047040265078199114068523270646869021465187401954306688817466022077685575604858228082117165792977206094543607413493477363382759355565064620413287120451150492220602125158606673249881100418736385059636094565771701745484829919036453388822799621041113783691279753150064717110346436380565375572971409179308371708739825880687104517476017829896326929094862239017825423681271942446741803960877332446378410609631922846596961317245732281797278650272394522488968072051773376997654654530786356137873383022879201446398126153632868597569600017995451384638595893403688246717317864333510971360371351405248606900619774764015818621264567792329248671253531214954736140775439323488642237674122991485778018290352511451809693809198405034844414524561725218141879097633969982799947389104478820974382149611211491447516099930157392445014129485531897036135184045225414985654147450912173839101390520804684248534229097836018382867993738936857458907372543386241803749182575974763609345460985979114398496384023685128833433034003158695546031916015703367842392281136250830107011421895932871829226198564238064043556938633029174315382453259066708764471373851107157615315538176881888952050460301158456038832472169371086450622715082832511618883857448724160254704607058931843375665086886718098381279408799448260185986273285821441257684534696288078487488897508774226929650541834529134867745082079078076317480303822032975841280889601690325611903670678640088567409001530601123537248174597012566373002436817302973120196677769852391471063477318993376601022885851404340099714731768567642697452799923259457810263130791824528388640629942701722737358510345123276014936967648886035908744336314872685012431576003048110539185376254720380491208158515517909124346216213472766715664431548918451415005693910150280635007127514167109050609092967151284235568632751728997988677503500214083871156558078353947907762728092736102256401374207033839899326874672561179153851626665074405802651169655194777246987517836026955072245230139363243498359954153677839164803581175585899729742458325492506082751545615455694063386744041516205922356616657311618659728846065659671112875082886450446035337336642411530593759531171619440719232549767431357046643689182637628678068838598760025980136177736392372664294853475687612971524476996518758225559764017763265121155274680791376317871953396247019084247161174279359613394950191132784054935133392921488556333454900073502052550927131855304189985753745565535497470167614999110435652147814574542107391483750998843782629591784060579583006830127340316360078525915767993882846940191548740349088985052844601007429685299485711690555114944064008124149844145122019456681744227542333922560331249047019391069787065121955414011655945020680093423431512833021505328541677593809184229195875570522722435491258101211137481170217025760437104685429129953947445043098343339519861194922044991108478731677848489727268042636184678227626009623599909516778023616210696110525080829604983285111745019062801823186708572774245051590661922826365085644171964841039707048274691406674328311143587723437549136837598424939837285404996470814851443173361363416018916968957912917609114073447315274529940591698480124283485243819978407884268323323911277186003322516073211009110960615277921037875993385009027960920082658877994242302313969767355243943061846722250101898681669248407080287531623446777319253285649316283099566554823416453368893716472384071775916797903703969347418104793264641620941638373201555654911830950165170418926249119333969185400219101093430433307528030799786216191632972137880517114695910263747883990517248642589752337407395811997835844408947410435907829237092077384482055403387046250467969234769029413646726718871316861211783006751892984603758275543466734024734535695868131916150179702115644458055767965381678347093286705439581042921804928318804636106438338598767187097592818641693036624913054890541402645446117035310845411218110259604384316650822984411981267976558935961416033508780851091141303544850191464472519555530669053589360904930161598306249217508621660767584417492086714424777617090612542045551794763334470683894235056571925907969577442858539038157381056872081370046010762040517624525700463090010437492079342828336212001993600445443847198405209270259246132246363863984183018729450184309569290332193841959128221869211733164998690293165593165894297330585601890269687408937621702553828679230839499715826834077264500077728620403238878966422485148523463025303311994611652078261231866138164092797531465346143584930807971846569611926172553440556329437960034310625434680256451145525449385870378634843668382191959064304808887771617700339080944783735511276535045659962716769007208389983515474057564258182521901089262384220605525702460512535599004774512977458567975170865182469725834036735240459137291998129973712311053065374467865495746511583847392426700572151545633960860299019914818998517627304267056298959847326418349130422561234111291119162206379243715156048642776136165627713847626926994838245667063614786284627209662490747958085529155408222415588948165131407157121956102019947032601549392810996383768450062369381417877291050230119841591265633578420711720838277200723959758174625075086925329068823849906883895810810918312498173193372734568790172498639551508682076118852449081985755036180771129349973166862607151404610756522760800088683066062242218997742879359393556982454445648878866857691398176486717253211440915417674026580227160146445484827351768030455331431836178580683595596386011827754145944515992113738846930308095428828527540085162448463108111216788790554725548433071488783263806338402757958293760590767454030684024998463631963911251957026651617361671780546253042618690167002555970010775816695164497235106998791816376892415345808638604677611944946681387454572904083260660287775813772845027204836439627787614910450062815930950223604582141001151242636121137895441442058536850027103881101250851307325665922324765786005426902024951551060197530251430637511400468921582426517733935690799448664488936552335959386864345774610158378423833506402336319113350318004023213258574887178628151611744267497434968882610267427854252081720707612214177338421337308200291815973086791812695443163140153961615682408241125145535600334941258260288602352891425074071240698737929315373659797918374916713064896649854983741043122527113140574014085987666179935920656855909226016933046995740447980679457914578095753409702895064131542042354063563088134670307761569002311217365118678860062531299033667082636004012872091573711772946173654841433016413476802398902383693228328975258447327701104630562255101303177266002364105288552537934558017703980715422883437947581139589170391357958582741074621605897766226650072231973538761250728100260306151081750719284101566589984503465296828029250830820649595610994841474373205264965095218189014677912341345604667345752975197243303929587152788640876772038931582342033849509633955946295480131620863950106252214880678866203182471174961189095601213557920609008988324812614196896225055894281922651773544656323643884144251971170301681902819353090466262877807683510126658511290653045905176145995863104012283042033251931748523136960748393283293995176424627781410583850349920764241541220465990960664067727782795245493493937816546496585947058371338053949555119059029250092912774964634371019923508331766501738499053942832533078917408258258863229791131571457633204703426091414333289355360073927396493680637932607244526064948099440629380062998921408476868289364858905187152818978299624508295270448396680940188994589371138318568857974714880578484779628183779025403251951548620818699216365525682647716377553408590021252704236150059987683305552873855450851547148374065629026345499752012103490800779134957983898252400522387318899492872634605173829445894350763138117365740412141629897057015371465053762677392720390384474677548901510413189947612356419322042450985760841380683796055168946039148959352672297188113031879341558081446613856221986049060580622075739630411828725385038231550107676084197355644083326266876118024094551919623628542326541601616599115847203760062723575403539158832678303489939683005607936877461552998346933027591805942535174213202609267266206845700932763988287846822417033208697594737824133167469773836016428278601706596316500370454569007042966044879399375722941439770640355815456035405111472185560764270136695370749717567422464731862600802972698610705661045761190460051550804687651151258486445229172296460423539015752508277187187489126495208297264859167583619542446066195071108478294526607001419380041370258750401327128990104869017022928683391071705156579318412233887437304389223507478150560264274623721229384000280340329490521047516791006206385935735080077878559555486360581250427029281966806589463769457877172235327290705853267162241804535481934849656878648970959691762217861429428156259652655210826416936519476442296335956116544592598303530710007047350567570853850008585200355031160541742287034757115704578721436518800050144753171556588146573806328220181192636853709570545543334455431484947067973881186515730055448025032868833626259595185267202491430956236740234539479784725036287507983951382258355060260206218332585585458947239380988537169314851200139923747115689027685403869682463260041772236090843453785565075721448034685512455505589024669718687510158364165910309354071582627491122369758916978557749625053679054502859843052915104952897983992330917844166480466416710921969572863391270157768173663360139619304066151201767575457489310772728429916811212586387243437135362471202483176656968256800267172381982324585024271713820592710857307750059860433467278503959340258288523347366664326522870547918933186711514861564208254092463418311956369351852546559082104854552456524350100825229861898399463446476821995950180436755777409583533816392579599075072757729805647599834374915671028858970440112567380545398367828042012250311008110168625130186049147866414597264497240616809792781027571706967777651530980908354989736133231552059611536150943404861079441923212985231748568417283259883858743053646816953828803893357590431888460770855880064857033136331667294542050346834378598851690508082357540727303141569221960746408413120372308068089655130711805071814167579192050534611870308246617425835649373614909490900359240451463318855573061318606789533978910251940908042974377622577306407849748851815006397000296723528034306722202781249233455242496667132956078022381005326873073709159489852252873643943451873549742157382733747442229907449451164350434344357249624134110264482362846526780503251364413968924036019063211576890882693217117114856761342102337075080331830543393616187038472843608785984606684918583899507816440119284057437044829661174888637832343807351369805686321173051276295483079367934305250916871421714663030279500351885009986048739709377059929851268814726574241666192623354791607725537689876810102432378800140528726922332633579970370477369323470925933394612327777500912505229084454282282507052412820969751349970765088050096982307260986443037738871867568373632493838901498524482180375322893675452310847855108809991717790235072886789807056196053928878571370202922743484821069967961807504340088240467633121166389009986509945637215548627548252705354750985463858050241286069476188488031041160705291164581097769429138035149190883083117588031111073285441753045391047990478630799192915801761159321901821792835519823835985529989424352387581638388929141747057609070067499797570345678744840910446519069117121424715748913526798874079506772405030772987568237077532628280157133627288708111021753102179353708988551491993844466528913031588856539006368526281431079311681975346655057761666366569962603290509259154145087478745530853669659875100619634451650699767171693226072365857369918817202173247615934194295548259653306941449539113105632279184887267948491937796671953169301729074750114202413617610692527114994559498589997533017080455193962380842879288893256180310727109620401700888137297577906926663718101737306565129847688077378409669689879084202258880952689451769802097469551825550609143229327954718524126876117633875618515407935245901712714328909711322083302339076264499590367711303901405164955202601062673168779892472115361835165401240333802372257118592097830721032038449201833535390594929667920780784711929825767171087187347071467876573288919425398604807291486852722114525310206240861274723064708805865451326330146667887630945158524346076614110392752429797974054959997931008768185021984922222965922721132698221759517366539693793614078978118489578170968312213799410521162582000383939351233793305712592065500631155263092186989250010468459484189491824595457550584295615377285065241098478886143821062838927364789329083933591281862776873713023913376503603926603764856611460325893067006646506823917109172921745329434666426067132051153674574385014549913442820032577400935700809972179447119133163944653174379974510015499450361469007549285726421931017475441934979573748805843072977046785181542587577884796250151140876039617715545032703420040207929576831059993058223344538680639661243144597013421610570219805445439452791833066549254874459831497736676010133478089784120617218987456298134758132286797407831471886822012702912377467479522144311798670766096622189641792873307996278797835984428258324837434086968510595706677836914601827854048001681884460879715083058605744005703115118339671949442838198712549411651182403331503559727678854114892196990087148158461291248267527031017209332433427056497649804047635061161493556822789898779303287796042862490336530520486748490910429850199393069448396341366855785209609908710963882488295793466213634328527003720483576430304532865847127086807126377449331561159121537582810466081846850395070367441926274492413588805504273733178560022827891249389901600837866368431954320897753401368633745098519718990323683444020615851038343790017253455827449023298732195956052511115272975836464736807353086312455651129223692078359409591604569254409600242291603771584158736765714524162516801927612259786893092392210293666664408159236997261886697581655808684031143498170919265018761414146056278758285603461666102786664067706329355996943139164626647994768442428145280355846512237700066665609065899364507588593493314300225719280370555424438558071766500298766408220825863659130716753367860137038658261421300764843876285472507880486847982373501924011404228990273138535243341415662400567290075544784738427346819453986435593327633604633751551131265974778100354144258085480701436088400242916513577742441740306342378185520617085407749352212257390399351247975530804733232798976501511732841551454446393180929457173053204295555875568646389744847522911968642318354195771307851949622071604691775631827528652036263822828071485183486268409634254027289297343757116220673674852326117817589277293549810305844898946881344008184264169146075029671121282110259932250542770298388057038401017618352938613498432295486000059627575477111754657303158389543003329169916862359073730731682236288279939676681332386972936171563144016581314503730461690442755446519512728007856497631900153709079182236699446538648479241575987444989937169384467404493949182014976805628551143056450594441696461235579346801428075539677373025539455195240049367086910658216691272356236653160409359741500404309630511923795397850948992992485163819771715189924618186929417110629933859379420660704024116455705381732830636086159669548789468591781084038101806695567188368319867356708923683017932757209687037286529067585268610601590551025000964870200129181769469643650368005894197306519927548841399015801894043899279355007069358086400464559269571914435521528127181764124362904319996852957444273183607704881373755433744595578984171930663396098888487143314481818020946083929028410219035811806996677146592144409323894854065665828470625531193908568225575049386788339922282671152749219744907066585838976905078831847335366599286620939319823590961607498841387936891963342772661555962148430540693656020832137296587474232534698232527169977057561611487232340823508364365096459599398869056466017041413450974233085827061633132580972843386179030594343748878172570083010669192947696398824316516713405226621475934034610213640734717941006233465634689812815770048229860931274792707360638583602133326359499302839260808503890839475606487118148195432789210991794858324041354217929223550711937841962713430299478893161113697164618925574998392315592703865672008585007442872926502972272938700494065116556936388461397841813547602928227438516801575655879381493302514177949507078237419955771230039417164071971287208758880234001883677870044396926951023320820246143964952990541394391579293209454606857248688994285057896856636273813729438224479263226171484901797448818858129635096161190686148396759719749234595796729581754416834364935076943346173272674576884335759375694473983660518443282747390411592118562071420525290316014255831059320616038365965900035367925716821144080288668680534564845662977396255131400605142323946843644940520186922545091734291801495673797361368573290822427765407763950398732231420770798671540312562696736633122406971427775810559376721733894674124034380588844977130369847264657369394862663139092481391642975601327715442085319773914984428066190057189942344741329913150576176931848650892166133604548016370529127500601911130166471023701329339328608446600786974495996090328952693316606966449442721277622369456474048841926636228113284133333176984691847737964099803459759233211008792687322408024790458559574121188594608548049550991647134778654922737228971874467125798383789461128671407912543259658450683308525166517385711276636148991628268148179944219194339927908870314814194897152955278904172377572866117217012309531114627669811934981165319271204537090245432626808100404421635116465728170213472570501785688379780353976338838835265678514062354428384298283780007972488540215643016079445748009433533842047708195451607104607057357277487126903814944032915459258375584600682244386127268283955602364135916957145120913284572145527556199041393099776720433872941540958544037203007051718217111008535508480593537393578619447684221343347625013035376925826638318187949985147454639583338873635858174183486880382717304832368361409036212760346438748471199672735287400821114086082140117053815458861399525274957822122442712073256836139085832636903547159612489099502005644079999107182442140151859539901372466579034157738573359755399809225966847438216318214604895438817495122398379331379561094048994965838074490302076144046752045750122241826045035902485571786788072520074150416120926909869136227894070054128620436601245631777769418070294074670096371441141329078914338533194108856543620903244770447981956422700522626863069490510093391433291833695609653836181094701175433933743324411529366940247920069668857464071607256799413916419343972784733728632368734651250788831886026785186724566761042408402567202324541024955679138342006089522757885399981232915053550487775973808770006489717025395267161168055041461807323470447034494784319406168248711760920853378536854174470821618170367386738010977429947098819267657541648164111366976384532122103402075462988182461446421719266381800470834747593317751755669855542702759701988299838493980688824887746116905621767581840692275217314025416800669028580898102158987858132957358869534332565996648935808262070772068570817364146603492272658826574146413469891054539211432039695118418896395962678154283760461973742243047141220255628958371884357189892790323425906190905179112572906629277730945442543275321137428134478042650691088844545884027829875264149570700210800623860827272807540160876713962593902715554420044211669885670480824059397486472062993344741479967519271684541169967826120709263996807662404114420135309294476415350616267786413861810657772286152829258806231230338372963887648710530659783969352730892298511370503043650459979497807295883105511126222881561031098845963883999239135512747707909840535637214081258484715610172884979616878966735237312771693280167465620908606074462239845245007409351744806358832026401124556501648001334780018703944632658316702416255784568415710832559341327095965490836392791901154026671897337341776695465483113311589282989991612331685797080594048432545138818907449032874634247110375738042551489689728647215221819885535831602915418129773745394170305568019762618620255914155015083428904786301212319352758059086903341293515270988827849663079192883073977915010537524373849881486955321088160222285368943450657702644018450445343005751513509934206765074981305551575904509908012244953454532935588974564437522899879653902879299256098139013633335540284443887381933606429521033789358354796687745640102819844167074269224186313966879261314562526662317442620545480356422370791827446271164376912177723662621357002153391580832481498447421753686122489049886519520779161839784861184185499981102255956249210155132866861417001970389749091126792277984567009753805866003185480544044690573084106081080214834635599506162073398501845412150750192242053547521147250970117678752129365315151583285694252802086192803135811274137662640153173428338912182626586772811281961173341754333209604684398605445497071876081783645166451503433475995013854420556978791240430321464680997869052030215584854419863971144944946873213884679654845603488185129450144537212740539165534225705615168715910913495023864044808075795814353774593545958580212060684700106581061350495861429404521318051416417905409738810527916472336756096623114233412409954426854272147040998286497918274951485515926611843294785569344650217428862269401143882674393701328013909738146092095239696230282393094015280080497200016947776599359932870438700683700147723779695639445308978534368262522250467190394375670079384200558891357216374599454504816022738884339469888517399021907202476741412923215734656689599028625716384979268153327323884353555022061749369273351660728569655626849744697946021190037426244167072943770429360228180950553947477203327647850556538793349802699897586948543681413274709440880486100595866735387610755350144707725119709354376060430224472500568538587405894314175419962775039373469282152310405043807943704443128512253486467423159099121834695882209001847075882318763441890979038445373957986541869506280666656641865909857621410497849378080547040055309130553637679987708688910112707161922150929519505845711605975002086525559362473889984148228596046740771845082624412829524369178299235467554233310195738015133027365241509841486538618592911041939347583017775250275715823024942124921039994058597469014601799494934846452978789069784833765623678382304304981054553145958370893454441048364527145103721898566689861079458762430527265494303732978556216781450161376819610401793833850063106762505885543932140038770652222146347831565006453171270804891583317386581117283766452266336253576424928795021167585187101738629263087033005769326859652911015817711948261943252075135056030162232239662411134001673858856687296125118547157583280379131440318291768992928088481852618589291956519894172698114413970564808966330034665860497042855087552569707780490362655329875405947134321706497349718065884963337060320599543152555166479287226730455505978330035610748602672059125516439315279066331378943650025970691164894949727439569603351646365874148892920327802848359563863259524356585172507331692432113358531662429277260044681971218164914813182994836570796689467471571867244321002110591354678789206813538169655020191909900717817995823683587984911989906520807042428332387036047876967054918478662314392823185895026737527532420347802596524842882705874078183957397282160603266099047830068566786362069930353501005913550766206267375943652837224122983820646574858223890234445348679779585549477341326306453922861145361561941292076882047516410244843664420351742063993165291006591363689771332305522330089153839459532574527993082139963516238324465839413293951079344913819597590981420120422583799227919605012408448032441796736439511422398530684052250433699068471473758755062695261762530985948233602722040959759521326254094714910937498650320884466474135107324227840850080470942080646315986319019036090765019927700292652448044486061574449654828046766166018820135990435700121914678876171167580453750738190358803916965067008071461088193903467930724278914892708368215541146667198415341206298945167829758488891196893146505230106245901172564897500124127044767714776275588858585605839560447474364560200588330195540032646484350715259560892506117947431539449589755901189060786141636926941176348115387172222193735680597838688261007863465866230510583220744369289691068265003257500036949730749192887662544227177599446006525579300847043971542745589798927455997523892404141048705254744285764187737619955738383691341527618645312832630260266916332871742031656108376859838033903672601008181200371754583890232361205317684724135992411383238944418859715616636712312836740151023676770660747199683951993125445050883751614264026808101469544788161432756027838767436687892144779513654650466305235246348208592889201912177673549769521350763353767365685485950521766995170496488773061312383079023056372517472820433455668397203093902463733941604539681171930120980933019382584432780032697389258197487808774707075608522509366651503471593554113217341145607062103067825492098547994095303197771531462658428931076604835312760810546001795298359909277370062269904693164858448248203220850143113577795413711364123259696946724471199307986280778654673740347110997399210183031880670299090631158103896328949708465321624588023559898691523525088160079909548164685545411319585219685163247902180591350950076857884118933984994622689404114898317044042022502371226272818599219325389649255871541048731793679860347732589784201853154483919384996107126581838626160104632130481022430309765996396126943230180424950692822261912927810742235549804477567638420539493741635795154814128148955294268950220020751947549759503356329015949888318577274278995928784821079705945376827136568474892760094600414598955807521392299298849795985839151789258098764040758930932453927469272560800469782871218397437406928700490383333851599811180988245851777346409349344702748697218373254222907281979355868990154183259104787152338859309657840561762408040347184849144594138681122393177136548207835934022771811546837327261254272021283811605031639000273717965778764764018346964430144132351268312156350348618685277845198511978030826534417164741210399554419417330167723913964964681595410028464493035436760643715495846586558575382772430729726264284684101753211402162531488865548503857671291580912342275983071025410451435757666577906458062502715452217793528731452773047245533458382337590508148406627000314651491325289590118452322415386075188628979368987620496211390896548642208479709764397590764601305059976550615100335512901106094785609916976871196116805561513252250136007622172049200251508007565459062280898718902224410456314897488397594354512291700093745593145861366662569545174731963761060973818980417149461497067978265069891517420517668382921839651914612224585354175319441036537744142007816373082278908924563027865724863238254518602910243290468286419695206309704455984242187176431202132145352700450416691773307063053418743279632727360015375599129074380088423770465943380605881101036190538087662496391727521715813320949874634126821986883447983182064831592033378885256402936180941582936912445701705023623222833619454611257720641754537780747404702163625192525726871227980044802704994288683012090226722940068919206416235853195677178206225490919135879222401145414220881940613165542473703998674766564352335317787514074650779975889372805306247953031128429008780729879517551017463533990582636401361288119636785997372075000015723424316624545920214394755237625523889699489153519819623246364442032003531233040307119682924461276544704178438256185638081478104400606544895013535485783275681589384037638593410259344780868650489387665940825451517933284943906594143451334988362998119357136798635796166111263154397443567308917054667563861946191144387683048225714573565604197608389095439996588966400744615675301986933038530092319035461514078906054713988507016191725528616707486132294355880945154125344317340086061946988278147540120507183243704118135345152033922854893199771643881422967326115335331793228471419037058954486054740407540484581408719610516395407067806707717406284551050250928376817998166219222953794225347012395423561805398168569277130292482102001057538845371230166660473505945091158206089484110475566323337323346064065496820344444134917721443726002446703654837919493138042372881593965280447484315059503603582042664812132558694719504527969537645952153785203376850805859773105181605226554324047486177079335809654326616712709519593320708076295323505695297530050107409845205734336857697273459190022271821688675840614351847030821238755756396625169286717318991321917894496822307761826009633837388444771564943681414623861040418370244010559230243067847545925594132470966614990320771189030540078269400213016118825684736454375974251395523711337448797204540491643766849631891172251777815955137400564918642939230826930589457722010565024367049333839552153377976704250811933102671989102477916851937196412969399132684634708407060343442277049544390945695147975524571146962032955510919460931119032743852945558254165610284232197830593775493829675875863172742643945170690029848461889292455811384211180098190320211365071829867038256845771329593684097824008307734890623925246405518010992615401580366711213260616613625352949709668055741156619458820480891447449522743599780442895350397034427413254367636438869805074701281015460009984172705303106172407849674634079303862840308943728542534853502732024409646621001681409091889755823582759685497012911913088636273584304183120513824938267958327974929308735319009804363138805455386302361080749196170146084225137659841824564959592631562415991844341546170888281077280201711827453359020248590430756408169512169837539034146476063238382751804198379326221597099977830098845696964909159791982531746560498064515905540780297584369160155126565327560517910716499822527883768302292152622504821880371044590930659509874925483342401067591940488595976770054740031856187857303673428488673474081691711791825791863248104458000894497630789994846047553184159617752701194532738116982146893880114758775250722956618745710774176698779155493347744861383116285774117231614724407134036909553398995222951743426421252211996677090661080470792518167336723073634881045384405587311161737831645654672369843822268956160687855620459607194736562714149157809734651166869573289823587032593191205539339782643248978503131771652145319098543444617168744227689566281921504636959938218662307355563745257441093969930583013225197615451312349432364565166606977811788060374905013096402809843516361524376524461065226447388514727796301814834024552710162060179903659592698510939964945174733969107815468781050889164474263459121058218175413069224880397679769014288635882343004017328982290960975464393472472330844358823001985543126848902463877750925357586187535879852822147647054894956688050507897629851255715127824501367323517820502462265164548821150337047834952298302804522918506930583698700979238837249226181597547600117419911646438021233996356632074436261187331866081229767449131722463597375597556833287586979079303284641424209136480342792015763996636305367985775988429185964695668723216455933881152725983304869039267680329670605212172174676977299525603350899006918492551798838724956510583512841173763051434898219172125504064977282914289343324613855025493490091937393138089443269199325738578260080584942532146468904314696229114376553464674295004991949135757876445434494373363579732247440692303554675980377419938942860760141159245871765685061922847034615741204158673442926763638317539337072507483068193747627807241751125713336626738693679876995762678809646150634612368488583037028926570728018545816468413046528024237126403878309207819607099826050855695387335312508733023704253179990382968098356276864076417845702299710692044464724016128671313812994472221524691748221940667943571486477231264632323777134770800666080241121779769467679103134743394325765298492003694805571823697615635558199789208179554938549749563864752940042189590963084766367417329857148060146221336119639012165941485220365427272064566490101791096324944240527267774532258974845052526016580300881922734684428665737912916122876082957051016876494562123764143907670754866293086434664505371892317440613750261090931276649758979524927432765117186534373145224421736928112534868490167556548752504852880387072365490440374902721562796009215316770164055278934418010741540356751097311931413609728361881925456868627094914611863864972578185062876065924694812739283913837245953083175984715800644340340636196424183610492051319528183266995595418214938826879147383960455097819151997359185240828759651293832346505443224766963361046277101623071914333708561028966934881576047139530977192417685893446473700807407799593053793384231245691670606585235924638346510343890948528254841132054871452233791482481130923582681709691035709949400541103909667824871964405031371366426139174447593062039845112270014907476444138278038599658849883166226070131708795509417951988092681791279135613863071721754215214766037845201741268969766510589536105803238881953524467416782577615710531670354943152895229382654509016392017712332007799066009623207009547433972827119061132806818853880294719140102839431501783724509912918727450463371546261355527608661210541143405446559804241865657288972596956226195971873764974737144387864290992921874335711308371818795209285022575269992266382554054345680883547076960651625149581303077734888141871921140086869997724731964177923448788773503598397218117121148166967834502586197176630310764693309413030102354651281150361893708295807736635454099540056434826443711657885195452870755331454596550863724970264724642112185657966541754336844965194826698514575206078778957330045897475875119716516040917495896150124768876648342786233665685102948378950426186444805551021636447881361026728406636607017113844832709255430013142239449099344247474844178948257097530004289115942073844353345617777101177359646170437416492045547407325992953694772567226291282976762250012564957115466326626053189407902075767992370387596892973530181139649024161306273188671505775599170260829690328834517286354647155113419224165315289658744747598681365014735701923671950459472022016734341314219108641495175263589740101787066296741542282767152692460033306119611237214267196486058924162776083525526502449751792823295667784410328041798884726046738841238846803881614942471787573165859566438583747402873756950234392085163187794205338696625960705628816275718090151702631576329343638971186418827971034433899005633286409463369362178048967114659137551769828825582116847896079819132037685493692584968923394227054207271274215175922204878799574770756497672244031702702938468290499267970012294221250113806534808346630307378039346503136035141671530973248634845128258892287184475156438289291906802634885752545315507907748546902640260740065623752055636304760213625381696400404607945840967251920455403168842953064221644258695616686514543549749869179790366211270257880914995218989262683328029162093427939709227231408438217259743929323278584449075624575704213313897955868189069273899897614748116219909650119068495477370941286701061578906941131948541804592990861866307111625342449053168222112583261957456611627593744086329446214143561537035400001574206067821130461453967376111670150763809284093563932397062954926810821862660188391021597749055056708722471431713254104190103474552681594880601434595822104943632292639825922759572562536946639425733716409160638253438967458425350436285779540976528899257104835008621094861240527495944506749890804170669938992896306540064922547346481556048890615374859816942052579134965170583273195867868669517634825497061733790660547289866726540499879778359943145096302368357089422200185082934944597415311254488393859890876526207270651272447607234851932942335669627185041970436224062956259746372045639060454915864900870484816176389693151891695552845744740877580278158079097678465221732717105692364293235668905653533046406244239711667377102594135600976789952624117269243739583348635061717449003086960468009416084275754203825501466067315998901693356130230767946728379660523124328419562657003599158044358045264572251016124370937691898350285834284089101269375364219770047176196470546219703041718611362126313116612494727373766361897984188152177290358818319131119654974164496037692784879383418255345264275570083533249999485962227079322552231442570173682492649206588624111208740520243198169628260088703625689454121004574148514825179036746766191744880589453015037056336363166358037773636494432803157117125630197193075313935640744326118404386613743714771759462807648569675449501599820323596563321281382236352031672331466168498305638311476985820491680565758969352850619771752969485496758933212588983561245119452616206825812887009978520337042218503615941425448949841991293747323095571914654259895221620971639141439628989266574706906184998630153922426971397194056341965839139236632878728963083191022493728536985997482995074751963207674891465840656464082281560590967526031752310887715932763245923416976293883331378278947510705901820242940156736097734668371358407993177675397676830841389911715573708575754578178046010561505959983478563886856791749564063188886386860795916254968263279870847592486541437114588341947656193050781215676571469551782763223801311681726965406836793687921484331636915450090767163296966425290193029469164273432704780477054220492995155625556516062368099552354354718512788383788885482155789634973947200513754727179257570517910496964434667099767500589760328216557234662676417817294889525059494107747850633366979633748613990898177274971233814202258983041048540186082172068463296143354042929832843436583378803741115054930850554750367826935033588594466363343725893558146473232776415986129017264778485974277932020428897726470106354805652262319796565378269397740085086022944115049103402921894948620399718598238639697534946759895459422342028908772605216893086100242836473363063183927724368293644971014563287360377568645106565608390624984826052629578313218989935488840027094286147794307907011559123905641226824398148751802808694214974613257126254160173900620275786865838876222732922290299309694780872682817465389268053062805805887780350186240498073721896693533502935569294273366277755644640857630945127159987294518082160400752580252894123300387066137360871454489788585090758572876189327813071305679811771323275416128958380548702930040827394317889795315959975439137501945231202117724651481156160040023390636399915501067470777705851914860631229565358244524051842600037659624635288531082853017415836527864599477519996185518909578794965112428550062608601202581596454330122270891767754804858567815660697820199436321003452808421342070428584748840710914896118961549701592142527204892019392395109637054583539278455932192727880163942891858951172173850669022913811557451117362400813929077572648470742955288148119489345367738074717001350917151054438945713527701579527246657309194107449157981460847411019569417257229895460665348995704717380644569790886995727945410246401366798386717502244566083530131762120399227913018067457915253394306954571261086518305309200885908335526921237266276484955986449890259234161696922061371444510191487547961110102114601712651816538946300167803154652186184026759017331519688638716894417418823760173677758167055561073890818856741393870736687559647396157940970440970485611445198473115914059599380505434537621538256575902054094077786438362451768294746026363220519216823952493455855538598032812134123835232598243041632260831155763380205384014443421510170121396954165538904110585113389911242078456115464761719265452101007528812395159158789190918056793019923166746235229486847784411916135890101477045879494473743906678494708479966764891987937023822645486687445452063821054354837529291765872024392069891621757871863533565345103054439801279940169614978706154673326808152302813574739941420457103540146652841688003596884176999104639666234875402630091229002461426427997848876264226362928486912574906156199031069522718333796535468056807273491150957113809503260280023672877746118478950464659966398704344673902568308852032411993089256666061603710393517581794639110600237143420750739109488566228274990114277435673287275533304542500450040160731986936774531965282350202940217578785502543516089872322175062371022574126591100908264742793136918240249438622181260487114751480459742849610237694773722413601165821267571825688126321561340487542495037427992890248742213094444790463308635333851299039944449071609863676255452914336922315242764619757520459313090524679866115854558448622666827500776332962810375235972003380871049469337815298602810005181703906625558536222498707046221856182970371781819363031042362674765183148331272074480905231910752352167273048518540558701142294451087349228709323879292855611850254028915248428921643388153568938124745237965625978853218173185508689235202455960208746011249175054526750532872859759367415469076892273118263500474915392805663635850770435983885010372694822615572706619096552844932230920976593217889770034394092674642426498718132581187929579394338747509409072547667126308561351088057289017605086339405355536011085300879714882277845572775400879461927863746075982381443561038437625374914307909906065606310362539675715649047486304249284048109685271324245952594839306081130683385912373302919178416476876939705023556972517845265939180227727929801792905296296117812358090215898686757369692221226367494338545219592946567929300624723286343882044402596320307312897936450660663922758522809074422017918055804643059580314212645971238779306625039926677052060173863993301560812403349149699270159541980230065363294263049917838840929826475407429210522029756795379608023662254189534395498289281552771929606779818214511368497012566978935153625807060412211796990590831952559429989447947201831133919637646243930509600413953903866149861286025095572891319289295047561526257509885586550039355967994043790032500854534101282910748454141913089321912385162279354403208725698461195868005768590132119809362389059256763144386888691594020340788921712902295986119662056269033074540602888611520334376341930393738384696428170784181984333084001296629465308820980634036957165833583006054504337289820820935305111267604695393266356523714384113953777954625806990599447600293236131699328715537112390775419986846505584918782026294998434270904394195202951499619717806783878685543802515605723792199604197561498214453881890800771131969760132218278727194848079361911878295274319477350422644855112282551980024567021269800553393648151971730377961735229236597206782022434894596096269327143645916060147634455530481459517071854751428340949473806152185743837813813855543575377263016255311311723581249216391728703665901017859479254340231734186042224885871673653276623497013446925343590922284857849761811939130992475960502459246477697935876067006470442131882569611660041800227382175040173336383060020426564434254596082071455235388763466505132356632948676918766263131207856283478850177196725504032468380818287258134559661346262218240057097952611462704811273983032053624536067860568582337484412509659443795474508493430776331178073210193344981905648777466564253942358631226449790423024913115280815675061726534411340822832557666162718745491039123133303321770434026301693667147314626898655729298578074743848816802728529530527563860987254760281777384128525436763285875550117030466764179013551987721177858483978625099764248964976549104761396607486607462906775541318614617286418123694755246368231953804294066049236873822751664559994920210782584045230285751139201617315801837608419373453689830797206188651653583980504015707004645706074459281919732071486173777064559942729908434045819669655464873248964740509609265262428471405121999566917680467786943768611604277724540633262130057090268374762139832313047268876623407459523681623551924684031335514918509764069137589426467501899144275266463185320520298286280493516086033808719331204057811762818382446297363745049733984645688300975100852148254857284233790788539004584352944931963258640136878622629087898801897014479971787065827902171576747063500238992990116831873362371489659909176383207003902349064910016241313905744794510281030419016805125269196525816617288087105327947776499950128804683579955145462396328720574626129164582783038003719855571702914199222722445469109875921077845095614737771423674273370994127859218557769352284107284479991272496377043668077580523944422084251977326704337049099440098696122070728657194375553020722350825381736591368536981656974408151442789640702071569621585810095197755133466885979605360984272897677300000383687664376545484299849897479590713411703559597959724984094248725547969916532356136301074573489190398791729410977182785182384231535934518331082528628813950543521736107599024555755349785884318083705506252916731986904710968456461374912837131433210309179160180530836646737874173418052051369703391694335572167580237430018209668657357751213404853685937192110655556553981653137284606176446198925835990610518327816387314396596383591681598302994145644902886885843855495222769053493569455378768187474476631135952795657524836413010319202481449861744598132026308468570140561124932360644173870732975214319712377900846945753197067573092608092563915278554602342727522231439469684153896579767725617737625291700741808670567550150211924534560284214813882679949976260490346217493927567732083799278776662212399747365723635841350360960116276143701208140122862385546228493844713594105997423486410865421095250655995282158745813190798042998230846760967890255889689882053196843787174926848056719882360341066533198336090265509841195928880062010991499734384802612514326936821236579833757932073934685302557958339220579245295998975157844429739005297162087751199910065981573735594069089870427619780362842721534738751943053306737443139998692375678464984455311799878145265118615090562711980398854750910399114071590590231490804081669842588849298769586100580889058120612715380843093846687952123343242649504050664829789411225469635501499383989074667326389876617000417365375664000449635845565006578696658574534166841645747402926942655614099614029274573524368360582928098855476057022543589264961721710046995669584365262148992463400678717002553796140028055588732869434495879293554106041081608036746381033055402151016480620280796228301015293149133350848394786634823001478345474023761944960449715345460372692395257913241469525899334841135002145505250241951288086831451634241131635704551582013993323403361057551230424005602326085680230328188671545741591132112202019118092875402942360178106449197729120722892411792012998345454469815667048562844542999547220691961415251636945258014084288696710331253755050786382326120403176821202964040452905025353536373209722464868816197183384705335424326417955219470600149987022722529475293683723015875776685295906166689756703267297234542536273342591104168421120607246511238114351251830172259771993273192254431038365370434438520350687816875369168048422793373430328732831514902645027189293187306041004719172754011763653796362801831176574222377466260767571378282189512971126713081124725797387870649080333500366420772328247178847508327245538595809171109357314650033750648289041294641098406265401369659521526179962919810887051137719608538086190358721743860269273234428154283752844110585268838730278329216198691112421234965302984423776231145418020281753703859568393162763020043351856290379615898808650547934014170312851752575505692863930352127545896049915767094791757368036334942326441157005993261834434074633158891262813077032246181418222210837766508974427134965966085259430752086166176684569222926922927271702013193772634225041831476205395500338314976268258540354660556130490482607341077916696367332100988881020275233871682083591574090551807435010207504116880183684671419062293457312857044221730866644707717198442093244039574626250473619547498507082687701734717992901723219427630238793416439808768827120547684218048022608223062338531091794378443900717688389993538351323670358889013438893740281144704914593447817316068955697221615179465480547109425733909688113310062834345602189915672348208549209206679428880393820918020885424656080862362006790445748509450115480433543356381504596874041175557815409174766622749847676549537287916999068097744964275265458077763193181594963361753399095594923878952448183531318606828484955818191186176066275051743476316826083360474505039078978067793472976227377524048355542507561174275271363454937779340301388049814115760081463547292053912218120002459124769335609320142328682036665462868065729671736139787106636940268651353947418990057546168791145229065940397536340534505101588275532902576852156440103312060548779810851148305282180447216119972084501892014305309709418812354180922022131927287029414380898680047898444721668095619316389139096850399487911882923163993017832076821997331612119284958215026128002383249553080270613389929063317140457803158650305342465389258493374513134182922339204595390633294187391895197816387400311795291097699310727186095031658249566130386915822043588170839646507424246328400695930970702297574109173086551389186280906248914260358992866824132812003828519262073501716293173015617278867594921224627134618389103918394020301650894049158084250250704416945673628904828965070019237699813025943826647427990262455442306750044224003623004639983106801894336631959291497335636406576516266115989689227594659462942929593465399630949634377736249078344858814291201004027544761999412945083140191684800523440422296303200066537261587548972318655619027539611272418136614960237735059842202055380442973262957512985951502936306235414817065079181679132308212823959805693052453915021020247860636169282775404796117642074619850221000222352165021112542378641439864616926438939327885135565464525095321647301042927558044331005259924653965878317366317347210254808231555066907160676179324605601202999097426035221931786318791814324456083714983066913513880776749910686727180338538618136815599437697233940400374033685889079986395335439165372163175637697325452715044276043510814630895152456037401451525379678043111289683729540743792758795569502828200989286447054913413021534203642241570370076642789335249331360975076698955258422906188255339218847394266175485684389933827886607929446161956058235365208901648089319349850320300688132983453339114425147695192910139152710197200385420334130310343268892648607626183927509879970178736108760009999726302145060656482247268344663929279248705425705467398677444632832661446946761102734046629927347244107425227688877072240633473743372621933336713304604946788198576615535239910356752731603281251085414971448069879493636832525356740121473539639845318802863280942056406440621873046602996419686346206915636101653776141664090878986748068580454588229733350553117146293053339929739733679680446815634393078831814979617254012847813125027848345856557577197416354062152898071913993363876036162986517366343540868047724279977146700422688966845053526902136420693229320867283290757275843904352610296777372311384184936205423318288691273234462011771702490560329763614509533674678313880530514404851812858001167979627104972127747548826958064727903218785240993976379845847956203380527427530955578282468438003338728948410513868119062509095548809839419317194454930134171837956337264669534756305925962206828800483646251195089842347290019460456124293467954357372684215279870295519853391141862898499236263289241010601636590237101058477797598299468262731318734519123400167115303734153340799823697611789527862415313422703472680107664814939985790268848444828067062984581351988947712602747226524114513570093706551759861224069431099690196334245588699975426612086107432600277386975161174131981362836101943353783197271758470681364221915419245483840857895402792721329133467054235445745659105097916188593237520728336309165473268907819901734224644422947193038092111571281098699260776520816465134617008230103064779983766242856380472748435435381009617149191789133865387706724618026687513243605039658089312233199984294080478170269936672727110238196200704227295556179382929647706478174549772714301716889910550155159982982705117067343469924031223365233525102028479448098931886843765967276996658320827593752559574027762070254022340008147881576863913702186930649417458632972388412453953416680229099367938988767005735902971330391303656809036651893072098719915361659219675688213859314572490273252760851597565843823606285035376359830124598150803280050981362333780319220066042903697878754746105474339179100806827796965765767568657833210539421797395933518897642135237317437508778695269259396904080264983038434148451254594928477883029327456134916916689690490084888897094728973047359907326182814217984164718318964734074827563993679294633554329167682656350082592916059009267653213748568446898067401586405822699720580569466389203566889762057209342918088024894606996324796660842538970794587418376079945054620160194711890820486241678065144207479884290308891545487037943318987281718287179487508367465183099557333993954973414965139845733487892401177998172833611816139429747653854014478549401202080097163855279861624203764196313949343971271397170968429032707443839469590826178252566018146640519027239644063475498175010152957422321171199385856717311005052200375400247305251685752670314614845323268750530035075782968511723059289699626306525355052312573108000486250053282662920535278909108775839193137652154776598966684160842759977678940595379460826499803420815969549176066913073533572964393579411514272938590023148624129405826793269126147938546684515982574481279191761781180127502965561133245374927627288324496163504359258110643672240774191973582850126303762331102885734907626608779431367111453483668058727054408359669138865890729303275495493587693509977158646730498436429833579388338802119424105943196415893929711063566228267065944192968425420663988564279968948417572239939035461073197003151169997603840019390556920336984040317590686516827168917512292825004109566981267178987626463522548331457535669888138932635641750206495931942227611656826537123097039031931143498726315407138639504031792631184446240128037689442151695780662071709360418864466261033543820421740523164016933918619608504144052074310830956475082472448063583179699199600872615994159083035553584660370737842018104793003550583158733654875659560272198490367249915477639571207082383771268130171434596740627416074836218505376239093360859785057295542555957923935204174369898743488212138296483113301110932392857787785651314602098180997821771799533054416066192687111132363590766223310490817509640479189430685754823625728351087579902451600513470310502333164314970459068537413863652488403754498589101195977732390820509225795682694602787169092723857917039548857975220289506117587170844902551085798830356946114061180634466043500438664401505075351770646510891916603294238444777960243485223775011590357700306061350043424294962692026931305848054940828784443434434890789051018161386512794470834396919731091480972483257699778132541037731781418008056942689287183214900066054085958344897059292949543484197432872787152520246173278627263498211099957750582854296514409429193048107746293531753379392173020707098433457222279368371518572675445994943654164583063683957493088682686032784499552030979175516947309553549216092967790428497319452701922550176313997024391246804564385513238366448000094420149009463700780218256740939468492687519629610595585012390763547610756583502054671808898020568252832065941173245081951315334595603299605586438807361412935795540541108832660424952808955241971482172524175565148678149502944205657464421147789966190030389333921671168357142058847497986359266901485572266360457218534416913572887143270361400730094612113977075368845897794742715804645756564389646020733384885922634866213337334522273380795098328480414808446498329278800264352602332562464859509614848971159514208228012954792407356732787964545088458793302362967706121685846948164810392496191750223682589282703148626786302083195400915956846902792604798712570744094882060917275895690028979650890227435351155986403139208023539303964777803866742273635097597091319830672325031671652407086680278983319057513651387470912988425202163729125021543020333686964835730732452022929368227564505594754562632107200884132726215616855064687785673552656479210984281016152148583436721518820632405197010791001287468734566650907841019910704068966522503002864794554065502621850190344887164759198547018945673904611597826541041857468673592633618343816813903610639915540036728681437704508991223097262511785866725701913585949338329638473768472859066496174380441728605663180310316750494226474758578763581525685360209129528663804282567028816112492761114181535627215051740568253556889208700498735168488284709310750175018652072390623492086419143414189339791246560483685562752082158323222016754242815535293553484363662160160067876677398622724451692938734642327294749829105618355418195418809928786983643902044732087355410363670314532981305149785309112967994678524239986718369650316482947458551049986010228914981369090376235250144282844318945008751758495914455089249814868473685501012418825421330058920709224328863335271858802235795036464720282988579508634578769856338347605097161307531518263078881506661859815214994419819556703474167678036294917175178159917180850487420062786425385820397792874427739820757612345043696151840350746735893192885910189936176314406635695411424287042522548108494333426197223890959957538884653376451111531351312572011506805232828215172541181149415722103735434807951706768967859002508448243900180085603061606218333827646458664514281973543002477723106081155864829214660530766020614329021686471824225895605890416279165856308372313483203636669451105251220406108545072089563191057550405695967625590015930850635784357825150541102390764935528005481792847068092827294662871630533938167532049105137923241983780977385205976813375874555199257583612957089417653803624722448124566830334612169948362975981955770432371261027607136236695274993025750342797012233969477487290988740225076935059501520995482826057279816170112208779801658027060809842652873449743825619772995680321963151890637767415877863246553530611082341131441595988035689083618615184395037494415947557086651331750103081019271782981632708062957919702298897997576720249845669935819426193230135273096121359917233477054627130846944060964575873837542891071566959421323717654827595307245544316582340040506314039696237804308658215010260192599066069527585766804913319131246430914469959976538419584111671919157785795269764201675011954783309751017565326566031099720492724792544860428054175802035779425497225461349468247312024146144798603998858152923808146729095480470967344320989559558692944577108060496964810610476063320858310390147628255835199713327950648455568265382396486658028303162198753041099943430985521575575752880493860287655680696016195682557414261983210652641467024190251183647049046755532506930271905228332413767795292898837754236957497249285859962066707016385281730779986023736077946537907983519426061288578182083660340241159639071695248035171929334719189383094054937967247601624505314694437953250041777135819532370149238684741444237135156813357023381301815777774981586391244194545973445632316024886242895944297944131367230613116574286455344672169306734286897364638866288273296507765135026421619437871744226878509278505457624702651326032023315493492835416970363819371234467224193582116189225890744657878134653683642254108233148272886011520102318955817572774998803988818018724637857483143553572185005613218023532170408668889701959036404788471713086509563824184441929506572454960403868768217678000190684875069345333021998745409242201702405889762474363243238404884306549899609549074586923847528189650631797297972118678571374267390596757634625789949456326316723852889626009445742108945121598488459782459668327431828877376063745120103986284851654769555943156576172953189243235963740192630196470439572845750022891731194600633564357709735552589052893757306387886733016380773873345444244723173520763483830553049161930696739919952708808472430796595798789821925727305515405875708247768321304116207604318834674444149000393015817345609657357971326626963466860459412124489800940570522881282245016140688757737926529829321959001378303988584761744493189953454832698512195495518850422409692876593441202461057057276697745787081637090963685045390432077343525406259302704035420203951488151674037402939127429813384200094464491915874739540644989181908982628047016208203921419132712360305041868235134270020493698311905084172604081972689618882494517939438683519602721859982945019321831822731492659852551488217968879325929059204372109587167589005019624092333074001726230575689913539378870758156701018840372478343030171797240027350381009799548437111641717702518817603752598942595159685770531250862418521748805357818258644085398111665539787846014308327411832791369439312626475900304985423968928958751247411211244398653243977829926461595825370039570327569321849171443330005182199274991288110320206614231063197163393898128061944627940036158768038853533011710549278705959900659821231239437216664870206322200787087218610724996018741281758587040593123782985365942295569655127134483128556291781745229380678683256859358593590919919013576822972908525329164779893677915567378599034122223168690080052651131356751028148105848769980652115459954942729286433048828616716500147248420176868437535591669515049598571568352279966904850074408386800351837838801786644727527479939062187262423959738628784577384640903959027004848393118123303050485018408750096109222645148393259043405186620027716373623726502381944955685174867919038353079877169924352183410905774048822571121770009803446969328566617721888932006641594223722563565747456032659062996928343942880942334838032292075191605556828046833722904612348637682546581620863247137110838672865735374296255699358121798939728712836292161169851747087328910569707774348680613569367111201916979468950604715093305345850104384542706137381634336316808769610790506512011348552688053061675866536424648244828776842402800822336024669659735588047453095180482361163454113524932954473069675055075679336592795851115479023085255267921507268253282430289847613011918698797804138778675349143688696156196433059599235374404051991115267480990830582143533296289441965652840727196276042596904005629971170170674225381788215286293705233855708965791547982217922429378467218683234019755495254859040688993200180466631648005689654626999440183295596141240734608595493222820241572166242185713436159743578060343145049692938786139885289578377118776253005198670371017234570564370869768941416050949342964767372458465051700159957822880891554868947098726640223553352010723047039059116477069225847419450406308519364519449669354574018059099315927015930475233627772175856603615737470817812735366273063182926150182089529815483984695022018898556819585001972356138304338097028562674422305415321744649177196639082286720620889149623698336675854292836911930283098245625017169587863872575723708448617996493827059066197122617357357560231194759991294050989735623890358961583906668572458054211151326657793654277432238204840330665740225009953644944516394394420160351887880352912828977103055098074626169749326607247972128610034494601129411914415165620029060050433716770369964741560560876202725850692086001511347380949676158675611776255004884916674368300445755689007991398417063245227178990978143327822246345731712277968804346187769570144939717569131037405632923272618084075588283600974484098022768393276377175387668413458093562298200143671015258181337741391036401888687999519439139762862500444121523341958461253108227789644507866013813552473944192061721730528559568907445006956100149400451245532743829865994782498221634659062577433097151270147982682601824878777147619059257117614093854268981748812708121093923841546874817726987755069494712128360030079485119594257888568947960820379279508295708670878454010281812950925944126137180192910419031254623326430222178586570726333446847326972190437361635126642793355326493541345163894126359086864112105106091535985040048975266204674219297002672067980376397412667071957770159348978854378660835298996400852351379147314652963036116042930449032280924664807484030004764571743459599705729605216199838600009817605167224827378618861304759273378833118155491185712513558906016164666900673233308355597580419547602031025366622600715502990268234584319924710007647742818895278693998810631614308658011867322512185277881883384593027118803798879467574178449620222086488625066312458711798186001422915513980517164308022560726458887804250978860816963576169494726927865484689084593687203771546992269170336273493009885145678799545349448362815695018996706289156028453318106823979493422316082212805463471308755089416020195280791522460236337697255090750343037183246997040229322280456345484877035959278449182004127877366207176025556634369266251363559799460728166611151294466654412104406136718517866428706974053204249044909984723022667106312815813023237780164063412672041229066834162049945775030788257693738392434494072160111933523653806633665660312069292863503446007193682474780381702292969974316297100988898561021116740917610503880489520977253673090221491427401086328182443981416375525869375806064244354570590672991100746173100977769692584825083029278309331698124193898951469402981489189237896052858080858312073341803240817243714649438488914517390614641553759956182646177841328502098444561266771998088853651415417070073772134303250799605507686334302028694134790267640577346056073440886947539692392092036671773057635573797815174927447936023110018747694011855600305748354685190620649010529510325117853594097122236651962283296167593594748640385803222213390662898195267842378404142600009690612297806904630828909528200130423944311213274059358604374145776661902372058916957324860537210772013393556125725298976219990978802257499611796625157568803406515037744091130786336751302382979276566634199844262571387229745122167367399007730813431760076316463600772837241539370485731629477971590962983854078664507726062368751856026409766104932313920169129225455293275990560193816571090195077011511599039434540039616937060931133151635602176777383345715182531844357200912323215651015440648443014014940265939583250558563561608300366661906754252398567469847930792986925537492407026165026742558140996877263662855089141735006941874639733152853833515420219441622214894308045015401973617368694424895116769528317071859120426354054268015719632793100926973580320864456053510101320674036048943490692930307150144361515377518548684025463134574242352571728777489616802063465503985498266477470508686880748784750425211176401748724670313449368947165299612549629670430352164763718580418513134958554993890782038610530118740256847900160663568361259373588443293405404278116604953986699099585748342401311529033754711260451921003690655359293812842871868676366762847788108206841681901333978698678799915688749709540039301719795537991748235402910014385988734374567051086552743368884267067878671578356999804142794456918025391904211196273276039680376213931274322546109472803483353837167385342938208225415930032390188035060519679850393101722441340377240619645821045039604918796770881083995848803645304180960190131419406779768692819718884197560153729718953230748788702008048527934386208678126862983682257629337718813209745511865929631596824069748867947424486196802179135349983856420697829204330289806560505381443161103032499677255245431425255226466154459807324499162411353955201764602533032406558386717329207368795058111547167359415909826545516837068024865130896449626783513599408021036784073684843729929587400305209922116328586606408912929046061397824569904465802181899230624688394863820668254527078204091911234944686174721351618066418668013645893249723952129032354006094713493460025042226860705893895330322731065862238007895086012857840880618649493831341581564089019427220665244345768801174523043725216240089988060444745232981250853136802782288460899325443568114789898017372808158951232513449986038337873155830155516845456985895259667359571040145227607328305333726870246322457060436472252943829993597285707578786920891202851557362084732737805864517603459700915804348850181932957469826678127946524706596177119340956371096976313450394390396157484382975648000582411775847782140742599046392770148130114622545586999042594571188385865847965217381197191310442913861011974540804607181906395364333760976379510220666736838351653843972375675599674761133686792578515281464764721520377303487028678376444977670813173826669579679456241504500006058147435211313034927222862261028429870847632485366344619356742233602911588444854027142555746796338156933140073868682308754258316928403081592355817384193886744954335223220368199922047949642790331652044809265957117487816194092807412322847549903633423637375603895599774210168874880143325394808737965447198337144401656057641226143720749722449850371984308908326836164622269915893891861098382852970511199939649821877524366474485308058687947216350987727893018251922201600910197774886338207945507751060520070722927423284965136744717736196553971729205017067303989741482806250607320403099736629521766844801761806862415409491284215516184236772082317106736012646888692434622026706092507051001466687466759148987587265659567490789652628693966729616041879012605133753592571802848681281501148338244060330567628494520460102207837548241504694518034733952826943207978578796514568093424997874581849182137864576304058577678559534952477824335252322435380817211660949051446062354308040136923282563652531156430408715784981086852148683860769332569249525290468261012434236128659370459076838268149241644452455757585546591553502563937984023541196886284542354205486181002341581280870176703781226806922772212523794253155045602991827971245054464144835514319462099135133275900760974512217254411183220245803589289249479034058830859854455214658376404694175417225807821025034053838898128013679971447585623717932310553406006581213228266496040487795173473628299773445209484905152606638448678345313550246969059833445208402334124256286283378895091833768924461282856954352246759315889285772124169320350616001644049155424380520881849619992371886544648694257213371588637060154148926984389816441310438893926209328849434880992365296149816607709229095637460604875680352989538955139666019088108180429474453623655290111932932209586155754844813011125416080828434383142457647293385229912017654556055458985857456500220861702934066614142517182725593735984923334477186712938899105475437502111912586299858753277237795870215128544562301898814352082959116256824333105979797138477160732218094296081039863247681628261400748668051233083645653016281993774401211891904941923491687276279048399538536978221472105657898157501770061048518254297112376945698409753701108725110730048774581561210079427390497078386480370801268499156618468087961062021936902013144441060348342293114767352682044428754350508626469810256319364582186366092206153078116679749149133854471217812000545274522721772617605854058697555779497507506271654701945939877348696196343128650274224696537172119818779146083282529930418199965965280440405995502968464429731914518693587435266443626174330075683755752265419576372702389149023125887434110897813777589796319545343566994679997317998166765763633149064426389653971387891528400175523703609754465030381165046762798513827215861679600646397071369853778930641190491180023089317157210564748234337542095041195403912444995961941875151837804602964449079940699768872844292670280315807086869487465204635892145085312868865885607884386583202545119012188465852723077087436654618722524445634402775939123752510103930986362125732172893894877024269947819159825724011724978619409779069916019884183675252520141753851768401851438463571114321727318867481641010520862530242098942814423514107194757108809353178529796469186031689449294785246695140868108375209661586566743992822878296913166410727862660644968007315867527909131643502273295070204259764539269522328412416678437182693154927916814787774245883735150490175433155874672264993555607596320566253233709861276703960590780724566807292390063245331623041294397501675331744683179830139627862388127915697584851259999513424941189657343512122373672792952842840385075489904254977395721950417546462669140026741103060223388348993657773274812006082299113459976789059938297783059757269595118132103856760678197031556274122772876963117107366483346879576544386580989291310433890236693364674931752821596415085937479574097481075606056818603283288474177775311416623949440451860985107243141889968617208115938119912689549406813944043335905837750779955353094639508385424152921905881436444962348448035317784606533699244218346057461845496411827820518934340118316341469784594866979976205792314271025529754788571496982574992792030810486396882888268181465893262994868573249614766600979890876132172852021140214832526262145257633886700415751373129982171960888366970186902314187796494188453135472457565597979390484259899168143301030740442197407776457525787066463277637308244103803444798805916291519641635774924299919199554380270834092304448088330805315023827125551345171737263561116881549269525099899179388725976309953248524286352820662424789876866965186417809835866284931812252320839924829218067249808738632375109146729831204284679648843155856029182782518938910773607462246784122493025809895175928279294976098216719632965459090914506391772082918346468317437932365967079870577127095916584959137289594086077501481457160692809269302540087702808400470511439013186790383349124519323834376249161335707296891311141658212642345597042561441420646912282152153186986789962292356615025202742633033993498237202278905619057439599358890498824653936737081451662470110174128285342238709149434475353034400497266470369521637676601807308273475493599033743081639265351944854897282462317611806698349766037938140354330779780838185129519244424009601388821390732707515522689781537906336344063458206352485614518616026069399162094052896337655916222586369536488240731396885992681234446227960567065928535179819453340729262716283178187973270060131766537107952841896066105495740406464073698051069645167246958266665429124852711912562133525771886091324900833360734620932435570736950058928374412801552653643474300727330962082138747843881298417731022604949825000537080371327242772674843165780043163750590607799653152326221135517600845426676612599022440488789857196754030910231893102055301954151220621153257423117774950064323882746188863914273588964617779744538676236326763372161802325991181242129278716508571199206508837813397602419566871077704685313673267911427586729007794267211799737745578530217290846524769539078544339355171048570471870473981290675212064812680810805893498747210770292405694038061050456119981981859925515512036818169420696120496725401709072714851059522777496552116362470891412160249297659956391588870589979780417150697191613890211571852812996850085365113352268295802024089217502881266614922393407407709111715782885223891899790353532890073406092680104948751051183481637627739735556648162376948519977347138144416038633082517487573937293060224849719766739251074286592722404405149457431144390422304122530447717442131167035645588531137659257413732130147156957841877789254869523978019370925987689147205211415839683915021377358947972757746229164782560725543621251760397226251811173699255687386795244564401633394229055020556561006458175542331589926709740758322399591635192264056900828097531142062441418556270467387352764621033272175751341754100390110357690230235285030396334282856420713186555007066130020989149007787451779019725793141892409917321944972122335942645779677980933514880709982532346105804476017349104940730750039831634303147133926189225058134065800665583872593579671823327163849422354351795364921809113262923214183339448872930802981079966099374271066482919308431957453257591201580491156179141272834677185471614097958277045203111028893592743953170535763652168402929136739288031743162670829519044088936138378454264937647761119210765093681869567444525548865710215685418619625630186404511515548979487402857432447533913502559323560891184103076775041061109779983970269289628854482536969799405174908927194160927989826627427488117351180855162636013706577920249899705089648590645415639897907764969833087071142045705564947055096238878030694265017854078278879624533650029758703166720626573927073235714961959863464630636102056816630005511785049670038355338250430826607373147955028258876475424037204221944611199711165225037492036892620981280703394075537053787401631097970120174884009621635321632062041896419053426283373436729246729483680592311079603427825224410364848691071976186283410083516915149565207205433514557375298855634933160180598848443003460677601629986449782588778971232984615797898746820915913429697467048140830100318898279048624464973386215106569565878678006181781113451594805555686248845749288376638906250415476136742109921856723142679435181375309155558664194224110272927476102222283596347501904903113472071134875740015027125166996435728623834183959600560158254742483558081648040752503221011962911738290272943192062220318288237239376148910870301714975960270354750316974900958528756624636441405336782381384140778914408863933463971119671666811496006018861311309958896279788459221737809836296148127736549526801006361735899613470327070897465793620271011628830640879851044677541810337976858209964356290556934647072515202321019578267325120081408214907210251562894247815669842995706085871166708841692197023355469424045706555299206186940614687592886826125975519204973192416841282291030623670067363350726395010741745714609665838201539463203056643033167573622901758552399659640845515703405539056103194344807847093866780364968457935576761580692783954515719610918339533305752757911780231683633218714368140048446252814798576627691682854348752937613676816540679901010590011446989534336609354743657105738844279188157539439370705292994311499357808583617527551474797003509517815799141872110280936795721829513859240334356294102471175782781686077675181432546659162623008047710798432903008217040134934164504243170926930823920874406472879845738040558272156773379985929247428760233653409595940343974830915795566203089571205258366771922593193639574316859788162256510608400271436174719995634354706053713073223715277666700945840036447281930544164882743547962007217059670585681412054590535775823537840040766703384257938664318159506753179247019035147755010811897458205608433979683957493155177857993855189914153206468236149590518900926585028568599798552081356897027323307644784416022268279423242020717810164617027883438045187753147013907551998367851060429753118031560131057997204129936070236026176674183990378143774578593023703842291899169866842944730248793707165133767275316949732190686793154063642887430794999913529885183134801225391400669077546030549691780421338496599578654892124138450417428427854686799838142497957896992131810457493778630896916359628706763765144739547458980533007434668677250363337259279523622406035354977131270553419079202663429563647635631543455746914546606561778603355096045982955373305993953107720760914125703070917319483057868481145572596698688833177567902522936319804636271591651120503053094800627722979880460040202875039357157003643383029364186415728658900884778241690256301412771171158293754696384994864142634869380796201541221816548548055238804706488057744241826015602597321147531674061021098729808681708891174927313195205787007127798464110119489979219292053437007824618144051998452509430812027458094906376245247393922377200467590840212576522775933584526663573133231553741701068874975790318724190953864392924035527784836745531397675932174921310922566067952649096687846970810421161962027481483227411830171158903764813242194939829142210838084601538100731304473804517599988630155959815609752249580484653764723406337591830393984356913223693068578202325429764219125893368182352590535992381110495318091146161980445301073123686142203573617216503211308908023647853534679519655435438079807395371076275863404824451865768755198304410590204890973720295052174970321414827913940816716275142558162041114675378627963430894917803223462397030847868505743974033179311391625022932147009928921952101739991013393294509348164951725571695308929155810300725538056669381511291892735031338530611874474242662109023492950597704812494766223709716027610763001485954051201843457326987351537111073302003666214630502605036380686690756218621181183052732471938810012012435386705574482643990563509751032910330720809971882351524973905388559934061239271769052057710802541247451730984374983881978785194146302167314552691824849047436319132610878335549110812418650900976466858869646078511073608068718511029714384497374454223126098860428702271640195660185259443220968180813408736174921541064259022814687132911511897761084616150462923353811641155517947932670593824164559425721800439193460903566388677954918325315877092616343455859840770089856874744753442993557803122156052078673115470390984205533510956111883262386580866423868700905332201156053563930308846454269716427757338730282909581615073498929408204881983239861080861856648430807372198011537524213434937543562853976195565401846964712100349281620746076164682703979932222584881232920667649110420115417018868636177139370157313991706189711555686675758927990090723607886962006184189208703553915255119492579556203390697775849000732192082991175111582256179020280835783247190669085871019599727982413189592655617748460137777059895528956544853542748204988026538487080690032409405610506026803364834383823734163932486632437437027911447809285379635119172435537598121450952977072916796650519297598073384127494423709624143290978596636577212400336674543229115317450313813310779473475594182053453554398699309182163468709100848417280508183479134922353257871257566975999698672819355613926872251097739727014620446533466265563219378288602860735841863044784744911801428579640895326714736986711239588275666637174100617089949682163195477756316641832281352291254011672597035119206524174355676504212700372482658304762268164795541572574612087521418687402293427689150894890755936177941475923501497070485767764544828641756034780997906062622356926721382263339397738092831017072877581487790027422658315898387973482285635991328958080456585524087704894155877156431333630042211625572353594697594073680395825041789191626342130051366679217301591443039611489287440878181516498256039717840699305238215311119948364776726620540715377922542668457271301325214898514043721146979713184020645677332952500750962583695947389032034006309209742123641669936087892375397338936602618100361478677504107950994303983356678100597355725902692163527853837764015165366097727321165670376473291724618719540381025728218549740370108823300903879485616820721479923054893922018501569878471176740405619618930491377010381243960398114327627180187555474517190979094875854846081691353489092929440310342162226215168069108007657439310826430682299313267135915679592738218542722478928743471924426006668216639851897878926597991292384341692968001618535944903385247463888034147551002082382929113224539913208810256095309405647938013711298683752541333034307570740659162108043359968413371261797331534853573702754476006228457922282141819718850287979674608072974241691124329938955090985449197563932714911015692770074568395356685082457701543118920441096708091733643374413881263514526390404808076367441886957106437391007158892008153536521096363365170498922435655454861347013567009643426174411218211755798266388360475581087015278466286943232373609343404804459600183341962216015921216148163247600514731438899320524510103419521265540635717529436434480434234022869643570774602307714367884012034016430923060148303609429987639773255714410442064275658329884239869655092098786610580629869935299132721072449161703352263295222287351346312938595699417537605472951980649339389561622644304486958214295521790362250117190179675084939280787709585377933716638220377761196741587944780336026462235942988155400240979920099798767331505470148839036355054026242019644044413102129305314523107465820928874512035893630194767911588506929672039305026291867324599584126112347191291468782459950052223482396470952854864384970687144022036101274310579852894213494823633860828639291189074092508839763249569811180307321054995016492341947130965095098151657557927212947171579816778804542320853467715802180472956417074030438972822913854293339425891719541695823061048956404508682549004264137116272896692568066765186010143021048164291418345876809563894413261516734095899105691296177230512704510662096099275815797062224967653089642047903523127666329770219878421692496152820317192820954669525124439562195496090863469480793477005412176213274321728635048235976779245887990805382933307417408739098133442227702807568140004315374703820172609861040607294921559170927697161074515886548138346261578556500563596001037223428537298411098462385934751901537340664425957806092438107019079894156103020002531894292013149998274898928152516711823650905046439824142232566615510173515664089455002534269608822801510042316417852090823290659668611106608606181373018418845830531907584882617576118669232529226927839340266846324851183250086168187269648518241678228553609407946236369581026901221031044461365073801739379713737831032024394730921857051925418395297349642874876803397321456743004761359194702500339394308433177765814258520108442578232466553268886053582657212169149645811474157475182980337972340511880286495382456803570299769871314236166514133016287246273541969294312630554242377861251456242978631036747907577253434498339168899869907182438399151297110549940138837240886842593841712642329211206164017327252927431975640644845812035677122142836368646676138558418989066464281172809952178985250454154392037321207033589627615604830887795879210600876866182612556131539547761883924168012959051156650826637547609690156965152465610360195704254255531944456208574259672552466501010521392860761325502994431515454989220554795627408946935518827981668510923540876668829766370655193385039933623596365088429455335856534379779382211109467353914340051431522763908035149080429004267077930315672142532510917615405961781994568512052181998423666093931520679887912283719425943276671552351830011356371617922942501526041292498759770680538942404365098578348908950701406278032654038449686103861570828593313558011319858360131774396732142923969183814176913788174588563658166775060788481427713351262523024107783978197789186616522159597022936921652839120430451552031849504112530906103785352309854352145587421268269993399550901744474088897443456892856837590225312977772733986684104667354399005957713993413720256939019809444434768394635961389751303445668156161422373519223797672446513879229143933565571201816788221739623756235041155579496310221475790195583779449974887539148943740711155965058041808244532291788790870150507073195491278696633290237862402965705099831520035979162595430245886563265158353738531150636996923607302610861746791689378118623148971163709906764489471610590567984676063775258560018679434133598943359529794711395598879974645260041630868288104917215614859358601714002488175135272561757191428024715471680642506040569090575748564813086043429487280661338558396591882313371797977669011834007168886550895430859398865674819980425286404257639846090502474302544126136141892274390263737803151051961111100545884694392856694977876505384941601999518395543011650505780844123471695791576811922858808363019014649531581045096347547034623508531682612825433212401685297374388454790859589995138873917580363624601599543353528453895870713807582607375330113301843429206768568531042046675471173302432204689846740410243242077837721954814074092263558486459795167680459304188036399723166394461198110652792402364322191064884722649543465026656162115260792494138779400069006075834417398950816830718891350269985605645689304170448952825607005723998101268970998095497943105645782321968402394596036078008203652313678009095347932137977702850369788400355285071461526808148565370534603291849014630926917327139957736936751761179294275169560895913209070795363936733806531292098809140456537729603581273523139003401967828758729886993333100854855929958647398541278660873431015964364865602912441709031631005059068201503190946485195380900463116462029785103062275879792375143655981334660796237263904169336981770368488867061593170138048604769696108275728342993201464250665484833888890430178847086561855660642558957282626405437867551335423994992381171929501458919047824089629406719518620968385554846450688162923239833979192490355544574290535289572417508190636739107011163575592750401159635712523439659029300092142875993486660306820631439472584042612692115667093184869187214562725379482087461547819115349766838146027674462033789627035667300400857019465313507266557535028916687389300666812328208368755765889595651238146001457544846687853591426027203090438058438014182525064281596338516755633386259317748726339524861098150821010653382806829025498754256335223170546820121938318693301386662120726329775200760458744527396559332741613457162014922773239718745105180220646195699567245892342514921518884620502080991120471185985155488551208561153920934814923399572051363040579036494479818588360375334450384864558669059855863843329506337246660368278234381831303356605981048575046931057004079417677916803964024063422227703621988320811550510128020948601982723106906230017742608047392133351044561520137801984650734085240674426830105375993007905340706710560288706151487118928113037923515075765419959144657677854841435641267831921681900684129059051529216813069835655664638733872902505545200560918679345839349183927055946433515371392906293937397063052167814732095604447612575064169871687933413826381689655066980847500912595339717314249509363456535196174936725599744484385663047377558701731052960790685297353395907679260700087561649968177697334026168697534089526182484025129106753648166688046296268485067764198880995698856287051401463656960667930528532893449666441624274115335298570540682339635130028385650188963293521227447875144882471843798052192045612388228683047916352672198886293478610579133641898707067845435524275428068482302516898466011578411555705315874544075097726278180819171772015721142698618086942726595455078961823632711362177723960408739904628506429308880011559017847432506100070968017680464085150664706171972334585457550975049140927969170695831961154509924771153565480005943571601082287550432426433913743946926685872720693448101475137582807824340857527409944660598245985003295945957904684415004744093988454945561928531536095782082649145896825630607172760676887693485191426180224478107412135461359684783679201956297805678082315546749687288220475872261867000302648999373094722239916710843780515058512480393383075187601899011116635175752596969360607276822147921310569151302049256565651344158469975818638271170792711549845368369565984151226924334264611221195153783861648155755559670608873419661630041017891565328340900861995085703429347480053955417293620685668623409415674660902119455662813558387037032744222655224992664319686123823814885523378969732209595090422028353802142326849996278025873872761290288365281669680238704864398248624615633692570669762990526233262230471914864800538484267607068624367322998356078452564182688352640047988401419321404119308918915338461510606086718801269249206302171188323437331393141872001101851103897875728305355971679481129990607407823423206879592876000904194291358316003359453404806837253685132328057035011897424757967409485659829354268984143435425301868505399283196240710327994045426026943979357747026538909038851468114712018557690776497725058416559562492815686887987257149642524562089651181706236835885185438465370994852195108121583332545196414507325033289898401348183306857424231010104488973430368319580221901038735354417174297820106303250462024439518960289697958769695009596419714443577248565631632073162244011230432220663897163958309777555038650324150528270221605753332299072331807146382031959900869518823607430450978995906643576866183443834557108453823918801602069013676245533101444812036280167677464951591460559478440895866188344438313649493819194516313436548343669041970931169940630384786289687895404663707991400219265023750138095527193488944207412612700514782637445209295464119463513511134232494555525677130890793258007680357353114222568342607877776515443678618480887013794342550427964549295404864000820244131364095780778014740264637070830562306423207760923804048891745707741001146329204309582585824926711784984322289661045143112501764728171435645515640009851200295667006512803071040691220546848444372445162693076530945779348180873262503923438852170979988466064164421297535426070843237247692500676159798614564864867020972240078847242357222539019067657333804699288229584572400016660708333498788794430011974031352120683434343414220252021395806917427796632727172017174190370535430004365829189441736705655933983469968840541365949383428547491196883814587104590237864551323086388091914568932537244542649678845863525261226659353348840529902136174336126970298984691937336045275276599069845269730460705549707550030817292071577744606569843770576583169508987494713243089962956420408158072533875701748446096958160257935810107748308662152318813815660939735088895909928996283716643700295966877598206059167516747691529269577417862235427856525684730449928283759414446453882783896441996612599802441658081194041129044330904131200181336861118919813512728470664250158513381873863524446585882013006051492391953204732040068733541639765636938425290853731420675093662211123141459336670592028599210638296130348740977980552390118570104742709942613165305641911793372344017224496962030484533359090406405034777972317634420228239970766125719685563298978650142319615817089951280991518022163102137899957922981518098579031510278109363121000168238998923881326774601480379178297944366157248520991234861178125201403266335393631885849364597092568443774386535493837904294204175461178155445622471306099849138891380782751955496148824249931234061935170296349058067210463703196705595003310545389483915714265049058514417988095700254455637055351677669716869600211133524071175630929387870034696948059034721755502313652761952126464461972549674962219158771394383990220095817814832390616195097463641998625076908520899226581283096283805323246891517898529477796621449094400837463998687591623439640461343360787038498331236665751087822424058416557038161437666300765216086679096575885142453463008415502736079058076703820580699033061870286022286371753959995132868596658327803127062529162835192183023279972438810806051614578537752357955357521016729159593980548775223870855885120882561987588776221887162117014925998282770654812689806298697780393491718799305718962277839154665720304163009878120751692746906870551632310860003727471783387723083287345723587242804813410052931303219064736466558022762966457789277670073263595775068947637170806213960471788989049310354607400923762515248868332715083901263181092038959842978524506657469994753150011597368557480671510384222655686439002139618064262131614224447303090516822400761193799019713870837926737741011298986255820783730877380309120890691351940487612211766623927128620023251608827572331146376946735413572168028261781185058749576702051868887886040168278357000767704577656004814011743127585952312932324431593918043389841754493153538229987806957524888331006004181390807750583969935718094793322992847903256362100451594310592322918648143977967279142559134909262636509944651359970717025534108137076022514645038859981975753926275341164280051913904460164783682103805133635820232581598292963069727153019750279121564826700131033110127872901172838528690806118304692950369719424673761154772071269181231805070960364281369566502655017895429982045367322196587683556771078421425301868226477868555883666733384052967908361001426720155898188624972066140844357534556330934648419160084879328896085028283122666859188971493979949927950476489329615436279567066733631369477665205778869117385774666334747887756747629773823989498640092581316545600479306996520941502718031831698200389538499992236470799439816647245071949005300339897217727921268158309068602217829000722795463500202377373303426743619279415878659836882618330396331048412815398405440660318184907226201619803516365548528560167772418798654257283117748082756934268255212998604449662149963471639794103003662841607146474427478457775797851760077730349868201289694659954121758712008722348697901392936159606096950779418072480661425062539675079636433314166137812575454365682759005071944905889440617593898605629825086413908370174441391565839823739004931702355983475841756947871791835080977007858494408710918745016202862437722918877460961925375601859906803047333898983285996408110811210184875104700794147356451096556275816465042212500550062659108446947414518831182762100471836188297306296157031146489049714049987228630192820256453691769889381094954839722954336493021064998334634659773397105076752188646238792135773357726188881366501759202010114021651289952568390070221317927915683528459325744639130112523986926506447337384675945800092148780521699667661656055329516791679114354108256045543940188419152882675201560010559032649563677792093924435640014385507058434741018106721556530469974262010067471396908460889847614467003538974206640362975149808377911222323813519488858581229113099410313768225149842049833406262027230000673705329018835815978454841714861821326731771083663039717024849153972249215998344551223045233388508331283956570753675151821289297525555334149913240548098682969594933052529107239269124606074119540016437060958898151659317133172494492836977880911971170391534429271202369555571934748721356738593074923708168268506897824253612783635230826209883300306739795220190787108589959918351537438898489641006378244277778955888349859455600712869874243570040622927791254058065363325661783788383724477936179777907466859619748524603792828387368659876496114706158691335066623233520976102219900724564015753473037894487864335569522445923785324870449182981246409609645449086770826338233355077565243647209426926344675508949036496008639921894009076787065842297584356442023776543966203077128026045802567882703574815622509203711414358541351537584555502778008522552984596049618592505739402935684960066455177688059567057342617793860776566908655645895780407278058851072051513525454613307264658531601210111709157861441524445013564336633044694693305735606867140774866774818926758626377649531861037453787274213927536531540780644806128831986115434359888906796936903051528382308256712707199991143200199921273248684852740787194218908510664009621094924030083240594404816869668897810581582964630482341885938451994977829226901591758965118133631164443745873958606463256844114136603960129489509966057731809289987545934343427070945800817160305731690420044423803058767572999884636617495481733561731122214787016546117531847291806039617359687963296405864157685251175837812597647214896763309448585895452057238963159063097683746337144277224588959778882182679832749550077041237361677142358776811499859620385690947314052070658851049923467075039375207636551774027341178924743609990448576949762747024045405221065087623346874350640807922178881416724057693324224167268651807790016002564524657462939524702189656005021614762946955764310728811552765074477934615256067128421809160335722466557541880205830365531380887391209619129645398598091913336455911471653080304668648866500528765523694748410753593220496245508537806631949597275489521202003723918864389983385918237001860599050808548072842474137011944860213939158959822912199493115079508107156371692617936668589087433351496146716618560947534340219190486542617843249158125806021520504849584557005831536626409307983664342388858748831655080366562779468088955372761461377912501506773027639986387654340705975614330377892978402411048054604663553951095183830777181873015422031869220171943603269829313512790533333623731259922214553815387407262570208828038232492859637027952280964886224522721746276751411707983848080160060080705240453156771410974183240027254777244768711327622242807825373522959409192510786072441290129284565209477722471991436807822350486032351876963084410700857006442791641065699279897326577064325321918690038063818976887635127349396312311242695546368770964522232626097542759413768064933604831862545297800093182389047901985596707045038339793258830909508159471545631875456446489677520864559362996905953511474105877486239702444184677499323988573694771705471647085769383246099916588834225455118636623250827100147847833572121005461474043438268874591216547126016757081168271763321398614872231314027760509256617723516545331188741622501430699617183473981379329834584099726256545972926198678665150756950819138293794335314657552036866639129231806376062244228308639609794903099619416687273827219148015993154261321021575726777424387310705513635664149479745774889174952385521997776519668837129380064335259748275522973395663817163168558052943676879927314943781293741571551965345016666043769428124910363105344110770474816466497374053480549291285664674604023318039196825610521329197516561580244196586833562598799328237050214703085649096432267234378727748260536411848503662596610210809892693342956595595995281001804938411729036905361306767477606862369527856996183871289190724713165554517882409179230991795947425299630794690840416261643557486812902345483398851429342764611744767775164963815305468956082588528007642667608673684381906770078840266996433696114294668691626356469933547565851022228833206804031726323597987941739044519494348831740652165206225066178051927337948941791292070338335313851451614735983916854327644239718575080611114877894260356197580845560660640543944443649431018034476091885650391286933229975093079611811834612237775011512343116809524287923552948343083687573986088852770119149244529337037600432478677492593860881096003389729934456504414559984724134670988051024095092888434910624563705002765810879295544263382225699699740506982253520737524120262554586544910415443610815691186126680866761980096655484235234657636991679619714603360954401927243318421100957092099186226670038966835720460207439237797241150696507065927260328741787026438484604840033632270880373468851879340890276032531122094707822852138613376451116354010484640377861385555395927704192508650567501006742605285550499970726387855953561780613426096019442120014258144048114809878805140712274996024957577322580599917616879785755692588116377357320050853540791283007813791680514158303241145172754566992413788180970280071659912425448890261196230964388706773123781649879137618164770035849518559047933754257666457423926422110283445570172942723500238987148024505384624617701476994304394534678837250292992074317944384588751439564588199488082597813144515496311446981927961525030449645974701670432007475638540931520910782887166896655244073164663829895166868113069079191284122894942076809759428644489363195301791079929195206636839879078911315290048170159352615982869338203695510502363555245867320233049385104104247326730973381138412346593968107415933168984071017849609885502360766132924473982216128704032568817899830794051810995236995684124020541280640423112153489702363450060227532117796290806580659524864321149134754318572661815738267140721096078330048678487944054596935360172990603674940009158897494490419759956606007972236523515464787824881410739907548202081527317559502345004798549461717998454115186650046687131350748813560908018374772400121734786915561562673192678243634757272761149541344240573737825240687970910716149095344706822869747391039831244720959989886583195388603047529126793246389164023660083217101197078305471265996864832433068156191960447601991876874475772745945579959257182050206592818386918144919857776581000195877089677170128719064270295134193815972960788063929532422204332119712907957195106481054076392574335664462951261730731082636365186251332299131452317681721217299531728705314726425122496956868877461253590904838406968996484083721337851207979282400840942618480135105037967846872053462286265676534868834415122139871782985313332393053013386477796045203053875435502696415972647677175322080488030956508334872908497861720618448227610547501223234911814106846564357908618028200456291136552493743989236517656023227410110403038270585149814576416576346926105881311871434157787001660964060908978465266908857454935569020184003027181366383670390824290309595505983083360383068982697366000027932281018685481976717133280122569860048090272056343718360682004452644647761567853456341186814332199324632592995017613340941416350928322172558258586907220946854789155871340873220077065613674195191050528447513271715506577988680009827997514997012074408816728231389041904890635061907536444164069558256593271893970134299570480226591076843637101482672987553913866152385051338008538525675956501969451643376131798709410730690135082794468989577309047607501967516763134507900461943201016359698189786311206175263040490593480145474127203869865044920016726946500129048475448417818023908918285230692492283840166143641706845192099541482852703510455869797763097543095115065990823698239090312754626147501412502388261182259375587964493923667347155638994247276472244888259238433749219525306952974662409767459865070315805490997486875820756948122442671988183956885486471793791457064506554582987420982095067687916537713361369532652831991000856844506810280522292595835376494242765615884109487353380368590304934102881138492687227736087831821190953633672918616986827621226987585107369346225639730549953563449770189423957304158794138208932775192934611254468036319965971523063691554351211179544953540293327939924058973548217845658820223977098333056633868951868425185300183299333773183747465223862757930000376779198462760452795660217534430777122876190633428499468264865170955252686976922077435445288457219735750200969274371999565325551586786993654679945180926083616214247429207119714399068482240031818810959913691029001050248458105452213048184715330114521433856532344991659769810760103332503143122270179612432236984518814877999655213932832954980674754400245345209254456054095558405731816909340608910296600396705889707497964095957280403817009947893413786677374913269869160577792442811777941141392289470381357902164119525098733634793445385463799436255495409648234093852601846503000358440209835889091385719460595908946039731084494841284177440355125753614071261957161971273161244050856023901532321179561208657808354867762751526615241325903254439047055385084580649376656279033652003326715469919871995978285045401168347135145407520351657932249472795629671724161340543749644908861072876545761172748320466873714288733720990314299656605505922616841526662226621081204700245303342944642717023856281574042096275201369895776445528761890332740364511272919451467961503181980718762591047585260494846764385842016619121920982806423053538037183192532169634859422927596820784919050346818118762786549495881605698392152186669462665588237746084357937588781858191979725940798110371793151580868161562701586815245587531794905746224874719097639166662111773785465437443547520198088078215993036492182001471932055782826599208546944051894365859396729325521693760768462724453893403579382981346324587408494092896141140514642440312232849216125373584297429932929843210818203922267476996515169797758739279244666871698702983834428723787239155857718291650704992118990854535977210271528792119381176755993056637774122301848546993062679004242646866800303446668464144153425571473056207280052116490125119896420550891360639975225411861831377311882137138584673303198392850352400648613966599776232125837909963566728960992115167585725553082101606213663309220949541756242870843918254616868789943223655533513756939617793383193100289629948859693963808668047939080266599112529688566656099057848428219401466503970724700917085209685329544993497130170679789684561595745624486077639835213367588591237275712225514323649337503246872278819802248240927659870671513652984506644185069956957880496640989902289825349933390014696392342097531407048656733460270648505926223577170549656678166173448135024109737280862967106511538259302889087532907942883142073671812497359993356287186125858404663804430880838475345107337068993236215845534631129488521949533986868737085422794325401366422363528977647484471441945339744644277028612036531916105457823785018224561011640384823212164589303074490468903375445456494713998650946821857901541900722316629050289678341291938280656917238487806779564927068574176326720966867639751833448219456884807798177401050332494595644273319523665428722206115133374150337994842470381296593025191027628181654645506298236980125948764768456759318871785394330137077732118056156661255069544591073001176783791739682187916895014558098616441412975540064752161937507003777812611344861632044272108130488712771694138051250819774116803808986364755629039211467302588218033006699311623055964275111069215490513396081954778938980601774118208210683069116658713252884049481715946752415443396188946592848656265430284025848155260674515005677271286474079894100968437852567719823159115361235613742285865858959855145838608902005432057631072796851509852856179920987900143035863621947391206322420234736916925426536953197990002687726696470008858049326251941176747807083119175342558086998994185123246918362805971641828886590371984026999397576518588516389606072270670757523408250504736539388215770542407482677273127182936541248707956957088083808523315311320789162248054575071597520914957894272649715561698353661583573684331614427714628039719788513905458098050280691494698391662348693898025695524771609575582975415089378592944777106849071608886226523554096983537666345546514153913037491460812216483804538323330220417188889247983022138088990411354238593737905778261299381440174650530799873265766419160853016839826435193852693058737537046968465311931210882864128249360820847682840281920775614542403028194402981134911650986083124842739416069409491771708486625314513760604599175060211893036724306637171302841179374364764683543577375718780722844569252170339450771616355331481853432009899434421943609112763342587025172666499991951331664670718025485954718711487889107941505413166385136566909147978542748725709079989404322990413963826778948333947896072437624306703280111248950284373555043711825920937189068364530800773778259247098718982662953869923391059726044182418571192181637698447015732077330505394934289499377975305884095435620638995029336295651415696226374367711409243364078746838389544030275728993899037247807251115238579475321781061057942215001792415485449339659147920150700312700437045640140463832727862120361991020976721374016694371132015614241611941172173594243313542310058805171473357719412473358764697587646745826142571597509203154528719349885752255844543642243248869182721109260304882941761263155725048070726363975205010864913697586631392689318913435826924712930523262375084122189524521209299753846479558753816401517949637346644599744859076829404392482338956541952842274621457215126174065811597090051033013112256546782265240436066147497924636082843429446327575371017373928357827212832012841000688949159275369481927588114086498098348080927366405533569588588145567952833185806427493762046913103260177337041191959873923862414913248291927711374438558511765546091299039439775201347745475025613169988202746560896271973954310718925569352380583819910079277694158682034382606690216245697539828358336514042931286181038777226210294915039811119825488632012940617086514599344597440722903499694605714052051136253403316273636940848193162298818766408353617791192583606001810194716736317171371171903206037384926958963831822239892211805336029801028661877573898543698793745203401924424759531662220182791257898049312995975456505516027820836157252003440272103577726319322226204697112501176396030478105509001580788152281954931455598710260491535301792440717079603509683961875577975796558162649866196971346449734616466292818672595279488728271007066245703059707264123789445162322056561675169028084032968609821335572820150102580657278938413146763357341469906647404775895848267713934584781511171222140292014083001402603416297807065980038129760386701048286553168518397238912872874932518394870521522341690044441383451009445290716977409268067357604343555301888678206245651327407771221180561460764929310578353075371628464443831763937947102355400054769578796026171776799625166333516367462907495678166796088251880684436083951462678179048993601107672073926104901902016752338257054666146406414264214750832881392243867980333971654924834970555470986412610610423946450762900639570084061429024894382316592047638864296316937088121677982166149490323835245126323403453925960259675520533598286777808957881284841931331492659605906722069092926541041781073930279838393602844296251712435449286806478721120817295192191658730173641787887677939127913136541833820360886408382517359002418482117141268502207817068462320587451322708196565201425263652623107629636818508247468243692516719322664184654582094432789003682639321867787611612054033014858855588786904379616639399165230533747386174516738272843153557911251102755195900566135061899890184143713187222574451466132540083959214955388078347209835658638222321276478660891464870325813397408644818826251732983026782537874989898136261110077794559443897422735008043159188173567753994229813242150813789115667268119154339706828832661733113982935223902608815985535942006932957820458102289394494967051369682124435085408103742088090908689229973987288154866364218641294959642124852340834883841867265819254183493735342788493442676090224617530580424616517851537712128003953159270236508413790867621862212511442012821619571567992444359727624197426155248945626680326246476462589316701275484225243559715444574927015604008295360677430595335954256956356672185080399811186393642244614017270424621098397163651616027843014678331922663901018805995751136008786279617718916728409471152600126978995353248024610868542603311886038710330369323635408369577132662850164211279060278229564192269485726993119265478291954656580314469166354820886951898765714679197970054060246614473721703498302731880132901490160855628291033856039992292423209839821445059082095844220730495697912526926341000541468069970289890541427078980579730396456313562947907360249248981015160638549005790206557892415452869511771079605636165768200426773689936519412522882751570957487115651222394637074998960209774458298800999784101193380883901613108224276897661731271965939315500653279723166908793415848984407089389012133351601596995290199910454789738186527691899947830205774644651534984696497725392239477662623044949889702198764995914171493399145779149887203904982742608781960481274716946059326837154354444196562546242825285730391059013458986555297445140709195005020081345972659785629092897744932537013010694242450652190396044222767147644522806378039576472500380304116997898473506944202294131538461088565793351715961734352391510132730381200406735454269154198865664202682018933809008742658562188891450660752166765787710479483128195035050734821324130247794232086316210648601834428463971172622638222003710720232749685424557310514660044151117400861112094949088555399469253948884098550120834078788788464964932824006205389701052861689856489072117224095294590758084851973470143966485836545763176966644281698217051077245142492795025553960479898533913031221813729247715850756481375584519136562777569778313888562870327287986058306471319378091872831245457380004572259461267803955316983103300076528885960873149422448615297154336919325483616466445417886460910824425019450121194831408227457020375473098344276137489340930222710904460279725720629892591554564756743488360922337406771184205198819217755258643941451892428949352635118735325313997992483617136782085903921817311685458170118590911384625166182360687870009399863894076079578867868918555488587817536071625998683144084197428757065781745555261712521173209966168769977804455672827385879886501505821823722032314227749580568837782043068823110893271961788160555760208589368062239274677071463080140700394565217960822516612085902857757367463865029668920357906071202966420672804861315724356184821315584178896729413621579679692550595048801688422627397918762036690851808766883977470308583689452010103133750773366444483842682470713206680562270629705159096268712346358151929670432535576126626499661993610099438103251180367042802764427648396340330724294304014220401534230239040031159659231196138877248037547063558250741701837323164256151938696253994801587730121914597642405420076876753448719889198113735193753521427492626836203204809698535935917463486855482183078936989183041284600818045405601513400387051192639698369986507560294221718114401903447014209568711824041173117317081926690359912127557125661954064749279510108232604987118818955039563682955951833670813501570547103869238310490968870261788853537635840852308202394864484681891989165674008906969962069998403855395815834334131897887099715314550977048072495284524591104535962753082846656370972645999451549435357129033375678124447033215945631974158604447490291702178733008355907897497047037976525984216234922691294823202326252827830120664429373395290296157202176048805575491768628930181531792903205361227507303277634912729144409078908658698305283345268578534762052503644554746962238716217301875803983794312980388952393510407654176967867915430248526170299481862999147607255290415909450516009524871133145725971919133110091306642191369021271268330444904638116677937030020896551900223787990712932020636234340828832378956857998533840363773064978257420667547430988449796225981270805711285847463885788805727678032916498774398469679003150787954311238788388338455787376940398796853202621957864702930615143618843740507660456832337850148012620577416673989951739027828582065302543075489673743548517678469728580650945239707816243301224320998562281382487363807358996478853775371051010763219311703049006754415811136101934713927003340653064812636413439657156437395576471755425192426190009662199727180310943413690523366906288744706786349561593234065233377236079328883128482730457021584913873605049508545101406506203026420951703162091805549581710234433214375283091413407818464471106642681372569221258650597967303509460381664092159132513937574879486593130310291852256549666493251330647654516886382366263713218606842306499548030841295543272586798724226752495271488663484704105931699242404924493160371883709386952768823594537902350457442455084449904858899603594895728419336447661511354311528537549454178437559041499386444716964307892542909372585275204501099362160740833069230747495458464951260811379098680492450018222416010368814534607791216720134121606428092806190863550046091969416722265353126807462978465736039476974654283157464803005891245333085099191699707658971043951832300469515731974771801517468106348597875371251082086816052259008411803767728482721700902233649907503335817709552761190080980394562309643644727898499097743034918144382249937159483731372878378275134123985701626855995418270022821345275088535172566031668394068953620170572731832487691383727013657450011573573862171104897729706101658066867216026513948092972643060826526589611885128011256710956313524188724909990735915084111079821638524762686519971511496712588770115867786928310091421658346323810971864331397264315505952292826365908880109517422407648715219194566817011909233442259451515919449105969039231840178724514488774705758733778116566720765289804147064533891470533358172965070600188422025334742261421113366754818343241433053212151326676019683369923740048317470540315774764593415245707543938573924957583405897174991406936512120311572236478686851213237973149656370814497537767393213561070667628538248380568366042741046559352592783008691832817614333660940224109714993164083737471869069550375834005599538427462286109215736306836146639202915918739590078285304572639786444614539551258374142338567357432471387535437046477348112070078551589433313388409817512899886075317270422078477429670673136590597243591795239111228922383843863112860184719993320643438601244087997877439291820988553150792189070553985657041196342210581943472709546426146589967167200241959705378298382177286171383044200727231625610094832672542346038642399913869666475337737334452279571046101816770782616568958451614936542270105643429416761914427705270158218797858982693145793374455036386060562558196600373931289058817434826530042173953221900781813212411455934905515203461574207056923164776235774338445441267794913698425483505096186354644412242434981347792426950802876442112065560118797583391561959278302271038252920951641074965757265434270574544817915647314942287464479392430802174493035065799022875549219646140669361370546722568774554106085662974759921654064731475766274064027414813042589848420319394038380195056729459175279853956167486531960179469817546828568782270313085367612956881642993240744748394538266850687474243729495700991877183558153533038143038037526962244007652492005101967501241888532269441808474990855727360360133848965365101089861331295014137972121317335023416065389902231228590820206553275912555262700861095401124249090958376792435423480921886449611738644826250190276061265426032190632477860799426163159309613100878342934054941479630170922866875725925216859665981075351437548254388085455962620110043772123865702195282422212974691115162029012801025629826401508757717937330235219598813437412318335859100623119892484580251516239022807835335692301409514070902566392644880526114735181443253919978951657946884552113804298122428632177173467972567718448102578285931859036308814188510888671773649913060485308736629069034470117791721746396992439022816110052846738027707349470806862205501378283172144348715769225985018510901025181688581403056635048244755651266657386806186059546892123720306334166670711441245155316724164698031374397006873875645577369889157803624233678468925673240271734873748169501657038787763050043260027804866846471813414396370688747848570131173183934305550071948976712830827002650044076476108467371869795326036957414321152426584444120399787066858773761354724953898411305596914485449091502937726578431314080144970946425051266986654471394612953263159020349953606202058731415730774438510066186813263570011923039956344018773364723123173644248572580441364050801245219939643744248646845283242875344620504411387195583994399129319969537912333508292086886098277421103300321574316097589033738855586121127499009282228224390997194362778939114550909311990838783512897883257790438822506795467017977502395384172596262417679198779560577117281799463920002015167728662500787418238745339742660840967864883616825043244450291479016399931561651456699147248238558387836312553875008084546789840533426347418198872007125154563611960447241890623180880028737856411365355179533035452832743295706135146246976084060583460361213118354545779884300363244624468226496053309960766073587658239944460596237930981208884808469277908202674605942878991890457103780115637994939917797651092027586499607190891865561390205156031944296494301957581477323815917410947892404932514019470186541209467216495078146349606468193444726993590973077645746528286797562817108878429351344533011042520595403373780804844855922825243239662083128279914676233241152708476003720605756979438789270677994634454683908447899762788989970372854819343019770487146467958154483934667786759018731730122186072296528457637666516758456834192798112495212674297297395481824353263550655665588823651561047355120089423224326255765562235016155176306231911576962822958429083860606322306920599263737056201618608829439441003968440345275424858206734402777047549436436607863802110542975223925891482520411779140811163413361487423753317810047152113510503724885618788855611636021723362432690761489695517917956918253076178480584212770680610558593478388728738829594117702338353169552101257854173211865543645992577872705488454304903734164078991437898189145397202958355003050989714986153379493763607214355511629498165601847825478251019140599677258485129562664511410953110130010789210960224791045409774929400328864707835761411038132685793775616637986906126832025722970844725921064058923856416543332476676093843027234230167771060571069505952815303860134572688246682387272140674325265938199658971288547799263276107976772937026528154005288236454581596308955271235399456333211767289733481040053353395328515159344880913577591197505867794010775537674873109976452370298390148747148957866708204359449128601053756478099946952850941719125022035487046874729305585040954231929552329923298725821484653206311165925313713349899264542101656860012918868668197989979190632899509429332453492897447062827053510607859712065499549870339033938521629525765244808711277931583022909104114917541420440555146653748243184654292908521514493965095721646754793235211494134955764971559152339916584368715547848837106712365143963205036992133684408022953449957191434664122239971854773733069283627185641121452075031518024958994540538817900281453099131988503439041578845657055354282084722410864974922723558806415740988192608298066177526332345717978565134447476051242583472357804962045697932213651979581412203564331001672499249903564710743280232024225756685143808788225026326206473947960191181698552650132094920664587770631759505654645720724532575664846184792596658361997877820477597366346144985373163131809056720065251002428619614943451983826567632210242523308354748080370688129740572354855863850450703188460106240801986545280624849807513623637587662709301412134758336734296675066434742853512279002372713043489925835098032079712319593538692451296530091619964328151935404586685674570096074283755308731828025742974860691986524759885946555106925921820768063323763018335863023841036943540823492916275661508855110128032311359482548043146816738284128322698572211119297793500736955957487387284472804028619020978256470118900295462863474682755563765133287866101786355410287538783840001038273643254274729692988555768064498216015031626092172526946854564686483741263552231796568301397189718871554033128803996915012056143279578836567212403169818275123874664814020399757344557107691128615004733131639892045294625613855515389755359962075470150860379263329191979643666293697125493184332653880711064771264910434348503156134295470449691592176953299017021466662837885308509838389876639024707074303264831771894856659357902612779197181514913129674973310562758025672189274596982657567392028402143069171037474077860342694079333258695295266593529491746506277482047527178911966813282339562082368441735896693237947185543900286997774609188572084783093691803685218626109054746944148081971748600223214847709852593001280416452091988877642495450570296362002555693410924692416270800702713560886425703588838290944473125081369356019999082706435129337044484197312841293780078249102097143443766724531980136477989042549731624719002338382801622670707418222151626405891695849251263951279960166203952938239978431071461577073492653203089608806286231771682968581036583283652235617621629633398049031142574921448400607877755420628755594056723518061313328281322353780394475242876511176836894795120063688189057578457744008650723463069156874002404476564653662356450557072493925496513797535931850954060596956366893415378058018008693983288672525218600098722051785681808386082507760561723366433725193591737778759301434060024756221620835421914257050082460785125984039114218068805019803035064770238807455950470278847134342191754419541634848721120354494661494398831038661782725344640296341178128741874156050460628766480071617197699319818921687472127045356664953662169289144786063585633088037670535847266002486245673232322664948856417031298121724586137313066383743316200531253527223206315082711646857667838412769140136235956748555682548451227229823397801169269910422431309906122554551518577944150335255366787509186926619868752002861444099676871659738119451425928146205612544527803681013070114745501765921310753355722487713567234008944993008519048609109204736413331976443740622894877150764130769215330563191427641175542958334089348776024718385562794792470734478321072702626439058394923727412909174735465129456661764776212985745266838890593991432800357195322385687201562537574098967115326952281993762719723834267665315040275471400112976924769670867768159724703831781296999034137355805846696426609877506098163170892415106096635536152291532670719487582306177892354060514439856680242282631829865467481475268296712841493565478529490761951676812477908186469036665838251366856712678018086340218422474658422944332720130399132587408153897823154373890119013782377321477001242519605095968435765719760803242763050310482623394403982958102347708408111841266423965586226247388747453856805061942635605054147357228247467865614333985907725215272746476554142555330552579655585228067017016966160314841711875196010301157763339144564938304167170332357376448007709248926638888160587207025993268162190334210125033780416755868704425373880928263304389336420480824286437153940518267323245357506482652857258409760057435271591476126956809607840448160535585503766343118750242535157931821551406878828116032296847658835858404424645640083584767482750575120002263290135530174304637407237489375524652796481086812312127665831996531596077662793761682151562993435938690162180746856378707052198932431941520475370509853334529038051190025647354603963236771481813652088468811107797522977915725694286214292826376545865107651462979992393940869819617885874384904034268290266821452046295466470907691957574208494347856985692566644865716225762798632809157075772504234318739309864328677580433703479514472088386060710231127043850038658402120451655508791873327321481484899236456410884516200036209239947456827497668555788873492478195959287639894168642838975689716109117686909775888129175870060553953358792390726630121564380550116995779961592376403595053283815331415090359140929131436413601665219744179077077144149856188556710792351777064313148685749536247926701838615980116717472908885723646584328355953203792769169997337539299005983235326526535263494471104983417131561717477690676763845157788786490144368083597224400334070389065745588343080617556548094798155472462107920589593457819756463855746881785001967667028533000921059700045352132040725611620537897769566117387502613430954500981385635458299691887234096818916821282711098537411534764099419389854411508282650918576284050037516120192927078596153534950061560146349317629633071070332950502014758855382128942254971759993041020858815900478090564319493255495910054162918465133902843636672143934558821520490969497231356721760448155419129136373992991839049313051458311983026729964333194330269415851625974843602839307357176976886900399423580979827095924701133004380459881774944059122107846413536982974808405810747469652180345647675728253422353077950666472766976962647885423797063013954726123761339297990542773407300260106334122220074891684882510071417478244356609931460849408322489123194407816982950791739910996802704847373212335020603874734108066531296177776472862359780916724596234409828414634962709079116034690244859462683694863393526769086548400396521643028447692074231441700906857758336357311899464671247306667763573378594911251306589897351461764976072304061553406866809518602434223531746943452053912208817149643313197687625847862177057221207552408974677413463085908657652631990986754059553484093797144957751864950659568432830104680522126918748544864808877503036002468023212956819252378152112111067343494887809920097631943793498088694098909073117634870016209339978621372358685603967595572451387448053645821129874975787013067083345891592240877311595031409795491654467800847072289994224122240016726663136528840187242786092031166529574685510371559327568601098899583406083462048217995743097109556870278577211927334560912393306131925510585979522789062572917709245459803664785172136479386264938919750411204777015782686245928566189811637669985210289060351204972441192716925029047995147572788636052629927291441443956431879792324851812002072552318756463620419113431997999443263737716366668203934817585810059206709847771665738364098780283760984373356034662771263651414898047734113669007011903669323506356806357571991101962006095504467852284579708689457321836448396915109949590225904567540996718848458055646341988085495739124376062921115957555896615312042208320325444349316392555096069401332192822119529845915883199545250766664250726714806308136513811127792573916294788704964705215470026962961758484678676227939703116999119962451251116412463619480541179001473991966449988857272030075373059094051931535217883065119347053832829824504768719369676914318548436641171676873198225530997090181477094813458735038458905944382689941899586432372356803351724231523406154358295619856078189709038129194219319595616016409464130960875354141482679081391345072925295677130330486480591378407510667176653112065560421156189176574450639359869042234185522196310941739627473450859711482050674715447002079413820046230910197050225488729163115775538815570542318501500362635595755439107353957586750163190581433387197579365456233986896116650562815212013466622933387462010884724671248229309088035730887963719715944425287864559818650399543911524551289147841994402289916869463809896115157393358009505520291619137420706154864680622513508705587451336830227292505125052834174851029090766435988831810225038494026581142430911460806869626349692559609769324485943546607220273912783013402777755908160783807373464099804118361151850576668538755438189773147396572419142179463879537391498528414681775643244789259112219648327630159593128005178466944636378306323671873825061636679875523627880667415944327355363356336666720674025603178324109593438000669100821760418167050533212795658264016946892031961352326976159973493573849067620406605604196450630451588814830015049084940385441794190192330973919059148150166624049614807141939845881825892773069701791915702616828091203171152974787436599900865211383432297832246017014853014037632780701795400390287788847924533344058217057636507824734399343099329631144057539202426528194101407243659904745875368797660452562526510882802533015372872038482382065029603092153286352908926212691029317492836934744045420665882964692182804736530075740304287906431664455668684949712058594381784376365001016914475141307306708821158119996419593633951380987134564499465194413607258486806150176464764680147097926122771845907903704449435960327825086399761721625032726684727425318699335157648120337268220429118826998307638866691587456861160564539396039356032862734113127773670829473207147502880280209440545181704546453275744136060804316767668990488103270255590301781819767148362982630012243132841020658578075875893881380986182422890699337723393604821285990853833721971518908965500866182092900665053281987419326778615129017922529567636631083921466458198640939759948860110547058481280321616278641460824188113931123461092135999921964385158381427497323174687504666186048430157719332754821650542365181367989228263001444653914690920509782330135323581871914285920038654503884718456923783942382394883296602607814972657915445670522246378758006422344338438529285752297259237003666820751496242716610454061080791927478733774752884980552183600923125686506630860923566537934663639412155827251877002436622616575839747106885835349979847756813527171587060549683486756946201111957528171787756710056879533179485011233729602279826257632314892143006709026877737452429383592829567541642671598055896678389202513443400024687644513961499685676412920546753004075605161606133482555315867361321907512449787538252013756525830430362842812882000391876684985501901472269014377819363051061329506664305866375705970212888178999552618680183233046533134335690915527416631713822079302474405757592864404556870304092393206495474488888747573483994961042353024418370491132511817937562958912818204873504452460612932044259492338781759494353540786510712648054710252217343207408037710756764322624759684475555932682708365103364964305097642681288456241173067506087691681932625727928669439417102822496055160319641129141100513107272187755763899239963309917876426388688458176772206598043469838263263004153229022224878777125007245387732834245699515398375899076155724873566309779037777057414946206894164574106684429869344926051524197470729853892801174142068649111225407192286827361935230950029316335018614011938546103505096725087908430453843541066246353005392118996159881263141034818493854848266852238932979318553913631204694961087114543367236025795619740165036399630657703677242802068604078065950478022972232602552978336093838013210100459592535557013013550275146948539530720276456672765252921790275567027713983696277083951407776024909430904873090518390870282756861601472809251585117268514443141287565775682874893143543116748233920243135973264726646543567329116791835309544733693640523785751285811976593349338945341916964702111452847292742876028905558905317017432850918462993702664121004699157952980857469470235351957381294273671030983422549097335434804945137286726890246765292088139326114231809198576859635468292874682384452973592533400546394626126384047446474048265599500166253352175091084600042857627204275890283706476675135502534301006728671933079270678586105447708457801063936730816941910650492970741654959515035012785306617648274643479394243925004971020162567449254159156377645540024354765414571602605180501805008676648684379504940086580393250103699983992465235716287178975773465659067933177122351987845243745437792931195877675776919431933978526395684091794167864913484590592783513162947100891557322969738329894650284998186672659325680569092792419916130364161296846173803379641668578727694597417110775915548050225226647655459183447894664152979522747669580918704658946360353145252888044330967076057214929086206329638243250683277176183591030716158829525930344706477363721058457628605673232912462821546603836932415119051279368240747359275805915701293879545599438270080683417857866823802117535674568505035364529290266023696369270005823842590827884936270248988541969541304832263923266709609192264237907036268937032151193290996927627381873811247616943130534900026651242827256961841307412176990804981461623156735440001656749747856407412609867498524716712786515306182255466268150193803883026903550704850029469775085745437199620424436183283563972971311279660855329124787023562846468966104572363818382999982243848032803296585473191878041929933447714623538863823152418751031278538782790653829537500972535449065971752934024649098851749027404199843211709405613397918107508271151090996751865648631085703472285954682074368807967161225153076247891868823809301616841726901214778209677283960013789799813798921410719167538809171150320670840616929831681688858790955118807833485037357649007448643113904696491515562449860044989914452876148623459998102491387452274056466154443202485253327110024892744573399363863838915356579814769611048858082806625585142793315064655704731364015364743723382684043910696655739966280606918527855300322326544351193490377100239812269941942801355248127007487244416081923139198966154987403519549940290243870519670582463940536551896004106156083840691077626062356391965463108707747517534906791686099360165218563402212322314515503387677681268349561182917096265920844526258130713703972760357950103478665662787784380313676152568726781082635924414178170089621414543068155808284471166856375425585596804205399662092652227147518350249092483146467434365344063993177732439043847084994406883556225296194930304779478266276829477564919410626275706180490377228362994001645769369556938809380175223023482905185783854838060647190378234331227812992933443188865877598317086201186614320546753034653173444812345959888539030399364626477676896616418342004335816657752685126145304627173525268829816564556292872892247176915278065204228255025601422216482707266412167499117281124518369375780293873135719530547937336729626022605870092633855404962687864778762486689739322784374125194980360636571707416191622568867461576706097373436349062015644246721827573238912662635458725945248412666214582181860087783278086222460788312535233047527638848399395279197534833478513737743627533642111547704040906606110135064837093474400013127159121451999249542944390132256357012042431209559214653218659502569754638939574132648031032792997661616278541336710800668312371841725058970007432149333454524840042488491016755787152654402247788723102493481229503461138660332382074384962945697290173617557162228555416784222390457112111568623823814328784616625243654766417511143278610549888011145337223147062910940566164980766569875601353311654292653857225305930325358765256347589300197761650273082930131036672201510920001421417571218816104498085288225829141004240995096049052735473271407946420554675803994671465736396060941944441856158335766599790022361438482032675956520085456256819273187923202681018208152304468132939204722888885965221215161292193497310650830051885757973978792491644855767360118031649106475596138116435271106428859776762698748435621859273450888315148014825821210530849310012680499239857934579787729024169960135096568449227600200101774879992675233456917614458497893361330986977440247282077976427921484673895302834055465540179585478932273305452574289299663121025719688649143509312608719360864550815112909108495709673256979776922587974888982354195831718825311526646912804223732744720385640733649269941736528619907973534018704134231844592145861466509092939129920098149472131861460120007242292801337228938242762065654064979289468991865404892570127165639944351357065429427308719216251836900542609522984517018355461051407906403796558169999369039721461616700569366852635600045494892903759236365337608194130143537952477462044017421767452726149154595517234260833020275536376711087490126798181464460194261832639306532245362630060575453640950234085370342592250157327143077789603335951263646372914846826664094288319203450050628967193356805791492619812759772574399447066508005982466274324669579360061350351927644937261419005378395567394177556008688191706578069825822187653168711928176892481343809473640766146882496519492846976079782774919495444519694253153376926388531347003819193459868101421397472991726201740360162097232198087602723447310878572173878771346597910452726223868697142256164223630912198698694223952893044997865112078320370198692444877339021270681919311159383932606239743977702733325261865962113979519042017598202376578326965671319337655425053213914591110709451499466800882593739467690375844544971828447182881890361874640270144523266199898847903701964749620858677435020753165882059092951654274775408823585263052093573204219416395870794074986421354670164056450547973700847061553162861622734572266985785065509724710270523220513895103147572982287343519138952562974741882485654201996938024366993420098677161271499453287756785304925485603375505266502017348657822187817455315274068210747716768680208674412355678954285578481231876205125517923381164950435313242557997072180824430450681106545918781464862740249899894586043813100468614778598884010816158588953303642515750071956806292227019779819610400557243328645786898194828857852861458240781212356129157983728093839636968233881983702006779937484089100908075073498239411037594969026414122087766677460415655606633427606155734452820828819805126067693534162056281421966388224294001878018312639042503530163022077449879363851301619576537442230846389794343957586411211381015359395371863459053339477708467238684133236904361377977616176078650668267356738791947093236998283325690368645158151395134866451843515254181936041366920824519574550360467162237781766981169106022695846532104410327792709025090547201220411217132426508257014197450001714405442537918895524665748427964615222754245516448909002372344541340682968944755983791631301990776965511027627471554119601807559168905899928988800697276541004325322334107129773098980528873391314370274583659883073673412922136204980993810152431021096839724498034715888460640839178429401901620885119749129809712438599618277008870941784234555227573553442493754458243178197802200574385542448266519447962101095024959733188155625281539243549369053935628205694542436663816237431227027442477543652428891285443141827670666878552303008325566373790917942269637592388721316138165107967592729657705918271414338834010090773643190927419790546311494715811026253103582189320765360115122009871409666829015771649256865692122217291013355109137279385082627688118570050421611111673608510795656723322753908189984599103019728337060089714972632370400590092267880474135997160904415678753745481132825069666257419680762683266108459358004710765876159595167160294509727124987666081204984087299474701361055936031071828178128278944770740858260424123867397922008204583435007569779891381328045761831501347563607865921475960379383925738281610187504950662312755915562625040659666616266708391631845020502820274471054533198620683528841092848839660799742625944370641366452173575812151914531375252505886387569800856740653908330119534521008890557683924194339284351056421368935260951647743177132476713349013687692341611708664472922329651561625880480344374353925341100206881255664270010459847591426452767403593624751574502077633532253489476899407392951881173755909621047108869678417681156184023519293918925611520534939387563699895418962822638384666289637111409749660388266432797517627102418478093089394454646631820897777315183323426606247761598334997560953521145539732973494335536609960513088581346516287187268714635473648515457420367083849511656548848064754348817352808968061620760501176234706264397112258474423638002828977551607373706291310779340187819142097470294209183479214160331625128324016032507924479348764232678874539875969634874665340137228009457724583353807231152869917046020023459864886777499047857527873374167115845891786728811404035872380037200158651462040262820033997982662583864007585702565078790370900801098237120216420433532594142232842182431474849477282305011559256992017447843778600147414855388494603519497121250151601196420252156704291254271533202400027157218495559610297716534323276426067253068116002996276528446096277369232642479992247816772207512194891631032353880837842786691273875008017810926678402791826393785623704433367799336731110976173939615933928384650355827849706107898812453168830814695331394866812609479021410533277017934404395293690281173106982552070716654502148667440679955908403095895484047380358739923561909743887075508766198374818258630752537803969881364465018591812162084407371532277888711519351609262302884148137186079536885052096316762524631665312466877857012088210576342211696510284223317589073933050645175322680560846410485408528757540475108022866742565137421848050107425942012592485109477265989051127668973734984088352182364052425719736219280315456534790097588938125963404232448278593235126816331486530420020101729837110526713659506118114954302582035225761751319874858407235636758290994154096616031453789644327661794489010504784438684149190168535497207386193709089400527541465488457761772282555871619696580150260152301637626650187870165099784077337943245533365802753369050518576623219376659733865939407470511773228866656411675564494645039611357597948875747497979332326088720694369917065964304838250795348918121200193608970264877301934154311911806737125534238723191905392785102197980828930436867807614221641127023029048929626952197079432326011527120412034323550392442368663209927743475043951000382296120130542122957305353118880647256006962801328819811155598696603946577886213795413134074893351968875553268488292447354577464810678265218137651966068116671333416304199851541861236583925622157692838424204358853155859234832983409190814117531781112952611700314991344330219240016462770028422757785015227376176779175352571608732059693385859572122808573005625390476359120713539431918123168613666697909492283255230801381927566628667256207815223275487295736768026399469949306370961053395456571286773807260410258831209919493221329768190058358256613392169228522223687951458613220077066707850010936868090406925435530667485685558235094393108340200662996175127711561459726400373538253627067571127360934295804186669911146727515971890223798973291568233549398404929329688612089458343593226660693569192074353768198998516763465736959367897820080902522692043693946980186557395746306640327350758746135697474269834197424980730489738283988094335338832688883162053846649144927979174727783519040288053549162696768968477050234853933945686853480454868201565670728431689546238965924393233659287635077626274575924428221382770924960182776454363597906955613657379126031834022687728645503445650304963026187161188570566597858741264397409871562177509758465938599195608791165588822146518674593041044059056853888577936068668486561033622197842838671005632825456637236693984550658430103679209732680003646558736637387468551829440346300007686555204956287014513160319401650650551068452341187487667958313889420239354442775015833841925930688905705571103775740136450472445944658162498059015791123460544220889470603284129266000718060839981170017522754484596261049748925661166022237630408137172679687162431783882793786500664365207118071731515988018916828764353422754733853473930890771259022250229270587830857210623802471842591247671491521331273935079808419783872578602717525469912612839428277722881400747402687819777411190532860648636272197389039069207206075798359267551722737674305266722184193712129480601207672338678199583923999320773222209557681672831398184215520544657201529897384791359764935913631979432824365090053365323597037340299500772308200191044839708110272538134850374300340304863936228803669704978224654005746612067477272134629612844885718457294900415735085451118395572079878445141427860430893195834163131917627460567767408464754306848810360264516538407168062810780481251343406316089678189128529048015843180527472701156933057174365616493036121260434045211482230569907126396352809594432108520288316038931672859541322744567624654352329686759409660096769568451886113321130473311342926606037183458319422585823551574592111587175814621372071562736895925898937515594015390511983576121057826852288083966898244482532850191842965408321872262633488070441387578237089229244817552671447503855836756353540807433181504025901068518850159652810306420602805346979181661609448254053169920033789856960530577067869180309058364804989530955938546686074254466498629738139363987406299356997349486036965606146281897199659616513092642356982464041793113546987741001138484740748835747145247769702887736985831416200256998077822068367264824623695653989898635993758580990555331717012488199175623739413500945762833811101231742855956002528540768841600273427649346851225775610613100851409894772769717255625867947741373035453502200182306036502326086037431146913802557397633101449747373335788952518059978320194732464124228878805288975174364203163977523499237096985465387033703119102373618617398231766461924764511008483798425632943198810708505573673902429479262695117567432755766616033484284550038707285903289796320777908707732777619218821168473088518355841741272946501794302871251359735607385687976520166364141882558361542894422810102367418522864322634691064498938252975435247813508031304666116671188600920931164508421138414139276451794692702511189285058149887332679934720119957926859058642790805947394009049142440117405902447654042730035288968313312127863947258910881798888587221540326158394254512433836258018641078806574574274950714155048194604164004626278139412075740346375459540208988488255118140102444848347042608905007369174505312037587251972008958748582423450899798826811707224881880337184793800935365104772118648324072543933454327065406269601374808465648134076295969663231933756414166814297268534752790112638551800382837639070078566934510687453660291350196644135392114089589318349068099458427889777795632143580911885109310560473182245259621431998713588092751598113047160550827081589280623737519230736444372782661168110684019244255241761436182812413941076296505714718259324358410041544530653000326214342794733323007711900236321612843364030619920869873199022259293379868766854088438461867277594443078604794735877392934028144440149686393830066506638034350782606925319876093934724423068808689991899408882469542657317438363488139048704668785451374259152470705509209054116091762682282135626717506036157749273158274554034052588671882186962250541288267210120476994715505745004874128899248660504516502904773180833309457348018466054305157105659435727304135907927998868875598697100475509829131071098461143427572027865089426707217304239244488995762853999671572366893605936879818275698558552449853848268232048774125485520118102096305332795429867597759494141813002413776660573611288509569378431402155138820472374790945621217082618972486755017410495298321345444322063360342945483652254616278193339836028117079434857580924017516115056062228729768216480096551096340161261098390576738919360538524427781706728247385460976596420393740283687226441719686030022786020422662089441469860715962091837220340420873334102466666807083123975948945200115972412977702720700344209853032231424795912056149885948477430418721080980557735791064531333195405458517478438386504102264776618853311313138161195665999885981788838387199575539724815393903784039115182062036423913733727742714779087025443677279825508770571697619381328765333896038019766244850450676149776720153404820617538178457989557294393933663219325999767961510197729478893688337696840621751296144953330637558700522094108285306866645958749146919143002105415319556776377039215516760415228104634978679659458215503729436445130222189307532787612895666228962672757567523968255693364617500825325646023970132591639083275057047050284035496435821717368666016356900823537358020739395903182547064586072771053136759891188876133001897679809259884193975208220629621056201093657193687055133559267436163773286195571653763662460550921879085348434998688541967903190750823745444497346637628423912315465313361336954826197952370345305324816860400962963113636983488799134416635120384461444918228140647263742208235698064918723826595183096018004277770227635187697797218048532043261920497779127025731425781115247160719718565826947802590746720164839818385831054666453610481251753124953627387320549240478756652099387345249973585025513484804579526916658600183165032367259769187583237655467466358372076289699759853367918293347116190293442627597025093652366097512430730338388676001511410127326847469678242109937669182409482872399716726177883925520605490559890026797621301145253845324036013131118596254256743032597093480445095952679959303215723626845885919143298684095016478830828807507927431391090202605785945209558664349137676197304728350774728448925809548864973336889301264503407024440167274205271835797319971136727993136906449962746196249695277775727043737992966630880218396328041658494130567137076820232049749380482078352186072567293486022887940380917565899958154680433661387378552586329960621699382952750744795899569227989660777430338162869531153136265490427824241177331003808089777400499757576929153092731554916000881767293929558073219173293044825942351459294531917188008251945298451113823987212250774427931928930879809975014866397711537502108481238064817597065823847684116430759767125118872781302465407080642663463705253077954315492356042990250346829189641873945593966606042438342587522462275166927200876693945929471110193299743840478805863918885310655400945372789778469103833550856714986578292827727062802707674446926158595384140546863100713192739361328887251297643404729187178997392630407118084924371177767377008457114814485906276534163672993511004804714230995569625904434350539739227585834488685469999992083193979819083818577611131716180287086006186544971757332923822074465567235215325942349208155140134691752123669448833402143698999639909391797909116929088643397856129125818833039157738912238256576238307733503076686106204553919811364686725536257165490694412755247689335783277487208508996932036273950412040557938734929641359619196757454609758385355742116165321489064561229625770099170708715597609535617807544817619174025823656580971767135740703910019088449619460384366639373264776999871487342933953977372881406903501895122570481302351749351959747836939345013775569400481664895791080571731402323639835089229758931306577781960048477798418528115521079846558799803833936016873410474432006295064291892679828340193739075598279746668818274005846875111537342694621553513712470111689989546788829274659122594298274706595926731772603287355942893286300058040738587419038337562113273729222533876597868500682185946481383391269499775502716847722850602163711331943675968666021741242517300192254819636230503492906978885859502521574910887592280140219724137991779823318512269885171829461946366570435157868933433394244085703346752169687954352892125573206369171236140401269792280931067110763836690588017921410975347550958253974994085038956399476277740894566249432967032105811783794760831089118314509179318010792127273421184547966627469359084692292252388606129152382478444145494887910532259052515354048349905051931003010220031269309941551110333510975948513588400338510844391808558131034963887009854151246598687568428548817797947049724883174084564015146583919458301920060648936398349778137199663903628010746818624178701743479760177288067399412359602741454741891556257388729148783895214808446032843547096908433358793001030423273635978415824419469492383514077148420337518990689679357062346415374220382463499574950346297718639958773900183741643882810202204172216729925749503758970981666577841747018845148261519712250443326313259859141307230624592700947754660111395156830239355838233971049731874908293940791490271396974965513954101053619221843135447573572568242714019812998967433830733497153171984683377710394315188910801965443696417085428250698059724579853265889151950831184208881828717051649853015454142366118530644295862388157422769605601948626312166103150401136729237792350896145385920777512482785054961447293843145163524609307202537675891910519184978547097805516604758293239950452112986695139459742283409158857638075500625905524344297081778406818827302809221528568908616020667254508824583112755120416944564177773566708669359055531403411093061602522894850120907836781664028538553733442194433264322695074165981290399185914334778541055813473360956265652879106538787510451415262419958935606523098563408194195387661479847239017432181625976218438517755315021157042214218393409277340028390754946568949280019317463813549540004448450890321426879358823453329385614527826307636171542176829809101735284305504351384403636779848007932160819497270303371905236926549790020305251409141375806320420470092788550259910769663483378313340003234363848624671877795373330344765016659073645702461941479275906115226779680138129595431677182038308699589000224115969360301354892150621690491360969009586435614817283348418767173571696139105845464921308139669925905625303262497302787430943765198114878100372831942999214756095472881098226639892047173946899329375473566651267943550152281233828081548697969613160564966207437217664004448642486513722511366601275784406129939672648589007631398135479755652344839084914037180869069620289316433313267903175998519478509392275034563821753007829329835133244439904397523716328051482221712180332351353897215838683873965546833707291078072385469582849416356181957489380637447163388203678773303942379254732819342984434071184742724159334484311839026906018134938456220241211385324483161341071685357997222581171499690481533251810585921865743262311356835183066644398343763484950229837263202935071265176472921332021990497068467204782139981228158162417459884724348331518276031621873601186222971478959869307038890721841818750732234457252836285381612814099900019095439254580191507618517308476320247853375133340468736919479605634445033251766167190592491064103201209581540137955881996865821597480114808263588862396993116303770249547235435698828890055714813175496927607051202401165072436067405904041210700911238359014330119894779012938921232290056015699928596464037560761104051726798753688767539592720343749551397039383821522514446629534025602200329325287844526879718509742762884552269679945173845145178255747224662364771338903182374459514950463004024943192335520788778221884092324149137510401114718784444937287944185940954456689944652622860849010590523075291338841489731684258198501831307025793147250440430678802681526275951897135900628985736952445334983496164948613074191870055030290389075125134496314800977545570587191658209007198824513325648648394889829815570638683364834678009882649633419510129080000212060769561762412430322672350333972801292737208872106273545334605140692900886307014512670116252460331246880861084223621224803559446284439818958867892005359720867038318636235140373810322045193544788351727590126583265331623630685531358189307225206638103737514614921174086724372348751154954660880109860171828381574939372147144579611290966548004978914042666399278774798328158555621879198467924952424951517012872806882408063035598565076058486943338763621176131467736986714540463464425735948806572635944405758000813338038591718787655952654775625559880539215119834329262176707013513177501224303929769473355419142005489324881991277611621929858239152370677959406220886282421047874329959723879005640656048125923493596448057830138076691903177964676351083611056724248044267663787598668927208144357789420016360651611346027321955265166342920479122347011334882374073645220148451529888118930383151651813575148074168656174242362759074364915127489789364377128014365214697369933596554223867044116855130205389632625863566537761494532946706549623896114651283049612122501714284325724408913632938809497110258628789694995291379235310338280245400680713860546532278999086876936291731753114382590297332131120503756661254992557865988190936372076926728842367978860393311729556246187265928777862838544477188352904715776631677510156597566997005323176441288569918895091881830188742808370327805850533414252380012257684213232071524058602341016641253114064032173076864755235258573260256725841197963509005455369982285060011105793183901998913145135867348492007763207474836089405287007467519158949658872726503347786080320553647192195895399708310778315879025141600487031810880851113706275927732358803017755569625104555415039571249379414752438769425914573174515184203146185488987762887444084237047215441164311257800737580405166997099912425115958507656213784066680664559999199307086236025528247441055474651466508967416528522006933054877164911819035967336250620005100480026951455407270274856031088032583604923862673238802705689414270601817548707860547693607812955232468598667499363014862712516177352811140448702186255225540391806560372854468895529904226951282654249362666750535433594553813228286466818771348079872126061260656030634646351583045365548265146198542647992018957588187056674215074763876361101769758533333493026517320690528467368585467066072146958300245128447904285769686879613321788565088099094091691413256339157859744853069343113699535250329144217064393320995406866686362049733054895591589715355087519238513642651500736302386628973036046119267637717395046338060871928491772747095260315685868071324445667867221699846932223466645057122791367215675617082917808408628340334034291590651779414127578656204474539797885431890895086796400252184435460528973945136400651339602517944694924919531907666747824552396898720684262473646518445575564039926782751266391054359556178269193453885684664095124450630028713811148874673748617130329607603706527310860443058359160742339277329698491812404775273742736186760596856896166454143662260534251591975113167763290735051747366571943808560168015541451405856242870613370898726682661382533680214709829968125043529424641471650756972535352145463933428559793588039654118193512445871462651738094562599115256301519773082141126413459271509150829133393595552793608577850228505074151148220908298367706502111863048778574397265081593955697200146889452308261340523571134138383272878726125335371671864043123209501065688762090944474699322194431476495363151682276266277307403291608442278421821640335471883650625370838172190248662567854022944361516065553199019201137998394591901365122157225056282485493338379913220358681612012588446362822299852224035899192512476169025995434398750794840220237285675651630223057707038254126900392317893877891918568858903954362823469943859392545334326238945714156940274896760613529759321239614845366336902671122993908479950758209507312484202397590826173119649739358713814242318170326292623831073707796821874713393998349878825536193367068300708471484237938459935934050304276475212432993593732735755413032938272216606252790447696409120095619605318889363474769210938734939512223295381958942863213895452940800009984285960856604958185671172039927629660805637062946149819032627553201717495060251846750492835145662028577375641201566924088568136810904416166519205927845246974466281205300430209054543990339727534982881342658442334239019724861841420477315645088370748316691135597512925098098775167021176822324742255439882952016076922907284392492268433899291550513170615399578063044428031163600755963230286194856168792137878361918255572941233782731396019977744876207159459560369847188059208590037604018953131054424524254326399571840171457133117663841635062280256905691983296341279704890382307596381577130648096648515879732362327721223028602792708892653400503016373970831560201809233605766514080156011123060323040205720917501566541927834494022746382462419208690383700353932672511906391971238287929683658205904098630416331917434841281656613666539912295251714521567530188543007363979399396708867804460685076221276810563444897246278429002313914629442231778739033531059026667226100190661006705375747280309717833314342174888229523849805942320742133135239397949352872494906015401451591473181675165538028892322584442972142766796322951656636178255072294407784618561514714454979787586297610959765544191654161300126777400927173949984467143960852883714983625288896291517950285621277423027331856053373842024418218331688684473765758980336771118092721023045928083331864662548825368487713359331913434478168333692320774095837866977072034913135281413548685206615837437477351177474061979072083422963081442413536803520787514892602811901250493150015731215821398022795059188270277587716996270424170945723838146647182822239987002020011676896578551797567981739623418155038216123038047395577206941344407755260574654564660593194372370511019016957399233722383764921859933124103937364967649669270924186227897588747562431867904545912425510996808910600172517837811429014787880991165367914784786719404490185647968680898345081566175908008987943975334758221718590377757925179700154450086510658561308693040972500980974408634132329237940670649179418562487298209187615957104975354177179517205046070528608116012280304683069576054351733565358845383191549952374755016160669014472776617392292287440979634415816662025416239043964674011510932358174523146089013460941582158427522160408006382332447498857751136838526799634769936720250416323949120795250702799153163001842418816511345402441249074567953239284968366336643976432276200718260835254869414903335924610360061087101116950677016362188570909272190466479656061883190762327233612939690837227144623410773548069464307655707661402783355843261617062620897839257162174186871651855679537508036547835459440885926573429073096694082051437585966832967710224966959418890115414688761327331044984517164305574240925926838078100709317634028098882869614377868876510702440747363291811882773660418710574511235951256850142771933789453766646103811743947947097064110934296098836844381908196665403532132659667802076302553997200036810213438708491626065779986823136341586809857094716886413121479225421883588375962654649598334534516030045961742967758517031280802241975190234345295120861148025222755370146730906927437839602457010440724178692827771152570762178336222313049468776918397786185907097475145494372391604660614027671608342994892919185585319908214616761863295550293194382082964821803398885739196568728872178821805939831411801562545458944554036767032268177782306925089620751574460372932994898287956408242118040256051498305448037409804646213994281764622601807221349486776347491445432504542921246729017521778816789915092934168353725139499749296303872001180540336140585406352641022516123885785891793220046709378581404396230423385056700304570390056420166497774988146485637514433118424736192929460682544785965071816849322898777031136976788618064806016499686569381861942915047031950693468948022120534210561748033331655452048863190934757032517523694382600657144512808772004569200812320147578811991802359608045712488076713760909825993063662445860314341489891373650921631821652770272094994594846113886242393889860213366049186550543792876797340584575486730526126965956755106938581333913692820489451592501402938225215394774245460276071981660163906185532087999127461268909924040131392670917644831592226817877975545401645004990661537103081611129233519148108998529132651464050914647900461528622575963005781123701043871653187477695250560821527544749187081130235472598943903169066360582247335896092633910866805127691212103523787210469472929032782056523376647508585528982370164892382674064315735965934909998482927924518393258328924848504652549306149679471951349052667699966922026295088095186143499146719167373608596597143327531293251574687104493198257107427948487285410762335361701225768191967417229877028337387968066593967998221285157854690261611610070819717988814340636186242986164270022571637815999835805217843445042598920766151656550081730347308901935742398949788698593369762510648099662450504832325745226691222535948309387784125646264181259355285574464238810528528942507550215470596292134699520339420343783228901054577235120369894791334179112009696290211599436326664972796178145916165230171891429367112484519352396250002449167741869528034688681240637544075103613675410508427616455911225504524959916206560352318936294474719565580328836585802660088691093493001397662524223953391277446525744549401426899251838389436988266844433523836472510724867338608291181041357175843305528606563609310481171305178255353067406385462785501741266771745005121312384473315837668853334438297300253878240213153295276122240492485845652865612348517076300209046722162716866862080685781626686532873360630221390239241766889439924018756509671790139407448028292533731642738575747509428344437925871594992265627890891232090502678358113064380373905559530085787588989303752916570885911444637972430661281279625053888433655504858740558258687793622748629927922613523736949764698192021983211993835414650576615107881983710093578618974307620208543096587935486422464432559376871179921013256722113277660203504560979297786822298253018842184064964152118677765590537981582767084404191386723869615544736296507351991028910058160858914212416076724346169445787226693222666229259104079674559615344391724483347283118921469822490813664435800354507610189106286786349100064655127682252813320353116629853550210067630663129443691551555793464739075466823758543797447136102081296696306895397033240175581786497139532697050715322863549074123123449876517789328608815094853483773157490829034707490611192928855509703901743708384578824515688580542216909334359005437929324360010300062690638695496253976069960321714251631175283279191324561670649863689780332406674125006680217253596827095738755051149310511980633654934298431115940386587092217003859924844448059215512338149096600302327449265911672951371628577247066991186080638296735114996739762607365701232936565501248795686823528761747051523735648992075909872966748429079774629643228486876111044591454284924567355255371601286758437176637606009013474200040823621034901603764185172305366494079134867989479675602804552064745915107158705957499503356757487431813924430812831281173053986204217444721909462774481726217300330521269862779387254684351705393865026971735336401385281047106217639983207288999961427453729949421780686677739570553842277468480698984526949868275575049408329408462315777544403008201304241687870476952665015148824354010759766235371890031613997103798363581989569761227149589262081209376536317562235060219073990752585038253183958941306195729221533510541024290652589379760675805730509431628125370056441964157487763747907210221812312380470313927424110651357764722766483539495037856076692593107083292091596151090070924160895538591710119401064601382361409200182368025011475438984110235609599856427148125288627140723922101932191635145971098026775550424055427323983990693761077076653726016169998739816595580899306777417257406607021498923450132112040410184609642233167935173694342991875705696371596630434076000932030208653401333229014517910958465941847243368010621436755304455407312284444851517200959916742052476264021013149740813215021548797686784126468471836707760420438796734384749695948898214496361147399482653253507714009924798288034116677109102076677835048052152326064828541900013308374885663642648477379808296042320161395960838004988182707191032787462760333453979561799810696163151793711462019719435907125381508594215743844481789099444031903013858795231893883243276124855157543368409087557272471509112560476912088931746976939680356674387083054090857849921314811072641747581636822959794325629538252614113280326472183519558832009947726435163291985274264865353494664538489960591863633611527180403515491722307015667218935629055350058694073274208796669390624133434746377089923040124682418451489836768129552688828697416164678554430241524605040031668893008790290242991386104310067901918790146013146281968207664995304230899439494362159322508487735679039249448845383904457992519819542584022470589759338261411480452370756299437390126871330996892394343801038255324955360506213899631355969647584801066820376613772581539535256333621816966903350425539183674233333130676469436091594227255640237763627875044348584760199983177790304482158703716354769140679481019911999688251503263793393915057570983029800467455220958780884217267207027310585446952611704364517984957506836236718400650951982835257994770225348941650925065029661248674218810610098816365935740237981803622583369577439888260047481500781236163550138900036218404778899037185338425805916744897900185748591750302851556150414339014680149558953914003976566354783432153506624703377427941692292559573295357008717204219587741117508162141007890798656911952768316304703536291126663795610632368775621363188695950835633801960782957349323478581918358814475752608236296936038815958297120559673492363755123909370346819515896740622583629239835846373520329299915471513950325694308147798945826183426858310195188233284266820042569132548441145564173640470643770126695652581982413515059163903228073103108761736784428207341800616058222420321446445400936250911471463000816311954315756553214215828301451058714685203928375273190928553193426383466350612783373318847705421903769043058703863360437831648914722616537521563091054912775713535996511584980686300664666918459205929432182465710792159818478489091827745461096105411085877901532058925815734435956608849591499801422152535861544445430658514789354301221895769860341742491943460004288102371613139254377396833015802793213673332914520059166339459383357382806738029926349192610638769109653764876278708523951950559692686961300005894398379628987651786855419067784451159276408660136294857604256151606645589951449578362221752879554431532418081332281053016465383001239805785778179484974358958899395254231927753710031411767826225294473832576139688803833740172034326973995662297202709701193057707255489626763885804624212403956968379184051751262419663283884566333977871000657583022051498497243817437528894789086917204298133820437034166697008181362822174118309717402165201308706036037758026681623898569655877089782445500760285428178327995634340753192228375632572731929639392751647531158249124203347162689926017986974583676237863339492607144951792526300909778113353824054011574708987668249335828386070882617343945783203536748160462239426646021069270403964330161115139040092296169238467735022681667573366876592217714234297902593023789174546213047958344264189938891091450607734170216805831919288167717249056202516416939756634836138905388698939796679399107001261098410197055041690319293363108180070213453347800763889422689446016820365470365665207002456208011606851924130334511317394622906319641521922978800343159501005924870792162195930549497090640032760977333671781358485110025638467007913352964346399354416884937162243865497996765245895030399951421423837618328110113923981102850580925517758448758831783264718021127973121748285981044151213579649344356602041493501512732827151093130108300085399089737451435730772277140358979226723232687237298419764744889998079556257402628512034368614618334538558830737092909111370984523759686111093342690986387040892549795062526099696835164197431485342593193091285308521472922514833299763909810646109387828905137355117216919741373076587883142882798570539135582773027935298033693824941821610515058218238852806122096189666886796886073407277639151302681637217524216918907016586601053494133580811306896035240431136499028375211750981609121323079589055024486290472682775469475547587486552720022170596385304118157015766331107822261337741441946256020067455281320444970999085214060684374866822444772327297223137162681090130667803908677810531698755641765987321474450711033190181638325652572040767390752780911566464322684544751837811577482595312491741199806349784916604332530650894139093558708332206595613589793695710709517630019166917510096726340048377216456459874318991802643368591152894265312828754926807633967238458271706402627397872882653196433244487403068015724344685201821882146600106231314430267068533716172828262002003963573231354341999149433961304684263614161076568550316629080071312046357020816552159230341783651232288271216455606824293304935991059741903549923895376927384824632926817116182713007658664450142362342063716393724521030141518883575126761067667810838054479805741381409786452771484409526231229099372560051531290238918236842343606352020394406418009981444522295461879417957967618845159217532131201870166440610162721049345569425734520912289134520809694215436630263622785709171157476381391017373626576095690854977949092807903893421198694411294745044100536417460704997752986777659632184191378837222341392864539490549586464144330554454205635648247614802871104956718288868310943390687856509596363991800182372111447455015502623118901974368593119893707084220605098030960404093392799125773191998260598135829156659842318059589575281108834059396401237906241391239042934949747586798083618362514059347593496781130002727848575440423841205939080659523741907721499672032443688837272127463397801859050225590351323441447347085525200326527277977821352942338704438482928383402165680311446850182625234562185737356100690259834380567416348730434612844758030392515449296966974421591724557372795143079284786882287238459747714043501704839188825020877764706576448891149924014266339781959896680969411355588383753478060464207048082709342681384737598800667898680382234362342815529887176408785618042378493943300377720913168761373237296973887906076308538944913934177912022912281171392091111261314079612359103284398743901758072552379501902844152192476617591649629621547532373564854409647118092663157828075322253487118533747571302177072917232396804130040225256463077588776676719794849047792274905907834897257007503072401868079043229545349364388701442780249419745867445486696939925191199374122053901188025270674613072095863007320439746588321171481591828057537796971532592810166687689711873198318552186870277657552867180260168343946673299492112954797968858624948920203838604120125502644639791361047886372821616598131447396568154179319326962716237293887595929867022504365813495935333698817181341318304593434398883001341415585537356769013749058776143903434651398043368330008529954156214529802452686186337709718910936337764106603797838169651559045365722216916422512531759018123606873844875197843900910416772980280438901541625559498629714863051705310389222972461082831542879877865934302229517316241577560848966991033369984916030760145428729385470061953760159549383315244494601672411998043722604302636463525816231492235854573592432125746262155315726339132654504772993039991719287912133551751959931467103185391513843357077439829975184835580940610306071112507487003240066756863047939960470731246478078639349251568675541800397699541957020547767163888116926048362945433892088444199845468329479556668780610373924321528580327950581686939050429501658683534590681117481296062258224805363816246026853399521255191173723445379250908060583932400980967437772011656025386162278208687178807727595733023697731118389238707073162962264659261231055323326168010102843029299691879337746110574904567554612742408975515590282177763713852276888815594505158710363492622241137422762799151995409705399733252507269277275108311679661764885816589315123814616856776622346460370716359729253587195328013668371506028273829292788028242512118736163488271706542708472395189444236895677707767460050247840692486680128098515298611247639640990629900604698093631430406293540107562711810954506668989713039115523947059507715800683391091675411064258187458296183771958720227454213856604502307555113690354987212282548534284248976259019872699077899851090204922380609883548130799659188135404005546148265431997634943063626731931763006973721762190813984172050017775361261059378167741335425065272348544246045944676478431674643787752219296990246073027165567267167447666057961216810339417198979805033666434203050700186306413546973334073593933772062701083051843971334660256868148831384474623717198004297112944225388945958513834896781864640727742635885131405345054417849158051373653495091082434137889959573031895544794140986286302337329227803077999247671309606642147027948686603398929264896120733624860265136995747890897672157728397441578080077796086144071363551677129766338486244894158728195812701233265630874774927871039805422738090192897479153591009862134948980647642139025912112624774690207826784894181156874245563911597622369494273131899556480930131844102826298252399900167013073714495599388007373932037087674329330896025668940773011269331524184105249946793252576400374106032785149050676790440309193231128596591168074482064962116696607847110849146064093442961470905730202144665336394687789886065770140377842809327444992312166334199142405331854728237204499401729019522097242633752598713796052989799042169388921457565910231589337090016520958525172034768470857479275013546857637545173222007621418331084205116590172582054473729798181325072984232465647731263353109511818812814209037154903640280039043030938090696688197355911815061472359814849932642596075214768519369393018214015904679585097745675107158418584765443696674461691234726801706698691013877556924452163545218078660062609444304283437570514588915960082443594618553004889398130339214549820603709197227621361962267148451691686484912405152902417932044661711848063833112270418219372655252453950337877297936046477188452649295803413976111787597285646675753643581615829599540243572512259582004829440181762273391233775342379824576583566226913613793353581039638676190890456452055819966206699507159720573856173559396059019923567766761289026066086521462301127579876689263202601234003617028024882407744849551360958802632301744047692077691937004749269420970149784857108181241284215187126793340379266421619086983108089734198215090446181083835638644821087563891503609123297867772373209798090983657134996618281651018203638063393428441590596293112768640135031551536869538533493628277493970965707089951960444883386327899110222309864027233111997564134659948478632865038502699451274665860084781102111977042468472699651380762533176686989351622682009597258101491206815953136058927218055490084455525291755362685498199272160567060530688444752088276890174523569249542982026794642433292108552632251296487572296555590234631490108134178773453288790593573898697940963505029035636188885201175703568509343801462166582568884122644353956789692594201002859324714294197145875337529249663730168450183553336909294036114278651684716325806674901842002611379073383529260253331497001450512899473870987804451454565344119183165438804536708533101790671743642408640102977422332233890669714897086616249119679275882664153345369056930740027120618177830771432350836965037708966032740087839400674082781059792172125207384377912146746724055262962273205931715936772107175448120966159134101593641776908897683013089011608618321922175305742115569142246583815445043454054312605733564219952069895481770145912493527758803984552952264909899692987636242558212225946429780343021583931953275867091621475461559088467594649631821052725124938505811318206671540903560714565980295338586583544376304824695888066906902958100062048270166267172330993626801445249287200852321323435013838971990649986741429601599809852453227893006325039604798635006773109506740224583547672814214764458185597036323090636765901731316783108925162379777071675519684513918384963374536427384434314395900559840105328101102825133649029655226411834099737011731009078011843519591651898573137831333133328345525069838003171557739470386290508441701333588764783921332918249802571184787559997411166127021077815178472411980836405589552190133547852107358786209644948729473735612134757459766513600647385385404348920141578014004157049362450398323896823638893424978948300828574627660182257103457362922466594607599675835584032525928704342859550607367395341500459486797855924193515105976480029277226659766764301127414137247629091473708165565528410054534819826191473355322030418581707883751033778554962074717528124079307958233371909801048742017426271260593768744500747488210040199076951531431117096524309191111866956512646776669212495522337625343753048511560503924801805939366163685595793262523250560080090597640387792345181868308337973645803529514768336774776509801570247501523152251738721464897300166959603491291829165891239476226897995273970766984823387262565914322395950332728888467560502293136340878976666261471304854753101587096113282879180233033557189815984653568701125993854030208487980585265322768270911950904050691704927382709548035620558475691362503372125908217020222367733664959329989429427721977164460444477984405760336220355576451978449595159337216160066073746360726257253119176431979876472423656021055391690123093587948392780437914840554257421544979017998733306930406540924548387493872929445141340661234706580685892593355282985608131767716334933648172533236590537684659208729788375122266914662383012463364793919534203665804154230284796147296824226413788224634231558710964286100920857927953065254946666772438010492880474241028239001730595863915586100992680556340899155790829564122527619526076539171684233537359501093131076458991979401938337342597696027358970587289258615946715719253926413554814872799671897304934864536800166025284646271767746817664393251566194281424585198915191606863103778476406361263705036886252977556325663550283009689184952303707933991747429190103085250821451025512251606258755867003209644793948566072145071605211885357049601423685109101261499722341118778095761812161537638589194637325557950176691761811255567278136457378570773833305653434787828249496775607840478018343962524896046242041029405182534163094157318652274253250154437674669809958210604442237914677727590855321840969424891418433508534727373348369527430957442891492250560234154452895153829750700822354558253276156854424082314378541297361323108363624119091693688941788611237147842256746113372272813892071405527045494578687289987050469909715958397799223020444183234157229795268632385770376878276181324812775625985175603922502025706867863409345339175488341657689775433629153810701873058731988745133555867738895294199912583641852388195403492895897218476590867733588236228581280331879768171541379227458733641188495237461119333999175651542798959095137130798430816633577370054367277999612496966216320289848024831097687236446140382362383427933256137185334030848639712440068801227097266739628425595886187328560121398302343868986365198585389960960699649477682651118951916538093083030296673778257364977044466815156550317305173680895314269417667332084576183040124646381403072380613840888060629063172713639788119480794339969091624444818775457103414124127278334975619695717403455804257799738122325993775893180558368425794634545881246960906722545091542995355555448051248419181992465628603368948818857727505296157306808598745596397629120530832401621595622323257777950620547367861712481175693160866255792459708144205821119329133721131229497449729217618019947857755327050263061674743602446512527822881655657356119953713084400034162135325029790004132150483383136374579663599482962240886396397156307766250253305008376053414532979579084811910896252492506891747339434467064448066436113670613582679567792682953913325597130363312133946848003708778151299856480962448812547794698883188958840182653437282905525538077706981210291004930670538431298552335596627917818599130116238308992269109885753142719107450946223798486701712069042619300883359739319100675654091178949091660852864960808591242528966793761681979336208297004256074698353781728485150559664690812743409502127699458507819650598760781322345325535457132321201215151018127905248042948173510439789491192194937599930285779971517146439016978663669041653945136455937643643498787427935966917985019884433002538431932036527586654471430508623387826634777303756547880455548150233161767796456365957050989513926702506405528614330350456715112853592326466400934124655561499303199893283489695436838595361771113822114370300504364237746214632012049625995291409458862245341370869628814970908767303000177257978542477727724181393676531571561039783155619575787936727962865350849229930480257686100732901394505608449648648649210817627322323775782426081545248840342766453858720521383827537527636807229757580341990783669476346503526102933780513094467962408813387534201178675170930563371270593608321545123859035863931710537179288289916845083943511267674438603968352388706734475767149329226720209113829199996501426787860036393407525036675342207979751640604391432790571509320920673463228346587502890628016067355157597310615960679175320041380908024500301104940385327396912205643239348959158868977778741311027381327106129332616338871212222757529753603554868594038398667452632003502246261664015585379744103781407728285336599043225102509267151561278047873512859139356961199003121884134285797875104114439137812878304528442540191268539413626557344401781937297486105385570048428485991063246920576379150877737852720668913301274753153241878431761804363064274340248842764959086073888864910500735310732908299367481441507761288827641239139413603411770801406585933902517117151650651380466609993865926441126421022605551140655456748060892747658967114632347970588957693451076441332254873677662441520465616823788692200559722946058560985664051414113336092906129439749946420430344326506131441000306651002196644889639098526150292640020057599295138547922925237246960033164847014852137035769238998800116318845370571105457848276113631364297514051655530380593500665474077788536483047336357040808725754454492839923301699004399673479493523869279458788412650665553238700730348923481395247141937683398784717239464758959257370803368602180643286588165839544652989201479197762576348576786313750215636748265703333333208287476461650777395552859471969996603957628980930536401440116575863906553676555241918768082321982013223047592318925908223935635200373827855167269861467726012869596429720699744608970754518803353342344319056026623641785505541203534139348748926189095633845285579712823419714831295118741212217981750263825989639031875500029630114778369831863891984302953899665603079750916812455358447060505415892067702038029316490683777071011568231199166006857445425095614102369717848705198150200209083043259591761635289569950578043231226733905639549364427708754353789635982059480301903952059583652805541793208382303972270123222467575727813493347381981330487888994606361462796093457874851276850098353932742968909849423573666170292135582489265535161838642703955169118729969371450276798910322448406662324968599019119045539922548190304257392356026347013502428470460142176188501026614511066296647417592270793021779127532869312652574483285939400858459281871855142718627867715040289853183444274444147261834380124465538889132514613447491954706034581119685971983462970713850185077311438476785819382684558906212960162033549460813488893619332449568363124055581771918138163098674538606832539557422193288860442075430643757775723188381910397316658345604777430517969384126221108440963787402646732797023219759582543114702457690047851150027092538631740019515691733162414980477450483827630508681815685478766727265992389394362487531573117004632702910982321628285548659579642228913778289338546447822263219097216872470075576446363522724932601067114373384347527524069127034875901240249704112073667736020551481009311085862190504478657113757893435328087670700658612076497702150188731221009155314391176577828649310522548312735777527136507810821689532595646723666166201819458937402773614158802034184409808115350933239931886669696840441290652315551928231649532718645950503912506459069218946572261842884346543427477031253691044339138555332792506182510274935666059313937047752624692501354138823165002461280011442425234815307731847497576411106295162942998090835293685363204109788938841451491918434042167064092178034281136155899500886410560443919682491786933205477064940232289250096148233294192542196352103347929671511312911880586943319681539255507937297957582009034889621602177385092390625988957684499767472776281886650292898164555449921014202782643260455076008790516168860323619618089442683337341917693628530452566291742134075804323512263615234053643731235823132200746288819021631672261281975815299253921751572109547405755893235988756551522234334869710781734222901714733252307428498811869035007920331028949286915103561135972362026412580003227532371002855881441221865077892083325736027253196534336974807124163860134276095286808893824669370094358835832569457700628799761121752046791204095317067518220051636817115342597327125051840365058851087590620716654586161534136193762576986863573037429642082644387608656221756746226459311209792668445194398498756172486015468312083155986202145457827194616422681892682353237804613494193455379227056486259647899515467023638205018225304026551571965239719970249617628909098315559212165205677568665455230384401809442726590242722614552211095576407213882709010461713081387452325886313013339237415841473364202448066596364441366947969252631890921937400695738191523756666452224024066904722411054424333956216307174911496472153248993823121368837359070666120748363548322177265420344173734159908898661828285181954937795615365039983562883583951274573325815798808891070701899487060534425516929592990773008400950203142020419413397919131789064334619879487442747673774059148641549696824041167482720944693483400008050219940134915638836519911832920822620812290739929765320923713709526219277299780203981798993108239534588270118205040208160847764982911406534777501346352138491538793714860153959987294236640445266075465921490738996501100908278932407677914750221592444823010770906374529890372220541479540416872528212825794628952486999438052267793621488159883304731382839743585608677143010137682087117574845027936769503869880703281245120522039736916633002886627862291748441401530546838230163256908087166319357562178469118769772038724915179457565584538220610651520066500381439367561442319198341546047452059153648178072621444471758589572616235526790900505782463505206256599644818741170023245818533482289773286570577710257620123711773677803524694675249281471300556432059455424738953830161600886830167793226084190601354681272421569946117990324721293492823830452173228733020951242490970096766788837763926556338979077542517755488953954617971925512474537687361754678171711459563399326133459880384936890833335690564520252120261227102988769642112280392218611024851177005240384969223623931347988170907569981959865947525059344838511952457427241962821087777451624913765167472430799172236532258788927081313951673180223196106874228033612710179483179400916386962914952530063719314116128057248341161959708168889052431049617783100991603120629877399005947593141328310670333040671773237641168806267558490618272800223732552559519551367402047690995419518813559075147505367924003096950712578965129580831571210177259373179395469399655531572619555281530977800864340117078900966865023531361163751392427383618138686491979942252135486457134622056081681517181945999386309331690615328775264615532197576632540653607507603472719359730092770112610155654992778530327254719112742352058991222438116872274595493509050325493801466014406074345593329776292608581690259977386461723503402203051683537355473028359157604261236744585107786775650761884714250004592520794901265181640333800671600285022334408832844010948816192667054300844058668817560796608447764925785388690899434037278561095340320265129532373101872858416500705668843357639979501963166565643573803912351095989767305222572455195649482116135380407497536152238743580178666240215403179229328578440540988527947577773579550591789507994084289832277991566276542763658299066926043636684247174699399589349599566032709860981826446592123171799678070204435758085142740289164912350041016156035459805327730012404821170387441715165133325125291280893770039597454276646664865739515248165797588163219640354048793704110263645035511215961383904512391090609389991136416168259798653431619279331871573415914491800413239798630221838396468298051579598490146909393355079724773245056392259456884158890932457334903639326302773831691211846838520847301111784969918091002989647294820776899896156213180434552853279303594542403526414325696923637349095286020062545885120019260761016524100925639668598320529156789984316531488247230209585830599586352461665456685396725782203570332832131251922595952756111031292918750919857078211819742002795915611463524400987661459196168565926018703645644561083029443725418526869417355774229089409007172870863250935351898316593380570239229757371973708118984358555011312061894337583909242199547950165626995847932820093952407451408705847900377782755832469061696919117942260320897991861266615627084327445727903651073253827874783959346598506799035805027164858505597396385784698381163408438794998430942006310379872585614818026331436858475918899816167429436598403438823022992031700449805335513059477259041671602743467517786964930558011916231495572254919646926719235371903044279819994446018173322295895094531934655739554013119534398653487853989068353145175119969102548982452578332368265413136029466462523399669133420322268725752458196104791597398163897226613414602187407944333751478782659703309580259154294632565890695865722250992358302417076209319912860007518558935707394407185294715839843432416511196208319786923613727497170270337224123913391797074750822566998177534118325221430406260062806148938260015671737398814045058046317466727916028679924262402194613069161185601623572734508707544643936279764744338993845821411256087524965341877876013433077864706133783153853075221420306178524009430778090362496703953130717877420744149618878022845642503088974199599916554538849865162575315625403720984568973108874923635180128117012036166507629010471765624628594569330364656567027916614972283745905519468384974145592544207240495630992690987646118706682715547240167166085462844951043646467761184146334812643233881752436064716358946697746766776447175902756499733158546201519891098382401211582593094544617651208160725836484821264773845094983328943299888102480531468012560780725163363224869808452262685183991517958535153990589001944331253939319221042699767793080258034932631903570128198232880994826782031899182592680944229721301363423934547447912676780811455794900948205690498426658703868069832147849623369264587194614540443166661294014663913664741992696472178963803419678874755016653305867386697547061998191665638007270122781561917374073799381132922127565696738123982968111980464824443157150472724737396509785725860553308255143463374861354391397538915555824158398075896024046071050408063224095179148101063538013694993530686760265875138921505707762236483952506917809206273951705845666542373651480799448184611236830182244808293090615964548655695143902081501579419919662403254187519786101948227108594261778112781191784355391134584254103338629651849641219909046475240437309013125982149870293144987507329213761170341433838887651468147930189917888835267184454895381754329282673994351538287681311552113119436232615706489427541002603511921190671776044783667052744146776054042160967715354323105037544301297592558071266181828365224932272361878915262062956576447139939353037577404196848268722480765246113005955599096413582818882117945293811553497802257809611764114293557769175359295432950614405611733996018039457102176764162694630775323003465448378430124868930567641112250816916270042877206216238944042861208682466816903716118196503401113350481382948610585712511752034409721093633269700756089292184709342832981015240794173595639877575606690839854420049237216506335222904326624139986445925804815279398251992509128563332280923520284173948774549715176407415804311839974627916374877730602786162294837037819981060229571009756508896362221119967888830943935736680517872244369386446835514099903394080829679578548046794940227633982795046815197120475607528105486481181015244119386759941945795273608249582562142969474181057012285806687828650343278731953924374881134940033820286381942172712257882679163438259331710546684806014250813861332684635494869294691143498326741303305631489355078382638843853833500386833947402932878224819227522479064740327783460610176684486717970710958689993015907667946200101317437010586842902329681599764588548517603667595306086500299608931277983204766511239381010523782056198298043138252269948213857763992081139475442665936801415766067838922831200847052719340787843940410914931047245989719033760730508497810815842831421136020367550127162860459582516137962141075483483861600757480262532671791125631712478567208036118209565283028371441957946536002222823901223413405721420048099696218966907811005502933445658898729512216039767632703981609060622769553561164846193228516764776705013916397104800118477292151752329225589312108151637316102830636366076697039895529397877427231400122167918368386554288590059444031120132128955322953565485031039196430535582058059800222775923938469491807002277920220589820675538956968764438356286763090326184221138337873298396789026850852764929019918354541891435637062913131346414127159558214785155011433301327132053885034785067821747510147136601078428958578208290226780567047586413171675057248155238255566416917938272375770024142572605638557201700749730002851314467785462647205536533382178541163751931978071677925431598814288019150660353061947175120746246347077421785857649472724422155212853607763431104244854217557597616165363738844359868244711005618238668953771880236705054625302360953974922663996266080362700043856812224859428524499911926820417517718121835512300827998915736658918173719690685294880436797191865487880365766657834434988730264244926125371430912135201830853033540660558638751024161985761436390691548662412212060700614615931071674081876376067005497902343437683564192829243954522721970568658011267200112262309888504450267235874786089191003898492051728641121149525384520886748021421295253762513526806468127809894123020854371800726230432682066718243368734399789100639203523640211099575101785996812149732842325935855082051971298265343322581180171313824259735995489637575963906446966244796154810081422914533537964864760166403995446477534023153716473341649342919362712152367023867070105654377178136954679134945244120137855055766069951123154674426013920793232455240757355130154239286306585546146821805758090282405985625548850120687669092768839570482257161881565098458071843045678355408751277053456121450078076755313454319858712781996903396506971883264432369687241129718054978836133460806012854643916003206955656404879647314159268917632877501477364011244251232496770895140320806378093046961368160913659680227750673454828873234228907950074890050187349386141648157883496996218845336164156316214734844441173192408801873095866314587469289265711163875450021698800575693445802877158508474636318190465891491529479005017000409805459667224165414580991860797619169383321743293114748545734402532820951883889308396010145265542031881855538879493443208317201389825515312358884863125453224469694923667203320554558592845871179214671595528718623918318926375549122274721865055261266648512092476978946785173842607157232454146922793572942676753997442542174549345545860938841681446484464036146071052874636339758292469068913526555958687359557153900978116094913378081202485973807387623034751020061908514719349739357163091259205305251669805903182716537210331472266275221984760314040212970730586711906031403142125160051424726815178005641417569581395901971541635109013255522099012201738767759351224722537049323852296274023391097243148311624606910695801511596225211364887914696747252401346396235501659254612943881274617981492617810772775299262251541832171050552525206344195866981464307259495488006535792421436880059945922603010584149924354467469278235990396062386629109818320300875086989315632649349378194293857132352465063886268700152569234094731624709151701753452058809668705580751316977511796177031601371090065278694422845099820940032317677024796555486525855472708297676854374381090463591267913817206838346747615477346010170391307314878612646623492842366582008792347451359821304579839841623616652779417959351828067664344111334017190928229687085786801782581842368471883476370752770074760864910053420793652518886988085675709171585056210729583799290404495729073594516659507876692411665216654084491115256008864357231947985466768004661376525983645936198548968479035554322526486849699142912325087377926952922272531737785411921946451933237437138903864673123740076556917996285517636520830047068338033887975640838959342464079048261384875470888190634192566778875661266632725064332967815978100679332196806748964094277861908665892946203940383920006678430227550331922388212979388465978180097835280508705065727722138066044844085984370895704122369399535624811100462880708184546122747227133285731016468109751787224725894267677693044637120125426415045421249303171150018284896991264434148577195466074484723378750448265054128651709212126190381435970578282822866173832076367598566730740273845378827161438282151367246929884861621221291253792888325708103188316593344656721072302966532068539350568930452820693393178239567798047293817835394211538948864477531247580278936105039775177325298737316679939229439185487482625622273729740948764635237053157531813617214484258574334410604222686259462886537750246655398684727298266963503846762418573609394596175741027990710126606368758761281174891105329361214377641357446565303789062101099742031841080738876475409818508472199291444416376318389730339767683034651235619767765533775644760898721631269913393620733241769612284332055904368933423831380764494561907484872178451886654490612861987869232538055293325965824091916392685517202810059452281078809533492042153239705638283805276500124261687704238642755060172924334633244589540791029458823223992687249154010778802442560622822206556871825219195879355734926350750202611148794935386235049707907058647425661855508916999976093565949533980879737056784455281327444880890840883697819621707486347625988882489440393165102799040676185695521599412712020192577330009620643769346036435726467169732509907272482650676625391316387393915519268267303257682317310419262147359642784770403034232304098185391840407547468966813055285079549663037936401866075145556016174217543298769499816254702837124945145813246216262658471949020840065553096654062540002062749040896894970422155715791767493205114993025054807298822807696030145297913923953164295268568218287809819202304651366376337855156221856447843971272669150488919369370011311359287242367315976795277540963917483314513390992803036362059493682874596508279889138021108137387337459694968070200183404307558547940838260359314776615656307134641282079138680393729015270962643855402898704202701693359072875498108038378096531941529625081176397289284706996963738449996103855293712754232444831112555744596532121899592824410102606825417222834400331312173499558617459097709158585890359814061774595643756570817186264757321623438363593596022600877611248971336365402028898204919889339935599048906134462425873641425248786831051924034157557334835049792363778618571362516470740299022643679867643229585611990192081686044504981662893355400393057150002823338676711872731515409916845452456884270583452665254972296239633231846736084787320595570341375163620484766094869225827973290854958449664692557423182365750574209773062263153608444496498902591472668977625112476066370414757772828133295352861326999078031834285522315138854743808555100183484394814423669324101370373949489596504075887896573768868153783150073266281410706880212575338572360076819859103553326239768869157884479555429879991710941526873486462247700647263568961196895547580792007718644037709150361307598107563805410293493293871417631760403097991287343076193893158137801278360108923908452016127684028966242929156849766012180097953612741226365051635594479989830244698178345010868837588096563543808677448881126176490474338654506861248403254308580500709479216777205215343717108728703796713280209268560094366839184340927685268042346571632200088059745035487543429653469919540549925930324217103961134116846313884899696858177366750546411035471485445157498641353459512309157197308674424113344204591569348233886112125439844845685941407145943371751459148947428205540191589276702135068434281093398831600931655607717257464555027056882147399720449938852324718473949916486696858698270202810855318900826034209366050412251464282607624986045267990403806105226622756748606502919498897964709496322848261388720602601592726953215115915820961566237944244960349491936883237945533235775099369911328840093862902871012978111371785025990612797876002534334468796692162286748500506482849489560066630207873560480042559435842239805930325489806959182881610257836661174490032067226586762101776638845011189557451982022417033101873860665055111360343656791796729916594868355949029457722103308704202897889051265311296811724142410429767266606179869001033530923506240543366611162756724210041729581236946335855678242264778257444922295670060108173549632312391767029505643958230492027230933244827656072088317951934546239986471215069986336036100322380024879178553295466650316592058693953622474466827568383420955307387584941259137511659094476332635820275944727905338252281525119916041076823825028073024233557175574122147889170420454507396580455928500315006370364298253248377343367131655996817557949625850409206034106927922967884919619218840163511346813784809782581980444954816576466293479860294439347709274935443357373688726553853624047348009553780750860614630481038635166775845493968987526609292714718769015430348387097210584621778149952074191601021006660179516070139458879313871438950036634340504962130696872840095469826823121758298146253921613466112989757921781769236799178352735325599902496217876013374218099215713339438255125958806851231342199164373361981575376238738498236679317187625857797839855613102200836731830130889255103909112619514902635423279571364476775510169574150068824305886713551628891065487574309826938623465688535560992018434292716366348329666254433439215718157683976210229794253265197944487477683549021495589391379772150751203458129304691095886628666234761785986175118132289982279554545207469834359817572014769494888043918068464630676019700861960675671340717297145333758637169679663983416419745829007380294646486218647469110627022830262014961567799026836206855934430467988324261239510982926279606832163849663043883837825847305001504602869841622613443922970167600768884940661088997075023298493323944299035717192206791398113498913931118770651740250109029206205295194902699346731672988431453864899469792424635780326077618644197784927952685988022573907496079126442951440606888186536672641521099986461091524280679157697056761440288974194105650050472672405069754013100636170270673726894273587588423914743747333349400991250506645844304904222731013000677987585395274053283612703162947058210570878993966926657995416808754289866237192879019235746639575458881875791262821549582936379162114735259306064490202446956883921137036556765516822410049655321415378653339685160977793849100947996507117047889771597213360926962087166855406672857072832265222811303007756962857492283537093673888908187135001726128909755846616032392556572268941486378353399257050616121198405634021335907901503608272675382722499447538037281972277376846182017633871066344980620336253538467207506187272527471941346751405475864510359635516490725883296648018524107565891816977715356154063471598683450056739338943989086466344623896312747548112739174160716307587093869214413687979774869487861138314913781182372788740910219962952680047510193709716889424912271321447014330500588599220585717198512169094936608114090622413741079145119517086338444872358173939767889485752016688043542206337701171009649451043584023207738219172282830830373710710886967344556017058222677067445946777731272354186620864776060391241411710642382117065360136207592794115005106919142875884678345924783955188015310389885119625331105648555017295558134496332979539350125694741974763655265215680986478251025171024052711344262797389969185909889135134734944380955361456503510056442153919983882815198074061469330551882025207539480904387611546484177888277962391361164381392700626346824764313689243975087658771873254143666909815271458641333421514028728306822645202568462984839823212955524438195048075935143863514990427748115262161653065135647622557505189579343135998890427948130268135431177177559100069136760167310136359342154684032073752805677499847505635501938553676536064569234566122700267147848503100404154910669781619886612188936476612068953066792447086993915858976527812509653393880738227117322920061150590494330172920163933060340972991962631162875568571060105093645292388174331496712098174695524415809131386161253430343468038090237901921077514494297212734512594627342430134927802646429746457427624726927297216320269827025804293812073361466872484834045799316499244476457217351084440430365581316870511853912706103309072077452347727228147355374382512812927981945494293013495598545120301431791788278943518548947876084403225138718877809766039869620991035883791647757489258678093885186929037725526968967227950844307691640944275637970281179278129274359117428456565112961435999201119483967890609063078924013001002457098034392212624764636595617462111528278781020063521824209325504917601232561098083110848197782472203512114802443196030387788862271159736124490669185705888945652904450462980896106260051675192361000551513107707530762690329177553971377822359375026277516093719768148746886143944749661326546915790255548953251894433775978900120192748346032145085075918968383373479455562613576541959321345560385289699127452992874417595518517745518715597016815829639833461077357806812686612243208761474623750526304448038278248032187576410655867330069402976660817004650342252612353121945840450064893729014777581069861195723634891803039842070245388128343272710570710018236739093324060397370757975431715271508007816476679283857552175040372224511776439278585291494159109218101900346625680896900399155298448331135054803136915016710859766117522557372963497865993727230427689004754744974750353945407445323375886567125417311806915304576782230481992297290857575830341372282305969801664914870329621739330523903972069691125807400694068989928985512141748877343801939123703775542596152301181154521182622594595192366887956914947253705290908664158340094003149823619318732469291999758529484519896787566207919107543142310307786616249570400431736616625825196511459151938102444624450742374078287111211497104211411722199809514295736972879975016193223262542973174737100529837063273769381523171285962004543053282127082193536583143899196440901078796163798517438015715021156771473904989959596582950362215318893471030875510215242357084242588795108361151084981308477985852995540035405617340717140275301481172945778264400514179407343293411586743183542489159742194857028874267421051969333112258276045130252076743098741260990864597498922689741203389447131980855595259705818591180297450610567763333681158902005665925417927882536962647863931375858027468768434462573139022322612049904882140892005046519812803837126388806475977610327397639447439252989500857432269275654154140785657557522980873741919902551385842042749818251452411924217366789275626887538271565953215100491252818332881493803952344610703036688154850795293885585363307398975089954184315886176113447428012524311782086776363114909130348942947639504816352892303813998741993458318665154452284916125361481705334178603668243872670173614181874239272193223556313295303908319595074807978258598886597731515895458429384641110825326506434682058678534452863172400778510682474424382265352887078871539476531887630608950637162078395428604941725397281306187825577925461387439746707125760039575868522209739378124020437029849088762755069315350204812483756635492024439553747346585078066765718562410858686903791455240330548016923698378434560401021023137021959917693252481444956240718578062777112288345339769386466335078521560219879123409493273619379448542748120638932304173641334296091712684393849181554685633795682973755833584122808532520519468783793979788127048132248447940310047755107965026281083024703337919488082885020273793530740359412488162253997996541321892920487589693176996514088875756019598917583917992169348414403365143394295088424728837577672567584951456157096897530056814365182201157128268845204038711171825340060038587455841039546487905412241264155292726201230583807692041791468120029235280405601339471906926621296365922956653497682866187000590302903364996211968308109852599441896796248458354295231065385181763637282942268761494436496714130621418963447757173303594523057341870254652354207030228792696966122120832273595069882030130750394750058234184661887111370080342168436046599905713027212807850868140755066189498968286039685381816764828209993562268483255029460849226413120051498700632340160633180245238375111368112008113997758285334865164664810326366222965716571881145877329449878653233208081520251096634130928227332218325547906571834647405438693378886321925823759892315348294151017611485829781600402032100228888534162250563878088057176990609651577062695805836021553784857237091152840485949006084720958167819431008448543020226922694317422209719159810988203923188684628930183646010257561427538348288816010761360395644356772432484182270895677573350054761985076428982866628603504330951044679836918108690021782934325290617198117875595604347569963476490984258183279413807499900896372696328990167462503183262686273963681308429822160590459388516815764742453600777858537220556525868839038990083125034597462787002069762980116784354296862302937858395660194333890664685820976068329949233756587976182204803914472770043461203499236611112709334803973904515936136969474780567024700253894831710012788934113313071413961246868713701708075009983720773531718336311601193312745814683725243143722599619318417679453890000424925736760718204303587039306868740548004076789549267079780441343022121800265957709605412589556904097241497245444688835012777653266261739943948208647144017992029058977487955918446444071801960953785147954152527672366207271491121786016460705390729425027869675368561414579606654989167983651791468685271763397303573818968068802984419661622819270952437388580047900336483896498042767167483637463764885030884428389141343544555227440229467594802192259052642539570499652706763200341481849093730826246471994835310146757761536084226196278994957285135637490969168238174999113377541568988821814358481406334926146412536641434871198963263723658541327969239872662104865703191026586315838642196244781252013834014819888709989186397030620159430746190910715554030745616567020850341728174672504977368633765174304289068021310157511304635285758927773522470108830033664559043962248579736627187492983109320029701458533518553658496543815573754421029620745293985998829084806324609474685953472004448788052070353264581548798039277662419410803481765543735622219619284346561572067549195415683816619138592153408855179685310465713476046756292340892309162430228714517253406258905579385523420303813534316648125351570226746284009378771606339443957217437883912871595241230143957436768898641489969291079785678692556512547464815113578854661311733399406753636622105084547667025709640759164946939824503858967145035862607021243356794805579370537900220770379339131472653157116648325791465320380494968540657760705560055076425034604367741204386145102652121442985327019873228186949057722340208118981229432314868578066694801205933267152593304795264936085459952716235363944519154551635117435560828995134831098264028640066147120561694859900800933242064232706510141716847823701863717637344321963974980685004323358736533559689013281779390512921357937464756419430288789529288015396015557933655964578848624830112337280435471414197731393025896778821719735574447483363295773712044090505069274657654473466095205999017283266309977079043058259412541718982087502977150730864089078707009678056708985345961495095816410251404510378911910481397801683483002757574850748198693417784131479593027214804787414180759981503049790381330022225128631933465479350994435564066574889432096176655598210995859516461607437179784484600866946304820262921865402286448023937432065878382716716888934806629963498223941258040080402762276347965027652025926635180003202748964587457678156144323086410392381702556541970049729103674638749894930948370688528084311043718687177395411866191880334106418465965206865617446727875804823430089007691588452334014817372183798646064609631702591740388770596028263917007376330257605317993747021738183727952415174457213573530568493533786340255181493427644682258586835521675523752697743079032772674682278187684485319054921248935823577280366648804505959661745664249201595534056120484703259554178896486019791266101695228865856373377308216877278907622430493468871397421232692266298968823288482344096137689410740707292430827242365705381667677524493923603369656763912665870239120172580987767114672733612095311932572353610908005110083686687802206394132320697692908926924901529741474148164037072099439162206135567915005662419363467544197267418783515254295029955561428095764116762528761568956856339754383756681471491609877977882683481169484570940497924207320951310693845498693800395088786914088712288300417912744197263291415859020516120953612173259529895651192479286928031206805521669229494750337285717740625370151420748192929203734978901549735963619751937094743052786830290497694433115474923394688418955038334072368602961850651979708858391956711121916736939099134112260251509951923347441948391572337206908530561001167373377252115526909995339432041050177253002797570219618615009902168715269928711173194004187800427665694073115501349578049595078603105207917363301431679180723112803031078134026935674499463504991739029819996014746350134788410077310023383809346579913020894533442415104279245398622408772115730328321948971109863421688959256535802206608201706287070252341944835198152727143874444873441217626784272813923326599663842143714035554388639905879470641284019603511972603585911526397497161841422137061258380351342397799226327572155307187329572255181641877258052364601974779629127529032835047973108625564304210688811316996545767087903498215258473391709253503889029868063363763957715231461536135042829592355610128874684916632393775429183003159855366233721608793332309773963391170465115513255299396012011147759601851633110220627929564632610430410950824693264780009197880949049913108850995393119712284805334571599571295502940471212011397146851159074083457563204730950915501205121332342115404100303799131387513640070468097392890704717155841688449516972978145671654004325770705344063412284100120495721710288221907881096128688365597640944450538340263500408490195496561822374767191279793404364111228391819451207279086428725229161846942462078404093233095255685627208105305444263141752413130907742466214914402630763706543081426209268242864208188464822118509437528542135013366993617928218427738800084525532646168491023231943006527549445517874141877118386777198741347215930113664185143685953671389540282897441848638319648639631771867456273828985814362334445850951701052613255721403112659357252599615141187988172780415162470647667941320392262367448492212095262184026083148843622640327649011287266092267941043100332515326399884010602128886065730430206128135893624309159362911595005576360320739328500912302367557899910653827589262882683665160590123907172792155754873724772322606267860743823866809668157264105279875625057315683308935281981282205434123601019640308134476627561302972113425301277986933424905581982805259123264215250776587545802621694575317063544485868694054207521392099505825216727687975237543340665529414652035985039006827927756258337696029335588145372132512049014480178364638751970400139233796431909307732090777583775711163034183860277305584362061920207101491838087661135131392759226152223580969179108562347907396948411180580812074853949110363426665511642462186245119729662141749797419744124883497426958446058994605835840180939271111095210906705516598928352270712260174591572643503787455413681082813944860188753668718876091691521173334845472960043545305724801776031960225658293818728888168950510128100026633025447738961675136950025896965836826988076836649926378101511116056852478483114917512602734833619407431965053448475008256790188333454564926149512979116403491826860676398025836057660416939756534993489083811927086303303761876709518535060770102667051864938316203754446983779242636462823085586486277561741855485545748259051742487460649899249242561162001090719023865425824869283097372759631842042611753708326730349065622325388684802083513682422040245630632041439377540274090591678505751862980433546186683009346584610195015408165224918585504006586112438037742777364309657785748825947018354018339737403909159375591552851911459364583246282853727883030628225642578856244551573543675126148426349157622971685795857595340311230999470843082469925092584884549236882788012300631057055586522414759522050455554083392482943310337172527654993399126712944444700623614593585944551115567185202034225065880500238930046702975700493622751772904565963433952983610305708653633958688675443256230021175550647058500611450819717487147790453666410263956511307482854972088414838659803591801035331171405252391982594031129215170978883143397505298654397643469726249046259350964748788951905585559347723722053167953829820013457530583475029326771684225815269217285426531872268026725190865775810687791071287316204108631239826787808439181184510604727887712125626178077930943758298196622498500584554501072505500950157857316223519059659733207161130212326815614505670758550328305195705716973052890363483347800999595582845407391452564039649330602512509569754069868128482993849071983329672997768367034718727218810179701580768821482407803097574701624413298746417624029408581937940820984275630500174910069175854107756665671060411444372135634389269286708825820380850082905164328386786999248766214589001588458894967349888422293647567650640893902815163880541610138085290267303503445245124203471469154745430760555265617191972769961741199034480894532109295002586629402694439104469452552287818195833422816507554956919674370816685922095765106403245401600432929350468263253850908851603049483287523597128165367776489674051994547801683637278087148306783107245966394559238746790190707957229619684782008118336030761867685986477112699914810143037653768977808628121860217317697834675182378146217343862861521732333143784040029652031974594305067242796962088408305242825142103934615277973914830699067673622018666259843098160756688587657328093621498537482573107206151986251341339568908662700827707293323871771678979562837316188550886280566971045168427617087858566529482868883336529630793213404236816940538190800637835890388366443608079573440089721257371051744803619545759549360832513099989132523487436770706805911871174187667833910238158316578534093745866458339064067004127925528033008850289739528635821115147624575940692688449386278570060633716050267564557918601166717795763673176571183514007208752182699191297998040937803933557048685707164124771015255858608398996157387240922379296885994103052756164013243966698353390493714969315612574159102322161493845480630685465230301994967278908146034000496893443929667877414484581134486052431236780616958774448510898406844388427382392724599452535144598650749262941982402971462630046735923565147228390094542249137776863809242385130381920465280430493337646846082315423556754039199019641660166784926860110244590527730987251440185626067688868322473053132359379889580450651029728021049277448835702648974097449847536160152668394277103883212082808610571734189567466076695155353474799028670375683941046401624771529815704904787442282238332147540440992449796704703645786511304478097202544817081606983690464122807995247491893659904105994451082830737259375939466831854505593914166447415062213280635706749497467897134226621383046379138607980629595788609230386534822166282321174967420558938656874747449551663863010570874924670497848395732844819717644842879764389948275230033406415609323642947575678048830932500265346067133518259587672983407427347117955209611949145445934397339396863282702821590940583862542416663576170275911599973398470771273662690164306573683133760445490266966904370545102920839863847500548516651770819657393222008632590043366300702420218779506222802613286748539377280943543553324538658468252347261585890498394504502852246045640272595611694777508221153272395564085277638002267527733883994859372969644006830738865342303400735035815727616257956748043927925358755287061327879311339311526016865734491912385285937879806562128144995218296412782735883231051012303608997952271264219955532140755806764687042956502632582541745388206158439334636086922376798975132308390424151415479857789530996797010513112291284179426131674403654701011173356664535521139260424512182774540605489279798595915181826833646109373792062827511212152163890891009278580067244454262462580260607654323058368902455610617979575859323224194295968218097240981744344617692196765695928920082603819044035342459460470549333942358781727629032207980211927000176783350080263646268701016812925159389638627773187720812245040088672954952398735083725307921245065196645249061973051563798766578939502147430436249645905561489085469213353210363161520139620485064717465894699620692737272970995038849664279888677625364568739108474592563112833639530085539430153050059534737280358339547013119716055876186446075320782470311359529109206370724507682488282176863497503673936894965523417749975785173233814227906385881609475620981274251621718932915364007855364919257936470246735899422948080166675962633837204664736137807987880182128058585886178192649085782862253621066433296355769829760717187509100987368798911122560938806568955102197187496269699999918496832109958064792186190556052331888511479474629046741848985923335787817967923260865566468981665245748653711454579333117654472433927736958782486182830586388867181860605430367110793823355712178978211069768709397205716536732853121831494613153788425905836495023347498341456290488217828202141778299565518331333279112550696163065772971099916834892813724268686933959639889856781502918172188235625946851797846803249918651161466915224350345376149606241458957732523929387041961228493654391021929464350711356185183464472318798825328574017574022704458137827319570453804153300724975094445654081063229941661716534270244875560496315243994305567975509248149001007876893005608852307943755664718152598373016856868751680737593955029575327786644614729094558825700793846265465530507855498813755215199075657757669579460149698512806871487008234638780404880277284943042077369554023200479833242323848006968303449654878605819111642710152562461607272090596648759138593539923804267643735010435230599190955202349540820804450724063668117091940387880467928942586082884571480197817631290018277909484913729320051729313236819702546968005122771366277166394824931668003829115104262202433442745782508994355397603410479655456150817582409278792174808806192767970574968908049367650554627677406542396574911716211661673706147771853180619365499667353611115606228662498306943733218532409323076190139643059353247995959752865374506661031369244923381801921459931976091228740533514105976128010172546353457729270837209479482591309078599878738780671244601023551061826924317212575954587871222899043208905963011920982195474461138710793192693187690170681565570914850007909542727431618352367452041418644782669580558040672910878333550707605872522736936964621400333681910201502505587645689698461209021059883168530691067713783625656991641888243612874262723240686633926111957741129681810641284583121574744740303527648648170673623264794624481805291117970533945885618187902839918621714310568030147796842309680633392379048205017008236093249795915772683875650067753301987950257657728584869638586585119483503493532896502861426037737515938660648933736730353682446525741236711296783364675934517505571202807558968413138959322602796274275799222807478961116773697899426207303758849475622180463897763294018469755578726612152879262562195130210974897406906549989520952948934591481176783147566334882904547463540551621005588012590606171703938273755104008570573496216120850108626711723610784978381124898649157220269713773225140929125360780723640872328248117319743735471738568766930565379883281797977766977746226585131737433013975186880704744629849790357352076282865427913835464748930896171682477291385701484746646193356616509124574047315275850598667824356884178261950578542954770128822781329295308777669689292162475953433566906228035093428789807878605659735887300386259212955179831089034665050556977069937250901991932256370137721195720772938626175270270482951146151543659959789035741901412779603613015172666236412949273265219912335029857751142614231542632087514529632399790427957429034338967314684185159549154165829714286007612682591852117848253880486648657743103233784915280761577636778438773029899611489919627692947577784338961233009710102831614251115024486428259273221058639508146809511827586194605643222035644005935825943301328352765553741841423286309018483313144639380436247240039078936904215424694447410558333574288561712527115511508120314430842523141366062333989632026069252704213814079861170196939176587419480247655326166900712436076724040760164575300163521722426367643831789810276691089750261062044452667663956780777762641455352614580821811220353383483195916092138395103584089126207947047001967236543649647651229263765364371045094511950284444852488205745988851973654651194745510561626229408095625806756132846704244619969258379797594719280092751910979581160103871836120760399081206392609791494525501406239724293173796911542975681615873316533710872938753473284513209036686401162255633937018830816215416059094816717733881222672544139932567395911850614482651519255117811068240681039561529924350114002858140490936423882347093415968606011151298649302491781208108412641550546013145781793512151823835873206849167802225955642447901137754284408186929636942997000630821550984109800548114396386931931355602514843776830278475204287388755728610829964997933835557086114868410380138667626693317497578332670067792175873991222594829725297857207394553816833401138050561747248902615603793294433423979583991227314079871362650860481286404134813778948019244104111830670537862956186226034045314583722150653664693000045352957539274554554403985881502839967526804370736004823146806805314929970867874239034202529490107805053005638241189603411776226501210657260163312081216707488690096891709161206788570987142415907379843903720787266809055181711691309446186272085679098807676014324302469812052262917145187171589814466516750048928581782705571667812449010757865243820366058477245495464141672647306661582009053312568113889945846662752652795683518799001277359383286450160568630405685475541476439255330030666345242393665721244764894276922295106574199330144226225320150952199927121514926878275479984448326022651622915973228035729674379224578106043622277262005710835839134183650056379411124426750743676521743406412124198545316262593324820969029643920422154779116761439512041955617027509388635736817648691432923229787929690916760736453914371955467783865514942009542299807842896451306173612314854532699837590931721550392261052406654432997031391630482984945038088914555742419965620706355096145646595031427490785781015287450206003121944442083594189314843295761309433743365777059463302671165899184682428850633667711379604890907001619380848570540880565429475686937257804374228410965260138437853923895779339171524052066495502918809963855981177098987458081172849965735066406314111526949329115232862787601541822473256364709628618995259908246540066064031960612694075885087221023296488579730763647656816938557038280936503036514277539031416186249652549550659092360407848563806652419057093833576086422297413433720308666606079156249674668503398173566179769433057028538961217508969680161002773265402448823064250064322669367476743362997351238077090851442060726280025729536966784864061804709023730021768457938566191912715160171460396351088887956416968770025334284661847159922422696626436708882544445569567352901177299228431555672551777548159638073137456669066973634123999931950387686294896255061595408070537623420533682573651225533566278407133024187409040606676766268747625949264664241075175134342189922789321963121190463402510197123311559020786749157414898409558311376479516526978846051873203230205436233462535906668660911617107975209697696468326660486900053663140369939382120720577568299955494147900435840609711578466640107464779561977787569414461138982950035251658175233792850443155721811908983483082032692630157565323628498324452216849821414074538592231744277767836563591134466170175553295122948234702779485623423493705869975434514427669393321628848756851727629428246138867070103849893044787810396124931469980952269628418777352955209939218922955551380177106436085647209438363369089435093246650435995025760587291071219403755499170862643891237925887749037037621835485319845102964817235772957185259899934692413000436763003230557137358028545460741287909888769621307386545741336598121865662537633744631335320039751804190134413621999713226981546235470988042795301979153414300799621968760269647977328395253662277852762727304691119237703886309119481931826460282666165691239735645581715574787209121319897983968031141536227187127615649390844112232361913227373806391782591091047449783089015286876862983416037680498551030760782001554084490359294145754671888312201823472577742534401624350158138043290572194898587021673549108473194930647302030062266937958999807363534045011214825298606352381094756936083364371000598030960664257065185600939182958361556926153489516825784304820998704821211319320908495605200852755501780957091635348367833436862942545300558936973273437693299305805065893685909835526893268769229825445897850139124238461098218957585000933813203562763658473707982561869932702482871943444201876700540999921340342550355756894761412547099390380672864902436110656436994022318286096282265297986351149897247708372454952183333529727751608718736273667508568662745285092218316543539029332827708653200509506234733551932516238726280530447152878483748370467614245904605494799397443214739890004088799361468591004193160198114356644297375297527350194592138726660058573165538744509099018046468468375281835847387871592355170502346074606655620355163469440042646057751722992267899152388104993795521408441447449028936628606358060115884861897978305494434534341413230735212857720241491568618812298451976701848001983774263140059411021000838048476455035808859746731228954789509028626904127549712089766265826928760409887009198182151368368829357959418011725796245781781072038547451169701473290060010866548513980623842358003083778816404505582937280583344905971156557953388209731611276162588392212207723699739763438116773356499052089189166596437080905393824426793988912231387857841255795031127927377300608957768617789752857580632576413898590780554377407216055560061253477412286813889414163977945422875395849615043309261519750072210888165068681828947950400036880946437873707933701598839228156438830735556208097980107926684443453988877078307894505196927352528424660960880211068610288859653543469597846789055318224894493514568882143513085465669025878262283245134433820277541194187710826166702508096703904975295020613390464514862829748490317202906335189118881273652766854948646817616731653378696145577506981050961228654107946646038393351869742608423223841919160874897357230524097231584192818047907594629441136567411992178805756482204656997143890824946170796054855673651570412414348468961766677475374940433415162394641043797505776887114463311121983776732268166393998611383123664247739080609887155935934698237384961867629248646177294334122752088627002585160044649692053381304090275711845301365471052685141580509418735947702021976167219330620879427100151206805141448716615094875571491759811451857033271155860170608392180622354613233709627584647161787061105809844838423648519200776179082019766354790337740444546946111341514269898150114040458627221607370254107879606447916153788683729721968221166220391845344994087228835388840000229604539597572049590050691069433256185746167932676327523689704674793769418627001810940964204676123158657489137103163724154440772793057505639006430622469103973551645932211821582141029025423790918101784006699338122569644445324890379214209789490324341966926129585419816331170989630776861862306585411646559089460380479886521238244309009368778521499493004315189123311505998062246095007039790003172606890417149629514118060652047519847802526169398835497963849001368782673224312897506125919153814836404677764697548577193470867902009294766850040368433134709951084813739449321797507604680788677517231268527814543826400794175057083289806586395336996181959961760839237973665682789882384927799615944574818920073904731986289671033208880827595404674126315033441955434505165569001627599529310387468457576203459789173931371491650789473400830825998488864889095828285538408850187316163325043283634522790717655008413024388318170066302800126643047271309906791800980121842969124217387705906790538453010948214272976975551762641081612208886217092850856792339537077677226909848571074942398187776569494465461794977041461823081927011291095818042586310978832831203679498652949898514293998177263161184799568492402930218910544099773035209397390745377430487122015237052257098700395614567112800220145316260305899676035884959852441937851628312129583674977056631435541419470579555058906808339454117599816700869590637906529811212359206800866312671804388228839062772989626359930647318141264601344840495038158749678971714523981231368885860778828779318201929652040952308526150613949861040383419180450968402927803214902885640893015155089737391785249422374347786623837269521281761968310681128933143530529756882438480578558145694080710203250746339570313400375984342331127622771357273798857256386635060576547084545171506338377003232439594880436321618729724249321718212223954206870381256343450909085604460946672809310898643197443948752765821940689277605265656256809377639137836071770931051362121412762161842073640423435492340883157894626289611379851489961580508292052872130989187882421582538991056186665805918865831035614625825926492276916124216488972376725898372301005458299298622340096547070385679271551641937043317420380404904868589923194986491830620017511982845659014445210610402455399179515456325024567266229115209543353005771290144656532414888362044781068289985305809029107866743153650036580097182037649415597060582824176251368132561018280521965325808508987663979596417014552655089626802802548272317402735425245155865824315813395061779879377621352442555717255829772915203940450252452857615051258650819399422783545984567670593686443520625525684763420920032066834822812845768973343097745033979645963866960511737814296423340413747319629443916604217759136462541068414404268997624500790934447613414340981115840766889997426761595089287247794320203723154453886649858010458109665398351539205108368310839834021851830862179470015570056052896276401256914687435891289396426521338481010364395036138809102142484929772715062987277302970702936091988577002380449646721953353087253669601645986016173921248579797773024878666954942337306258422071855960280040795192511572666673101020456854084548933908299020885094259429712300422253084340313535246872069878301973974762614230508977104019676769374103722755861972561123483746396100730996675957159362866657986632080846373994949674737165375521929200166439729392487876630070570625804602320099369599569206781569361501524712244065396074148079853682990591186570796838703145573319975354532348774353262026119017454683498152214973286461826427491133829504897512551947671130771158506744982391388124845346224390636387909083416573577039390479189848643134311148881532542511546348582933444350158179670529142269225872143046040714210949527408086830010791536014689862636799992719324824380333263903956203905594550663547068107748997063634834785309024873812398119053121617882383926372642498174900318508644098884312806106407749018975511089712398627305045312241853200456572369200915596674873413957528604731855067476784852192974513048855287770212561338623137914817264567039520123238949221972340110289877630947926355815691222893742908267684389669525836638116608786274497453406416956287148554331011291327054710071341934393688331808856838057829386157151868858569358101884756165666549816217235443946576829408142630745313955647454449639909954527689028300817352392501075269059939538497492291158727171150569475191678713034554167255895019526964871786169774158523226644209266652470042855398381985256220350260044845339955505124130469903293002679124249877555461005722954359168130446482332072383556296094998502936788136995708008795739274714867097034178198295152609487626341477670679036327452162724655348201592789243711304151520234641706369070199796368417340368487684514780182325460559029096015269589439433374227505980306111102559036070076086187108720468214997049487121977230985298287982885088713432266939852790473808836740694314182323613640807081355608784332500276494557431878587272139708384673262247642490461308907123843783064705669598180815584561515033686995246843032107687532734856497457508156072014492407436968066137405619184503925986679460492851498824275375969838492878872619641711618791534808875238801949124192294561506813946752268494977742550363946178940316167362016961507918849194974126381573993820054743171731980854769470378489830553595074451919156364209463578509161738021031909733111252030239313599206070828138304331859401750510161318495816282964567284282216005779555968906301478442163747603104328803167293505479681214648466018767329448713770542353409331261271022833071650155852489897111350012216536603598799817423140730697338558435278440496995855801532501121696563241034181899129961978327006702693187878939995410784662992967851463299190318342745984818504961732729431685101700781103660910216613153598632595641585502660482607678781336798590814576929146045069111689337774947839746901116058403308032115798481873001757452195820340675647707729568209784734471202555128866996481108047718529867164958211581322832236114927869211247173851541127913664785323988049531959811723421898278062348365862166852134669877514320744287159054725116098814822537657085058092624870673627123130800170542666882969342996272506018004066482428124166895102999698245328289635299147502595552899166004947577553643990942407378906855778341320512053055792967109175781011844454314702911869096420072105362071281960888807816688359175653171465833276720357240894070937629039839363770386091116812858815820011906746216341482017749570291751951943569134172763153104434612617676576819181761566148177173365091985808799146024954001572140734015906510631392325545511493679201596507699217020646145834889223833046484735729341051632155977070979018116334820988887668423422743127493294541288212915799912705572010177731801128961707413996043047151634236334245076519821139463135432308099279769855106487956531332450732491852797326774015268821145502025888381960006289110220308310508235114816304332440318696501217920597520706751757864996933873474518206209387720671884748430452508996440239732329117094499533946852654559422017765202435736883708216352112049864462928231700566378757163380809870590184544356889969155746124390035009837065758665645299912110041566889527325400415701293139696099835002658850633158747207124140412838746625535380106960174581257209214487703446283702231668422833420887614056826046409423624525786608744405111491693475684532397165863598572785513808953571296451418001457887811292751195477905867076692439409433941843833221920325975423505431683458755580658928031841702846171500195658384636975860457582244424415587989070572655913439662432131591905969566448211860594199684163281427115388773307783446008539938876799345473787860332509682316904022004981337178407599413569920399495289124239315626541510847300375188377723476461779391107740724647602582343373120469435972594583625524003728443658185726832182602674281284248847004373901396123186922425458975072536832953379991473158784921923534618847774394137924029247941101478251971317891512397069137330110421172588428998082596104709504602069501863631652233527632773945324726908746982374909427228606308360046753427245707638960084171021843884274297195978376848076959313170377085206707829661473220680931781708976537035622874758377884152732289873935498827679089109589978251371934506166282218017970646125353979294132114251727835114393759880352187453393642636731443903136650714578907016334615046287735418979802832218622441397683013244929538082760124793361705554852248177788940058357457429101519127249142513448877842529919103577386209214203407466480988961219841454554922434803006367749257094741838241070750443977583749353151084913746223269986224268767937289006942219464730868561182597046751021626902340637177091905932635422867636283740950600484384205278377599665308060157561493556442466574627468727702551784034297798819783704093266156730848962687216092212444378929073353402572204207131207818460836237631277460487347899512464732651128762935951892328903992173699166309188380387056081845616005720236984273216265805316747746290668584222541108066538773739553086553394590681437455211618367506342608048053763376050814292023650013113581526286451799647583399875371493242710062717982895398937420486572547523309386034135641340087333144013190761005120702054586533989688889384759022514021729819734133786507953677670797734028976292696908805155612155769219507015027284202030986088584699229955813916326235130320752432964741897696102932667716683942890786832519090772125039940898098939162186933681595359585489343914447381828699392437867795068424774747699332217288023023546653570587580775859661713868171585572719966001778331996161192705543450411842386741255957022012976192713905089604570425500603793527504685291204789812499512911673085012617819126468085389952369607743597832830975697232954066184999806550416418614111344104588868650000415044622415441593727561321615778466549093049732059074344295536550626393639956669736025468050038501388052853391154574694728016839984645225552867601000657909471930215502546775517065135979426315909543861793821567839953020197527392817169050324701192554276609790716206618187572891351724301804716809932555016380405936278984974387526313487239923683477964846442635544604619142313525830994705020108137895924427297852151913905070600201025147741384671807079760084408062859633785445069126569447754572054840840745269055726990701281358104652274411547908267983897814609630509366678345507732097435878429717152878799508003618474784252784190771781339766977228882068979417523703081386011515846133714296792028476371243105967792067522372299316771244042666324851103990525752947796148274630354795034967748409066059558854236842272001282324740085898902440334204257084510392589797672749603345491092706790827358445390724244179023414292433568494266865318405988114788882753467689383576331220688336716186242103218200431487776650656827192699390042170392541665778398462992928519520576144536245156604834173980515140908336838213910485738255895511906028738480747409100624934291790024691567064853404312276748950039823493216479410895179537956741974619030007347370886411369664734415198351256230650791133509545908301491656615950045250362394375482933427654853343466618328070293446320604168195224332239238852099079132868102320361551775812348898973773009334534745348416856958006878066090685938738032278708456607283100022317188393458799157089031906845847283376496532011936654482234520105218903647699306500177473424619523604182097960272947009120676008219054395809199335132118246274223370916830740713289843957490172723028179195485015314515406848080316580746056340477094623185010291806135066150936179004395110144845415536566477905513078927984244461400011044347008667754258463365775819343625854751216027996422114965526215315647873118177782325820669217768072010187493096965240205561303773533809455876049359759881562186470829374840325005027938073414329374549232914830792920081082390611853780052457038518902342267704689410058279772989291524150610524372401359387583248810343490449751617670746773506557795521438047741735065238251618363519198942559030354635479654690895096922495557824411066536795538052491206047439465544176070908798505793508181527630265441379331913110967934185782535049238931050509301246942207942960270355274433862382725946236041759713081883705974136867998374261145769433421936930540376019099738838937066211730315784099025784641767332582338516136140622158339564580183902179634644726874319784082467471043926351437808355457288444430224676197861538108476272019270006219917754101281789176598347142055080680493896158044613251801396509668974022668227216228244728845316226155424746698132489952138185533874932301747184015829052261505534193677366516343819879500457515693929569701572781012168869005589264322465548387419910707347594499016007868161755396102421457805681281265289720397110550272401044399373743803527228015231050234323904806422661137090661846470480871632552189517331407560274794486512114971289308469487872581660974053489869167201866120934421099983334157240396216700464633229478941902159823565059034774691005591999469073476921020319680038480926976476705124351754580610251910123299034354231773715431489895589204008246630068597139246263677587286617646202811699936254288849550636949426267336404155013870557051848735296583140638672351624288956351003086506997703349369872302313778721028350603589507445005442902733686621907853605719945234196381428960927834559611532315293229088949945174089645134918025762089713071520239924585126228003118394624003091415558937947099419636417346815577944176540981894510571510139647949734554396780267675561646339379965317274453590685630925652192232353858709965078778700081338174333315120108748348550095278575551657027886275551058968370394684125899040293282160183745367220538935877850228813431316704465012228537715895676583025066793001999870071382255795671539885299920759277526714975669010189115015621715083748792836537835850211254882739263744650057363916231141254334682956027082328716629321368747729251423778907634681589333147718552489586332292550568300653144705075827094240146826372887818195073625585453426085409683350751973578376541286886377944934805829197824863108155178698131432318452087377042658140326515328214781665584454330271373421971651322206463245571007378568289392473628565462048897378736286080757480196992028545969134212955696708245015724576571620026589080177009598390253150914234684009998100426605047616599959540192230984888036037328111640485361104519241044560466279594212907510491707814693349425874305860826464208317866359618630517731872348508085040451876486087635538636207996587702203430834082094286722101622052727847562211477169705949720503838463473382976367820590841789285987040632209757829410770114736342662155609169283944523651501401922755094932163901581056535446372828251578849130971487645391482222830112170602271800770548677045950010636261999904119567806047353925716941127381486691102185396598306535120533252884278512229949835237619794187100043554030552250730432629990572640884352939417292488931446504812769119139352319211328579629173371864436996827963751398494272472735403167195837598969512357682563645166426120316825029463987159054630422572911609287015323295922324914162163862291538062477632967002593694607299941757732180812291145304228173328934088357132022069583198770391885552340893404576032680065343750517752444782165764433954537929609018294479220356456145211813965870027797411706087292186241275126641485814659868735020113157045415301928265660443855755023143470492642802886333813549764534307457296921552018230256138020665238063142233637687636629796152650616182492929186211742409196841579174459061628509490131338179875835188905911515689168628543434567415172232530960338580286086720967248997428544590915841190402238439160038707341347049495491152405529159301656319533774005296116959249611211639255037628141570351516998259753788098331258865350443741954059012295840056854154978688978813008443296384642479858430177567569481657984109004222471316924659197430706275300873398511395882244825001432876417319861624299778043292566302290143064203452448905930929593957305615474419903701022193291459663051853084277558292932897798151769695005760774746031783911587851616649114856667627033404456202658046160682804744305348961728315204066833066754187618073802134640089431370367995687861365357281580579722175168441321479780488243375679971314685631685193467247325274898965755793987938135429065519017752724008100863396404251600393655607712736356683386789592909027540212617567996062340435475911350559437125650624349588201655965398539814135815467325208123497111374329848724457514779938402626821928071187375094217437031656106553056088510667205710381350817868959830682294623757436703713187902625486124317319411575964366218332064858268316029738127003579431772684190659389066108576363734306193578957989614865266763038444641723488929427188152320481662483650137484852384507220975056881095365322343073867271796704063327882966839504981935698401116107400414366069953124667438688186102625299536723816316185694585146473053629522065070543099193563353006958842672949764737623943340420284686892019526944843947358363298795221791758739347509599739687763396333198857124418564938920389765279905763103602992281333916275388740336132035060718644130074424013392135326410497489069849076431775273505355721289274645709538992798174059810594200752201699700132982090998002312399943511921357833081911516020780696317341349166022752323538693142650265387708071384202760696277102865991136382276741790100622151601365065031456555536866599103727075470473330949363748552757374743486486857719196009749531346300621690695292407968090229021117982508561117641587983750074821863079967786841279377828219740910537901313638217410579127284606472837921986942215459687938903987028492475000137481588633715334586227973748561651274028872628324432483543844262472003567103452416235698038351496619942026460751208186511572972277762591025711361175247854471144677744381042141899254865076418646066087153200260381850379744702475889325000274242915243174366806229071737343911150242330301461668062472381496224192371218395723190306197941091313249870622171539608202175093048510644848465058043654400222145427466791776676768382734374178386993424118088163967007128219324464608194834414851930816138651637559573936239077299448781808205788424113511711941736942712039170009348745092905488380089964232026863530523573724583989540018857401014297104846718146347785857957191684310167668107059456023939742711823598194590756589266268728526502442964037326958497278239859291244645989147643869948867590295426240837895397388911904408540791020361964556431875917758627879241237735614112802305576955542504043069010608810258611721003882075265406758400412261333966501663339611571418547186441511741096556028086011930419267293749649134025137981650289732781468629369394857059824481705297026356065811615984925226553621992465657655267447432668144963216160891586137777529088543681850432959033177525107520419463585034976331675918207400998744891873442239545244836950300622824392471981723755321224218714936134602030380093630991051900110471788583192942736237871143623312162415721289110644406201107242284949699629385546414576849226254172563286184193974273649579396035554631044273105695250185985617285884568178647633491506630465819864738275476371967062140943049932987984479229938446530168527796424635227131284179199347938684958433056687141730245906882229125392064122272791767255262199018797775596270838797146540949907461087153691246147952110242084885718236329087852626835282081066292658057613951028186158807558439514292831066607643446633783243700147675084007919925950270304851182834498948182181387913584314298939603997974742178970936114451963553457730005424122522656932147785595795346909440922559042563839492703790547143932035353163702399876140913309338634698931274730649565069688860940679020219820563243054449920555925231067639206436890523349159782634763613705900134082020818181736462293829332571472362169879959268122748649351549749192854189134756571096164310435031968374308846218736329487828871840823753725233557670535710097356002343660379187579695006523170867412316830072974175753558792109851115866854524994153001454728741436808333721305323279984498357120650006007996058270802000047684239539555965525850095493046519193888258614999664857174985499363160773390882376686860806567434830985747565324617738902155064491299392872308565865118701549681509092096398300358902073009100555996113024633947918210108399131180197055299816362910451588224441701986311843377983627003994876192344242709705675384962268536487815756549444351587422395942356870303533484870013722107811248111012185653716746729843432867746715837793509744465874577042558906637342006160270355422501353011572246374639430074665018310365359432084235267429390787675581673655600331609598516900949540954798110177529399980182067380845366241195924628997044143015384807019551354703806642274817841265468308965586323010117525861891936409027492840996301490374319577473872331244874209618225110861275512584061854249608163601155663377353672639415013245044420133450640776163010955853954584189435710470634473617184101895201115344284727229210795010942297285120883646830091194277264017558575433603667449643383163714750791796699068999874629153863724395455633264917009357281277928054067734168974551963539776560840638443306675610677374221578771259511980146326882414659034526195141353329396983535491386620901588730005986933651783694386977204562199160196577983805002623142579899375376821236259576281017697980530900871910158722359460828118980198074790510954522130606969282624162398143853525233465198086074252460504731644372727881331084167698625125846362898930502338582686430005151265231085647224303767358686631752271447645857102347618263220104185792067134501088667999442656611579669204344610272436520312211320483230071713397034388955576994206027573386660591096558764650579420135889736092095923100696823958623164491556404747224485978689106214942888010915703713602184447382954375684760394132399935753626349444767280378919908222653376730895310168169864767816836862440532622733887334732359124582752516700502481471970637464045786177634017445119889550134479403206653981655488867525338516763790950812744150874832924579979330639289557471949374266820929370652744606416372898691311397823104227266989385275273598909265730280666264920903322417928064657333530935552336350018463770841071821159843296373830929835346931539282809318591099058999887053557886533345092275368777032453418317615544877996374336285162985094709676554125278866070147884564744686035417406453750077820995434733079237623334849212375917029740719674825597213888775208326325140031945060734216885118541792918386371692987282975469068523662879229289122201104481853237378788916374366628560824720997481878988931081981114741622336994807025627981721593071934664119421926429841334072929153534614182412150654565742648464947922217277506213854782891123818527622498186471499425550750658524283455484055632148954896200146522302856914502303670970599957964967590885281355872612966299939822646674384096481583923792329985980356865358679791107156257614731578971830736122802485226275921530045406989298029661103279493024399284675042337738231144365834658062052900497925579813707061214239613086768342831861845732765176921537907262029416174237118080926589809273959633441245512277915352448202859140622329294580231692037804387610416188988094384338416690417724447161390683420440441187029917013030228588356094951630640277035985364354979147762342192604404551838026871870308190953902175358561403920715670156560557252890181985649289786569424777551487609820671441182357899524237390036738382533792987720550516846388907479994615064889613123570887860043701946705514513952898128035788817472683326776246137214228588987665213144654286990793331538332329666541964914044764360553200738285243104962281577292894764518025060297687693411604219302370983516032589555534229815890765013049642060665572669891166885014989186718340163362511251876161166162505960516510827615966903902516651528393257617363503368414374939091561312618231500225483114037900581827007889559878942979016913518174008365836522869245214212216274444277533503520202401024510337474557422688687132587717871820613362013606725448691383184025806101298763501020418793665196767495749431785591568317736742684990143661826433260978954226077384426655419350478630243205423215108771298991853201703992949772350698651893288338116387613391035815219174857806431729223795705307177968611168401433440845771364526056387909112685105523423876869735017165614150846406905226952148612257970168142925997009565376098455638583535871784237049973380764637750164961427009554448034277008633260854308636267577997762428573018351262510003753063307338147859525000091326366790222992199220900003862960182654971656380051633592173692613314312178255179910201124800341073336487895879605975660440401164072233580082229706437165441921475060684498210953342492479690018935983575456373462456758271367557445947504422530594585108480846281050428269460305778661537348545548947089876312896051420683859975605986828053180196493840101134294471045951881753512576821353520868632544703053669087248504214680836248079135265594711761334441571106344994631574449298158857488939412777775940487635740769551563943223153606771085698951902670747923293409394356833218343190738008930976833003961500120313110575682951985319494419925868355888487746126336600137545307207641868610155797908553713975156324585362750702794666821764943781133287838201001823276965403429954382742462883630868330021250350470952312377456732620861918199634669640930168770620174904114600049273447787880832579268870864055698191597120869334951780153343284090303989685507610391622773021515792073954811292022133489963053381569843183374070749994211067291978763029674780331787402934272413367464277999038851405033914355826166676208500079535934675654106974525670253331294625492524517986095026603723716200536021509324419860647058112437076802126636259070516617969684535724957453412116239311910457764303860336861821716920165757130058122710842427095033093728473099357474742734763795374322622244545604930231722025534484815831960934517331663208392902777157736221821328672201488616742169240262120150006793028631530739819168110739893956394507277194390348168385744505591555155151247127635313968870811115719433421851349109962700224748914535191564872297469348692415749051119811506836149796670408453836362184594066245529980058091266231282929973944197677018074517875304103032572472830957241338910072040310723283028148900255803507530927849842060711059014763604315363296933007776097022442666080559793528563314875956686897642528330076277788435503062992878247255770771823214562654736183695846973825867596789985509101319267292156370250854419789218178320500051637503670219361581379849273584523787678768120072347579533371611929398903533901000743414317612797542798658034799025634676951345644770322620440030701529048514694904307026484254360891147728327364156916619095722686396430829500192961659690736377934840897136755604578241257048335815833732373424843154959657533551182635327984726764703967514175580122740767568471343397454755776381984226017732861828992870742409694530846573990023197838005470878910925272905921224643171179091165728397317447855439774355216772441677817018080648826951858173946390655053664677343451341364518368697141127934098075344794739446226035292049191806043217723701754592451990264280856882580206156153362640345437842283071488560120540949168884283093193470292345114529598397551393407693831713770090830977449382464420196142256595653206794483498061850371413516471006072839208696157902721333957415272463881616681186333997891134814473224829751881858857077589143006116566048325516367000182973797871070377706508725181479973879983316944181085466108032351676366678661640236520820607213617845164052245274982690008259648233516743943062679876426552021564017485179214842314780540841909314029986187741067600130689362619839487634275829537745251675785737846269120224733482273962924732850550260688424820234956965316502857802038117410814162497781170412985436422915555993376516150323550219821282640435758740710490418860023699102109642026576492122062804041221953353268817121588708466205934021538916198411600472306515729089691467209483299662454467529135173042227491627950269426566186756159414866287774365117922773759805892557810642767524293588225249642826999762288226539179175075379744004754078248911040638217391318647949101144016354148047941929766738267186096989860470932488040657629159733311957509537027648945944629028659350999382754033398285984302984537974206435848351971207223699073261827847635137945672952369113248916377839725919808692063666132978748089229941010994186940526405625158827527928620498944621932269333348900337348090548007743768383739346050474530507799754434448276353882550629189960939086385276631153393457794198354722402825290574735051683536920380851345817096073634108111428050350324060051944709048066360794648454572968945112662067860316507517604916059720928642350703121272394806062743342113404285544528437555400901007107906557534001467874095455449537719398072548419931258856910558549678458407364950053842206265638307053050076416661676859569886467411179071704095976076713093247290313016221660729077185849138046654945845485854601756903680539573059479300289992871584148459730518734840441989994448276611006706597119315371696196566167904772451841721141468493467683382576895325749856535000136974405483200000244100690460133882063387890998175550656728902818625393847382060501811554355264871002478655914135626414473762922722861267176051118171795904744861322733715760651570562717285088727147098083905523950339042405515352753807211930043744385890826236790524132514939489185631666075950950296734687768474756569934513682230056578171982513440251512027465251930985434182184551153359913901461318793327077240685519497353941486549237499414259026269163022138150055730438550924309821050159003598604031774209335003450637665868827600001077230369053366311733991035507298623505326072626585775508153909236079236341612124743706514982319983893387792349083654485168892588660505752340389202277354201392305476068834962894784663873535829953166414230550418553503031926151869826217945220455536616896517228424636156364092150389479095388447231320430111077268759989405554873860214200386688778722093596663039507823962254414994457452472792149395034547472184541693136262287606870503788298156583096929454563986510432186949818030160087030221013174611950207958492349264098899114558104695701931437826723250824711265438068733108880221041697468711634360677313217579486440282147845504666873337171431928929259326168824190279993324637301373259719791755091892654438405832262024051284739919637341967220619850846962289479695588174153369192868220417674744393825659376579971805935750576162602901480014797404066542244875755216880718730981306412052579765796716869021183552772093859861081314770079591092524440873344428308423217413909330389206660154754093804542431405410477843067618150336004033151896532173154776673673893267030627966073921455538118066379055133500996903638915216996334417091140528419369315713068762567286399433452054655534452624819786804354369978875812895038203806460275257550098007150173857736719248319080544526629493621669021008110635738042114146446141912401004853657283584245058754271551463522308205250215772985222789295862012805295329778898924482756021650052749476671884456741381903952930642235461839607943641451265365129284183792618190297511143336650223869322681131646080253628074238625827187887291855723063815133444202342136838029419982926191894630875061719533998566308390351552152063137534706457527109575545444121443936169973902130240644730449915713834693582575326543186736671686486078428893350099229476610694310891256918631476056805692183744323763013236857905204820931630151664136073741347283554032616686439479513718971831956413944111267294242303666379974625224088421597903765827918727523883942614291291326970600644121988186331223108394391447109636749254073058418847103922044876907516729573027418900431726320963709225727706190246078610649031272590017108518820664273880903417833940610030637256623553719503975647593723907961838395631736515392114582071515756697686972087272676779314687562625339984554019510878373237903022566813471146938285077648862347550324840408763899893221646934882949498697768382648090673262664044940976419215475219210619019489593724646248026802680806942528174996946560386784246041769763313386638460865584766142718141555585707202083746759352658089603296668356999750076300281442167686871076083850732849673029159204123105277660014871271821390841279364702244580857152824918846755089993980476385617663639122149225649959342103325770134106944923467033297109292529263717583298470058692447465748366460204248885464864235232268435437280251179232985732280629823761135653656379943322221103925059102225391624934753018579719533785439980551690481378507681670662063906936257939864794254928972859036905474919293480837217075914431168654310161658780428219361768983740987454356069495049808807461434168759089912321274720718598814453509711017988988115395996977486221241898764430766917822889797470058424939156576699909673596907365233649193682348880708424307867775080955245607270580784545850588121389153400403490929808501765832665408749936051222528302463136771425313458378611603822643936797301578779618904333953102671374916129453480734385005417826039092590033675283696903996784484642718887642299595552053020679821889364125680127956443882259118649514791809463362721949333313770051586361365873011440402889987018125332940822948606969614764209509194360018151244008522224182569495750251018826182248651960890170716661805123990990434223917019049549276373673913796813287674530737852859148529109365276874399348528267163799119850125924322963293421275060088212874572886906690203383215951421827647643481000321348014793908315531342945162450864326319695691964775776045615235336075502334687510904129351184010873011158948005491282123774575396577829660586608399626317222934998336799066901657245197967990070045466607186842010191369334948783237372843420856862865478642570697718119741491682974397353964284051280603765273894277786023599045147009418651850645466304442544049183183538414085401778873799467237360661163122194012562034307629631460849229047447569423759056548173666171993132773315107742401053848608668032948828270554839163737143133998306630294075924534905347946933204561215295255188772523267290078645307054315198407092464921444098512489382111269576908881357661021399209139611387696490937574846627878331467686346587581474673175667400426279200555721186387989690823240053492880169556969280001219470612950229739305366420348295565624740208657635909887121906321971106371487239564196637737763317667196633469286017630708283769713496222242887131957661831559492443453086748203611524572570483470985983283162093401893724590526087277609949311832478994262629612807930094262584997493013209738440084482435486995250567141500412860973140495048606494866661283830659323907136760618808890722196839401581592040580892628156635299075590236456788934390929385275296334177239951880070812831988984241472981076850433563524211490235794036008309780848200182413697929592611481076442237965258694463321065611573648313050207758343635352834808792190677308237145440613497938328696570925117298841949707375253370770973104356312207277632953918978502403912725167129002654562768623108668805385354479568948384345032371058258815243983966060204565512810012350910961503421820614402056867884288304414813529535575165377897982566852931005234464856604681806131036291182639445095917477867328823978367271925396639217571692310528057345212340888408101620071193011431661553137943418256310321037338586765838619840192929784935002073261632207169248599147668684949212438265481849554679320434419738399566668671057730749879126658318589157288139328522353885155027050540726349691664597660287383624350006997925858846749733462679766818425551862585936393900557216761285646740635306011797496853933835321433657180603887992626802729058857285726017486108693781784695305181287986843018977289337759858475504112047449035103216133296310762135814655886442049913694430861302256904548478131188439345224942586614083100506236781891324554312683877808034498056925573828091215351388805629527342377373231803356417437964511508627894214610423606220766007977548263950688170789390257372434257781596777884949823208905901815065840173377852433968189463945667446942267910002908765323349311805596937417513812248953348239912355400957999631236814441163341462407128492040061261811658082657873793681474716256638471020970631924889705640486445469853777838574777080017422538025412839334785358450603213436523334701449248364952865385058696880850518490498039276651246483613619331357254810849828762947734896032415960354072625180409004971261494975560439940266087070289350665973428610663789861862083104221422621558171000863217301696874342240122396697987642307773892899105850272373675450338223812587402716350338181813363020724171578137333306396505388307650397333933202683356342304996890397657342732975994435865520596469562763422967212078595106676836929122158636263833972272972144232147794158167123045940379159781656494229285894674316594906568420618242105352115372186085604147276197099703730938502738161908312009052236476629951529596241024566125855110060848554638300592394969609035483951701394591145073479696803030228236849620207085198003867701043548679228361033562695968839292290783506495721925118892606294858826746327659366357814048571266139527546929034358311898552945403571829858437675414802386170624156615317349407172082324441451859038927766903147053716075589256874181062157257715441687424842157068147431863474417027248999698309584234603480501121971321579883281813002072216032894790532869406303127646913657901030023467014938165940483326128140689488904435806667687464052280433133263551720266223398012570329593505448179035095660882945718061380673500802524215461838221023550586497068131186854379087788161797825578779741373568912952296206677325261466459706598339817600576276853085119293113781403983215582557766150738399907766978642395284949747395702663848893903355862934548510536063688370391484538759932240665694677289052441027710713284454240623477172784899369961963831139203505856194525165488506661525962307863775289613177728573539568441245914616373882390324397106298664179838262717394396170614509226927692813460609366207159311918615310308325089768406828785234611107237020889706321863529929268926140940916920572674476880432940943384840223719865313834411867309076224599527080902020384345360041168946640916513926983906867429481929304689648760730929889249358701369935554906117751575347345477746310717656944917447487226269433941050208696154989767969580111938164980633129747523243012935226120729810290595743942112067612125576926608175450888676820031651186229958141643385651066687737770639797161203210773755687504646939429669744674093447894751506965440916391226680263400015261115774081803652114470675901092423329722617038286374797839393836750366657294250339873998531876591913180120441415601321074764051316539259867111749155743608273634321680249426063490848587085911134813367017793959617414510361046495588607915524496314548612251015393409297793539126661334083850821652513542006202827808804126925379641602849332331353445284488106075052033225833421022252810927868374299345889873816660983515552860603094469449448114721016212682988491386875238169543658064592666166333500703513987836029324652882451215952310947437462338641215380075515285111496759040804541045033311707338754053876628248387260090118330492814402622292704704386757879481892053248772407454280047042459376940972613615496455808151266112509307850357743118784084760832378508760570499396925521936814024419343525394167595029524319056710341351853362433768015983181314984353921198147339606975540993171970898649747357569396696548950721324934808985360298920972633276091146677289624471723542409902810599910223781807275754830754618551966665612403173662811259529104392905899731645946393182238550749652322384610021030313679306810629835731208013678805821645672671758896367335113633407187739695178922940749104785134862315514153161812391580282542376158025413830871722591434106277916292136600769063588167319197229554492924706907806743790981885687258350821776876075200272862518994260087514890060192248949956963717540859915904274753404421504379928405710789913462988389178438261171246959662468704427294721921107771101679928382667699966107922028964646015976360530691314170559686400158483161596478958246975548272615929892213423840012389791104531426233743608482978272288091102900202129923913928317822965143689261452093483689788251603697910586280469858417417985747211437690517113117001428351822621241343650549790204562292424060486445787417977577497256201894749858944691755159290292591879701652490669420558068180743161290068817491194837456629415960359842947700273430440263612548767616172852829869430949069927255279544869531598225989962325966747179758375352805331907898392185193683459110216254117073095929885265217289061980054609769453812252609433839298300979247822395324370848651124048539101956843943793767771793485604300644912001867562198216007730359720647994903836184816316523028037932903220977195504717686835095611429430913857561251453769908817402366161807596578406614098602214292782877288621935218012537140962592561001437843168867259579280288520514683179208410064889053171771984071818860784248401725281160317364140525840786114936572234596633896905934886396608059589760359566524702782903116904691445391526136093041213154303107568792677971009309108928613710749408094769179837015270819480166796087608608555098634028273288071616071515812813813503483962461383574733531011870957983556435409873835123914368852438439258933206723050598303709758966908063144542065845236100373502816064832250508923157385361654608853341904408649493982565522901345055933631215811794863038864432973622817306434633441680466189764513199113621947583473894847528056385949819918198804263347882183386272777577824101128532496980309347255308413762887581410246574468407466479485953392698849980716072237488495441832335066768392971753772201093073825898950967319823582827782410754026152829309959935481528696001874418343037064242082047210439980688310273786359792088474674792320019440362746418308893184999371985885824498191079801518386704313818489865897241622587478718775278350427140837389694732396695305306638026795976893045510100849681808516641497426907206684755960621973159367468465863310950430692380352549686535172531534288260593607198785285008915997122926938678245479111140625776644964482172193863068771867304119061878494101535341081942382633893288308799197622767611290487364762831611249309347224496898928321909442766738643083252826121234482088593815394019647675889356750561672149300764380516165579552420135066262243500055095983793246879194136204995070171203520473725054760823349693705888030376696085765070114444842527046599802540297106158146326299756907910589218932940663453341530679969214682382131123914427590318028978240012538744552114581149547832214272845523355890492445881465574121573235824580520811520768514992517738994690162069339169015556055328725542332308390372635319058707249871085039868365675066810083961484006647298280229249520865822843914332268487428577642374159234601805454962568642672548411028557729150061741174793502595975013365259962418040439944148735101370939426432233709222216786308792466725191191128134013073226415614921600372032310039609315281140479062258365358265528024964550974718388909761712962330460036003947154035748773695491124838781780157745514901947082241753276038620740674396696881922992060470030728649521749184416379529928599197638923277544682037671191970721216143380135300246233551589149564367190671183878594732468104638832850743059445734519139792730258711847655378687463675510046258568542575943013698968433981339062423845874951467354710350790450589786762996855022226793269506656254942015860610786433340871677024668665227080111840846204316898439775163922044103040531158610879458466753000695023984106131859446261457836767528460183281600199236550107584660886157694533753114029362514853184962044020271140836214971947139165101294284153928510035586560961980888358172824573880837554751765609692236758015645081415361944428205373754881454083413004696049162976958739300956466566614136040993725551418201348058402785461478054457015401099126800909619492592399901151910161638273656611571960732217508028823853793070116748093738164795638160893396123115821589929211918649758254701617093955052194742532986867219719075297608454555644405371974568130457809468351968816549328970585651409131706470232707673966054734996586678590391451645430573370879106444495424960283321578115451508271475773209441282357194723733402628635291816816762703254030395342193575789257984086639327052506418412017342964021967163483735372363200302027543713359638562936452613452452105003697744079733348787184844278361342758549164410874314811115599547306943566468536164170018983446240538097814040468355395552968709204385036850951150533493742784669058244949255813483899942914438759830715290696508007797962826374031538014097716731352628268928786466231655343929419320013134524614131861039622665184773640139759415394279650100757214798316700011244167178981517857110356130286304997966286844893392680983075636257673602026834181694695958452953025400259073299334133449155380921226509766186668849033722255757996090296059785261163753761024888535989865468162596963630425917324285997470971613567346347766693276745826720634392338551245167928571854347456034437787697883755899506288897784577670871122859033057664007719407463769455860445623653543288946142193960445175415820113171329146819054764853050305777258712074078241923281435827857927844512205952885330896787334604393700087832412486623367133552395531820993853426917835882790520818376147526932523618835780057468195247512652351038520676919957823128364340300460554635229425301122923963128558909676345440890018791867027754546960739426967885717967824218235648123472801743428453599551068723288384548750775226827657321318184511873578490061314087752533081638576776584603238086002802343945927303746141500110994789074426462364753892188621255967583135955784736403675460804609446216975440759801210404585453560072472053592409468035304136232188283332182156519611186469854196531286930275820371490112290648154777926372829236267945534049630075955235939300514955947742025019794309634475487791968329633075359262802332575262357686352049737414333379733204508428126543379264462047573417786295753245894745684639355604431348189277584233631062648743630995675115937345052780585565152515266389670036012924102882359381764638083951831468282129282053937929185949263434292576012240066922922585513841744023766750665972892485056094054635256498461288354542385389316549906993984617868586940087472966150281161356256560780223735323320145725780222904580698351201741314265404717975445768882823742619486928191175700990545474785412363090438736027256380383228981303473190844917968363656159548820432782830806457594699765003133223622776156285757443752280720327442516387345708374999790684316757979741819236329449264098859329704694624883144069329443629404496824865090231086197581218393023630217727225025169372501542174751868672836006871352906934041211736382296009534701337647880102349278674570461780892582318805829052250884779495624230764081326174250395695567699008488488168732033594885891268095200234294014330321949282956754838463563210472445765175041053959026501996778943667827883010811694545307578757977007789947061803010680299730373737799653948178804293241839219791335150448161344129675532431349457586054196985090981442731729366966475806047153695909231188922986055842230942456568692500727678781954493272924598667190404602967995616553473005550619316465333765239326554307041388484083873862252568417137293261803328659071741541363634283175043898609439090082590784374791830861152596215779779525331128155053183765398475427052523900494131632263146889158817005589453680382759229087147304873433019409387717888471973181451644050176290088515988062899523696490723113436287473342626588985168575686861049848676902086778770525210691435500364857358487591086612383973874713600952975357104496828680657091606921171199571964462771030883887278415235537613837089232620861982609831138201970175643457771962456272346292291283517708910552910925190506467869421978036987866274585167252637419823584466744105094305724643698003357259011350569392935241414328275224596194414988188141316278179840797843482722317473343318301875206724740552949141418843748165366067864843645122027063920584170776830056847511877614591288621613846863742050483481965690527120517047543635294255173568736485995260718712206253077058360298106629824173200858955369677083418262155140723935023760808729870503954272278512418797138875124881519728544317773434815504861958670539602198202631754874448831512634924057211075916129468460625189823161399277395037710521288496906544213032873466537835539383579409394482106607579286882720120393931591848170329948828361767000892642547923905396587121577356093391487053739176357428935638671984842671464043952227912124674177442568885382632519620712141405883917001171961018898395183007044074950412097506862648210045288468419711592671954633816651389951172327758011027543094747428936404048171527081014003543439334016763006954543086209480877124774766844737986122286659392094866850287577631365303291741395715503551380225938917436431017366108571053363985107444123254550740238513540459026029032250792447204156733116252942680054469557945621035855679527353742399861196150846614640656619938979662507539225756451668639196847208079482411743650193744176515987250419919917518504265141082193628605362660947881305847871580544901020628656952669771617542583397047280189638172224778504238570034659039923026911690384514488522453233832195974859246203385206026263536197397120762231951656371302740744088997793808625232977900284765933272403275132588591800933354007809214347675898359164085219112607011239937338500821141278269103589777984701239721299530359397182817073533351800799658633933476242038665850120977715532375211188861867513901767564674070317399134242490786630516519544533286219349922411645431597986169751567455768835838144913167294750959079918684812493389387719833879830116307226122157042869664905743149343960311765206284745727413574535438932913595534886522798447342015255603524809513784188816618323856694041531714005814178698957927237318122031204505252621519281134098638533083423167564713299968335674789251595257025018214013287568678224556540135630292949861823447272562032810627024058003880403220858870621660296474058027494001423213070805093247699154572014479900404300955620103449982321808163362918929626622916412650560363007198073496108565730919234551508563246890620314345014776681304530135541757039991217884386393976962907197395084521476934469146148317160968309324374380154462442758467704878572121336959981126188637021544253292162382163378806891983183609196371837614156509053598966594763635800690127222871884075429694890725355851397189079028172576881527093599789084200345484470707140307475503032163170530984259026154467988406265813866106044425515297852401103127219468383704057441249969434415265770220457509345440784335770734590803011889419821297107830009462147851102991763709071555237170059769240916490620334747225300815087443029902356842488156827303098378785782241712315520671092571210652896164485220886703885604414504607239173685743140599106891720710756163929551164126427938660024451276396615669061852388603814543845408087795658599006326017397435780509785477459602502624357907882791867232656872499503939398231545668835974838227617709443151765712540405345431878448244408792305536123548888710039858786661690361508876361837516320922949570374581844208629148434950495718548757950463216162980444874676499561955288328087322211500527116032047953703540317350973359114200012773713277750565208259858610016258200326745053738834022049401947448930833788786144057392413753076510228620471749766585898412110373188333254340706012401107979624607205396320005639219238333779707747509721011601751098217810569949816692349335681750235872524686485163353263396214961570846421685865720581970977095938446687894470376162655220351120103853932369190753970741252724685046663577836091743337612546830278200702617414655530766090808408934168419162686015112724570660696903565042327958619025448167064000003572680240631769063137082314706227849380303279244984393109184490906496050833122645254709973624814029414861472942444715257292705444967639785480597021839482303405510119810536893054813824874649031182077289967798339252866590765917645281813228967354124090286032484979694830278309599803564586219203354220867184232006650215265657738279949351736348773567512275739052564381772892202369515796825966140619303467976629485120997939320174825355502223324789441653560884294954104782133021421018904460308445015607431846263215958224816501677953215678408247385348157474103840298615723757842520365378797380234015928611548902462328053656466321417246252211955386939484104600901698631559576965188892924467233094162457072771505693484799138169069276386129951320120282010214477509679174762416366310795393873310622426870712361317489737884214558938968386231476594277712160468628136351486405767710431538549582510495027136066987131972827379231881184925631370393011041164652911988488656778916674951763344742227384043439480610024708074476703441985335247029578095630665873027523938792027607591424634188612515177386443436667927498793616067463967435429993742689282623039590930174658910131995140901297521278705295704971455472368382873691650628290697234773609226716145982720671650422462386494043395458137904558736799438869000820935303300805965493491473009368397318506183363306286758023148961435174494399116936242764248362336512270296350413747979517415300371930820959884621493849310677437290272913724990196823998388783758703991764486935154519925796342452071767770433979751016405122861053247054492482906792226360355792882186879346089654256306071258503625418460797779134441415493020777010652041951584150522848066767753255239549405658488407740552671115212449301488850798767899452041555212443889379473441415328833112225700628903450964695332219743791870570758904609994233676072048507084046524390125787330752655498268804580101569997477608920034442096346610607565506411594249133267741971410154097323417556332526494749245847218286817252700153438809158517476476921099676068574124187185173333324188419704902242949307314293002385980598965498542498890668151960065811382410570100534355828406907800417261316867448864360564420964320132425773698987401037300598870227880847021451011447954803237740017231668799773596052190202858971047636967566078369205933429592265977482428404784378108474597074224206570653257345089670698883519856607773606273278972710160310303539916021910749816910224094363104337673644210767615370338582331520331172626205923250859609178817313570896835369149128148060384486855913159218800873696068909421648842230234765901882552083993396891116890270695924873745028487022184681460068445173625857644892757589887592777271103464469260121574040302277219470452547423451933292451165046415253949813527005856691870488638070177260275034273500546834591996459569055645436957814985989497751737342324965819522857823530755959425382140459090880473830641404790178294799285031958395998577339816357426532227050140144691972406139786608633412533391522650107126313679883008623390205686478521912572425004981776360875020547424436852292042270598446517655384433990389121178441415588388295199055045569177007101465536101829442520922150565237004337847760807589693949976794137916445265655107798701190463611418324974949604485706718200537852425881711452549521655969101470899966639431060079909922136394304143471304392269431360869645773743436785884314759987217786212561970844576770961904263426137417828031288201736292467805886920613756090545429631386464074039164243223862954595749672858424149100190204035259408018099908867486318070179513344860132277804352229137305319401535247162346687496654539358850358290716837826932599496398501275815083981060247915504152067220867131438793854472955470270212478968601916582279410660791674859590290905689461737516090765056288085698199349803248824018796577998159712285285163074667029420571492971190978445113658423013677832536276084179994900300631046120688013592545073301503034695900447650074885096615883544565413838448005357659745664111773740682588382180453449378978230202876500524368556711283918984787323844782421842394660612669230323609040641101436468958861653282061076521744230209148649006252072900747690527940237936228362769256985041965610753920143036785935493184309341409755876325638048863057774834172512310155192139737102262127734686953390748700719154869515990251934117205070321935687457665419768743594162458280009088611981412633437016949626890248877766409287700802830016926227257076623397732434333611812773612346648843741457893867991027422893532361235436967471316485831181840946152358562915397166868189134132840674326231083446517759080720012393047006365714126583629232735519423796879491448791922141671869108118092486082289207557766501212945974024505872384657391966507740074882164752199113243864803715388893087758460111061707576396141494767193016552989643516682981731938325041600719684074954148933551199854052155286182618718825842444834174430209741872891001381005326575519978389879932336870050861395896308513727598451343181928814811475989625597993439135068057343949619950319180314973571494972581555487327335828910749469938213163596337568978835418219395114953119480772053282844167668851177091328131321480811726164116026730070785315972196309154918342809166499126427875351161079861188611161280310467822193195631811201932967235397952396275642646808612484729716838007865857775941151470393530463933743816114626353024557369395295073535720805764940065800789671962795080859183682977853221580845893673559402680234406223635169685343923883560590408567758362284336834248888722661854607627310157468576838710754079677382009676779621001288987464858574096976184362364474818121744501037414341112675186587962645588062161895281302289861657860730759048496900984610032705827570221957196063905830877073362782823154113553070750144941940420069393390344404187420811474510010608378124538245048349563814346362400864256474562505068797802209137701269205278085034142053539864039282308841479857252529376079284287837181142714645372299262463059785931158745095644782638878611322496706603542818615758857845623566403530810151033335939593934507956868494216922700221599450752935659084025687934038058006330699372091029447034041897129163188820680939394979550253369406346196853240753233297917038196103500923799230531898594852473950916954246186474950626016736556163574040853128783631607306647880120682754802664735606665185866017253371753098967430575763656992709552326163124045109436661349062355154914259369867895604150471806547804721798633917975250460222395374274610950468278373951361965656525374693589674057810269122965378970351528206289761599090559119740807555853576413101055547400759495061299824526137931948187036826750613975373471820001830320079940088939679500780576009750323989129103228949224014406909028648749652560884522042785965171413936434161486187443396098446522017829443709755778963433066370252640379412799764748081766314567104079905396366428399982954742986608251360011789137797130729512286907271572862133145900180187626498119274003102519988350422388659279985483902028318390031081718650089961329842970254761819458731579145749377847697847048770688228134405017443266213057566184110693434947089755779964684740392939703193693353532546849031245332393515353251398130414161156388373836578149442762580819725939066434992525452143236698781525146854808854911358228923518468164765019297543849845825951401176218840951331385501370217220532810370661096591980619345216088055692141191895446145111470317353874524711808382128081420046186650574655248198179763941707477437233147413676708039280077573722488446998530236557280551508248433037571788419520837833529207866017796765816197095225063710676287862276073207443442915982876454045136037111974872777266635868052458543218952588651441024136569502570234901996897538552887114978796141680199437031494229159723961886124512940239893367871362707302426670209903988707035220611852984872211673295439849860581056139390606720035798593091105218340769397195550264213511523086437850320735418331021202149370810674796828702147183572184701763106308268239256540388855469556642997362786047673360311050229049079896454139883114303981953272668156063184311782247919407360041910978001246295406979319333724698992327512536543425821442387489760030987178750057507424036205710940867832729401785186876991636112688308784932732194416836541122258663387101629470369188711104560330627878710499146685740871951604341995980083258362126706301380620998579059632257339879010920341848068554392945896518287709049433837763354774899361666578961553734664721699789656775331892496294235952676988609909735082453559806479905967825388537956068114426686908729657022942275369557454812540162285565592754674759211855497754990343427524969530418696074620179218224379914076916053716832182966663723487162911745838450125388073569693751070968432186878990580414189621567054837436800931092226492276833685849117146691994638189559706696872087149798268023403285032976279163921473312494826025918145360623765052118112428880243349449369888653430207092304760069107121517090004435058763693591521593504272153070034304083553615476743249919282692453916447327754341568840058907764672131531388205457741796501341754873191733348710769448328340924823136581795188182383675457169006952311790229867467752841067307384802808629315536314261583713134034539596623768063474990254623738167195262963618668884754316532933177600665184604502661170752710109613413005502145918046091968867720797581418230827898704133270577013817951077876987845482843220752004116486716760319020107781358832928764811682656179100952452160946492146908248110495209982891268826684659459471539995366428273844330516472338405708527242814600299407501825282381370909644059654349609793292594303697373884146812370539131527752580405103458644350803277575868146203000638521205043982037427839576954260215514212784715678509797388140657501100467170780902084676531227433777114940186582764226342901992159109241123482169037033321601218813449399688380627677305242197346322546693378911383127118547803691974887710681058740184736971833997655930746397871513265814116457203620826604995151232857864365679064128885453473457963719503746664537243272001042773450736662293180196735264397534592255746791084239115021189064992203862931738489955998677566214881758417137582727454753383201257754077678140589305748148909843986382380118132261458940677888457307857951496720572848529131586073792191742128361680378209520462013682271408562712327622268062696821320258643762012412040881523790479342178867323436733498583399217072310126479508349161867611077968049232016996238026491863526260189760740049342961162866920917837369259808311237659729120111091680132464290054538166896511061481381338114529034505341351193346452138499186956284567723487189217826670753663012937146542065942345492766624192741963571002165589191026063427913545932577425132188249591503731614066849000447088525056011128762754899655460435458922893668266989755823023362563123090212996072187193610127990233432022094814700132356471603258531078267141949121277866390656991172360955632266390855880229554847273999345233962988527153679417245682665234806189809951344304180497936962839422343449296404138639802592123426812660103650269253822736564736098376855623323777259334724991977098449619676432778377788834029844884166856019648402043025353701906673919202563281476229000353146060849669267364313398116735431355334016858123819638962012015652492726113437594201278050672961244770589766077993358275635435549845213787353961905180105490748919358450065822723036385299300695622020340351667233262235524737249248932925506630972293132331019200351038794362785539489889992570280241928948526237225819889709247056558573869125914491534123290838219900014428584540322919554304396912503235719190432893810002489633357551624291025977029232664542219915267790437784541786024996856372845130068319053137940647642293365749950532313777959397460920630776172488561575286863033295218339724684829420227076933121641583749880281438036337654115504066492437092381237071972691038255108666720250411433945807214055325577281759365283704552086457021140440077059965351055311150013893972372491405657510343030668373479968333495086597151315269868820818456008910701275639349963006432894482211623348656162230140580448269083746202611432291962423227516728156833243876414086677841895021895715200849833866234800498362180615327519595550490534981035553329515507205573142908257468133444085338756632712384182606547647398220570072711754201384577149166022283240578506407203451396778412459839528579208629632160291514930901007288349168446850182177806081447147075481075015681824411440265003351340291691726443869203621081043963228983012100838031086642347638692057690519229488735174363092312695910737047075707649818570698140072953819333135099243699319321976504979573556470069669806529579148301490959207829401719492978292977962740729508278804106267218550707709444422181637737787773009613810617552980771992726669239634519311366881072454332035199632017186115002810550929310316931647821738998729197040829144169931363852741173329385366371627211002221984445295263760916706198726950678908583989587423837017344060497145544429484368840922971278437408015199183647328112504412865078534938787070031655308404255283723961504586087007213622700967298853139837625414770284796326464681412638207616257257453542415896058370873844262863636218926660871187392707099406064799588535967367378051180319881484833115620831894448871349578300395834707201807950694272311028216667345810958267135110798476413895665973306350981680584073695437432721638598531199077647638803799457157455089753411648285514706364856604005541998803004762496165674574909785732212908166026042917361438797081378348297161211198099486980476360277946362266512324528634152331424753307321882359782166851886727142017708644359067208335814378168529029940905330275418214931801323520956796762084240572915351270106081641011544971211684982519999109485487052670813549628110010850209994741216854956450989964812401946499131983092382099441631922291437065333072982367227363688634935089501577119230160309390024497244795649218442296721088160348766849777247377676640493553421192090538318718949122833659075393199471997819703557199976839127700794279462423089490896560963277326476627918501574273048164728374884994483589574221092926237778115059475679156370929257057507066362372619208207428950661678359590125729777856712459753489126605701126495700691252015519148307579850891521940355074355297685213964649784981090977360659759644875513796147012426164825653791330731372200641390645542710002800475234364300008259969692926014385491034224273158283868652239349483234996636736048401615736830563408927961369661991980742428104827808171670734911684704007612548974652798695882823345104184231607554860490416278931842504994734610260809236425765156900244384420821610644876287703367059605823502880883295245330490918769719003470631013699591350266085833768207104587270867974403297811620066405331149073173850376401615306616611029508834104724693350183074128245066645777134995066091477517987091077176691412131019009073955112153744311725984001331935914377930034120261024904638182881880883226657353198126855994124505055448079661381307113847089029100996937273648224696223288370979494769316640936990776484166874218186334957345686807784791997822590359305261744980644827845491636882909388480962165668061033275002364481637959087459813579058740498434192581123183802353160236695113943788946560358438517093070780741855269582637801913265837945978407610472045853070939626605709713183778074652014551196675753627173777944428333677461695278229425899891450584255034613805313031019405071353326542460968129455925182767431935773875718210662016308046661894276767829873075091886769276481849750769824733116365993102255645453502733158319284917254515657228313369156470385582199218000257651070795894236528080792009604465173564406285979357304590529581795202384892277971439039888761581562755618216125935855508699170444232341373703197319215667697474843508618138236793882371072866774934400366497661635535327580271600106115787712756325916372187544266513478206847006696943921129019527800299149769603735206382102222114257746978295470914525145462502730766916322776750352714414333697899199360765887595206677928443381385770705963070489089627639394181445873833354178147946374708888185657613197147470482157066754245312835732358567548538628715047710114328179250016332659239891747995653347814881210032282789146136907645035581200194964152843224666319208350209766185895531826074334027087467353709075964754898539640779832519146769610373328355809906308002662963172289959146370794766199837507683443961128167093540135248029440565029134806507285417762694983783086283872525112493689369314631298236651046990373800187164993214288716166634454785398931132037321049425912717812772677943954494651626500830950404922608810890809799973795993639068757143968040737347248650316396091090583599033835129713189683372033004254960821080930538981854946175292280540611508030699722139980764362153086338285316083669146173218701868528519624182233659043567424678207829755158743647801286826086205923954509947760170776373658553543294821802448040350473951066150744480246295775893568623054991401042474096808388132650561415541411275681274332856460703607984506769846527160251818738787016608852341988766725478596085536481445663478487442515703177349364292836954711732905340447882385998554206386739690794372079385380832501766408346657421503141848095486019488386362274740898590437069035239691651033332350737831247362732929687349891951919268759563869394800983751331582417116788412163718241215652958576008871966792970827204443248019204935921561816122936149550230741783885631530954318908410774482517176865483052287750681182255645736809630714639709348822824768016440776490161638150260910404114915511003395134521653209252146469510403756703389326134388845095194678701646204949390857204329333293738628914480737625509517468715575632540234720138220308197674209889079319382272176646069108393263686586261467137552067182174468960773115593067792995071285618942497769759825014789789517329853838995889287493314902307599640631005634953955259698305469100226465710320995635168986702762543941689411821000387680043074211811751714848554662243905517017349454525213591520678843975018809996164658276363730248908765090333617042294528120929009350939216264402849507775546822126940348860579319538051866104142839983845819217796634802281999093448366330063021325086703261253274405257381426344592728297334951901424768428500535785924321901263060169693131938630276588727574658144807889890323608684818044010479230351596939692402030303466713209080688650338556522923739729217582091253426088086500069855345458742458333904873342458880852474882865130351646663678606010307281058810477564422748506107410947844454436500892549363157530071410030528073670357219925182858561434709033410126390174626946277394998722437847610334981488148323206125226266983503628988637902908899892166289281716757896953294131740027257204841860287139287698831410647810224979627791924542672497872691678093152644619089662079840015136102267391434347096398802341524104683930048894976269308317761915757843408657871799475066859456868509411437542645959296964433434101985880883021589994443904719731526549353853497633599960895927231138856545147740622983969380455674563470296426777205488179988651907042393387495605448517504534559431660258394389276444360719861731639187401531905502712460511842554075251660936513900983644803252991351359795247103793017279981033152138464321837555338527838401298613224521618491470586877816167562242217481929661830384983297132274065424465343099136201065412207226043722043738771592322294438595983735806565461230244090031676781432040743452641444834504623907663829565652134670785158281697519537609915749649988725491246677046611624880380927975544359988171639481259674020305794245867751798961818760641485882933982415444653133736250343030087821144834745204316732156179749131305167020687700017266644212073805819182693165061779211149839692043699985285332365864006366138022107780719396426009778110670679150320157279098445669502161646548518514771503761954400784373619848958049765666022454930052344157648479869476405697549285768835311269763534908333025973312339861291697559850060462403493873886310862544331823363262897781443851508957696648384207413534649421761367190267969071900868834102335641986714048244919492009614570370483348117827712029433235588814018912705353762658892160888017383697983481978275155406342694589807525834326923324636587997279495174547389006282830938873548842537004107354755500613748208028470377069187983748819121760748949108333752040655252947171896648098034410469165223511910384808131620076858056187338435573573403310231883139656648421318719166835486924964204620273466991321456884275334430854744976495416097734721794348854916735632153118955673418563861329400608799114664391853568776447972069814549008451191060000184855263195209310392800318938472915495533411041017282100290446383378340828567385937441465564322812027912738843005079242898509461853880898615041465011798256165980955690573885715507355269508421811746978313280672365676359755208782066200983033809719752376726045201488086251076028520435481724677874290207636707505060744795224232813067653527980377026627933583871160946841347726293126401371368390269316332411421946044014140302285274971808493787046595185785961524933305171634521325411898847178086022821008391720601234647722201157675523694910434890049222576273729589564322487398534583394945009200776331904828792535175003740090394891388031836452099770418309173997326218015034669291460556491475640777811117637613881070548030726409072021536405252905962509445615824092518692218731424116537103006035476650681830937937889491744329965126565120044499226148636043222044436480412317089208849883814677256878778675121742517143237086301272264385984290238784666953216854754584853887010830123006910414131333770589588462082622438302206177679333378573125722706070959002234775543320861387179507543085463615507170944749964727457954157943415854702089509712512355132585110119124447056080788774002178604209839334098974887312152799165451654475709622779851055698266688798157286702874770588757278500426574223839356001776787540270157480128478715451070933171035872877527878954019588549485019370378158986327467139051508171242243958589901146403881514568996306328349127885891189750620310406133118626063753159015682544780807106829016989367069449638378405500949237649418000838027744583239763152393451973090936293250433055455060095355311756309780742358569932870547695242022659057358306880095363174538549803578342125009014709921222713912881135491248553855990794375616834651495700538551880616711148316591471035350068986736158022493673962342181788707333528235857855650954637385325105472943612249871486513846764284730795990990881393784174167826007941946830380610240945346201593445523468160586344005660787049644996736482407716854786975988774577007900287318832730288130125254435593631199763307516426272628084174429315337672103694184645303882161144767070116820678529343201782654175266071925588343522726457593429247699972446166241221934176329880001919536613238244401378793583194188338666520659651041637423697017504952249887468902347591226495994085504776148249601848973382219640913267686176879801441227037796044062817143101278656124134867605431725817123255908219338157468473027369790451572778710130568079167596227222349710705797125883287414914772072067802351415441261172030071954199506205373346856884600737543311382866542584359788236242326852703913756126367980217126517201768557123627033230272254525039274361776482804557647271756898808816056142978482542928024872966950505249634427117572314802043646069892142271618366772684240019308972667668770238611147499789279520577349411561813928419998867667593776036920798965964089077451719603643054931081958516484957829497148553410496873625373456267139511222370590316058167728874206625662749096372747197985004051845869715946469370141853105991208361069664880455031600925479688889980453122185240892753157155933706361417797512955214374830348821158120088722119611835538939776199062996392214515386709731062608533116141200445859822020150841008620937649516432775968552603705903401790306761127148455710976810129427115921385472296500688745919532106795250463635627079851017773249786611327469785941396459380955716858369229730098107153354687228573697422859597306523103453687541996250491002533434837636471049058525645723767350784505298428657420496837051746408117212887612947187510374456517495181530443179040119518779455232137692508847241933919907092912774498404930001756771538324123307818195211247139126133461573074820313015961265992766540561205470383147975023925001983247244000320930859695311931679125201954573067305707596079961492736112470187881591126095671095962846051666177318201124216090450894128968157699160203993507513655702100296923281014397311021166752189781667895037917666019150682632080767368995967498206643881521978573109722065171479202215737853004178389512926370938097019390314957944837410747685711243886442290462198815031712780558888831117002352021358098150137472359110981774134424742514378940815312598140334006264909923157847453000185595841463570388587529521286410133070556051360008566629935920391327010082183829530581553414560155397703211059370097066081903164306670947384129243061398941307023421663312945279645977485572400379290832010513580351860363179612392813279834186032564915909312103616184698996116930870640270627146160222556901147953534060626706170480107624080223676906668389873894571000499716374713466379855645515287760087160581329364629728451426929962580253372121063246772916673292907933058821572591709038857595288929606870351568681586221500951794874457546782602027076651675030866113614561798475734125860172611371909221270449087419693223296282708137748529120799343190443479549489864138870108114470535724561499715018510968766742679771442912606343042966605156890084732756880798600886032435127314944096406720810681293938128075882259463720952158628899709445349659465512630473846602362122045606313308363751501616898669482556561405013935671035940612063730490341543192496033808059596777894851069318767351023022381874998327342215377316036715003858639382360035967086745183169687730715568415961301564586994960229163290166908832871667656606910433714211277927339461371572084588373406393286558940246732352673149292035360427269256102907927452518109343066492899910718102915263542272813470807531118794637026928774907001549772778803026252897197116573902615498493472978473403074213269399462063631011572070485081891199127253371920016716528330816113010012954769214424030946464553546537368564663286192227733375971746111748590622160213887236654089557445712396168971096742700697702304835543676688551468078913121658753072934549981271304324466402629508917923166137179673880712519002114154524549396559983694265980833264353154196214350854402882453916527541447395428659349487882118373624525280699195684378474515961764769653741789992354043469921506893185770742897444238408655242606650280188446262568164976883393295458357665965918086002356887462963878678927726621497962549947065107911055305823885392075254224349376831376454225934268602952729756591111483244747785466786911917756811366699444970711288671980846697064060722300612063915940705652607464230530650072205755356198481379701320514651181353365698255145615528182131459488371726903646483245983860787079340295326286226265481679107106937600771819068101036412108556765065651950556138319526899809352962588736146935420048607163329329188261593789051767582568716727265942546957485563577155563055939369654542971295419284657173200178153512989777450888256461025843326259046163330640404132900287959856185534526910604971052008459873895643991489199926607621285022830960100405096856192451789112297480884659678655561129774144304269682830067929183048026557903023936240853623109099284264516395915792800918048020851965202396830509415966038658106805440642879873887948928948107490886472037026628117591478220932587493798298822360468698799080144408857019112001400965446319006050331578776085788754415425435992254982939378643834333504831964026771218837314999628619028914353912574795842128456348042632560829699600889172739281571282392005848216138615014343773426835564408341672964776142240398493845047561788592007131056369095218408923018479174955666085968264896341944963864768907128995105261692590801268164479897613927430416971160217496977530195574821742673590615541010166446020493183537005075624255758834359870713850947701357117499659042104899693150533490872322556530301471202680699472744326433957681186146429526384833406317348947198415090376474791169987121451273326706815212907153044767190760955870601170145334654135176111240382379070643421502157395393031556353467548569233775462108844265763671379882864281936400160985209860689161564071183527707371648515033717905896355002105024400677209915736621536124222974673771637618541864053515253853994956740069914415545853395375285966611527790989442485445722620605937652236575079905079996598397475226208904834137113371093930107139658839224030159005080753566206008048616336144270974973831889606446146195647206990338159908527683767330583595149550549187648764538658258738033218039028355805945420025475041544941901568415257255273455392257278673933379323216691900336958108542590915207359962783565901134743446265988782471409516376387843126774587081389039848357681847532614300365014518497043909489016179300296699146316819331317375581449313891511913371232085147311827773492013171691765367559163537412731056475181307207096818405736827071737661498954790949412075691222671940806548599177161776279689100207281135216886639811934150672549351336462710418398079598923525438774809855390558383750996465136258293346665008719123765971345031208884504635210449764266400889432989752604563331169661489533570136204284065720200328173781407320298421220675787099657933771873502047786207645600806859600093385642438158759670204239865674476534604141644914408844076445942516924486865987528276643741329800587666176814183900875436082647278253392862176989339955061254833969395751079292901161595762585693588363804419138265789742999311041111005372833423167010771929538482113108865778278433903530870546860273340123438579105005427088140633619440631092988607366672382257341736603347242983778426835012722653690767069432868007523851600788620297980513826330739988308146218672110578573074108220344770045589567600501270517303232196758181467872106887265305829968032625035546386187975516485164137027444045568049204146789672776407811009363561454726058228155596329197417082946169888964816533730370500535148041492246319165493995264455249698582371572106782321428693039970317294526317703454296729571122917199157535393604643528495915193886870093107317140935090428278012974753539814117869201589909167529931545837921523227270543209979314374788218147170041458561211892978030717029482339857392718258153097804907662782187844641441576417946300634575015246729559446719509818863712492605264447234815325406410402919728242859568320329042056686605312668632464169889288633920362729293159977906920362315555586090115522864494851702808001511206157563099044654470524215683372178091899004919636420983969314694689651909466347584530503055491614835087313432645292285469177581332906115330607313099514146838169570763353293275486109457439158438836480745962350627903057487828111281067714166198513371295365699884002522411370132459452837828254007501253834488180956010644347063521402957205951086012089516854806949364810384695348805324809007773809036122614943695029240511906564906246688636809792684688074950704253495651395741558831061459483400069715840644583877696269183308060663108103226882784216538122540755370659056665916387353310653319190970280863072235755506790531092953873443179316116689588240031031453056500830456882533185968102058044377301106171578210927161623367647617582260601444325193998339815680567761754866443757454668356149410847972116543033840991864579320313454297217247812837375029679118375123444451850054209138130954526641076468102692315725752393928917798561358656087032629272805473532711114792154276926750812723445991000455179504437317367746763252650616849747148435001842681111392559892191131210474514550367575850032592081442968531904860404137029994612461123312295305737194727458932039021606154496280685695021252699652778199137504107759568578217800683368943291860046708913042017846904679088202303228479725609217804652995825207560684085134570364343222879865647730251167824259559154034423561067498200517082527255748976240612275618931986078812026906460456663207704849827197357497407023114800597811709639051774008066632387627730713697045125109088686365747760759391466305390134725337393767911659731518254636940191058585306466968596707552466076414045311443854110982107610557489968853193182160491223582848531351124250620040998901046578006025208811764570176582975970497319985722014707583766299935469194118350256511402237291917551555907566996347263246605388689166735646329113072686058699144272990251565455160790000332905923086630778779760912456413764024374743051860977729890640962124416105455050002432316572729278334079129504511543566243854564853856417116685983625625261151494062226623956647110971939458965839921102481272803156432044192069541170414664516706011940219680306843720743606994699850158219022325868048026302656942120053673903727532869431992520835029319153523096275478526910749805138569929270941253505351387254452938570798566046587865219792323810553384436126731136005113635197646021296166121366136024605262977074341403142447621530921761308440575678807994494000497541690859501905832559624790049780430182577631477458129926913864195984703755080359592096210939939885011475481078303465348990416481316540435717444418696486682969131271461959833874919044286423887934069411066542735351909981148371074596719534963172514844983832368145902261116390555837653858639341135836639707575931854254826739332166857561503549739418968430909296687499939692103378716828686591698929899492487575835884746978032356081073124213287565426846680015169099069569034304874680195488117149004284399362727680401631965778371269233286553782639949818526854033591719129132130397337378049221489473723121816198840488205402113697283369208142099078958886221339162801688819212266938048926774525377808184467163229522908689151375284354922324199147320935172326240087275046127176026950374817750617344677264148127448866190853822898173633139809732952416840881720858984989208972888031046388325542523791234398356442584150648739312391332791825341302990053730719462785711878823289621601295031259268187953974770507932367944732302812424387576760786399602013424691604317652201964622502248958358274501805738097896423114435706640671601085147090538411249890789424571690935670348519877519578789285448529804860757928709485647683940107297108129764288757486832269907543703910393802021847681311634525706872704971241698050010130428976770174662607664727280251339400141960179444329829811629935692761637875281881878777991828916404408459103270314411016949951834057011687206805742448951897538898706209980948309978541366493927577472074632250788610459905903278376090195516705294344135436914458023642705864286060492208414169080576526206342891810484471554860570702382473771386045775739106893728741118402743732834988258620099102145426253459362772271228276888327183685350986700817234921535723074856426461859335050492635752838216045903705230268558988099725511675842878500678403191898755693160568636400656363195134261611689076641819081708937848715048598537673703428912241382248191674505732640718485792096005542027496850065898065697340365143769117853969245485965018486919998106473913859935087973949938682221468146402817181273529864329415586858744702695869119839826327079571139586292426903148082772049902747056914009423852430383755129805689363918386558574921752672538678560153996603271539515652374947848464110756933912065165302667018969070519687345819560778078652132793214121796862484287806997209416312357698632503423104083671519806844500451169835081560989661027046281400206875275372853120383849935078758723751165085400835672447049672151247467918202177762916900361944726323760969980288453634670763923410602810061391357665085946685507284205646765876342637345900410553855553169187649685989785422196828783023646642950670511976164745012432721657196844420814399047853649618427584938797848140242352539495728757985991241716597832487951317190136215381209914102494294872258791594935835916913605821749273076595372838237485109164577276793751247538711075150433970252501809625526682698172935059321304308042462512981244879607159878559851090045054145507197964554916015933778490325553350422288879436132517213674494389200529921028430295165708985156906902013285149104606028613821434198281374851509000887037929304992683068678394032448554952206825742592436576965087200951903420346251618336767674824731915271795193655332438725072856139438516464094517613150860149106279168970091495700797813740221663578505711095614357069864187722393886643286128807710331004528934068251279345184214169886460284191493523231879232367674762698909687514340094972110720738395362759505869932302990284322442256557733722873831366239987281172701478553568605588329501989126956783740327704958590495086913523054596653035693303455566553200538234484939593100636783706690822256979649706506063357692615752329197147726766329250520768555943113592931645572098851328042861259052685636559909273953548258743167224915566797666967127336972306902993824003428118561821256192223396520997562126643042533659875773459758423845598722765174628409966898447673852488342076965519017375623985435863236981206293736771468856328708662480222700330809555552321616251952079518098281491501517682816043430172815761561263715138410819600131212988208516739885145459080725423403204682441730317634004688020257959288989025453680161295890742274116827330298636759442457784512798320616258619568278104968494381320114870141160181834233514249549242749335143216676446697826183564289490083479207456574252876440932753526165210823555352850997236910721880472581533885137695936113108793232770652248897108213180156128271706588184596889655979432282938164489700637299362070765088140508804591185781490013219143372852218681199133512651241502085731047398486525171912970519788187356680544043062720690717561144139614605333942643361737526052044568012680684447879043478954643233531618241857932319926983275738572677692106586421801833321321966165102186462856853623836803771525370673456699878915624533991164343289790024004435592658345602745083109359400039051765903919230115723932014151628437256346138035614082446392966182855342399687968094931452979435169143379730255199946416177011159418711957228844665058383814634475186670949193426377849604880180488919935031409189239261201115800688823568960405100885672984428385110906003361711619171573268010180086283865058845255312478481028231130939568366518992684902757363622283337779521882925501994304377577403566710268140215362707744214418333116659358991984007173896098118874181698727760083286399318684690298198037420862484576297780150449556823832062759257075713567519784960061095819098668256430519339304921775435466064059445122824590342897426445031606543730327526175427757075994659648231605800899122668988925713502344624955248414406047411995172578756534661237847179888513010397100548856871838689927036243409764468845985679070867218097513460757771460959667602494584249408168743435819529286925187607231706901005713115408856889810673860435771530685615037913693955739878321338005983676140595516885170597243483614828373239451343149282273714198320042585663720822146784361040160220650015551458311277835017003803604469540445973179103213033801314541373191748384525843820693720552830013227275301216596842398517497646683416304969903590745101833530668036435801155396894625234122191954040355984026356612747138018994343150764389965123380158568495170871469548697460510592349207483197453635758211290075060611702593315217655379356188323431359200256074890851370273389757351325241708562293596814393828723073700047764192151881923257903461302362822595043504554737060632743049698093446044424730356793722588755347694326057098676210650229577980758284923434532765744189880536455159762797781469580198624502094126673844173428201033469446581344626096795381732484721449221902840618557929885584356024144696588962839291870339606029233831533386442263380277014326803216552707492575457409409398964992937303089704108673767873245070637858092539546487381817995170284828591723661125801022015025039687619445703999302292620129531376230099050653673772490557951468918184303037966422585857874898189808105455286990393963474669878713615781248716553883367550246562656009190184898499814918073702910623329006107446928322364456658731910842133851756047641390833508098415335787565439097609731423784309506106173718731346266157726257328731327884462792636554217931121676533496308835457080177961241953334149640536431441454522745430139653149767609266004809520383661150307889748634089901139633556737995765050214576234196259229969231099255140758350339381513250110050142389411309437846377962093104138685338945409793748844366884988683490450873763999531424798033898256487683094548351496800755000454175134443096834897800283965054614459343113190175389210429153393138094849179474844224779063418382686786084746867467867056933698886564101599854654968049633789184875343831067389719719051559065816645623560661951220304459907090768030541818884118923941540665214615759516055640430734573419717392706126435238621994960609075271373042793116308554318369626944384665393318839407776023632645639625851977828387465830445060811069239090277086134180383028079270348446163639440379895963295240013954965835818411698486838554913866074496743731118174499994572516942852447884961674852245580677655007216611592906119522468544637277341823781484681431549835760047357273223561015025811990158705110552778658354004333268181021414219502192719324450383361260149190963138324767237216983290962105859269815605136723824242431918158818568987601907688198534565888894332963672225253585853196862817121279106457004258181187820818530668458890869404242891317267373649001149371078435460353461961252501028492296440835355696382109055366091587686635866666729252318338030745832674773426609263445380321100030733777142356925053527633609663597853558052947987042523103543738587115122381543976247535859292221352751748834724159681100419864780391653395915289057396978417712795701694067474712513826996476391592972707453037148822379712998240577165014647487489960045072733903077814425233381135677077861769711692023718572793281802630660418675216610335751631049159480576727235317120030909051524858319092396781197092473696176241768704768458443989159293135567874742825649137749297256189341801493899127784505275185832512683795707369126055158839537427326441738167398936603073423288757673632261136767170617435298280168779738624136885075855789135122120196829999839188346738960503160417958952151885577059207308589871035034369731011097504743814716438163595192514501820662261878325575759987142473902233756166213053434426408009674139297586370528130883929344295575281834849348234602616462403600951705550906798774011321127495937110786706300728675299186414811547938543778066346055441634529631330828536632205841654409817320835466159398108393639706404213589028509465253719395980652001771289146320890484661487243232066887447324181784849052707813080671402594307578237744745389609818472139303802142753401574796188228754580127969191942698254652547637237330598731737801532272238329900006052417284510649076284807832656587749015782616630021639405990161023341824734621852791272609286346016394726213983963469372600682786208033519962951222161880492723954363830162499010539694140057247925821788461375711100555025416457419940068109418257190231682744477434274063097007956591923034555330712555813372780925102868239398408902428032918450820884895295439529190678695751823973018210640639977996655757353934171567759871857267492955875954291135928517362642660486135527917508283111214952122347683700912359402583886288940723255656929428272221328951245014318654749859643094892518174692561314317123004309449188563576040697468969203881209770608678194237129257399822765485234586849049752713017005408662617889199425778801249626045275385564548749888711669818363759388243194581791266690924470347237369359410899256720712699954699404499109789343374953028139792108916881397172065684342505301862044635684037530900612875906501393083096841725227446440385446208984790822564249506107301766450760986138300735741408989961088563003146560553272024708190847265769637453927223616915260531748555141907079744276351009285325863735202417881002896908028091202912542761213469932724133469354595681951660052546899126420817329725360014712294078695366265013141386747813113267667439970632112798345947018930794820879145737887291119396835245914431396877492689168082134457081932262587288415825805642354730630547974602875851263431035381201451357181997733489455352920923373620550446367002513525767797977382296343188251751569668865147081287293717970141207957334787796852223148914143730219286847660046134619707047002113802431951729970986197469990938847908714335897808287230574794378010124179584372564685432128102231100209294983531702900824762300195032738770533580845133616508769948787315010742995337528234649501945329439009805031771894410095126772091622629786230730011421633473735753659935878426501067646257798752522327234070484960421058278945239158350284762579946923679102519617913650475688069847927374022196557592249891228608158234630815406370921857786620677004402029949200249029651838264984465808609084316292676230877488200396760895100474544338438365661558895935375229542982979697414389891619778482316602431766272675079905833112605440504604509694136766644000194565731617854497475407388133745534448655585342729167338919171772086636635610893122950129984754528123942784148784641751999974825237605321475919791985971618905059179739680269671956677181624238802881140254541176888617041801242445653026101192914670164318241531568528695472048484007518346733143168008936640132696964662550936993330002131887449981151863619645374414497984678876361071275220900257506526395546544397347546680265567001113125488026059891706943411506903757790122085860001100435811842229649591319723486706069267231052902874783710262830694635122742044430296061298310048962730142899151426996106428509278098452606081605266787788776179730850447461739721881679351948479914971012397960830491822022811998410199742661977038968332433795615644046125012045717999663163448705883212754090294498845566685438079581958969371591486181404112695978662612288231150018030468880390976666572216391009476429203671215806882189003775055337037688489895956642760173602426632714740034353942754732908467558316782604797171764071464112050320098613708302846292454618055772217741743397244600709785806922692582845457102006126552060586444789610485304907745209745509909845452432398995431308340493614259810270082158513467914236822353103903083778254660858992501192451327624319550406269675124752612445194772191070170438373149542380812875379215205502441760857715763134822944912019116145389450491196934323697731638095672819554201721000536534587151211421871204756915564671891611502222387788263960307426203229650616402406441952694232957482777100392605971002211794497380777536799002178149429937403506029154861680398737534687308926718429652605700021738940733162624119286618391092672318271494354813048606760768124066083670134274363848989444938163704605455025022613596255677491175907575408517500871459107144386984251508418658332033817805694056613152968141845098001933270991654549763397030682707508319365029274663494057899704494687271456699588227727929081068409135856805011016672948056085022969491020804719302017785424558613503436294085069027138349304824387319164988949829771365659502484602626094562129921952710874806854213961947669305499007787649332099175606786240166779081252838093485366808666467224939047637026514934449599457111973407422625618346805975127338947491828663761793836699461274535011197305975200804290902137331101267153013218545041134947050388950223373116033934984347738152366137229478836526182858619990430191812994447067758369750323101168264137848777023966977299425075578274791066017946697688010122113583564014516578525714722348449859481530026293349835941637084244733816958475410720309398795945988904602727971622759544786064858421110188363584423003801963081702582900234476147173451594066071877408295128559968367374489444313710016450813542722913943067831263542164864842855908317324273780424750785487466658710682505109792660762248579343950687714470932679740698553576296875014209710611138341213163017114863974385196670729532682612211229467480612775234283075918009507600467669806827723509930877201397916102308223958506380516557914431971895965658355700632785189181548240192017211798615177706097658568263345745274997145355269790190853500157641651284206351647729950853661833087883735532550919604480153168704588430072467353194584109299399306453390938525482448440706327773744075141196337271731264792565921014986483538106647752145432203976991399287309793490519904875305562251452951630366177858389462984732485573034949949565233292253333535084015426709968740540198233545491395959499282016383447362238056543624601371819782445919826971879893347672625442618125922196668127089391708776329100670783910566046491642885142836052293314590233673455711897921046375974920103487284238738462475414710658587633829469515064750218301353503511856337980494874808434859448182738529105871543313671882758463800886168136672666478957772785519277452343302131458249148128780419693885103122646427593991660224275227520201968166977115033683926532210937525871881908137072111230559245569502757873497822595122166327256336113330859580292386346404606552774637026816701211918438005933299569027220316256599858051856122649233741002604865856780450709179609320311009836312785782176727894268210978783316746112325422667061050463514967112934095478884573240292656517485619107658719978432764122114165264574032039781744094881570853083941267050495531738756714813982426753890097922945906807413570208555515203074370489078144713541362723358442399664675776998769921164216649328235305491797614193603496886565246657831991743371879984286057615876033822497838443818580162511368885351340243313590233569066553617506462609679853578784113578942955168153961908281853248411246048470235023001032424250846460269840041932023207431042067483175781658680693697607781221460991435765671067098495392590082562440803701601536363898246370139314579155785230688802873544436083874088183084658272485779114893112515064391736989231939979754222215493179647644142147813338496614326155231836514759958507673446521341949633586685702423423669247170610180393186061810196981599081581964448331746017253413702361124892264785981994757000278375442123864599518372116049632218684768267840779316863191716023857650715298421520035029649395649652336381850162905902601129227118892757601139919115151763451354288268332650409810244024235801453003144405874166168559760942514715946888982828869220788762650777980606312345401157731958819711580709129747105582883774555768292405989137215064945870734779504704003324778457550982412974677056585150939668392220270743607653125068881097952551183742580287734417542908006553205985463212847706955405583809972855871419368593127565068244369589758287363272007761477290745836079418397527074174938619535190781920058665006797115779263714865568934392280771371409258959934931342440216289660995685679012007371928751248353248911432994504590292792522455277742385259999312278384510163288080214564285384134851404594042159152120626924634020289317905880868192328378874360606802140244010457489293870830305647239045949555348947559736312512990865622606606826398033204138301146740771594097100836035552714409987092456378559313541630776492161839965083207835469631538151676594588328999411381736712990219618416878437688685116299095405285193686067927589016206945457543142899522858761153703519509179651123409248754727917993610322255273783617862967932749371312208208073707366660500504232875717310847246006823749960727601155646445541031967114888444633820380805824417206163141698442416774628816329191629755446499320237146706724864988729773983163800715693332053003875644318240340696748187597938896804347948348389295426183731645597065015553654972199074649912899995950449014913344480386697584514519008928012192926599668587122869716788683577309027709215287399769647140521013347263949620731743511040002819017941919384841254346722813285124392753112688197776251358221488923685863429297772945196411879078588713001398929472065601984073812201165140830226686314144074728260105852821512608158267145832127071791070141044763093678349680596730512310305614130981829317353228247237295018357613344507548178506147744883667228409589756452570273223397639286371268364199689601943929306439579234591184855551784454171118692542724132157093807593682036419082130829179428749354388374008752729421000048137130902651624961346557198664042246544534551481992446290262654987656139286185376793371074341278463154342086970041210081534347189805219723297073372223518958903234488826560106322527232358608208423684972272729443233447769458489210899847508993115680598275740905236627725965702910925480477139093056977570690212687715918143357584891675247185047667955067068346017031061515288462841531436357074873459955761636055221670787487941843314311300368178178546264648168583466457520442640215842724705661622308912214357285112400381147252369285780318853876029278907084607102921762187764614464323944394855957412284414820907228508384762664908502700610753105084669367609765817287298192758387211179870980350212346593485196147959157257374276605235885409602298355290532727000023141397698595616169220218017874125254483778043014903071159152671559754141926175866184566468414056823909000004427650232090946578973893436198114220344431261630180040289111879347328984984447833294697755910613142549513807998699497511668197105481105596457044842825441024023861686455754450749865864657113517177362816882233407530557920850757697698692865340525537915804948476954068056016240936487808027666878650942380205987128295936084974859967830801218447656194149535209624429787048653506041994039661055492096199704148317028998813928045953116704817624932575553436380778971868864317439554843525837126208927530475329224018758164204963355621726587859441594303074783432789054265727624397834914169068430757870416537332678979203443068923037812915741679965651678260684193697689535300071471575459583144467081448940121732514113416883054744893391915740775299571250905283091103613635319843917244025700377856315582515217761764198307776300560719288344286243322629655562914950853904891131529663775686536949153038834637840592130990688621536673433069730497390781212049184222415910541726668551709463554684634234410059369471072598250523691129782559101425956640184019379871036640469897812917510498889879933987181113826663478998776001213204452333743553453658529838129600351126546741842604938155723495537209999300273014891599606734926513238080070867701020664249933063780405770946256909681137269837219345946442125843483580160872282634774986186085844854220238923427886313739680042636945147477569353482746358209351442997211062932768846373143475869459596111782926808041858222085571597140434672754245334393843845631692933746212723160391085990629637561708740991779904515250041252624851970413501459757962215635869296276051482196571535780995133786970298232410186506026634705283696974039656512573120820019877700593417207721999318041945091468451620731138497104060839791705970167645116858858506621921601327456938310239165666455705175579260769595362210034627391029687223701886542836809481253463854136084382027517185002269182192701598871960449538500763858457045078381555900175130952444708678182861475846425699058252411538240441510308412424803786981671502200799090333526330932014459545252599792107237901640612376365052069764188767002228373948395948277094109235464538749947546797612448209322072904107014841096903795543649283941579562734296544817888485025492329780335558895794012563052199570189973845513244742836298551727128957327722086744343827881217009691928675722780470634800641470545921663483884086496846111004762854731375599035485647627866132815325394252600901553687343591611296022857423792821108721493876922058052867507033523595980572842953128867782799928166792719697681103410138499226593625793745654113429959308298319216238591712586293249334146572058801092668458216194978108853282900042497688339739730940560282385695727294631246051689642230142115624160522216960063792152045648642937005016095492232336804736194880727396009392438618064140505412110020191474545720655273335159909771597903583344120346267861480590316917300217728735698352993054647502842294185525600513400670536781824439042077525485388104373386519177557614553543853579039544391957834571879999918762768194815088936361237693388393358258900324835670084411709988463450021179661097437714434046716031643318963610198273029698374245979755361732468447723296758528872368919174928424656544668741392662756070045850570926194219309036460888051216818419333136634137127346312516043841249014811294558413678713933669641806041235953733969851083220563811777619607919634614437190682385280613246336015354783115328777039082340258610605427197900115060500893715938903225854829594683610858792886611082225233957544914508952339097493470025531824596858973943081432890983107918962773673516186885299019465071652821252924123972346222107269429296558135906165071380566354692687903275179877238699742133832142555291534244867898807916295194305553880105494499465146006466358198551699198375643660410588422102114300603485028314745468080089729968786410736106383871534105549275797528200163412798597895392076709594970271475695768121991252873779946893339014129692546632436763698295350167048029457341128923357137798433977507976897883182397958275105477985912686971874502042142566126281963810921110319126724422370294155173680634840343602058890954042965104405121333938745654349946827850877304128496856690124586500140716320040234437389929245058737807099415693931401627871180803332655592643606898828856008856882280813172306224771503325401106473310848339163502152803877609531291164880006073079959481866246902682660192851780934834340995977063701527870187043392962397483567388522247027793920388449130461013714140406930186905249507986063227888155814174010939038950985111261671610575749725254949086451061443981506975395151583484265082198150949512084827968814862291325699862817813878307151848894723209356135497043402402782735752024568918628440955809760807751035207795802447475550223319285014162118086860646057189114356895961836622141894580480769846618131671177509006127037153501243633309353944247937223338127621621111439452625905197979402553258799589993078904724875570736570776945153654826834460671020439669850955920502631189729214447482960026698599893876047023087471054021417285950356667908314316749206797839734458549594915268633947729339215868522702671711602174132146231634079119024964467973623140853824756280489531214450871837460809036178581417090088800626392368297340526884584326182080475034780033870460736926904438234882798214413145759509973979791975175887832242076615669192687506151597162891525620503611258481385787213953539358706961969163462883483454236625738861622923909619506508319109430697640155246638225504312366365238207443203561021683081865004961169642816452297731981162575268206426239791658643237389879838355061362279662274565394770459659789947119446423766381615048084465950020907655936209505061958729885625712515076238168278489925033862631131273183589890031296119234150837891313773304617717815636095504040700644597257889192414800557097146604750273169222129515643046879738612415270844620088551597101424049439507344090000740908340317539737594549820645498238479710414899157773140415355354970371817313190415923794784911673643182387005508538065114556012996105593777851935545999098532815416208193356612574183470069697804236098838353982583409448161375332066430576208109144237966990563139837785103175409434811071704095192613771524588237450469749288692610543074218099714593965888009384163278622959074933397712527630817134028967575979912808017274353055033120204055532210471538269516922427074868270358216292739077817263232396532831922073582880645681971696296040181216529736655129207786956729988666845968613482806169082768976424604141281591778272416753037567098938739647139808289839335510376667155130235009941173552662650332346604531760734458189151070826236064197647415577560720801611852094867159270946249487114405040447489493921003024095589181408725044190832300936993671822938279351482919673378580996451854202889197719967821863127731317187772716322452155727864997351820340044150684421740316505902824489294629694634698123627128716135125768417636597947063834108387046231571092545994585905255206828330485857799429035656510184756089569865937017612342276200488133659498288737254885262050438446175858794685936737269823154523181397191370305113549898540138330645394661464777909908997230247121910305071975788996912128090986153502501678061624519369949615940919406941021358021114475728163379575332925436864452656632411275829261851093404819179190218566873512182291249658954319401151037945120273224143129488686491091298125456790223471755254654865081146110284033189127533735062077180134287900778251679727822155883562361460772206079703353877596711654527335410405135473952094424224884549315622495645539098234773403390502446326521603137948141954996596855540932060226845941151365795064998745477910919508831896232418304805151268227286703931512770792145781290630042243097867285822960262687314527740933067984110161276106335065984838851155321727285462160251433692308210868655248718425268223981190976116044034214145024319336452759608544023382644716087215662195522930862939529475186374536124314208447057620903640333289862726456105156136708882559600948114606942991154446043479969064635140376606549094780268121726782190434892873305849630854780676472032064215201261437098800426402797302115053027285718121404216226269076122958309743597702650429166985239115992147804019844835593812376036637836373988888309291755413610786010799609221130534503815547546150646721915070398155728435822224565830446558776266889718254434646017031226587131071766364922714136660978796445462913534548218843036338535944993469455846329968343816659167244138925901904630993623704358727590010864262383480661921014700936472362363802236055627121307500800260818416133461459569782553617836764025705809289575311704786307536960511756825334585776610441172517348544777794396101017442115899176215582307258198930190484798082638188614963273089563484432909638191879098731524811224314858116745004376498667261762020481895465775605338666258580752447431662652632000406652808968911141218748097102140308375754954409811934641868100874774403274819445125239559917202439158317636756277645211542309101406356512245370279351272209902953489553889125493373442160728582275489598018614226694080144280348383546603548019793573814998661042698680290109798104799440902195014626699593657975881250487933258114140920929098194319595298077392680217053848571793971075488318536650331472762250354468752999405509370736172649264569701634309165937873919912277459539825311896342440593229526332551255350212977734513330142881516462348387030019396367301146041151624814170604679164979826571086416392355444034757640460322647734273240626096452058912529830690442950828726484147972314025586068515099187663197979372600510018940137087348994861222748883714122635585855758921511307066720161093712234806453459449462981777337933340097186594714147933036696915573983277558022066780566672888277711358378461281078111752290419581838909100616856068287813938974296171302374723968983612236178578995493592886701888010686286719344576227234982023760618982612659496593552319878053514990134566103842263491966916937123565683517547422227781034029178560725077309812870673984076382919206946334816342290343395662922718881264604777094090876793397598919418796890346533339480609475014971340879594836247079715300829141881587077372084284797026997652497624001629003926945784628553810246363391965882574648583026923196240723528974380043018459154871798430965380837343010250664945704360803497046484367203174281157768674276340154030236247989901911413385588703991670983998304954891753473861267600960616001708266877875219832628948905192314931267247888173857752144624321004682326308259026230398799360268089599117106321979479461168872858039786820779728486024033459179066231625384968456202547973184347373315730580700953286023207123681051488548045731046651011304160932604343827602385012640067303777628492108899320148891627834774184572009457651119211482333973895792331780084779742639929944550563725346779591475156769124643889930813392606231725935787771469227807296879801421638983425789607568888199423267688944918240051809749668293292351326922853773823951909395294362693111790976101520081535236303156634195954240787916389850192859258662401147321664161490964603558285385108302994963026972623252854373736503755987603675924334702649766307523944699942990062197176668455053195020391058826449877941091724367707943845664588999087922242441286080172637168329226614935992896363608157335239591014458664123328755104364395965665701332013863033509764012300314300934061261873344682520276928285344931608605614852829451791593463632490430749644239124675209749569898203995080872599728389634442223656906462899851251974552451095235364096037459669936456947213954635749503967742577034325638565046873912699081079191992807544837051270754357287769089660547689084091913344146761080196930848248843390701545094079929327229572192704133078720894781618446773397119659038661370326784287509164812890652489070457117289521571218063923755474945158317618221606217972475636326828455431931184814451819447551103017599808803180780490718737631688481767423857258087342579428969245618902720125771926192641475020910456520090507005455960837236027534523254677028117211383891831480393844080816213065943620253805935922081105991261184467086295340792248635011683262845988530499911984941423192118621937058905825444009211288735884007877281027238613365071528923779323647320404433563970241816004073890232570532831996480063802154927250831381230867131317295570657070657467795885086251910118174468397276363309659882592798323947914443413352918648677146290084281006676653670771081365843863477697576359505006850554345386852896190604567757731589992218846018642481662358561813803118692300715434142770030783738897956051329937720023624276947381878111150880522366904620091788799158500454560001221353405141040044642459650556408391567151412455143226000387627088776169751701203384877417804823617596360438713086194863759895445638532578847808048110245270542700699631207369287791443990177698583278923285935391825129652408413755303028490195824525320214775276911328444641451243134035570991094769751915191997876546151628494552304306624340207760669087370711510721560006872617537681274717625647547055721597732587395242473354275110822565250527950703450066804208989392530932648795578302111278331489776215772785004652184795053668596654625060259388457883624549668269296943306715278769491159056308310186449155603391285759190510914295606372606742978866039028074282041028167230863872745078229178373741117155587632966709124392096500347035381174779591342314786846975972150547989497974247364692086773566825168976881590252398044119022086926901320670891416933909520306012268257392664881542118673681442056054332299703275632249586345408757614091734153532537935714865608189728599181041530900211838110777542267846747950442487760524315949112509361372581387332254488925262790235793192434981704942795079118742305909240330604794630600724482161352091952146482254436576972473858642851070488007655862521254575726524701921309411618464782125424837315162586232396606778510516903628934647178787657793484794423803325985047653632131452850868661563453431934226093409994018881310345819857240798820356741447654788360044222957187057289493159895980624870180436116273145294110735868711632001936651464002904116700880077552460328213332129420983901251915602365406780166457064621063781541937646307885473189498218995507190743479330092989427560171128386891287248257294896831975364441819598202586737107712856714677666951239368897692011964330069130760627535639767079091621795924791612149557231152584195486333039056145542951240227968882573480176206079074218701532428950502477458588229273709508051942193938179013454784023134600081505199115297469683630240327001408221478462642151925207898089536376590528578207643822975088991472678159826665380294319587278927829232816324184401455394495305553581843847332769980981818986233212326765175766745800298399488338799781702312761796113491672230220672816912917988259353427590822385833345390342188620733550344824408482400302585704257286366555884438766188532529312806085790396788968840924756160887001422533130148503179440298380429853762554173164556537268627623491490852377751242718268504306765668038326298840516605564955073685421340765576208517891051243226762050260331708544878339031974361203960276221699105014653927848839810736443182303112658308993099354928922577114626994295467858269505614873034755506189808640003561474172833760391083459421966122255798081898064809027530106873442336796688415296423967545425803400543653554179011677718733575646058520240680772699678631127138692419785137345543898394052468154427659847195859440542786513004173834467874406493104178949715595292636943345448935417413317932711293681825489097924931306662078710612248247284384211571991693840986032264447775389637751515241817121254184611800812624117547726322669138191134530956368787853377825689617565649367271513320596781196869177403971989978592160534431844720839556579388596863482659409925339076524468774426059076464101969341694801695762978122582835307670102953674192365059897786768657979497472627234113937849514643000575017885154254889113645454814770718296610964290327848176271659586622525349390159504784645724748017917637851805091262749170203069918999122308615571350872773245765466096676529602467221163271851806870248877997413603182970482131279364789993264630164308464263374857724497443703608899414240321958151795935975195075957916565813194602256159118987983652852320224286097734684321603084518794093268981373641656020421695211438801619403926044400845470194763733282322950820554034130669930634184832920925524861655134623379719030099182082855227160275665716462980458553778520045945853790095001241303317907726629835384739532976146464982792657719881554532715156186658106841661529081271431882307783002455865344731076128988965312654023885027546601212274430949728426765911645730688917428483820662647519549733322241538846932181158302056868051239530770006353813840919416557422388577187471253405569713236152508051328543685894672104364769303121341069412668454495669657872770537211664415907280157423048329485858307658855967529255652731012971678788873526999271539649050280923193450799463866507612632105143140531669174976680180815227976888404277644927505934745217051982235826260358219134914779699460411381618207314323614571635252505990050072014020745165125915246644706121981428412356352205870330598389249724950258774481013246839580368739653253975280054991008028887467406077556586056559243355728084050887899115191077866510390066724653730080570975408873802651274500441006557701640455134223459654606315929510677401046288380580435431140941368012322333183229260839264688496905421324459222442012438886240361831447455101172850745665731178759685165510903761493716083327018654971524792960292544514429925146978049842009265378484862504974615033012241081461400674532482416762788640830774062346027023584941136000160862700261347365947622807998214634938318018033693499579837867811001969041347052750067909378706203402575696347162748305794952389848484412889088915574352896859660593949536458893916474497988451331559845626618258535144114094984692830594974356070130735858837700235763734929043386683500793533582864693782860471997685542547345928615898866731455431578554630110512912207315463930442097177895422494119451509942971827896942994715121138885107647964549243377113772472847729491099540177203981740399594460969807244542144233973487931567986498453598708624594793837253920479999677836951499915473186349762249938723689688799974801420290737311839815680718945649363934185096590457192281944277777989692868381263255756298561530476103661654984508387899855496397490717176676780240949224508365868368951854698797161235482869430710185923022227580842349805449136128280292431763517719950717495492651366457522968218460352628971846623998034361977198088006170995981732929908530345314922195424440499548518109871940186295484148686356667024025804198612013794548377288530737564599660750693195843467360019835964370811455523020323914135328752711989122267686216905890510272326667834252631860196855912913605584636113163278749011153031766203632301916505071218433454823777197442168722993184248100330279649142464356353217056981782034606092555103463590238046360349071329597763049267584195796634702374976966457905725519528033741344950137825658747179921353998793920807956678151439707535540395537874254555327237682139306090149824274935037757717036225761298780168966656219616062724110232989736553470752713309464281335667747179514250790172314721446835176926214888587354636888458219245235175949413647282352512515888823030422346448452993241549743235145177942802293590212663589043619972807090266764334115895684316269946950993788987135291183405470649340298710636111865889871794006015472929492951154896622024212747953168952872496096627917771476758563240165841904677890913058332780008376517028205508925993866423383233700665182388141918780619105987039922398180565632777777591918158223547946557930763905549102524834934797008181786326931942963454821912089782994836302217155483050082530290094918154679934976689381122272806689417693287090460701471087741779587838394025392921463019330600275538266247478711005705645191089503256153070799966543212036134644405873122955718144954773042168796400897544890270564666926683479135521869498869186633997187827882015630785581659504393845168844123340414720018030435883106092307842006213497120936649166142717095028336807981152647612517543732273196987518843990589444599621636828326837265575074743722450419480109630780553092068250871386238010704411921104411871635656201135448595851125325481117559239057389055278736446813308172983199852668859477783430744332998045686427976946861111953606009787606278358790736944209866103552024842119602354885966660116765176224000873783172978139937155558245331033539566624374901877063383101650818650388945345056982576122342228587098036556513892117447268926891876038743358525557385559202093580923647053565298537317664491372065039989486711811554357682783189138147349424354918563977185505269354274767600430633192326878737432509742545287393278020278485693273903296741255081249344854354360709579829967182805894150623868780381868280247487194109085634083116562548733726912917338038066749096964099962621065020913499318810684851417780122051322141077735006965132868494063499264424979809403235425159970814735375935597948917063141576782113919510800945609312521632901235550883107342582532676716922278739030695915012071544544249181804328229437420642842918737336686992738277681535281456983355487022878772847355141773394744103406888076479021556789195102384077638067636039539981229033243143499790026626131273018459115657033727228720171741273580086137322155721798991157183605262902954896525458957732427795294379623116642937565844535449343034812548117917200761053271271277698623443097008724601028755651094559545000890167367723895843869739356726638024658015106414118850856335434978382988085391401759392952093552054612628127404706080409723509792980572264973608761375640095642807971491065145075295968154096658439422300567306796407848060906850639179850997342499498999078333530809389006347745276843902327609375640412429107472097141678859934033546838128325711884157328734281249351962671303300488267984894689668320619952882123012349504576809853307817210613273017583510604927142401315107230466053255977350103759222633709037397294341501042447298539628824260283920867276272086974398393162645273305625947061056027345838989315234949451160190643698528675887208664837236768314268599045417924196714196781023194125770043009711584119538160340977261548225411676072943598534659976370459350922433848827208785024452125021902379028832515384488097094869990597647239437205956573385016580459219878961660790460508128731684698826575293084972270094560020308772645689755457569391071750732562170154109165345979935561613537493235243699967857112860737119488993487432219529052974945379193762816492268776585598922339313430488218948651452439179832127986663314807852043875159793109440837345089133899966503383359086326217684986811984029668412013904170417855505902088809746505864452683640512742536826863820668109850057882749260665272451718166842892144211847271200402559651018831515034756736913760776048618705409695401255168861707042213459866251111722510794846490769781777259446556417386102000887789823826700046544487947973014744598254822493733858046193771574848624549647864727717849071924685719567944811583553436922973464866065643941327162044660943776241867739716138969909792601946977992101805897692468891227686553534909741141562998984801503272821649464388291032720045917884634196824365287477684379521056699126287285606295727076439199159824399105501638904677940041946853735474101543893831411041904471451476039603971284798754415447428663175332193113956390455014347380900458001167172449906922666543307301999860965222787810022030842259798523369888659955224944541417819795924068318927650628167006802943848221706681085322282767472659215411663689438158814508161275642681111578893493536728368637113369070042574607042402178486504889270514916827760015771146954058465674466539394642159767694252145118575422682320646361279046616837760019263519683396314128374265869649455836417890828366898877450594271201207936451991532829380991842561668880494867525842755386528248244934832002203300933231723942551560418218905012138802329822116757128676139876154466258139046995765902164831255351217501417443810327363712176610578898804742135583137729730261447565817692040964832441299593574107606867392156355306331904407606683460235254926608903867588902854317521565946221370895185419245209450615371695472083974419298862631258549350701962202626608558049688073541260119815915381104595325143154336473168559617551035227760026251936153640025149179473516282294577854092291941164263066661279434307914030741962945179683050623705892942509418713546306978396699419779106565672622647863470386631702693219227336697237442584272916687817715888550670228358707592676942973161994501916286354279096956797159059091537448247412923121177427249872420953951367241938761170936506472261081310232694024485273676923704184178128411933835965500212156565177566586553826472898955782309341648496112979418357849781447430878889554306693731005659286340275906510139863520202585800211008776484435259674476103373827982928352782165733172429313329142064965347174652453034074810460916799553439430521029458441775566689419408899707553230199439278599872897760024701521044146010554593164821712443857931677550443483002104377894033376341032519186422482705123905548071639188564129851248146009664409438694752186096144266942016508831684781267429523570208642718601791036499456500410353065123694623368219501062748703162523521488693463734979433882437189727968927571535527200968567442465109695225252096509131040249400888200117140786993108643889063506466432306721585776327936696362118550993555944106341957806964130967427225617049025639891915916457225732224913481723914818899649285093353981840489279846982500792778706989464665119170741473156374132432416895800892007419619108055033769256804272356090820722066130843509327427185086246296925153121549172899091641709030693827366109134061379985300175971537734944131171340153790608301228880260521252311139161700108575090007621135067069740475394227758081344477438552135055545001307687336214047519666579259426419202597760058501643543717273714204590760274666984109649805876077731392811062798114271508724597807965248867245066872023044033553310048645745371871747261137745007527766163102170148273401843873563587785932573858310241570665631847789715852426974645607641071124665733973265817406167076483027343623696611130101601553025400133899781779206170130988070727023293697121066629253070889927492437861977687641496711251119262065959828555950802034823942719216270929600752010336588756675479038112864507938417941894700160732283912174685170344897592147168247308989542126542915019819157309866776618303979447108924973278180130784266515819605000708706797853986533837797181383334574722289690888592974513656312084002490003259256334921667073310800420606661512929926712911991368368655738935780742081285522930116400340627188375858173916164014008521850657034903882403069486978375759317851572072000840456566609300903370925152231507477332665521868042532566760171960899352496007640901221519742019945592722683921444136032413492308923429275982915075154026203203604046188303273730877056882455313330979097601164109992213242316549666095057154075605829087604515389159964162757370628112804948815959200087702212869969639428964581835732074562365256038956122164869321285547167099375739589268790457715358083582710775928312159638771207668991548048946322330095222925330780364866047999823813154404569588692790710270974371356173883619002952093343478803369370998869112838384237277795622496010035530296762020098230287956292011572389806511740263438348024554015251560158663072814826381716496868825958961239391110818310757364489107067135162709402979708940886162950653269670868355569938556897364173870704552878977157495603220795782233565597715229971595885859682020338113256156720485512923609715406937455913562675588228900950620857648996223231772169102887682352533153228652491230273728836667157326767950657641581492794243226281319251433905026775551948937956230677225314497253523130181460052052390148964857166075138306813311949708008412161753414601599446958803936253052633431842922858899677060185682711658989145500271964974258681806613380382275155570009724921968088525115623498619069860064621037811711636231204453205073151421082132231981576159793022427652910868798393399620484581084220439016659317159867419957794491407459417894211193814492233266240306239969814651222870495199561915024069221807304748424123988809184272619409134311378838776558753116698793464419002668243348154405529298514817515413658417705177336337593744633858323316978593610453551556985195654411077491097756089825813404568409363804210023469355331970078647911174607004453996851940862146978870141697553697802152454384500289489474016809484868186402226798375805603578038169066660450034675117236827073140215320823023497143121242266426204033577450088336288769907195136448705184869402298292993337659934618714009611756882116229652830022211303238115994379584248385530020886470775016809754871778307659168279570086839738011434364617815806001672448995083757266977589523897993685272391068382839259392191158317959852321451885647259887490857890709813184749768819064965583633623718076131336080173403468549081706426060694197507299447060001144565807109768887887502172907480640950907964164712448741506036061906881058051384623860169066705270795952646725217409407500933633367617781671946866223039002183316348722863435517938527205552101975911808627771924873793605530392381480731074336579890386438771937380964697628624682444112243897461171167104125511505604147809377825390552968892932307049481949282482184455377011887952114975573420786505397371523643457734464442378000871193997347738017825333519161839641072526581518877276386375358635422220708859139350665198656617241794877283608426297360161590861695842865424182503589366547813409577394003487948733470514252604344436694691152323393517352245438067879116219679598214578857796905254569116698949741007167906282842080560419970644660285325012477340945560256404909274358393681591711985633452655511808402178824338776946249066266473428869341912390642465245077932705543592102949608768985167167650481698129987774983776215190281311407936481582007185596986502933995839811285084460647936959637318809372512409782770043326435507199411894371680771099452761973806035516491459194226721195436158575781523831418539050196289994579621715820023896776933222781591958769444343149026397751931186185814676540042949852729968656552293449944494356014506039002729512090034756923334262146247851804966655994214134332337932726625938238972908494219395053717918387819096321442821589350126730870915067068944000566077047942538060867420396344953410859847172380118972503600422292597638170581647026638706583505731194664480959703175637318940455910248768417683408699035215737687738674063687766029977195374942009307410433004957437714211989015139595388357732519128924424808474511687793669858350954556270796743233517195467251785816102028366763833654780012632442532123483515818658684242345069199223420557736574732511124709531342042098760080449577672469307727140892420652482855708413844986343991176251719649136484360220367183930642798002384335354741577280420413165852776765018941917948221559976306584365716474277843753527447599074445397702873999161476176972864980813170731074661602047809385638164233358877726364794617266077082562452886407224584162568956631084857684665783262358622231879494661522063611172047088593684348922905426310956616008811906938167971888650918927876738701808780721738666426095311954180399881068450636913236480024864867293922528722709271380900058361767272997228045659600922743718115623354909754114751942886160945356756841761359957272918529593682062856129716070709791532972157484046753174945354307936419032286926730606512405241131750625399180579057630647484990655174783354140237688678238459829141948902278256669044038661132784459788582975583467470817565437686323771356792389798317718524563126694422017886757704780616131093001365882043806093082692944294270236914109739062885096112213749779016572763517896895151690010243760724568729386448743525820387672250344111432790441787560957879476443214154677288743675846190231091105601487621665563128325441370535863510422844486029642985882363454562045497604900582177868448164169534449909568851768578660691588578360606688222126411207587678467356926345914501104785101368429819667828574130191848121622292522221451891585311273917335193057135833077374593300429144007457638973485547496102347045819749807057190438648209399759678339731341512356285589378017901623902334534986374041091496865608405325406961719741568481467519281843195556641417307072780393714201545264021518685863793284866910578344782497173947302752244963723050745487536520994957704546541272196602626323895980691256989822818570057108574172649387256490112541924448490685502629100440808477569335197371270485329601705948495239158460280652867922434333229934216743473870023973089044563613092982829696002784218069357271779867485630111206535278348296343480613421355093284152825134002238882516482425629929197652510310135325695107247028256241691470207261517957474318657578870345278599792052391649191367808966777337851531355958413061730537799645980334054980058310867607263689122702282713273931720872672389711078918019142486919306896623504906177195719099790480306032075100825482513835779675555064751453163910408420429260142471485985048820845013596561456442240060885128998497838732561250628670121343225257535809589817145197172917630083824754402591660706602285498570438425878799002278378369657509559544900531159406296471545309830259568100220063660006599748742601646788313779311117069130476452586894632738279313642303443640049449357128090266619499506943469250020328041853470758576076017729410132454557820816145220147934099238838016716379121001691535571581270793175123913737129875914341947498947034293170433112967532760625562270823578773540633337143824628751686897376623456369849424684734685269357429555192273537887017332174929467754508075652527053442841370884321447613122440715734163427920068813549338378671548997460752369430980259095539552794976057744209410769856608719567834431161533550923807139448401333468159523429767761249658941270228775369267709909636116917926530161398186825313910515144288174497147710514585900332303430478713261724482386307999864417171573439477948730582253396526514356448669623158094148415881794037224006115647229582652784291594089180516780899003237949292794094661263929486518409778589368934135161152102106622671014408947012578269223357249953825569351150952034763079326267092829927255751498640928240327897300346673803661461006174804316150901044649696774668093478758117726146787833066761663499185339584168064202681396283352082745375188408560393412479745013122533360140191384542824685489840390311225824335056764650351837763121369500841669465255474786810376331651606261567630831392229286136381064976443354951493587223170880831226611925123233138482041806675590078991541172249419268132966712796388969070705064698349305453647254927907627300352580384277783071877772261733122236833047886981334311783258219907108475801859891129572087671880886254522850855533202477303293663175194274292929120566953984441468415067394464120594461103714318160476627071270416168738713342351408129218869196471569487052200105231452899019529292984651975805012649209542677401398606713605567582052980760702280721139325401225927360108797717224371751418286393675372600500462909599504430974788301264865185934757782674188456010222775420364398209469225856310908121233200486604985418498024333063531773690910990181950022898448591886451713772149967643330900080555934219982170316889112282464331248714305670269698107057552129435887479952468203615066267804558328724590881095136553792028653009053406256599072280137125169557800363953190849745572574299258889361674159735512800533257195973721753989691346628177734446850592384423741212872274937381194998231626566204259330769300488370926084733919359462262048941863029248355338991843233436758922447740380477250020877733909089635815627651931323269583869218641060669411449822691333245173626311380947018342204753619875312057033036472888825028017915753646582211724436712257089457418401655486167316789206235421089397966760210020869006105357201637333444345261545487374403551550513544826744171883730359991213825216095534713469183238278091942770713912551080455966338080960972225421687285978724977666638903771858876844800997893996597297658728175249394982775970776367802569766783526159662156483381107894002755070666572220678894928112584820411589378182433607311454388539679813704886079441793873837824022886428637921854572152501196502662614911166913933030690080267461181499388083827631754132460034329105394794909741209609043487363525175484093845150262938392233385922227737555530589413520991363011480993315094107949418819952514987515759796649890229645082922895295627514371214779990649503946889390416854327053635506972359044310484050012878790777556405609061804828103269714900719274886507562631070395450054420483451272873916493569056857760831055564701504604604378454450722296761627926386627224439339033362432398483625667576151298435809710598081606957281409254926836460991297075157749844036927476718719194154910283014206907957155771584531983091642489406222192589093490572383037714423866437437293020249212567540001837337517564633310969924674547300430277244855423004941149127646464776999079850753901180149563615844448949588439670792741253320216439021061584552959064100746114150069800224637572224542655903615141518791696907638830824387453840683873502059159220855331237076729879579369871256216002914243717534774659558535616450440294712305594536616713169766286672254864375818661044623111360227842109592123500153543901665465160814288105554476242190412336703895334620932308129190039420638859399575834522556345411801798409130047403807213572551346043417053148114829653374792161654453667331364128071366346472704081434570838702219522732512730141623438175742150154774547156302807404902232305787266920945984618878319685637436748095831713531143469244035109552314303141226966742580377296568386954474477322815893755342569875652543154376284573059367612871361803125788115873882722443605680298138051002016250079122552581357157733655316940356518740949095569135399297153192851522248652432147461067674624543727164757555429586835274917692454895523284033447601132560055057953122773394291603319351851145431149418477674873827565578351494690660969214465549727327453855149736218522638896309226828872689623571286310064004913335269379734383223842330967323617509802977804497045813196120285056838433542850859936233261470787242854241816595287283685149206143070482773809386419782847620574461832092148927111466589086651220047728165140143125593685618616133448753307516520163938495413983833162945606993435006629947554643672193820683349021939452415807998615288251836625163370794833105464375688297090909646947771778269347840038674197787979607526374776669317973225069675086064234610796248324066054050375747907224516341663398793879101222285200018967582767338800951379988665792086986693566586949613754479402742508854268732201874379532674478097155098984216267543993892873914652406278486394724493496072803491396127884996442582165395095717278554555107136687136564088185887627245484181854794562176498486337158654782885708075033295957999369426093099765929304513624066802865379480272169696304352628572127880477864782288446674489194490965812081961776987484943927332196167799363496074899602143661649152938352213363805070437811027229593467230667358558667985868717708298513482847325535120100054596769153633233789512699140654360428946013196236103116006687605687192069950180010104646183417859512699495315219812113556978706834927901822542409250505000426619072357628487510038250683686326514360239760808495180523580704303804969321304173823435595550673137477512204273732489947829729274524846471716221971897500962994629426373208512762704762974027048396215491071420884506214345847036028807202520268744067830603632953465762327951071542922603011000005725303453101486101511140149299260352546045344106391292516840259824617251835686742958541566754651766489694289134884866432375805126717135871904841648433770678679071132828144396181724486354111174587844104147358066111017282956198634792005681386664296368649641301135251188516204404215638730390305632877492659519218524943801951633060809358326544559455229085353934196220562452504964933885850614568149421079496448897011113236528173142295830692004151193758295599711010442943444036234816137991670405182342943216725486272136627692847416589335432914369041914465966823107728952167924322397835969825020475333417727444660540789897575421432365561061720732540068965485597648532518793767274138854655475298889961273301485390503443422024318534184564301127296336121954895580528301252836029743064820391076043750580214424442243947297379622308902662030451470408543921973433090351072903641530359040159320144095622861008437753961699323369805960975959224684715095039757814224829893596829668246531664010650470239018530305207226902632476806987756624008994075903766382440901533368296577223185987333967323959377133341608587500435717236350112018321885786680930530335878548734667450569391622570566354101099342429996713933837753897791782063111619219132796597798947678938657935933037548997349942827904045449545596920522496963583155597614493895670618261057999845663743887304985002703746406790770531800476519740574838555418125869788107766013592752118038457558789112226056901228165560622657392589653881090313112221468964935432257371586699734260577355680908886715913308728090985181417163686660191701654135524815276957025413735437483816521432788964099992286339761460357860560682037082089711177376894495095758148923700104435486922237336699901050616878180491244001229377070932359516218107081714172091994554458571719130959501696262586065734705125105170744696208037130613218019003048418361545537715216435203252089383753321289998079760359978566458434566823861475753143299153214007153316646080324098534444612873665635102363426255507827205226195807950902795308962129867781417222252373261358278165998373737877504611074087145159684457594895168462293224403857082089580101965842294081290689786053043958277896104827789119288902402871203749298074505766895690745492495452188645555277507348943203013569219356288508079417330755224049262346935175882005975073112417761634713571636862498461402955451281054333730323160161190154722941046574462588293526140817731368173402132793214080587311436840617227246101573205342746232737094254251785594111459871164962716066657073928984262668927594047832451770648709901978977404329940464949879651236284066126192209359661901968069490473527828436553410411628901896261260688541936370456722186146469944032225847097568258473068238949351344938253012453948892533291858934686621494964745711810272634215933691353677180942616026356655483779115259939251739369940572539615646773713149522989110720042807023307397878922902130282907050629493834114518789794973380431489497126694273747133541123087540200896858336233148890357356880513387329375301382438935655781690359996810629278825031399097804983195574012332172970057191891364844961811202388730033904484961387074046980454795166012480835886440485265578611038278430926339047981582130598237885302409990381995187597309451643611238972386399297645787815142093765216317038839236491112782309892006391742325181332919811316615529239953969411465527318636347136202200217388716968214617162201154488874554671195734712143431146398383251550820728324308097627717202109425731994190353200369257524142254249850581906026327717786981056582558464345859685374130925710344649556314243178471404099764298714850950864724658172726226436024013267672992512883613658383397450584382320554110160754335081133489929239362985508063424097052957328980571402443940611464930554267371825931481246970432986047489767585388029317782026476917744636724590752936660269437667259365640333275094846236251557940818035144701755139094251214916125158076803532424900732258361631390905229646076124403301682093069730099118742403638402096805888116556431285956557548189674294269962811438392447626929641841761484898715281528394402045749625770190931758094578396994855406293850366246498816786684616549884690496860664125436667111005998306346343430857601386404164860702365058616333910273666395126356493982966172591886627591720261088627500429842252049354678995195075036954382395214411678550946992234723147942648031374738348900979489025928903156530140943711085001757358972988697922281250739245358029553826523656707101226297626733236707408584103595532957213460177062283907605908269297210062135247378811601315706173561785463004737997569943304980615379867445802370671019646278152852651269909461331491076585780862735387345214725981344369763265371248309251254990790066772229627048034976044213281543356647961523964160642260469137288396530029346023455910717157075301088788483889896985547295999928860282278552506392044229554160772617343957204522271084769070447628405444582313381544889354413870389180948101139873744639267295956242935604288098226880769227677466204030540945614449422972418974113029664807138639071665705969545042801966825064015724676708577416545433763827078021407047331240861258732210561403739060519331651384219266194663093533606238216639446380339227227426211568499183763140899912569364879234574485639881128915658749129578180727859658562107716503576427194419278504594227758613513277692141374264811017506588147817641487990142788118827436745203350037262397143861458587863844024717349147214174381199213148188823735918114201895258910497024971770121655496271521131108801218399610097914196430188356430807066176489408454115800249961600343785331569357118996299932268654212474311514402177647818468710411133597629344545766315531335478741651015333104306375313608735898838905734643459543028324374750821054441998319738740568705669709721738929978148089029311474448396550445341063970379688130877419613177769754709997745730970818500386051861717091649306217214143568565705397373726433304674984318664148959624773207588551743102668252086836384493904945647287859834521965630627922442666805013337475672370532605769625195224130280996125520659090433021816949513217002359691621597292130216977603997313910617885410197434245989145012347728056038588508462096786411808451089189786009695227072287805010263769877455889383938179921631706399604726756222256702770350387948550047034010276466944036399459419685383478043557187903461364381131189486321322592143759543452032021517282697668244053465645165493604154461968605019059326967741474622460858818983177891926681563836925075726553846503767419942123653970206419489770840720581273142203099320704773951347903126468277622090263663767454705302767309597887553081505131762106903273451423814074855217357724942685842640026523025431379303954908857413770570904194352900493244949244793009596684691138195768162969128185374708866272737272992439911663774395876582497266185584397357095357407303268869191697530809114734858675746696353976613813156355126796253294965748348285420930952411205308503344033760043721626237835649067093955144707055103087548099226662825006380171016830155579002734403066133474012729841114802917395613842734589881007119604242469401757240016512599176105761404207554783488901186618458334660262391860362674150484335710181344459652128735497090746254533383637495089818422063639828170998646893078742540012862067548389340034485387270750576961041353038985341782199501944524018971180140212822812952996862404527965313269951607112628257729751755970177682565634014259735779189257446135702766091056910648432256802972585660084177112463615431295051792111920541308968833323962339587218166706200578412289906312896538430987631927076210094013424521252619469267445919799587041573355438547017963820172152542882955667449299301373932271150287771565437201420628611764096600237890399427605509008749562610057569013437006739524986751495767307299972878726741499318123847561323743202929235916567408288772128301947116982080507417637525764224719088190315087848528501043575007880892294144719913212465388624691525839609216612876922649597580868701525191589479777680266285400895779481121088768744373622701265641964089664651561862797969885043942440453188886283889893633262049981889727113643946372795381957470747494037798892913686050673051381177721762918367913260242594931650765295867467853598288198375149280895905860055605133608137168914695069476675993646495808249266338566369744744981782130094223769140562241884381741034369863165749231767654791455071839867841898459105895137203537715045291537391957879511000106363916884917948864535339526173399376869234979739186354295592540691091358533604010162280756503711621229056327584309790793822447622269221724031982170913208970204078645168749966529172986141118501447753522846528840857040763863759492002482576580845916107259579907751060150045609179412341059423333712779409494363000326924241459568684698175447792680015927358520549330674835059588761015517390486695442227808714268525702785586836615755574447090099079327506758257439235947057452920170813384847831349864012315169990885490656739607249148807981945085720513233575928368229128305179127864662141589528610074984870953508370176096867491402809722967871005805572195673626955558641779103753534499167169565223665328507732467583051719946255871302329842363194125845388805617667216815290815921591042104410297123658887271314135611611484125844060835936732867651019340343666415949790486127499401219780530987325547215043949547273862315045190842977132565252618307881486235853324405596713201995989789793842474409025170580791460972151605704371166455462928011983866023360235598794403529207828826159013302584558535422282305927979331951230486085574970055872621134263677186839764920788980598804891209504578332359593665925209993635316105055260397846185860523974186401943554008067686463112385656651703268587013937152717934022315439237753626070526683220611866309429524621263372377569391153508168540325191984224188159364253251206645027238976014397410497371198480394562532802857463366865509451018290196832293121431517142529655354007959202514241855674502807380379246677610699427565683573047231741155254523943332848341052150150814757096116367556890185634532949939916239489879245608547128625080330121418251174698331324670032974728330265715414002811383258711981306485004942150500382979970037627287816334422899897772601754258218555871643462055774722513796373690710776057161885577595324094582782587821574339669069851071532683289285553218901552041700270286724704665280849543168483724136016826501586600458839725562499044845331178526071207283451028272527040057613931539028609387879716869864183032258778248879773215709077160014861577076639815134416381442403069151351254969885318550798075136488920980565171812297026192463206584821449597860427119653708112016675611849995613326285647742035517597370314960953534814742870053209290285149084133543114072466172544486163319776364537806524650662026702917929282926851149738671902689416707445852692241290363327329802435700211496345889826935970642923507649098323076435375663695575917109602716499046347874770472850257634176351799830765437490251602160888091812407364652565411729552107650372376294031070436483461350683204011368107771383319104062274220200202759110036254616075747948102124495723302128447505943231730805260001775913652963931084877081970233390692608024666278292983863375166934303442553422240245543270334588842197424062068074325123066098985164700807926153536571353862749720038053160654536147247111401097828576555777626410603981242352541600171243909455925867762529703569211701298415028127444150868970648161322612515681644565717386329708630785032634169735164244036855511489037662190255089014802156180352723170059261810201841649009731121386471452185155066768026355681423473346525780842485615170986463280758039180542415732200310028090076673499171866581000915144437106520428021052236923071669575240276607530095601169133199894802657351450689192102027461916332671465994099557409262777775086753121029603124445259858859280309660731936496655989838525376027451033947498503467467257378600509043653568245430876965977859352693423181516760254024145825056841863120855784071423346782787476048724082622273381558981926745755505604392227467902431470632243483724221954709008362469201224367001798886774332203691496155419132141203032149406795723141020828740765619543029684090159739166424932518939941551528260495482212093328166234258637098745363005362002046488258024370676359804784295591743477046335796552497992941384705270554040461700874959617516376932350047138643515819015329585329986488644981099922742510363098133170976084679625052861838899074131963303108596450581300747936744658348735390231658556553880067407163161123439736298902710399518795801114381848701536047073455194386936350810690956472007170027440756299405563608467947874908612675994803529080654127578108202354404103943208955952353549219651685797782428716388609637330007053618194247584813189703360778771472150851753352413303139811200549754997705291909985412770742963342176871032044639529040037328428461295434202524527230851237336615547417478159282479232957246950920325402107015900067570586202117137549067837971141983075303756781540231106485349099319257662702811122964099851796126240580644605810768213548632912232372308689149989184545905944488428529709571986616164174535646468418411112608093675301543753796242864798154575172908662677049762593775034867666852404419088630405409035278002846255457833415235224593130518971234023603279630607128887432008958908895503037651105267187567682895949325843498260191068188588860797231214537813138920833361439625936766980729285907563901164042781433675019809034097779995317618838418093235741332507580931178201339433059510020650354834384169633216134760730599866280716810788545410903760423057177465563856620909772613175699447254845850612407819664415393065225933621140964278381929779993553753434660394318311123855262285524424075110791470899204358620962874886472431014476224043130185753506494378989103101966574595064331022595146468405883856511453914138275178206352098065440977980617686367975677709572972506794708280208633071743097322982498913135730558710763624514367900045477322350156779214324958625807340677461752117397554008381423294921673743102500898074083719223057768970660685925957877462713497574177075067115033039860597585322640315908486601571838675258941620250342245388972935557200926884755391621197388779381026272920188729632167674558934306290999680414374946254374271501093441350290490157011242814660631843571711310864645613905104477912115817506933453060576481410014043396504387242857697807608476136118536180101342062187622510400283815881987298755183134102076161438053995784041330743189387140407898926351449997137407314639626178703852244309567642385423338080168053352647231335852525857853813129795983414014373851290299479146856193008640724889472267552867638674651147478569150626733302131234333926782032497656679868008293387894763040232546311950018885962162200685828438758432305785401671286564712393426850755230174675232309786811157271454250581711480487997526148875466309410232275356383728767652440253356363829678062903686427632821574596833007126020986443880485870132324758850451078761737285833948452788597372899616719048312142999657620954170243153381468278839568797573840701352582546675562108789387374528518087854895762720608342046053916543168761516550685373467950931355183730251250530269157601589515379644300462879446161590387586356185381824165679847040008298545426965651933088791297146531534309354597068923559500597298408159152496099972555022684907470967190329824551374388443403223593715474024115326363046676565675673936903619422884559328484763745446264145309286666049615886801894609247014973799583834560496438401429877882750502601562139039024902068693777219704558717168085275327386337595047493630609042558704108328993807239927634976055752051932597069056371949463261339324847976649339213461624931772006835165930571929270330773413550301195825172989365994128264943880590416223260204468763826649758659511168402291919013836119704609339658349760734518015161187023317517101445172662603550105853942301772637189115603993328575285967385700494348672004147923017513971406708295726426785863286929816818201349222325767439979414832938672074688458258917519143546898957861281821664225674475180605633447476421845896258692830018588549323356161666980426928801423866662048318084228492003897074450497504052316254542585666979955724655230697677504595749219295864299254612051523404471720958860041115811095691351621815039485149991753505277224560059343016623856374697753370545567336897952864007147957447710547512615035157236199813964324991916837350744475723689547183604768453024911744653923178240396099193896755740650472660633601978846972764266857269701305874777580296665587237300995523320411735794350102001409671104755003454011160516419258914776368177137323468840308807102574168807224126472290462540450266843729075379267304365038244692158268946913534730786583615379658195450293671625119722272095634182557924697889754958250321820980472880574426585929189069696575435949073106359734956413963835544989571728882211940780670088394377736252250691487540047527502267908073405359249156634230955425017248781055408887320703270678250391861960006550638656929298168450628213402652033185244424026599923183517339292114814627948148859605840860521064933570327686272618692590893034060622908344828857397158603858184924961536156846515322301188612465131436996922064968587990081634757429906711716684287307156481605994937889896983694297317596530251369770210661527856986200340013900675499710926798309893436857945640697134896858081359324477784335325246103005249946668726660499384731785541691607712774856818848976927762253554120311081410973138484829491546936923785839376484503715292925294922941830516869966319041191682224701313441715181463207353524298492239438242800065760373923363729227711586437847837751985387702240429669364183959488479418206161040778575797487943887080424545200152203797321872227110903582952858589454156268151425843951025040393747472267136873566984955622210610872511307914913890309822288714549907977682340049206902677401406861467325852460228268434039790391437394113071951832913298991472002019838849386489197219176691208065757499650156079421606799668377700212886874201100706361466066932621588170538216297182578636173793936265481069061878422874128170785378836324011530752903720046036791156679912865936884077328227561134928829699155332274433127138406666175239737933729357028176731450558498602579924547921093934249769208840654352192041751293326651051811274333663373608726046461989731064610870335664951750380262793738712229537733996114958134297437648826890460933205410829634215641724671527167828285141096814613859125185918312104387909773560447274303374497410632916714015061407872427987578980657861173153945392280079592321311983839027993687980282080365401500934320730550825490686261162083552065042088018402862152083117715449902635140022804575847319111586932410246913907872319518074269496475985930412059250051800861504436015843237509355712137978790275949567208962418110204438437557332120797143460371333022651912128899351440548249961250051529501868101962411410505167164967902113739382103125856998385952933118663694303033689690702919124917668661862160271657033700940643409732158402786331581709054133090359024654223902125216741665540654818334678764659318549805420247563752491668921906905711499812545836161585518579536235363324053031530557066980231925246963658919149524615906640276659819423864383873233446140754827833807809816309645185717936424077079524942642040618262406070715437973381669497637725472099210029886088313512341356216727243345967405498334125395992041708591514003878884074075994412464430655915946311158689429506547633580388017675674782383392541943260478304688693571700602100731801632238461259584565972081242138939207234691320767859374845058273490828784581896389458367598748257224475196511936258634606708951071614771427779222990318680387718499107019623383089988200519525890718628693216152043666636671247139669246869005265337979031729678882010768781836767495249252542121347238680217279372476432448929234154991512252254271837225792062572013603602343421233710242937254140351364243621398098805193732731161622714401756568485375306560360339398339719172197073256592495287609732264750360519037373572517566786516731653246940441365713241663018622402077835916491526325702333556752456160584950659646276929378441849354087763447972070569601440398610503446149767317063328462793848835052463408088576547268339978139287375591119500700077914086660001069482592559402622318238861256118195466909741545906183032327907311763993262715021842961690714182019203650170219823437048140999133840139475552470400663825810656115742926437873045438974310972565599246713965675967781246156088809786225732822624636590163933736788392815554243827515232362015096190286106427337019215457769389614475721965005666789562643180335495108991463746273960133726659166959663757717143711305416437661413043227303319796763429562952274418252507013083302350158771953389904096154625270241289523137108502843207804313312743983392604298293254967995878868351627807423189700937068301645527542685986123165433391703820984161484306072604135750836360399735786394825364482894419123529946473007185527261945961833578604775005726676223737597892708253419908883169589719061936967721604219518484492391785593716261413544189284751284411918725408740944396637836560602829137119567332090780768977259851385930291533294279419816639867615099121079528246145826751298817530408240727719989875129709920755285390838935022768087767099931663428002331904213010231079217819638160549637673565541243674000624444595666840274846317282066550308328944832001801652806240551406242337241895604914546301487190469767078229591582963564507797309519166736088457581336422782818681777317527473224658154142605178521008051276464714752435323279925621501744847238963003425900429565361653280204739335880828674416934472483042818847755440192008684573263682585132708776903318322355291886299873703616078793090612378690456823855071302804837566093801716716489317816137282460904957531852343936810296409548479429713443398697107087763261985517759197839862978191441668498502707241254687224235003843566438473689571681899809911402731673496210601386292980657393198804657016060788563780933737449565884376437497219154190099373412074185396348867410759506979871524685912667264296036572771121179466785182598190866688321838132403095892270665828328667866229268461742474401969629938582207068946277308892455353892621810159592182251271089044697068782802064292381089030970470865951393947970435381530004163952799375516187710112281724041115285578921720145612922300532096253615017388927072907399626215960604521386647062499411863369037353096921581656107760488370631988349936941653235592719356676626221300065793372379160120610397998816614259550000876597856371466930024896388809437729876566847424409982637150671757077949470050039156830412220123347968700170891113932723337397367285164576392560759016511772003820226221054220168981878127834921656463649749353768985596960442939090360415469277444275500475405670569744592146997931685256551488127338842148595012396506277964696131703035140728471048605770990646130781840696082749766203998464253804732711027531936736377292598502468515404862999806264068487415139585618585330236132531423771834058556335006735107108583802428216435863178869020252490256179327290867178240899965133930543714432774627226250415924056898890589958856645127210688573550801016004975706842215401335006867571609550939581221803049681592056491193781261970031546614329086963428318270203149403600460480536004024181416462542281987236435237053850528004933752607755635024200885925314352962148304629171882404387584748473525062320024627885142099527406174389567753714116536938411567812203059716333993642078414477189516550848107491545608967353851147436711743797923777670112154344930023703521912259542343323840079108650976511774973268441838249699817123406317165021652356853179411009007654119874385285983018205426720357824841641838693162162409182521973182046271463197637530234404483875033346872313636020184111530169756073597785084849309309013651523753840949590716977110384234095106765071646196921592120696447483005654702092697155932490213202716197020215803822729339794306008924535362808649577094496120522423513182645258874834614411481031332779548901609285160291190553854729391549530198785761098209863826442168619098287765948040618879157808323636249880936216294733182348978967035898577926156650609189395035550460418786990441453941918651761569425996148272869431997989998591332557115129430627329208601410959638096842936194176979591516180951466871295282354017818359922633701307933022310011502531517819111464813466103061484918676735622996135662223916381959578659389783130835319160519846358364036367622942101239908719762166220716551182316870993724368038006872674503224078748626942972998481844598351470765692248353897883592378874550311854145919132481267182554485768548789136443010832709142089176086787730307978252604043615147270908796376093894669875266229298671163876883939342315390064205341968161117650889434752794703032153484012968620143739917634496398402292487945017056441893314912922651127900624326935622814099207630418993898464536581417024553976035686556595060898285907691413663222097049230206921637386674959375319607905035654068663264298849631452060020115498465383467292926689726483764704415699590483413016894440347652555493619040543764000779040157456565317681704160195229826267688244390288313434465722236074479329660874536829431466872292433897024756378953798296500493125547043995378770038191675855256115029916327919692776182831757043955983376513245661368443572527389059795980626034440811619244057671275177705226444771410617844398884361982990425081051504363396158625767421516223995736102689112742134509447253010664093152846171525224333234466077222738916663288509926395954653186904395829963016418014377322543243514443024251374769575849458369079030777789630216069463934399015620658684006861533209856945144367012297309889084620448115627808115900917481596631341146502825698458755377166632405018796053127101315091505324755875338602008226196281156820245464757602208261112858283568369751760625251439052694146997035352305253555814186217053825391288159399849805916466850111696603969681163440352677515673519376163614061405486383552800497564807676122494647744591968672535683922330666170551314589063617145506547090532051605011846140562989114752821179001039739412726175922844906964462177893205614944412286966521289046516540426990080797385000931732707331725187591952717386037283415429488586006756747574645597448643598878435045103432892443307355205350524354060139750455388433240113456508950865307877892416065605146118360486690424928764268874643535875336733275938275522262918511287347863108803649743950870345308538132894166374429822402680726868309681127256044905766384761347887467884207669090409596471015259804952440039431892464354813050490464006867852115645097968194914720955300234886800550485695515135076848723356095060515135066428856252549337635303436238357981594816640197950687791566072185114273809337896418575875556244715248007258479593965741549519810644359169818363832192990261105186462157100917089600273660178190528157928758480338390219629493402914753890548060075489175350241533609845707819479861321630043173471103625403210049022254441917337581564611552709176917635015304699430323851407310344064429756865453518308110828925597711426031606072516935981291049611774097965075589336710556912068252160302562666354445632981047104972829947967946041851262804824894309555971777780546545471597560227128561456579909598971747658615679492714251304718658581317746265488858524315042616111011276157278705676007594727637115837060234224328914052989088683322239019986823882433562103992293226290454754632074917048842973684287200329991602653338679879522923541614579034413956303576574694968926455854483178845580309864418969657968344169165923166562809412914587857030502010381136900601343192786028929242793749708522721453018235329753696031430621378916972628327097344819496383713775747653824698996234225973444893753996802844315712901699003938104749434375658984786810314271791686281482139327084711886323194240224548716119452787218783170076791570555630594813115326139253326627264525740383480837334399858964588473444231058553885397076980327968334350604616938850651524321285711076316170311339652990587050316606300958591490192849967529133519221096542901926925545838283208063941147665008797010837759471845976006258158165474798169113765579349383052866927921302645287399488893370979943000327485599675892887178828821401705638232047418559392897245408924386420536180372415340376678659539858372537885376598973374255270447538331756140825410333219225144414602424683010766897615649898958703229381889142519897767200839819038423379617780480245274836707856511286616993812374394796347288057208761337934386881693167045128127114766519986542590612723411503297971464384502564497943949988953102580787520016083908619447534601983272915327245301167428047624872773492384411451591735486176675134626893328435033575933445930310367801440969695540550111649381734917620757103321231754004638021842862224229283790588984391792188863596004735082538801656034972375988037267396325422775967389693480578737585403027196272489463794382705347239519082729893865041363927557902239318571084065202307938597452223786210518081282256004106380042068239843079182069209482438399109512011640275355332634277976089655343215848483514308841174069574981598541945539848240508992974040271559631556424596635007577307232264988230918173071034252034096101317665040235087363325763464571528275991482556157098687922405878210539475436077281017343641010942510880529603546005901272845584483321265648290304616967479015892338951937902534339505205472912381941404110757249723581798891822210791749603133736659407383319060878124649589981793450092198586861502010886753721695391747934691295673111700650633125722916307775124309444919553227985721596746311425328234957385771828396611514661813935922434370569584295847339397862916604032688581520177398508325364020712307886695574885315798140289510206296374216798351909689166860339754849981003462895979892789051954559815410949785938525313173979899844267736312542160358332672977210655212062773787710955010355723785785623723519638118102601889245527556999712278005448970060164060640774384090989293120873071609474097789627085920407971524497562531207354823337782302131824550973148569802758152323378163629773999151769805740388014825222571020839453844025776646485731789792084649302517615176522883324444300372968030827490583156258671438574448793254739449787181215510979409578052471086221566461711195681278450225932766525364819385132667231810837787802928504794175144739756706174119171071413737243944047695113729456641056123115335791021625364496215957433410088174324087399626678339551326645260857550167543006952140105267328123383564392117160820013032201832955064658449628365307830128023789825994938465366595978422422536779242498222201544697220378631226224548932652665524271217991136303770717877598142699277839130579603258625904803730823219100393560599684285022844569306936385532574528834074545018154610326929322419988717490120868032613595787766124291448066035534414524688950564325602648624282984237014205743823270136840005230513923641761698112946122660144410132545995322106359094916869898697225716066891023448232486913430767063492051403769865487797664309010035566164947331182530160863076430939191230294620155222810641577102102963681845219659836412776577164679405057278488332333171302449690310662857690372187453757721392332022740791484913556382713567689865408473423595763985990170116611246437733841327466695950990548829109797675823078351541158051662547735346099976217384445962391175275982548640131332107248544084090395941073076492915744844589572768205924076149920613062708473892427209749855017582974989529971314757348210442011176190315833108671079383591840597998487613461766615604755260961718196117925210780184886352411494988523473433381499560288652262668999846729633796538192237904171987551698051738841522282867391478483514317187987974069897872586594954480110588997048699366360562221431655463578546242495232042198768930562030147990329017635083507204706267339529494379634957725488964295087332981178728635089533899669346714814512630948657559417659694998026332480733284937767400454429354718713240789189256614920556454310424224021269977251491971428269275334385021118291331983256675038979686427275221671999492782167733874075973607074308855143535094994780684469583805932124688332062552058610133703425315596292846459868323741213530994512426286258507967621905461522042399898580953928048254396121855629699851982254814882357385712310572791265372900672462014537922559318931767572014909681600543483485413152939737134965383348155172866242684233090347518644197261288475289406964391759127919056856335349075921384233019075706567004020097183940384291616289014264449239758147615971117563663515722618273777466432195392856974412200486309495458868273179047858774472198763217414191892193173088980806293068929896462457512490005396350073729177801123536849873789316609791987653508426505911030463514863725588235530276463498466943779102818528656607746540953100419949028726926899451635979053036799156211196753011917336651522465394277761866023039944619718362193705427524429981290866623438522925565796761907347524853965650141724571997301788350610999448474430472266896297968025384924095345929546269963983365637496749001860472692123804182606245798274553796830524790967996130198679598007787027392094993145011486744981189791307233224159541053680103186301094837414532573548874582232062626045075714677079033891718382533636844828924917784608124944219463576085593112503072293026246585152417603502045178202641749996301061410202171873751273098324301004921008541192762789937530544813916338166702782268042098481991514168727951794339831246102178094562810123444942037766842876530292506648649142795998424086696771421049145052144033310495810881197306302070811694993132038635917522840749952610078826514968332775911027045987544879380036885642012606304948891077811975478205499882517206812914266011990458097285050166634931701188889352826074293318327510041928402212164812996722338813450975127467359024932774782395937633856992377568161627277508443699404055026025372919838459524810738648661398492480446595747047500941986534585176489814626140687446529376695096425571268985124988342188264248133829834824473625988467044729615862984451962367203447390169635223187888145026305183177984063378635328598914032403054044373891799641896108451362885548647232760369798435592092525338494756374382711264364535552551881450170869368486937374039095578898530207762755930194270065047138482115426107706933636532670747594058508166740861113616292769644989139879501380354777074070471655161142362739277363924792598097139454754815835880701272293690484638535556324770138891080857914985180025184411360427212039665019983559616831988665190125997860991615411094561693301921815711336115877946160617195352195119018167106406284659804284523073703373324696776759460214415794382811115497315914576487626394609651817847914279242011067537550614420646813183340001218789731408474376790039083766796931198725206349033981477221231633063175023365375426812515665419512226949220498027323407824163793371945474553630627910522355786157635095618529373546728384768263366781836152637490036575899119753549492527119154131136373428971362555230797523660048021876772140146149316588580625613012535751575210927087644788695412347360536793924873574804954294127745534442915469378813482341345675263955630110648354009247004000390516435993898967165061464722338500749514284660742719742688695906222505935425340622153598420877506670326402804710410423862688473722979120821939568478385097096770585917659250915667685632473539101866919913815977512709449044233415235817179003459302772559877654204122347644043421623091106668712199940367058225863042739223177126442042924063116178760906205935327060877680744758826189870294586807784688386587195856171527133126055201159231257276584071710603931052474889150002211117742476831011392626786481165950748166211008498572574247421804238658056023476260209693267658910454430594088033435920781378968584629124286059263990609492421841869335363012733845213468313048386551173167541528791989764316882990806084318315555108071195255346318492841995395373066500021975290320256646378747336442836305782696771273230531714144436942727223603601753182312039116305979748233568051501505325632936326303773666974404732492998501494776630700804572927388221047230634641397632646078585650633056839605233634067193508869219746216088702603279664846626424436805257484162246888032817034981575865820191205764697978941651648167921616907209742628493641060705197852146538626710446535406766769216972534209404916387760670519345375254404536256640532064460465579710851407898559759306755021738191952396278512397498914111785245522218535573915772749855611263862529031558200290702903517011188535932664870264470164049420433509817943600553286711354294133108159203440432802182186641311767547154788179312688626627521764047509184710285403117517701938955967093283635006757495816999546021547608969173114845281969702978221262960894692577990101827764793246659917236379101104657050483966218332752961515026527362858880908127242943662861383844886342747337625519389188723405044511071317205323951805207705301627670225083608203059872067237717363881069136641430335225700943837960213786849120379439048080968804838357675100346216712576558420561417933229454776273271035422611039600585932212032767425221118143849812029691896041621549465958336401383570609620282798364815298377160039951679983465933774424285838932188226736786910574950591011082529274656222018152508958271610464101283250508617550676090558320030798351675999893022978016132393973852130055827873295223111644126754463110694146628525933106984214970997022595665052699296614475270780888755474506281747804488147547874934629769055405765379182521808968029685949826834635533896628884386849650006598811950312525002726076396456215567360363147626318136858687475257661466265045238109095150249662392175905828786539394426931941942732382606187890255335525638351040596937942088637354741553374378803360049791839182425441911928662908808150414389439193257094087964049371907006510812264136888102588714160880563589021798723122577850585046162430025598552412955937242273098436761031721883492032781006648265528086766088888341776197196444135181958439874854181131146471826231683515197924190905266930226675657107953712652406115850073118059799175311532943587413829300551297153112616554730033184878728776719744688141054543211939220896801269358198399673057764945474640117608571712418364926758371277636447471335771584216673834400661347571050318759102954460775747513014016388155460954360913025941003739111796525892279314506570666499509064140147547224293263115663495870019881345136669160302719555496432205193169702451806810047436979130431154423236534666862172369303519582997059366226978377034503226096768061224217948230405500359921937525938928274030548371112925202411548998810247862694223599029635372192926752344774967148202026144154656846310088804439248458960994422651308579074005305969531241515072499606503066718427279821626714009308910360779214961904506524335965093880376433867352417741541328469394755861153569258406331285477152184421595473015060291290067851411419638884030130232715287557169982470638814096378410739596526573189224445075510919356087088353005405596941709578996335119851448551794793994042686554839126714629446481687723574299729303674392374906432796720087240395604669488008391612228624875930561526888612788605295509512386821781033736749163009954902696236541680941759524465970081326524557457491849927233712632652723323124721612238484852317057673517334127541251683449582965427638861845075205027892152358741198025476408832860327342101342076992546780650310613351828848914234501165841822754694787471535752567901672399699222925502277388421216132451884164392119651325543556164749584463983747998482787256529489194638915938462171685477167061062503299808129935976530582110284453734191269137563599108466715380111273593402801374985848304698354737900537406437105823105662362213335073720931140121781485823856205765269664661450375805408194054101476513487823245770878762474949564461117951054414118894331499079549388930297966332424048294964640840116785954210806550425826464181849793073909801523392261552520513463656427273036804191241304481741561799121105215609577725326614534359992610463134100631712945295772013549925842332491726445652194143306925660123348868654305687902765086647676099385306251038259902181233084847735761835657741753453035845123818806568655558733082770085229367451115249322849779163914857290181098196564241777530622518455946941980517741796621972470627938825945299260521599161066786410331936278954001295385598730168065719990200687787874826589026059481621782567189056298854617129008468975303612908696147313954305469163344923130265048294486709568736044203997297036250502259057358699080914941765693868681254075123448920204749602851389255452130411170506815865006573031993639670875346751477106738672353080115182309264494031302605912001918778043416596570704386644343200644634772332821577945708262750515997974465368699458150162580992081628133185479377201289939083764567539243729694430550996980067670818647071640595942677824893228771756727314363454820061623369697789332563850521225525181316802469842519562843509398260237399198910066092691976098818067586368566512588216511509241984116642822876921713859728323763651547555702407495698541762614710365142865390662632513943390748247984944462759429973621500414290934314848910048133537336424178998390571821835127014576682430276209274240610055030337333480886412168949968535961294236308878832391917041057417033387334913160237880433297994064240612240653788519017420032485127153509696228006451480953310851633200048264366904030620021559382326044096503390774028841108037730217672224368969363848618163335837240264639258751497478651828400368077480231411981166872507031168870629814623493872016784094597193940155312598881600826012372212370034536420918949288881565513394231275220152614051144767570440632445239077428628632709302699925570003924300108810025278431685256366195531807130065742815052188646422928454973615578881330861191895456777690616311549082009524295499646620069074379047787628717182953294844965509317971619774624099449028202692474504958853016042641568483500715264797159180143012906261455395210577730936808115451940066197505290814167245195705237295918013450311442684367899404840756099262799737171112068016029507305277528145774271485248531042034937619561302282647902801499003957644152680447107935135090939774975806751050919850719723831054068637946128096019268882622902949446543557629052348778439856007094585238358901137815428496571825484276271804015875170564669593881570821320023938447302636340088738698761661125679043371950509613216128323793996061446723495912759738581873082348222429944197141505594613710540545657430446052411687723676753114579439565979321379548278431856911100614445452124670324201170324951273806709278312293050018231379254041629441707952848275748343025112399195836657964594127493743345931198269021969502442748331613448056899966280717028434905665873689851625945000020907263374321769627106713677106867490072889642790150920965976895695504072720916148477169704582372026847436769511750693652603483008302100781520895865408436150886150552811110231275654229879526978632985019131823046390608726315373731655044442875367991739090049128390618847019709124794758503634641084801237981181528649219134823233522182216566559912721055022469250149944492863363755297981604543324271647164164934789498746540015530829883738050533536427735142363618236537913844043275709268414430251578986504926763779086784042227501492236188844926065585017290513564459649949515651714233592324976442154711742129996076173962485852340163913777828221860706224269268905372570032489802726925687016826844034473058550030789272635488695688869707719763094482714632660683942117082744439183361968757546923896277744640662259556562712181338090771776271421251469889595268468352621859995447940192340439026815651774309403211176871181383907743961371132278939611633175966437345868340170380674986283978209123990203567743066520599360142871755308260761426185257176320737447769638765310654786162480813022264727851066797823546184257240678210628054859817053552266450547320818777854464088277679385056322113560826388549794384996234675888717425391192949571455454605589322670199417345440497222020363975501477387861615727851512069462126069190205767703259804858057959109150540451624511575042079229451033811577240282907067357483176578151968131082693817788329192556954244069425225296028396159320305333699070137555028694103910998216204291738579625050679085892553329152541214969165276321592768739542406573895397978667952725941331077662122885405006310789292006590368079238672031539936543815212107530157894379430312770355887349778169269608298611671197731461607268222776442898908415946714093317459885324420968080467149426007757381429052714094399491535997452863283037896226753730752762903009682537220788182361444957244500041379838238700754659918283396200912656839720120727571006838308127034416130345349666727174525201505225256602350878389085545366182440226598466767906013322591562493274061055661024932206960286666102408475424393211564967840854911873874268356224956402895048466900410022187041276118478963404326541769055438102082290891515730430147106834496087044260815189326913429035878083779168166861113236467754508760723887261385445760170526544279969588878252255485423462291608884378090216417770256610179004091088670151588053713067934196689235586783133056998788603070913963196550553869873813323822846463488205343078673589016024517774281812805138768968866916200046144610028018226048252949747132045408372747969434944940521693666594151905101776453013380886873089377403471113986174351894149266437554279576940140648427904035332167833009126464756820450619527595632899810930814031910033056934540312807450003736351228586696495787961723365503417053559437947411182293740462102864022085355616727884500013096548180367943614522234875692061176890765425903626468657134207398641480992805386897894664556798198281101848038381451721228385340287637299772336176163055034788324952231642201188730539854014744393683476222869041865723858064753522301350011985853034575011878333014546388770557823584643535231816784233881123861216495079568372233996847149936513640049563988591595203505202138569017717580929614995843749874756844899120604511033223172884349904081734704954278501417899534619822211518135757241178657499437760282891037630065662654690739575491512609979967958616765390364041335298315709583548710561086346117949721319431810781534795992710741788727015121475015989697424824708789023348423008548806387578502965049416863402885020257547069913686710760237418061879648667787200364259178322618732936736145418729337676676952648768353076448113395733032877343252966122339139526222428970784826781763363064716973491458878059519948005075008129911466588390465526399001590327963255942845734754776474187119883114295420665231941892992784499231774944482431330795956521359146847157502501917896324218722950782937735299012127253526196225167733246576978238553783475713718676564423353253243736001877269057719099140274715037323913927113118327585180622440959835380259090788125905199090581974740132799953367135014374726650880983537550199005098547729900261237456387797714144540294979933399473362064039331775176891980887518868855552075848063504895348098535795502627743994051271910282189378313197870824073144428939975362004877919950125627489986471411614244334162249144988055207011883220547708576990669828688070245852131669685953702095589939126452827318190898725950120579772524590811563875695778470360753880675094946645730046208499841665297603189676150649232634341417206241650802797430827545077538082364667315885272488970578281238943858777511127425058149725675758249073551752324012833920808745434039169238310513048125394195648138779332996899768385022878047573850929327563796929677070433083378561514434988935488122039000883691037593295831911863282436874104128798227332424632371534243262504552064764085186914678930811619998415960964526767233041182633206572760426657987355263612543348289760937140817642517213202496754189891432415659200655737799388981325706392016219853321899384887283970263932398655677913170837650991644976128505541205354302447541992203873718346763989175035262880928032500958203902330379923989020684878671655487234583741556210085636770574745147602514239089902485400177704154818281000983794205493085444636920444036248871808105321518131627006839528839575460126542866943430652045798281761933481874531186986102388866959986424418467127211193543984876451334339402182999676518040641856656352633742030010929247259178900785828767835327174157266241237829956400079444385829895718706337158490898823719375916484489607389715770493286497223651688244321857235291528750319804962957333049632185336085750401790404888793148197305614435148465189289333628944796624338317091870374646790986031693126756658592775880723970391767522799525083236876794945480989656004764128799138261969995463584062450060069477377007439192419393639800539887204241005037624534714311313679247200253507449522087026776210765778635200667701196397797232774345462830325588355025794537627897624350810745307825806512976183043985621438805777376094655882886484899821611909322196565513384405488213396760251393971421571712208470313601229240837586727732099845411710709023609857901161050269718529011485432066145071149720935428633397917968282273397993056116937331598911530970738025196288995367248537572890712313558744231926312835678689779706847348798333096334000939819684985993357911152338210260503801804211082889564678589752881716304970486358185373111874773118600016433137760358479871000875695270479021385677766096159329134759108854353791555458068908920296787836432229355312204277795246898917973986812986953095904881527198265217781138400771275480456172514292203788489489793691173983743477674783566114994650342305997042719796465778205233591406389173773655366221416156972476274468644654764821880089057592231307126516147853167944210066733393831827700710983071179650160900998325984395259117173708941963913620316795141554957619363391642382901639429892971743018615746223312522908713812630611341561505505702628213154260178066809384866089667645391330733455555941879105355507829900298444764931710741253292045254469866028271767687621910403452061942599199053499742467809798962727800115647590231569749350673641801798014540262507316887801973337228506219320152278281629957749638448524264198908273186834948624848330544392398500131988015761666501114167341979081253417710639123030490309586073079444375474531183075357124889121011682336692314859642781717321500715692422810458386574746041605308856881432690741197828152691939292313047512693113926511566515417163907838874897100668737415118026724635157636132619113260040914368846262045879998430557158821324584877667664886585428127380062615512863525807189177901962361689526648105780401984238712248804138504474454517934686534320681681550601153899722556430449529149778818112193006856900945547145194494946091042790624323680943375632156424752638920658761464578799780492018853856954732535094130766907409190660993417739889038053904911207526426054265653719465155879784935834346291468005210833702782293090097046260857560109478908027757636627649011394320696753474962759801641010162324185637172134956195962182500550884770651928499570016409147566788678611914020311864022563109315206509387644492860272441898564280645158768725644068155292753725782623585765970771462620968306710710441191183303865766689575578623530265468797032853913330231733855846058975843713185812111404183953814946795492340297028552255311242029935940228497213943012306647493294687208543905101228496455375519224678883944440555630346474737054669391780959100690822556994005563068704303086915657661510445183256151379648087281591290754880166174865458957253130463610042452903199611468099391280620067944642159333686722757026496702071891307124903592838407548855659619527475809909380604745333412297404294151271231582311719015374709532255769498443658234905779979497918703158437158920112196755379253884296440302027030712090902738236873353266499599450493325278313225774109629367759761013998647920725370700269839591889469287362036756224305965306157411344959170738605354557418474595058443310640868369361945183496859543963137909511172593791296158618933355743798043879603217162008715376381383522466169580963205932765260298820645660940759264631781711093079433683282114742137337296909070067181722068534018628652492941317003740445982020102805868972708115250660174771164557082883244545698316032038400736832338886353072419340169189822249386314985373157308914754371743406649708575346063260345821084161343985174005444798356436198211737088418056264041446370002050563688689484554463524145798445221373296857465451518218993161474438721360275510354728621510049772787920679880287324230802881326216365670297681356493080725744554331807665149931387897285601537784564904018876498842473355369164365602310598570188406104799683694834083116020602720735265285787685650308426924443033202803907747473747566437885950897475905863155984629683463395958425650237878653800654168378699879832924790776753094837895193711367049881899275005004588275214660017867551790310719396621947193869893855814277622969426742542362704019241681668201816547791144457162539992929139176678931898703216110266560433432683225053610592330908416612781906591761829003012341339058098949826174907227922991150141697869688140237544371831219944041091766195089929069385770186071323330308555140734887150335556760150206601528811580599099349224363587366997133293587578521912647426605921951216861733286785058019946485934831624904135217293470094006816602656336172500775000838697497319932940847367327511685075672543564750277453527626024684781242623553788977182996186550729212475204897109421482564763452152331349087788624559499035904451859961995649814711648192409466487332317893790996882985084159510461025130285792939749686618353219810172177560550342635884824056296447081464416027735111542178216459783806920234209361449252195244605285153888277790605558400631805477124130111683685449569552726788451348114411441347303205207894769625721015557498229663213149406033713393305825459790707911178364118832041282219385783958771144343636021694222091486673494920469386659504150537113797882953139235352236460235493561156101144466586794147284320622465457230888417945561238342944638074644157509123601356002873070874365029193005352731193114623509413216741539231046778401216466097051031121844943670101637443494873140250842284930470314837542198822091357697193338814224951096611153828139662614543364688708144649070525192131691920599442491361601283802628588975636992864742249003416103030487662782086788734908343633625429629401322245270128729880818373766150950638054425816481966143415915927344359800436060735534912469934689965192920259812374903408269612790020343232826852174483589162477897083075089787919238242672831620382310067625282286453101352901606644005275665137475925074974865866776033737320465473677862181626003827192821708167574074540550785072763501627677129342053006492752243785979266303187079192386055635842463498984254669438944705442868865842280594188644752602891998789892021056071342404503802483260450808631553683691187738178427579118321208595012540893743451364507312011790141479306013005547388690943840174813017690894813523352445345771570667578339418354080022826239605029615953337984182179051172038586818116756869242849792108836488549099282407262889933232895273159106334660720994156476018410968945962958757384494546202956936722957997932526632654113660841651353596783387940547944894015108541058382537075087432181541470541865621573279165221870567154833057294559941733289451623702177272315642063956695193468861153119670649830633464793175359787715157438854321582600840138113417410860532317253798647486053467553207937917721429657328207149892472139372519809955498814819472615883375208109635966690274618225184357290644898258576466978815434294478182976067859446860223863443492370760881498433612147519697275561160916416789806192890272234022973426277650681341970049852912557897824851897863714051149669861663546900299078167654366568103099474318164701661428778493175883245298344877616425377052765621015669880931570861462521509313263965396632912241788938502234924243012653035476064449455991322162779051811417388460160837683254541253400688964295073500639239411645799161286475806997913340042644231775109444109168078310773458348249898539148169151652583081166616749306148826121277637656794094553561388134468627891876921604501902038362420629085673708195924921506178135049879483064525024673984166875123312586120977921882820931308514748884505231803252184393542755961146549172908670084438808175403757981608466525631533590678141941699679929745670596172321090143194016137623530306008004436718530919283294658544177039854820488667666341588198133509842477132889950620412660810630357154360148667081508577456136507766449390053385294469650775242847813099425986295068543736725973588878603099210309126626001382663069705036026100802784846353473569191378460774279986411460775682269322252056401215185128353398676124455663670849786381653796425896581594361670767084055032106773420516036647521163212349789678952747989094342100417964445577508494449284734750373914337297701896638650198620787894862776935690563368215083734329948837785685831964173656498875578318137278435631539895687095030395372870993075886955021802172501865482674025888948440259736231707674270405718857410975465663460008165643490259784119883773300573613990133294075973300822045687081000399958558066557630002282538275114878578233950769601826590746535236916104208531614516624069055260242372756282810005658496365793115412361946922583254958568371469641345212224425675287215638855266885673947997487683554923148569376475273412589011728563718624243382103244204513983199283327583613853706763352093846620913048682156916318235802647360804245385401736373586505928459872901162240018360435374348740539928833394335916597027237499360883808737514691832824405070575699897864031555900898448353549831556443832033637252110599495548114932186282673801587516184219438943946199434341783390392098989535494538298565599802850706811138024968565318722617454172039621985846354994624717081502681938681569247547259184528399512001644722869361232710724264576083996054216282052366775355176487041239148988920319860744958473704318737822588511930816226296807679486075896622513922627498355703421369805522386850048018430513265359347941874250140775282428040262883536373669262435662835249278077033898504645745837039090498920552410070626653355456477691223404623059112628007665058213221689287285944459074591518995444811291275326988798044495158966645697176240777431296237615767565772699442304685897293506707101245901518965408364146394468144340990723903053140824656356222067742322157056422523122847763252111392155675453055602483847459849953303761209213626596792460132333693841526878282034778898084462982833296606028042748065772070970951052332587030985315110479340613580631461926154911495242395340846191052972305219846976486580963093398103471450658497679058543915146025402552860570813016115812088303449664796458204538812025894044644122078006958262735554144737419291071350708090828916036012648956378353763353339590018055432174195809186373857885084915968057431159329880121571334188041138963616978680224080062500552183558384756558494753653939228704371866607248909244544425150319708988343268001685229011739904902828727190793998610382701288281676514806860593479303452352228239170358649843477195741846783292682773589836420421149329951272948283330857702934762988596478767149644929441877903939138059974869639688048860055293173537395168206831039433071325165239708491035707019914197679708404470824920442712131309714076769586196480749233010537047772445135047589221758981426282949256147711768449820977429111443106655906057731973912379559371089776163340305643822538028087041877033597869491944192519084785188434055258034208663027665744891039484838703441339388736876017869980116765809050318443879548884439445057623241599363656766426359006217589845120878003390903840033702904268107062270112590090820663329993545678190304197548969338690263160395830725502578846037975171485133688024605980456235682850423369927775797610679202036909570997734375532777690615780296982307543043666739993282024422552531515139450775070016663965345103285895339267304264478368329059470149521111292984932907640540519325871078310959135085241435686280741214000843013163459178192547849916373981210379113960607384341405152807369156692581190974284075083453770541851164695813162586755585372381521243230152414337573644494612349490343780293391174060102354693426250102506838287489984475079999361169569606174280496377473029730492034498566746670991912932834750888769822581806244977385671617392733289501807950428096433581543156458638112047704622803554228144034586130098829005151761610546645509577248063383923611760459000820392173792837125714346448292464239141251039778176277247677683686248650851390952616921520936440524946914666112881651258726772198880013430795928740326746366242318984726745511957302861340735480182046734320137576474384194354857746094513667918020536976177279132029545128786234789025467646979627336190002177581478306881587338890221853512005092406693489693609221702297834366822810414469396026715925769600406175098702795137542943685187995660110801053887109084077583588592934165463384951384460447609280090704132894596181567737668604256712545207056303152256258209464840979297083620146832516495116845973008032050171529224281598192733955586962539093463382919717320177127237189745423780470163769417975564768226983863215385199308477490673081943453503695235012184524128783037526114686059043534797327206062201286561062066664339641536490593461675242094762933757172345685203950849594074343801931721903166569133044675248490352559748935938428911004867112144009123562404706425440532574405297131974575096360260067965085682087384943188352012744031530747114490964750526864861534595981642059952775502175049840530584311459725603900421839662603791465337948953164355489874542412239028217217089719894351742961302666211923048699879511595821819617537955607132896207515523273915439967198134343627824401575020100960584339787418013122294847659482939851038706066318484948799183997778314455750773093571454911380566905206087133192187101963432764981377101384692629826640835223188164957962651055105073794146248769774267429652738081918654806041763284153265677730047590700662495217608106658570514239485996709889058799321623804879050241305161970223370953971829663343110345650406315874521358590989632784597150312554518834255263577088692750049622020634600404373877346176647330512134325594025063272054768116612092145208516726472894220262205379265551194450536435472948017031393674307918069785193501283490515915532167029373369961936835717796939156403507877032435343735245625726522994791798764055331730270338665274058765159256378083568305822851768822004742057978899121144587038279215672318399877582070501950484457089071349218920759057503182545685365889567742164701489988835124399670182971772668295021680554409092997832399027093090484201215548310512405135450820673585540570455414190009425148604311952883174427346488832532769869504708025163146189131002190722605163560867113358212923791966779261111892246040804919890771984024321318097473324590190775487125222119373677249259961706310728953709894742111964380452959080095935175451846380386840280379583768193560369046591219403540108224998938759847253817651014073356335341547403564549003006426406657357250806174570455756225721704424539044599751994981381995241529300543871711282175553348015416005107080153238176213384516055262130292701851161887719893235184128227171481303903673792049510923414568637247895492289745399853832492437880517622634119712252768518795307531252632932737125508505579341499586838942049693262613356842239054481085191075482531797933054701534868608498083492346474328020061410644651267274823044988092316485363469741436437645240540734862696966881526006549344071273336588672615544156896733924398355883424653106241888378311154468574705421362173834225754726357701417866255736465375824029672645261063043799856803612230806650203846960294777506159346898927487591195860798120892170227558738259201016409043642071376654581295672768056629971590136129937422703050771909555933820002084901401271778022087758429788748387888896397241053731471525616571521112226315104580608399362521883755239745168638114689666136441521730584429166325255127608643812413681994451873622703668318113573875640768865337772978040174827838935454186294576933418897885102559211852993280588051781996483847482053832976966343822784206454075114558271348712203455991273067297408030143459410347851064892559913781808795812843000017670534424849267796953139926038142158394537618531884757430529253348057087707400965770211114813316723206925610658548623968384275234252008925458250663683454832201469336733166438658025756857840056901279147594845546129238055950660820833306725029325666117246211838883462036485171707910438415642387832860398350110068417891318215055734769965263116297434545295238207659357518871228348914540804490842476609671445423179360823306254039329027651726189275547968896343531457611492019250122415400152747306044114907507888525302013159570889658750777974264677007890201124096187702755553598055268546081960113042232320210758781642783670241724728650607506138618987902833548389900017314703843881175590286407725554367695101671946845705623012376401478073223596926450031059099864785898460430245422580494237818545379986706650053990656864320120064606538216916092560183424182603159959310619700438029492659841175958221630541207223251682316130264958729207725981491442920206771266135017836805519507333437320493075407340000532681548357624889870661861127212420616527415173930235736313296709045613975041806915702023294522038375331396063931575336083978811403919931917498946476714453939222726257455837619867746674208622181004539777885109608988583089771261189022644718087717645035835364235801171395139743224950708038939955136546806126968987524172343924818107116825837881283236931631678582435579807042323466067185706068789497967614036588705070269233775808597900068038596428976410479663939293619290836858324494416690959486726119951122812562198697157593708527808361001938251888469114679275314539888439110268347061646756927524089868558042734832275165458665683890600336933295596315092900458315312652263806910611548009256190190572572994658975325722179296337417346905901566693642112821662618711209273056265581519682289724497042638569373894071525326131020838079856196711632583971838833821140043638200301503928437784284662931348041311341360409542643252239135543602267826690361000242398385261871207320665376853535807636204609679137857566917343502945626103483914448616292874216179506433598442452359010012145661353900275648849784842712826762966023212533174946461421658602100479418813108939697008975070877710157034714231102646641912476135972457899235389865702456543951747370055452185713129257339863255087141010215273663924614066684228438093019019248311210333099810133600817440918299663503453368712513464048061214208891097604279807492131553457045959082627463777654944343795926106255330700405832858207468107489070261712855775687129222053859116134201956762516807496131279425384853623370412797643742539801884167910139906891143569272621284104967079595224685865081143823857281610846213285402781149852414070357757647235016399781495943528157782243710760495447226779013393135267085128227105058656688857481931968945092114498740030626491617570041983427171297789977641248860042051378401237759865387724899601806611475235120005109197668351893710563808365751292109293589773805117891425670273280651669327264137875121883004556339527370068935969853598531432641634458994568879410941205027366865441041813689594036260675448519732615912970366662113942948179896963070408787675371782589909322538883077970410888283032653381894342741518911798068863735079597999489976688874606150225670974801860224539515741012181033814041000682850919113264426519175975586231698752253060018548004284541756590642342333790846489477995752229312876437309410836809652607462259618277624897804237977529774975028545246024608960583755701754664457857837423351133091975397835198290125431686446427589380010164349685021456721616088483983535291743862652678922427761020474304088948435627997920382766582778464723430924074445039709765559705536173172937299238886891411148391274428504979410683338883314076041740367835344195859067810357696058802726380658790435408144542431442670380966069895723028190106423592787817071309998416429487532240372220838094545817991974358112827112554450189732620181152361797077158463354923042343517004653692514080143912008073158608021486454744564345074993591252892438051869207430929946762072930524420655068130483527614061030861392790153003349193575345101471232160437255201883822121111396654468426466190181631102052140397721647695013051240559064544854935708851622828624461242633071918132612743497118591019930296941090860366074227844251262722085309480893970896294773918517322751546986417421291854580267167551912269584088536376019831561908904820880128830482978759826595470718288112842449043371845640143702683495447506209378797094292297173192356262837321813594990001633160190936588396558684789221883905604098708343695310577942003988825092034466826656876997800116531080900454669857136613708142153779549235599344526575898401483827246037018725662065060674513012328713946484723619488533683934030932536049338221117487189124168263030350040017437369352006005488073340534441832696642624520658779729659099675685994511156904678080658938121221584172606777255646109678641444813160767204278690460127741480493436669701297592609929785053526545373741315200597422165864650258920603955198042272793905179474357312329586747694930858533112793668805585001146440088589328719986415605130157409886560853246786738814096647298597794274470689576472908217049344203145520442107494413390590863872298855886919549926080534175612401498796707148186262760090252756206856227253274408077641557447275247803243534589630742384441722342924456964511155713984997218319962677723751277088323258805327875843822299569249693774417694336806006207073956695592856456795337327162400561296717753358054695694396549892369169850757721113241977932678412464199185386818744067299015378488606623988274367386313746284833475428102880941448765943681977376984543552098547616475330022022694342003368603411009717800027931860169633342427232984004927186091093216711821000959666564418470217739843096653984779730009333736771886890458185228773478682060991841371143933632136192369394636102244346788982240950484897706051741860967700191412841931191225289502183795085661123751421675857287535686021468885866758103019299801798335049856906185927504890358690015571867597149443254211692437188357268309767810375757438392675535129751553293041239532605645306490197494200581931874710989819663172052797829008296706981732013771444972202568512267734112805941839505491096379742100877732667494199966197164451299811007263220252019545787713591063048507089081860618660868941349688011659406530019233988634351044327387873308894284289519983659949617296117198387883965829513415921422391168569566694973552383868756933716218858693176570227456375604703922049653540181439040744813924202198367753527876029246833650754071698336718068774926531121932126346005599014158563111376081545165600589478429746306934423185981020404769422668005668989309905857379685518113726636630655198317039831464854525748781941851640183265088334520375713512082032389522715503906010525744521755610029689375916738909543161946712611998597836335247299206305266486793200618280120611704248691762139257014177447194818709523716364684237273561654156075133068828553228695931362847503622482713575940354485609841486122799151583577946984867621398359349896357798069471995832610406794284310170982968217418409263376029774352297046842870001268011649910870978389947076094364425098060514142072765580463440239526786472555059467135098874828316086323354561002257117571220998502156593723192198444315507438060006595535509906450026952584484842151990027656930029506386937885223690135751664451679671071059068759616150624109654533585359562991973704681370561672543077810367450325940797276929870084778319980394807211255383274325605631602584222643579920063412691641470795570605614487542522708958451801699239918133194527246470065585299529189876703669527199072124426881858344715451396790564779363098017553060354061401290166948815360104120892713129283006293866703269095371203510733782116645809559042329306572800301295055228707389032303233962264669326475894479442364039386094691329693292684573253214171937234867208331689450446292380503892553467504238246337210584841596328908038187639250076654009224571955537888055036169186688617283002448039871026046314215418184673277544038527143704074840201366406568304845163645168643701892689647105215234791927798224118802647672856550714547419726034821433040944270471262291585333498885330390468149581600375768369234812472989803187403816055300065413375865511965636027249255338951129707417663334943626767312470644998308844467732910262040838469238260745510380379281551952879579443700742215655203826027206334871715914389935774468773167736602366119626480527066712460000658484725279231111331140287939294256814402912633924440384674964112581149522565647383979748756643953989138912348219220389244351574558217283794825053235920144600425880332818292346581056412876905689482550777357255820372384440053269821675739130162331282600443632832956204412665957288569885568618450473542379993600816868238583663298020677102899533574099996542113507636355302808772005394858740030600027300078997161402609892162431424848642392860509316593824358192303540165358700160631621712816021645372332581009009265170616758248799663690602495214405530461759660122698075742482129521325074401039335383602756763938578262205867398058154712567472852608029748095833443946837351020335376581625346960413240717828440302906489705411712406465907806053916187650124092267970693517156881985921493977818550090612803870139382135358938348806177126123460891956978372230276930991532056219555188598672706208205283225911425279686647255217345687935558772179243179321753976101676783065344156101744606357971085369710978743002165814305266404711080930337083887585558152873164838559902207443795722535913135258650820205304095144987721185929431971255960395780679256757598473480537421320545984561850370068539271521635733511510420072518845681670554490699044708378525237432801077755614632451719950464509555898100249713199421928858704745006221932578454384423931704271167032645154003469221541092908389124848805926430367105510738062009877790771716524869052508979214127265008515579458935436056698658733618331594198566365974179374752342414223573945720279280614714603467617415843462802827043463798848398468238996426325681518280166796025134466598065974844908485367157308272823465403183253723868016327604339024972787465308238711291566355951334976866017852357776996296945685959341517950565602652470999358301995243914838721786410088758315059518729737027111750531958539601911564538689539641730746964405752502504254259175248985935579856922176073648592971893968046258714199652208879375048310295605343703457595084982183278443968532492211740134449476839460121659592070210261441621064816515205829057405840719636260757843371797059967258078423441413888845519251262385532877769208583185376720710261690889037983553589045515709189535996313931361219712846438386862875914301942493552797162986816927736682936984570843894793700064178291062461486405413146939936206074672262270821282071332255415402733386806744275178987910881538097891722874444594648865957499938764910939254061560742912580086192603619929643070821997697865302876437041285007973500411836616423163426832622162024161033223513220269539775977730793890653756178355971003396827276984752160456683473389023746257714553416292304678442242799151288373830626148251046210348273110020823793557818691943814450223998025022381401077219797543228701034256303874608237422173657369991915788078053897571281023275486450744996056109600446060278634589346645365578192622670149174688857105066021992018667497313970010632943955018253392674288827930666155582398330911102996836116497890497864299289548871011873174151501716902600868320387612787759399519267563110802973441733968746269340432551922062216571958534833503456513380131299697386066387569759956066770979743286263129531562234297714170254719278713800073234051999163879594664975120771092434431709356834036582900053060528906412257311960614404165462975456380367078083055538558126004816901993897811259514330730857235881128354039338746046361352098174445441506683560298560368562035270780475253956009807542539848470994785028815936284478031106863057679447503304515165494524867791308194742905013706995208635924533544637554222814957033465595356384121871474033106617882256387848570266369083730287466056466064935686742711650381034564234163908509458680637726664726265809226116114776787309725059679452174008221080625288813406002797415824059880368148089115691531059661614833192783176585396614737453465403381401086628317830983641658857888973525445254338660901790736517388672432016441322768929609528497739723890988004908426382481603253574085312168032048299129217716802198052173142466255631554853125100160686846984832542780598541312370943543990238268070429666749891987830401947990762109400898214713208290183150575919368192031620144569363264325151226698097216936856167688889555651320334608857748348312627561590313130514220390004601791243027269799050263878209057940104924349756730398371022176646971667737348940062613339024685329082859023925450302214141724314090286656678859301637404888891643370665961451268767840776177314158458397707835086916470713578487967488589717093640282131374393106049031440855560258770216760667732035418866945675824821852744207875178250826250130055814012435723285259319663012414306203057044807652354788664538980120475486906190193272657703753796958074972994483518412347802422492499891020432727486323651465037612522145253267768607555845158872895730243463538191608585101934404848605153082436612186541229505257994915971004560024051795872745944131168142721481532402818674936614416989778696655107149604465043830428328544881914964926155660130972149135038376219705484519173245113312559046121225240043133387931273880346688919828504297437090731089078204925958878370960126108982778458530370368203344306505438704062118566746727984465910174149745328743186837855596442915610795853151787269018596783827799299259752086672863526495303955871200176873616756373135511998982167835028335216134363292970815600759764595086136099134692927138178697357640338020751529799360270925479537987156521221615805623479680040538287164443766913001822469602218210056572365714358980755241025055551323674283665916122431075228549281721142878273432207273637131278080687372733134174973291607969794493663545035664489109009420219527666442535829625407273916146119214099683845369363428231290345399562635904343280058768946332718287369811569914311912029036898304285140562324562014830135682194691905754358179767351316143017742592246547554052060748746581771140326134809676254713987450023470304016507817997974438746414222063552043382326243686849931363242103973630170661666251237511341676529493791994277591264722166992638522112181579955858584954741073147042406038449280810931507845965665379832283814241975329513308593693185183489557920968756317490099709236184232980474629638288493721279769171484728529029045378675057253763087053160935749606369653689121596459050984086179387983218638981920956370809977067085716805196938037789949337482362426794603145922727850488018540329556411684236766877349350755882683792441807365269177774988685282443498196626544281132293959518209964146755760485738834070558196949259058964899352172259795890355406914185018927706153592020458193964704241546240872287806747456403756309778992648281720835874301106315154019972125413055319484346894152292606787699107469982647927541047604208672642919620439069979559171090651450945415586434561158703852112593982324976796080151978243038333615661772327793553543656570759914709162800930064903649657237005595935504826745472429740172718925071250111792025025095413584365163539452187082532283780890671151556800928872174378629154012234342302125410356727295237990474300340355594934156886558602851364066468302932167054409527673320359879721858028983631308979604174837699404473665015568063609278783645145807966402355105762081679168732713568377550074979205447156990101886363441675300154576544823171430291804683540829726169893327944432534819365261745953029313800258270435277573228256604976679374356334586482212776961557595000818362300306029444965082559717035417988922824798556649323439188933376645443724941848050206181217365367965253351341476150679425765384363944640498873517039288658239061986278833549016734949197754416563007198997197390750009482500181395768723224917067754737115493459018287389222733662937491061381460880167623133926240132384912018601041830838067201149737736507107742834859293744230797095359508394793915540481263911683822391631974763112573474206738106780547794033453768702749971531032166524298796867002032151432272958948742166305355525369106717887147731914069095312816686243600222228097607395255806008021222818903082290937715467819051576320198413286623131262382275943435524956919276276749862051356077128800777692800976917807102457051022632380946246682396967986750323265429708462958143145554426903813424060002698775927294611521295371457801805225386656157440126750449604667852183522530405493270595150847692442497222654630763759737543125527248459167341397745167358543949272553269823023511112557805403404491887882254767550521812216755612018145147511617157832730179487462089188258632753673084936522690231286132234374378997250643313068349522174466674502370294961014720121961994033866878776707031746559684217306095291083638968639390965266012938711167055106591447464900996076935545489943778842063669322228605175078074775718521028712199954033975953992222111289708747483104570185357548978035767886658557356853174539913768545847635040577271368917679872333844940951205147114638656663161300538998272998568976285484509568503871111865609681982936919609793069997368635627343573760347292038211104547867850495065187291397358474600701079865484185983486765797220877996120393357583738380917871074984902536398777630791590828124549254664423688436295057119352624081481824176285169477092369007331294772126311196885422067940833274892672187738782380222373134392170516125019738377821247402170997210594651852789146237873952065311313789448107110041064572142983442853041849577511568568401459482703067792304523631533857812948218927580624888486311113715801270201926466881250607974553122764513684902437691908970105208287919889798056029808166226805743644404053671953292829564885010258354602808924317751999668782139550346261953234698173699634059775651906816194599213517207043516804938222191283960901217060244097698028956394616300891109636765366167456035038727460445936085920486613292999526350145696101424469789902678158553187140991416715988172412539499739512683624504701758195271436479255704683562817245765043060702958223137804667362468184934286488685133261981856550524334450534130918550910973796831099897724967040897454549140297737418719918120281091469040233951699494704998734833605068307381019893093516867632845747860393508285369992585807438143211263302532254231952782272673112358739606386529277332899031554212014622676073610772922266422728870425811847794009886620777286251797086818647140716712736758948543714376981000134532099364014975123613374088146309982996450650503989484978569329901167325424147968779595681018539499415706882051548087548862170449770629437334096764471875505626202139312640163985796686943848643360031862788670961963805047700585749673719601170136616598579284645896087607133818066808071500636029650697268137228285832079187997838653387345163733565730712111072064754898903403114323073754757618747390408467143935788915935726053927664285625313429874507312829062011446455743819475206264423432024627545510801717078386301640424657313693753543061842953510108876014576654264571362376007308766124394035869827776619807409639971620825348490974705310880041347465466468557016974584767981587493739364185484533307343091092226899327122945518829684601262206931591069892531476126639894613765761936293052120503679542294396603052644196284874775840664603388174927355146406221494437343944112849553729874330169842132290736044574050883417856612700162332126009701126033072788860946318229106507791907104376872335824526348702589365856904806177992317293949688950174432350570659157572159895302561347904898034463850812517715267689121676011699616106017550015279492309090274527200416799952885677138091051871180844266464820204173639967984803984891645666111996331599531727922387445222016861126280018189269632303521184765877649389207389828187837194830067606204329380952890552266743946116162593814992469487106182873030990727638725353481163775756373391861353044845953109392041072425349211288430520032463568150076742418050615090336151786649869119061830726710363368434081060591440754407275569016495064793296819257421397707652980522947541792923363813757376967037896484649943081032351924821368184407946558920122052780907882399917965948267180192069833710154356738636494473908962699965699099683272422138536405814516694875006667657456989026904917987668109977587713043937986020275916088274283535587206127696203715917415416016980773883973606524582534941109338457283049746832943461882534626078135502693750646439281882854902738663261403065737528407140046998585639164680948201593556110099330172524133769894643939203285414624829703466091160781996039744120244528480253834200059582461765600635045164155014669373975623185808437250787590249657955132992133981609138299959226814629119608102811983985521739473442122698175508350127941042785313250244784224647378699134505958310944087764937556238743577269284931725083044539147579682132712743214888522944302452773552316077857159782692492791352306335630769313988507480459494796330422118208381243431323575984581390076335967346445775166438898348087925971093936351130850455489224968534378713500393453295793709178331225758492909338889179604984831807600155332796465047665434115726825902452157353624200676736183542186557586154802422181572607536212845276081746326007327077925596665499562415562741509401376329204746272688451782201655589930450946955419618906685340736505221259112454517551895928659962763232991745758537155883746762154287381775377847762684432190670522313025088348625181200131271795485243277876917395615294914344184206086887112989759593034170364456539040761797393893806324264087727285652858623310031304051665477115160900859848896798111483856393885755926247108430871356188930914102282358835506156869646572192733955020456191306344136283060463310574640712833895381075407504543864829054452987606902113514094543536633131859936103433245147681683228324424235299407529519056761771429272423663628131666917163656040512466143097857906117195660247822795799883643211906421216973720553723058437602908693440370356507315525580715694825608493118968688682669839978321566674733037767383869415774291774152646698753328925666903887594312362132235557760357289622379353425769390558021447715945154712388617297298419360395575046303607614400708527969082104612058638970936681879892261512060958679118457912778538088858428159012901892229462590954379732439024975352385077196668926571114106827662253447983841452632544573191856203269308073194059077893161781280389235570457151362336244497590913434248121949449538454642397488759382394667304617962434136213917801035256998857990319890565795618075124089615120352610243391515622777525347329342766525740784817588545972569153029289103522884309541161179846970330056546799273293791953725700057645156536871671993454971601273544876693625391852764208252099586252754638704565262779920323051206219976750681373198271840980075896287446965106117616145878345720557115979320350451598264682837431027416061652173562951330902889735742064744047092912056707031836866596999108079880961048884182741379732097548048786520337904336022989507907471887270651751617742924645659100557835244727139719166889011305149144082451326754638363537562245263322352802663587933391121133458862823240281859938590214707447273416610150499142941571966126996231086498096944044302742848647569709696991087905039119866754708803753048462641842036227224872136581740153836775208368108688041450006587991488725950258499698010880275342237306983377865094408943197767936766229433348515985732759854017557909571250857876837555834359662459816281878673804166118528422762490868991102297750755387056360284892000554466803925933137824454594955542271870583401971380939212371228182218388026431255338817900545797544146325004343594604816832641627312652685011250085232031609105518880079768148050877592013462814729224725651853383792303519213528387534998271737914273625379362799716440482859257053235111369817378758143164945812727165817329504650810781937372330522140248856904287437996076581004116470655863570427844879566097601145818372813155459720816018185004169085449474327015483192390133171536553719976698058567585453185438660904640849744299546384106696310197573987730541769094353940434025878924506026364435054924380079952978860616332868751853461316861998836187802765104090062754592427813539074753330849749486082672436616218635308136524713337334495337638017539796884654988432588902663323310780849134121205760686225506634687544767214330415256047770081295821280208317693290208538582270299545978144523077013300320656402748275486092513274698643656635053321288371936144695571235153367586085238756005602814430972260626607439778309821295508857677569381073521177143608270551408047884509604009072995652867270213202837598246385359579939736323686027625355484562005996391259109259945575566206797344348855490203329138962001560206499013396819635165532027092159915331851898668747208590868487719269531116986059754900909823221173704620187638641067750837873431619184834375577968830156435107045399533313998951094180234582286324257143162459311979345477074664479124059063196290673509016384464522416228583670916375955652014500655173056181524102933679087044251557291353792722566485457776771138609680608890701433706914339532850926237785629465983037565516257012446031936690079788148740473607399357143337538466316810088751601572383635016934410576690449004358068908005441307475289212171877524810421972472807192437613192186222894028636572973292251750518154318876046653043161628730938548558294628120420164408566661247250276110903610362072988231800233769321859086797705215769477353269664590848099218424921584946384770627487018272093644235389165787231029543046703432447261414975429583482640668373450255159664404567461371350211355345381822848879761763574021044084829309685626942435480606536795853915487781955595030007303856848405577968305536191637758349038336811824247557391263316925602944820333313022745608813003903117954060940716753583234301205895694573482996561208722482657332421867567228522105840868948606298050763104041188873687295841173656895116176632634005171099795547012267864731838847746986571672439943842215214245692415567576408266023614970131871180197524583192758912770674133011951204245788397388013923143512511084497194427949098666927210611497060082986201089292462291073899701023222930480660951559667155640035318268128545852401638869086682859493791621691440247654371126622249333592075649987398504003770256347823940472377344249069009617311098614138849783858283802353744987274780698486545150454756752527609664118799968460959031267027906646607849173596294805940556914963317998748113740620717740007110714185352063290091732755522686628043840920349365827436825747465132925956644958168907010129700239888620480693454666353372417199760800338583250081116605672047051125367741636985653492628721928995439683776643773705199661706326473144775739519520215686775757382039271812742118434442463895362045723069724845146429440406345223535219697544469597364999629075849628027208599568385850933479566061213274658581925262956755282742407495166031787644623146222096972446331487104942663041245744051881008351133830025563544652683793773889088201569910077343512904333303795464259412105610975012688742153984481732197014085139091996838202151427192299337065382873422032735816309916215704698151065185045643875596549419190138724251881921454557141840233266173688501263744852470088003699030823365818121207349267231457188250095680251270928497922074840088851028778246298858350325342082088986727188512759488853453555830600956173382458956186554650509893344428426268719951142214069415257048895560752133095035110351769273815078316601034999000715039897518373205548274445090280777559303888836197276603992751114118837563240284401381899798221649329828238772421829047906241744100039506142665670529167140530077013297624347045608018534522347149356621854186937009266070087359911389212339432443340049068529774119110265670341428223320283863647985722874964125035898495479265265037719561400031339851502093968185984358950150299602876905596194673993981960354400641558790441823863928683844546928090373170119349543756443439813492438719919419243713928209520936380970883819124985683652476648641585835013681800884845309512796468402168998432783811141461721907075918422540617980133510822630804424046418599164896962928744838493286308916760496966387741627011662719922433380623653173457413780014383567801562110146162499843184981600799022664744007797879588013686794272992296737157574019083470858306188950598916981957137664866622194568702383912321199377041453576243769153674333978228521746492664129023815031111981365884905781375892968373179224310843900792939949744570664207439801922386944082729470291978703457043946724037430452165670456592069676739469969568300839049316237259343870276746192417032560805946268018514326005560450331246800600095063650364283292411773834780731701831823063965829865937421919669181223930862686716497775013669710437560502532738373677688332910549364124142240861574210971375476099904209604109514135407270014190592083724149811998704741069157628342785114725156886130012130944878936749542172935306690000116471161875531150041652280938419406913781066827114083997991724115238762821603554283239387671503835946893444560087817405003188219027361000496976484704932667899578235682434488091215148331291855088562119270086475310160588440256709474133503274919554542451529797386981300552324830203773016784289465095555133093663214987299222391260341986863106434764224648491965331072861075927131122312745437479036154200100984692845156612506610198177998871112996190264612832136881292367252696037277287773964320904132171579723696809061733661884051591379802788253699906796186845221483219540365164056081444906236250854479464315726393835353561858048412415569813974894869133908669948400049118105040014953082083727057725977171855833837397927076950448439561192941218992681935113444904718633429963778722223739693054886356824927524736551883244178463694740241249362563371485419429315353026207842481795045731528850542036771100573984071748251552877655738049902359674382606453870284050317861041586917672037701307201214082455069275288774004848332327144833728731671097677391640523721721130291726331083178092095414012450158246709482549346867870068053398320971578607844571496278319633369503082543891812886033159360238034686241838932797229901290011845235660250337699772481243438826826850040146834471407430179014630433308448606790928394353916840270550602049430878047907906021367625143108993974026257599124874439197315560824817503602882514679466882000767644962014387693459155783316098493525907997591677242814178134315421764892460838957483672495695892524933827268882065300538710676308053572431170560394422688581948047151728261174999089155495610121668162713262758483308359139042162853342075222926940640320298688020225675558645786527885970038259234110332701737233488338991783743299777994447025185539710000097441712008791346828094783677256828394548036159723144345981303766161510198688668752271055588483464511063175995543378754306732324076207411442171531872730635051181674224303505180458232522788257609518427130913902279180647948060756738065895242460312039240559328955483345969725537937554647783536254135573793854824880574604539534588213663571046204110079677811952339151951480267922138824166538749968430179817895171282583192533834258399714861593594977579347805053250677619039007848775457839338531538760017465699044557428872668608099124927226515002998918759595027718086741224701501474883805701030634298939424315346690657601446993620783610463661394620946226725140379113875793739621711029124391839194254914246815329561365651646853213444387453629430307738412489609066013040843752454388277389138189402146935383291291123023636353191337734202319415393253500889020531896956650429707075663969379076998558097479578476478275110717637124826773706516728946859296626395048148603218096576069163620031775553214706525398805960231655676953507194112550495484391722136726112999058837921358757958160927786135286680474815321464909603516074354056831720301577661853047706152633653924749501111849328970181321179792139283974255471312498005077522708314331429330732268472760468391325067410570336056198821202553550116544879650119320231024623283657643236817884572023842782841089144197424639219811046962007562359983584539663005120043318621481273470704705237076571571776719089281571426247713962942474448976375536540155192459293703052552886261376420981413559571055677741080885128351813357176361193889547526881144349474438979271248564615597874240776875665571831084285342792200885840574397822471858511988196571650442954346046143742519726326955340408382014049149525740649117716127544631376437981687650938508581202640476568913086652216015694128429071677500772692309416015329070361539129408653396032036396240503616651329334491021235255674966101889321679289552494443932563655308249944368387318279056682610620379244349555389944114484058485344278232370024795372528623261116179081541729441985756865410796980335981094883874157210236905014449061451836355861912835075279266346155983919826362918610863237892946157672826640018471426826774442559975471083111479046496460292089557024165217721395625479657409495197178636632824042036973896903087676049355622082464786940133594074183327700929733856780872926342647786132518080000869707329437102847289942530108734430850665664207944945983694718659189439700615831199421310913992651790382080444789137564857930255554155412145441010129043384520884749924163624298364875245455400174604762657728375590757619550713259385403350707919876988825442193211750449022123509281401938649518121723515323133144114853071055858667068948371390406521859977922716884259729406349956606160756720761738070792627397392383306483588206467273247572706927588568996197069882853846166111292040963191726202186866303736433548913593301892109067826006763195931527154180165909239117969911324440986511719684981987009496070605986199121631100118470888175145757920832682750093195535514243511700444578520266970107016200481088932771734777380158037477994450726890698301267475616400261480728332763735272222926872956990936443789745523394847515142520918071054885902819133949507410551889446722360399404860710132756249977224762818401572576613610448925536046659318461657649991458371089766006188309645681407617556928684833073277139176811193732495003943106570051153446631510083251453842468530185565174068828645242731014965716301581431861917157095422723934605111838125089544115752609588127716334052322413419411417731948367892561336585669959540380609506830578516415773103278914141182342221758990350356029618712766857383721006723884459566601938333831253918193270980148808913517375339241376475328289052343232163356976288748252772473457025392871959348652428682181585812019975934654590496044000629263628791051440874343959287746602333579066076775454448868590962577592321359273414076105876910339548745818575840265895357252043216568549682098102855614759165209249734803446990659621022599264154657034473775497060017056051336487593247878824444687983656607690640324257705133582810847375817625091583660632592015842610657261883496155640552599705896546942382489746808720112729352791817419836299528586787726056058707672363226587489890507295711520538851881553873707003338741181962708271119160641691661739056677358839065641534572607476358556747430160807594046454188056201929391944466737494690968946973923741629915411790569239186531726115393733614724391775542587141450550783715881729198219330984151259530862070444368566568705901254200838234068798815599386570725681099866947924712989351654450391128403357625091480913777789082091518303141235214653112799446402876748748080970632326324789852897749318941152225215363552302838584420029560839857706336820310694522120541333964095801708069775214054006714180710182246712739981196563482521524079771179202722931471695495574092811838209800606010223086772093808015937770039754148441153283289545151446655169213708848911471469918471144809385240703689074491829144026819284035918119586354769951101071804050787725789249305139089860535477898041347919292283934402652416407197292463495875224702661142613658360777532995196194218020297036339182442509542264317253712230392591633713789311423814724055882846200229878056696150432731243840572873338224911108669104690835268929343127811371031815313657669839154287332171823836336851233940252741671189230300507078534974095234232464761926204804564475859576633948001686200840476538091446420051986156319268004169894974193428705172341712506421540733647566734812737905256528625589732443848796321888526915905908293622637229081037134653604078633567712542763540646070947938052087252012872628048365132395875918048118357336477446329166468222718491903479207783116640425990393663883998856016872685161595526915891014666831685002909876128802555454775084245157974280261518500884143690308828729389330621716079721430596580149044073784023330665640500296288517519488915715633323956707129167625071873443966821837553669851401824221431554593048796871415706266935432435228645412414191783834303583393821846501125192704955194194245816573720788008931038525423452014010947282612193461500137904609499626842380522121000272137677699514503077953772726857520324206150356603930437137165688755679938509726881394598890053133975683099419057939828779458075888651627049039607561175733740116136935649931955233865635717539619713759316663212695904771447383883107894974243351607814748774183143723748514675377706482798039813837356365072632985907728997075462317213480670808333380707663263516083480977973572880117944873144331061438024108921676557421254837440349438387378270976730864072022082198399667676466642858802101893333887768658910270759867045877316524914302758255571793265889882536845715125259876846471341710378300469714608769088612550171044902652680427252682895144695981077771113221476619629587719107027344567770430010346991221778654552830243586222998754566503539938332957016556836923724954335098297916128872168991528602704564562517011603252818066765459195936428432381117446424376161630936755617778001767760394686462814145549493301741350375058967854741434974823116172783910584537949241011355689249296826919262153418078945601254578475867718533031229088791356498119513131816676841357525645559880307237983744228578054892326144513426480666170259818729542452473826942201259089061923723855690202077241621958187176783040678224748266175753197095345536867516391021162874965651971499413745411952295769031408790876481095940401144451565753620407979279899092553063976550585429962275150429030535456305413854611947961305067628599410071514079784577989863903912467498058268066077799629639648402408733215650990209248348037356303540614759337325899126728656099792999278554811548940616070041419562034226350455255111322121210163926646890667040865968295754051942483360661368530768096608686799974920897435248597564649072353972444041219270578524884381859055965689405440510143628683977491273165556747942937054110796507219377927814173578541332949118220660945801177258454615525341988063917395576623719179633671980957109626444825263687723592008362774890351798299004374435255712111819161615241803542124675474645579154105132709807269396897935477881651148884108611140578870999644258591577967318671079470363161469972486035230305590389901136908280473552020964464230586110160832632231807298810242947229228827426783820173583422075498116430671958201466919475843124363503541355574087231539712142882269675864642005859284538347005966946655566042181465012288351114309675814200615942026633541363819485209508359498252281989537509918104796144727059603402357855475553379587439374397231088519208204435194362359497691951267589828047956289499711424097835642416790751030247473646367747713166157031647391638326860952724207500085609603234706504626364743348303208107380470926485331118597648568967703065590568762896246231103891523352310103863110865857957044779449883841824979548287071488205851721834132212582519012552461551190186121047260789346001351467835331549312125728563716066686839742164125441019016963335398479816978264693584861221419097542659530082101141424973028573707279468154032607311454657815288735910626621037923282389225837085821744014044776082589011405284957635492169708161789566475810938256357715992478492277086391816556962453050610363302981873561320207113061681639045585985664251043461838705254910281365696305800128001524676440575488463103400357800733340939178162832704111074838575872726872978347212657200786574221203621471260131766072941196054262773482472069772501954866241016968375023198093965822031927466952758294884675665610133348230796657642874563726808106384939834599445740403386271209979980233223148537766876841456380258765351667689267390754814977534765638883198140190289533724985753349755497690375274180778266006844355260455697927253383912774486454655130641997787801384218541751842569426922336360742018932488193084886267397646774198520641982945216912232228255929575718017803704799946315412978661307164329341393116615767986380737703807862855185582587521417281954182080712717055584927515547567403243350642434364277715560738506690327988847751449570820220904366828456430316154266475025691116464664099224299289008452239670430489005464724818888152637064482506652750404342300907456845685963458521910289990990300502756857938410062640172180470316320556116117023024013479187132639822687626274944791555257099415062360821199969204141043375690441001918063478093862000606696260661891194314496148329284918891592316630322708428904354358266374957177497697959386110765839122334796774793632197342879261631790429806260932690357671722105803390107150497826112719129308704470701373165204972034912777451774511381190202757415317655331906553910929940347807493441215855691598982610463900441282801173458666683154433652902621984972998130749572267028736054733264400193804361162865403660395117808010149549334066850976394030243927086742429782317810877197543883557840536514231357381169409771623595134029060728696688577018771088432930339835488115686211446655710625479494394633816954957474533647598755852705542179542994866841954606493664865592068055065658599058168943546171898829540101069023627844006604011678455017973360305118877526251784485131746371774623977999670772011072221607000997064053903738716950435501933635508484045507966672161224602914756683254623730623017787628080685325201172381944398630817007880494949907388784301832074624662262531219978923143348866295668857667632915875352394414754091754877154219653902048009532514999377492604921345887074142937298263257794184632028584156101450495229081457445065789712798146922870327309118513163417060849494260761800429200050076060436159012442172465665012647831130018393640250983229134605152832215876159116256709067355624941182560224832300514401797648100616786220889895310684691016199182072811118330578277462755904870789059473563490020333530117861200105644309855346898730710781828961312900432083095757890086945514315363635916802433320234519539294340603925521827304261926838547990714024046926131704784571191750696527460190994312489539699049592152043082942829852915199585372546593913198373825192040980622261850635285483556940801884026593849171665638909329712083602749332836690345524095658791930458772784341515874118508840134198270404330486860592898945246274627354607327629009021074096061130884121127003875743694672374555284895635789975063633238938503742400557893629577624204761006021819294607127477275460900719294914645083766508532594605624154888910328851810561643770686837170230158169237513592781880074397039367824011688066025981301467659970629939977256049790374698942544955681614066994217046603017430287146073373343487118804198702560608799423481997211638099209085103926916043438528367144263920659905984230877414721285509224184029957658819667761143521658333534686787702716943727760456927867585931756567929668592423839275922924742098329781421180092731053007203571657433205908476832520129469910170168127073343867414205442392707964336836321717568332754651771530439201345275942462137820585300190893770561401904040826836363756416260092818582111655983506221487081230398522795820805694686661736627039815012916121191129259536662315674890644685706247257494105459828727940300052704782966179537674308211320732572577104110963493122868643596351911817097455080381922245828781997225660800468952768754330613236926922624817531761965254312951002636212189261651019465523015586016171963321673486439426525998429807353998993147347652210360762852010747796183882192830601466738197639365619600079706453049545110922374621268861842913879790656071482781314375423552953078406420086329267268712507204221460908427397406651170701778491838170263000001756695408322103637755076982379167228418359042259914803872076816365313738618632075449469091431048279259367841340810725116532199716495020479247595401798176237206376305290901712373091375761653508947915516412471661164894597552275609102012638106743349722655910315135243325897548853935003230998187005325379259820066143327217603329930189637382146401642575861876583668699463952655484596496101950503573724320891585250091045584451700141214224005856320737945755620744484303361021468262264438046371200885165355725555840775653820995167175946376204467783417814890487849789897683490273487372145196283476071614746465450878457453318905184138433118696008666562783088870088009308925395050360150254145137141072770745080277049021704169870771091903026017709422676553099789608540280274282298473025755578593019957990329825602712619657188261492056320685223947826835259248152111825213327847560528220118333080577725575415138898835201484123937476601061652246034395609793709026947417408287392367187651527443482650826495138979494982769025336872146738891382603486780902911280249591928129782652324639348286104713909370089028405283972693625678333966837476039998104538907142051125403440419565104316949865786007297782350312066691911389175479777240380877968675985966884280832673789900931328547063780341045355329524494792204017913696850041154363004047022862318585345722049097612118793081695346469762662115126680047895656898789291353775606895739528928729222356853138893431210153824737439351404599772716288629434785679289808003943408921257262079993391569732015457804982748898865381872640708792130000342375385183601638855794734111126825268781946105295272986185818680235364813591628793687878138619547680244618395879817184252328731904347549766029646673199418161100164594456132183888329242914049150577094783566652854894279492844113663072159572171737895060680898297780511997480755175314079333449900328589847081294727790313595883496351576266480055450310788818384011932044938732060487075678836072147255089849208211933766717657764698783010507701230920737374464374941690650599060002008283735197507367090649558441796528454904947984164500180454677020640116562243756212784103944933456174110863234562248366192657228994980656429212693650389098751498337562100912314990813790217196363611460895756726997037433672179444830528988894638078152151075012318616718918704738350829323059716935314592856245737628702717816099038241564054757387633148373672202626205214922927737020240070279289217713888891453463940511097010940600346618982654698128859307651856867807396971332225877025600242081055746379056893286675927112591540347028217548103142351283652361282382921248708420893916172625805043610796227935911962026743284856750006542102299161961336397280691541061319144277764031654068140054430086956312052411356205995864528517187338687948388853213416833502985985498823593258948699815443098825957305031587571551215519868696676567885628703201427117957234451478424042887567528714825261650789823991000280134501751551849618642424794100682776042579087939973419250686299140911859241838503427029403178667268789584797258826531234024948044438654731071593480140604067291665714147129831248096088995167947447502472361395352778825006465110341802210577398133578223656148646555097020038078058027807446452625553254765075477749783211222901736227371543313788620990615436831730237479303633505090863860443367227986290110638024981859433162678196801793464982228269383193832381329299722200777871021565620732508163817292945317226100846279574347966229161508889337530879291315955701959835984984226107202221355261458752289450904430898782743442265808291588810501770201331346816113667198753957184449585874833937746337565459897517520422277891675191826678764097708964357594880917254416151430408709857681293793307568639364826437621912249943123490640117017333200693061437679011293373630497092871393239286405732985764184852539627290891515953799092843167674426376627208185199225301208833249986309461662510546021433161421682915361316631349757731821576552482739612331588606513453340535018503543430353456675722562753930832556079704273414282172437809418556843325865823072727812115050268436003556686915843098248567974804498482814149072207019150516342098975457976150397251034583736161932180776696182928996678200410795434015643861196699081473656097541437956003736902567348650690788704436062876748165825700036543237524291321922456555615084504708813567662799380531650083962579004538947890397615033263099990041089168401991612277888273495699258813083579000243920861690512320723306550114742679403793559285924767616227678153034248777833206280177150210574887448809342617830627165118897108124828938774893200255996231332299936578063163095051212718825408053905434982799882330415519231789411272680775802097479794240561814459862059371759854365818572904566624224373636268497138241571519640755536678227591322998837038262895263061302833313628672391933929668836515869519644646922159526712368078771350662174368569279456715919317954545526264779398947065387604357555014050636838190127403235476532627010583019385523258677266694379663077726916797994366715008058241142581334650715878001404959258785602774094149543876124802548213955332908180356264012754311407037966444702807358203217070725769291881061643710995351092874899280465292159291243404717469593465952852175561373275767129570735591047441952761737105755182401619278703020135948963311929564530277040679868472777352773576767270018746769362718941231041695210461221881442041185407028768207722958855347817186338073630875730268155494164421495261792757161587909980408867141458386761152637207674473732700637073396269772826679355499225230439105901293971825165169813482960721427785257438446727566453402440983572413613340243879076357766211677403265742825447758810252838151338717665090363071069899968757747824708446818676693015284010599572063599576988775002693362160792652494436993167443197206655819683476820196442247589201710329473997539258212162951405318032481573337206603805224814080043930552821395702657245942320860284870025644779929529958658122712850117407478416369577239465218848763231726285683343473599692778115772583403087703451043455881817930698041801680196728550289533032772172349322114609449567889101898462449673222277888193803096956872698631559092808845905787411435709190211641767571476842489258221176559506979457515259403123885790251287866096871435084383431446775793769964886674578638648641122922631359276559262618409392607913229478911678458639994443222067680814143274936898265822504452479809589021022003000201937946601061586694211854747920864247603873074568514360407563889897482342485975293301891693583645575999272542914629935294278013787690787093504859969034136816960753792719772789573173406266843160845326119158337616770975582353017977983845702926878352999413014503969971043483794405042820065195931397720582240891566923076021037879112245028678103144349760924599098891253270237705284132583990850362934048176891082455573024452492344763272977198261442562812122435134791120962678845032425557499135763742850681679095155151714155821978344978604954642770047151861297399688293642131157799468448135778840150425085569888035685060583858218502763453759267300952568949700831979008237036630866679589104033946387599609697002817690532385822985950130844486651263626233728423314317967725505232433361386916232187706206301360966472052860943874260159099639531493699867891022944663357086301302353522812641867749953829002027356947910104635878330243335318031664966985037317304089189744815517942369390305633574106789368783001460810193109015084847296390280125705942797412779359028066844752126265277957664865564124659243911861826079550733507258962030119900581225033738972932881700933519577714304752803647772334439345254192156563957115200590964818630743908112129066183501533851336835910922901150314216271362037529371615389596234429140841561120872605324834760037078344645206505454808707765192231859770929033170786355432226710767100438474802747158466975310435321554172123462889189988296610916639651374958918315122280077512612298822293557188882094418054348231529257283122211898120911385849979129579504367889368619021862589453106451777576939026150835471806824291624477265779600277392166394952866664186337431279539836829156724542556935295908314072983437969875944508716310261961748627557115833495716692697429846394203426156900581378117908998136563028953688454260746009477619305039446395589499630741665833231664809790843070936182438386254495940522252723477696628059925614623430361120038070353186500678661584761463997203830709181218354740685177808095395684877749403402987699726319562042744465768349449386920048360087978391552595450950842249003825419315676418089447686112836350854198119748063090642305766939597221453499915397591479357157376281063133662433135882000276214218627009019130145650779544526455903088937074618627484833649375262764166526107481039350067543377006624843554247079329618242003123177390845006901426448231468230347691817586084998510136118860422247094918473223056994044486223841475381557334320216669388002997260910863703756597112434058888380992915490862867965684831684248206479773641780712510998382177876470902675702276303693287078697139513223755871977025448071871649807016074753905772660430459300335373001439233702942044206781070737484402618349747854309416450997261219188402274051585526076739366671584858449477768697354537964002246958252311113273043525764068942776350100084172446449689012785404437240362202715315053680576234609381772184939375562571663396641917751469057150559929732530133597280744480727914637950397983870786118914546687390996803284755554638120577463491684461937423879530331932579802192576172409136898898174546709143505982443750226812299288643584941418515551774887434498194753189129999234730205180052433170622441744160001772496347161907091924693824876060264656125657517709083764508085749024207426500965274322439315074637674382894109144736416299259591374722321614183847767319687923111396528196552047391553270690559000068061821525407407199872052253605275955624235433364694293751322788633232533123623320624472306538057415185008816448857170768010604156359276078731081153646170342057616521034394750856173510397030849489472391074506237653913726494745297044479185636696327522812981629537209002789559571808674278143505527089028527970648357553923508340605776285555597763821707658767105118838804917403623301195055130402788953616123026952913558169445380181864461707167205418255606087662841901143867819662827996619486975614447209786184943109884499596431061354630053804724525729235319537457741440417348970678323798872808307252922775519881630775150128629314605074995108668337678423021500021047559693885805166054468515806014800230976551977036997930128096672930306417004548438639122523221329674699443176446762288977346759248833159470828695918545158606409096211330244159859827339612229958238813244953575210270496895044119406296150200938289617420561127177428271644401749810572239921223003815028351598198917402766096746878466934445697497172571113781156720239233023376230666730437648755669784164533114449522290157780736594071709158234358731161973166238412534251542520147774505685451140249175476815302952890441353243406127793445817739898430221432060748634814823996492521336723946170944084986158379651473658247149361907694724130340221141976108762549495333528515971208780402854265282596180757451739460083841443764899235173042475992272240385417928123359571399435598696842978309649059940560471950230699877737743816279379978461278052336250188332106311299672453277303909995152314371801542301492028747760215563083120102396549295652509465933887878126939353787638213102446406412068280929786339559421857663470444443547370705156898571888834066417769402189205326293700190596721964133900979466159714193263099679416017808598262418577252580067404738615228787330769862283215581545898193894273046281934136245276009444291013582393728028738601192322163223642550837402570053007073801672860359712826564758990930644640892210566652276541320629485697615635908934293268777579513610831756189982940155739425754184719734928476168854837626620983861588606211132798485693968178331367852093852702739214340054641004770420972038962775116812156133936461203294958994335834549569457678358452115498328303351161612675555893289957053166152873992897903067651624206395798815355375787988702424508946231574281482017355362858638010969099564715308121124606552056427822377556697071650526640660546214196005561306448114756105354643594134981527960205076203323194074373845322242222844950387583759054384276266345563422902322640525216806872613461767494011884338850948760315493865650015940000483689380766896608249046999223819734837520752010944614402356893460116146787410703463684065895192739161328017239170439967141147024088832949549123429279348632790625026473305310115859087347772002379281297878123804461578309552219628564618355612592697081193833778358453209878262797851680325953973619360341668202341151544958355510783239295765314049993119275648339474994659600542745254418173985066068492444494935284341138779512478831409326859262733377634335445831172807741459026396296591171425918521385421699146512127474907924082095375051050371590902734652462135539070340554228068850333880343961428604470065821004472926107277126301418652686193895614977848520010804288532941773327835337054059860487578924950207987987287513699164737839072834705034382149035795016308952230671240015571697585453697013867938878891759861814580741995244985311851274390674462876615114815557820677399731334823247295400845507563640453494910357637883407982786708524470939805213446264023028444494707546294040730606346241385261827667183515824873818944253775394649982185703460464373218523700763483374698824472366595259530792961925526182439153294747596653484224206132021610160771529378940243814292794595319672146782657405745150205961901357002977327542060310908552881683119582826242995424362280315749345365542124745840126187073892481491964382901223847096761981917902538629159494299699018505938742419494813819966206998748935118396278863834103913836542999109792147005548394830916281403337174065358186759927313878251666128852473849242889916881204259395628503249176207994446267145282716059969929269554886632464033196526843043806454882650699987566960729041526242272095191240492917201865714281920018024242975833181703930814122097192741338063109191905709649532504270872427133423445069369114102306342678102188077277048188740523856723387869694609661487419579719344936070195649927592878632524883216247372146050842445481346407462751720050411522603973270674003001698665080757881280838558731901455054987905168056770358961235767364169069929444889777734669475555300552813309769174183867910649171400098729410847897369281377099174851601984212722289563316910424045649777707953477554370555877329719806895698571388256784432531038801764579390612795369238143792828873522077050345755181401990245470026274924093564823403094333665222144880295736998262569690041368070146006964637046448613537343662351860594219130215416702495369457341090022837468530798015185049180410279786612495437132445197080466106766013181230605370931579255616550018025518217103561852894854540771524329763398692568127734485643952665445068616949135440566621685787514432287781157376579855914511720072367670792797831289004627937097707409255790179420993785354679825217080602956511312241668461648011251422579338706771463344070900242526120329164825430642363905583229318790428651196821118493303902541236314590736259004043976246849017387719726732607775165149804945716698388045225504843018526360079099436431544527300234812668029206650307859745711204529063381747917930706638235943100090422786810128583025127379775660272175158246425954462257760206597892736852547651965708924263416746760492591092787177622741726826661715178182662571581709386588999986361914086819119176789117635956394598459795687572463706898748318146276247733395014281854592897349285103044318317791809269742871041790571242691606405065663355692439834034483094698519141404371500736121701652902642546625097928106562925401351554859886720910936366313044138785209622105625473880104782646808222566786180268519449191846175728112870319104092959650244157413052405269887255119360415217823514295558278411345006384186547246562104014841407746885234865565270511916912079823790524022030077046564121423754564927245865307225301574861903496053091964501042674532361848418895411662010575363125155227538870372672081162914030458064014487485835587553071176032974147057717476432932939951615272658139399420986226437260204604694686093727306012323511304763003314620702563975999840071218667674577923439727475437933749023205652317725642329688695906649218729231451781498216884489780132054107440430953525954213072721107723197209488835110711266767192902747374266200640385996441018999980632099788988891067812487648564927190225220921336955558075373876549597895438419053321054833568263225802515394848907638399949845001155031161843022558141239541658773050056050007305521940827339850365064293953131542361910080110992012448187094615552025462687897724573647655817562514279878750651276425552317739065239858474130132294599023755532120583443625405467674611917540854493230991511006950519215307389484291322418512080907062132512780794709997725278999438610234870109399398498601346791300992393018140332291912643900788323370124101733381457190068828738948011775816791716481628287986585584913370244380591978099093755773936520122056033240245124992316635601546797150378263996295745537115309803802009272180633218654374121402463523210747034218026028577993355449443960678665353451962408579496820911331080452137831871525085258231106061643372561509939980462982192935777245028751496367053289065361751495002014302046490265369550004167399433365952515319817312611782105114292644227032436369169072487680575858387096584342901271613423106704217049541554719958952175008669510136907182500136537374074286249516122173973707448995195327585867457012108535600734481514793409789599322772466277594676380388628023404693721533677632046054234978018062632029178780765448362955425003281979605345912505115492402689448521610672537819956161300918671121375361504275703702289156984323344706911945968014272717772277806384397944860997875238201431365336430352475054461931418540546924093632206455305862056057367967458332139834538293159245015598387771978616100090727934323698839548357074812779944488728752300121230633784047295533328197690052106962093536126559462309305626439586324151645096937435895704944877010822933618357912201745427678067258988723442563274194000954123490802085496911386990247303633159514275071788219984041806436812467943329901009791358102557258968848013839962879811421425210804358803719208964427771707559564901936932529700670623800988969840426127482228850573347770918826255709399089070942295204764622575950345198458316408963980560272786748836750559206919865336696056759756539277975814252606529565036153033148494833923862648484169294962576114276588665962488551667364841114956049880738041548307185937814199076931693389717830174970325969402481331846673070731764657678755620813687624410406087203209192904232565206707695482181049604725588464677646308603078270708900265555819009992164381409623034927851138965020054757888260674326942555228416416446222680146083562243125882361388952395077684436777344337123581842700509682531265654022981934407394890701295686023503054283943064369903148015617836041612823290112688665797340984255550440716293957415576883284261874277487178691915925402141429465007919968010333853128032801239896123393456167850160101849475526673235378937842144616745163115719141301090432641877824254970065031395228989744152387499399562411036993021693870293496515343081731677724847475064892967264485652244987810286955321686264129732632067518546325809697607719095127699358158963869539858699399695906432432181395206436549004426018960508756384411067074995987928715227895047677516400080024714354878249341886502597794753233217139536535172047186448154845469997199621836415802350490110913264804436093472311846621027033390511934608014462718169488492707659811085827989200860921966563978847673166661741185513742543211447441326780400289539300213550692421941561696736231762529787527375250599531356397791986420539136067825710036463157263655341701933356314267503835413600778482801484314739921213525988743343012532860773635979579431975857217049193102475741269515543250944408892929571329018670845691428129086010997249219187933211776037395340648353431316925119882950275877791438392894525575104798749496405290704086779094140501271580934570576877702115072704400535761384730381487818631077570125113206041041325184791563879036606438117550951593951031003889810859541288464780430900564486789255126000122665926911096754896979360515425887348709006145505902027600026062363467469769160334372967125741276255612809739652688414744496157701188066516963292580207265906302688257901132412281814918649851084682999295524541669348687343225146112311080097833585175716198403129927305600734106633165884010287322047068909400808129258735530846492395021357698603087890051802171068210264401194203714498673215612359706391003616696919565011526944403283152028167497855201463180107600372227076525159197053203790672569932674477013251289871274787303638312586079846147764703608666088936098964495335865960207637286998518278033530274192901432048504360037957318051770924259938271870472840615908697147796256709619871534619113132338080889728825361627656138579128196774875189799408803313321977157201772750050318152815109393602845264372383734469007710912893364994755709385216202117538088657041517548288870903888556541605584319884578031577549418858568302376160436426809610530744033271299528289270690069284303223256626204839657906065667460274074186330166633132748748345882184810841333437997300522323213691011979650877638812987723646838370211064184405299330679174172026864235985876829115142427682164704332128654982725426777063725543313631860748207489882555151529085863255056194213418849065109118733005058378483248694304956440541957656850753148993039074547454425062286612073162272337650862126076136478202425885433554445119856036009459279385857481506312777599061985911759689464783910754363574908804454546061586554512634092823732424555430819028746181280567708050167552278401156373359849541835413585104123037271214424690542030460567239887163848213232040331961692472323218207616516435563154401528460750199425120291202355654389057281540654378106967614290077297345566742913263260348906398194202514065251564965410267201266657914723081142468036591886375935552681695731956457719257444138179985133570197001436278956531985231538359353788618656918461681079234847889947282881959605985222052756082449705221967231918814242845541578717355151317932907018522475812536653498801514731007020124826675812718181022687342620415726236757516551662455632673091309094666168785421077078767526706892674864854223509574730244282212346958486120970275655579183508310113588896525426611557004427419640720358570608736782141777964215680028649813166092750082063193774848433935886960931280377496281903666779719678662285147839674513751527771217951316148425985452947210834740589427871160694022579710076319990809186089142627891179375705820168097711898279600660572423696261923885850434512467728322569561445771295769504368393703702919034266823718448127781246075094969214877918207703492242462444342860667321368645087256787163436642465543116758229423017143853505152574028532141488234553112578140486394419601127705752793108292046540607228412508192458872294135144219125795123315573525240463899666783713921906971657537871684450672698906742535743478489989388748187807441583717471767830813303623268759224097080952224700330566898465163725684159247449727874891923833780560427202903959196082352484807738417138358670245616732040588421388997226317338381922041183555960941011961106560392776707134718033023000624584789800617054992409695119254687024584624920811878831708928110137591372746211758069134380598946280506636174241728138825301081692441846441565704653338763531197957206782056725634543167958914948621425792964123038855326299089944662228080398788263920350996129016301870649342134802935281593595301865965347216288911971151313831884665752554911241423713778153369744746288186272808050606993437126626061733872447833879451314143862066268582298039159923557943898428056558139818627483242321040591658581626257115347910878653431424409266881980150916511001866793945282668773750542774933319710290503442464411984856893024367889042367483971734091217856426253917521578750654373429872985123638275391511802427516204950095295399984771101734314216828335366614044314948405370879864391014263004122846707365474593773232030529008074034082166891211448461230586970380223485534646450024271392611034103143784333395940777525051269580673312408579346275981994962637920881190177202392236488978783778004974167115380961250636778175152456851357219091770619315212958065595236327712048493969473487523299056451581929835366663641398636055660253975558878865964170541911527307346337845960876711221489926417142974326532575274524255091698864897330787856181632426703789368956125568649897061212292324421896680235530633098271816822520306976353185880448032038066960348441651046553190386188228343251284719830802643418809955751031001948350664278985140940245373584893785277238729847100396432605132482064270384116487527529573979636615922012488115486554283839200784055990044688029895869988516832050312892633043276234959290063219865268729669420564337663532077332356670852266604446790550604782910760417251575212195887357993846555900898424001296936318226011417439593773044835669695172027479341727394662531040811585637168199914089010747165772540199642297006830515496477913269320095041437335424874605518287746529476125376083025461102792347747665086061670631288533692743889381124755547699868629730695831806829732006037997961514849519196430586415993271385610129137363487725279964399517059176053800297556819487494483528286512643500986029868449983263686081496852468385133366070891701311100597169151119234984890353243747882476123352287106023032834322916094040698390261102950401289231011710063846436722527675807699782487643379347334226682784542853023276532370048820626822869426636001973106564111495962196145570306020197527888080579088931956471648414614748151398095365199386921232481254253329285699656997336511996446782003669600919200111121425696640619980751532775380986874268086197458849459086715491787303871202703658886186370768224840499869487647396070754674480800282099379412484361268637096351347648433350894653430513457817712722034748751112555579494025878918484870886897508721019381674302074707331500459930952737575294675385688931852761986808843216611071760722315643562571390460317116628800821796448028126990651992975364209533913970562335009656581864179810817504035558354133287319952857887024743059646145645866236763981504486485221519379654386226910799220973345794495870130122685752233792094106881751561991430018247828451493064929953885560094954030778050852337863762326920198211966163023233176401937043655698220931285441713323836585313346905745136224943480374779493394651487616584624758612052190649114776240055287949774124167681123787051777460564136326142844036655488418117611939152813879712962242892256996868525811992667619775132516993387306301978151986283619494585976796237240824905038061186939921898981363268104602807850777527291962068157715851859911840458337874689535913619790834433462310488840346496517333384257975137166239016683139974348921991453349255174226901230596955381135320197247092103608519576761583848247624443444339079961785655252005533263532748671431588056439896780979879427511373327082286878279992306510771069027615722650573144860114414681055955278494695064391259818398611548426704275195365891555928897084079209505232404740069773307050100982267078878460406621159829005833401484012679493708857735495781873901367806105287553456030323953729095493037310740317816323623441637465842992253612224843747561566258179627546322485417916762124680514155930119977517122180390559404863077599282840599106797596647681075001129340894646431392625843017346957177175640723360393770610929703718244763350882528962217745676826223968067823600359826218146367381648713094582952487883609301801235544855394903522028000269015204630751275562942530882754982877730758009722222637062317341475576682058866418655616757719281165017297567497591702328141543987268642229491851175428580739372368194566924183222967971392292849272048428155548723047429862565681383661484153661803687071378603855472476332808529134641112888323228202979185984070506935735870099182932294308853273704204530998395503495104224558564906365104884694307955738435818445176401180628267821589514446211106366328468493750701222769225973571428650472057443016656040331836728401761538122072572916907443501048101222626896163239145447226599170522794175945664245330316526402552916475000693314688274034984453051008805887376992978754572227069000867861207885464246401090375194629796302060332417346670712234139016511429937614273490927720730664272701341870076238984676486945767081686757193850155939350847105264877279601588487780151543010114491939414256091256965435789920998626312250011736946168935445510347826275006985871293460444056884068889960579909569377607042140844786588861084462611929667639769611335919511125492232955707772664614100888267831040075189429443759047795523804186234913863007991747453406759845010470452605921119055613252514599962900721018485893104227534991374058095675375097758331754597760900497292876958596227315089686582248986915578233275760165178645407838175670439929023983026282409553209798164881940761272247025013258919443638168611267504068231370154508221243586051660178642565654216943883749120315051482972028150430006982079255345377982320386867037036101800393709966303627855948622598792746607152291648436291531653780606300170656878413174167900409042347314444715622697064531342833260077634235876844571800929662013809894454697933095861402827561196869779038290553393446621209216458532176361839079404041286089461968213922859649574678736613668516853050547018110585537940798678752767620655292507201318425305727461092766501672542353339957813257521594677798936597413055334836995891501076707741688662063219542992887012306802489194714787123135940338582126650601645764364711098013580929505825727614780217831875872476065674353540768199712540497616657522858680840748791943905765843602441472999017031381661030021917741081568167155441927047249015155065935617835665540335041147486172690092018926354538745235508586770815267295955157110594199994837889403814570278553872479135626959717716212882783590314047841327126893516971304441847212616256869963696088305541475298039967725945422917617900149093383389756617457116069901707619983610454728352271605279718900829482736435639713939509805068667036596180471610928098003964810860568668766252014793659859208626582999515739469077060325609850209106701457388806112599994422890607578261204934172111993854036514747782352155195118650448638308022913220753416298421781802766577093225026236649642655634800653696826410059611443604394965414973223406789163434761402457103416053471316091720400869395865115049742235882826405439222437438719641481954734970595538689914210251644323647189923398117177437426281439717637357739535657887163856918767104995902328395503285829314331610446136553785476966249974160681064348718779685963407070916759987702210182296258554284333507355828144153326910464678314966991492373616377455753979296872966942361126220478644922263164741928052598864861511084138807532201190181354129847408378763799220789741282001422452878514179224783541242336556535240550105451588863894350639392196204488811222670079107227535114145992666053828357534919438141916251504323246377292111379453788747808537890737558053158013999320231147274549502313026091725673320925018932984075600498223729102906655215189225400682254583496820574617241512864584665016493224378556144062808679618762882801139806841314141923894503072532458864508435187010511688758076794763348115372355203551723221003942444026643987170410547876645045080318640960706780834048639020460078848093686784774199376483450244705443720725302881788745853543553825278227924651788513365205626082044186105221580054914217627832551088311779862438244768039937535360869711624473845516293696810824362135045286921788167349434085196008107630123955612784472836366880434345993790322703293449245566604298154381920587569215915975116312817215883648933278740115539653090134329363358920970939300627133104743135468814463898221844059162193852302779332590418784935919456599752738426259720745312521339668850345836057303212438958429616886097575762239878505713529489434454708969772931701202689054975702413260047499371417990584579395803172114673852918900475124664802216885104090507513124696395106805508678249202871100100531291793703126503695544342503039189156311814004275641839054272158873721380173944084697051290012975810188429011714368921487507692507983136917959666445227280913183532338132883338914038879297518811019164148910627983931046091912900254787006033026715990431580956226023818003114854290908840212087494358180160886076237417461111822612792546852308265256196903223990387691616260164801892413291007148596216143781078607419361755950857020006291425067005511378219777698526045260339887164719211180763280861818891264225729919088664462769432711724529776660126484610897903924069431688406919118264725461514119295080878615632407199256502069543840241728737354643636247599495710831913053755726429781643663734258641733198899058076401131919705715992682348006715316009131544269898160552452576819928997083053417269363581501939346003291615423165401285089297332468639328275518625340792042890635729558131394413658225588628163549366459740772182322364475220922521798859906803507715416437948873210089019993201890410169000783224760225621730826012709686561918378855199778382685642542200207593155400747270826757423373925050203774479438578171526927778491018756180449271076766171428178788764356292920164255830042235431027855106234474814031392217053664955836510885184032953514812992639489985176918903212998083600885681501998228353475842354100258452530277943244478611912101247929425768236278548009268504152290451156808761860704560539996655535431134910784233944394067452602436266040445135760819323837079010705520757425781393470729892338786289140851440583402455201195625591167676938102293340246162205858400835939324317613806687298300704962227070671968464124040726183204698595589903154516062853601519747353894151543574367255420215593426127349224440471835003265876764463302479342232486217275726130660210511165607407634978922721047622995614862654077520136177692565315532095891848475804399088595023091677359942898466579601084434962544868807945840673532327331699499787073083519869249300619535904387784541080572455806545648865511258287962621652865440065701910730909092520777406866190958234811982014609482156729636496002742875452725192800513483110764642148973927245195308342853773186775487574126892182066254667183543033788442204955762927024934302756317941754954858375755002056435427960620580057481339932565866130451327668460085663440712979082014188444431966157524431765081785176780129859659185140749073630823398084639040702006644481098749345134730643127284162662893139729181345290750981439735748464412787670153359581266376540049378035834718066601915055489419677798450519941485085429411667310182837629058321917862538287539223705994729004355678858983258128896405962008934135686165754074173442799662892041690701050576438514821316798075743640036709848792493750997888667049032415887961315282393621379125050988687866380853227917945219525992511271147193665288581005461785246766840716646805884159677816557101026381706251353956468606002624460264888405347599550852356160113640533070991975939716956012324633624123160469286350280043249513182471731678711173709838223086252907669888895473686604979572205148983589596817586534461696466707977648209538612438169757141086502476930465901804912443469521909440101032924303466966140101068798561918263969834792696591418481024079496129247204378989510447834167981304572955490726800980031996626639406121628949272311139795326005603452248184000819926621792293027842170230125572252244850808632946893861266964592938650308522421138496053736878645817622528827137415597631508884911690452492600886761285942021025877779910022298850030719959182554349650835758498292540263832777967425977291405410628707152417332309412753364089570209024990235809012879691555527010819185583761309952469140437216619665566800814636922978598527988637535328943743626432040093613348585940036356946634459844314183929162758091439101173030626664248923965028201600113096756694342596105090649451244594838809350899745332483805344704987634070241861177322745193284835714507283658501929311456837416181622077898287056160323412055208991691405752617975099158205080584689792545305059055582988031354990362347420694148565940750312521542410760300131724956824778802175967385215104891374818005869132317350197070263937055703714723478794345710451892134284897859889266610793581227496964087339542546202684814734878712126138173706556987307658614673859521457295117619215670179524831989082673384270989514179598984998920793180969871487556203406864224384501860690873350001167471730502843560448127068853940918333712593620682576647226145714759816190347432339172766529258272086337676862950042649682621414062893545644159391752461396238752862727682167829308099363389571920974890847354859146846288065569735781147307566246875502995389040083089450556181403006137716353844083898307665524561599347726635537518759941226046701691721498967272443017323917684763799490608664643208597270377045814955968332415333700435423343673110343014624386184260062332843682235283019874136017564242071895853274561755505630621001423437988607795076554190891185578333036904930211676587857802628226283098203336882732747026164032408149596438303690281743304044086141997671004446328772974859547460226374915067955571374575467447145821817760535181720481302330070169460391116666895031465963183697145793324391496959607744184447105770987368016659797048114244044267287464996356290471856898747880005214748752836821581285393135319955398015359771858413234273829438324163789848989316035163556839224234247151680354846513706546686501506041504330105277638658237792677525191171772030378774180027168104423029973297546579570445308367287261200831436349332819688376765560872440948483863034217776612039358765992386676902370863515983555991193826395027893837608570138899615773584243504417245737327644725231185899593834685818686308704317194296494880123896760884924072209806613901247657890285931325301188067917430514021483292510192257723677370180260642402981865111239978925713684763314911255989806050610261413276187193904929621083032922784967915025667070246840920089326804379098617192347037677724034030536802226463864174478893928180939823268758952344959997246008729766717417771831815403953814623573275680160768892392832242962852814897449226046369046892619775901456638608726005557922830618479675004649115500861548711834550509834521584202264226131797582866915101891715240368744550712004251057311133947720496208386455728601409882480639368144052073352530225264500340852001720705553303862387857076866510110384846843694297777180770201488987212074803299127502767593033466395139067054026381668971445571217090049359013877445099399075045897310071636335487388256108993006585132708924504444727059163835050909403446694232288059058280509568136092713303399085616386778683597504764270489947399646327477456749959487957110964820927318405106936471632219571643203425506238375420305779029264836244218367629147838538071625689472047001178590986525613920792179607590578705387193782572083339540852583722712107154591692185307098580123807747333897005957999541654749630420594771870468418523989817502698068070293669060402958089672643882166639667212933138590232515966440085390509525425767145783987922322223195916951305182458429654054782484935912975845632103599481435816975924286721252075919456577757089106815615565738201438433140213053569235221276036828519093671842431715049585244216142858042880471913426011948993853205807513481805122667296057029419450657786699485090537976070620218395865804045403710664699205580163014552477364581304753532680495077057100836356334839412709269196048617120390306956884068826077780618280143069453813688655275688525135659558383662935911730701478144531732151185665368696504906356545129606459841923466159932312234174100675569536375571887138979064012845211102145851018158118401444936648589843705763675146066835673531151885482163367542350113862074036085286000980704705947714855938546799365687401487066518247365173737759845389905868911989346200454564141003766344001516480769834477531908465991408272895393958340787478770166883178560439705380828413613632256265548084018731901034260642931831024709765670396793949139977037580440877772540909627685066886066088610689653921427081600344483535220269752762620756865028289326091776225033964915768543667863557995977873786859412564641842218306005941747708763751928559856740979720134020606267535183121405229524915855953113500909519300651049115690987529059538794291785165536461817946544790236173224417730250223159338347713923534863467987475841816105459424717393554203287300969109442045479257390284101303988785423726159624946796674561976840003464573732967434446516538680540173530584374365375714514386749020445096051684742578392303261646026608089355048718002692601926314649317382874557681916335850138662933009388460184623992469340202680618913624178970318654177947931806863195511865073596735521868268751528448020858703787551918306907172910756959417458437813085733829288520696839882548908887131173435087976913852310822089831351678707568839224342297076941817037362878695600750706136351243169692041953063800022243121897267378541328739139387855887646748792105698972371946712404489678514998325021999913071493249545579455888102027547109485611235565989551844580851113120933143021974614428538985119976414037018805224601263042778073103842597030749257657373012605874084584872866352500976200787570677543082242829155411373695782734007961545767653400667640872006650396943580613152027505763267656552092128850033120191878956261818687914471761872145584105376655729168045254077721341890229007415335471762287271937943406402094543048423711020673469243790522048755467986793548163031814248226560604828583948132302945201124531859810836961951224351921029790239248611893539581854527214332210165198367267303507784421506535263440341828685953043593620915351745674802878419021459110418000672690887892223240438531490475771796905812149613886607761728142060049765091624382228453464569413334426313460353057579789692791462212847765335123615007381928075410901713150931260475019310921963656176346908420292566050157981279811024042477564981709729822729623681295163463198391719528564113714187599491162170845046925204508689489511507400512950495609283862181840496167407830196240885629174389348971228855581769556089166680148703103052925439253327137876060332728287045870080133409334463081845665042450147914462620900479395940021820197115586972793788748099573916022597955747078247807489739570965562565491696916923587830818681920311759219512267311312294617747121993477536219151729309122297109252035174823769721413880209213345344109813148704527001229144642556159158929052722467059033246925315172036446877693186293158533276406864933861402758846217976220656401146650921995227104772988929239175550244037639692487866576490964136312074792002407254846488854565352418672546912986521651170916081707174935011794525025877385951765884987182322572886303311068892365663505387405549516282147485009089320517197525732355715456094764341014446232498378076031132410514745719472656947084415205800932644927527006075010958385385703054952634511286937375015022083161282191404262718123360058771189559677085279927804440451965626854499384856444030211484783357339528436671765939784654585784246127089899515269448593346616319532144080995552158275744579278513303243027863566698203183323642483094418034927417815040313312420631833483973071989125838216768851332994049570816657220884831273444774041337359388273695223951180926117888265344406195339733818175375915378826044215025233860969150591226662778151832624065561768274609114096024512987127217220539086077447070118463356180733172894085759036087400543348668390768653190707694654149260895396392772523945557596769098020812915710607500188832101685614791346210731269099120437704558110513502181060969055582029741264149352106455195844568977658785433231312500292761239654916945909006786724474059422411167156533967443529824566228514785353904262711978502773003091636135947463906219647755966272482839601706567463193757547711853203428776159634656786159973751436094826377897462325254906665434779264997506290202652757937995669468591487553566766602466444012288985782429529793997293719374409705801179782399350274883683312143453510491038983155203193157034649184688967420745473752156344524633263620304494901819263874654568057311333998933688702448801502862425746740066323653206549657686991461148960058776887187692340365178916847382731536410510243279080662554188787411972766414028017239217496474532345360156361258819830046573143639149316191905962887103408468448172730422547705920209009637837089173574143341453448120553291354173837754062438462867968642629153487071965826627539085858538587142692734042934875273479390202233188216165666737614406051727711187265975462308911425390145275087336450140558746974445871878734282388280469990533264055277215805384797558596711002764599072969398592099495070164717495293950865934718152680295524760359577854975848177306250190618066356456941127654322930677654835836573795785653311309387791608582047295951843825302352554044681146763103869474573694085253072249389716226018267370850549880911570074542749703038968215288589306246660326466047663191349990491820266440163274119925645364930428049436294722235985848778803352742264183775935948771312068652775919215323924262099754683752251653333396969238361903266248027900692919906871538944870147876817165258891763966982896533277748093071396079861267636900340554909349461264206533933288911052605700184993869726919778087799709469030962915694802484218268857048384130731167463638316516437747948757704490769791077044545714023039213383120289528029260452213630766623008790705662840419378647786715174328614906798721117559227644467087440198666247772842435052160404166129029830993839497045162964919773977342564025992993725165389032739158373180267813957061399057578360749392569251845212722545168752634293333721234944270550966289012015761885594879006491529636164319660372512573247405057470966639376866810020605409260807891108018685670103872748173309814099256473466055705427576527360525767266692275504805229509070610281306253215598261643236832480841323159409974778307009957356615006563780314455613645525667045375341192200066714640909837843916400117680446013390727058227111536925403788185397547761045920729303647590107687648555336003969212811721568146964655149765747441327683340263925298428845788093805925796955464923920209462629540343381469924433150551165387237430985775082487068693033164854060560584509356716591555893857206351280228853033236317981769295626932999123589351801226205990511794017138809166441144623856705541985178606620916657671196051896666716403319413516388632751831884508083300589361522610469841757502561501105589692717165838503937276674055781974110778949494034247632663772846259448066218674511744883746604824105949588597769162278999529774139571230945292026055740204193552664942770185796225110756549185945922151368279479457881193143243352621663417036035287785867945054026124036054659322355082751543338883056902833916792192056372876611983023365406873082647734617293189596423268396264494425724950855729381541123710074521634921901771858656164461081144460794767060791775732312611140457016237831328456360118379961387583984115305633568236305763877654408864813886790185758960845002522231318691407031263571055592631326231594683232387064915740566699882463397352396098996295077692187303868183448505925518898654991684168811238011318961787713368221026034794236876884298472106642073905541546840314875587370870655319497203527382909154238621650692156531671375777033013804756870225607379350117884576561172521579598766160891585124852049074078818971537151765189778607689240239576220885040687022404577467396082867066195171344590360304117542830315318356027133757164080550738285224938957774353256147745222082623787711445708995019692560784928468606866839783796222212606678039251220417887633578120234666962381163417192966081960737633506525230931321019269427653026101827140670143205824026228951889295046714513402246977280074908157314122285968899411458083730510798523615803172474348515216530296415576506736914931027239691728934873231054895961868497154430976347888656243438861539569933410744866002961377516235040578577653580080237670295521647293202559089230545298656111345286705928456883336061033334247944067872379026370294702843283400273223421529952168902008798116071822248273348468376474900546732731861073778527032812199205803850426651979088888667413599050668547298607225750900509983661144906883998492381636784375708800452390860991987883444770684742784280514397917677998145167484469913981613432217973787631685541053018221874840469848321491807213891459776731806551310670056659030328506123151915138412727423148100026709703683450816861163955511156593772702999388419632718241226870667812211005519907986464709191301092556727049098027437149929898084246161474735413023189381690611445417602763961872065495881186891971665363409582669106047949969816643699924885688011110694704060576069504086563016645181190515799848023755445340276138289805735897514797053909268354682426117940120849712277726110152274497190192138536807741932050935941583660713046372827999995122559721568553414596830229515620408626545417979494805381172242645599916988359648447419228558101998425592021845037892698487900521326004227384063049094794220465803764970428681150259306064246145578012777678326463743730342610335620903607912667310938773866703102637527048828033702779447437545659383793775544105693346497823930435968846143018203927208406357675991375246470576063707490583938818755244878852611753128378768443323426785478881954005412255659762721540898908268627051137399488254597046385156458614905172845254422687544867886460561813245898226588326142372009057035241474626366084110743486469467347850540707254034096293634307269944854357932991809088237678690445050507794675652622907575710831248250890649868962178563117765312522064560746196355574064003367742590936847459112220798423805983269391802186868465114592552501057209684006812254550630176636648684240678394431971255078918234344757683101792612414599132588506352488918929102824605271346624566804946424196154314485370163207691125210330062474051002597382380572056532071207347224523973811665291689177123757322666316776205364444633798689296223076857690923966474159483917325047370101706473569726724168469065814989031935764168915389096294027192997550321141683497235255592091934770136433560580712403491218015166673487133523793741523320656954884427689464760743453004598267630062159406319492806428185812462473504469913539843102267180758870947484172638872742393389339158435991486468745986900049125711007508553079569862297829936768528886217343537721690496776165952742544745694840309274146156639931081094917310605501687726488851397791081663545467075383357272092374123489126766165826088264888824494238776127200351200813597503328101985459807623003832523848449153991378591756752190493554104697931501569829630420267778254439775007999351598568766597760309837473006397663264873133917085329676107338051271794347024035271907754633132893001628774886167288387199735268276296984917539568725377586541707903808841700633022116377728775287205829070308334436076807799901827106724043824876383122908617230211031956637249057878283423448384559017429590565941447398104332551854313283571339771189649751799726403146219703464970235734563459986212465981888733296235796524267931326233253491066925475025421163534039475188079292103983058195631493030248558199597129124365791162103838958101042866381929436331467470325787939804900910127240967674474559794711380662575328172705330301810057939219176339597929438413421939836891426301798910523129975938386936655462652959076980279962596342452854505196127727022458669776330661733408557286945682383953236569095308782050577705055966725695346032982633741377994671306923658504214771593125823829980613620663880863039083687324136805024333245015809435609937970184745600443045441556417762550798189130763394801593615303912776888057638710620098743707312011983129648573141380522526238825287451527892603408003112787448762914948640338905504443938840473722787208157189372341645574227352371870773879646134001509759636197764065908351750644972005171158360174061043451540826649297735044241962551186750890410412126240902526483278846342177485391160087197403406468025508161732172405542912530788086296012476184493277686431220213934940825679422166325042049999674812389320907529971640880345423346168233953200260781379223359754095463205667095282575939850581315932791465124032685398702930048628132167189053137641982398704173062710913612272825960838935971738125896878416551077688293769869202137760127983280493346320752580034641552093616074694164685642894095316896114913227940607882810912971450480982260683463631807455304685069023816047926999895054496124204905459920371501130133013630581875017448446797243522581834629201840184894032881685662771373590488597145229075226973359046113336369051908781682357585173147087327151052131492823941785348312262343385296394184657003455803099800986500052814083116762535326177788462818010280896041251115578912459127689693647367245963287243337443012503606303697994375576612897424787391980198252684466389331410575698733274652133520926696231184891894375585608273612931300518020637565382432072849484451477748153510858346192320688870323294678118687883404151448007084049432267375783035841714757676383546769216594321117723033496558947404801168572577463009357712060365696611144132554905607034302562046090421061492789277427443379993248943739969833131347122602649100265959372246079834491663922088193368508579334700608541470489551162051862930864680316335415535635877358977312843074445084522443256988812216095051622601653649997368647424900893185602056827376812500509128532140805899472327344477726784089523785701076185924757186199771747585439967556773143083051684494964031657262837492099831974402523184378553489247143786534395870667948652846858982720767522374159562718703340495380119875523179663679467156539953777325110922505706197740313052371062453593341775990176312247781209642630673547288700159319171370483383312631782153065402846414127899379843565161084830051495156451356320810358826356133452080593667258608045300084139991530490977457234814229458164132721619936368242535288893897710619781919349998318148391659096329302105162221703572670173730524497352409769366532004692025040173067845142069317508222207172932138507458024964500531316446658745895642101584338742295834729895130915277237696187468598758626346401796228525521580072002506422652183677664551200427417790759871787801312984675526741829857766423077300777618665953400479389480854674460871028776118397471783116251259772010399538188405928301227317227342210731270563284131879975296781056994007601707207971816648600713259505099266705503676005599852025342144982134318584210373999112876025215138945364410392717307088785772072198830074104879953688851310648060913491349800164379487116521455183490701897859573764084623528583869776391114259208076557492639780094252981932985461146078595499002843925108990865532008475222545393437012637853260994573330623968994452950185343785775188464913309762600799371819303112576939675345826120293189733602941210099153145848754118388517232995156454550161394530964419537408748071453245895934538209273977084324666026887426533533043995760110050839625763464255972587604282257109696192657909855252208468946469964279040565952930068066600475266422943168984395717684089627100726242196653159760304491005896505290520518524413354086039948145000849326597703284760459526354477120981453399137683792923888731690674755468207244612662260019581647363284223382182395918871815181290508747740161209423123808558490010687580033970929350068462925557289922386798739218361133064517901978740330553626260584748881567285972795821184685230188001050588817663592568964569089783598221835959799815121978890897961739712472082400620270167700910338213013425563342096367939553357468423278129898599433252804935469696711889413846047437461368696279998009226717663838414598293694266747443888516213080831156945967086255120859334329588339766379353314769759104164489884452116526397785795635811617224718182572585294922226927649860164351358951491976524413428851463521521048363800227346666271521923401738198536330596887025606407250457598509419058713069060197932294030926066578391434612467913042487734539063152211326968414676952077615621552372700231525915619496410336176854302102995088011037896604522932514687225528798403842577475762841223062724681112157225556143161718153068892662985528464283463794605344101479254114737293601112488054562689408770597475515414267103100836256318285517864299051944605078875043290566563212297215698000511331554323630191934242452085061181237063705813267684456602399573637525065579959258853747889484067931197933384058702856606131767528767628126592248207407252569147420996068131072005760171660311507135356500270128563577009668744877262303880423361275631876789768937200746600550970679258794266499578719752488781015455533683675045299983991036499757159519931192421880417339839830741497771896937708031457686377857579324303972606808417910548311069064661872659658610330851033950216162611759463781469033765690358817827833026295561741681817581454072798650077069136101027169417766969535524632330979569034208621672697862879928032103884276098356570959273568480345993592678798337898179495290971074519994411468961722423114360628807534893913677746138758972727804636657116746080922358969446564890821217490097823185691452579608027861941401863588761724128851141472956635590097590182549818491562605854385483867537399006249869297236625605242681123259752861064339331304516845615798769150839353862140658832066391817657214131953624425081701308548915050701393243883027386394918758003279268183752326693259378956721374737170543696781705521556664353222414762703632862734916877575974422794976186981886371858348104480022817836213681156031596473836923205833683595743693077044727184547491583754653008032549348712798062999736092781363798330472272355919445900346679837616232497402974637629158390568200981175308653711539017905295996747791072534066806252927832570917133454153548362960302782047729455436942254796446376584301718823750751531127920927366869000135357499258588163723422452128018293500787576780173528925956685423277290222390471114980898023318806321547656734223530884501169559155917532102313185065775841911661013842650011886709758698030043267407861745930822042268405061643358786553102678585995475384841356919401394814432083320560944832872394453932875132371341581367909278667505399195524840473465857133924223425883322257731539962559699316082604629088714360789129103829480893891618612979360197943795721701782188451515690423075218416008155753633742547986113945556852743423764187143745011672023686106564191652416553179798260211477539696095478291194561682821267820612536827666626427278464353436628358421567116358536835292951401090535490910259956078120086759697763482382766062004727822562336884350213248021394277176800948593505021955346983213665896193342910126972321092290213326447533299430560447999884423717839239373892113902991350612470109068266920866025850723448003390428778308846044520829193726149840280831235081296385453988668054554528458618742342514743433469139683758929500491666813485665290142286067958565255469737825493163447105216959964954117099769751919172955927384287323629787795916565439557801427624347212555887495204780708962915973160082053995255287659041594897284228493513248907458543805886910990732222925481386700882956928739291660165034204676226339909452468199624934434591053982495618699423337667209140966766057811247236418195619975784504448380672093714164808578410210896805788480471156867469683036678277699913927254463249524474458931407547824879659640530709269711763846287829798240213790400819991317542607385384514220590960933466626973694847935755767590405122222745564695726796944643293217543432662564600783566263346250513046962677640409268513936446339557658467467835049701947986237178875236359404280690543595785102818105124760276749543243175077360329818641254531328765407991575199318089253648066900471755817526373778029952108623262829457302126968765002667767693750826885684388219326181942997251011127937544748706436928612149947804422977657986132967643344435593858506834415889002776500626894513984356047840705202103153949935977368078322648001214771009130504891558465947663763179331636068897930472643277342854800946340779381826497983300620855194711616257555194612340826881603577294509077118451724970810430892741441142883621408455152611796881105143539996354725374680450176848482956307206554062244343978730652158682906441817663338968803745047439293042695085755181359582347397011508863662619615202337886249272213550692275509377972625263118509007017349496663476187489451237493772071792568361977499564036426151126737928648079532714314264413710389030135219306921363017943154370854135294784939498964987523602574304213585937137818014566441666365022854183265631843629605712445202224073089716407294207326787666642786343243222425900190736646341086181792253381406694514117881706817024866781678495040898267874545804484972058621075122564807482702609805237006103024796138173017655552156028452005932976910884744806217099422018401303774396341440471570499731196476314597128304142223564398541461365009496762831494436807995531515244517642447377874185694868093117382531497840517802349822598004872825408297812548749756597317646701299817575026933017149156922990795215957406562934530579691521140472405868851556321406896151332993335183043557701516517355261650124576083472818677726082611405875932198550320394122637747650773841778555955223116662224164660453120991603966625508461307905264386615948376982838980849557088381658146644660936368330074278518331493294029662152898077068892554535080093705059885360534936097260798920036508065480445583757912050147727503537095525035020851324840232561699899891662401093836120730946735081849098040768033115376493652686690480781404493560172699275401254977991285203145874833409865723676575938315970159093462746328196833136236955329910228531835740447878858011802446563107015123618710970869145612333555313266333594245917401258719917594237302474739179030104008237204198622460942993984536620234179731176240646088392838338348182506304745212444746083132832950057376114547912429430735414986001191796541437999005137577807326944756913635321399996610786370546944684991494833938027950878310229325669585869082670793497089916189307524097234036439015645232600432823411604851721334796912344301220232972745666214557414353579693982608090984794456961432534840981224270918458628549332330118346041675026664955581600041507259397354745270758495613137046510554137236202934456927020389144483161954068668238476382092681317192630660291929367255746363175503808453713115174099664533794290662937567907944423829228032923567429246777173426039473215297220545617205693177075855481859338439219898441872443566458116024234460510022307479800449695979498235773639879966671608716932685702916118977071626254316271197347840088366388351852987266899324171303747144580388879198131268812877375878497988721749561285478956679421855238123640619308738023169613678417924981488115616882157100314230678594213979368107090966270450290318095837261845359913360512681699173374193225505610454393855145968403529610580049450190805313482460258729112511861562209708092133858076997449505568809773455148972595876316797414927333816647074860836184722255936595722782172931543737448405029491574647454614099755329317100721664415392969606711144111218694412452229042974419854484213323909442843551810717184888166200885789705094682249559251185118790946174549066391887477288168307169001729354865995197782704431074984551792414357389219288108045997536004323108866595738520360996476204793162955247600179120176807280204193908003633795094207020814235533809311861339384071152332061516448031864213622886967844077233778956822543624667499705084965208866259542141215609560347078824521287090021678935202852787220941708284888605246962999619438637418582851121537817130090553784615816770960351414914411376962532398683791713648321360567472853788648328637891966816256212699993451308853112593635173891622456009611569929878946155389311056887688235438641534962006895740909893412010999543565111346619987462541618507462232113378794911978948164261341488794539171377098795488360105592031626812408756600157638120165506972094495397987359120024917871916085006908484451754928779845499197666766896036218886604625088744275593599779676064361204823184799980084154402153162850665256343556216784089134246432089601974375787404104055475650555060981232173656087626790392233403702870350483282158809380648807756033631201938809681429022571283375406842397094631503259315937420848336244885399102695803157799627269407184253604155639872092079978069510517842920270667146897595032565017558954488798187082259635419718649984564656178965293777438902070869577717443742149785674826761376798301957538503083059854382058251445331417559349490197320795174680328640414670205565510530372644151841150856097311833019036721766017733486487798381147713587845150879117049836880573536327857773759693838716933283697083505441432458661341997676745600694400705522555586196090708449189809918295155646222604747041319746221704095785469200921561527976212458000602825605169641721558201373692660633312339068584196163869089865776369876646685058396219430210516190231615480909409876401360327318365698481280146613146031488575076029137781964913991163663444054978619535666404113210919562170642010811514719593271309073128182358850108570184128478994346867305980241185463931182716141990671272733635243634849287987900430808822647742794914013604435644380834168716006679008561002651861721699423123268500729972386862994087656481954692814392667478634829749375291902852150285051775562374617106985999222234044950655932311906695913306216959297636706045440066425633842162834451296974486167419501091715455507966150950835896756358766712480647567226948688573270667488672391808194679377014536964118737507881036745111621058890718386409865442085895154744587770433665289827037692513439532749273109170756725414145202815453985860755515124165096030026625021798374879517760657916323502333900223693672851620490106416989648887971668938603419511814485539331302893552884391968512528415556532432119880723641565349216255013574349902953336592373074884974327380333528348910595640587814832564312508698627464216373350843617935867374223208207500277752790727573650563173556385622136815354546879335668378417185691698390301998592231755695570850786232750780764092159350822893024724502188268679852812159295392859146682229094411849767582542346515050009950504472707512663115333464698651289552930941509378934882818000760163338509889596551291796478997758666913317190077532519273076631909103032560314277659768469598544545895612067227371318777236495949357859910713649178496926222228736380737186801180440657686729055368341590782436098748114616865783673460490086366409631179946540511858458570570348611723502256043227639938309044909283473954819981019018870289719703221624564944426982734166266253487491858193446592546185966149373423780808586521035141043456260930123555913782018936760086358111388419507339800413281345882927900324231679280262242302322855594058174679006445393080749915638971889607780313704113657489878543071829421858774390705034330573617261294957925316690303421697586270095277954575197131635518858169182909815014439959326568741277933335300707184213777220833452251058112276506537971455365253928098656676838530875094346411377428954043599303599239002771342165709094858201177261325929941604463107634888820181669849434252097764549011952822881664570500407383156778851550860607776502326118936416961741785852817110517279492693598687092623356074480867032142581026925215010237174476490577472441516119865062810712565502675499626219968144255715613649819108431779230906406622706219490025334512369026535243861174868283317824304127309216251284219083585265046932288508494484570280090743345118246001384405417743498359879973084477361946206720100469196591879472758788092774394022020852077605690803781007128444572349569728002337950429843386290333942295910707270915656511055546294962635484400026046118465935957986346542702076994781291000591190931167798608880915445874219626285477447783851073925872821025055284175279221104787124882082094792464102672424467869883624399153476958549409295206329761372263991654549698980327698618877647496902188877822500146170333584330760511056829399248845191339460382907799054522427391050661298502721323724048860061077902245352351437399357574209482199530952025806483849810805878216784993143886938763855809546609801968871026136853150344462241524884226274934368930072842325340755622594442145533477034846125351398581313265182326699160697081241843524085382716553798173170195065009599020041714268103907076537457941691249394403939768881407073797265804002408379063374411381721626898824826243819450456441296388773121228487444541494813109328557784512450501163658243046961101313170641135022399482598633366719211568593894430176460694133415894485618234381130651894852324597632023562629782591535888638101242448886998810235923052619844908398922583376243157639356971522376115732988686866669493296103535417561241273345300122385599311716027600547080392831296132835792773488209786058775848411600204637153278559923191986903203042858926871101657152144795014759131897130191161712634754448512680443905703219196372105162507607838722137297229477721969122522822242649199830971632258537986159295290691591605824299963546275858887742231265164369260172337721638873185661834374288294924246414376841814227730101401713936473851739140489259147493173522865334442129948007223395601788401411166883397779240896666084158083122740765461743129280156176969911965380152752624019432587638659727590441230338662786655638164595176737503235160704056521909391271283849470673380851237119345931050156934547920428362575452685046100966300108611245498793472341366869835196825014983500454596640377516951989619881044762490436101482625338706502297640573253428810671062152546086719537241848902427867290023404301651978940612052653691311941659004961019267304608692285615272962678399040642139496515883494676473814940755020351251960883047323120717241750572872967179103607331838664011473686545558754529203143365082438241436294663044875090560499980968031201813789945070145493705659848737035694369448671182143836779900708972730933201335105097172975750305015163627474312721649907280172157242938379669547030652711441831306373115599895513539470305028987805772308013193037674937691973880406947658811789923721808318000891516161497714586387303345176245464375090366040622364182661364472948975087412660158419043573730346584297497486765678328181122821814264661315377170633616444942623377516516429987669766110028933767130164155752415040660657278808971792825843567966175909708169815948782479160170225150372005162112273309276462949344721097122910274361878259159621598155488410489856272577363279231478438958954215288359425850991480376045728511698245965967679043305101130830757197125723551164699978984758822396573147708802405891186266195850235356421298023734475727462712103562250285104309808866981244766421051809376254625509032344980026072820825358551874097507838058858851435974244548602370103546379819411150657501865142235118988089801040864495046688632912332491525480230013266966769466332649309520222745132263682226290516578900752897650215233569103693812508523891219459734913591857529485322516258801327838455480518642216815512750260934071419524277849227181793154161856198859365138212724961952424509036325459674672038690722410608207898288201707779701092795282504714675361699891179736438491168310880206408333797419216547009423443052013488338545379417635377077337936364454505977770278129765274466888316704141386426927266392953832439964641714960349150309531244183116730593107443114517369191393625442747245487976416488992293807832325263994864961993642089973268948542985823728062667394573666070301986715040012273010009940054806159418591008522086767727259776147671919432607381223842129834699272224271821089766409921614913573043954320722637800642122729906905770930916831855485100037929814609708531174708634634559724001730241742785979000555836745680477432936585294811265190737204297688197659118242198825667679144075478119724908909378687159926136905395773361417754880431070422829612958933651812841010650357140597246376357722520962585000879458103865428130747566333565891385786141882012390161469580830184235416703143589176368305655699075614763029352759556768375927259263950893051642147779065474772877882723387241641753114269282570998085555381775996842977241025909485432766076814456010159269679080546648564965328751975935293456028834121230991405775271129202933300658635999741644160596079220171768269490663847190735272453257366268009415788845613934798983854075349539751897072844363541681972005734220273167628528791305436547665869884709089934280844984405755098636333213049952674526997331600997907293241448320961349386503305279536620428756475134393739279428274542949099339205680081659154354493110594125919519041644007477469851285916928344035063223304014355813031062283218894268553124663306646454107309047921854917148460914966034744576378148486683280376805793283844205130864047666615629463669480291345884796141899911327131155298208523594663397547269890654022371345939816688408825952549500606392810556756207878349524738998674256053093320941327947470183644707070347613765913515667788515134482990909117749450957060116208615765561642147571814920506675611391630291744606174897238961356640321774318331785137629722380820702304887268732089165349439872430922973895266200940863914145306582100837805787269833956905111452090879969233092163569400853403409909716396954490273179301937662461240016794284889355398558685773255577033201391526175698176719769040899180501678690490128128609579784534720054369554500518343898377488286702952433865723887765834355543702501010786095732574025667719210543126905581804202585950987807652256959166925600991708146795036398774485295678337047579617885327975951458371021823217140159005833869626372373558882195751849552625606847910161564031919395873055996381400362775050575957528357229602659638454319146814313721110882138062047982354751048824673955942479465445551042643952953575897791726346699097947769235636317960093185697229691908987058029846531877584426607701270731550580410348123346476886586740105274576853730444286318813601684612978434852064100240975673771805346601712718394708703063103023932306426943386720880013861379729210704424914425332303004996233177667059765172927080160768383078741879730402850117498499121184510280294090659660901868525342171586473078563884860341439440659812132070215716562505974590648455552004109581643714435730298590201975305044266897418627365591750277427163763271554300866764807590568236118393623698963897630570879447744694731622601874161734429999565874172490563681737044356684024009676391846693652723575422799392150335207179299431468130131675812796354687059875877305742216123137650656511870853056004917776981887427800417847505170233174572434084629949438283293600761674211732112739679497999438604406032355622755793926855720132720644372834422819633298058162772453048942131264456278928319944133860463023496513703870093779093805421671451095959127366246529257261437155888477190106465762062911348042952187755445627371785179423701501007548600774120341154489432037303354158130362647502545422909548801699431711950749107661452147544400686409419569723452079196656530997072214075408406122910408647711658800035575359419215102837850407495713395266265640911892715917850000304795902302425203322492572153858527786960960258208594545489254782955068090580820427178546651208579192599665413204530770579867470167094456268802151699691058786479100896501678067845957228080257620711117340662287132243246154793716981050028507753857728296129928408079632017556633422208634272745801762168221991636990643334147457989166841281922560028423750880886665003385614934591756794181944714698826149248572968175374392718534513015397987541232922270830169509583763861684270460670617471280429545093756543253206058810108471728192064477579133703672201758119450414419329885940219391163423944839192637621283973072531626087311832542080878055762147056997479075420488588411656782941368322759831513612063448188286183225007210279537248430785092859934449358940314135230100415163668114058391050575816312042080281065786328169090140093565029954469193675399871914929285077962267371699244109006719823701402735939294010081362384320443838898149470840835687222208182705036588645720183894819727201119111720123430518676425859191263383502843274434588882308771259604627686704584385265233562044099515644647239052639497096040611901024956024373674349269390988538833309858127537349990611839557765147055062772884064904863126583502338406689565964544050867453650457548124266075912553020519765832413961654957116361484398809384291618376561713160246829437823887124083915632944981953235483501090225905947349780953563148968260883510384703204907493841885819366779378819794721443135162581527839743377758476281595939254455685705162870861791205186192911032496810084882105402429435674368374949017913392326969954658422817553128555369787701889619739775358003301794656413742975022700134815193202665615364481672005391503655303231371287892530195665458717399948834924800639667970188811404967597005377654393111620470370738542190317995692850829929867135645178665180612106127554596377037020855773949087312515453552149319169246144214033097557882943817905862663150316326691450100496662743158060655908558821845576812711009030473206602840047503301371842098023811850336132989851507963750827744954641411128778447184439573852322448054322128639807678547952149970799794528935990629734510615261009507305227450938008880539547538171752857754337660835586233283689027257427105755620660737085365058573661227193875091678378500729532718325130769787568530410896868310041974310610926429326090293404608038150991474577106305341782775826507447564218059303601957053730543295943631069868625294601132356024995513257575377620849993122443078356078389050779591557696984417307681991521630003402246360228866195725985512254554982167420535469342815893848428963653368079054985969789121276796491184051267546827843908816208443606892014292076395363577169883825928663347560243406801414234139588266725184682750581283002637141089677522063338921016079090976032935099772131477943624080204697285184629223585452126080267317563520568397700975350322882461369580096531321487857757964986409544013980664480778648046033584559800516118896728236864136421403612591419718860305582580959760484670294294671563773500534273403891664809071563327909218689145290340791974827892784210486922807597253417634207580776579505142465081012658326577460882491018626444068456101669595314162247119856102219029199417068260628217055275424862204499941803720941352609237495137657224697544275624280238103869133491435398234649226103830517188712320983631162130602259699472012082119245192865021046441266697458468863703279271386521362319875403859986822882560373595493737838283502655921946304306969333986305764453875704187005330472572199269211181171575497931029737011505394484955192800505600851968884903976389375064884045085104515449790137778387995359408124220492001822161392046386568925244031607459906843879364257771431558718428463120785644963110780485683168387331634249204774373892922645136209611789391994583468873629197084590280834813217098579855918700132408950488480785431600554787787676851171767301839238090193309395990364855413331246094378424325674409545519704504879597979372048884503734990681452273534007077220038065262780965774456220984381229306730070303693235146672570449618288618065283006839147012604660109360024639660257839439815485461355110975570877693203375928123694521697559179683443133794188567195587226942328170299605662200927416280672029931943931585715158935021351133410267602716846111795327219084269551528988561127633836521772560254712237364144076042997443622523069965567531590259757557629591866064427270320991937497545252284667141999231236234281920814426242110363798343637984260528145105247708351811306889534291349506999513552779975861372254770071501328372603643186224017665031333041838900261250636508791008097449158566724084797427308803114113015657788125804141127294918982632167845320811605986287535259672599859114798531886964940098704605139929021897602281039371325322749380021684758132502324888792797475719994648768529900034149261546827751897932183523650400470160493932166593487691583037208552200929933531115957749951728937691630804778857542929116537962441674387300409806625904643543032262129984474997449259543414502296941327026844290857028161249259136536967019199096510343277331344913559065702336570723393722477816882566827627122597820112852563096187570009837708569029124158280285886423885177464575040038225616209118072488987023228217803953860293427295295050102042327272939090726938512900593732404531446573745166233869488848090844109804345257293553701420924202743717968844978605063365650425326557489330122210834121207223664010349727141790988641135746882980641182160884029128086876305619024500462010126067272360678153844100979542190372838234853669810149810756532621854407858932485058758911051109511739733399426921823826475097154764458137835742982854810019070600385472511758763482215328878534448869903207053680563247468235096953589191515951841858806305221659963780157737627937792004544071355413218195482476931773452914017399092396335495335152499503850906385717851695131483143537163731111711438432699823000397656475264438419020736170591753601073514515055645161578785355375368017356989555994092678896899415358506449674980942277162027834124959039569548792976142179674901116260481483614232410056110843279781069483805444302059997488270726290223541288548117910792577814891315682151891057959503234787481593467149757226998090406665440317490758332307658234826542302872041917511065279948791027997966986050466717350845466477035752907407421127530523331770755942357728771903891351913850235775514223872681773773016410948048014276378841320104329660774721076620517169043158814355151696366958282523892033878215583568026025832046748791450529710505603773392403135112686309987888624485048270678395472467684238288901484387305909792639755906510319743683399668105830771171075581864206981910634369413782771323486196490843787204218328240014587784665671528564026595918517123728347099095278508588778863942945866110895182606451853263462033772148189852779491419966432512733979079434221687450053791692453897775398981747715110955965207209590797505915319929818136211276538040611435226498010789380019091089092187253905259176782949885113295914700914534393884588383471362015855555178849061925833480047411407725286068355911682211821903316099633448615233336744744353062927439343781792222606866814732850194091814502990258420814011362351016988439064558537010960427684366057732619050129672976079570440433286083028118049925844743170724040359050379228087142504134005830719669573522638294147964914322320202714108388522065442392197392146512396843206886769356913076154555926737718333224708871036095463869571133482754804747913533280066197916865127870491908481627958197347247154201436780901154303233389102693904311914918288125705249857149497212130802352987539341747356122252177345502825568959991415402521603314333444405841239556056371103413869919793198606153704109115997487077005555925973488123169434416899809262386488454352747864217314944650463869114687817906916250493912680610186947385131170329315710267875732555129802616041475767268937369859709131444649578309347864278665449602165959918139997098956233732750074715639390489976840475290381682887815217559936460938877439134328290691869585266897004609583649669274277084917900695339295770665107785389450455963152326201932318297461561961630335555612904663925109479562873818936821821716796859661768360971934779383120924321123288543461953007014604869941701450888735224812819391117383453719170784878042773658960616993904117312479748607930532402836989039206576836048809734199595192748281895781397884931852255808863687709330212792656655520011710019346950287714568890636948367067928756502057973220107771310922387590235441698501181284296981739889897937437408571285620508646238196542466983311378314599351299198752479183947680619773042955830046716403605865350167544898899777872268825073965282734423104793856541557484783509969384050013900018707468281543990824301072382441752719487969822465923415555204725630295638538169078451444281559284147751080069812198017772085582463956258560673007894041283197368002042167417422555050299807887892028632018509053116562371264040325093628636634057175373634145279210306032467602980056013585981642551061853474099531436761338626754428054478914393025075419151767218913743145776450326536121426607450374939980418014155670518935742163272804348451167120750541466297004822465938770281542505266195695058163598842488669372395310402298856357366552610755227588427021344331167846583140725444963604227351898628334494843833249663872015133647651066226520224010693514057520409837624784393345144351855546925764332025277076025057778042787657249975965996260341910479115923288952623739139675576676663551737941278736528607604192119349776477264004535698394972933948163045053041648886073306148081583879902612280413206120436215193814790589156366999507051338080735638606523374183005648631081105669559123432565799462520363170957837683239394794519934546446741330505770331160056283456731480802773626707362405022350782212810108626518338683300267186561008415819316731667663081957873895816949697042912978405369594108823666189146209979894067741743284443494599085124193864276380502697739707261268439267477636797384591721433672225383483380698851148515768171822273875633668248713409163868057264094531418456003232767595636092140120865729910280422241672726038491403969179050294597467777113439864264767631625791477377753244234543478701194569394756167659303740212060541088743914675343912427015937675675430217339890881751459559662346496244764350899118015102921719664220485914637790395070648865961780941594649211560379795048766900450617755132939616225731500301771201844424394627788683152606774415791909614277395489253544606265430069413895197577321488524271791688706440883062356223992469167905820062683250698101396250477178267834356898841532922978298982879927515176716289079328483754949412757852689862133925208659186779278043188026373680289375148612126385278212651711213236405028504297921049669319819998614759734649028663657730495259741334832365043040802166454129975277243350598374666890474174143384574032481944074944535103522136329554451207652896681049374125120199296489029939711363740082044272813368584554076688903560314397917287685883515219587970890244658623935561698916236445594852246254914932008960079405498908251288777287103007148294120876017482969505128935916635842218340912177359902231195886379378567759456222795148918460565428108180095951888767095913593004984142186917786919485108221278104774397369033386521829370757052021175235682834373093408767851716062520540361551022101002000391219057108277061964901231444632531859274262314732459330773021989120207389351569298702911925450023484235678414272276673199103555982937479895524185792250609051231431298560083886812669588651660612431829459938364402290694512749968042563821946268181846301952807083133403992821430362355494726862346992539638861685236026988650000516754824576024400084046355785602482584959581743645143611549697639075872216655398273198130960111983940028320604440682385356094113996628595327665688687534058853691044603067063981392988066340753735895203722801843755293171808926612481455947191114643711736636718428977917238688207331544325680836827659788120033487168537761173194156378005962648336469671480145477746572301925723325775176975779129629016003466938060327826847118000347180923571359919939479109231729488380859337256177108024682767898753487602535318685775741868245433303000560342047431197855449764509681249266353422258478920031306235070842243511903288749705206230207102787081701666564715278079375744530696918822477958748561949929365221680372234104397991942884468960647972134124398366710709530031049657619184152885531257302596070852354916127601318033008216202307053471180427963577177906398940557016384691680381649788980148724313457628790784982993631920853781678753118358622108979183952209668214285750955821475447834077319813425683782958508625349950275772780200925836564716509501280542094111368488918075634688566220952692106817176636932143653054648857191048363760674503283418661067720058622474233820663305146103808684892435323543202835515522968611928821593952925213713957265716826703551511903975678379020705735460776601922167585353503680581436245559328547364101940978110701191818701914777472260778372938331973242549740645767646276518898041948845613616695631086377604784153093518501084894844247405108035576491241243531808612225563077478495249616917429084617347961958979774648853645392627611078342200735248062031205078299285400264657952648055010696428156004175180224285761002887113876487483506382650793792295741337111282459747111957702818757029176754121042285043627801455496762856569969457122835684009184356101794241239333945916163356359451642218027401905289264965019858293464190686259478410036501021754959132697905912142421899299225294354111300827731340033442171457137740952948983459109875949334271920116290714571567500764517797731876204332345959625013394302394647860353795650655569111068356272247315215657991248350859887467034678253930662316811106178533890817426711587637741806691829248771403380135816973258285103803656772003861540442431212916153305343170493092836618673567142409908754151395047107260254379786311323109583465714861140603211290301844668276371673958373702687223196126052196806460810162570212662972312510513040261979964760251007987967354692603007179841079447798910949439607119086691336132289652750647069817338279290561862976873497421548493450000998248727262219304129390729983974041934384263230823092941753799521484010929448424223680378767054965992510758189885726329853023122831991825846020452470968331466755660716032020558747813481355776104681042387956703712264378801446993003821776194959401067561037434517068071151252642990101554913357590554652644784377566973733267490781423805756178612817720566195928800236855365688459220060500679447324026151602197277921290054683019209239560909571373567268161434237376262524718355205125934625498685217397934128330091421572256815766160765214888961743925137165704877423761578197059188151865414712656704525001498123962103030618084377442749427515968596100943612011542882418258917332406709784073617351193064741347044767237777958459681542547392447226797904230006736957983218398568787553301119205838957363975151310822840148724750247111975205312008412366073426286985861690441720142696101003354418460870941851081435994612173595194147676761118616583355076235339488131191605562526181769672284719269260216799486631558296916352603797513693450746324760052163793651348777425291569670326003739666752762403214885058624477462349992375107901971682744557260058180063500626892394207914033889801327130331335898149186879495276225093802857833809015856299240585398194497776744159287968929363850855213096949377577980231544447295158605632719074457964398020755021808315420604855100658667765356505291004078398131386894599701374984183770525296935171509381183399878168251112245551738984933211645999962777553108632957103793411767374635857370126770700951445698188097897288693855240898647824705576018917156333741342778133366353409429383343400980300214733888477511202508755032733282137445015939426524422904349361033312112075937930869103058864322792269805282229567184181071371742251164019246286684838366569113956049855998315921759664363415330123907768412690359670160948534588860728319880705514115345312077637532194082421194101594186656720557627797333963630992753786416166746669780423135741394113703522784040591795840491391980138756083081063103757679179867519730891860536705227149873900389574133200770716548055029408304169920896748819983290124652247938387888978943124564721378564705579176462961514139734082680727969865065436044839220046606392018164626984164093385252905491330442283747185361756623631088863063329892845180378478668382001323005754535705471254090848496735120191544821198072433708099708960542216742648940281260960617580702451229655451191232745687763390761453696784044142455395606141648694563635318685116195844299634536218337369158121964048761404623135487668644103879752773850807974902313387311431255766166859164905177901863844079356562243586886724652013069905522952756211071642050006832184848669007470780061622459991266634908948822156009215548418279260448708663934796451733131769047593327716274894967031653173646081012401759243177883540257596109696755029779904648963772782430843061660290235588486963612664311576960752631059654401494126669917180267286574860286860038625111383454075356674261164342537983126551180589094212741255245166594753322033889065337121394200938184133243035750918065454562359558956655129080044016519145500163225314792566332150570303056441316914915014712263294233816478263090962896994581702537761485105999088956467284756434117282341703706729910423654684936905127804264088931222371895924674912859937042680313084458410338657977221110378749919950737671837995986818298064703455046404603701739716802786976006381908690159647082571964214064737949992341016310566615585179252260390758352931546486181088010707554913807754268607784996277798773733902445473789096218165534672161039874748433331283957946034539120431654304548361137631293356788310464483840754866768744255495081593406668598109529575602625788518334367731086702222809127501270193443344160857538293851452175988838409121426290173680535691460377076486896153523624186780691423298281580730070793563580847586449281278746747853767731535401413237683152495303942281410006022392131719201765500800357276529564492658007767338688582931246189833695818698570171996747767249133885552888079994114368222369968154899989742396019739560372014405253303113483322491288808178340033072434937008814735722463143465079009910207909016572591309620424051344481393878215447968704302545193651667119497296479152083121812609474608329325581503285243865860899265112308839343542575014677385585126303910760345638907087241429956240329579934217062008995999989948106772592553266870013498544292125863025160372953692524227477760521312691409837993767812250457166988591860124272492977484164861925387476586760429637455768058841903715546943279277619809164381128668512360688325294835757244062746750410758707249221290745413387964226076499047084331361598676018324924699493511497395231324240892541128449600985787634728771125052532744174190232363837278084601857253127858711291661697312743145343171015618527180922955925845550744584602312877722182730983909433375507804045430167138300789409341013047146504107443087202802461138396472570689941539914739930139145693510182291758022235352137008938388959675519070061263139588603238685617617152024462504604199262576233765262200134924189494806272301620952014374955180241675809951413702228999948124458708808065557831186888761383748569654341866642676218761764782548814437781533049677548390724591123639171312031051394545907140600180405455339436980731840315552874924982745521733819436445302981056658177401419731447579466016442104151234402497087832041259707321619849071886682547630640165079703694815078783650312814432413529567733007541153153074493814903683259219441844914516705895437122050361831456013290079949062195418334934487076865605872838278723673725248351143654131052229624332294705662927591237764173264919702801811178443722762034646548603916343174671423154670327959509706909599605993645016838289064973855367737330591758857350489235329402492829992257265967887098467643899343756421430482801591806259873611832415207108890232568646761683144099044370949533182116805098873751082784186578480444487393041632544555319714849235433941898305670447249975474348165100266659362574769227859814256936459537698909715931859243382381734600961754417455045863467260828151404314334673505940535742208815841464446492065197249233830317626413380957693288945809232988042145500478405994720757246760069953989574141704655314947949854748457552277966128490572750856446335140030914702001349190055676867348321859684746775765761840548191790824026351821669852917057469614568207831700615130012322486461396254906190828907379749368865926522142964713622269173496263528585812847536828566868173796630079728631216879160501289374405089436599348168891009595620852884735945230912925938208483653901697918993084404542335132259281277814951801544343148737506657292303271641831046617195530567297853852872773302324874819319458417433193318421550698566500296676894325496103109259257654497344868518347189653753495279693240868711324220972008548743809183142414115230738100340195757873285883745913605162845940176180009501756234031353341544833356523918818257760588336506649416491684246289976673758620732699121861244837285740662705234759888262200260836736808374436089840953915097092539255709425631596981345280204212411456163528391969071736064852932398987176822529929959224747299651442186355250065417736434416305783919405069856230597522013685002512391646055900043058772670949474837222957585710272503659283050818205478009035032466120545969235394976855753009369650851682813594351850920084530130921767014714679530145691048992259140637261450578785866784859444861667987390053597777530185996563887504585158270909674164261663701696820388648197928397761867589254662319226629178579447161382560820130812854071766170760395658740922965707774494492188701588021726115855270835617036557991849144012734716348482937523464109858077331285220892284489386295357639145388821006031868079699423336521358377370886881018736549624545221703884146168982699935327492632446548144399496123595842960894750096570820022633870742555248131535255600268015030833969607628650235225928310292849943379776144288577156538495698029636713502044005916255615139123779076541713713649752836277772779333968012851544615992428739611991579662434433335650716956277947655091197240992598500912105831755595424646819054729020058139984951251323005866319887652885431382103462335564541811436821362270357649631223218160196348207428741500267384919733594177543548651566019470684339367566575399522933352344978579034571489742827536070898088488486999699089779261350352983852124014728595312162372704282950154528222017469077062985825790650124408424278558269553022884187019687379201051479979499767955195526381488545864038606672644737602841214376080520765834551263158464107791642526350820960006018728523328815810786144123499659642221660024866763079878913441000291429753662168278339015238565494627563128255051579605946952814970683194268315941428980697177426420829011352586273747970445482486839508316779411243882100471996663579132236315584105838926534946606809770146524398051473720929047511802077294943519771262114500750970717115298752450838151767857018560770795600558151544441842692379666197743375233967065600656805136247056509564562195632985442829611623496817485078860185230926367233901906020026193828332031576953964463471096537190319305288956910090514765464928725923133185970000899368463524197044398107862848929032567541489492262318478640993741297297199481974580510022101041945328094448772154072604508733644548089130716182909318572242528383464843487572429097660780090920125509820805230268628395199100351971913742667507390965884274392239621207786092996490965658050367698245938688990390001465768232027215953655224224586439133323290588460827556773053829845732750656694986554815152909009813020477038909625799552366855942777625547075713190710039081829774112678322233819112156772405981725272008830031697216492970408838093782351735400257141211638033797853577971681267234862178819607172864919671166300620667873718427985014114266306232517938746475150724185868155336011197121347440055997552578906723747099923518224580237068481502951461236466632773023473714182534770545530780263587398177166015481042941776944024037719406590355018476119554012546008838027768682518033983558838139617050240507654027954437055670269244857837587110729267458938149869050267791682524469957786510860341094273045365211090777027393188549226012124579966372574293650569760211967053362182103186143803887999797355644109893705973791193992148624708536158502120609494897377865239372055985425427388133006703305877351532363021466122724358823542067945713901949028072900939496777671202686663226444546534563021307931786952478315006597669852973263645428980512659179349377435286854170035971794386207941315892262910159437574327779865142119841641578495792478985711346166844842022395592366528621988743202581201462212616445232289992869170780139329274480371119012752051487100252211259022915155518722975621106247663950051383898895772344008010443733915545036108190472868257882109629178077084368384673510640628112809679243332262817503703437748653321330299150144705471528153431155720989786452084156829029456097152474425039627249914464149424258219382084762797137861351228758453634351371664813312358803540238889676155397111904195213308511731786518789781883846245448048434448537052634756863220516445614829464110105950683672493568375370154225365738610511621919805621239809157386724935932967078803885647003905176064157911032495098392136221042373017769777193272541076691428864015076662935778632700592914168011970460700624754902913722263581922844752816163047313042643706500180760389189578529412558108570057275518883610366659658771722435981648623846201293072326953970940044252418788789276855694482870848420817960021619067246833661509742925398929540738557892916045740318477965357605729883529758843617597907259735293998920823488604897214544586173381728875787240618003315573810985304951404249971271234874263767464870350788495178204408825929998248262231957270988875913905118697078251188007956884313232445368670157290538201565727698192255830658846414051260898317927367891543270997216669671220684323859271819017469744538948157024468720247272222439220292684492623531758567610959897391363571338509780876531453500770398367013612958192266645000253871665463247947593162182507293230733388449400477339790645493647098757097381753347154694036460269947968076111904585527538674896125017648872301616396659420934134880251807606441749003459787791730527933411838414023753704428819704822304971337845362335498891050165180348663952281593317128188385526934628075695943634874853208109085566160663970503940657423979088558500589594593782626968780639078421419034661686025661103081741986479768450876262837219842161057976864101066351485162819396022203698587857265458899388929961577982907725248772135621572524253562472086005215157240522708154336280748905908186758992988444154753514119483773323337434991003733411122496036768789370474195097409927803110050707108037537086587635845864802647865383706749621280678722729236994066643896003102219026867235062788113088972815675205678539097438467200380077817490213125433706070579646207736988169443194674268809048137718420833554258637046042208105872059542815006047867254299487946248565358375855080921834471655973663607500060836694996520068127144798281174762323977444464548336683720827708143387239777440029903512363769856133067754739580244198864308333587801082025811194674562291536164428278763250226069309847376391196839029479735592396300108067186763150453955106829828858589419492898631531503967802792571476625468307831336620293720338288957909148693192600978522790977763712348233798749965264819158648976317241737723514389063808287466816589252995745400294955241027077975669869981105848010858812996932331243263073456912727651335448944206684247368106979405248126048137926517911884442814458529550860930774076964154687383973921711123520000952353327964838160263629734486880918156076860424869190571121566988883360393389435965757009262084354845409099292466992710312584094489731509803253550230187229348368515105807599506557059598170719483577263517964610029032212500338341854822648582687119800123762373492057578928814975678358408446132414348949413304071948300828855998450510241893082637649071888805109880608879800170585554250887732282324535729423885094778852299647603513364903902178854277421945912713582992399808886850298386544314770284295779165492805134753609300020059475226021332938133150016770253409248955447545609153345491909199741524602794776678312486511543853607723117586681092148638222563094074300677161989886904363256861797774751004854215830861995544878045513245692188983328261593714661586768305530621590735546111467579357993382202905457161848601164315616381484414302202005327070362696020760674871844343082025294582540271871920969130415073557849337931849964580951797293211429188252136867654634980633601087562968229625757215342787552129313353074127570880631650800229639628593685803018833184847492896578912385938570591903499382708209943474684547144626734745643029353722388078369900223902856667484219658875141180774668873428114587609279122631431390794263401720340249539575054070958721801881385072205684486703454170141174276685272650128645434158835690779766494700170515027559777221053823168314019620026037498859840221808766315143794422918307877437043048542712505768371334514822325058818455253697417844332781263852533677526169231251100743704237312920084385932035150581683753663462169155013657153779089539453732230807929719554376420701521572296293615148546525441523995846816079916437695178902761173684661073733352689486756419959227918840927984335350288293901584499643007752055708706404254444406059905566575579632426292819262595646675588481028735546040202573615258207358703301464620728946780268572356142180991187731191780341167891874150673117764084837401025792319909519893967388885995335411145857192569972899844689597041621565383787589272961907496015374135100509043803200257546299289446088825165721275248723394868799430500156321207338271788619240729360527627953205613096300638384540716538762965167457378148232370733200250672596114357459937499086252674522367811027411485577720531436827281043322330273742520206538732709577810220653874105007398864778500030951478518776823972093392117738696865404097640558429047060408413999506388085177745151441230411779019448718706482523876840152064089225671998354768047304409685089682422142355861764789252993623050343658766696254807878013844049718779883193679674803184157495770694462580093055805421792308260414822505222232640477858356148721818297815109293058812819973278673677251650233342524874571178168773519086217179843330859727180570236249625676898418222705381470785335865302743389592193834066677525359723140499667108000582845441467596182874938298454531351439001379323488873661064122871602231055943174390993011173343317409214384744448973977900784165145479926419158514363127180539269938384769662588626801300968233831302735814630263174722210210195841547480115453973563514638858856100915041672663443530592024809774482309874352129836906395712834767731303971978360764052048249866574341463951766781733416417549889573691616517002316828197428095629618474744995592034821212768885748695494879666045537676637904101259969544785767626650974100772195518035967060137369254293760994466975995509846249919170087888580781835020284941070621710704057309891966843131564381844421314443248966427286441532135903430214425380138137615372849005291526397681917921012109488568153921351875773365534989881229930379949060072924403874567172091075758937718885885412798276793185601169604481980766184109310762458884982033524161317678299667866694197619105393304760081524350819837343915746251604968366303266233928120816537293373229666362177015753234640740649179883848505017868042431550348557223303214778541650383517340055814426728233163795123616511988791676128173008253500881291592872606568379997702260563113446716271107985022215581479908920950340675644342852032842210470307744607486246760241444701626754842641759677072662316239845758926883238300249089102265526890785241650489094286385001791673631343500869915066709416062666766249821949638233928145163064128383040985574791636909557364543460308493559900070550961967506449833495889861594280667720874955310892306925090519468312320518068771968409448246979312307596541449294487117979062792487083038710855576949767600140283091131075981138895549329529888969652523516565965213990606797424133039736777246069513672211990237600730044854845250969681110642444631740863094678780613291005801087861652319588895253390201550870601769348311243617805524889722638149870155541587047165564926157309129939857588215823641195038037249348721181352406082944780900915938659127349836490705204028466837653443824191063203806334058883866100288742880252919594994239845454823578049146394872844638606363898818460578122532800930106714415581324366207375129544159527424259912625626258571206008216350601044272778749003259180882410918783741909542522881458884028776176444712872108688295541728618715344000170873420431906757806127914264183310890374242936444117389584275105481304740862765263509258196097381087571646846473463259018573959931710473794716606329933224390421348618632720178893881565335064732654178806256557865911336667530224528087303708096609948820204747711079458769296937574131820645792099832247579774659451921324611859907617899985294733616429750902640515912173404066145932135463951788722785510800544054439255491492246253123843728333311848414230904472554181623849399236481547723552505103099675346001406190906318023048671705159039628837943454938845794540044379223932994463378396858725463192723926935465751460516196709647777594403087088053788223281301691594488740808643169816580473546596382703356732820515610854096189369495710288337244503107343377176541050189318141771533600345438911131481231803891727929696795062383583790494849204274091107732425779874702172856829355611590214635395232958927279721601226369625663178374476462656148649475504016713413466533923781830614342944703285807240693836313493209816763488332159651083399915024213697534530291099168463519317720572071078507982331496398805848046007604671493689438705083008627461076843490146312394081659559556806011784205981319345917898546868733663618686013314629457292695040580278359099736217114342565852969329323872175763043226992008896731954009451997440669064626485816800326852755888813243811208665150736530486697535157828634532490727943123053029287626641719063002150618117920643062416677423086331940415198087649578406581327361453289226495410206586620844908034514722363459903340422323202128758542507057735730911583274626373306261883718178455889189420784484024412418323389520766892118950137529012453849563502871452617991524758996972320117005853047116259898665831966148385313076656842340894625379895271637480195150734735218771543489964210915783211765267302843898640754578124450756134273171660787523784660625369868544435883033953147611601026101856255370432084662833553352117649809832436528876775929188044019083148720352441492400116176777813292300182005041011523147245576341945014571661361263367827637209098326294650529885106295952780053152133266804829857793769486736094174661186770046201291386697856074050311614705319642213656476046360274542677267092185028101154048199994619309960872356648223054701011348699448032879633862798039419389353637273424049898627620625686191242247397025513927046099591802547435835302882509060338224002523688787664501942465107857535373526784312569974164676875458887494991078991972129573188011341547227597957331870799984409101190262906003973462261380870667216951739061245825718388256447547165002571428715109634791677038369787035005285654137512419161859041898104341074065076830120170381472290527239397697575237680737428457213157401081411290414151883817283083927670654356609824955238411302577701046526463442910735022969053741371909968794960827735977703750608244316027173017370657568130871877359320011941056217034659387631322781438854760813579604477283233109865764279116483051605313163998560327471941381515189890912926176502844925315480288645977525572274710985475633169043627420314789136461803881834278611067829836364624097710531523275648479703020714330458264977389139850310180635192188065357645715901859146525173720227771116332467635584294152607414569616166303510241752705858471046528012549475460213639725742734363556355913358700323674917102391276009707956626883959052790845789686780543196058193087708990057103277139189393470512126509486872775321380242889067655126950688866783389245570416740941158335358337652571819194493497193962250299861457185157784061501128490503971127416275031072737532264985019027933569389468876829795911757327246286828911343901021968786599550406734541999934869965828501406174487571178440298175256252608750588569541210489229775491515606437409811897621274861514462027980967656374811045296567915469754233949674973165885774965492184138737876592884906295609249359246745603917096066532003444736174537866999545621859122269866849988900949560721858368349788574567239447117534419849012562787904216309047306669781760360153596558499423049804746263242624687951247737524270637142773194631887543182781163567835665143555797572468557795006510380359123264208101157584786746009191672684360583932626928463553262534604434365742567604943013733801632128590143851390303458296542339621404578836082307711397806307390895784027479482948475997664686480772847302646047221263479154957323122544672663222929862195822233402183978865686922343066765684817134806698274395885102249060641268445347494541556027031387821675297379071643169013706736945736201629313958505347559482450807663698561095950305277549678708033414321705933218287274698194085590843016560098092654851729460759463074473411295041685400412110646589486206152804071693503423203146282386393444368868493734036101855526587956532972812221527636449347758110616011273231112931172971940921603907949958536272108524229693684474168692238293706410731399154577382754767810599148849470527697257062582374769577165988003778785242725192631259885125833993381672492431220700571937835203866123060750573971655912486875316581536187124899719313420212117757219377708834543245036922378271150855071606242178728581714990849415458483221656823219857323293024737293677116702227112392580950203420459342370489835546391840895649582850418179221563379557437024612067517159035337458143479834114564463178215036114270841717886392519459241294238487581639001810516803154181464203310409381401853736365928501462100629742749837271714808376658949815335401524014778326613256814917190908442908232899894967336031337739171019016972922480831868580952361438856108954876916295630141369946774044707185997867575862121188360323937783561248296956924424434980514823764035268900096371569373810128068263043776155915389784939679040468467506510478494245718334738827717405004473503446666176871638668885470819753867277327934086557572429893335148152499773859127905809403971333043993193258823032584377049137387975439606074098969990333701467414881219671622196008721448536944654079600043692152069474864284030001338027426090091968873724886551091996423476211350234371941229556388989424209904084245529184602931143684906331471620925754178789528950646050523659814412827780298006336101190438041696949354929089109007603454361818617751780087765240538736212836596971723168809300231665132369486403229006061031235421990369564780311414588282390707175615018021032474510349132969981422331768302582137574056687111312812662298380117490647337540669176639974688612813583138195186657391465826440112670124186595673666453722667439613066048834028922748574169541530493703194969084534957521835230669270494896911929617711388449179754219651494883225899324242759919908158786420809165618181898227650493352370277616708125830340743430192576487305447877350817031996338158721024856617227189759494313801783489981704299105690831162332855003255703733540703409916444561464116421338743230790375271864326645516725182527725690501763398011168539854643297823683262027061153379551760557046611554738944495501257146890762478159273849110044712482436823815523851799406233509150369478060104983688989420521640328501115490845426601969580435449467423727006019846107935615735712153961295735355386092971002620773022700913861232500757538380766827318963866969905426110033868729865785541342298497543708364819634056207457779810181836988145720077982393750502357178243108501729081427030023332496722816015471327114279783520936526569484650282153730638456486913376468663481025292986258342511801218615905533682213594001974106946086936794940841482182205797215128973600204602583128768489917083510816462826266711106739297566556184778211699783181567360501496458264573088897376698115486972293557654614344797662092082965878687853951496699891403316702486766859213378647451645318662703852962442218350234702083762690860917063353338369880387419040584620738986672212822192156212955112270620017841861211691236551511534280569690933938867165202184857605125440790425495462145001166494709255842634090583518926548896494994765546031975129227654963144066773519157999110329530271982672567868795725020044145794387168499006878937436344585010856350835272764819909250576770534528816163999476576653645172410500851772090086860453283072472752877157224233555586781773681653614455101913876868840568459893624958245568702588034493463803960867534054338981347698486045222135507681540729968031005937510476580126249730997828517637732660973330952395152028845616120922763530789581995216734933490487662590195499556686358666417971297911498418694583042904398842051165298039882756039804336657830690663572048522831786347979273180266452607223197314078170318046787278603501969864604023887939205609432388456746733650817020391385296545195340658402386840746849745266074543906774889462273025020389780211520316422055609728756712399208939227898568740234024330744545288923537235363222000866821392783603746260557361528531532457229849750306534840218053090347793587472065378937032205867313361594443939040456130720857001314877164857819759504189605354053157904082790162150654156407416995470696399163979040559202950430471908484339556097361100311338116611634637513672503366355019349835634731277709446013160511431080805574208181593433099926250376743570875245356261183088114469889625257347028334040250935252887186868110545767896135017826809926100191418564406134508167962589387601702919490769293027801382442195315672944286397213762855837422986714107506805894651541913166319338933890508814860493774110603059626231568745081713867541204891314229789044226409312324542934478557879038754127588983758619557557154353642988688123774572233691690417282223618790906514763244107231491140309528134070944773858262066184395509951324898411681438917387387596731785385923083847081001206636393142159008095815420102065105665172003453465330018086528710091410917330366790603617117154874063667893994306200209127980131423409190454694709802657681210354027922277999530921497982015104857487110036672007189792031920390120236662661564938700991796281597596014306389109672869092302024989208436197946123223748223978321220642515138666287697633487178109755454634783653470807830851159187542438092944559289299207193043997085865269922625160292523606747641527699776940181786201018497439166938696867670649147644816247726328119411122768725576793315135197741336066633104944793147223164040196964874795423135890610544971684480408629900235107849544149741612503529396071103302735936864081470252869617312791507127617968418915902244109053739858684037285700154343473300050262944355300398004752042725596008126641895023145795285961865494454009566846531697489748816859130661758306194547633941610907764931059615986973747971038888280673526645064120195757874377998598912148828525895583733667460085252402250799808169588946702848274063540850694862337958220681121928413207818924049662736677605599077360251501197750163175910506349607576226832506275515071271687846979051198262097547734018794472209417274632372351145344993959975868600197483788770073551337882347519543655502435379945713731671982217311240416663446554860619931628767895050384399070394135821522532980202817106508443696679711639217238570071288668210638132695162023122711178548957394428220335475377919532722505482691923601799589062943609451187437751873329290655136878060066944573180535566344460044729698672256748234956960247425223499008359455183293620987866560612278438477609116005569234677083756414000186077904236597439263445437432584730142088118548960014387031426123369806312345017011352881139358008663501794426532131119768450351816167030367606166368450774925547879888760916262319653025861192596564043703390892959619364552457495025010836427663782198362988189222592945106174055940378247547882800478713260973816017302120444420123063807980633972321787347320762961644321040999273245694545025442491787241565660445998465786641792064579174629524801185413336709701072852225943768107937687901522745160884677768022675263347841225337216548201723079707750892096767921639646833862822016778076291211642752851190701879303167327090425806703707637622184062884714301578011357345389831600146157654794682573110832657674398723491293745384641842149557776223663146049729932484453801828392379354641661922599393364385525492579826820795335793715208125332245885212645709543579901838718299512999149241143219685118727088822032285663157081457898848759844761524040088156670466950376425863684410294919460113229252079453008298707285164601813833159022984707748857918182603802010176954683419522232513659189392832489135319538758153032506610108310263100006640308434100904858896856522800061964143251125710498583087475401946861387250652522106009088762675533948303089161954134842617508417099249462829702942518708980933866541805703732096445908250159838270541386611435298809158714601415203422238343839590003031836676147752553262046735887230825933331677233452845392949667687513320705868097307405404857576900881804457226148279940141640032803584672041341469947621548044471955831950414952612238316648191532459879345793154220373645728363842578570483435204560701957890608478113959493851927446100563673278757835699745451468955094142478594065668433297396979287684138794463056773774292551966159399504456443808992758831604145550888906497239402493241904118632834802859732755761896305452125144083584061833864212731978566838317406840613564176056263036814367984345142956654489030713224283354908561013808804945986022409409987789693154462754823382748899726532322866728141977736643162456893554638580732095041881010752359776224054791705415099326557045091381348086937232506211969861707629855590762840625254356112733701394414044360201735897929379908145480979368710107111943454132444931709864333406716190970789475952829783653038830996821393355285423982166801102996581257813958985775028814098354799395952030647013846490527178322314546292673882924392770473159557433329005135742668647189631815201820551442585362987949427009459534076293031422491427244843879292191302030342582338734608529083966779787283351449687038825778685074947974587061973721208753856076218977432286228336414405200141780010981466785665283308279434823516306996867139568911333556632309947933109999663915991944238968274341566773143963146525059795472662514278877564607574277707267003513872067185688917994856339815745228991041710976807393383964569521370908439232503597893323380139246336385256427380003514235407824594781736571089188689002743705541799475605560208123480724301081396697746589094348323476213209417219197075142447694572994597397993283584548391944158605015592098003895449267605698415018710243367160858469189631010575439832057010547565593942934273123720189950645004325121806808942605173649820464390739084211991832345312114522095399720241543722724667718211760130887878501949497660641061868006381555809274855663180687060000570012433443007212187492458422565265854192764853449341313934097165021789273026523956895425191036032200975212242496867472931775024696311383731339008183802360492692309695278789049869445822780071501567481527131583046836138261246840231494211381906006095268240392409766272252540641127591382631543067212107294830683207240892451990989524444043225201094052234423571759411155889743223791831241185233443331861200591226711291110513558269759968414942201106655308116037518020883727552508820384837315619364712839781306666692812830821531798903337668658981730588197913552571215728442779926022623743886847164799435038682991353646108072439610890253078717073334948602026563600539432875523007815615847390311218218685984725488660505715204078374317859388086658156372248058953279602710203770527438434465399624808137631950954901621885102707406918141172008570067771397324591264463254685517941109823689968273626211331888259010162572064703601867230367871517801464460972843430968151865994611592290721814001579012097807639190492076869501846401836040759471503071545453397231324347472098550387809868818319268599363053543583472135568646658128897864599108345926200364555546899319058901733490933141983304120365875310978644416372206233039146888529241856930297255706527689972127846516836346549731160422439541956275354337130190994373162385021268855656786926398239647062705950088019406699689599367019098989932832800095862626270951155740143092609280543458950982216332283365731041562633641301982211213342251395912841543417484240176625970054319989566513466082868821172461843950913857117457116301478049022120873144220152423510095136223092761901888584609015301022150261756750912240874457076383199873607732252613633731485309153945914498008016952256207984311713597769910911068671022165090730451811259211559317209783095604030941515060201762239941703452801740866535048468557821686394249712045256557703115347014666552796867401809760771389636594750450970099978348109668406824560439433629113084097232571974191773917827879282052051700532815870703545154043150723868792824207658519849446513401248566960633174618447531298609458406051774888004023134492215053517436631493548563572607116719837339659061786156224132631314820710734381402767956600124631757113302618947845701500043071286027494974183437974116137158766705120984441838900271399402248453787007637303162135632069649005691485909779019664115000119484363972596123428467300653339529501462334355496077665077110275534111415254861182920992552375206557697987448214500203850200842087293857521516119665386284692761994213272057448703305397364474060880973408494679363110791281081060379100279108045282672365854678957391192898646267280325753143793648811331261457799682071825334046052506572417986048280668907275007983166577449807390537032188514880134996198862143206730379198036384625921502099498583402071266823539965192405579833051704297823446017546525285966981013560230470594112534223866375704891871829185079630652445477602462574008332493108679166063815427187173685939584983465249755754133201659976673171536119226195606761956673194674426177806428544550182210851094663382418989571577918571733328879765448143549963966505532437840592668088392488739859652230042579517286359122006333147684937209164039986073138694822532650320184197110232890055659798773297416217011382897580145841506832192585939948497739684989695266513629399025459616849423543242500354430052013125103910765088810218689881876500065176188383642477511432949096006778332583829582683376486882362526165387446236608084911775922404963743439732500939269380345380066477189826084918309421204627626041137009049776266832630840482932788799494671899674455941793703843593553683944732433431524032678364439406759659931509847138941950483069628395673716362758026971372956280915460360113980563627361177663220904839756203197818001013429764200016593896823930798454659491985337228346298942493908725551304670792968105564964290524884934307846821706398726867724558062620225609050642165480932050580069397894929075317897620926577128201840697725076899214237050942153915919909514417809434097002038005924892997753167631664257343621358563283057229249216099876134011667980302210104645437193992021190242767627305202928830734948545690205254429861309485592979295849511518529004830837733444322215848526989425160392002320571030275115683407170561007144565538316879510893522081174224805366089127937701776719097588698112983704820009527281869877805733441479937575022921556425170832876483185980058026753063634782071763399964431182465782550718294636195326198053930245123143498597206547572661281825198462173283797641565134313186488101997717911656090154785832480077386179282444219787942615258291479153622865844820625013048839578307482770810339486281125863432196725489192783960532178089893035994918677565549129677082555705324938089121339295416742675588747817668065919515131908154085419183303326270468587970733745681766416012992134322856844978019560119779810891775514401086537586654404568778950557612811526729169406320031098182789335576607535200840071971134126091290472966103218554773177100600282898889664770885066761007969683740175280156525563595274484676925573586394492770670848450192347669649546418094878854849906488246460156568646970365647794608835306437995230970993541029013152435473612625319053837124493223927036474687798519083725481108883629332637620159366007854942100470207211009093815569900492868226971150834073920502197934672535826644041662927149159433047441356447493562155769005316034916317204854786685181339080801593439688008676097100010279498766063812806115575026843370665510214176369440049220503556947827792809482893346106719671827160156145083509122611416995349037118129960750614199128718131628753354371128398512296067521479618836616849242760129904262373017432694564973225521213431847317702780667855175772099055887700544359128595889761182074815223252835307879911919208064414104558364378564837754735752228014774857714190346445743972423864311060003581068208370883077923412844741228527057423002266086880651272050269992984740558970273486516134680328589166290011283352810144981500481715279614515319158815783302796964567228634502353059247816116024698863632285105315391490368021674668303912381800594466208543290259081422519147684091689030264104008369501590314503843382651010878748734190794326182058327856684108457423684424107280474677126494725320905005328269515136775259927376929949955427036114390796784870505963136573861396371288845665666746729640052245514903277547439748882558233292977150454280547496012749630077653699542150325637277138688211090651714137808078433867482861134902979173573703779601615927186203832053902475488233163413853300691162437002785064680946004485549236697243813173309751413258292037142893667056053061047579477581200363842994959716998217019268725511207627693498375500819821881088210350580994790421421191034378269749091336132896281573625298124471575585141710014137022849085331983650716510988093552696629110154188108170742673546218549162516051238312125442608449560828240852023004503897015796919240421067537911999230413296023206849785458268866450004995806410881355594942008165757089142502260000750534871665123496193886446952733697571026749341315300593017152230665803946159554655661863539240236436571744142654670883111348366615142363468475913694110044394100086612879367752171568392690706610950443522510920296844668267823203308014510842813233087306498358735744760250617330243926866719375502240403188635476240172825151877733937822946690191949756679887607527490757886535703905664078925464128392047194350944273756280851485709077850783529841192801421037212778903187276719687960276257959746039056453041287573093733837952925036880102512762866563969670815537443153444001851497933836464981203388520784436732912333900582154871835046875912553804634227983334031771405389416336216778074031350901019081057269011210793124557039885610732792310854391172531710712078012602013132079566892678436918673720591137672010612155453817282152167459834419068309109867536301138889197316547038322451412598166112294604975615530858678410259228614993491224193809371847620975667998798393256189205962933231633726613541437220231906100990980456949642989784772536638561801236402061418703401021706441993621676298267750348697410127843843452505946318482445649608021333819753904719069805674795533186690306598495576160375022556560248002680427849276826897760852112391761729274049569239221992911998116620967420527919888056594944753478314044940398013877471053807587993879134457221880923329226324680058314375957958582777378230067972284885661912669397048345116548867335508506015874753380282151827306390766429600761064153727329081368444435662485906097610625922524245203337188040162125089068528509218256713327178143036984772233527313567286248682283076937159348191958989856873181286233095321347016082480828874860966235652284016431329646488975954006118406728956365801010506472184580435868703407102683623090387207925099626834934147648752831571447318113727322315399824029760284569587782573131482586149631948096941181374807182618085468747689076837166315114900061307405393844960213125958526723316499565557179356345274477104342903542929425168566186036323162477291101210417460368930612978207927559164043424873483237400233280828034415215935568394445076950762176645468586824836442953698259899121687365914093361303145540416542304469824849837720204799266729028694128805900576889030689826841934925751805549536810079986268936192044874499716938376987802252600012734018690972894272765220314595231195070026701179751895225098131666493806379360448519313012443773449760708770832053170778430751184156280707004451597991792458973105882903915031655088091652745070622282983486355086218023325257019137897410595545259121190962850865927235629923377472507128499757111212759064165408493336117470323066061173406358659478152199010926952583110101303004595200241026459325161779643197915418057406294231180273637057056850944306414767533995082582436058464563599965125670525962851006756027999594789063954899634391048887684200493659151137830562648077813276288355858982208189439760675300644715895943563966736741465130659782046912078395103913938017484976306526334879595284243796537265456690715740994368005493524718544713430259687197066191651086789176039983679508264069691525163905708907796117675354939620874056952603117885669095712669195324404941970826208527931981748906301790340608559198279147649067462276449016982842005188740261640775728295853933015505418695528931021438040243794070068165064631434062131922123377767062420734284057019316980299819627681703940658463576275942767396972420984870296187372826947690751122681585532039321585016789865016072376087321918746387252216452676870235753346354621495566120241817099799071282996138407388503616706958778769973554274999897719069750224188859088708660369807335132305452035579462206943787542157359286173628407833485503561208970238201056496974722973920062345708672398217881865361192771528056565382944149996397158056235340240536396728714071143992663328273654150076218709876360933695419918715396469148578910479882787636880293608445962050555888432541228209286159441858026607520138480570863615620279523744867232235823280450796359435853874834193778040610393503526662497682510906372667737735112763038047968073189207121660543702179507965493584210291226281900729050946661022845060347623299264135109800806426912112528771457815215417506925547486322480171302406385220726955806653535676880484779850803985561738272414365538868575863929351862744821975569269238755479801566688301111756655896263876667609736956445387885455988495619227913009098890648087230302393049564557736736218333133465442684453483015477698103521239102468797209532980401986230357868163211111135772314828758660660587025112996838403781907929337754595308184816315282736390085302928083792504635493514400804574713419472690621003578253775423822779005895501566142266547111392995718048977802633047874536758378023937921950436297127738311189453713317348446061296210997744045094896124139443409517188180594402314179999141755839913924332560870636654070935068564071012401851295582258720022573663097881843440267478244361920937455753160802769645921973687582054448863035924746312512460054533437824740183371762460701607583065274277937225287721623539323358124435331854726967666499212397043921661398745891664701103462653308846250122016622854704328179867852681637609247261190036980247045228725727921495421580770529208421266905616371179429241655828851261869923864744101026122332086966912084430630741384929557748310255583903201360453373644520168328045949894928968156765114651409086634224794075800955067458842080523063843357391199834106606285897324375537361636705931655823717286210541665084711669892182222933180470547904439614489764426248521503576014472303528364137543853246384153970090832068049355370005185658449840212324323866952757209600912200232536462655447755286899343125451543276132705597162880690601408678671331735683212076273416806741538838053649476022453533653197906605059299088893758160612725591530267935510153094743208018630192457305405660391604382662624911130584797629349100537570474839510329354514389269894551959988052949946471252317314134933034646255886154834084783751793627640592698648042314296028531079268950248216999127070479994816257425122387504950604458364854534979521918416052102346083668748900110527387771798638311583674018918