501
251
126
188
219
235
80635123732966434294910694079035249786296761859702511432742043616756742916760195739989134618286559339154999873718118605469340329396930528161954947725507546158566426393318046888724468252475968989088821867831122207798302573052969791919850854823183375851971373196275504893578463167191767161663177392840176852936261288943234680334657873765569694412499406878807639446235316146187121259524430242746188970810978932935342797669988401207939216310994463810339958532350917127923666698665694308151684849811306722966226286692404611436632805639241623522398483022991926479832442836099578288359266711641223966120646923942447394858748445483478498808499952206198897135397983278842114989364443634345585743386963322253073697052579358643784759005367869157907666204734382488708306133209394597471801442504124018124393286464444221637726293463844616978046929864734873458760157579197515422359788959206232756499389174135862031483467686694861256993469659991908101974806818655935647951943224386589885768643694752970363980391894441861944100383960376902144404380335115166347227718452502533154763042316991416952528142539534785182736039048440852139499327413912452637075866738845915944387536366042721733954956711111263108689755827594136582227353138076162889416913619279293706444714197897867348774156602622051256784557780103836785281956288738414752162283773684954714095952229283560490015227991245636320170315467278136676007058477375778608558429212235073414559980177817478393301596606650739939232165101132382238354569144658243974818344183426672664851547646403486215044866761899212405206682352208341671475902865864898252141121879616301089141026138893868440728409735893832802376578259783222368426645951568632756141629273304624117019717521147735138041781983096621991341623761007817515375173396932768400145353606202749327075202691945258687967229968373607284994886239130211248224721216599118620358930726102180928912552448455195455841114839543679240135162612286726276832959895947138774513326724141291425281983524777519579193776050894574066883256352694727311571383470042537844470392759360768982942910858520893869072172515353439890161883516387534566427185623227213640572726300810627381129128148945865823369858167717272979632747527647476373638309958242743403367364633681398496661955143896357627578993910428110526590567349665945898362083871245879879309508075932526403149955019788251727389791449253765379344119342450291317894443775986175194436818526410738084926061419126735426965399601611971847103958307213290746906881366461607997662088369219353135216867172096975315978099509302885546828264664466929540899441237385568542387205556938155797128879914927713473362891790980607693657123565104175737121871577599255932509622690863952987289388966389578102942185699404058384497238071191466414223082832869829186178463029693923220519618066718534440814791648165097933611212280184062916555180359099648265193026282262318565532319923776611733749194955347569398948855381084816658119764216638501677554765879035423453955188366062612392191298845037757657475353365055588968254750874603308223806507461449713211544907351797086707815015425988505742196721957702146998628694696734347517633461937850531370534224595586667131426623018443388596170623456469154668353795740560261273640991526869022316055987497291086506993726014057046406792978117323971783555032702668398027656595547647109036116144157421787036647284101918613234158229822673064157573439769815668215181432272939354255295943565119272905072931023643298793389168583753743952386274003062542341269874878423093211564761496405576664441950496055332914733443590252925089854491443503702086945472380847434910924387564176582989034551012572468650482232937688578869516026184288351481262634395083510592711020855446966934588239349833642921738469521699492443372467096492011669904294414486344413498607983463448317782886297264989877371829143228938142999291664530854623468166943065276831856226116681858795587814144167829957533918285857180587250757766260482235940865318565615251949422550968927369418589295986925357212647187893935281117415993884593220247769265485312666417853469971789649275951967726619362776260550575038969749491087552255746544246897100096431468840255239051684355551733728889520611321577768422257302272702216343688859161371807109718971018013025727435439286958439184610386927915020216285744350560828045333497014179992789837197186456546176314969557181084952027457060825078188630858230708444762944456471655821284510415463454291023888023104292903285255638642667684176685169032453997630259547353668352766943924683661671158301418652441943234688215888587124902551054158325295023828619057375811134108878632719753012329337745555889150743294966512691473664178508296108063235734195865118763914808228649498949164446085067125101415699121402071527626387537260901341888687896435469896788859124887663308277861636909205883369293785701546398527185876602711391884467616009162127038597798995642223352613845644556974164072862959385786143228167746698697893337999959868198544314434142123670640824813211209986473272108464732109769574665012436172796196841354625123969999860874873293384537239773788331291825295145112389477573283255463475033272592646588845464977557971349597724391213393365419057337745335938799198558780645532957215868850194588434538520760886491464498962595574136526845984663603908396703192513762059696274732223172012848545885994669757069262183896199440919948442813839831402782571886691105849334190128636062943932173333093250993668744009515215775509729387817277358291183276038367873579931318133065499523718700731796480644568225388404554796615317492612622801074741298229104399824219425228859576244144623541491912593017175276687067319397576303372103510511218918217845295595693793713092747111279325620486460839190123321614658616304996674358583545745543928236557460920664889823204503607116229546460626727259512777766792291883986339238267859887566132371055798626275822094062486547598191334533677530119389499153212913354973848911416463912325460499581634889772633185959145634171401885284855836839415597863927569839438419625752696361598273204907949529004527958816608475866992195782512166134669469974637973544311497522185146306097276816435017941474135205716317967176482154975353643929631238779714145622888872477199183364999939195899967801965940242403097698525431652404657801586898841092245728126710962403902947763455281089844571382226519249064354341264222481160197476441255611876660128865983535731430731385678520679239968668928442125195877239651155962033249949299354954737610116746208669962457441647318631760323885944276892899916365492725045584757207913257137762861471454631376541237906534156405606638372601573771138009462107293543878508916707881783123777923888378935128743352863735434628704490653132290736338063536734641991574051841311166321745267875599786063922661619166665933357932909710789865267946089267942125058729860297877770876671771805272275367912321223428895979981943912091721057495738796621362876847780684679375897155484263533430911230818272424596084936868444556263881543754891743387915350920774925571724046639454633894638755234967661597907914424638782939596677196103897452111642250157611176880995429726612732489784439214613672954755043392917423845483806624409329764827303074024273619237485317524616288093531069759351293507182904757119523627981751545907552996125303658608933216536319643966181697297856783246937043046375583738828018868113767755889585381905175447530549937420787485495581273275443974724548487592598916993866296712924664882054120169218272424398894875139178147785131834112524991236222147426943935172324164394801814587455629726445626022410359133095743704784874748556175845051686332889427982062077887730683228400627656257664643611607361520312021411586880171716972424452870018778339417274159692563750569982281955211377578766014073530869522693360112735101784118113660372013679166979969351482762121341780385811376195917579664343811607377084056246378178775823467364278678267179927349404439101380674928559968942864768226439916475545337403075102438686990396755326365234629955251447960991315099844069844324881963587672797861381000293494092519599914472266624677097973452278176717381338948983287396234560138833691619934316296440815339383448992641583987164446414949301190068284516123226693454724935366239089196632972884918348886710800445388493213003765188965912720905856301997647489211889293179499926102589232432548020816752555232701411818958263714087951512931793818553018225863277174797051773035849862715087832160895646195548718148468832105411557411299439378831954485322688547697371736814952948534853487603805798075961909326170177618617644984453976677194829564787949557767756121988398490833445278330018217236540486988655243750410760126721986965782101158114187519481382463962783369695055483476597739458315625011264785413977026527451576138159716365011061133758123833298886821010925989964832253099234118776871457331122738589458368668087764293178723921478253267950868485982074099712392848746763688928536511624318914060910136922976659769869648510226233412166048893944091787980768828551380214770072960070579218391985515939594210354962885626465112712096265305916884741340404692844154521699115433889282681614088161723284131049757733635386143819638553368727552312828418734507844872636541000331547177493511115064216192235611741202372657264194846963737985388992476933087891355069156125762873897685001431287844673597695924352474386638937554667095769029010441528259587147451372620727792819733343520244152487291797489997847775396257842276996426672053293997327816048194974034876941818771333183153995851200994363963362259813341113369773279363115385208162744925797648582375512555236693255960488480289982328691156199478171210698627555671351692262665394325717984666466308303405629151250531492664938627462907447223740655971932495639925766332143573115983103857405109781665622132695312419492093652549064886745212676276672302642391658561241209714567319665537624804869766782380861204445061879560861339732046633858796612935877044817125586159353895376894929359569983524272456264266372541378587090566496941359687519120655704242897786317699185045647721194524225430306393073402759879654149777942321097791751210005022226331286004629692161677337875044445682206619638529094853779532462652309658248362823296817133464650864154861329521962047272338684383475745663437019273357380024769374575752929462324365269363338635160455357583616777287347650680130355476238703979645180939757280899901647364501283685909061472650224372261347786993866924992452115288394204241756718177396705415688278735357916963948977439443110950263734258250131437218056547874216615740721472358375824199684105846637348353608483563013908341713457716372426077225627120655925668034376174897429676060187243256181345152225458093027799581864393517819619264958441740887481714650766422862908597112652445574963281842989694479405789853638433882820836636751087941376851152982036637667339561163829467450866697528457557624527452272834123644729511341025735699167869623710572247567245034695168081470777955829849180809631254897365915521874898998475756884551504906142245134161962089215586777332343158945541521798942190461954618593725889220833597635845399208178254247486676989946966533118839467499169662112579299973438890469459488315438188438585496559122344604624144596481589126884501869406616174888814457517131081244446688264807434165473340434859328891596094480062532471464770084079478837914977531558986644391507255515362304989891327310092281796077511071917535672534303349418774896921476334127679876932192657443641296862795432451431233773781902235744186165512679716817524398449959341622953815295794368319958896250445917758502605940360915572461952773805853871291492569683035190883719855922127736529251323774294181978438679280784845572695675601111400173111946732787392183866546187103952847354993240940760111411156935349563791832519115877781541941673487954155723374961375584263358111129113626388413487516788399468224939243903903589471576717449818820679384387931611455276992216737909946207449316036988227776274316984711530276378687643159244071227866647544123769153499789316415601756461793347990943829547142756256923987839487061004104888492049436731000241254992609527505374683528893038351447489034192476630221986055261573091618438212361374301903061287892501805735830597632869994567180998875498888906157292329991381903589444717340373238496584136855736356944534290587579456375070763512716438442335837346007949222492383544221565769744356188780854796186296329401298814215536277967782523867561945287476567054351596465959029274996655798627534577947936855863208718121171029033015958403643220881598861155338842275789143179378218362593746852415894179641150448579983545842587474550838389621281020285470778813296048639408397176463275941452698169916528523242394629234615328266699432747051457770265818969213040376498560790155133567214332234189924984085389898191271210855955398375972409893442607992743022368747361354285076931076855986135195532569279442152682393477382896605444664969381645133396597066995177714267262581547496087111895649670591054276162849757731785146639386844111723662492268646093677691147341613508402166255495723709202647886688976446440463636344185491131972368771410227676408935441874233764438562534112972646888592326334825881293664557752101113567572228039593667017144385457725289788233111396947202792828165438509954736028448536121682908792566337143742536345603368144693695326808243526181184923792474901972808312443453818668989413658544831273736607109762825699038502894778799713147496359672791327663513613097470194117567779970444649266191230134945856950110381873497989302821296248753463710339788515588022986433626868668777992186766242241844778755344890801592368355185023508149794587291102866682708066338224593327029126852485314488004739676684281412112944924598506440453682143187372918244961936130469887815157709573168339110989272419048797293417605616771267269848419141998250494310132791232598750984034532921584017326353391426256838540797327569139981272597795611258961567969233422369989217363532387751789668184023733833227405313611944337608827246193167653961915927159957815388961243711294226886809605974549212553091462335526356062823047506978957624919345298874857861485266389115787821783193891817054721156760752917695168441841841175375834597097901381961953545111264207564368760134392256577529154274455362473406882980151720339852112743739820122689842518884290929325128997688549938810373161918431405276589594217443271222869765729782225917464960637487572911477523351106554528168681503585738777840683383513292919770950527885650170912760216634344288149788284184886311432944850763108302327004733528136087992768745683415394155471535718385118515282667160659249660560263321894634407833968338645643413643423018603641106512392216249761737991626270813953569745470349450263783036410091742561530984643387451855724691555632996729728532016589193564536473032729513339366842737308902942619520413174612661396521466637236066988057193248461642762542854547478152972824603888586785118768821884728562157698241532787917561360714980392836753983296187268484791758377408920377379250131499891479545655868966562199526938410436140744415845805621435907724533825926745943360961523434670721067247752961871538792738077383564242277155239674096583938416357457899274541147455064392981681864595614978665476978201786331852106783488963931369238539885797115731857752306441927421444959702173166155654150152943619131388688420480891750491637787139213184644815365472150762756155446484775743285929779679339436906674678696904665175249422127135851984202926897015667046121069292358918728869681456433481131778725213493231785593493161637715885202809907499798856069041217503556072819462431065955446084772542958453331355559122026268641294629688541683754210030912743842731351417634714393653394220173176334980509294100076845954468946828526036527484057186097989516150850236140513792837525193366592487904412483444692565431805791284180637071295896339243684353281679668810038091751574119310352815576915782490470190622566588299986543095275391340343724240239225365523253611000465854869646661677733529646569429139677459497043345245994965231514725959782674700453116468454764681126374799849830550453787673020824932248315834633998554864583513676198817457601752700861762781743719687237992202444614857048159812915927529115572468183590988891550809930743464198467044324353602855081364278699377249461889125354375336484750189142922612918271624831016089498617245341518717937523008478963513580331715528970884445548962394634907517363393942342624272578346653504124459533954555880293283247796625729618678466611985851215694849872126315944551652933144267868568984283249406714031092464041073153534961260928753113538363634539163495890727705724993512503845382374152627760681878732964647686581948894792441214082538026387413897341544612147555289611847398738216464573494449541676092486904008639064751906275124194945382740463086019210270350602476647601264772496499101850764553311647252335604527449414293455142193011939028041518291115143954457772882778141852433779977686958776234403210554683669854476581593663582811176530692947224639527849137057542711764485011935638470943178541431811034023708802277341795868397282994743628768723568269760464366625947730159977115522482754318724144123425983142462377896335228155028508616714362247816383433678072186136545955957454078625715538192068822050618679583846874254330965395729881965091654033526002102028685825854542638187408753168591687742078461859637933045417483347789667496257302359678365213712730922844076346512257985668474583388794793335822307475912533805282970747741953788336993183685896652228027311215472346542376332915665309593259719125596133876645167582762740275971272772415668345130739256677137263263965613824371692626728286778325553642229061546054534779689916962778183226978376939124996051553390618231113474412987651397222568153385088923522872795715871552828292014133093324266011076061186637979399304621586787545309241859425751575692214155031907378438172263808216998877688789043296851717731282261465834308835460077892045136646340222939522591875892178243481100048681145765147787730464954554685884406128159852751571687889557975101356893430155960127238224611777465048763729556218227870940688344464077760312691914361620797293568825828351628153637640631047049224262237451868984977468501177879722822725974870250244526560460750666192606210585284615344534042345781348446792294646418881756674914918604596188634606893835672321151692623619298026287667620425220052693970716071065811869761113740360927484158682292419936888672958733784775559371615345926680018166995484614944936917259910764226227444563029210718571545888671548667941169411031852934747209713892883522579872642994741356865603618919083197085526597166248826631753154373404598353901864643245002339075934141552490852289535569462972145716240372714633242660471569549603234375714373959463609001147123179347195901904597865427549865389847632146384583564878814844129783188410972662183628377634275174115396890165637252921368232973347883410884510632636985549865604583220349973326725756749148612572374765854386867917032433359853805992548217004565618256542019432877825667782213872759936801757470899391945573543365373760293500547539275517521544555066059003592436108407988111433720175958433498876069334582816937726659919094666290531419824239207607763303261832959226169517231762579181331695813147352775659796812683711644235500759191607089975246253513865718179052382693299815168790461479484720298762417360986429183631087534635087326573080472631981498136864714401514260736769368695588342298580125993346804411287539595746496604937425705654446978379604804836406134001066161349774947563321935284341129363412473198082823863798919287943957757270413785869699987137971208522498739842269978325645022195518957085692166598413646021854784959824131562197840681946395961159738254994245395066854466239352567116479372358132537672581691413374758503722612962979047082443979288189032154245993449796601217586208900413367604285640231969826585440214594678784399638038627311234193749885281062189854726766461319476343103583646058325762853231142645034670513371864092392971432092314899141787043295676236257633601799981838059915505709134377681817685086140559997775408262602633553248525723538367239427281530272624264654644796699867262873545354755808673897405176396053217099377845026112687165687787102019273418615012112999897565406697874273468221185586625516401485036412134146665501297355141688209944171355894872459859870994141256586628712938295400805153164152523747456285175132491004864118613919047173255418883651457737163553692419718145831375290355352796280455533912149285508373752965435433325611149345261071021785917864183524235676130660620190683397318243309621235842460878572573168295756672103411091613939605532751178801346372145027404809207729531866865531989512395294830653961931262991723421802778983036058103932548410727418803208378478987751053588248985246548287288321727742858201918198087797603827811641590770647226599602917367688296167560821546362530477499884732504072714203096359031356759511124358538275196556420191104610691290514637197627759461031282491665784427203828867724882713285143707685041315659830353218071610552599824304881118312492494304620485926464046207039414237307145758312533214321483765102983629346732151114278071231142904323294430381665218857251661138834839185913389245252930537479313763322368972755789933356106100061858974682168861613438155924337912293882715686244146780738899321156912843960343787554973874478203652392833444858741510622919916300937748256370703712351490255156411839332502617001607108882238932767178285113209319532628726138159943399639322502955679012517247499067221271345272879268113290117571776031931116677095325623542505165352277955660142235187270260859952693106667249466098135375603942608674420224366681704327515615381194893534808210857781574299964959942774563873718928589049111560538249764211075031934744462598418748882096064527667253686178049872775417251365636559545635515874718411629133269747522325053285122413147203951495980255481580852132398358624346187891971881843440140691136979847422151113525678448444077294348756385127823834485312349107806269637700267133168577374453638288625717497479429208591106445234276742770697441799458943044526981701374575191321940256495684275558520355597174795533924283667952850510230882036735667936815896631047866675527544997619768411173746135235743919682241267665689102699347955627858596507611842325387301321316653848454651948361780888920990521134775901545244749219173841921229896541188665253745432354062049334282530896231062963944065369899954438791185966559919256854120347670504128103673893838664962158498888151454001183605272468207866513057752882258882386732474765487448343834143922330120920895340563334907354619551454531982936508974482659429237755942066390445470182282967566356920424448989545274738466895169578323921724312170593584356945501267726621112653374033690397397310112917401237159328115861147527676928693596195913594965362365755727408418653549481891290718497347669290488687358584182766455572031621143443697777443031256260472435664106055052196301490655931063874452833439964219908135146348363321427744039511587453305447504449215908466045698251697069109949549093793384845072887028158675631850123735228712860148777347968693447262398762479239724371454504576117266101411931086286147791608478195894302925270156178381256280893542607176737811995278653452695218351673931345426768485193196719934745408937304501628577358068779461766763214004162989238297199503769243538967669592224215598568741828764317360183839840878561877863954051290518416083769946422144573322116612376137694177682570204203941327519389365702349965786067595317671124944988180682625677098491246885787859534472971895371743870740057271058287025192415483136659695294726218950325987652250613530826179553251649437964221104368086121725136583339397229765501646582515467097932970641946473414996349185506442167511666372126725980483999343908628442521272651074937284903555617230061739437364126187954799433419469515375344625895645533710941434188093231171866528874772871392981887885951495443084695164035521086859310583180872410927478578293415493466346455519388402438591407476643783148037602899796433689143037428311935487622762168454821044466721481410560277288467140812471900868639656786380289777423597383600925384484062154636099017612803596870746242529635429928282958632664634695727753766092556794210259922405274374989007109255466074365448316588945096555926272929529981208165809575704087699460913215282950808978489676923424457008792584231812123458964920317128484938966232981164348826918260157711544757860132402294609155559791474185376853726279856940979446741109745302405612299840204561189643590555892702745971045331948839188651075718258316462904212957516250286910500649371514813265561083329916391187376043546891355218642813966985342328688249337696974899437646469214434384984195463527428122723870203851584342233274622114762517709819248537388548336645483779422135123914983428258786582018621308255003898938076275772046058516375397783093925432816096431758388835321163458849010274864982810455709606982075960993376349304525682329118645290553103843497592792399751940531647317214255822836301648588534523936469370434497004268951009183318701483123856275871675141381074437731577109561702705021772395084825796734626002602334527191416862695473054026662740486928023549027715901798758972679646982254221718598824753085838252707378453639733690464311787672092995176177652272330362015780547275391893471349880951348157925617406508177219797293876302939574786784374082044638825358375054196687892064439111666729075698530348094015876954793277849364043281676438693470316810622298292317844495558622592389093250793317488370246333290584949959892011293061374158629722163719682863419654039956324663196037448097067620794270644498728756751211751447723772481325879075015385641220337028077948258224677028794695348984543308137124876297091683813701844238602992742735448643938750407673147574676788919969489085096947068482385178893639714999526114963056927613842962690739735445913922341922967682274806929837922985003256433089163533390632887726934810948161739499366174488906889076201645344796247226237120324018232954016144386491864974679027170164852453746913663352301192886321764140624214632470502953609972240166638274744439219157364127516403534867968925963590890832456359656886237549746856768796522917621286663543877019066036515924105025662982887237439982644299022146980207920294219285398649948723957299211470524244174576683422032833746342610138837873948840522268545568940146984837377676872626268273168921808527831931608037431563224822749281771663944476091951744888274222833286268155022998157688137641440898819377702730644966600322579390256956185245164171644772431126449784707198206171126458631197389467827174629131243115373254611496329851815427565262642111354361612570971388844283512631115111945497460544464755849521648356854723173492187180775184124023114419751196392172371822850913215031493260195482043262814650445934647427645255222133490473819819056343025581472359493376191458643910399918152196831857848959653368791561511423369329383659016872511267612262994288066673288340192988495448520961573635851862317563511093241581263431933663327578625520745558580102454309299176137386321821442855206257505181712395512701681633946191127758544872951636051479911337996570641092592896770972593975103695412484161232649485034765905262243619248875139642887081109956578312689457776581499754419624165565280923966551267939523426488706328447785978756226574917659184102478107134695208376679397369128992961606675553045456501517678323317252975171784389835814960854344589716306767235449926370284133146696478872908253102177983021695877586738283276673623683272461554918789419617565606078989714697568999733448991993685098649089640731987256795262160386595843231713238965831926631435591473793317792265162165010890040511889883859921968776627021252524814307149377225684596693780475535500221350743508676869304249910546719170460235349595288484635119397033960940077928796819193768131696551270758435194516295656873399492451757972152815029839328439444968932341390919434981570724283645417376592852128389550216357731997679443894497976514069810619271102178382781087848192728678054127891307785233598664854499946562699607872654515580259555270821508136411126374388665213696444500261327974302342527989976847649205162875739327938732583869828853565996152177185326813654202316029465136588986163543276173366566313578236775441575099602766501576297165726237864038948216223259877959942804844229456592081349959485414978229581429988884906071007835029386617484617185752638484103793181925812863874643002463483775515408271347347670129762614683289746585766949056457138641730588570187330846961949598798680016577732637026319875133993499141173377857415505475115988526440620653977932281281592629363487743388247586943178591104849747315694599346747563820393198206219738824355944220272736124589688035381928617993338324798812491626525165641829254825635545789536329690094817679579527159682539432653510804970210296468556916748849985534116743698618881112801918625942112964633974822593281219356577339541455397724369777232569022269511513817642588885518811437804598637059807757372518232642958202291792586045861897915359969737215663878962495972332418699986267936199143262156639095689753959720897030595968961957129610795015095290730457647957350653351445334823934481979182690201612424726203956185355287187249420367633704679195093453613188107636655136071928122825295379436374021099766083742938690274886643801763655312192830457495475396495530475628872976755907314419464746607639232525959533411875891961368501950511480592936951702912388138401865245468113824098483815354883150436781597779992768421125112057388549096405817931311735813698838225785918029373713683549197452209142997830532421519958656795229450533439407311505266320738456498629764943627434785559713134939120998574933982311135478149324818328147674214959835309558106675521334422631453442474298397392164754214122989924162335846388785746191645592106614738279606781160939487170256111860949472980173479980624514915750716827606714677211475942794463440655349716979173467637784561197502897343637373887844115596967256466751989414667299898877238951335279240839682892124727492786581778771827123628586262912168293840429452478241694549311457875087297174233174831577186639769413013632403788508251731181644289226347549139556163724291614743444873528105199600507907277428063134832987078048984961877992881613478166560626848645531629468243755948336182696500163479143835276900748877133511589813956717529225981070447575674182468962954938355823724988436725468623614973394165399782386974169261498734762592764787829697751771407633381459477602835438482873368449157603249248217325976525335682398983033896547479438109187574746765914726339711630390673538745475084384262178229456876680194560226645754320477979836850246350331339127957657490902244352812902866478821172416695258681169783297339824782933953298513839201933602527717912628094264625732111164064185541850224170949940131421104626622485461107576937879373168750299798429317899164297969402155281543824278096660625917754531212138876039579298869964739713266063757256263145314314100101690275574781896633749776904884081000633352568160932794381575336423644705861903857514871809176904139893365160778415414898433555237272545231492221405989962956164339214279737337741306739420685294764241424207654597773669044063666766783587359361377353146249148531654899869142193357117542985850470648212762978733257210816156754947309536167955395551879557777795272230322459165924675690091898236262856039122551876607869152310580654513705517666625235250108862829796651676876520634895960712594772548934758468566157934792162040424744986794299351656148328878366247483346289890337576361345547792112321249175384275812639514796273980748313414319177417511937588244905543478890655777342284850626626561884647679809787831418633244370174996583242452956737869619269281627466114484637652438247587252325751504498968491460835136138406440817901819892115965985545896122328824844089642500525142396205519521671513677526905835787127660616443700694238087674399329993906785350719479538200281603301435161685666117766824771790712868670515522255874502383892816473668884887350718430310977560658565809538166453417678383067689046245353478446588855763231118751928828327734399782249302922025513744457393638948831945372504407815813742292222697294426318231283760291790517146469471168165711837301601408748616756085926672213427210717677415306768578727767170565394346164352653963473021288718814948523725032205341321949696158637495497953088717125235062664360562217720784307490116750469128588235138628472389479634005823984131203697461712497207518002356318032964444708138482981016789910665195637715836613976398409056239917955372379627689019688694120383327247665859737884835266743847120411768367837143122166837178910386759336445937949457146482329708142619415344002481692386108341259576431679027647211738212696083159313295897689297537565534490391540644986303394731918801525351801885842008234787539591906586342753743103822155464207637135028157157338563599354381962875123568340239304587788957027199352113615077107865694768658112489866101911187144361942936414790181928778743391229364697176092353137490647918422356181256760897273994433160992571174962753123579400614258360599545742746817666490485687785304807338544352637102602501188975325465704542339325844571456222258776758487492977670588840670559242384916143515504786547983104478633206854105435457198869541612521341109485785696070127950792060778596921623862799588458347329075004462767801022706828712335265434480638269466712778873834595276863358790760505334933741722728208418526329877454897955407415294790625922844672975216558259855687260691897358593084839384442887950252094123623761487926441101477922845466992458876579330743616879416449339345990379363954517109455865031265532781389606157869487959071152628953679726896581609569842556253408549573410872933506908139648908468281228937780298992651133073552847533840550394334924324533443812293420258820999646964961196412976467927097638345716439518005226237309242401259989048895728957684243575957551188377529855227773018081215625682564694477511843285559736423948775219965436983697145747538137155686854921262135630952396856043374109853671963337204450884928382355512651676551769375762973904877545506128880401170689727140587926705675687397448361853915912509242758356972313036259742778353011197551417415333732112018582896255484479985505795077206096782556862015862613054626527475743074191389729340054351654243899008725693576132837198728466868625891508859957074471756334457888558737024742599370781961195257325525534278575032387942720090439957740365498676452547429556367553356712145269455331836565918446043026157881985942363609838635144902921767331278616337194553476329393428758250729674751770030228169287385349038298999461597329906948796092459264465197640524972399680742462712722182182036246383496904574544531535388968473238938518644172421576616145563245554339943475333302943142499208462348066375193759405956812347258678189791000659758549605974289487636939464200938520897708500781435667251332457571499842436981319521910948050038897316461851181154342451593892021516509775486780308636995944777084726183406454498525775059786825018853719935291973623521614678384225632163633754206475552671177437486031650344668789138243323376520690593017959621161447567856694422372264995131423373061886055729689214397352699671283225142287691020427657345519386133619368356827014809494895028386607975732077148405764261199515041284997056676763984859447379830653959017358440157099392810900699637570144679697173150251126908213447141580940901734962179847906429123123552324466427181581544591332223413570528565640199928769540885451747126213853564388779197233587824765697639191651927816416487752126760115247410795861288737744789895920034976421158635268567132598413575727142925157147551131490735582462472993147524122172599634082531129167545190918643016867483085789237758867794670019086431685812602378626406911292408372743143005352628227689619945894473209743802994944679595699877745876479669828164767047106153681565995621877977564257318247510790756596933191602373776487786827686641842138277316881679465367625947894121901478952838785352573198926241734088279710789278446687118081721067355788717246295149958616798189649431671395801048473986208735484102347379647707142975801930792901347388651587563412451530768525857861308467245556172172840651388860617873480942746626229183226408162556452990544591555542331383221445484174899663299642436926469429907826340967841140393615842135421005244351611945674303863086719793228637501048698016679659112481961169051527847617295153664902616014974521798794833799372089407598286923681881252851985981162706988358375682596358323362280730723030583372207543973725540913729353143981792123375956725444435283917693012362433974357706304873175842248804191465199291106469613874117298601616571853257778833463580974547397770741693117965799093649249423211168620356487661347658494535101769382647463456866116963535948228245634728927352412147487614465693427635994703392953193933454769588266894859330059958921559757293163668415579365928623386436188987456474561138747446219234444837788172075158547484203929250496938983278432853985331156807150762430487488429959270495831463534849949660765984800436296512237790303673814387633716691624455448797377455689797220778592143311700846861573515502411136323258895389972801192132652567508858766593996824426889131649625878139986150712738357018162584044753888726281244563495589660470306182556394505374873527431151501125035892086058608425214934554516495642744178868571966482598431262076848538477418059111222739168125506705903774381619914584202914475044391116874753773491311782457622857961456496673694694397834759477264783043235582492359085314197593613895738275187142842586311285972313663720608178443324910276367445429402312612984601354894411738761484306791438369180361346436598870182143647881977120663789352383798279846443959503714764707494359132799998797735929731511649100068839122349305922125359916492648739620762559018575849343579330849469456273796158757624287545777518772632648384804869699547695624465383927337163882170861519226154927135598697793111692509194233176697314835101731460188993127787281870913469410944415442140984221294762395528723810680550894203403363227679701276326592998309462062824577658665935407476759607844453608843604026113145112864399716020889045666883847933394928695327029435930079328723387897034649912970935835418617070083362102507809712747541699764860726048489572443892813904893566199776201758537687248031834636723835489113960816737024594776448718642799325767725652075196692447803682458742977711335614416453445623515405424302918325782852156173347599252364946789662684157304108935401354138017971632985628046652558482184522752454159021945042130698528621573990873745814349483674129549842354052964173667479256990744147384569535825001309736375217481065268611513074664381592594796386543477416233846449323638874732114762804908386886789036581553879297378692797965322430560514317555934335834886461189241378119885593853855304719368501241134333335443976614566883927957932710658961695452386282849514039366447176186158236369581457552298454334579735138782047204074061231462314811004031127294216027140976982325214560456566452128313944855844797271175138964894999221640910471343839974355500663537102437456269752449571485289064572498352865705250665599321320444318829296757653670167648911425963818636965837844958755512483958236740521793198640708667604478014797958177441154327122862316699593422616568981343432162839252624430827195859780614832416285684779634920442124169961477665947616443825359990500455551458254108361393357320161593973470351500180253332751496008844358170795692488995828155835727347563438661295135274228354146946779255381755279571847669358471540270534461608914803200449981223461937037928587912193412279576728460371586151792910340559605805954637747448097734815463886330365815881570323583411160791027176836610631682718147554033311981927568918569929478941715978443766263426235563961623045131956978096852694233481687022347831000457692466163367887979162527536495387269818975340481994511766720960485374235861471171894069531252656224431249196344198488079723251772974241082685512186932866160615916641171525531479697885166850658448987652573805486215013785182785405242719702899912695194881781312487684153655570961881562888177606549843328322727344100028226739319647538998518430848449232200700433101553946142896314171721783898875550794160779020574301557487513881985824625999279794497791686391604430993103936651259499619141148734304551254784247078778663776267270284140914401100019981496451864577121536488151549690769832158185154357382416579883632730790074959920867052593647370986211574130666863389591703313744361371115870282217956522565612945506895243383791536211145247870937994736725221867957545180616976019114511238543286341538059893058268487727861862269718412203787039923335510212013312519852797415911835737626956746768377159364898589106182686294384898267157541168118968380435440320595013268118490170468121417139691375312787854806438492318556764786596015633594939299236331568815476131589688413848636623095913396763523295006267678782076727282290360467224125377965699200999694363587377440816179345815681298145599222646441897292158247149526149446875360439578680768490973312357342353258079835430164571423769121945615633936998195888907387752699248280171426172581463937167943949465783339234954933126219193891935696758495403217462788621229065338363584217792611626819388141326997215284778023702424222298986737436683241369562513909223875252829898351974381892889693762136413637074313201254653486671677272267849318915865986674295986821656878515556356469882534271924926511699172083485992508617821932270846687958982155902811177877193995755299207854014288923084642518157527784844133891865866317972255642987516162630389416430169740808227975075424326538471747145479118337037096496215259445155597820482658099625175112102827441312718173868509553713706314718206242822184345535393151572799901795117265447532041514284514784234484932697054538938446939119111490558427324629875468914568885330487673215551016499443186792993114277207428776678265122371325929261793712522743842168687391836051222362927855991412293492128766966441338523970931470463655510621485374598906797575287677259944136994868794325030614598442393443813636830940392761271655565034886850915323169175272195102792958860123760690833536505607091997834395548244751456897298262478708329803632100030035465271894740501624382722573443949237529887331484967055941292247236698386141925092561862158651856980986797129258315575734796763941976904329630582807607217542345871532492995929568489768588079750538327707036201867445940374318959877273847410630381908954543587234494963701718274172028261185183654596268169586305139133633819914718223540166601466425457550632428935450753172098598479936741456424591828897523214731286009896573167644492013982411264677317199185624159496995861467113054165461798146592204371052707083963037826727618296349026053284483810365825879792180564172155335399315545263432655710237334721213314839916323311456361935728651857612719640290617766455478185967899689408865152536331737818215131524037045511268625742668295121351678815985985997564807577899151995597298501912476085683061346521968634770257607129930809361886760586437274105556720545890396383884519520743742472242198607216856945351377226746892512332457631322537688845782387304628414747173866669983825881239464463226729327481643995836427085809218294583317104815705119324580945668054622133630690710386867806346884828886652141223244812343112575614208252624084635055979120867914332505843565301642297711346194923888432165610257853890786507166672331810939515737210613833999825725543445544861616645667338255212976157853388595670971872968168287740284822372543645428552490721872882936518126727270760638225387201421067462123284981696451619011298341764560233182676847667119844184603147317749423555125108441256912524022028724802614786668197556980805395745563306634787374924615885167725783404599204541718972969235830281540428396158948251252504305820616617915115736616995329796204766045456097025263569084690725464883433666894492827874272486141183199642691340658078964650082976557932088042872029693266518973124109881117605215953019733229712874583825560352255794678779738146589201527158664631817177019918795167807078343727164646618735933516038920419574219198541056626329347001123224329314886329255370776919590123738846756962260522836575537797269619686293945738577704043951625098437394762544416359993263447616786389862282999193659311225233629941607075026056036828445643634548299619108539689855369693078098472537973327273354534510416890973328337940506910623187098252184216131263237392216132873407521314120292459737795742926744127922378896848936021552619854596442048298466374256793422452708483862839554528797658559554168757173925827441297909797258261889849335587657913769398160574111989392521546057735518877925102384991497364375792207737007368509138361063234537669394847285592297356186416118893736197227846521445841313461745773805691941233949575962217239964858998847399632477020971608879398224419723576278210880400440759041294496457861883345332507672519695769242278669758815262323607024924807416410363345421860934964289757391533116757513297809605242158816251430873629554357196791949335485669838101100666644558848963096146713919143218626076159465571309529660470710733582520360514232991827036319175627816612297655783264919548635169534099935975492663447705074387591927980777860033280842456466828988866466897225413365574845419191692778456356418029926655142672272812881209434657801590934512648973995477510115525656980852912653721075063632372036024288677427445840939118060313371407818243266915261486741181655164818644779929889133687357868837720850585863418278531892829717955170868972534080458854595954029849384174975707793151571828301147558621778734857144251515316690035388397228621683150593240949563548014151811313498230280629624947601385330972582862468242853824250567290484578726971950409155386370599509149961410368611176833589443619388377772541503529278163503605162172630674617343754304119131748657759371516260074336387623917461729933189724721177863635564434696650749474784131173693186575058681471688933817674299026989316201304926123904802287185778351766126382296474694723178461993280794418853445676826202477215872712478653762542845066674644936826636797776354139025190137014364480915308385348312796727636514460111518597156379713388935482699694603948753150718865896334502926634353873878729539878366385810731634792713297123657899533417335972297878491691008641129157108378281949364676188587478938763694829697180439911745834139677186770893452911124768027897695749609385386943450146587432183959197359505443257267085213235044864094555516552489915014598862614202158886171746127752507543917718648269950676677109832616165158367503744770619165433863758978125709326966887968471681374229932955336352979668389774184104784232383409005313622445629190163050666792359266771461812190374984645474498657473625497071839043296805671986876072869768785378918242405985095201863491472352081202178946083045624025565944846959993897454973252218665943354982348201733188665608418123487772161679704820364154695987436903862277542456281451778024478221713068456585045335854653577365628655337132285610402660946736848651734393747432106007518688334985663930069254099565815596290933042062939123424972413022179774140957931296795982725464133283918785341398235565117711653590797856444410253998066122935208883114648317153019441588544787295716194599767889389883287786416249180407475509553344048816675378794109046268317873694625861619091289252066169214864464422652537109392532967306327833741764006594139058416866761937540259357681969479114076260468970474449769452716260655526625967497549613767102572736925762377929597394332426406839748334946887775197124610435740717583849761820100079481724583891595097177633799021255742123353324732374553098635509599743579918710969286175170932664264845034461595730129370458302666478286917533316857301887713353507553333537184427972821434228364394741352349169301786556421013291171422076851392225215302375634517397827886560222530875238127045892069337324942589559733695382682633851772874394965288612431733667667691031615397876864077797072541653095949678051844776117593832612939854247735510897415190691405828701253979899987476934171376239973259856153850748702638163769444748537394247626382468236305481895234433869812957785445885281647578343264036924455377947820255496998747059086730179282556994712164679447469728497750506970690405497182827165854768017044095123848700511790443225817139810945167323764068043537660266738994742138522369747437095843748253898283362058950422651379262212531708919651235190522915137224832133154875653844803618324474448552224437414711553901000790191149192624315208540582945576798981722208221714649921733022185626019062143629343508300288302181359516589325795182175382621874492432968101641491229555933698577349827739524295078381836332067568272276648963103298039664693277504918277971681558025607651781111185955240412565366578266227743559144968777404433643618796288258526632862779868280149750684570332771397763841587127480192448457467915134925379929654248531193706703364273286253909752090995955036265021968423931715549163091919131691532123718655851394912274276599620653435264171506104119556360845562971302625862689653750524752573344563839353411525089773427694582846064321495582131552125114009029174881973744196666703477682939986147339651191891986668168763213981215502815179645017802668081157259739314692799368736854211724252017143353114782425327487087475464961930486952907886721913992377372116122548427583454170482796172288471252278656258246494736818227271303464823659179767490102983241093238916312135484723858686708469343366417128375576366819238926946989556182748389073755466445860851353953410690777998183971111726060482375685608873428174822265037720664332928042540861446896455910921301560819440747220829144563810482179512952252849770922810888849123112597544461974255794925765928617054465502311909103082207424383467259532573486174173105211773955827037528755193330867816253995533830221706958404561843284793570432170232919422535128232929192522067567276147836960571484579655933945329232157368461383408246063529999837216246376353534526869326141089176495158772152785679541734175448972099833480221338819717839128347571269401537357303354942939768310359312191745914172692458795782434841603138254182500231598557117428120413500486394237103609883543394252769585309856938406214747264159433876264432971864636633649923647135844924608251701510882811633133121564253159809341320763775772565587591383852935110704719894444371658763927673841561594886713433260988295940809238775108282399981248815749135420803468272767317928220938153781040666174682889763007433417399891458751578374357362939563826486486072206289541823651638124246834889967434893716874499499717131591239682811814109402609248337372676176695215163999923572999556817835824993458136403072684439217479455857308813934953913360921166323399309176520734885875320847527339324921055149754659551984175946798374302129945311869098487051803009293083777484004525898988998739315836937311987019954222755524241972936380465188325536719418238319738821952480319599234330285332405291249683354814695114642164343666632763318497265564382867570645832702142962551636139490230899283840587505355604441359970797037841530832037271915421147167661272391053988253551596835426559640558322725888175289365316882234346109350876939361428155982585017638318640279652367909455184924741653726991706789332130743585697539314247234519159678857793720916613391388080011654222766825952430985517921703498822781966434166256814932170654587493741516223611589048597973017653424308371278013937376554317399336219118377435611734039494380893473519515177515978330197853612336092348582852805257871606437574223745199883588447229892348699583691421989390643546026416948887440622077463989491539973768538821576951542233820898473362242626806984905174529429144210318612984754524216911718779130275243446017638636495695895958787344747888721623224635636988833769589293074749553692231113846853220873899370537897683725965028986368738356321694030534871943874154479138521952293704347733921768794873075422127837529079532744185508095585407806424840710682218898270907709212180500247666300352464379901588127658436936774305363001921953433768111756073075522711419013835993779943488599367875363858269669788440250319584205338797399966157980541201485141008346151000846153114344172682985465352526381665718019508766432468242137096135852752453904823308848200701185725391475780345293178131300197375423996489577852992476506327125641131695630359234477489937294971230277795817690594242487971825525870836317528756838891688603449908273736859313087926473062533188242031953039427894527813262352708915529385907675265124204253916669059201992873537256437777967354450422510854657432611794524198225769647911621176869273933243048977514153496524532401442176137322792039629569051170573396174894057293845963995754569025611177173369444879473027843235689188361390460899803148450254220619874437176958105114299174386642742711805686299707554745179238977217774227898871924251708433646542548039918120883383460249979198455403767538268761780226660417425681973909789393385509802258658643684304945711536775043933016288201268136692671112468752555441832133950589652282716142770397162934800526639484592516547048713846923428776391292019396347425831327764713852309731154252770273713873540626461447175158250540280761413656191210963467113260529963405177313304715859311565237844792191321553086666584235065597878269507545083463788602996276534945195621444995124703683991348372219612553756833955959091405929327991016672112182329256435408706343141875915495880146371800697896107890772880274917905494915599717868251791869685931219726680661337873347364862764265534923378781491482801486139471686078121089056636815392161693564442833047120031423991469983235920375751421979871487303215916857125693508603448639282216237805885814242228280192492720933642620482678847418291053116018396336164094089316412495067381392146042490931489931899572644423889567230892565892963902428161084345364619158928712604871817357683326419772340172144759334421345682794632403944614116369889500873692530946465790273500485286310907613266423864041542096965568717479878087381948737572723888406316771949295314101348882091730364250239852717785615744962723760598241396527126270154645061821937627571517917750777199960978680252932870736629207866350414775448130252507342727018704798340280676198098331974596865907476109514938225658382026363025941351399248512707997077288113671491612439174083148471287730139340845073966993809708216184163335186881482205147888992902142589108141115727747252195762455566268815079771807582605742118696427115386514931209146727631459378903549450297162534630702933926117480919875852261510849700685805966472442993168354684522629776777043199429911013382998469819209373134117962775671373724601814345316836642541448861677242873162982677442062353128252327673738642857286740138230278263247567774273962335796067071930295569464305266800427346635317573685192466645546914346640140866756158612183462912848299701109955176361673296971967985322826486286772107942304377827333498494978199311536366211123641626975765369050955562276769261072689164451798312746863391124775693622453246713228641150378662027381023258110268780583117231527157983082148251797164552083935017414323657723101547731545037852339954159733694052699129098171372368026316363502616672976837713440977725449432217578614690158121231129291764836779355799873716264586371794537146903542681725814730864694593699884792824645221979230962111596458968910624940389422155497777283176045933218726407308109368028253260983297816658679777468212469558531872639790443967268478131536196773096936311173514934665327348627177139068361711727527463855563233740143499987081950398881165161177563174934488495456996853896278721246182395812698517766124135115789969491388530770570893801685290780792156473573130783861828497114089097330559438461242438248076016594289950485838937597732547145469146043246424723918244072757546676264363691913440252497113085674548831831179115699783490234449093902813492056137921123633554105611608431541018381421207602044486454847035211969822030977011766596183043954616219189246544631462782580290616718998355161267877257325198560704239712197526626162283879977185286248069156834182496972485734463631129625838026682447666345852087142044981891147690397797019950389564298962206166798669298743676659312677674757015994528258693046730614871928120490941467012661744390374139320128857745581472323967976198888343914876079306553850924605402848739147327320629534541145585492728341961119993102358253099079248526538762955524873462528029361745536539393871028893916351287854594511247980187727549795286114740176083982048363516880618666282658619849724968537199804882522937274801341752536837677535244737277147582242858886942022812456436395994411299561575585745295049579416243176810637299327932318383694614598094039924819681317441326344095620288084648216054555456686994148249135635168813084659906759650732670992422231414188943794326861333549144946156851572626266377479525852385135326065375731299133740379424485534047144329354561862867064395569618883172658245697684483512026273893631565373069531810837140935869265926790266293334882765422218112944202315681824279386056793492543599189557366206712839477394109441466330036502115432861894553771571775804873001924118642185526299614831721389682491109680618571436737714548946346635117598429254548914995576796238269577878487059354732744427074125251693975884854101831588946911831259738323873932089735877018510167187386792754333965889946272175234592457813106162952695136824158758950598912867622677677777854275200173159958488801928111312419952863378818582978808577853842663933986537187075868653771880742579344313351822849451361492124443366894487250856434280586546234326115959746169136725680116940355293363531670934394631588653762505063507226603874116176538994302621873037154633053596667479885125213311765402259731086944079013114016121755920875985546798791735955410230942898479032431462368555064932584988181902029662109379034076333783719789336214349946065186711446523341978974882994670972879794754466637977774774974393749389646288726558488157126467946662919705124222229729205602101192417569134456074891325984426648486719318246825987851429025744111798667197945813797274522240251697348639866330410229191461410921547985540367990429221326916979205345717056790547771150141219413812568660820141762343305724527645207984433378831294807704986163074059261931999361265113102331032781919221380952840854663380290272681296288539316509907103779659996785978484698927254583166679431517833081706271682558023417912526281386316757179224833336070033933906507677549473267066655627176799952033283593304523149651764637561476353263993476192210866939576697443567343238560231400747594574363342759264493197874977630750820774192881705167939195182883044964711917026698172691864851158229428011850322661498681591318207942286635558507311523103805567622459285458258291428538889890095089370674764148999911909792278266285812587409923009854701034069458402398183722126258718893271512919172043837446948430407235176556859298806486299444776791567420942841346444559032897530666542738026684752046619815628111617182233712596155147855677684364416717394054112681468835838764958862964260725723254754813812911535589259270754163313918755179373839376994111918196231511094262457282473181306345337604225512107271703274048434622571521884241086966478971394452551903295912012569594007241413423528158270218835489877212236822493385462695392132687952684653457098111557060164736452377541593641181688837998612464725694446425204485732738155746021771275112288527644243580318103305236710571402988262642536715361771634176677141257915003743087601822835771549914771548475059925577479425436270923348910897649948683254754237817288152431283729846872182398692139716919535560489461547191245641891146405331916611667694696572860124651236532637257804258623662925142110252364217496761378504269498263202151442715207168777457775310556250939820436425017672003104324732268742955087304175732802329681402381277614499523150742415278142675619240800937319813590789356652157538680806287752554100899203785338556463323368727816296811684615966117139462518854358832125032291612267281684472993454746959287122357456626232662769068382279049698849150111284661769696496748391157368299192658382787811811992357170966676703447454657801845695812309891578002529977987978864451999298671308454249156644561315419462493190956691342401818338914704401249767809653836875822105914761837490640738321650773242226547191489451837414526288686267624532819857649358952423448785738806068174221909973993763710439793758133789934395257971705983100045472522109611933315687442372995489682322008399497561457442242042569556308569485731714289267080814545907628757691719314906703716603001439225106297289106486946984014294572374730514159561668254114851259908432966503683457637540426352967337738412542600338989730714606597824689388788669696008963061348631291637030925274183321918919955428576061066987795878855171674356567537985694827649255681453992398781272319398099478796876844441964228873550467167065068521938821303707904953969679031693663284319626716942728710256593307182869470450282166311483427069872967745807662620204517923349462557100084764277291450159768311644329198409142444923259971845888964753942837989715791533151476289678714103573200186877645418202827313289311484411633975832474028342622774730129799860792188666558792185239174448084938109796153825696272991823243358955741761111452611822202654903785633658957364451184755914688422966376826064225722181823311387677686726344171346656277737568845842583753255268995337882569034146341634862225603545787890987892966282790895129182411429183672234996912529946381564279747264235824630517237718835211541530458213806190512366271825303525816385634790988522299917254525244336183524341250683584106480598959276735198427946899361453559871186528949699597194473971577169047735837644083592278022895189598617887292719625532914631859226173338382777745371495127950657978145518532120088045062215784050033345712060763419333695943043687320780867034027712363548159872719089831144965811419910357531645203464268227761805584732704343938766448662222594238536565207105005138178495858141327371441039488528014877173995530672970525837974605107668735711142162697341632904444947844450320169632620811897435589376129728283696075433649192152480539412052384087140156666683046168174790862670955479335670697351768445617436099617411895802934724396464743624074973892376752657956635782365833806998316356205714175813411797805147626285277708684140114891597496576934526899718473860131622038120273683875521916073296296708924323821319532758654164255367242538646041571686872227834926288568799128889384579597180836362835816541262254808407976412982169637653312662283661932122503712513701906915659061719124135162139974473873548373789744343215837291386759646559194768128256535383753311737636789771291325593442316251761490410282641614554375547696023229759356821431565614865454243896733181542551832830193642992968917333346253531673985599643869123258623874998948142487252460383480172874619923521663866078830544958285131166311963834011949220282256965773854326903635310309700391687414544971583536363247871172963648884635903828957303382918651105243823501485340809138379650606569678405443352817668659970647759673190857593392537255580154349191439531797111905216447373710108894990199701499320762859866649625470756412812184528987685978705803236182846426029181970373028052995971740626937556532877494268485883876771165402037267237466327635597660706825871848371848117241879477092560637291245117571670778589471742691021766496878753289789326012508709914639457841875611238037309681131140952975579928967065813949646476046935212876434215857883965755254975821998628979975716287396167023682306847540649473844988489177258219610493558870321436362822835365148897608017743972094513489871351571959646127584776676136177295410797704588798130280170231732520645957575742141804812739066129832308503631080173821698449822925169472641566411856249181116923733269667506312314975296579386609242563896447694365439784861919572154995721862645569272220292395412519509441391934956051707193165042025717451367188923847503999950388198291564029088645744525831586039244262091252822612089217761715504837639197181321686156634118313229217642418517483128862653891521413817464563162987574603639709037553776533456556199833187598792372422935767593934488836524449036246158775241983848174331899387409180355218129303566609312709200381497385185761573483374773314473482072926379965253936196634217844995978387089862733929023804302336934805646658518225654612409257674616757007988059802988289256586121788836474864281299700461239814442032402785536256095845266858945203756120687081631193246315371691878274211756724747113073879046642264638932657346972417133940722452543955353547559359054430238987853257191528486236544176116108891733244574429476232771956967987128612718254827424826954998453829189972463347367626894131177032593893396853660826325764764108970148254393197636926755444938977393102124444317199505452412320157318466376222305683645876376480314689270846923673779587066405836955515169315369355558751999477623489146295481180598922713728447386960998945834330384911354915975791525162734474637898876116819617562399273963080442553262047052690836309286629834704893191304818417685516278825287924999945651695765956895415442546974695669268619186798814122343211270383825835203936619981238042262499976976781686468736494130472201582707925914755555927914514604167426879111233697678751867323155222971076348171491914919050141693158636355711115855022068701694378216929665119800673763593193112375566400452677913108437890828119358075177116250276651788497065277296795540991272348998263189962288268123114087473118065753199267495838363018239474553623747888775691101654653867414403716107305866055139559174912962951568243912917245268127985133455439813892513583996348311757919571846522519821912756427631552919318438271276167141059965364696458604326751876489225157313631860919412365528334224642662116864573394208037835422848816277387552866704362532223624820716845469339089423397124681540595836681366822370837262928056638355252949085473046939772461685883423759068723805342309253614366533914562377538479062624346507399582766594804229391926437683712399877470666754969522578173981586845775736348427837214651238560555777388990658936148346741684744489308717693859207612363179143231748933233325961038784647556972456648463592006322289383388177253549589499234561571143227269807652305621885369185356786419256555475932698424836103253492612591679104946009078258413756603622136134264365987217488802999230494943383960894157744249913025451675085558892023264327714290624491791645318162259164985684040170695344880459113598854184245588695877774769431759569173877166358252712759300794237746112901019414236926659538814734020622082348766918519814187325817623882469186708667297838704173554484659049855612816415479684247201172744439987338222075192958379956333020711383241912736511423910883963546411942686187947688908156387145194376476591149431167561537583577645425434400109507672717830222583731442016975441361778957343559284857507076595982020155347526295216380624933402309940596184670946184439955622142418491594276582928951727565142168786278410324867360743792598264525606329666166273091478753333066242263868621228515738098887550746723807309804789085769399757676698611469392864152147397872825124265896782966817592655898393938844996836629192337653318099893020836430329130627654839916899489683080814978532219593680057474475600773441874207253272763792918655506188255758722485574918896267027103031203338915490762241180406958174903222598902920121105501101353967268481551703886879046618851241882015438002076087954949474245657826487951093527233997438445843825672435511121484127469923797655861212178738636621214871628922309891751613148154715977982839603127987290686595108702132140605356451956435774312337337105957967735747411943673689454364931145881369053433853120488869125683318874938988551970868203820891549888413976542846225508156913214626014001033361584908860327676579932918828823308985682991953311053449826912578135978731528714422113188716547583219153123037419416450917195655850799048137252393036480128077622097964910773986398267337812480418753495879816636175552828794098491627146327653342370737764684019161545063012151869874493484097227829088074584657574068140824735354203375374808207137355710850887905479813501693378244125866424534296361291274356100088898878279663697525025438860277320495824724864770764149264511273419689382718762568410730330505118398691704785623857681157472932264771722383074563205468932693663754634853286737773196373762252732971261544346001532351802221032886469478263390241649206295207719178621181199629223155859793513552402473853910984619033314460715471412290350745236778434075956537072314356336951233719501570157449425681149747697849752131381682279377384929759573312375684472291368491242650110175048957555733654641165957108967731855205897294742646308850881303995551358331115987081555413712586537781756324771336467126861546276680958588861345725862569150231118124271202778572691599350254940832306212623706377603193963642872819438771696592801895535596182496945692700605782364974638600100048314574618189886089125420156149760311128767140468741549621636610124714971633722567947891010890215193282832982426355717035119625792532372388045375688925462785282138911837288638247620846948519769635609981147371954895729016787253008416565556681667323583034694519236256060750032129614143344976891841202965673202641284472622735346679818228051872925682384610415940357337564236645284906809327511546651642184652211023682053049121407486157154994224245506462463235745665885712774877306193087344849169308366167486993497549952620432981948948723850130251081848486320428087177514239811170729243692036678233732652915831912727843018574643593465227514339849345886462373843845274548346255882659363955529169474029012537308793459266046361876279232482771954458118139833252335602384025374898932741376909734668489739993669699829675398723352728216844305098697564300957609152497768747567177717007153235815494312497571422190513567997685657024346399429675749287975679167556433655341691638593067932933703836321025439708137408228133504689539592932487847888676167435876792136054257271077198132774396904527853015442972778237797912922915470376140763914129722608973012111897541186931982784536693574388264764041774937322667807240289154633450263855296376936191296786581625294432405109497688269550676455312341133279933047184155968523818305153323794805777714393594392032848590769024860969639139045468336709622511859256245813153240178693900575844312712115451426318282313265113601455842262298637427336333444989022107605803229483567735639855971148955545679662445808571371133801154546159901454685893630300478872860790600302916644904102112425683055389679435956411527265115505533181036329368752943076811899236177517459443772938140894493340275685828261918745807205268923851468168551163759561496190805950704856903883128861193563769631730829775428074092737492411455183217416389096211755059152428526877470498732159048315380123677627517680412992188966812987831286701315501275749962459127385623258886651776597471775543262524764636918611947481874221013761761257421641704391847617146226932542059127966748775319365593077090741314986178068961655283026833468112726480753036318821914960726092882679731330198765977781194778902088249526173285986825897293846854977783979589313103105835244414818638397014652813516491914531621622218848355815961553997430176569174305195768621018332026477738337736478932601491182216230919755890599746881411471194874679259556372968209109263252887647111216616439573772021087912686474175647616207429324627626815728891516308429921655655967015324960486777076553035709283364869913746367451677824731347191732253384344167698713288746079883807224749271552223958292461871831695550491920847696569316746534815716441507921792742583072276193208407169223311386743153868154690441659659547988846258451503649283911505939802567281492321841934168761964418231625478242809374184621423616455828027889279446150355324210503551545828691591498278511314823285067254353806353615586927882585728186094298237906816933460803875512709867491706374536351478733819586422699219389168169426646492112438587522928338748133870776411888999591159700695179602126500802396685421513341311572999005236707936378713067236715916862274673186343714147215134473272165372088173130414669967518227942936517436893376602630841610260426899889257899863241725595993291959599660453651879433179385622618417920630583919932940709882801602311176450939715498298403448525949753139142501588259580426060942938648955976228217985846413378593173842164702478390605644837352807670991595242910415264873936283565482215567303105835617472918276145232135885425698273253939151067634499604872116082553967917519061838922768681740441916378777487267092619314999626722416403656739706572579605744842367915868646956418184353741304289877774611000529232787465421616851680788765934804942873144135795167870685439884323320358733953247237024711525087569282952341584235954429329975429279303589973773062294271398808488546763625248098843124404542817296757864577685796300163475498162698167306375164213953791627850905124634471684192721389786471297001344908379141943976322194983066267283701832121149975324717059256049471541965998731733126777324849510874173188154032219412511791851855230764834821785776634542867234469250916210356641656460957207224451869049134916029834087072735216599941181273140815515443533417767177139980636768368163821714811158606866582895083294442346095442275595323339899577446427072971586653998524469719718234013687332219231183104184239361332934883978615729317014544697652189530914355119677094425662414160189376454938421269699298789467498669951037485968656172344988595069695659678894711022690649745191668716327528893694765551428857111712645949248415747370279173599229473668476940792208641816705543254438187469833132749116545464584512932103718764878410954823376765353965803304999993845653605566624491141621895112514218415861918705469855235294599361158319584635399231240853145010171672917114551261289253482082566806054838616019615811341303028384987848873570359888208261029756587889247378284196810996084069768039382671897621899532479671846031335274254988335921928826416002649031034715766834954833739521233793263649435302248367379073019739513017829803596157287540199666958475442382760757537171173832397220952741287252303237154751912498926446266619824252964688372079045623756827097792632274455340749337673657889520110829668054833493228473047596311795651282171277589262388647050460725296482662630261680761424224711285469688227073666521027338663166607245577542829179179487479972608388632943904006837149707175829474626256495196051531067353934386933996469572520842092352048861473727011289792132482643198328150964949567595147726270582913576087789309136402266593144412739982631545643862353501303673083713545168849287890780948164868933953470562515409213408695927555630141273869565579551283170851418703840523507713666591911409144544216920574885798265771466376278819452980650024822167751941991156383807912992999858151562091615511244152351734353562215947758259476993043458271947473735675956858088379572877526477384873211000605449476186155463190931723669567869581959342119554655321918411986400301666392844998775305203384258771471954812375940073383180119983424380140745332587934868191018224942198221361273797162722279175729589944382581550769095117296593270511679872782199349866733151704536874143894175785922236814253704998698713269851513386455271344945040083170186378020052093325620597949580586927299377833362926426670767502297978113511437410391311273049102299036544559281737294365527433332708234344822480909528937299827115623130387751306387354669233683445157663546996622539571371376602739362333891244933638246561965813695024240279113073911733902003191392122196607387175382559326927927757717544246111474514143201938956023742989452208574407154749571839745106466805809251226448154722157234313575767693554142491794970524504546819276091164389637746064527758176249472976051696586637513669869154833019695793403991379668267256821463218218908578624765418402734905494756254506584151917105305964317943797281669115241347718402051244714967718573166734729119328811647734178456993734932121238697257616967287564044618629730149886216975982003303633859465545608777652363299133686253545468712713171623331126805441124018399442095776777187468958237571744414183417829192921374066150231940763217347764447298879149175570135383340617980156155453315504545492658521461377756783726223068605353430224144664067259451859029799421299296096816850275258718418082640954718282490596282779336265999391255686262958865409499243563168399771595888334845149602324307356979331437679052709365645141071113357294083529275424358179184675668226423941380277999047727018349494495232265945293304751881286115186794786871326256180400183344643642518910497905819929150964596976515689221786542562780984634424511662588150619949883987520287330268144851932981813821029603705241423903307409865455307387395117421968984335392170746373426296060688593524498843652744676274220584588910687378282975262555762154100497391707525612499779860905672322414744527878431798759462731640696811641462664513398691303125283529746518981965428159298542321423356095502497214191335252227396160780635443010533445325912118363549181477304784442292713602914517665344576933506896636121051787336342631448272659248093359072835828547396650188650275743769233608008614717723433285893714149567661035832134986835142966239646084598448354873976854277861969227147791458734097946220292110643972163725234469736586174489231713779646685864057705775874389356806373706302223928434212731329583577486991621545826483478477792299695019052577782589694585462688493919387011665176483259670299239547295752163237483836685864938766788871492369807464749953807734129749322691676066956850743128397386970846921318384654257647601635416561079667104293412992234554671523185743236558241057515665731541636181714792872056099616879414441082360639819812790764012059528445068850231958442607333462984604893462641785342141787740785678223339518993199682605504314784831914921109036036025723559886991878064745612699317931528616413824591797570290294610210604353495197113995497339677605222509426113997776269106498689296665463757871368074997964169108497067465582609952535143895682999928208474193981759260864181888822412229413392860487173364697658283288711227594548479167733718696674482266121167861389292837596609058906007547699433492994696712951925216335304521957466500407598233592390604457568221618504887151385709645111165938837315161255762016696122427499246143405998688883856992371494924485912279615446315752645146233646224864653530821743990421037718083675562647850996119716725580289678916348384428518476312936627930276686499377869147136089551688895384139115499155674962171852197664364328288643478465320989067374536595939581334395744857529111959669728535835488999412215180329314361725620771729639199282799186447433863530530471933849378189908503063616011123079993026849287223036349721316716016418648661718396362155153873508320958037717947759499586124824794958371764839664668075748250846976205403190940700632729467627365205125359833426476664175574832899913693642410389126775552401438337421555248746466377299319477657023353826872367425032170085157678051174326746487072259636891412657426884982888556749081278966062310162895986599387162925354306427357663718465221673161749878248676481906347842430578522113055642579683064784849514302784888125524485767056847557346456917256179491816322616926308111403644449111070051882545963650682270104678209566374398548787502289164999269929943859945481662315453570123067230657510005984353241099639971083164256134163506657006857212430918965047283675379574594172658814629244707328999057598664818912579155072337584716571458092122833212271975985610776138823247203810384724372246494566657836394558745379185345187524549905287121366517929722155499573184451961487612096371468803991398964439931762710114673086549367576324761577453037882386246781528562108749544567571662796988733316437775364758141421396230951270612842793128946631554795362471862362480879736531728283972879249794424592527657413843984616712634863106849524408251984076053491844668173312366619760266370774631079376434497979589150110541673425904255195682457529305924433255845433387454831697388126223137680682464927741852910955633873456755475387118530376888647241843253529368923684869221192569942905951269608676554928782206868474983701431437786073663589272367935797265408908723725551253943104675906076689003988141836756356658829811385616432893686112815673697357655766184605653713198359777518967888918369950547241799449981815926815848174964974036669892343036814896912716991164542240020774397850287071955880335885293684614685777654731233337415275824685107282544504997498953550253898797468311450791498149460985984520144130222408510533632331833730279642562241900243787776785805066289688900671340697996158153531544729378694231502336921151821603542168258244723968591705255761067366350457340884098493178884694040831587792967352654982575349422393276391185863862350442226761935370624308157772391949433725553488993594068692066138568186329003973102648279908192069731440859031745654294588139294113601388363955775392276496613926675344807092634254714245832215182369405133724980652891370639993332911756553427668346642139692468418814926113578498281238243357669972577436728317244232023375154438221576094862081237281293605864554267952451092096322716225761702316743238988298884367524086510399091513597753257883377857603202276876132916684377255898445567393764600865735270378850308585298938846334259532960109187164799327885128061393777413458914703438927228259081859338847726914564526795585711428418635597527646690798656176874755855888158052710711760443948281048846680527433938730787720087986157062543832343369748833504429527269061627247632528195599297589325738805957951125255075522812637637969085623899247465218843999942540392651421444922131627220888451888694088115267961371877788794126523793111022463296653557787182286386329231727178786573525931876439595479017333567734895450855515751594754461912874899760406706531527286283687678713072769999517116382959795233233213224891261186955912905505406248364883725935526398683492669327178697988639896788784165336531438547274782417638562911766284645563818079988781641328645796524611019324766592393423651584927972230338480037720186857195049197658052163940366818896804997568138636338148969368813537388357726487965124490618762466974880306364518852410841884383904247344379332603016340714951051340972984180669792704217126109469762913524585924742673943815330980891269364180534214525871366455471287783646523100133914390490913393356048853801162586679413062827182769363461170910775573035694871463118696178104327721452373619883998868558069522862189826198251617692645180825994716847802242977570518463731295359146548978966061324740738555520865656644087059486960927668169855882457602427802306284871003043696009315419717727432355865673469134930953387693354956715383786819259227554215849541598430983793641105293320160292147610621368743776561922669408444692239399957459652338973015091939711421218633329880592915633594022966281442985599220545207391664385258650169892044650848950637812916651320671867125750260702713446558282369482652309807197868202248967856756339711119560175425822921633486669574888137091368475552713837646381968298575515832350876282407632402100031093167717225331372158970725483984861339375429816905541075292094141713968289407088198742912832222411524367973546254731798305417672562480622867916725213406517478271821958959555539908919253937942453419413930733631311844889639117095078113541673877987432509065206345771368088273798679562953025036179208047595736576895193725692446231443641354687069194597571222364589577093167651811625512798634458935383831426317591796646765746210422155688416151335936452509146141792363689155813487976016877974756527367919249689282741782888547132825054175069731866518013460040214621590232377330656362579151110140854644913421445477592741832345153689374273310649939545762318330065075313661510998655808932601301729824281515873984166243837413105518392804258591331382069127040754276402493333862318157663683984833988993071168485823663170398767664831267108694722738728171678443974342315750431553486338784832925229707154761359422419995920696482015147478946945177447545382616639449984112698029650958241673707460456149687759136487445783969785021426977787916824193620673242756785288885792882838752870875777210510148968650427889909806203645926653452692546705725708324910100051755101222907714256691451986208605317155492983417781436970893457100091689241436926447628447575138167873441095129656606399776611372639811086315753444573339028871867151331374833926498554163669834519144250701084872958579447817226359568715930744976197972632547475261441458513832161857527944863124544412349875702058723992169454997575965367102771382513118779859372744968721901488268033037627818419802406981685093012409802288686011033280680537326299151118037732051889432806386521886476292133988597274087484434360769459287137018549744437025596140438468726280662386662203123497232399534563755082765532657341482027530031535019743334653692710148318663635844964232919008793242838425785841196086446072028347169497532325947492514016664512589140224310001594794589792692802535230071879523051833509148447625357202413296668696176311276301326277979862129621357169012176757995263870465714878412121925026389714839429673893794685393475969320363461763489626529492568058591749924093771511312892482218622154850871677333851302181705435227431997533164597093495161445616442621182112968304607708482672291985505038362532018967225852344870430658998798739542886273126967667616142854253758508450471989432701893958065364310686772813276203611078577304251393309786597497038033591971336502116177574310005264181954812322793013795465277330179389170530276185974535557836864168756630379266779441303425797169219892179266358635534499230058826899790958373018650586718743797199324599248326025838317919294730668682172188167838562604571923636448478598112352375544490447601312565522627284688848847984468792739504166504431357673542474357555158271369038002068334328979823032445276617621312761206711392942242906969954189696475258580512207497881824141615886369344887998781443898996074716619163236091174937867744921278052395149366977783279803018932043272384207873655977115559586886425972974195221396691332149098557992078401086159138247075948411826069852962033456744169936206142489697571364813624501438186988580413768436388469755598664085523995254956680413741997325942973773222288792448995707287209431422454784589011721910009784919890152090693642174327185255269826962946282841456558573256927485785054331097026247484928575471521916066796962216291071844446252910520212872171699892963945312721068466378094115696999364832545564689229465682327898311663452445231924218023731278033645374410044995949266662865233471964488633177189601264073153746008397898793713133713529128466515098120952693239799832140139942735806317128959735101453211777229810187964644308919816728442400191316833969721428176427765924668162155873436069165175276421724066777373246115449185066475449930173592732968436496686046899669324324522478209212336397493534035527894625049597194137561664322114725975933844323398357597247635991257472934242451420685255606968503159553239757568283553168447444525116978196448756929996294198167098058344135520899157984622344119892177638739845273499047791922939926898222817726673451649280129981213265774861857319942367385574802908657932125364188684656345948568958387202442634518859164991159874910481239204559971873453191803128425177418223511974950796253244796128253770246761209890527678481913775336837927835190485187384592905762891203906857024341946563701794757442584335222779651879365527154915405578265425771361903252733525286606727359479619978091556879199369852898537871055112560396121328734841539453374921991781071866671132537974596623832014557551156882239879157972220097866163060570728119163369474912297140884288477230621445403669053221862759898428945611391628844666860353334325613611727688449313189492085381717816082128383218095095828774826017065905633869572145941496436994388484312848054431594016645395711771367536296710420338133846673115727027616089133725992501465761405393284948259581402203435453601805939945222584418041773461091476716801719926883498877435531305135588914106332824321785827284823905523192534579572206509124693872315617826099568776028804454633167474342564114493316734661429643526354669990720234317662637539953849722758166730381685371853545251701580490072718694859416448352687329210006575583072001276548428307963702235258398566272709162158626078456387673654850833484655763218192299692992599176186410514202642503803602688955629232589091314991072950950039171256802251503367652961287911472366227542528955958167158576445986341236481311575851989515666696209155244932819724891166667842245930798330615873328111486811425189656120874340131453772141717273693594488811275322413329175643985494423986584507465384241122148764169722123643556578469259528447981780118190540578520858703204875681611743198452777242614664778560961714256670531269474378787697414966256690770051068778629798330744146152456994236176657683920167391372182820252886701136647179586481797244729224795390115757271580788420071834164625162799250930487935621098646820019983951678228751805267827632537858647698487485410240911343143849718444915941835814591986453492726873137668426489721771279727433825055019181717246264772227388488275091351225533130894381649658873482585948190117309124475460419161000233292671519635697214371109768353146733629032942438784492185823922172031943810372626811200961396551924673718353873874101652159693082123976539151436958962723578784951104088843862380590466778846043460549536164824777454165451486833667225118568635220183537221694274725032843245298899586845158780610003887399771466691595757139630268437110540748567323178301563887919475119526576523169182830492240338188206861362182846906625859706307314335718273495854338647370821248632042247942578455225964623355055779145253162436879629581670975859220068128729614163826817356128548975153715538902877453189430587617533833958157612837309595211899422224229553787707045476968775531689589823819364242041758201160588753080120328048672563454985465337172922262404470497301503198210427573496281618241643989696608109113510861121690407677217935591488773213653115299496339690398291931748586592084005425361147231609245953218429526302216809328896662869638738433279993765758968419354770939918555286803901946288472204920417767324357087754927028519682309018686423291285728315287592813563497402620597971241206470335789224731295968293105552170568348972390341197862515632439577926978677776485477236613689104238633849846223492692204235800904626901815885113269419434328593159396124663534448844420998844110867445374449628549803660559983256757478172583048486643080230440580975621314829422511220091552919197115899997508568388286393669808689318999119966333312091311495359475813129111999974311263841379516991059514918339645876361836632631862344781221453855360111588553859521573807948302299986677982516286862031603375108256637157138775159764106734657426388208999336869915788804140777484640518862586030519332321962722035768085592225396605648524119423221193635916300986857964114316802647616396091311781475541787164795249406275469402165614639418507687985827384842028790978729317377332415672987868022849978056777916881168082638432541904703961449947014916413357546051193979324511825483434906597349483951496734743523134881517169221317639373689353515546193775805892383241156151526355826566496353107085626323374988096809230620586892223463379045250086992724729683473135210317844211409059862667029952633908156368051933325566232880762242307896627531244537561194318325931339282911618312304555483754160219020961844722253103494779968120547080510826233447293446323044465145589321724561799075356242591513339765229314286211951132731669257191198251445740961947964038266136732532320305634503417680979981425640463710351108979154613878433433207918198701965921217471761423769944363401942447597682971527236739342445712429617227684602334128213734733425709951457711688675082619169252527463467241402175307978768263374783077338335898319833287423480385322527020146457587116499387247112366891037729462910744368735722796206995993375902143935947801847150415667903758152279137969534490188307992096757438177064431679867656454220276439542463141885648515225586747415753594054380587797604836183961933158721710958493456772071336719526619887538699982880451691125786344914973746811381564288972927036337572812988517862049627057876450866257554966918950185267878598171047219328095082543849176933389681862883264454421174024994399095484344852755902947023806461545725115374543507106278697402448553273933886447358884009352728063315048868646980807783944845271187373545034779446686225223737171067215451828265656338849898222346273892589395312863877355858113126451905967675539199500892416438753134622951360346308265621324773852066394672882631861880040290647452118103330984767527901965746336641859463894866758323226539138141131988370226786671201937628723476528676201962402175253910199652804349172629706775608668273050299739399750741502682112529983959211868836254689843878884219925579534586832984078629842459681865895392398906043151336981509395065743344519996680733425485678198604221922727995553122216439415814771257078361373353376383918692750362194171793664626222542675612792722208858491621979878108864996332136637761868270777549024923519293436473299931519903527675743082014789892088169841634381370553693386188877778426258692759768540102329608552118550106761421414918917514781443242764348947815292728416894085343311449353412522692351938371338929743541605627829622951779486903352189296995292882446962213726023474538698373293316047855927735889848166778792782553455795956227395896777829703551521657287203071286377551271479742959406041114001459313358191327030964459077796845089894184677916730639437165243114985769612382718892545230293854478779025739233696833082992862775787875875868931196155870976709816064303534934586331311349492231979402059891719435795156241202085339426841738834734225346671947818782943012066836222893061256092228451305879370227348614161187535938596366257577565876620214210181584824436884244940172784318387817274766885570577145956390325763434889380531890505749624530203358516628101798811622575372475815953173693048079361680350940242037345247568841654136530836140190542639122849216011045289381255978861843801133634639012903917926654995328402853733438804714546076294994877812606533993382992680530547070445962187181468744862231416750718822574862517312913255787847672287458283592212483035596024719668360374288869929481394367544214351038118788651869840342637714906714682421456362137162783765393350330515294760588010094416135550131767487868221725211172710335985318358148959373373119964479568263232208822796970905662738405436234393006261418426045296176446979704931525710193616110781728688246304327055548729248495198765483061615429586354676493829028639723968446271362136651771566775068219932323441077022449357131122629296819767908110938548447781208542192706335291192281321161456426550318694778519663926642788899276465786346533795841839549492107259165941229964731281870883038180164162778720182764248895425558626672678560763763424798639778381298337081464146556346552372367193922554699918808959606185981918262539472156268125114506685783523428616625893384248588051199346666697990382571833899128017867876606207202268635604285515626578507228303207152673935725005850192775459276549404944295144163965251426731484971779082547328759765871295276427394526921654559177841133773340578315185804111586987141559395674782639585529657246331761056207219792843708751412607238087919354822591637765664817644114310117797487925525989463523752695940253114781518834748079776736203505732961848359254969056556586668303637885706993965012701454373443492462494202845218334843789133995106593321537622913957570643805345592571720638209665300307626872598562744236200265603257265552463190498506936593547857805191285536858214918556140742360450312689551081121561191169846835771665275889270343107159515114606485799231268948792963451259727645222780696750186851449934741476281889816520697428415944575831183285254842493119925852866554322176468780885282831819364787315559965689231704427384908387858045134332022595098469869484573530126137132461388740866540155535919612796929554442835588690700171849286601711404153185417396939636144146814154363721313623461137331083162197879289238720863191642956706803693340676544157695170479409402234325399724215957237594681870239906884012350685530378381117781197745769746132331148289517045942739111006477213825130217244734441191815133520658499624455368360711710618132570334593692689372914112733835068659222515077329709107825935201442871966377455524957754238196839154058382715856382024698515041726090263838684858362756131671411585538171990454841159578505994776517066119117205576859846891807025621408274927072274065804198265647135939828753695311728122658148136695864215618931057674908414743045658884684227311821016557827727484912816886650694374149765244319401501115554345239984486106906258231131767955897729809197337606785689289489966453754295926441643042369888914833829419943702018481507995164899927582486796036275127156811350214318612312646982717920578846470267737591184863271321976443215922762178237222156183639363662890322300459713348255837549465766299157409792187296256380852448732845698520791218848917015468423225793270722927129430437350222649166868341412703476164877211505859473867008273604906308952659902819249664764574625852083484567621958332657494774324268331345078953507106969514477867681558514711441354603302541934708122292179311816932888598801427432976171233088593397416209388428956048034749249124024834395102926114716488831232338458847137111163813605623532748647243678479836814670403999166103281859803391499600970746297987481348321382572686887755076993086130333699491831575396924281515413435577914967086726897496571937242727695179176445385071907703585766147387716646825582447841281176331258828252046946134286381918282033734612019582769474139887464811523284739763432267692313803100950408637895326108680761671187421143949105737861526587353219387022272875818535510853959867730352328999625941179207932092392034459747557863622347105968815348723885849938331350323286210810598601421849310923292655355647527266059278934999035757426585152352761555155384589293157749289812699561128538034399127821370520926870912100067560821873842760717566364514247163847184167528161941742393391201024032944576486033598802530344181591551313672916755456991972179704942709839692647578277596531063769669572348976002258403768082899538327667773919383221154119388112562695336775173613417515845181447143239407544516591657543531582056094583361435494884246252467032543465817051887114089463929693011319413196687891776282738164861578991136568899468666435833053668553532714544274421859780744724299786456345849845629844121717200462143471415287092511817117050685445487238149933776325854660842613359919273659202572794424436053089858299916432673151352391848847839251997235469468538142886417087874752937813636454798867679768462148468598804426767436760145685658150211523061868641920535098487720926430973870690157362714131232568048722459826457992885944057246140414031944251371694840888290369982364162211240235744745074663256731000852112702419631360993544326457236968313190719085891964294197815736921352295121522393077141056546137105496207871813075142919492622529776449286875491653181717854348157312562324555242524692323726358224195293633402130269533450981287915525614160084453868795379583757578245794295362902993696545780961975714357236937915883177973409364797863871816985230557132921718583932161407856225534965508444574081742063329104652409852243281402679712321727769597097255034242066696564125275947571114936858467437791638047754424095133584498911123597135111335466355203201470879445916507341616520858289206131931354830401134712675863935473733776436268961399577216191518297541324773925152429561107898467185658935147219274707345973975049499299394416433411013287363878515208352545904539621516887193804191539172284236173211431991791272489684176776880819697654120258949549782948089418183972972338763392523586675266410653621470152291303559696646913301551799535331189847213715548428773174428121021464233463267413997075981408227390531730520541563357218436997117976617795046044331248605367589043018019561652012236512912537977536085915768197667015847665510005277859859707959103924284133642734580779163999187112884589334475612899991879614986119763328283058125285403179484932816236742223247286738378935890362802100028633096546695146598008856304176746626599854588619552993754877595108979648486732557815297634805377867884499355619887558893761561742524302219926485428835331183792302472125983796273113711958273359621279411656287632097795248749748319504733562187988506658085673938543728064801920195018691577657100077632191997901474044868435212905861357550388147789932816834276325986236201350266218859530577437815431165952406949006215113037620623627245992405104566998854697297708234186962615780203470156829386572773920265632056411328435864525299450224795764852176826581676295851411086135537548911359444167733043232525528768573885738841698367463361789496279189425191323637373622851487661339924488931786158175558013663495076913673510467764765986826465493295182845277803375826048719359757008891347072389657476295862735175727487574851503500290300238384372873252110579811791254113724370580057832517760795995575429424435301000848073117146762929212515498668450634420750374922892308898592592064473981587272935306872821022098881292863017851623954258157388139899967304969745547388397295417080265981015216662616428148472293200371689388809709945277544608144184382613421012228476009963196700571916767694699402465435609372479939972213234553220120809727453499390483264654475024157561522962153251143768811557072037713619287635726412849373279674805563255812179709407596589814243981973595446887871831647263466584065961892670995130107402708486371234098473454074669274002164445693073615129649237016098416024740985421715806590346515803452924751509803869453785406338884604994111705641663589156748223269626451734189748672123607938471450498216616141777403639677033124435239612658169570379684626695699974977361020976142626195869294343386865524892225432474029775111979533161160545681903925137362667443968527684762792571376358393479144624971763408532393388969117932114709745436117121349283740489067031917792484860968751676844978834591307818291368121679495149471472480235127972988143032610649363574435697730645354287078820458603295