729454517423131565738173030712616882124104227964736610997708667048789234582052156132340130551910761287886330697221214454783938438396617877514067183477749136039212950072068262934255172335747392181318978623930775180944326836093586352431849996364566975424945892858722237183297267166550467687048169005909737951844420833254644327488153739289982632711074800927414528292482285946959891857020558580604179450709626001422897198714431677762558207849762171639359465546891936267893885016444373725631537553136352772265243833635654163989950687809500826976058422750221994330724459472641385746846677024996029996089033110938744591306346559250195444753336498073510645512947430826070943724294780030796145237871842019826810600221056305617961566336413600653795503848815495641548317679342079082507384659459321370958326748462589519806537569506501261159543453675147032422089878468335756975586639869454777547557630649502130630943218865550660208786910213679622904762562034584376392239188862297488416008038193775125563606053839227227344487861259343479345365251980820197924540297994723698487053131458558944281365444561273987362247045948177881383446639483803299280117488630700642376910316640924107323817477211292786910221503747262721121909979339511037247851558603915054068582880050753264886559327431537660518420832288175032895524237435444167284910313448959371065064457366929095498213750073814578213095214162523878099155536065073960526568903235399063764363536157701872574937558563288347291608088308661828990917773194455538526478637075222778220312268073241787107375292622308078808756912374137507843908895332468315833467492960810906348852311711026690315531643768863355596070820186959334732536094885706052019123489828808576804514271102823173689008808701653711666446647960905492742581880211682152916934654781917782435306650724415924363795664571333562878404685928634003244423025629539583909773691022174517508889159040898640478003491191709696054983863131462449593648891125978308939981117978259387366070616556733050704844763698878691898030755126900882448074888479604733313503658447900098289205206396955639692839957988344992002129400373186763054884998266545110171415396968827711567606146229661219134299755824199397934910457340843070209058182320873665864599099087818544775353717083354883119163137788250482722426437471653717981541272995342933977143461201192777307700437249653039946581765477043290900691629730391361381778752554611300827696418479917964047996750406030154442395201388744723678086548329027284653008635280414093853754214346245073030379693273433353705086886901303297346581268539017370147938682553310937752083194669550675868015812580246806406705541930897413879318192469576286575108243287538028623612719595254441948862326422649515634402300527619972906368061010056793764670395013403179594650575376783373566653598746004646167981803497854566916544428106708005690033641285751931239624225053795111226940849726842328800521360519603899213485550649269620672137011365980349104874621947394877620538908472192867823716992065684699487176980359129106360368637669222439338707913182280158783143114001620578220373677719729911462451326417975780568755810049054907076620483568993345428518831982452593870374845961030542193563017488954469947357273529449604102343237040974484353718014598022429021725232739519373349477524400552791342036147821792445785694824554687459798202171419340318672980332446158912587766907278063824516756534195668611359148983223602154441004906865739404039973165622157035698065492657877212013528431526487613612307611161739358533721748727035556756194153836385593681766930267458433271176824732384234839858141148630724822878846436591154059936218404214078247976699750941520045131730504102236694989474480676676553703420027487660694728400232283422352108100034929660114272625710839886173784414405862319314782284368264490630759500401245652553816439324318098731850005854345552731882941198540189843047926788131219593695958973359542725005099376317838228795788397086394738733391422489043764865095651441194059411847607362386125717141885151718521231583479436681726207926616932576089924224743139312075205595488974971410965260984336264778886440227071883641292510022740127923655109203560190910286827578245461436170334197273276345219183040403871480280881601245332765249954100465662311831723984360399114039162253633339980840784135563634438552076642999663136210167674394291886852707295392162860746853364632285461211434472892860584939545378177238199172523780495091002456299475302100555213251421205144962648245995713415108259211768972058781408053156000825477078470613327708367473896874809202625211912150099032557545618819892155303705880900820467502670855066102555757232538695513973560160745664754666496553822384589023588798844862985619057414348991804172657523936027515018780790039846405953727338218134878774830447666649465644826203189303384329537170583322480360981296348976423422378504338635772534449264803188494676754570835616699026913761627169874740243342329292997479551659291544477033300281364746373236044212428353281697629158445476302935255073827912305750368051667790573898486530662639650283612134316890572408460973958623448606093269005368325607259061124432766591991529108067885837936729407398500907374523018340162179128547455519391043479161479470585625526938825637441393481396162208208002856752099506478189764361620627186255061724150757282928619213607226099270130831561698608309699608855194743449581508748933038275989828983460862229953885715340892577570215794419424403154260005683582120749651672586377276298603765050015290648458648520416594346453470381316342704516884347989943814392229623633600755801461759937180459091137753538611933428823040999593863703298644926676339760876451353868728597702235914832241329259236543358878072601236155214539636234182892604702871284578862769336725038357470727376898522818524888804692059097012939937529241306141387573885778857647852609211917765816168217076194624882170355114984935515147914645382810985509381401075429959332858626510785376084311403430110857199633592445092076133338161871604504648111129230436535109111677704358365514013490266066763644961142030511698674614039368976683748998506488247654379648497944966612631516681565335587212219136268914402794373941479369515626745450947898175962937898796992760096081398997733445164105968019156963825890744681249737019231682310662646210277958039193521565052767673148074850275125554052321211807346090100109980850826847542528360703962251499845419084745213922654229028065741959746730709909339512783539194158400087805232354915244254193435506138761324432225229904411585501606673291466806287221991415175940086986610972634249484701583361635266034262097518604608830217545016610376259578014327469520751175238490980620343584741613483767201284995294409489882234765176743287509621841394893914120159559098577055066786966111717971900367701388094777608861735756994370461214245997899286080404985413333183012719625091674004694844989375811644058401776144922842368216167332622247667160474615404621336000319713532043930777364448353301940720237647621795573790485849745385607991363196986388484702402175398233182253840664055283388605195690359012738810265952508016898981308574114338295081403608528524846964068910329547793650397974801514228428332817295392507571029565426067118263537270436006021056909130370907316666602963329791405061939580488216058650765809906284929374353693936449181580086933469238843470037953264138142073522869879539260216495682288502631521549473966446062846465789916059627546523191872824275789122385835631773995325376368695433455457095675569280312632975948121338526047009057447712327168771089389488904495946740372812176732666715788386639434430425306393863689506922053339722947406575822712087895300158667046904038949998264078825823009761212108170866889990497079564537709895739828788985881980098477706756619641541216714016830786029574449904294690161130707470606569881384613189380419535904328762304598732804852857503230218533646610105549515167256744536983686949565066694004673106294497375027481179373892084283116505901040900370157889768970178480534081841203821008278066514494891158010441854099253377486993433136077581845754636590177814349470275755190653969169834513019218625958957963358943823959973456100561242897477555671349920146363402402664275055247186176603563539707084882658732121600269521440861161379144806129644784810430528697925920493618771550842493848202381581246792672711207984951719966535484384478343716252272772013313652785971161079030592590046158657526407595720819648587792710267380086364635762526325440096935364300777247182112656543539059888895313597061393603373793323507917362977432276826926040821036668794285409607162088545697739209321087827282907495692911474340445383446900872737536557504705350239493106173469898524564725314960279583021243167243321371839919185635550377927690570754528563899351748040989192093842157183335343691630448594018872567710901438217113697712694693094513972629621946535115873983242550303763989500022610773557225476314605858812194446242547699908501201821372576937601584380170865168283860946881314710765899225007613476535628095788981867096659682681117320819429236838700674358253983187591680573468402103753930997377676766672048356308277121107792242187043406327041912690795571307114320487309655295578918324967582749676031356468360417264650724401221827615337954351509501020312288649535540833552764643370667175941250965432521841411221293969002142906013542742380964486014815690106425672325792437782088379424502226455855977479243142641774582573982933994543482078187756497032148765803904044812674576485531913130564505086953576054132822868392826101522503203080869542839330378767656188974372315445550564926333405853514428428156637379108770833272066814470518010413406012550062653882372678004904517633764376480531131082789863428384311190073678142790915978698244723585275797892121471007309648242461748201125609382630158099784943566137673654837383925143216446196421715287643791073617961729145952022201450028099531053718982314425534949669581905311694940750169502820096128616463392214918256897309677325462080639664389315371516413156119452037873670093497479121821844449060931623835728183421763824345486243662706953759821857157001756302863650786924967951269076640042904743107497863901037941311175450352090650515570220229690048310191841212536698196795596173326964457063315879159262497207739017224603044005657591439192043137215015586847269529669059307126908739932443055369434803196767731179060604260403392201254265996552398995737725728951957037095912201542238287347405493349522528892025261363681732754868587916588210768344455775118644577392249821506520748996658386181005249774004541180571561031762907679202907962324164547043502588557663653337629175802919021493455731632517501714989585165177001287566019897911681833200591046147521715639617936121198128879053098972899153834788961790702361219859360880448570296850392498770201660977127476819606562218564815106766021591570696250404132966547584503350009577769804903787491527699860650796453756250739810908271873243079426567166839223343557016459648293808920133995259596389869582461132318882578280302543569707452492645208648285928283920977248389577890930766393190107347255227083305407205451893699426910114019932141352241804648172564095676948114483519266155551513802234378964089613439886385689303948389468138010552694619396119661223497238994520865467130126916823307632590667847047371686023745403660686677544209339202038612857748580101450298316993440528138133196026210176391516510453496398214547718782173251378167878785483180600769647686244460937310969455496073322129633387868546733690723998924669904224536388661180115854532470635766111618192684988000879138733517747069051842191746080743583151306154422010214744822079602742677883280303411797085192220492502002546089286832396192011251124169739024315880495175646414156010989106156728044203738540500819945285156571040277942200877362291528596683327292911975134368379851897876478067937319320967225935451376610652993380325291096796678777977863492828836191413323608211635667355574251668612756630431574277799170952021150609671596103147440808526316659605323917401748667236242330299784360401762666129718967417629813342386818213685762032810949698190041436191763624136585865657919497409621848060104474583264104959688007972587988862826142719306551400558958753541918828700255524486528422686003731296841035937385039056163192429779632984014825285012586609862414981514707895322487489408937195653405438639866478309910328295073132363063680185764120420606067482673684279618963352113591079133346467830135933069223727107431125394273308520633437734969091591909137572335097558164539118464692163520798683091558123782379343620215545606648782169709343210946666606284376824487157787220341564561407733982069983297042202566608105002885415458767393047188800072451325822788787198886831720597635334274014328570302335325780394307165355578859927776631540739253864386846471975513712480285729615621615044805092106074575285669841780107681112979246242774493760025181749114900445401616864804637476334847928502487540636716412987586397353260277437295319318990581661284693864867296725887636188835236834348285508319130920466880574148788031720620650813179882214994477062049118016090783728370282326183873521205613575443405935569222883991011509089179853216875766986747678256895512210184252974170378491578216928012731590303644833172479240771466141041231311340923954302954366768299331003096579086626693227841334648297615019405295300948494591386408868078442296644072211417615796303866825480848565825155995317788136671804929822089115223001001639440746798335547458584183649387524638718923540316746917031197039352450940623974834926600591981633080722119730489416392883922988731659230105914725963971309592567858658439720080341681232370522869448916338899314063138098974761277203276781832293036518578952159537464476612290592787389794452326502559438603010630009773896954844815793544714346624051016249161045417024630567206501960589350521918317907752991293372191940304186354181565731490294523926085246963454611757903490806265814079054620200168004110031415977901966455631109249109822651032837907723022619923392247665163294340083940288459597303721048721531586842628880998474325712198021377946798117515528975416349561263129765951769330715893558853977011644815516125933295060192799699107699332314960415589798793119905956375787053680327734379411593606864912567358644840622105062318040005286199332319635156844686058205015424686900063768593409265879060392312119065537797020214058557788785526195095708760129578966835501742835474574460444914775264257259397678212487929546994896009779872624859128952974677867287689118344836596718643142330288180012115891416685091055865670375869434719856302524278027975578028943193927480838426829042288367105253855317503853389844026290929572309998148315996581742572108311305817643222927281938678829584541182756259500202094934589174525856083447191993762082516456772378863322512173317488413218663995096666386747235191459884649680729007726812582360321780546763236977822973011665092139102216040453579385045356473308559073620771651032365828130890968601579118712553569533222787535794012928935579817375408957648285730966163011968222392975211342036969257874947307576205098303425257305429287277988357363485925029701958634412321896289701480342575562925554763816844278345877449806213937629124192581653836560821975248038143119180352765469041124417525922275164808036456105564256278072802484669851039102287566975217206729632572315128294058592334735797095039182324873570460536990206868266024098388808412868178967267139560914105605870683295904058085656298252956332519379504588399502349595937964316217757384104711205529738473499421813698254800981372398036358002214726618749150509170660379914957975155827674122826074284480657038389655377622472760452669290772224372154843218276532097000667892299851827536782272804042978485451431203390998107941611741572310511795169210239859525946618537804763079148962945504762695236289510627304165128781997395440301223151094019181597873538749004065787075688837642902860296831114806006908743584443603724369513971012647194151982595219670557998552377670375469045937128754673250544991430152846198138848769283648093360199069282982463381654608295469829466669961247466154792430210538321421918688851056047142899473286559355136736754221097081605770088783598284691359803985738652377858685941356088592518295070113531199334617445983633534459868454530897282432870059479731291359892747180137729377777405940979132417672072512826579709817415425579031696003038919307226395890116592301595917278646585345255623759833026221374296191906932560223713847728803068340985038786704115794583916526990625976692232550920945244716980041329486463011315561609213502233183663017514817710071400309057606962345399637860797000773878685191968284395874742519216571060530195847842220340776572536712544312591510585073288110558912566562353114860438724589469942581087600192393373835578447799365266173596070695176914423690234203796064595365162781800199101229518135250304343287202579406155184649823324021344588480245133874193169506615986304670819026942833236949678735281555773095620777162315598084768758404870559544047624139967662992374880700619454025480165921351816277993399613089546737738298524251711428071033806279544089710625633278582488920143002027866712586301569446566407554190574081413989216758313534367698939402040016485268729283661981140486882753648792564255633507603917662006759455363592001110562609902423838979641963790302561034470149784325551507526834099254384585241897567393518486705525352216055076073349471159403084886310342679211323985837248523250806806727783020257827329601010127247427445933038923611141708686274343464673966825185620778583054508267915551959548452550690353121235384259287905065039046275578309748241627293638782013328317902650541444851181118399201344894045935436121248570173230294119446448708859454514600444232374750503123908466290315482185087321172143742368269991644346689769002774529443284348283613913291882534021947407255421671789364705671551047256336901284456983460415233358109422544671673886875130317512288067966170030962718990740917008424224028423382742323855739863818739606275680253550391970376047091927230117135323931997771002366116798533146512601907832688385893857907386429424067816135135518342463867882741763628391799955745377648893157607115288566749925472167292229641428937153730939113360299318282289184277722186471899599151672852141881165830300128594498100581178902374270435902867762013386691228523069086424765667703184948855476395058361545215705182640489453266406914413912541794895445277887828003550441575680002438796253723535269130552179022464898959476155056906830872732493325157744044322028692634699595150055766924049587275398103458469209283823459061600440630302383278646491484921452262074766411283278433301942113307184014079948279372575423321010264745487099198667337411105835453223542440671798501498291375707093726207470079666186134237514181807148299703339606337166497250425480971451118202677453647664386917824483976889215035728804710909627453925277750704171232985085567043341952636338973567646210194448547636534526312383267672459741794913857088904889856221292480657932325889583059810289719608720862310130899468405843497498429876043299079564372514544256773278430656800910665502614047306405547255245821540329851563899990088061108783520912000757645090765624405019487205227985520919213210859933367766531876051326375051274208484437071715270227474477997792517506819422907808556432803025285915473012488011363020883903152625736744129439577201193262537404163017283756632843158356612377948430347808008530836887314647426079847546685641542227135153455823957232295444476655713136142506603343020796297390182193563523775642970322982853466460466227285391454127782953120143433692105032086028487724515094526676263148031678710554248307644141428715296148646671183329778737196400838747659264160043128504785394706934770406986345580585531222552066180521832107312277224610229732369615740966354510062082226424413288712404051288488912901148494536318764362230943924097808201255425828803604639289238626356340391885348776640408569350827272126155354689896047729622205266500465282678991451598573358101862269229093274831705677609027917074316997956571546686754580543995001466686880444894477382977315925594215590292480075347692763858177850365194531541411426396163654052985762014827122428629941757302702134525920769225722772732735186608451184824588086226697724588472929349327897869674055054681897090995221260857036324875551860785708433208585351404152391291755888242240211763571734744537723942616281989658593006958561937981497860705981915058214732882536221366680722723660073192873207297472821610542783586292743612154234114559169974023795768184327711276307349345362115294352208236958195677673913999381116338121660936078832965776092132777697868758743150325950061684842551740855201798627412323494367555299714324256318747807765187739783620172309719955067163048353980088706312056609967560404432730530787120080081221105536847864657893576741238346335592361178187163877077986242037318317464942508615466384951987976048015619704670139447792387665807545869426531783506198404412189557700311585668601250198512488007740773303191761781456721958676973524284885712266791695496680584823051322758633963732693360708599387724110239367628594411705726947665509270242065361457621751587950342448204677974455393017802889963145750359127108527216302029343780013425224336592738361362175100549201975678188369506078442223160160017720650834776690914916049597920736383585046141186267840273340917626240255678860394082867717011207600858495753379747548372488526325171479768340206876682337076041575969366760896175265018542123614230748958816843991460279377496791467368822400496558586477144563425096741034006174630241652051460484592822109449894667387364582213842664747234834364565861335239952781534523323123067564549327027598988537006046371639887228187040491365799111187074778355433804948641678768520174051928612384273417244556163461431031889767697545283574313824213981124504410957772378538945241240985661292038193327273241989113838197888505467288282920900666278797453520848832761170718890696744495498221643090412417059234741741409754957510304982972628661548023078746125000257911838435903847364486125110929919484564559595373412859225313160860152940173075904982463516738940843006386629736528382423212910037936645067058005705260354326541944419016164775475985308753074026532129081393336122460821975878102224004115994517504184427482975723794233460869327849466153834295368495829525176365827622499951429358776274688387903466225843240621629903084620749064104331883503058774713694177507443676987360872713202568262777626371516907424665463190707356182862509270559875515621404542772502481788746593661014496115005034753870564783102639925762182623177136451193937308416032710648889433525313555694600783008493505988097726605860094814374943049807438955727152838397618339901592018207910937731218384606655702982970520654213157967502161748589574963389096591110182226688984330316920827674376283968993387436336567232270303090869471704200749786312936046086672026154341179259058014048868779100979765089027896524026579761160954398722258795297534623224053176474751686938119766373647383405963058018293967972236987930551009443482106447832761509332617124455847011738915810888072654646636855538371721190817360455024572354069934001838400861560548124004483453533436676169520858762484656891060836337654872228868018660838469436947227990768596244763355760535384391579127228032238047813175134759606108483455973212670021782955156796047472481154701404981268845394470435474586173734067256627499400919677934798161595184929917317184293866966322227581548367592405882367282630917939586546288404445279101873403963858496544942038644213753965247229988648587039031891411567987132543198383396589690787101053080025898299070121365697480835583545492839862692549734641300377563317287905986235821395500033464957892620556503236534055003134792814216555814298807951595481157401847452111338898441560269752332620944200256396309755932094962753427499906214513315723939530990158946043581435282853659860895654787961952981558900482443865802797677287578117314069885705267124266177043052806770075784077597844613865317358881767978969592538383355183398835001679984889297755095475016753304684103920921317174421093891813832867421389812828963309121947515993794350265718742600432060863912172510108095031184521664402553482939239785855989348065577451120981955993877288304066881285773512626955292718899305433848296822126236221296125006392628785071346134744954697583412992297299154644829165850992986203433347904103788958726378214126054948443160926882892000141815779771098782600508127502918420474185077383188383238014032871982110873532833751819564141796954739733228569462302430427506667981085743936575160349821501272321512480180852367556770234791571498317083431596546887507881213599052016582652177128550251655847169445819898367423558188899165349487906326731446786092897742971832045089838519356961628132988618181990857783544032579243375314044960956997802189865289327310254143573539546851551208290911207148917009271019054125579652500986562058515114491932628159778931838940230611439107824318638031167341742721622392745311782528854525373682677729703512640488809115120663488194937067613739705958218483290127974338104225872099367322602952001067697663338760719268725639928335788665647317472342196956985445246231245010629463269598395133636806786172650456124267356130193301894639179841123094998363406895034845336306072739575449397072335699547222454253655910401518964113637653666059005652318516759068562356246202604733549297205873415578385885121767092489243451588416933637637200592319286844024687134861226044151569041350676132782139641296013829415772500422559978104323777170912530696821787007081421939337399833315325429150737638518036950710473186846084886130431383815952509974289821593268123720910596174037217369872420455091014162393789778498783540530336453101876403676521187602951333434551808968197850255861712341247605695399178428183480331996679511942837617620136321328900694274469389406656844307461844671750054676074983712804244418987040784069659458226254184293632582996040959681930452801970096419946479471662476428475969642525705092285788898959739518250850749463429730917673826150160504898917726831819020542580942055620003656379862921115861095808452639817834718262638346586151578777066587941899324754734149817388593622943348035586784180910232708251404178244379442721791089370526423347889651843689319471319278727396989132514426417811309503435794090396344148053450650113824177301159581372370938968469951325842743831723585920173246204324128670528696161852997562582087380705217214909851614577930344921162995782887807164865899120299984277968507552826224100129369971141644169364758543063499586000968776186104290491876683964765330321747610020126702379127513540673536333727804593929850432780103115621345343297362544617920662595889436469005484752236434006737054558582977363309132237924848534319339628333906637821120364064527780490376951949332762185410466950775942194776731222747223440853238044343761168597864141367031327614436510024525451329029382749408165504251680678357211070100211743405815438351319518141496675974977167552578144469592351283064726129788489983759985394321423717286441749237082793371782338860322764477259128035843004210287908272233250714059037050550236443898592898576382088740940986044120532438925990304716883616687075791249702577378869830596213230598802087767332631872522867527005284050487445758238564373455456727394776570164497370819382463764594429732970974587884896188466953424946139516950793695970956505846511399511001467341502342866029956222179911736710590646091757770319344233931395203550269578770011749973323543708155029370335846649569802710723918246728953037825130559809130996808376465965101095120789849159509838416975327306040445915189854282791160770408262911746182860599674456721857998323354251504643556837827000400599986609386797365008902778590734161608770954244736956059581625126103812569146453629230267603347986841373015227289399360180096374155728319281997146655223474788422292338520953797719708532940555473971940446005755864201720915234745132978461391661863120477532930948712100827248917825711141567573253916034699015857220512846989091568572184022168148783283850504342685123426352246328205967968107783502491312212032914062254612986163504351869890710119562049941900000305985291216771576974653141557265029147975199441153789943966194343655680261727217632177755248341226944118413229513871756643041222871518432822670652544319175849818992583332303753564568007617781289826426298204486467577853139861277258736957404813816325327752525605744345769346327722072674169083199752929725384569625529993994725223246263971938856416821419826649627148775674149414287210748466293864231182253034898992583359617961775824539950463026546626510234283559032112755813774872812574140575194871241112062908052040352029185830928448947082709069693966379616464751530120702826709053533115924321854043132102507695600616707694132287154931396256636782352729084527252860354949168367845028408858485159547455420456717346691057087761547135437128811586620792799408864732380300866410529162301052580251498562213726888422813752973777168860340792482791750661982888923038034021255137016928384527417266974209670964246169714886022778382564241821128894124563319927976475614621351127342334597624078930587553107360901869538789590562314878424256504723145680675940958866792825875688243027299525462893345070775929033904009207724654531669748814573273232368642114541717036207698827628019870863307382476941194265392293585502218970875269578196701066444108319073600690154335064760691482861853165629022098854153779544670537065750171231771589060235477921909665592702228552404227799276357108522355229179676669541995707300590655136528383579394816592490062905975181281180915936931138398827848266650536644464980867690908680237102736966490623514138158340099548664582256383916053418660316016826686121485821745342916897043033617190046672631015568455935868797872969810025517436950434601627436953776670974625182093508898872931255976421450904524073402190604763472917385179807624528877442415319118672356854305132246129605056392829807074020079113426093234466733245695078956436662321611920920095127980369241307376759555700903004767518175970002662209805792246303069121357438123068572756961533674685189079328965087237633095870512676611115844415582948637679926205173859484399901326947571597763350564957280721628657523639312739703494351286700532491827361563065500146219723918315784737452075848427807207787311909348976415884573669742413223993822291224435026392244948761697515064644385476453217751337800059576480627059930921099338386781315734949460347631857834416073504883236178677191475351012704293622146080760262044350264412179523864378890485498935700059526871410001799218155051324460730082108896141681357686819449842094835288144326686415300475333466907030285763575777568601139064786316592828302389162324378725709351373267731492627725049189465107251747746567903446543876493879332986344167638806702008256331188127427337480952235105299080760129424056550135473801308708999185863436189392622653656526649826000644386380610877660075921368652843984711731891781240825500545578561405122812658203439825839872517605891884541456883123084630406872884198727254347456565943916595083636197807636759809591776458159947291139680077132176385053518363788320010394390945176145252428112636936240835483549521421940794604890821674497223999438448441633671498469856326513856010550885319993860280094626909934239621337508213301227147011865554460591943230509710171794388445974501439864094531074332812167594570181190920996494027801631781226207589149596727488953632261238552962692937075739285885401896445629625553060999597405371784884545912659659350832978747599221838410108527843741031069773635275214294535878176101618383560313235892198833821804014395391606817112516914808677295639697193143856499406788358617813124704114217742251687233784942870726948861991381184980212276314060185323252170443169455588354093830646588984286847429425813595385381952128579597765684708462950895027880845561947478270204329699786365105335301814304318723776592724843940637869016458032349319283753536905735870522536946660533259056251484557059787424563935349611595975407453250471291030791336400527984375808470435453791587839859254984838163620445927106218331281688333779259890422050587488303004083572097838810860187955992647471280823822483356678308109759274308735274316753713606019219684775200827696144293704245940165905214979985744187842997978199145340998903777509049915976853821557807375264932474740457578358445941892107604798756300924039500422044331131073006708148998113006823030281677393486377969814018907379730885318297984544482784281411219070070719843845634512521916850360731476030927700302279555272577090943515040573791699478553941495897314417810264428366408044368596446244044180295170172514700699811677554502757154298779685421643587024287755330012956011307768929660916784554772033874811613656240043766608649331917981467331347838951315434669955758306896242184247172115218786301643682524344657924915434971774392801452925057057268517677615920411953722152759997014275317923537835374061046388813891081787479530516466731812784693048359309679679488104632750810221861889043493591067005327397643689802166876167552798997506517137253790453492859941950166637044933907600770319485005039970096531486307989275536014183678914085352920920552615054256370922908072402766720021298536695354121849134598699052089724664494502819318658200566430900264173177002181523095255984900639294254588392758868124249396869811791222088081977034849676786178713416763881558966613333629767165246134785143887691967750944079097391036235047261382249415987280927822045578404383293103974318825931327649459053087727771587223813150046813431834143031026727320967875917150253941946075477806661240125057287611368018214340126343582478913019977979549444269180971355708885039994240142171030289774552771206261609125795614217145377909612909511801905309558279560100462287114961631277342814616260942430712657233504173934912602204376031763063803355831919488673690209399390452448336850509296482501234497212213222108150110088228358272244133071351313403785687086241903857483171419880302838116965973753180796161989999508147805379089009431295095712495822457321237570898257531905462337113747211115359998578669463510747700465733926813255481726667027014730536442297108811166861338357922989890964361884498593057328288828777887456885364351305996859582860271728901186166647021109425572934366872231423970220709705230342701439863177824501058851021783335060366335214082281468817472875053632018964907040082796591960445159508423157388102186357093895356684153386320300170145692904062067547507985034104951868643534551319241748692634016873860321995086518344048098574834743877660317509905183135457954721087810204823703509084613534377757860350199134974318867382260485635544982575679508537114698760417513703786122071128230274898406506852361015366985786169764621781902887746342218819459927048766839802197551343722610399550538379968178822598799933639974146300086464757011386502232434220025228582654622468084507545714906477775795366689352001228963356614974387594220306398798565676032714259354018151059702461356907168016638581316999263637032822095599144070764671471151812178331347132946362885517577520667444952412010438271539001130043534748356659081219554597972199635497195234019332100526174767587316862996317575966958517739729850964800415383903239201393594479453437140132408031788805830741677198386341553008430759689422789662460244342419669864483638796428075406039233238825764360078799828514507166220843582076898029700856823061354639429961529377917314698236923349868380078481305847653366707415047472387607156281735248087901572355216750051537053120131228454496395780465902807311728155106501995427759953282193678168591870987514461710817774703304082641218906934296731522858740234974317446514998418188845133789356745718539176296808060385286956911331209023341494522986806799984843111896389378647618708826795627579798686318954844217260065630272256724060037487350972808361394265518638729415607235421249461003752300119156038006065583676420956379415785677852473393226870830735149464971557093263988998941680098324435008721891497718736750301383814363368153781894771404245388791026722254333449099114858435523452014883069250324852774814451443672227911646342196422161861852854681023167828285885347359359449159407446634285978194129392060881335851404129175725772790213712059950494209884410265939131349837866488132378500399963643803575353401779729005235143985242184139750394279578501918245865685963403461659291696413482503245597661894737084231593145087899851755560336963941171031189194883641948415687768907359172799404070765797642132426750210731406484103124439477446894640618701722326122858053204693105070602288103281799894446124453795331106903426882928228299281462076909139622311063425400145743568526879933956532854685482936464237724165679436762904995060380286840283767599084380762550259954713797969422286111022411871109848215866296134076917678010172699098633549148553628487096138809005771600632418922468258117714859202387616564991157681896954215714588378793599668395497914708633108337552152646376458161252957209979140779193002786709828844886752087214447377355282128937061862687386257140629086216297474058981347863317207582099383909442058167318101928151972239010962541747047188773148550631955385973322844998535751738197109970133237849802810130221178022613330805116247500228115408895635752330882217765790489345550126929867822005447359262606532437628154720303887719756869667903260689832778051610076984677121735813447546121403598580076202819806288916243623904525709197703917307865823119713697602862239993602638107789351252785927312459357736854164140451377983234445926848445383535816299797874984832818179487644830957240214261623927836687234451641074764318286894896618437669101996661853234007410921883283388366342083542208678285584244263404347927949397616588625439195280433709243889718200092676104247058559091006009317670863802569219013601470363759356607348398401827472085233944883738103850507459540934928785963148635807847093456326469340185389194622407005902830470887222146124466382816856745597010036604039172603715168134890311269131143107161382336604326828552139419166265533414818201154307740372505352649921904316960728619162367636723827314253761329331192281522924253707256049569657846151069010724703027912395463571116767820287942612616151761954290575968062135577357323070098758676076546812166927071938574396790527447498820424699139696593592237428955715914495375773205023966439259792438148166917813455639154042154209386699450569611206487827131529908395235171455718331188754286416240313725602795701640112120121845657690349157495277849944677334020825994871899288908443048418026649873854911019941570857457482031689790221511739537518370867051782722525776153153519281885034449079044881557777382881322997237715101280768819364758696347061539143614846346668122892336063221042960265145261674802135026303953760367620293611891958600608911470998538644605948554264008933345900968275874554801399455399729836372418575368670648808514196387051500783159849158271167325642399819734092444217469650128812832789533988205652685132193960938494007978877353428124436185209475445057798009471928134004086891527359747288831610076420582434207348519577919738610697250656380239279934682312927426006293445031745825612177456697428710778467716428899064575039016369343135714760268735627582754594962080144590458411888101531791792153471234443800059754992030826738280534342518615076767949360666581720345135794721729296390953677803256352431922829852479005809507723637135634005563633264180599176034077489635274324566911146975509061743570308378769085753869394996774797647546330721633107560885132396694795633848529533605751071872855841748348735051002682128543371704881237823617613983315439915446845291109288605488478166025832313233897583705029928117413103830310788429098054916501361404301086363642568299405765959224761604747754115843861725652366722234650582397187504495382878627979896938157088498053226291057649981826793273310547140931499055689351405005198915398391430959434570873820481155635160776191888795366255725256680443267663574502326231951037641816013368846106892348620690290481542481617837256328654545522803446460773188890710120450737068417110952258103095628681765434633267093854229343788275908835380956390719498364343643168158995607223071647388207386713363927817861095241057871251928097812255911315134418556815339859348748350652052182760421441149530852678662210255020049814713045620970388435901722081305920015938189180610515588434060481690095994338384119780961216043172758505615127379781433532471594563175341867910734834098223882724028877942091209868759839070361190045744904663987667553933222637944513859895256883122128580881529446157769626146867444902651702419227467728422482568661313281872970323976500288052245084467970244432134188181869731419051679006367402483596168782393320451488454431838226573112837612925371057576293065466807023189971068413685467171229508982282110896344906484543195508036685063193818868530541563464655500453308650833952384880826634446785538606467256585847063766316576544890638948526424289790951003568307274374848307943919457614320280311886810824966742831353297343166577424204883997005334098163433387833560423505813187417003673850636374541880685943156772395922661522969602136534427690264723487098322174009089468265196745300920626660889864219249294886567413114397332294292752917362287532585112252447195857291936353596627815240307942962572886768461927677325482403846527651491600738247509996342528559646111561490233177612825109263040097437140619838835692194547280153008084173490365614636567359646913497556179145097372594842756873189243526356878528245577016908739461387489554066758203412294181217726169107500411430025107975335341555426654812938079404668045670761329135462707751502771734223935941616488603828457327391449059995845961802938074631509252372067542402769097432738409379829127809859489838940448170244068526179111928366949261534699801463785551861969992989750873042270331194209763086164129392102608445201113931969842866278265986851347417682073715095254644607971658344907548582686275621457252404147642450849463699842074876587250400555061254119321929810627006479987933065861632854314642822871039016843169639521123120327523087235424318686533266824715224930785311343649052562385692798997754386038274865237983124492032118598642620035118348723512408474439553449259654959133682781965557344509556444220421253230500412697840316481952549961705678242998669839519620835496688460028772192584725480221845922302930529558871206945583532619952068772223724689023401325082563853259469703945756057907043375667077220630915550001269493362716698960025901537177049736929027247105794165463261307701100385824300308369583204726378232345708659275913624704738044597873076431353884463955177154527883677539266670882073312458462402992145559117963219505152385997714750109050648598182647729130851680251600558846221583412930499860508996146500699411225374141237045418141220884468079602300619000700566672306023122598628238705076859880417976995254900117109615883066904036872002470162152931241485689435803978093947607394811562185075430465242058404880646279008144202474160828610243161210558597445417200435904045044095895826381907323876938270007055420062176714465070635280004894771752969996832879533612234357230101774976735470493035424768301689106082910128113631822875585161974827717493581460850306984796654717659694627521995305367945801127181214443478338509948207403774236696696768910156448939289022896152204818648726405906144310396698580742113720246061888827525171169695762484039198133059207382084227632505905191478661514791865512318470901996891420175949654345994356240355965911790298941346564916411420983787142039210057942077887333036699408695610817990896165887349341207412408649198923633125995666281249271593856206717514292354681638086499665797758473393811157445726172394056289140415896194895310165612589027884467142740381209719680723797754045356722230559807389557789501191345307205879774769134636742698799387847325448600248193193352549045886972014579706820003766449936662773856085743569299683578543932866870165772054401673965931815732793801828291355328577666680031351605457764056096824526741541475688137971788261719849397946670210715857698961715384493705150249038691850991780230128779187501071004966971191716919007151818780058309305445970435715324024607193296443393364431600111094032036004506884651348372386844598145857900480711628265637093858896365338585791789664960454057549413542595572351265103556555812585067363084849514418701043836329293270612663882403600118995345150462307775839737278674974029563945523863525954052200277091557944838244372750782656306284396479942474153110416520668195864587842964472099712857739320075489510076263170152713694190106711607503004450902004078354927225150317691492332110183450709766353817233573359939965832294884432590991780477878856934041185171644688141803658984167049784744712628804938534756369967844016481412792434232425918896923570349016736595229376878515891864072413860366044923360343003792220442705643583016213588261126140200468728844842927794238372830470732087461811097400132322107193047416568204945005995151867817388821273794026771256300169134126693293497647803679901413891525552542322960289975491787122911014812563903062951724000711852421702762092868823016412541427791382400178003585986881476152481193128151334813761016693143037544798159083800039643435880414844084968061768049838282918964557294698541856414602075179863972856430093945524846633315898873256876684632509366257461384666707674093789131593170720125227219395274840509156836447727529490903660234080873287082357325899843854191410411085976476977028707657047438860335919990720576538656267135143024066132252992075099573290324288400578325553474697273482661911838343670863181276911198799604089401394395730737638235809018014368319000923895047216482675268331812190475442162617622116683781987061320899120109091780350981777756704792097947721635285346333092864902759926135729341397438911509466871377455253042036573416382368301425443387753474658175309059956283278386940004885498798331682261238309042929056808992419314398431383022252216704910043262522117326639675696425177022740289457107719513074147710320424955360377672798934452500068782104739063379192385619933858681346498214031061236542980093510347372045217908512965676207492290483396588426874194319415046901563156035646001734821115885375506144456705434836240278309504040589674727159985799385585637366052487596115893265787672410544466033950344771461335733204593021307673556743194253835348796843832919997257054270252412637692766333439272730549298701786008134898167474653421576989030514440084500807576227660801003830151859155002981507426743334328716856882918779115843927744978494896363648430005492501000825539338640897396449984481160856467591472018643842964315483987349575769854408768951975798841262437277891210442128675994532512984076176588007642766697415682444309978290507969779446380450826707372109953095387908881320119887612515522878798255507315832361554529947295990673476556566588232008383054326468051474700059886289598589104926837965506998713666154326759999810753291518382100343400088305221227815183343211425337244821722614565189801939175770659126077648313277090521902748457213532313828091799950125831910227068145018712384705571854121148181808014403356531894840501925114082858841096366002239408937596079843247480050735133558113446400688337074023360650030277185629879228018641327359300754338845803387977258470968389795415540260436013165090429010908052024634694772099204693864288095021866276654218131820667680621469920442915259346219526103390277820150466053224322741793353561412454194067551312505655624292351450155835530028552470208367058152852331584101529273493422641422731474654852133068041047077655166501074922535186812453767685412209188333255293860841724704822491763139032359786315050394460435817099542285263869132351112931902896205531075968145304578235771198055636909047777306434820044142074195851299458166030771152766656958609768431859441348673462047661815296973648379036599781393266157291806784891386069579681618566913916497709103882185241505529384894086778415671105217730538170246766810757426438028244091150562844538985580286056944376770574327559803547403663327496240387764489823287736889133081494054300325701783815039053532085767287705906575618189572324317840226951284804946515806903258790157802272102160661565638764521990887228921627298407128956256136088357795318706246967464570970894861692420251891437871396590970598770724798671385800404643408968346479596463268520055021712569257264419481388389205048739202138257020181316697711503769365562852666255511313647381558376531691067689481925859280735439914877829159616912172194151563844103736517368851805139904797694772655256537594316061399831266249940305987781395526555811111347939721987009027991969840587355159564402653562963360520766793337194929182757317524315142302132624074194971945942275582001738861852407909534184956821498772566923693743192150931664039220618403804965541273881464988010583827388585627004592023735608693816827824412385053956349303130697235866356572711417396667564992374163779169881709743054207345801760292329237571143451716610909076923752732544863989848264908687618192025120411061997913258738522413710234553431892644227131421349159236017131288435853840416318793664352359725611015950175982122103319415218290791219957575096574271055021686903863675972364463029614680264511673881647351632431588257629294898696601913262553757085525579477897445922907717665153560115234301931692747064586126184362626237769014620454108706032121808609382114756770535972348908955918684148026186584892435276062569727354414148483809928635418221657002728378600525085221094472939295312647390965288734514322328032741447523370219553058539587904965360651849202038385150252728162883656866210239150148751596388186018531642087480997446596041128496109135457247902797211245429030664211988006221273140633764912997069752773681030674172415017179349598991038997204375371819555413671291705880192377390424258500957836072522211166834027812144158565673030972639432076449635489569486323423586540349153412501378964251691656881162616889063300694477625514700509872232039012162755626654548122066338994365122467859044601697656558973403277178792483796010129083456404223769630341009795072938559567945484414363554869025459663400045254316583991055680595162720449070543194807441981609217073889105334260143121739461008549190651954535077413030186177997285721055402446164166218179382981022458527480807734226135609144480879350126227031463669434439619072909785528509733748121341898579136664850905575424761530296619025811727988230234625414017425975768040329864081067449940028905898174710867273182652877284636481195529393622893093548155722178099714747926420616247912867868545326773166845409453689718587497312546427375162384765802018082761442157168680035006079296715723514039880794249924823514739963811235789461016304695466489278735922188470563846019658633572532649932802872069475825863516247830802969203831238725723831161324259885256246035711673189671936581408637610925296145834487504123230349496568622506004628586990048137831854857189453878491863645984148084116412646216719712519223076515128511880622713370217273455037175992285029935067482165723668166885388861916246872921659316298348367680482865538760543622619761493159201157629433875950933533658798799388207368237128084513943130871208420576330306337547378331152753551216646594144373743050756438963357346558773253157374688473005542376706686385304272993894435139281481901430855196886895643213854393080956252372485669353409139205649889930103095528606283744149560495537734808187856865757034183737814852958865953463144657798670960913575623627650786715278143911610839171959239064054856398660402845657217991760445460663109850516292290060778534792093809768180074703850803757814766236587182147386194094333856675772960961340682730685367307615686786046029049589017451598050756679848018530039345336455518212535550081784688328813082216366283933341520098282117710545914676603415974088157568317081968961713888361824343607848584708761058639364918266182519766229084890150773866739423855016695568796453206142745793759139972064019385754788800224276851761201534811365383008512452404978673007823244847619339179855120242436416040018217278880841338754766629413103714360825119919240324968821388731671355065827649749017512390538828608050141327084354502949764642617216550558901436009939447134281674335609616872858475084268759170319997215402988836367740170044451070918156644599375058576086041066468563316680907014275925937541637511077038217435650265270040866532774514596946861025213321400812657970602243298681080737635828409130774495367556210189502418655661947731108595938389824982611069443259379647115056463983188866101230150192382423686456510217545585017109389493782059543995910497330641391741053579287339162504657227183082901060654260103126223845072156572638102218819315543376546749808772875095587024255844322831674819737447578463071347824044042864024626949856882448924746042843079067858395048506548990798350700033250077278946691015543808177917827633338769718853964062879650903845360434452439680215357761205558301936109268445840538067811379995553526185238634894986918547509467512026835242413975372513721635504705843704571193942372394509670482755720887564500018731513489688704851110407244409072517650294930584522819812829613018069281858119462795062649558558919173039719033784748376756962874595662516595704257734262327481977005668039492729907280815321048324017846603200020098962625974424070324928382457640103452046316287148621156566071977279421620051063937829463895429830528441635497869531717187092368627219488686033095952432969775582233895268095618642305707669875474871009417886509469085079052574437565236696284928432127551551079164466923574759084333961048106984671222862987932996264358421674676276126031334399930573401749876414627635745947101104509747227386612423025471571801363141018376582864296543886239344930671615819256520849695354200492943393944539422459185738665823834976429394059112980045994210626966757299905474157703454172804516897491462895332149166203660202580800676769289747988151907654118352766718493446037105516212455456695994280572537060245459385999596836660188497472368612885490246564263176295063845839171583865647452150624823647056678648577099016885174528725151340299685921953559637420292417105459881220280313577572976964300788001267078807818577453896493189068633058683963745315383157717251395227562801124443466658294024017554710152891218759596578684347301583676695794487664872946165888673648854682215850705582021668209201348095698942603528340212617895130085121149127821682384738964486675767718192899184569932556808587645132217744138808509986666876561122558058306864102539120028355356438349638094783090129870086520543472188398134146495996863908643916232830608035164949858688159701404955550782398015508875206046740828139965995173048679670196866516302330210025178075249354050236214704638239923915131444685206719002523224197585138547869822538952637483896323151536467826290058536049754782113760857666996904941580242494532584331865731715396006325119675668738810005891121844493151072915154805204044781572025359797501103495158360589374029851186153619446337079714541953161681295745852235124711590692528868358900162685483075636494979670205736548910830296343102722019843632648788538545767131649879698633561436190039484652927199956866092396178710931213625474669977164995406251484874024671550788198431114033630794050076095347071693196404731909552682728330481043813768153896908838637768367016130575722241755089899187168597596137616237334864019451663369573168914606469008162371043691331291694844188968999672882610958526563239956166685775238472584823798027562019215134009431885119431033696992967122341214536021839984185458676281785436711148096885823342381109875405476796965590288612463149846732335132330297690119102296249301737311916875258522718750973199963335606230613134075519707450215628573574548334753694007375675476748851359159451290264154628558470511538388539059083750449024942129413483793717404570228966883113988529088896986359192901691068287014045387953781814645329816393844510748167652579970704665766927311922889473842937900176280875056302915697490579338160770242127500085768126325791610222420731523632057046042662044254486155011946203817008824172394390194413004723115455855848736257789278827822438975774626351339454635360396591571832486384547025982107485455046728998232944372719003741569557980165780238833615089339783918928060611267251226566780452467203719262255329239673331046790429783125171452769582130148254313413009939268341784055725323493939502635998867871062590020583729055331502907605705917789685057676173257681853082993009833125191751206429623108311025978230138368103430351152346024725652025915038103117237378436681412050523170344181346376331517238075522828839940810230176937034452469017850528370559127143342267810586717495832892017094396591711242828496923357610291715343267096946696723803563321836698618058955467853701531774204647625891730387643133256778167426443263424506947211826883363287589953849331802920871726193868547730089270963724073690474770944829920884036744582887859491104326643149395079787027440511337549656916648460116210666718988294245382904276648052799832395945124575191181054064210599312606900082501050169518959890133320505276727753883205405028192016695104709519759154933062343221299173303805535820566019785171215554671938009457564428564533141174536526219931762366092350605581844735036071940589499187859292750961530563287379799900857530471899870144085060644226748358668447425604093651180556794993882335576059538597110814562427210833030381888997636340345502358028468185367307735972534280294365465115311034687392072995034414757750839641150313844667740169737337885844048891834678216462034564679905788281052596317096135573512991474605681323064517336183762276520923068304840026347715638057039482475840760691636631187612800069027923076879451223036546095685740684905317812482950744040794483456555913878272832385756252247244890385925601057205493346592986587266488325885391472328300536890709159711172762148353680005219378532599272413044584065127022807433606171803997876792198034827540351673822044585033831820816788151731751057296449447713688959977470021964080102985270934929274348507301339940784106728471642442669206655933089239431540848114341181174911155977416028901917984928820773619737922061080990205228595510718542868946301087739985900176163768369864151184364924698342145560414151834054237401186304077660238149235513875297300494986851684848419961639701398066669689505016838067347024789273940954613104122585306866128612710908271946537606106094775653100727535910098256509613822474582803974249376125473929954464610141047139218619092495373239727103591556777652979530869739611120284811981436944834867662000267205274937803787123570677057270802437967274126553417980788773290876703790359895721787900637329936611320711927580154711979875491212818059489405360443479406554094874381535027145527027163383816788263385790052661109167224868828818688553296724783144522491534607466976153145001947391601353422118397363169892524692978280294914634302739824124597250836830518766597587746047373142083473002825302280615687786985520757277353330698807112123314843646321321752891915959725938219170004563017775037845623279012229991388379731085791703902967482437553781487801958338811249887281582134665407910090079062368611114848581287571109050429795617475818121144242327803351360646285520820630734379588731300670059062812980218912941279417506169704066387430966007440027141410030656370763834250517341053714152370935431440236026449413059217283854970306759474952739283351188547699554807800398437573659475052559496731471935755276392865791528863497173675347025816103214987672832889569782852293570586881344133234806531340329718561561348655138075169525183094929582251060233380359352092750619852229058549607686288988934871904649687273931041657707225462511585106718545078468157175926324469433947883600465310304497767441185893896463602471095951810698453478813809696935320224148354353765151337190989871690847299034218907095550553452310829035719738215768723634789809122229611719206297985812865927012453280305757560988484742298169345388561687066298504521395383683109741917580542542514218602865562058645008747169107103927464399814562771371556308709805205456413619188366387471376966090890277913993672019798165370114121002667807612701022814278137713474559728204739390487026144794234595735094651798622451051231772329927063497367328428860499134111617015654144973353229717299907073134746642202576564720378431239515243784797231340855286309012401642104620843760801647948377861707156443891520699800024479451638880802723113540968241878861665574079626398461032946781153958439698150125187977110926547180101658109092839355038113179137104570442212864559079723985891667987891426577794571578726960514494964771370381015382320205051186004426374446456003266954161515482478642501666495306849220478286802718579209205816021782257584426041091367287286305157737479423148709117118938053466466742703888653767389685451020839419347753766057658418429746848395460222337458256526505885089938788737566750597792349579639734878591062582632997471218942275442862210952480042792018198953897805010813477219620584542913934004384341888845947729707680143368199559282839960619839730751491040919531986167975358029790344719930660651608681890234122730404471907306767126773753462920772035420971962405175853738382162932823225843551440182593639658869213050165147793034734847274776797614426705872874539030447081408173778530749901275943556772792666392791600090061365239395640179942428414307908266923294930833444897692298915507446959042257762817925896568749142150118152522282243822824811173717716912166940111894225230435680731467137147719878848462537344453227888667895809397326732796605949900667221041960612472576998022760579573457056125380531525526662209966140219846184071034763460280026400310392756172003120375271444743642078127326479275087564214968354540554461500051591318275583166681898631879084258647048192990582313966423054298145695407393027075022268970256568452305642919969147909227634175465614055271682325167199805025970498261529992394225118703728410582095503028326479164839168648044001586784570715224671944068226798098210215351494794466458838522249009058697261611943446870966958682833169630584468682621663184645035535526042527524581258489077123679294414090129129061251962660597042181084552888025504010657447724039784663860316800343377613885589105227776012415602720220568570842297126898784507832941699675405356910799660198016254989924249243322510961547717506710614923956624923672869877661938208025484648428322714861627040303825789677089446883943256013375622132502271086195387321012146870947984162931395448052380231777756457362137304699052094727201571167580064714284741185767462312472724214043537236771797550563121444344106555935941471508039752188188347165724038814443235362188076763200088211279433834434790114473955649712330688346881609155204491459007726998478658130975964425971345344430843478848148021351169242024515624557891261415923143429415777005699548294109575340315800026522001397448416114770896327972448401706453878542423989455889345516144438081037351851039424089077699122409499823988231724929868156597055900997946864869385136386382500522044575544979723198719875569289606616550391919351026614756798225170648035693911003240545417929389360815519166382383281348908971077013272220748831006917820768121061573220227287314212595599176948607972168548853050991350716325461647776791295285013154207645905370593622400036109435586020276442606868789884191193305274526017902098773966614933173870388485728042970243610424941614957306343398523100649416270805050536980166819269926842538244746509483127704944533508652493053669956518493679292031077744904298923617840140757829452565895907745439079605399121699977799377977179869860177005925674590366028465582748497348473721871295988368873662728721986746178202770741956580839802046314352921649199328235178953465762182148804616797409628847820215844219511703422988145784417539441070313935928074014584352625197232778049245297706745245446520649735246422279800191443393427499787113192969824423112485919448896316934087401040631946325708001923054717708276464970525304766525623423225362248221802721550473379871264643949404267719278173722634779066443945846083159644449883330728370037997451125211772314524140372834707992199154006908208453731623096686544553936562138599676072124112734507765299702265729886866799687191550679051732884031016153098256817420685572088966620835902381303918563077756758883590142340435491279656693303461186678035984211367990805846478639484208948878473414492877103051158888026909326879028142146098788229163861212345658774460505056883775149653251500818759709124514912618189490773309242127672820874035394624812976606617884425196880590368172840440410734084511971747056936806536661819682220891182864844397503335647600605248941267909429890163816372648884517185159668341527207329273032514167093216493070736424771102983787880288684953882561222364141287217624493549283600725504390277082786394500298516481745514214741274278503129964694262719375055736336496657860152785860006514250275528417286786306896232182046438076160197849820037874068160162095422247515472070136566881758388555669510701583405732581696177736843263350186610332783974698391559160906053790416670914189748219274285017717190513446269609766826004981348165382900032958310939503967496892576777309946976998177189028094811200247911016560480293299067315620504259788076959317427458337757527155507598348897561776515664649969225670328857098630144294885269169030603718780507803783650157850803206144394603944829849722475332804233894546269599089823119839310483557202867668449577384430424239409004014704563606069189114504700396890151154900524817008585889977760776295981842498405363857336009297387670128513958311309802921444169769475199626196083978150486259036500033128644331891393760003514615521391202516131762634974861188966193897017056057543343009645461575722337614897652675786375105659469421192236350903451222006938440324944012252740417999731983276476433280016782152113454067106463737452260226012787238164363062704793353837123448389591518633925788852416748418923551191256439251709129031995549497325248890433292234360739267955177134818829011010870299657569976774071295091025714943496928187891699922099963020709564894308246498935605083590723127590961207798098880678720721542942367390948394769063402454738938877014720475000876625204699253608657554112689241824122543625935145268185315131560401164549539215818614456803694689725654239825260306481263937543457235641416727249154979098987593176420495131024650523423350188306709506554875346670403819110266951249156685516773470104038570011851416471307361797035818453591592536915173830736490282360564661850342286289066214064147825963398763843457007288061681659444598995239935107187954445351909053604283679272354143876329289733051171480757446399114875460762038767881006258272481405365299987712549236260353313862963208136168179645243371326295415489243714685286775452951629035899902623222986170909687526946058501553408963692706897610876846303451488738195803648888947179171227852116332998195929834447277188620538332781359263666226137772454506567616927663919878201942171513786125553185398392478357659759722642422262290713027579170318176934928303093827889557297654701953451136526637991800463570878827399875756444009732479051615706966343578877695927126022305659102725298235736484723493086149016412743969193494780420440222796806198164088705962610562429344491225030265695334296680206832829458271563789123372303117372420830240965959441935260661945696763560908822107639426633950823059455525346498845604718543238563112139668465368546922890543527482250248801067434511570447261780221714946661215950179325220378930343438063979428718561583460292455337523404350512818149017887463629007556251050835253979632734166078461335815138203988997414616710484397010294434946497383618536283535624146465163477023564169987560873431787586125207763452724777779552721777680239900797945269410418825943920941709763512284766927619264909819968515256395002157142292249188233487578074401543650692165372974620075298375403332936855074690491403745269087938645053255445651923516935784341542471521213962726234153062822455887850191560013586997688429047541678010029009178733661066451017582300607040522401835169918927819231491050759177087689804765249797110822407627576053920770211852384505081497005826404005397299564176097822819849154551074348052403930606527062229715485115460152807002897264421723985672871127624120906004971872347697434364680237799767772876966003046327178663328528977860010004926357836807835188048001301540922497325218479321116993215749702023632988857410133232702158729913151080663168036436666131890324822607192350436080272388395313760848938438471009864561939755463907329121726148795187214882806665720545065074498980442997511415828568023045602365269686837892927092047274542535563515877435479809893756556269981971654774511980927926754788537661323424081915419787719050168672535285016173255353898536942112944480876427708548974944708320114311779215931052141729180902247855375728212031390990535160789112688190833503501498441674091610327782313966548946060749350489240223414423353424232739375328751111631431233655065273983026494255864127743646332957042621996406039831060234814940482187403102709747406061375521341264659323806871495396321416148013906364314007579070439971667954795667611564560585570185426067400047465221257724684313626510729457347377814838417101584515072110200907474336642754985874857450689125295296835343817584741128379737285520639164230048881734272636009939511206698607199031707336817034150776119878702680338938207777022662375967534014762777782990135797676870020902942914118701148285166846621511845574192848620678404241401435579240017370263633921932851812668228094357261374643431332104528048204671900704331905156757937282529190449479213838011029820126418713036436397557428967535246826009456814037185675210190088345835395792056939447678440592953563425684605411857143133178208304762218102612532954979979382858019633648328849048288909598048112801737624953658329530024438864702773645119631859208207618836610835472091068995883220474377539523290432883633004193874359709934264007706775190347867366242373987641774102041390206510591372893525785486057837221176133669795425339322125860481656056021145704307054437078657899515969017925054914140920640814309403399232174759188429537777305044645016087732569568650321493483758144998369470497818084155833926274972289458365279609019552350123665932537236903069864464512909087880698707324201386212992496700496987116267297153751131264752526042183000001487785506644098591189842219406734483929010600249723117087443240924478174015425267552507452895395021757215912043295943114296480022259864212857093801938533170924938493409488330677600116479691932648984393066958109547297616779702165804716988954624431126900241415173608253087654162052325098878359415670549400067546663953765147948683050988049386590480126414476033031401536409389171881824679487098722423516398482971218745480219443417474335762166894389683736461762968315730904907504187496472024661498670382157775960933229378364821649022787280164200574479424340950924695934807149330137349105132417437846072702598206451253781196918197785181462628567086774325559572590615674101700611143089681396360410280681892916144424182322945795077857282524634739420896503608879404601073406848796614831134964105821938900260479074037199027137319910584859791597937930412274167581850299150409482109721710952128422549181851582612611242533329686885566284569776026735095217378701670800607354565963767500682675903708009597757615449436440402813844240056825311142126108314243971232320736677487694922440058649623256225323080370023830780003859486882816540603790419126623099580550570561507377902089401184898721809399002810071110230173569184684295341538541192879063026006762223720995586607332173933065834915202927965506827143215885173358337528952142241445023792542561594771549831198474230566679283130942012244428707135013215258750365395585548506014509324596173041274479850361741311141321453777025114560575538480916235310014717326804641748294440152685346089819164366246392010913382017825268178266031532207495747983565815473805693026447217276110376693870212498650560125767703187595844117430834484671311852976853001934330443119881673970994709058924313143980269157387210454233182547687259488977822276526260014128649227923570090619654745247675801524167309139444994547978115371699854731693528606375598848161038868818924657884095686004050451447022543961983686466566773386893020455118495360739088041314083687478939287663403718500236545012703484833834218449666986715721174974084176637986393048181450045302736709306114290704716544936911874731756830540407098702769466087206122221823911218705676901818317213132147716102746032958631290975660369734807398387902594674627796155179571157779418827574944353537529596561791224861559896497994098261000632466636233637319696941522755409012355345413286499967742991960126363584910095318328825530162752748065529018702322475330243894845621984949981792978522940312196209422716450172771214145167467106108503714807937646934234042322819989094182920036935612001542928947979050584108753001094824944933716990074016193143186673768181088892923614125084318479473927667914171623418992640260444201216265497366237544340208751696105525970708404311119042912840135468649022774543816178365896377809758993057829833087535709843805266258869078838777476651501725763128773030575648110938654322354155883561242472105686900874219859160606148356838682642349044109193382982982532358901816642898242129533337085039926483532762768867872760345579945407326353882653687860195618639110941624853450915277482700040403576315175495636839730659721113089381855278885367371278296312801535782307381174600953957176465063432324747836710222736387192352692683868913935003519738570180031640283680961790293685329839158155379063065648596178734258210434414274519946493448819588817766112342969896297656072216719486975028421333225027113371762755042950047829204141499632903923232741718513473471099007767003537791561314361970091009410338584888502302566556229649760923718543543383223802946610274554310886487137349431712027314148959681836954311825347329910253952311516098660342561712883757309498677527586525969895299698285461161645399101356666060557651223131053612031915817584264393501284055882162174196592441136089086759979463572559602601256361844801402661592002189394198533025212331881387899913750515224455476505135093284435200565241868360289383183425116910044346041833692077322640083352946166842295847685519320436782742950513199716448971390637820420274158252202742340873376071052895245830756144258597101314295036853427560133935932748059628417976383055242344343734107843292986150323752933857763428651355682096645522228812687475581983466041209768300685578972752885960400089126159381522070136870318644401493998857364572113478137814644636781590691268978593105708399783163090014467924733049726987528836656148372310142163132792173112095602189570657188523180817054521074109289184084808541232821429987494964132220310391368622669076686336960309331890843316076541780443309548273727607426541369275005343906820543883469139226570795857168873977799339225471358089313964135650868010716247639677280979643624687243967204702570332272180605143653558172632033108634603559965225281573155610918606135608619417408144314721618842776153961155351092208945623329539631628575646113461974504063319009672191356373317365321326591739130671179051091945107988441447998775009397461143728040760207488685834715162263268524941524832499484115602046388496954486546553014725344296292591280481703706058592398355945799767477810378501346420735826556609268563114385601170944807106915324290288577063323361599260483648922529024696449658688895629086087883444037964850739617749984949343534363390016760877278596183608440162284358263319658031389292584702908490458761153674661547328934955307817698268391519411811442898661475475091365569449789406123038012509675115646962387430785046394208789874462302548097807895812445570148943211933329280349962563651187768504822628797594041695339987135882297428789802335066215954599259150639691683800935147354099423062178814505138592731443578706665862879134074641434250288544825114399537945069772770580645043606478418817005876602352691636300126440262649070785992033634746604221371965678585657506031857817264983101444905722870068433345867927061585397949522577185415709260631553143354118795882572608274790724540140185065481005301248897567295233769025480573963275901986360986097309183634866677279055337403366247615413171782622859757074573577510164394061354737039228810694782339528751626497594335407478727673599012359218518216831394741936278817291124232166061663859617723895447615187086180866392247926279642010184185695748963261753334708694056390275122269962780382718438610252554886283706628991731270345745548130318503349119989663956507995013059458019197763090742877307372353788091724520275800469170771963832312618523948917741730665121117105729582528882944940357088388985639838077309873992387021882241095948775805690887433144090161618379527096809939187148751213771465606774663093218641792968275668525131396768207497565506777527160529982194591545722785190568736291038159692937869637328590869234758290691007698728295479977860794115904027862067324622554403554459435272299563012667433228590159434168145293119661814784387162192150744989485749186426127914436131949592764716207605607069252483746158943483412532026002683665484406963668416308893426870534006532956655310872851695413480783222054098756232619784466634060095043293295748222676195550098878042709088921157902359822028933600386452837373636482738404281672993060232912974433676111467530697717336449075179012069287892941067122023796900736229411861377200843651841496588516665900822651196646510923741405065683634589500208697885312091539374827098314715420847227796466424645730943827574669540735394691455415334477156353870003569095707864015139197126022120779596569948969991551532330724115871338663857498393108287527999629959903915027659969769648456127060739810635840937739314779987254598814280815445733309901524051477734432527971466569435255979447709258032103475012179430657922235043348140470373197478171158021085541938987300521744997804505410988541499375937927091802959957934905599157043358756392341833952061536759557623526507378144449437536291054874827588857289415304715830890442547756574678172659336966429845898020830771289458048644855927052417751380843052365243429356405641334494468447552507354271061359973080311991400375860497679927955284784630180038358594250135947932078803602557289156694885336861599948429560786505996087736545066917223041998760844071642289566985402704316887910221942641357371944435118139831489205923305255330434407093376521691932812108791160030157739835260520256150583904059844190577921762687685546476056137766140436081439615646401744554250737213462579521892311427389858788031798437812462373280054055015245209388074883315969907348629695008109998203138383844918042883993357058617653038682155823738706346113909541810329118382056721259134935940074210290812380109066879342430085414939094558469615243247878847038832159939725619890377193640643092505784104987183067868532250771866667237964587153763533369539431145600232962225337167588872247334757462446975229947014658304002584303422644011469390166593486382456983122014984785205123659150833693967414223716675754848502258135471871475542990219310436806664470815653800892850757840164936921680812288614824189985736935107281498327442011291739512662177515605221096311819447748716381814355399575370172568115138035183195776591479610834526409405675084308692784529698945534658605791768661228333025460242907824959935169992323471556406016727695793762705728323708313000180656076440641303135224981275181655905846701104970604323409101305619334454960482941186635103510795913791827865035346429399224516899498305384226460141937144395821055461110534216208540862382431232771054881694303561086411395821726569725569519719957205593103794877029840628839250482036202106294290593987777741923139200851211610276111507561198612957167083039596790757039324675806786965127447605267630660367129552281543935622131879685512188438224175147584558485173350898961986839254416405475649254262369304575893412987976026047931642754891086120841732903217898460799567566956224778165661647167631381771109068092310755426925284253784641381708767278938684739421761797371215798944812147577497247800343654566823668350607746181703677024465344864881035499217679009635120804386250966378226599489428077214268160195166030713943206551912062926158477077533157453832968481324955879774376268727773417533201501272245799588507066693391558100613756545064879178355257475289130436822876099154230736700752383220674688640827736079147577485164201680030330763890840582384547812562359837478391008655540249348968996251112425308559573014313202251734191729817241280541787654030408439624202144516572446136313552819502572011088042192771148491368218183572372902419241375500105035548681097242710389352181881475654454263577122580372950901182242840259234508234340244236949739640498919118634653013883175110736513740527245790727394633470855401387785895453104875997598675186936942837430269683772813187570666219175265272930636174810207823019726820109202098545585929534956088925684712399860382209157380705431373666341884860473465907374251335597740559212078070468572493233173632589588096308884212343019871630376817536292449108853140226314991388790671948014289698427593401313429231531776354859589629668149684953443977573760050938629034879095440883313617795026977215413439653194977975833850544863671350025141868524338028516739553523688477501378647336339502107301501840253342831778194381069666396041424289285928821088849587825754382826033118872407668581508160446135515701041208849250008097822545512408518401925621725478629404320686338315575880392816609590434512015507240378149740209798412617264900168701041150572875838714298745378885672758568972044470136952233471974382109631557119651202988183364692321927187005973709038854408827420343143975185658596180531770748310869070747811206320033998580785577637033994738413375693993670865756618846599669913825807399017951954877581521552636634734433020377314383077474429138093140169637528956034214756818765651557915291505597893809903679140751423017003166323018961906826079821782003206431280426791568133437662828165101922594311985093985633187374490920461179285483779147727036213355889062927661786206703563808437636767787244513240306489826468820970022382503694119782716635458568336697644658663873533892574745450769368594670127265804161940410617243975558757885279998936623148505911981154243281733720044754000198874069956327034015853912691749845303971256926881904929616698888711616722300900762072140051741810550428461576655088070329002816428137856015555073986775888029746637729596190480476554795182082451462717949356756726831288530939896781983537542317370855692990873687617867355290454550334384315223448589158025791490207791411369692601780802825269695014056152430726406482150385493575636229710088326736955923810014347483114239540396979900912422634891419508607162995676414648335245516006563789903726386516372245937828711731927584246074708745333468814819348488147926721378155018991681049928738616541614124296209825132607733248530896806515060477726865850119269095559195159103673782035233638017892878252900557606320957525667630806953943122352184599455902909265122661520881904201594348140361305779675502013865209650229255046554456525495640409746135443266354242518473390286685055004284260900585668378134804707646434620476026000279018549535357719295888416637734717518065647032125953785341182073892352265729100985080108729840750351440900569644003287951686751244364164137779547863445022910906497298005064700113031093096834065934088298948209494223360143633907278018078033871576703610853328267567428673421752528356973879604175918827588273934449656777098282671062625360890579642463541936952614324139658491411612365520812154730684331159362086977628495094309780005330390740151425694586144905967287276830664185846703474775773411179464335103503820120702046725899545716457288544426439595723228409738643803598289936190089349451511756516050589162145203533027631284291371347790037900236956000484610188615005570129860888544871621651407793088697731204225025154549740221161218436384231601732919365492004779876053709204728595655585126585693687883531378685709012704537659865441646671012404391744886888299780994635386721766369741518280418453074442522443482471091339335540565572846152062114661986825375746194689729551615574438481264843364797341348494637262143813437824260252142508629722141389151413288859395720695987030187895907781050552712421689749503098378977985861919086046178931942190397242226736975490596444494168850732382241384275896052432254237531626458439293951837227021996262783067207205612561290739800266391899614237910742873616636829677349394037007858020857678595315205300786422300939627771504978747928347726620587057334940268996391784229678823662008927814792689237776261116809568280488687474586069612263201100281917485121995430773095609277332665317613117729791535327889145317199954211120638647173669028752867595011298865915436271804598506015405463176057777334655051217592836021622657662529149485852047216086476390647717070929882196019188251859575186020391711649857394355129865556135962158097718058833286930234680539839072016294312807787823145535728239833036737946259831727847847996051978513928125213068105027178308097030838590619451542356677155794767503271192047422860845855134696359560735522898164018579381676683592188258617618740283413193346451644748824658863473475700079368254808930270233210910345157595899384414680955793974615841107301064313159191628557460243624857890447820211659265676222719005020395979299629488593247044515128512181074522268798927728261281530404928243588633640107888513544752653564951771248511238267385002347908279884504851086685267386108405289646776229655563981112207957806405796089401704326678144828277200149096486398478864417035674012007453353447889279734633233587742088335884444758786921977684205402538484073409669875148884235744094417974046413992796324911781212604078335757735198042597950991053230765080780081217913239016087162092797750969520172283027712201410137790009922465443480126619275192909033449821227354307172075357719064167873389055298067903810648489797142721696337411499786061877778841318216639632550496803932332011826289590206088952865219310332264011988425713896221164797088180824938720332972153885495965050473968640769097146470915513235085770117111600202601618321794194937716809207689631412763324727757837646374756234846962444721812631292603203084466182635672378347887551720509642680753998942634649308189679796980370402761168015738524530975286747304357480684599585446793133366462784330428141861991163485503048992651965497761055853376476466781862348193706010803319515326444879580619533667440772737119633364211525139796487550874242443009411412180275014248880321470626935789204369969685503683000513969848960863950993592789795981139544754942229717340789116157309820462326910729132861680918070887216553415255832885931271298964715952892418958839072408251881217510670289296592909195592101151142570629065794249651122777104279004702503722970290184719060456002372684440037399411413596802836421188684624579876052797736208104197271829401581843397555692224873685205177086087238350020761243444354753925201930824092426536035619733539456943646482670010711144268117149630952847742685653928831010464823504141223404366822579419631849290283201865821097500958036819966362343574993211083395452475809014403918865406584729392684616411635722786931116967661655244934579873637641891237944010563906003156125601055022525627488558137579162622486318340421047789736958737599869723482648679417744800850146799769723682408459461234770140306667518317815946126901011078703917144912281536047919424403303763139690455213005844013360187383377251189043190932265750173815369535003244876493606323677921164558827836952581142817015556621680396415503493492113351312069366920334474653757977087096838917797892150477501220696629808619218239543701751361170971351392145282551920442172310150113875875665526840501405398647769744452704983499102762354047352286397457905573821352478911937081597973413605227492999014525488083052766482398816115452714221076570165370441389845673453763401363385997719270622057593363840475864019544906449707094768270446036720628006583788687324040817896139830924176831524159936511935226924607280318971007253156228846828662629575776082847121137252750313744248633818461099817158667636090996395171367013547944524925139768815932746307294667642145826135114807263060114394137500050327026867552576313165595987883764644767175395311608066232016657131261915882358404062379244685423285004095897821890423633752852535730980370543525043386130462011308657323565850570840517940913825880002161838057350501629601153798812236620464633592449113077086450051596800642049176014730542715997475633241594169734743924603904408430737230200092340429872110104014759823412458269954850146265662067029142928857228041085055634517005059976993883368943343424258102362349892855582873070558200726784464218407699439348899032819737365642923777693225305986258636112904167397047838636801140345796982069760494720224007716204433778706521108728915866400571355786249948980156994243139213808737472405543830371236670083191466298384710320832847702646080824838089787305595865960911830710445515417477657712102528210233934270907107913187974621369119648503194049531219530867939130340746511214029272323211531464764659730024149809489084390972395868919364808992578177123481488373474007798867789677493716198078502662478580059203722286823138094201644366095557937034937026609609018991543617745845249674426192965171537619107620307168426151747334737147053227365071985507701201932524972379101087296749819308206015324036948598279512055195479384160857098779505791256223991703571102984178022667112981914164206997494662760631646244780737738966074018797564299239390981806092339464320209870619395632073015390209896676151138542785585529468274443975912162743979112227149079768798837362170352772015205621598767880804268288491664889735047804004096220730199592958457038486283850091609139956624945883371588111758921772664106495925664281939694524650872108231163174258271106740888979694999701442002733692707216601018669164533298292877511076869727754884262937769294168837056455092079411978800817519570008384512348903585980664646937640166603693721507966172722152489759211870945190857702684084239904617072674637897282759935731433534905641240248541855389700027416072351172828683616934332078757251348298735077059007081659517640071052924333564101091059428382666321479094534796928195765340822276593467734382949066229735455220928633842413316507222758244589928037414421312644769215017665092867095342405691290837625218719570613942683875868110251777716172148496986970171442209598770538272847602136410688643077968406660843813924381035872313864254981317360048286097248283228620063475238279332870583393907375226814006526315770666545937021788695187418958205623008062670956404696843340286205911038569342275840574572114916093063620347743271934024972459402193598531848651202859726261003409544374658451916194810328312506832838132592667321568378666130442204104892238359176424616866643182140020567236894298471595401654533113263170830981372216232008962733488483366401322222443279910131142806848518822888771312928082438415374068896807485574899642899986665892047718272610904282593510515046281257131587685877352294827260017038883398552262247426947442977753644981031436795329788013950032934849060696333306744349388540758975336960774135982650033850720311853580832760587578390713842774776323148029551719807230432148003889770193498018053780529238035384550615565506010020828201308301724808990350605895809358830110787858572517443347209429043000178784140412431210218787586151041095974593005723051168985526042000170654310571303730716313390053019701227960009177049288544043073378073573969702420179889362299182872321298927902912543983756158782115417781097876612549341006496174191012128253167325814165973513859233871601930349516197836081537678702580493995680938098620704924025498684399121424970550428954823063829068019496414559311241012260092343653287556945684218611451979296131134073977250345889064544379922931210694302387709025377902895320633503941815482582320923928609940516595498134058515663814706446216734612997289581502956109342983931160768500228567091395594016686680313907353191501832378806914466084577896505105782401511121163223927022572289673315624925872414042375222716823943527754673881481967415972337047258096067201666168879236187223566864797934751492283074837758219516311809281478367682884604691894855567978432291498045304194673980968946498629590852110555234874898396655843822721323756365812091202562041132662334302517985323193526922047294753909025184887304655660139027190824016876279543487154475991390601767705773504542955161392732405757285574416575985534757640675533273559985028324850332548754368879878596318583443618217670818345486861760080951465252412450062926806523236767025152944403231236474408171613104366166432164473276496073072088034677771920664105205036226148538335117846105308250145060279969618015674847081555599151183705428697433706077511696811346384024501802221419487784298253435255423721688721749943941125606668343740920085238566164168476660573409887955083071475253108294384868995050254289681546793028839020393783397918337864787603840213702972888697868223123833242031507286043931169973788472957218948171474896849747625775244147039445542769121326260790298432928861947455638231009157827504053734995849651543243342280381728772128453845496102232411148663046998294508621207937003565393655146453501514361154053115737297461404373720311747407236464606034485119053464831575594912957544630700120214235940939335456551877955675345549317458359745101245145626559011664313509746248850910842357041978922203156668334117921378455426040266846102787141002762169115431576332778661901643575999415434101364466964253001699298758666632292696883225745332109751793161088678966631187250707228583378805787820065963390882909448180256433889060321766484053748574979668291041802130306050284743481779183858658130356865637116031976621467147866499171808329404172498582919380674965072524718592615157554747872293875809434512434575719421733834857131932866294149264510349400666192608169139642919019053447931426764654852199200656702077901071789184361117332466399344314769810165428802264220632141299097606018958125256397092828921451290704731868876503153678416439282855952029297626765222201451222835383621717634583747396180680054987739928851352343736850029454650096016096443616657999465748572145044497084097549284002186191587089152784284097312361825259543024458077481518741081928700195976460477016510462199553823783533184646856120847232766872192237368629805580648260154236767129838996985895673395586855173351069092835050346315462387230773823303412158396009699753504854282262455158767986753731741907832892743136215976347660189740515680468200008934027898317171617818968905061707948247708347338800477860405295095007169502279604488176581648658060974112061466897445066367048441076963888321710383895450918030054162898103382739253766224092384693598152158462042962897740886698998341599091923804584335676590107843488473411093019210006522322749211869122054883794849725984559487512613149993573926333235147825030758360191365070067641009503138343669014278944789723899532974173220385425287709478119695260385164087886689343228128107687979558205632149363874068487450282543874944069402360798464937621901974431906544650639050212709690336588116686286782161305070395347822964301808772089137864756002126289227929649552766740010605645017283409040639117477970813402820201149065960281943294340085296525056790052901896603325183719646130776056346549623196026890515331822046192298941112061772037467790778865025356506646981079509557127148096727553368053060555513380985337922841801657845822846087218282592591000807086802875984635030612121578656104201639501892856086685380566856458918000877367015647422160203864798255401053212619087106791126867885691405808763118967572278101590601175574689983292367931015522738883234118268400672740475746704065329255190631516114186469646809594225958229257101579993425301632768464974366621752291360793128936941550751967345880024451555556707953788196404520939882277018635492217391005991372656293064268668535372127756895838278728971786527764114495849241500921676657415414954892410617692635417253316555873031627433847770015997615995421371241201794495106762579148696578647981593846009399518803809814902903283649445755349179390814103398455995742563627170674608729999362545913538795311391687205269051483452900080835445355686880667264134838158348008489926580169709928271042665967604601654594845358073348418714547788244422367902395221548548078232298680348532874584123231272877800865478236311541702638715750291623404118971561278848910221943388971629717328656763370864876939840533642117103889348668267600910678627910062998523304339836341874369025106721607276096184852007326188365693810999021217853255896794457845530761625019439418838943789218865991248686143903733562122961468746469926142361205479542433916035728754681339209832200792800257997220904209616896716866870637129200697978278213055537946954141110695503818844633021322882580577095741467460577368975988341570593871964650201398481339594597876680819904296593601144091516793115279106118705355365264741957688927297919715087623570375648720544435327349902262457494063030937278120549742140104126232522980296626053588352103579162578339457319737149979646706478602866142135103148191286122891922082186015169619606063039476580305810665386465542375298091144712916511489686863805314098690377438047233362614676357438236991741892058654085008472408543077082957067148597247587997502607933604583131958506186530508258713784103596022037472627361806829413639580091250595256227607353548432230852356827170393716497013732935337459533355210566567049676708200740345969493901482371186847687997410941511395156817891915834108072390823038037425085237684145257058949554060614108947532268320170205021388501500646210235179905696615961668463920396043750549935131662831787288333538902168977716914828235329385099500940337753185916650918228932392149124853698571690097304125698338397153632207952493886912329726880492168519525659329388934628595473366369436877605785265470137708954667079320744988261547662058926364407379254084719009935335763970233042167368300839375325727257370877242919074570084974794726084964307211676523093773876408642186658284643332458837983485780966956816117912552335297488104158838323257889866478361768905168657670354300639374091333154690130373169215878512270401360022447302172998480717392778125681692626913339380114693709301155536833404458305237753408476599399634465117190372648934743560194280342586733324918957722142751746759854284119221871440076280223160324994701176478435189944607692237737442001845272671371328420417863308100680753961678550303885601380098468658581955368407861617769692362255641626403849105866906712644271154077197942540304581480550230236866894327636317012018371602756231280771369029955392580844652333288619161562417397146163288583335740204062432969592436826524382113855733301913716897444800104801834137841441253381957689162168371694786843346289960520908793822358216192148321272537871139504907123723026512643230473005015027098015237731189186609587173893031988772433483073863350254120912468802654212376987947592799321918108026796122364391766730810095833494854287958876239948548005111548428309028614445706555434669925415571594593203625802499049515563706448105187336708322536912414176504377423841673056931258558090181044421806289736293377745130214807081043111659838174861382077616365837248214723762594057691029838930297756700405692010530630704132086879749552403535634376830994124033631818350130783226235623971253059145325872538501883533675624125083232372537519880592518392274515924605017458793058102455573959713079623097358560507788204351129859617402178488599028779351001575091718094006966435756284011938041387271688254476154299745827798356352666910614382785462061131506276691571500029757165221361718433252629228381671343889883195180636567518223649616602948396985706530755819667060219193178805049697577615835773292415120700662745030613675125922673186801050573288500069779092336039811468650964539611782656268036401087974356947659477216894421896810784239631175624148793164315827883588914255778607771565033821220790998857392163453399686644201686859859093931012450259305493916783295323012617971538238450423558567084652532888820495935239234770934540476424800941872935610336673220964591463101004490349436914480762243425205232236769344022407657541720668883432937250702181674442030552505156071724479885607377884286118017876011741867826355834625976742279447998883493114313942179042617183423049229946446711153185272314006729234548549176748248289240943871166835477126846975439334153551873979646971695810018451378967965033615915200196771301416470120406244165155274874775206557886882211285464492178241881250335543246004207445454563857025743335188445532056375981203023027679629545207140361585510203368755767093996620440424686248901238123910381317713283980621212091698740817299749311389775225156432566233730003163370498773409175236995705144224527836542477189114677165846660411538272114147435709317433611724658147034032980618117268558499320698239586290588413107142344383863252337519565837198843570687570831195430699147189079931414159612507941438381076818832479006916704834960772101687953670525665392570917499211407830027407397962733345870285016643292114516733626807960063924371876953960610329505611895059904016730177224361710406914905667354148913582689133960516958164567187289481624108054568824724132974864245447862563622719172274919801221211651592630025316700477364619362242882492801552396514492303876483276261631692329484880685150368058541399650313398698855653108880416672708904615638770180713466893225873461907354946330900358958665798957094421651647527056855609866120387077485629499075742183160065797819668946281198247263906112254094084274162555873928211511064631895530455764782383939167824130054859590951961213168956041693386641395660885869695943381152943625487623273031331431171061444770634582354379056657905529088137833957824922379360665365183629939968530762351957941229343627135616103291835580036317054014201851539293726652203852443538190389598938413252276719582224860951621183880521713006378682235709344278657662955722670770792876799038494802180063246727238059678427550061718471526157109436282146088071647461208826437714351811440993665813474760677987824802636437105471996684070719374517965158204784785774293582901486026364009719523741921138484661902362152758023091495360801924952034031983095224007145455015099611469341389306424738691876752074142557577510972297764624495104178472580145719833309073113173787169719185833492539024828202055396433907192376713797426941406943446591420524457204157012176177388127016222608178461898561314009304101396097340783471488047235710668554478054248320768771182584099251488054682356289255079530354504751165288046547112613419341602174987533856495637206118182816322253072917424384432065611692995351751373720258253357695811037107036469607618667141550095730265236869038996915268717552915408772500342644580964789117899913749979256592512729036515169987751167552919602171361963597422286371410800694588965264614431628702079079193116257000478316158225865663728632422846566146489653500414071942515017545835641640993445728217671897067623167864875601141110166477955304664842927577757642517610881070187379357988730231478967802541475261628396690132257729238038428390162433335002968254694548468572541428427266084791148112866257500763602126356220711857258856836191990025378787107641718668599973325630957377666455170583394353446901653570946023545386445312060689628412641614351493312807332797985266698017277429311523169659476049069155405577468037507536396413385840418812379666152056347802072629085278183951523641076118271896576479164229433047912420556840767628917123949369653231964131018123355119421756084004412242188051179142857703503761065940651773905920181628342770394773762269694552468037085788490827791410506069844504553221714520744498066874048694869288966223305419835546044477833687396256273731051027531748545205582153605596829684647333008136822249665197302746996689112733853983340132249261542765625307735698957915245411430897429539929333841165456981593608804308688989606729124454224788651690437358287694130455050537810677827092757348781678922763244677732699328027084003371565767945037937953264263714077499754668091555476728699001207766398552730397069571742673688655087582403319300253996284025539385812129096642078563195761495336532028413971664672495162932128875950940270468472967635746214286344188552688509501601812607992498838875823398980517517899141126459108826150474119751611565927678669752288712589733781951440213520371460219830281925542198843313223154761372521366375704562976476981816081039719545263161424742914180456163778858460577155376330253755960275919785985416102138705774496707025617844577040577821541838977275309453023978264894409300521592336120483514114499910778944428058383456578232729320142872841679360486861720947457130211545278962670053064961378469004605518789894334251624416206536643650947920898304179402029213145275102502571111475336227961376683694267181767601002866535349158940815347315308806750250907053553878509688154430351463782858908913269382833001607286096828164741955171696739084157199739795704793381977210403621864235390510826071877717471282293698452767020584316118711674617784622798561866343379248057338526042461191981794881367925079539521894369646103065831049436009822189980158335463159942829737866605601088018681484686773101430338578946302423914374403862986235847495873167927991011608058294447949159229760226474881580094300913507522595959806179603218667032183293013320565849753442568913153218212445508569815046099437308909100421669600357883246255301392317976487378218013746500867756219913937051569912447545896325662915861552607892139142762901989992068348966055875489222598812887965122674822065649062110379180509080306696239883595411624254158800382157204090833312584420599343756168110620557388592174849477992918186672630412825457971222516248728603191277770739808638500669313474075404953665472142380395528744430791822579820930125639244771966008549026816494360430348966161806819131440944544907942698063476830481203679102891490481363710957008337971607833201904034607354534003102259797240688159032441605893944591992748514537596009120155910591222855747550629962841150350716651714324256111828104117055222619331202710697229919239436596852808102987489607982031216520155244314694146916909063134219207409613031291880418951605751792509968974667177419750961619381191242927440995842456362916930777074029846069079254767851140639112545720474392253233827942133197934110257347992238103921910385871068206120380471011329230800266235809330115988655904263299008441470676848654511567183358573278683853884581470744234383972663446572319334142714685255174883736711148917591336250299219824374660924544433837471526526206726593457551463378611075362327247111311537767961371465465830270448669860348136174826373920348313714962268483928905631238224829090285186220200965380446145395038635599228485981090868558607042443241498161511208301648436962474631823500605913336164149947359130145715501318918794925710505725858004803566734371976246810636204842540102448417123909139140965864823978684446648788254357487398091753188541150288708729968606081953279490121515566539205526458240858874126894374695287816194072694467807801913213854582693996014320010374261991283390163692305620908378236416097722839238705405371323546962105390627119030174493059689858485114217844645340172499020769298575029690940437099647158010583144270637719777367103472629734281707656548823571367471205026133979299189126045154762563764188504899556850682236350500254804274246869162427230937885160821232266419894707818407333379934835014460501214701247763758079705987151418433012389572060928231857237255274330577268814347669520243551832765993605701050090395946616703688871631204912339244577701783438785009661670716409353297977328136710452431974596029806540314384952799141999470981872661321971982579808406373621129301975669594498541832537827488421188944819334388581966072910236686414519288778190465917301314767957672022141813590519544598488372508165455178922494724208195079838155411887563119802817028433609323464222077802390815814560670677681630592718531764541077630044106091831691017646442693631042702613795622586425354205231137969278640899209933007849823538522175583276092681309957666780591371544403190587056023288401370648514863670292180957835153465000930973121287565250347042467299828323197223004932808548248642209968778358357078890353228760840721793926738510665093744935698888043719945841582007309782325485286766088713429343744963225989094283775771572825426659887445221665688334820005089527421872291278541542922228164697446779488381695276414211877227159383179965196867671405339996947669921464863494800331802379126731372179192994420353324531056262391738245068830884647076398723165533431052292667112463571457571751347481738411944824966469705464385917309802949588528532553180874054107914582540716576578309223368546272108322382607351868592542341180193867525247685058984970420841001306999208405242089790494275802680675909016423961889055416190953569685406233207575997557751608105917805085585621120261361434908521647518063354999041708033060426991889165832562663361583114295536028131525821627078471856413179379469645369359299073217736404826084725151785983447343248995959058592259074612771361788596910471841848539619403137563278949566781604446290725456501435329411100004490831910001458142108636247278029593919672348848104980734678639201865676250807118837496878099371368188819565457292102254753911923130105031381068093982275307947068381748961498615502649763142462643974603914315754676990233562681787280458282959638618640826854652716480691878133428750308376842179100753244813669845202922023031811030447795465481587612013833573401140973838306828894235491775820937141724078441625178647324954887644688638021284911647988818196152691865657963873616568522663078727534325116110807189935640703705648528339349767896794233660749323142533922560324127619883830770808193665287077227660174757239883412927395485105723226115318176211166719887436636863870497019347347514872656865156765899265761543603330927087651429297506622215555984618680561029282752538027569270461813048356135248078239217783677010803123370539649905781564045977812538593510327355861244577515686580807755457176949963627374162470448861476913679677256548919160051599199330362232151248459635516118877125824837775961952689200404754890891735597928554901275457274795857785936302310113118203545407577764454459265735356935744725639882739953267135018136050389396503214449877350112283219331579457839860308878197470419943467831112346411001456532208389285982637908460471825828027761296925954662778242183386984946487951461069897286417863717828414160481840508400687801767407451102243307050222294197499959940233021803607997797734172476679015872578664510121380028527525654514592543972730180478458255079566674685198902654683754679010142498994475039946724896931035449812733790133944122729227972907477934087941251490114557446966579026725708764918588938157757066381816700837061817348689290224716830307022535980815017467875980822637102380012034576804989263846579953675052394079445827496019558251318101857499874350861135159428429705278952729884152169943134742821483086057294915449243471835331781239389987817508230814911264794981619596347614875244719288260308045318098971352060731721707193232767461851688805936633142240956779944491708894019537700114724269459992158067164028727479707693084641081715698333630707092009952462939020607099004196111473079035788907193226441664870301159700196696664297001851131605589221119148643911929506162927017204207295497337770912237756079403069837226125859122078879758683646515673156606070854273599386557867995790255426573991287341392205198655169182471065542591875586512988826786516469973729445114062386940003525715356694633694377412450379405085954994843415710749556314059791601376408713056000010190306440686800680740173818308535586889628156522327902289230077390428832313352455117197516427476907669460713188486139492884695271768259217620578785052797039809228298780563738597935449315749294262528707203816892075415764533063222224285839040451677252304947733643488289885465167396793399998327270663395318145723971997242767520263641274599312494608779724077724110085484360625920404272920812971274080374759512557550921840909936277653244360212814508261228606301278693310323387111838164623558836911424943795390393554138277249500982164811024139814225444420854682751519088475244789848464668363963059781450080041722152518045757914332614633340863917366926225961051649977009137483604484000460670039716642661599057243597039028276717877213768882103598632606951468121911279558182445830124139065741663246176322465170322270811701432695875763896429641157276125910351896145292182719333257250303529074855760687193400144442731781754875604745360808227844184983005694370292607895458735741676031301114992846290055578526430715214798908611254035382193697085455114158596792104912982417695010225561832526112265792039701448092919014429903551843493221206029329979602737992150057177513905351484641607266918406258530694614285280581280715967258685484255779985681690657329623995619319519561383127676278829147961988122009130537108115182315028211618893988971959426591529858197306808966731906584407519493820840117885860014771462987489566416171759654946843931597114313595956664233836103154555641266996929229401201941653797632925491077051256894058864892812040072672559408770879341519213776543325684358886885865401071206280963302542738583581006918443326631606672377101784304712839494212444686515966682063885625860701693223611021504097981863271582648610406638476849708580539272398600558438021183854736230201441656573866311943475560954676479898317805300306969873123238147733020249089322061864670244178755692529383184394583248412877179583678353447834864584145313028960699035312470692403742669511184204688582631417955825214581749263452736389471024285078348498120211454639523414470858538242068292079798504981197987789730000754009599022161494595953471917989968167606763111810164120983228721905555384868829683718907660278348621093559628916174286240089276981037854166161510614662307342855780935121238691947786947491494952609322272440478194299120571273676628716502707209949018793849018662077662925168140027413785323210990497525249995240611578068861189359975351257361780318764787875800496008091840584966038052788966248177144644201932074570273239990628320981001317403066906803020361540268376971020948530927235628134714800089569173303792188304375559965620950245000618811823936000674324875469883060755254131729873404989461792228150451250609707654565721301078176028552718870743813069407882813485008678840447125341102884997142211413542393943959031605734215826313222664787937272652292619244343503261829454754526331157536726410527847460066901239172714027414372125394703709771137386440769807385674939259878176314998643888901018282010614772840944005692754190972276805814054828699902111416943576754123303867032647402778795380684374670143329773202808593132930641808539672859604123689464226731711584010390679928117577942459501686321033435992976368011422262350855132494814336206104083884941969839757682913711021677894792761707186268157836078593294547910495075646082017348439522363472700310537278586420849778573585209337406676953284761376384246124979409075606221143794262243584400390769567526159192533904200478078940642418532020491428901231350428857033124962539850011425707771139030708433948129296466913919908081417183066757271627510940681176183237299960273950654152923179563599789357174527824107474711411661616115253477360918705631277861265590858315200646388569150978028957017824959536224555661716074547825920166986925819314805109142828553297868944916181238781630854886061736920107863094330214191691240984170452970023519405935330512214616032418664161788020148451409193811453638733485277378189401766328247887588431012458088324333613625979923080989980500849207680988647232886601476166194232643506646557334702759128705837569705314372468308781932999315352739517689467722737917011561073055077773063143630053026294636913779388114261280831571923842430312863257134764012678835729850558030670347110728566506267667689774077218857531595000918687882912868319197304024772143498529483198572259961856662790387077258694685263444725953993219881172655927472301674089461992465152316995420608128659095500834439854500857818375731958403119461810904314916837783430975724554612195287761269695837515292983238764957204173817245560940803096343399655530786938996883044279208179573403973061306585740707001082518889327292943147356563113481331301030863805489750303153933132651539486920590811686765043460687106432638904605237460061736084012770549315414176537169168221216921116489482149472983324118077126667343771479748057071270110211314214846584803521527216974953570754062573455367724346110762862466869475969872043719646822249120373988148890802626884490404967474323691584205295299316714099807608012800020285589120551433595793003053631343921159186470237109796536358113079166620332560979076992235023123152222778757690135459218865879442423459198871260947733310571771643310205221746163491336275024038367048239928786853048085498299773861573640775316225816754028322012682965393766045532650154667353490852151185991339351809178374941712680074813471596619852746137176555992645388635242144915912771958709587181868651608681043028970766914037636142867520052040498026378704221873511160833274868793274733826850053175412407273090624388589135491730223124912452938969851743579707320846727072236738325607156312340635178545544730944135159764609110279037692663320663148767085802200796993835819371941531410388170323919322757666142993009399533849370603715410677107612368981184596905833440071188160010399184011154637369822665305900263179696019211144515846074599667248832253380236801338636375814587865506475172335001451936518630079794179332687110904158360543771585447595239461836293543683429296916860859943897225787204012372289672780951130617586673321990825482215125451601502155262817107026599583169350351143912652070510253528951196782242216081921453355294862553112495709830646046175794300223455342885297792234468151526200714645986947581165552134040601030448650119122519466022105602451898599587933680909784664915987637969417494936162931806742558375863327565403354000234759104043502845382875774237448659797533183115106192269717167671893561647119695122879798457260554368024726124140205950698519839690483375461952885004863043512956493762497595681988042539057467774171306923606791104203484611349363851531556384201676370803981738196040105554900958687762326709594434609142544570477651299324173746445184364298006814924970456912749698359981550391405233407730415661174960887390759379966569862310395642672474257729733448388782527246446544365980345786171081824512192261604106558964430519403819363528963298830062018449599718313158923770021869995802045792895107353944928733794840194740709428106235136078727526523906299759503244034895156148346930733392850198228084847287294388697888542822035828168216552910498302618381003302464641647016056648678097263748580452792853685623851925853562166913410997906783995909360795670005886247507020971327133832759814513469737010548185758362759538805952791827067369684033374388653507251436393509770619171696119234289182130388959195262066572785059631680450104930494111500460502171324253661905671537451072301301889046660720719361958874443727205145832130859976494321243965024488526255619061949467837013799529006444196057401960582989579823632418900899255246914977530722032424508018061409401696079143462727415497458825602700435656626699534848008153818405590538519918311516455917502511467784808367301135680920852824819130064587908199829338681600253214123690685533575074735013766411080863694392032895409764504926372726575633126545473643963982168174358861494434452206778722809263393588658950457799051686831060060970756911418352837022055821919831340195129311937512643593695154371942223574926485915930447036854118589494695347631174233764111178507327880915316042882176028482365939279721245665337750380410013759069259344191066416179959392145253023478127160770267152586199188257036253426915585921326204289585946103618125145855402688498085921384937110532196009058875244955576821339965265235039398315076478420069536846703457011840954693901399264718940557496145620220222363496297242945313594263045558508862004572984076614145918319764501172887732636069375320162300058054340811791568636441654608065586117675561159282735681008049445347850027255838680097659372591216333640001753205591088324344307486858866881292817281678007091083896072676065865996556888183793048003242870499631119391097606326770802533750699981154691094962275391874770225794449320596244817501290915443844307894711078900498190234431806855020238036780585477623989474969356485271713499882994507978959541507142763639262332234448267416436557768696204759916793491673304955961313335036214172177663274049442124547494002915581283332664793578421646771370453730080606277810471448123248662227855719549567492872251335570605996699943044474137196258735424765052842437346154373946412009713439940315106610278439842368553394761535011371334841076376954483891361859349126892066124219561375591875338247566418733692778442788584392755769134029575533924390038205663195285190325710550468029146594502660085783629789761364956547609466251617323566847935089949561591252386240066514139090108730436657885011914116525212987465016042588290983286309322876892864598070951323542134819100087923505647778244488147440157760581743989386052164468946658885080871460290313376536391131143501738803077377049636224666322586138149866707734181625050082774557810577597196915330119073750109967683364084150770549124116865479899014531867145679948055917303503456742230419383675970544115510835661660734073568058980427992707189470671199196254042803662973060508535564393165173696383998574663400643529285252414083770217965804099176114636583503940774918060221441241603085506601808662634537317628239216145451809980041969227930510038236708296996986506783949245009969097600458766533170171243069747369343002881230067298240922160947669847374053543531546830738610298590920250718923210764055063582840495287383050437072776073649382468141885335543696871837238134666262230721300157248344041733667032639079726725369758877351944029043796616800477386655254234584211230082235554914011153097066074118440684638200325813711187943569265474507741820232123651466637216743130906533834578864004668780686611474302689158598437816299672616268331523092333797281495424767763093618404758935882307360549394921864065359932194404065415232285536911958097503636844438128227314857663479761435084358075065700804537298464059276692424057332290584030566347783968383821350233617948134742098297330971972055472944298233710398257101052714964478940460781927618489873257633544585372581734000282998408510894344874121709425343124134164090764802446236739507150457109180479843493703477322461366605630111330825305365649676939291663985158102784203969486092168076398906257039607996628316261652633363928792586012838604119361395049607199185193831108188666653493705811124425860038617309566093360304218190519988864694508960772934611130589556768821362779591011492297161999204048925417588522384336080324402817009082332011616682546428215127891194255256348435561667469552641149620786087758659701877008146659082884235467792823391302670361396487373874400804985633052342554816713729364726823929138541566709301341590973282916139877504983577695112172041728036364922444110787621653079577440236528134058841229422588097205202504681120404696505426746730161001297620393143797458211554113672327246912711853727875595819700071362888942104116320989232685821730944695015202995241485381714256976176829517923323142223830119278967462652602728259173597597125132976780908009555668518783169356059871224730386205290325781986222150447559222292184045611945998721413047003368288177917915483099598960766651279399835579043898292696340845461578486212080403223992476810333980197404219036369676135562360497879429836120869985499724861754774460782863662384291239433935121595542663358555725267864765968325868417265570616777304670350011426100054678267986829085473028392104743651073290015809455260069738734903677369092969443351804072523089447826699260096165064608013722721250665162398889141020414813124204021560790026973845572260282359705653494346117181637941304410866537201741406176581062593302990036538394279867910771597657059778693090939993021281088919289774598230874692686169305375569283069867508481227832916251913404491129280770366706747737163117799660003500508466915302027461529330399097184998513230216187053240923216248408925850188259322675094591032967079921317503631272092435739080330103075995412510902671922430933684023461675385019016445686146315380063247646046980724770515135038921612529459276811656636941510543658869091578922240627036506093510805679107691264523554626959245564055707685092601521645620229146293358077593452837282562398825602230905636488045510963946594778403874591776390313621511325304844182431248328195653673400619394919383287858396507030401189783475370198559572072623109154078998061492704853805824755099359312309144753604594014606044591453700937463329085529360479142470550874028525161310671135686429084736694126517017384088518375293391676791897590479822338387835671812303680418341243110201300327558460790436135231881726553290942482694081126382948086974239785714483510490908772979773680815765093126973526347802758726659923833064931795667725462467192929999821961464967939731311609754937618674584981879786303747516384914731661573752816952493304761223919842565073374982391716369961754226674843553044217622556249247463015009732194184637974595822146164952869811735244427207718125878063188346909989309325102226727742935153497495478615084570933485366249564783532683996344440527595079735355466702720130229519070842875091011560672813682754434340122626452955409419956734639280050803759566816056475222915642771524293027508223099114394555587788430026836307294285271419676210038980962751183751893120170008102920454343960270382686400757360132061776030861333856263129482958428884360641133846595892986404046033812918001217137356890987700647484256999626731214703387864585428508233474619069202068371258698939007241768442814411861406331950077800688788125926344276465756579446112557542574264965669983725711433191826112173939984394637048154323219397722769186020633752242481780901113566746316753031170355160603473312264135519397514530002528393890004068914501381979663034864195569646090082762411926466665292532307708950183601842715698333205341420863933412623852048261022002599825840741612721253383988008275919158117651179850366483341823954855510994754223842146112504668953472829355283349109969025639270233646724429826521561530134796175004839871434669582133478677525288311445189799762284022910372334950960763429168059390677855091494452394836582040059760723438857098195131964742135466969020567915384113802285950127439941150410596738620085427855929983441318058857216700426393414157740131695338027923570506851699746747526054952912646575594355419098652758066788927516677619387085259353808479540673096603775002524127236334070448288775230918454581427332593369226264187847591678816195802904515318516046620102535992038823370714950866638059746232883952802249147190796073902779140337190807863305998187410874872060976024975154274280778594018469323504726104923692111630370294543369807797745709679543597930876379620344390960078501306217710054244089002495363693683614287787489290132041695190451358241413423150421847990039800308812443230645179008839298352660647334445012572047165746340976038781292477152702328858851395163835146034762041578812857102091650673047624743461555590735332965048181169297370028353047543087908858360749547559655015897263099998261599509414021746684122865250494446830581535984336685556631145914317816355260578005223215845092628527607585934259280111714109855516995175445021056095328038585927234438795111800921055237868281467493471474003995725958717826547519482786126255584514126641069064785804811513328297472280696162058369120245528586938127120418894333889333280279948530007772983299340342966019594002664946464570755671882220413455495626772148523209781166003523641520591177545536297605744755541386508789461776374369814928400602508838472021062823678591825848360924713451406890281890581484029330387644134828956325434946656743893961717090798105070362996700415507091249971732475066554478263264240804730005661556385251565060817610392483723638916292572984977229278786458472361886371664116986367970915676048197369668295177129069994987905337914608480807484733021669744223133521453525619993896862200475325703936099474976995240809372498337544420630029935349104614298158406211910344988875085405958895771239303619699255059031208506754730706338338264563625529514746882594376197373664466409522316027600843153564303087621454793965073800920918137286038629763452872901634992499894622298932270281505277749089549878026880449186864074754420431828118124511497177032990935598648274268546494791430210868601996594723658071578370021188729902911014755169581654256695789094175740662387844785130215917934140091372439539869097544401506704386435766249691293100406989190813938002104003953394543026459725861089363930259741038161967009693869745690613952966702152529940710515901846037781364704454487129481047091316762047280896112087908705753891743486861903293268493330356161970070679617326154974170760698876933805921995968872953906320692122140859302844953773364709320894683580528037810725689775554176522014200532575410357340632998797705559934424092456544660092677972424203795846085760404733378181851074548809475754538215564712115271312403452078018258995409895605623507267025245452827805956882572753351444776704791158291073105287912800533529169617768546125670819736943265786927872126753244474054551779398355495525707897403358249594684986548764548358573767981150061588494472799628007018350634848438699237018848802955772922345199945903487856970382217000045745526109923966351764096065516909885662993022991363048753796776447884972485188596376715222499332831924955593975112789056075013849863571213372926908979809274627716593802476177829446280695432097385338912973702102088187730856086262336566656143550000398227340608869601735803407554154388899577153046900357024511639221938859080075913592831896645247226192651782763860033952850247329826101085386883290651939178220489280526205891483387034326614357086025424347308623992525139464977059393669927258758551482199005792422636731155781498129975014517302316671728427856623451438338941740768215392445561621138862339087123856240596461395691882126876890784493757279636582060105764702133489301727339983150692017210964556351040942529385369648940830195595391906670939335911421006624466115195764685743244166422776381054327001865877308601451570979044827652042013376318849410200093563929208049399798958723075488747227619416086221160005300788361333416853689847161491498650905923763103151845065094578989893574365154913313789891692062614598850538058255449751708390191708976281032156068716953087354899664730175063026736813330880748452265621302518358188810068934065127304817822003294121045094469464978155202425145383049664921924228958385830952123791970942048274189770042924426312364222533724115604217523077109888454694730476305247407851388662735999683980841059750614953736268389464370895970911471828754073759275805612341470155370586786457082617850947523114322346574899954426714720708303869775761350544096607127960718006258743227940777568766150284033813722798183276315622365527956033565774641644234344987589922659435779715765511428865025293739455067333563374654560672728148858127425143454477620144954958752349643871735487959356728944618395381308949228459674047346253965298031607041362290376558398567521254572672473718267666733606705370701726252963790669799117385306150516188979828397017122899783462157653881314570080852557282685923860295892961519385242878632510059378996397419400689423016894641738027207696795522610110228579380259087313993918787188513944390158347248438038210306619520687758034049972675409329825174452272362161010259607182123202223935795936694664651378392006763133741003639516338501500496796448691259021923161514372761526796779904051855063267856893788380491100002640899948964084234959163775497987244882300720698262883923975668393328428098256206062835454534093387190299610770268515464063294204691101516172693146814936595263415264719517281773652147819008071972736507018029779954629557766330161641696542790683308200512779069317037094510165948556096835429746755196857436131460262173570140353004198515530507886095821862561570911680665011889377521910100483296925296295797126156082892628305401312145066729275695447459304219965089690447745332474926460217401964319210520993607338732249835134579860106569486261102730955889747320291916579746313868212758285592663130586472638518806079814864974717317847801741053428484268000364265341174673064749391147960665577156453636441483820002306326189123042276783100208808082965417267822967350184871820423870817939823754511506655104398669355923680945034189503866131772990785444915841316301739593597694558553972128775794941695538751470430976956587835286874433345668778733189653244300068936406011703897197236600074270841170354023993464313577378093189486078693810489992647322485628320870477267273839634170236960158920069181925966362606768799580181447792700339393660853318511998006512875230687018720309897161289935220442169544810046384113528974258060149710387108759334254896307609623255536374961855132961743627417978327633406625650436506360856525190406130362668498312571761556854431691275855071352261876793040878948977409764356074308727417069110029231132578795716317607602220270558605442910950076575743289954752915611542033117390571724371459942624036168436930242084230037029151747314479562808584412384489376617553520083102543824752084678978487157186194066021964599537724165881175648535813515040747445199649837502249843599754201377072476529607436174225099015659207885047422573241927688055515980648809714908366905334170608824264995202886250470099001910733191198240130936621387066435703573372216930836675033688212491686484142293519543616708857624418989017602949818063551220404304285959270871613122254784210358560065854820040035936493062759410265831123195678158340736562504050169716593803593168828760126389899454332911963018783843076365233913022193921617745376153278619143062305956593488723596046576751339786913651497676266789382476193367682755282639954592888791680502509958030868268879177016237299865682327542231267010324677704274145673398306609402332963810383872500003258598494041727897528912731172280031457414515263676652630008784934946149902358975243330701994115169324961069371789120152343183871567114877145692660633145082253886883022339577454383331768741028171115981593572422249926465923963063260051592591297138436213776123067244599477399132487506009053196480779064912621396257908989172643037732796425619991838515860614388355617802101795355815227990946817679050703296344516462160361863959318914468291028101693837189849254009397668128735489354519529477287341613865339880051022473475671021736207161275072073889681643367820558421215619790233166746516065326207614974170023517666638479451300548475683318886455540704347515400536311062328948315435033889901305705484686721638556028288917997263177115508391474024636794347380076578727192211511362537430578950007932509353077124329943499789891541037225046803559163616591654729260227894636096815666361340477722755840934746876240799745445106546648027927712000021557684725761321236673213294813297592474166944620861445194645549937996107348081200662580172337387319025782712541610713315510431985549967393107127843407514630066480399786128570702898032105653923821644057210080068556224524965406330451434364172082675706713479668800511118567149751599758699102754197933740733296014519612778402657067216999363372947956189937626534072585071228582700256806930607217748272475837014545212265115445632475423161444605752393771596925554367325541671748123606912961222369757433934957514173212452098145012366969925382482471430462596947743665376829651333423970511468823035826469324279115736246856696103416603541641261591356924888327335799816303833321267006396336233392016281074261191930152283214081846362631968435750158990002103829559827236834326581377904978958901125889304678403139081617199332850799197110435381626720586193179996126185354132589002064516779571720860272555094570704223072592654504994592127883663620249782352101910559436869078052011842664179292608820733460892828386610990689163775575896617319700180439953639684348231969556095885379115405609740900367114530144149956644882195350137223508684347308412519855817991423825901703087223374019944048945835400959049921916575481977325281337968019731715551886442930047786152975238240634421470383152053829783998137497908859464722002420632891795986604468093985175549205054325954804987929392539241656758809945800620906762187980812866415130755017556476979685088962246615089389286282866500778739922919657931416246009412434327829739042132835528188634942198123871810103562257528998351129900968680215051514110744654641798392156440565139414870728331962641734292276378306611397284346020826279638877121126629582840692241990553998287329306749540727609359117355811831773721020576838172857984455268079655486198257771224892910776931229114050158442549548967960116660795989546013478231004795972800355454334832674617334386997728774071100527043668369928298765167388965898717165568374531831491044459696902512635723889523336520225987008463718641331889927509171945109170611355114162795924286846278004936426432471103358197871737579225006778193965742601097821904328184095181996329957889425255212732709254625163069918164585856645895978303998743515667113758178190075223306591915523107917913526737973910718727124539624908843385957271727554967353121190368713728895981649368815104217259829085045649546522867306668346682978690510149547327689902098965969039980562194005004159320053866941735539244097039998386485786635411781117084067274879524265742061268448407610656723119340299195880572831801138495756460060645316277413532035473053481383874424053565922851795149834839069782796186206621815459276032999920156270257924451848015072553168728317249802548003157706755452953148967107658689866193945378476330874570110136758449649601388423012366686480756139764753174470564331068586904301186441552276193254852373334727994073575333213537301986504083117637231533963663106823083180537159376192336067894615489091942405174576962093613261381946314126763241964315530258120838676345822383619795168296135213241419935347591486884528991561939193423847143987015869523185848951065643539704786122322960951819962696887282845669871049332143399374564281770152132417181694849014132921494757855874536175779816055611259699548485787391096422965808506647169150081690655929387397752526290543316556698487900512946535537089612707384409965683271030650142611214832935870083130942518132502615200813071549622380883095052503362066191142271621536225701641569955341964709923594432499364822242040590365733305185811721061102982555862250330335866412988965343219183666531799325370761863936553721223985436979450686741861280883189615293103320658075868088167872408126264106020228315281765841997547386273605930860877187462975379285959807057433992340870836738919810529381915994980317109177651121156777563755907750514214973052883926435340559462483824566574907840821096388678210138856920399623463163206005729843087271349758050175833780993970620771784379325057188039571559516155862448145301888374376955104606448779123384095250346784206792567601836772351869239365870648540722838103000150338094670649878606693987462889677866021447329005686332707671880664065859151144789427711897510849892553838444857599555213751961616966485257609288027538520482960709935008270042123781143888415211754084123387118499300804520606089023595452638162835969140161208243791103960321803972194247452436070821134418558519403174938361554413334380754951986028379779520880318610911381018880725049315686308893410356304729585337348971868166920440313883614218165494641543197816300936445831371817733590341344024361927937599135179945608997827934750544516824861406862929401160409757591695891996939427775097134172763700198464929845315184383518457118895976782838078367419284479058710113700582000903598845345014543498915881197100880630581246012230376552125996723091952671175969715131127230855298544161232856612566735040003406026792384170948642268353647631213851115118200905470701525874449347609674960818961214245991548822084696578040659197669079759134157878288469719053902110392312973574247455421157761391548858376409478789318629870608253131971523659600679899472545714625665750780093510974091631709269062416170543517056442033060515728385203259897194068822803247645973947990968682920736439632298547464022166535536963115523471435654514104220030691417374718978247996594473331250977751341108651122653246311592712246422011229323174570890311920488215816765071988474257482538418207046732376568176889403437768094875846961460721459992595698522004279091601128259755117272746236300144987404574348103401524198478611031736813672505236520010024251831543368680682428507842604404009623846696059275946466547542407083182828791635383606491868602801392442990239278935237451659725174684309280722022195534589010697452671354257499909214772649579907811665719380941344344434224578386214577915090368055766098488884961122646968471885467949130278220137719195511995962747626551267803684529984385928750884867540755144807932481381976334216499229241102701038020570212793632371604889136050766747835806337956299307281281989041598826387982191046105633992923338122298357004887870375198571965246179129136943479654465599829824734570251251943190289160173574156289969471622941665916387043533023467581614073356326869975967914274254138163778177003001351711132788228586464577975555341078200339324701208291403152677917251916926009741925966389000672107930955264277059697810722961225115036923191811741434508697976175797665676976211064511460947214614986879906903711562846176266462553107523478850432219246370692118917931272279991232495225642599953901273771536584925397818126966098058473335636750327061872808091301689944836880543087613388007169902336561411946187119158756273214731729528513142097044138879884533535246428317435307717517933424856164848671342021208651156949378073433172950696843993012917218317155726338247696396015364392413792890935204073654667153573673863250461095359088204817104454567980191084361515525440472488180139872152102196343781751738683321896195509419826751176066373098514657748256383815278972580455513325073312046726092424109565669153492571435911592967973064266444392643023696589373854073015964977982103378313968374939673640628689973806820467226442010888320749074156879684225290284557846917484197373708482652640194430966143853367479356304337895924193990523995405878760480548573227772100956420408651834486345853201292778537018509678362119884425701924188623104081718060894588372968217333393251138776824285221481778974433674334386283703976039409848932665846571655157686657218993542927012470805598202107260680516870199280534044412347922853303635404302658613207333916365172811254966463991058006455843538603525249113409547879973535318310139584903723227880984002729120840568340371002747513743959184522949634207332181755760801461223665828000206790582410646022523037936922590024150550327494552781871642087512706497920282503409313147490494810565664158895705794377248554623498138642644481609473094099146036021921554552395778368874001200587502959529981918547590614540409590075266047118181269324109497078008234867031733817006427950237823491480968145474125374689206017622060474185591821423694141572599667527469357394304352787164440273674829635803657974608524008298564252297228006415079364302345836977550732163691334637190090464539980442811161561008949015895078494381526780956783657838104634185415464138057475746466932463981801148100917288622306381832425500072068877510931126897691870352965946664521998959718057054233553469761661950930167339630805519290704216692570268740281908534318614606304621408092029905026074006236667975801015358332432838826250543987690794657153127323343855169368960818877872071688683463990951150702191632229909055477955048195132968116275514288065955733805649635767898881700736605080879810357778855081096877833938695842105230001462932431624526203421146745669921506533116541790056611406732589006843862153962665578167918159763257573855084159600507299952187266188659849970717307318650859438430750428433078350834549575833804734402209007570041314334149884824292699306226198934797349190467912968455995576034307920342184608386299708332955174099449337626434984718141002446848164515323483413407794219692316779904903490323396901656907555220134058730277937589520510534676921907315707432202001989452967163672707544041189478447426472308730213087292771501559048188938759782041218370646576433062576071716131254339286678560301165529256163946389221506253534018073049717247679222858307358004944235043110835216302149290639392993752572789000065457810832501899829043037804679363339375551931500825803750448224236706232395427615305742897913055788960084472295968121810961617416995998677203937073524350192721711452536932141738187768552815708531888041357580581923845013450643234265014054293126562732118502718260410123101958762155980246160586641579591221471801825877081527058281735991176539291408046689342455427353445708692823358992929477470803905493133237331089650255275091720283928323065535306737955967764685583137049011454261852693781963753229870830946856635478187677179399426815842920254056075775908472043472727939418961476089877395812075051424357095955462511773426027544296022224699493516894872447096851210516498832621015136850005819710787618208373849030462090885039941995174806413206878046338774472990223708778589370771209179000746481526006254483796125525775564739640198268136729447819843718843359779810272141437385865583893003285461916300343537917050448926404734388800254923080259187782131152608001520737676873970384421180779192872810183839414442016435808086457100622275808671442884756514021545655108436131390054033588485081292839292163806271253571825938698349425033634855375154469224685488768705848038081221577239218497281024764051808419915403740275822124362609382213580441157217031140358532841693578798583187190920927110696982832359785375325618786351397505018730976614469402962835268751079733917378865429297314069169102223305098182560137322958872570739092190847209961488492192478514664223232740454444742902415383705148746431497688739627764112936074225262338140135066446545554702060130339186069690597278274484438106629112149088424278497947331549594999991379268776211473104516971149646530449917818852204274756857570394947096720925253724971164958585266715993166162848788958959807491394610121869098401326655999541195867941515778943660749241866044245024360554109892477659128032472744499447299488907713785340546268719452193986419195803276197927493176043072537255644077661317268969290927357914080001775847746962824074617701790825042510722514544276426301968257361244965694076462778279043201713207268473742495007628584378431817705159072989425950609597208437906680324099636112649678647338146706371930346431404575333078628800002708721531819898144303501624452750446268356581430709669823962993630949874401321160986921526592314120434818891751542326363004516977942376246310361928126845122187915223603084909193883669749384289481368156452776676439664294080536307386691069691669910796823986850198767931819432409227296378171481125014423672315902033493348900386436338603061301713745654445532670621841776832822216243222431129212313368734916363192031396910563957020544854654148065428253101724767380700046817544607927751034415731203650308192308739495365444028349708075924529888901454753696869113865853427097272981509991389185036858115994768714555648441667403362239977042574436736260037634458520191924073393386698825746384634022573310855172544162551422382333427101716647896796774347606966627335123598568126834885224283430295736603164387801129714432465629853815700951433340482579971150356634307541161957700692436036157737370186062839977495205336008779655386998970139893139911926041790259232279124424137065148496088642168856865892839272208946912067939633577455960585346390485565883870880533289608195200776099999928112095774633303093724446122479420934337383965251551518579135405636719388073337632822902176477131088121042888494365005190242852858127357664045239611172467283529445868136478044151974836893015905257423587221121723226823023221095566524658533488945661863425942443949891854580518539390535872327147164627714225731919911856435254672220622705202375309540360931697332475219264471505932249880390230914206477246149901758843252375223365442942183154485316782466686314880774018509371815416812144194277450865493030671140632887881625553609669597383703468836048177087458366928541871834841227882478630128043475697091596040155445155304165442264043952371378625029906901651625690664158487055446071140642619915543764990541530949460277754780886818313904690383501626488487337785012893759746536934749633403516152244629494627104511039839682292363315483803049977432514027051208600195691994162841117655466820493879742239808237285227474073925019299141196017330997663813350235763398781745374554565341352480569900151907773989196625002190504689817237439922043649068905753845167791515900865664167352103821817880589054161033889682204501952593088117016725696369029686377951953484985357610991472816426587794293051482543880153572755326355559018037421875064062590919862965422373020925663142681003121537946140599067193359103851045071024310989542928529665493473654172930509562607233724771466001289765856957139692391927627127012068411501119099875527036284467086683869432047785296534936156386294359727106058778984421605868660533178200755521420661845518161901218453686423615905936181736037529737754176683842042606771693961034483107041137806380672645677495826306699200573775679823137816844709910256204478612173054698394725630074167992342062506426153682124379169455914455483043836476736806627796982985734107227917869880621597967460085640624848099126741993279814095335041482369948181785456635526995114691306196294099227847431397735301178038680778213857145272679660247807747138073361376854991373893346104462320978262155247826811195032294688756224933046987771501062758833605721428492126498720672703318809492866143669324856259383640966892019913417893880767981292796221818897414112178841514860106137979192131500664647414940046508886043964955810406464352188617555014771960596866377568876887865723393668465555804710912684644935172596123341304338172232993937562493128598473677247507800600610437170031510127910524672875736316689046817856189957414020720508532413703332590592178760015109494926895283524432639918992424526518338906810698378575045860638567378947926742698754372093987016873190797762773271236628533150904698361447162808033867372735189233703650723390988923850011072180435307805577755639605053477582988831897877783842127720113933831152849272109781230008065029054060923862684888940618292484099773052039615168501474380698727244591170259843478550272553650410503482767725230508571815025279711045641058884209040935675649074315706196234262969593004233879892592975522033490210200141648767550981846293957148276995535302338448291277292521377480312005487179578320520084132352413591948774888757902800923841513833091053493233080366583636038195773960726986461752232512797168856527158523304001180141252152645232679744263675821382454213736581160118378079460403663562335035434310322421671851973343691965533282026426958446530904925825213846447524661510970737169154894222862126943845913482658088756565768903576522125687858225047134594995304938216686071910986479331027028682710229080196628421607495182996129987924707831249809416408667145628622922595073727998263927933577521553798676541034225548394187500475275620691782381318480248400111165810874307123565272780103072935504911092931574070195394013404640531873268534286352735125498684966774447988060910082137880329921049564491653093463096681715401918205559822737883480525723633730087662992015228376259835894848842588077850410979549796985319035542872621023329345990546372195444201529333329968332996070649428537130047604108557815983299675319291331256702631454912873818260593433580752448797591590578209053881295517056281389581070430584239840495736410018527778655958496660895125488903247007087543827727057529888923691936629298323989331067630239481516709948996807724005463214586050935559851496775203283734417591759025277965185534228560684264492362728912877809593012505890487442901886413551520328160793551574854996272973498972175923903898351108821672884277398174119029727954701484530493803530856233279699355671203162898948819147525311267619860852639928115690119767524912416147018293847883415627316895344666836079610445101163478801766151149061879517001202797925001478124100769829785481735747514494470273343224844977386012448688760865509892507680325326461264915055748947109214859988768451403058322196396233070565412628851646773041719164299997463252852213974611897162625109284262094480434854057149131222886745746749397476868374870892370349628341164848595673353945725001710668392650848495424344034999077757235380560390726477887062651650795620811270929712197637752494990216153998224528070556439671917460667029120032374629271087265524263410303415818484835062849993216387278673660158102963222671534230511320089042569719967172290200534469168186983164005619568699849080373947032352225128385780789550430826128458850028342132183652075674407334185974543435267196991740352706599809954737130874903661829819215413284413816018144469796265975702717755586881837244921129095233039112945328028870948813384623810570930401490962869035193177342967493481366288061415894737039434597371987463895703011699896225565088272632534446682753706377332611915231004886295061466870862772686207486928463130427675523363503365357868362730563888462016626879706499262292286097961129618179592046855538441996882671438803009757250855197636383464194749413733588597700221725741944501182447782007503849472600905482903253675683034245022891950098589798158455349213678512846103207487420427881424087088588079322774675695559460526153615730811654284803523811782297636230734313103333337043820416137115081380403329981351525480292694721072046470909847070116837253604562515170071540197051558669729419883676617874116092240786995926438546523724309128088521117576551622299778568112878590213916523229257855506454246691166572818506126878357631783426297363650516089965686876364814337101571386060578831511813885231103511428001951470831687295546326106872510417309128807784915582549734890736709039210720504268770864955529609235997344594115777201574455908664787908654344140758171794715334180648074744783087739048234708009077114252807482239900518366841085505903106283958993296595722096747529129411552632569230695771503691032922027140293489174310022843300801360232299325452143799279813470905223445168146853759924928093565378423387180419404823953742342951818950245681199643481902412754089927307551862466127692992469125829504273394994681411904292024722715265454085062366049427721595969874052973434777215364141429133926040189543426589781190214003655402907822871427036597702487349086166059536465837369797534166532181749302169973473570364990510012933638635355064306232397670911834808283762978755128041976561214341547073383236861982868667093592380091436341421473329950913662921032297991841160695705376683058943808170889616589508260698907621023977915140518501503333749539770101142733540114632302813565895726871279505277560653563413850867666057005142058768294096884375167487988866398104301890127632364018461619534072293772283823411809369339887615461362215000034790243879517084624056886233604942688230343038543075263273583653784885365008099310845151587632625763504785145001661226710975187291119245970190064711879161431382062465723261147440146746915975138907776337934334278142594788357208594672478979262435711185472141845690895393246945738336384414558471941351956587660997744009622048345935833283427942937250014930368649589836187756049431116566624023798259595419826572262970614864641195703827131950866844064936241155355903456955700031203191221556304664713058939522216291514909161631908299616824509893027624776285665863222311443637798248818055812801598791368310396065543235420505352592528662818335804897481080998830853685120096937934688323701352004316396936460571245988435822276287093809859955409815053564104978898822101357284125764056782293867271977557735597818255679117705150838871577729328720009119773442446440009196373861947730338968418417274767392591511844960356319855991037477770310986196019238094049277150809528372793570152317232892545069135144625105928095397019501468278196749676042881985165069216062341115673075939581677140970150074156756955683429935275157597987226603134745671788885574114529751901328496112221639431967368358623792632542273063674095159370405189802139861447739952440106509259222693529920249289296931757966855354393850420402989871527740778486190992681382168623173867120980890074816810477090362534160512113686525908397116649986972680988740107837251897486829923176146279027958160161612021430077894076476014142752926250496360755345978291220773289894240555519703526966025805651443753653221612571565052714748748573448188505872343897762439056029169976813859433877309018285306838931798575200445547815877248171481622502247765709063811926088260980942952565810870714537124208572713460750153815324079788722895583342978001256091115014833343780350877679660664783557164538137370472708766102826292210396845275053563933532858000343907806415698517842884589467215236668636270252313687453284080554152556839803737241007760720243144895541285983243170956890093056620579333396045208148078492271008644503684959230479460744788449108481117649418334468209105403687697021743179817208026787350303265222138943588899080992875729323738541993472607258828794752567115045141384811999796971756983933775906716843925303396981964910738934924519887239359728342474074516221142797398926695085467042630863193879715009820347985812027189345081454607452260109149228607836125627598071062562982669060370031484805261657001823479332480773407965753801479526402771272505807431582634878703222746776199194300965345775736185288552569984770242130249226765153607501384808378709258409908119253910746475299661385639970991711354655466639368063495459174234556950102875247742678769225404157497032596428555130386583441709316679591414887853735279448280411335428168059428527970839474474640442798035896478658285219461931598716978787521637116131539305376039298505036020643119246593895690476155351526332593226009552379545431246712458580725887590600420027175541575424117570907878686594881966219032741900756673167402163542460499824861797902032008810395072554655384843486930001555122509224373900726984910973138201084635535592370563757967848790391491671626157162286056285098699361167325946823072539409175325367551126817765578899068941822406984814177534667288815218736565914998498977715817904224189677748904980190236405067340145426029641611354609654438273904744054105751382604122855358347986480974807720244017686196362355721112467577765687525924423869487925601380094024337835246608749822739662871389292153227048849400434060994353882569643316903221381944386315362770975604006619092359987403463877666346421974964960979024668084884059132034001509839050454130578631513988670408775122306329068523232374300494938554290146004060839781355378309233126999262648727267504211346809911851266474295278465219440406352103729202541857624460436589293948068062324783794910265547798185470610439696220757692378625810588129790327703921200160649565416700429237299593737500624765652744298407568212350092805100440498821007502528160146797837729497422164173012521016688711613551209599714218074193693263722418071797356549679655610393173147867258793004664331685097771754270297876883645883285783983289771755135990857905461058629042975475566077529701961279190591748800147884220088398652126297063135209496147994535121616385663525956869969070108402267809907129201250660537932994466565724126733344014558828628519603630627397099341762583199495331403390759761948306154097179373076465076822728374635224057026588680756094234720344262821434287547098801675991440894514456714921906213079289277529586631714764477478817428833487795761214193001529250699334896155856812402637853784193102322326414656217456944849758459972267518964666345644336001978012254266679505218116825765549487397754887908202475611652625530646386322697691441570034851913483617488629123051058732056081052282716403990755311357330597629189274702696751002717545772961591160765572403383553757696549792317163019309299248277887328680686017645056793826645202766980201749082006238837320798299774002417266195873314059744174581906989896518690060164950823621614620656085810377030592823317046365497981337638324582912939707942065959953371518649843354653330131813660075878196025101202279212988510550348578054952075499644704167538827053014983069560290032364851641996485121713771207489310624675949266512279174506570894391177331761805537950062068044995126220699340185984994637497025889125352418371284012310789159356068916853333973658227574200153513940731895667478837773900037995126114063218929003536762190862264098258499478238132736705259628902849707097307923802978978677414728377700763259025704862475774709944506142252783213833093931487292613764261075667463331641216768033110226563964362564862271156296475034523164734476806442074346455145007336356376993192469411114270226435292812650539280435143287732237416792610281707792074949889841101914590070290228635112612511424999061224614242622462981735515671370402029760616339687792577671414491096614401506257298974679317529986720639321243996610798180599745571986697022665930531708699709166726293536298444241673454452961018628153389833103974036530604702355603627644227762272439945323332083706908725752920301612790970976602500355502537790636985108821995704080420388393924520838347641203311981966094180775039488039672778130553136678088638636714056948182117674027235266910500739453207968682920882145396502871359763801857303380577993665885796315747466767292453855227229083150233645079282541756599133705981020213647358677612560158408258445398970492791455049381175684320939566183161210227915631347408439208881792353510233925170240070041068926365961468636831365004221279167657214595127526096478848879992840235692315043861302761530045549956478898547442335977931441187085508004920847614259749981948196818910233953936619092310300517845658348022389750546442083961584654557927054148850545669155048463238073770024063614539735228210742383009615516279375871019729976357131223626753252975194479077133040035276142084580959452413614421728975950505227352673615322334912193636197979394219566605130951222748916315927772750500799249808475628938452308566964737954461678590899969335929271161694220224240702937745115107762434117628638435264303839833435706112738772074597037835063198398733827579661278658819060542509297239262290679127481456813089801915215187877939518169678497602370066518618500375234949490071641787781309681149813105796604868592650090737032544308170493683317089590165879515678480403847345661419928881054746121934720485756094001138310068656823013446096732527500889252439891313658469581411258847705612016964553371922032147659443493516116140895426571328889564745870955992705427176864454276584556747685937894819178487434845821793168980778802366299633590210453168556454839598667744398540609429673450365937006894313463821193812191412329012334875499148215897426693287539233774366227501946612197699392036665813280620205258595018063538457333869554865277066932788543417974379947467960287388319562940702334453117492645121843500586140927815143544232443922273885340414795184552447665998337754600063818828237734282478268938989694606626953087261605606032337465025708830482761881059815002807805982234524110710347506690124137026234598482566269385627976259075569435565451572567486042479257081153092405062142226156246162313951688288587727227366608350795760203316372804377517471665403439337838154684442139101765591313962990073792962186133042473869017476265865601216729465441248663714535087143243588517855709760037328852174674550491890285729686948747368120269239567519367626511713683809295533886664185965412120262675551403723107280211136559479120336479698220547062132164406559895607508290457937276144914956987834411415731010762917729750980859002513437320694027828464099168735693533246690012302161893284798071798614128991915271674333547948323153834351589941081146709790750356765894172240928313383406257209206059853424673094602234459110965162740256262754503272121077124068929486897868078266941529912364695641019455864447261947460037585017852748784759930744757790976162879613988084574936774033622548817772517104160866643727706334619112194839249846457268340881522734811419465034752557243361056242756331559962020106194779669680852822522936221495149509397201728192336910228398743507297672780289321895396298974144285289466170851062303546074150351212185691718240016772457554485868675163737128402969091739764724320979525369529463278151711009057506263184336473173640728774862840929432755948923123417244546779890959389537509412972759562622561129297842207998312161069678698019727275867604487850886641375241781627016900874143168732516563644492447587958423813184248906734320694162205066879643448588324481984899075714042650813866512054420431335443855972680751427570389376459543540509868232609710003221056234075352626246685299958052506993975218150745893594281065890548876492147626052379329019557018469083632385220235248831973671843028612610380425107777480521217200104624065843117930319366515443406108088724654283687527103819090980402137422402898649051661678342642622697172115061091341595673905536189218533984110243477980248245523621217506614948790843211157969801646754702078056758470196415936551771192416702294749556555197934660945318467853341966841970851411838397606264777579333117063046341189889731150461327381510952818534480034227998741397941985160563632645828292240342774684617480607961057384319207538509869162366846382600734304523073272604583752001874394509696865501252549626743266061921511862116211284507288374902951146370504910803905527679112268886364182983523675454250808899390002821370470094247168730206459255384062444694032631186600315028776461779505198379041048506027241211473102946202509256586287376026168130586169167361648520460429247085058754256559420476624198990710306913405898177790147281234369954160324140081018194769699368484330748498216213039216431691853702097587161437911428409603816746184525080614652959725327769274174929955087334249620145534715609411380261597087381164309479779693387361105545689103660873272168893346404802736962627659364899988933801854433866877223236639773160991195288877055311147511812803663355274065523962012875083251210023569076906135635067030691412900415594619431966003149314478029271673257798397332503533605530208364266098804322013661823808318019508480380166333640104720759360218017884750814178962493551584552947926545101795008992463390148148483064749834986484522343478222337531830162887582002054667740784191867306113658519273260146458758838594363966108788989913094837642977887173844663995157316534812786668079573595277216963561895323837369213580006957412904595860235717879661361082442520581756154621332365565877196179192577734079232806387779154397899667301890385210876812600837519352784498147524938636844574353306357811312753104325568363463546716993170114029151395272295872760103558928070143945380742508278445398960646065771866019606986902732025997228945829857533015554844510474253752997831042330891016824325277264104249201191690152771608144867182274416909618063657382207839921466133223765849690338065154886841657937152737242973701538976275262998006179179118763980342952655152092546237673916627766239119071934812818154827469014645893208322799521648315390701076108170685770850679093966738624751636575234665984370973484904400618160731045931035483248506545170500000505991082446742660565247208382325373026851125963558595196304297440084188207262101251108132486122338906688562507396286652783756757390733058299557436826992869124684836244160090403271670795517559416244418651438019551144553729660477173644941830415251280757169192729105028736449984342755512899477415432967320073324832001243557323276020490265279262980569372931418989464174459648318583705343564164798073527144724033990629582581714026583662717484461289167315335030514233832250010223238392643885958107304790300589567802646287802280788405114878217812452540298763916917280063810399675186633200190779813266629261543438002478405874831634381451279108489287620760146797828720892354579842039786243097295306697654931916835183764962610847332202761087009550624873117290110515362955918772773954404391271335311474637807397488340436294295988836876525089974859433450684858831604815677496498273329293464593688980946160113609488563444541487092812785736432459792846228756920963555735930206021282142719942162478970996282954008397230796295133061831493636443629649589202401642346126516410466215756239606472179197679811259908318752189642109593546228150929803730767426787383361705274816407668388218472760642342890142908477211947569583236653027883901085563703943789611605998024274638788244845358504554330896361921144923480889759407271797654325787990684366879330791964260929935125290294943683000678069756620760346016147706640073761699709085518964313357718922921476464124199503566765097781226677097809081061177074193469249964914792715802409255069950658959550360760759128656262509901943866979599504904846275492600859125220982075064654559671348441136591348460527394496546256629152479793466564612312929382274587292501669843547332513845637585575691590442330280362029586146650268344935697194408901947868789325520152155829523016739920717520174521134692800106398766137425440054380224076326157259436786949610952698121076304066187990710582354848717119948282798794159169032339592902371710189382253126429692512769586226267524744708045418951476262066278213029596803144283814233144282927211547522516522667894949234076375629420736140685589330401702992306427145482283383108795729396645487100578591035909661258154558824492685452604108023553641388000379112667503347770202586124378532477346433657218015825245997891723084417508473876137253863919848811448174933228677398808027498110320473812087688578522402517723777137014499494959934438495981037180075168929643060011871544175795077218928842330617025202479702959610369079856794753882303507674532129272334570300182919114277525081947039661603696656734589781069711870806451794386113473149216115556490799849385890754498273257004693133180705680012785211285651194486445920717033971612267968953329376608812486779092997689822693222555950480917913322247929537179199217378356827193344220448977836479519289407717305770130746467889196271097544794199915711907658841698507060487994582740362175172360233621333192411362484636659410345598427713303881974539172563943158050677525903566765026918940445569679244852201757530520648871112866353219410828759401306818050290613075751346787716118417469554614983165580682731702696016059604186085057067987997039858910548177054136968534927781120522549719894887867256219010091051598151668844096198063408283434883535025333795558966544404512911509843607420968818845026188432885687951063413857427349625109919732718123675860052087310809185518747338038781189730179067856396121882812667659816460701489537765551246795309284440152669974520438421544463873253370206149961501938730923851797913804452602715020193372697717036894411651494516110571299942256590045177032614864740315741369602823400398258179538358734582773007896516537718940953433155201682150150407505068577285769785280877718042889248704098834354233499900579140259035690388248862570930467552771111451168564644603643318271374169918057147346394745289051330396440519547035911607564469549052357538120008294647769817583657434239869656569429146885110146083299326119797951427604266556010982623624169524950889444415682147742502405518409874211110354303119292888614385536244794182439453778859841525649611177350932798918528196753709806257764631747254000733026523347209716739626506399476087098315968902126794196004403373627896833029529406390992411369935624733249628825406965753819730153315305297226731401633220423055342690146900653948251272392113975246793280527349470370520806074147639150137434446697863972555562664553670268178069362540049934230858267163789412836017114108289762952848443161045729021559285996167389994628826754797154445539569721525633257709788960711437635202399552828657341802772616073624159320491216463032852302569584065142593367695544753674897147712162464224980888429824818671305951269682207606819099732711213740947788409171238902738332744111452250558899904600150130940632814337199146344700379160022251852619802500730547102765284850233967197344561041873333254321805418264900566190013957105547227125150079777233410740336486221750793582007084985391525015794403034895867052831932415320802949381311061201769135875512714243069479695377900422670099577680798804901903762565439879287078552333706369285561251068490664851302706035134478756674525920625053892326092975315608680467503163390761356124070007965292032758269459381791633165103555230370531306829972372379809446743577885015204840601895516533737182978180551992296502352555464680965771724915905309632408074829482543517929173794476468234820303642957283013959555808018640839146161176483128201544662695431098738638964107521190849380445321444719635012938611815083212512306737729429139456391397396089674356567895002939276857048932268853777795709774365537888071859075172243333621316476958840297190489927228529789343946634626820163184893541687224954948302494627532333776128060153200593568997089481629693102686513326665335402569068518524277635942081721601976887797686703209701137858739204505649323778581672590220739110055218939299072152453236623551034584087299266641442128057651137405488635130407925322297101999750718781160686139294449562683012943961945752129374836601487773496160421033752537661027708753505199455218005568969534580330210278789046120311752088730287950088869281488547515413442616455877499816082636199046456363662734341454012011835565066241027372191636104256579304882149963004098935248964250775871259409426390995577211607303015474673447611888256937164955088740030694206594068316180991434033296518687681061631824351454401598349068797453588222342409826315751138839014429486188980223440181529042149685016822626498795400303545935347687864165429544467745174781622534167460128234417649100199226690649905977254043736151846694621230384565951357845788252683790398814265725211100988530569322406624863534324509140153040681965215672324988628147661661299711929471644693428987595981025548033763266142166666819147975090623878703727229418822621942168113503169695916189566764611357913408641878954052062755769610379254313652988143689550326343623513951788800388604630527633480069354578171616247045361296779257584659100547551375931080678213655593164268371060000924911485844361173268578896284868366057238394652660376987241204096462615328063839029950901200659552672374080267133207647108626874642083090519448165715129240627370720811623181281962931170551540318358376365443964856057890841119989147383364100491969153700587216730806396702933935619740092283641782958193047320443637685371719386051256719289556848150671697383779638210959001375458360967133675350362512578504140184016944418404224121256402355107831250140810384939842889993975583714572556067269612217263117589427031998673139063531015568470218450764349381100473529795687040864774401365977955008241064945307118409823655384318658896153761219887543489241625229537169839040564054972738911381066006942817538966117468622572354704791577589381819861872376566049051318716873031375134932830145211006736549286753897397567554049643676939339356454269933161816113919460283423287858542773113314363939444754615760655734986061979554406847708627619856193306187003604676205911494365184979199539393217810602987324481916463250337958380729893230439337599803624450125232637567382248061687827269018583122307637384598663782432446155732582796998074901905221799301552925974314924435729468865515267193363266346400148887320500818444295690607190998696915714692366647453091700784513872395591443770437462343494508693322546950282052119307580675770465629895857867362482157752097715345284589299852584445411669297285353050855552709026561862112574747806017275751316729334793243104048814847136535619595151754095618354485064512088468336978807887545010586114714537001399168669497928364514801313212406531997617118426741071632388263026574009815028407410165454926038589527981216668917318942654728200593132869950352970316613261538254370863976997295204812712813151077839788066364694536322567558370465402198240909532895758232893536886072924999815641365045577907915485926953850834695508580653776509677939381969799369447394043539861264102521685767637348282514603488804323460873866421250848143685478947271446863433222691967933664001141417603061725045846614680689089474107674916634019637374431707012744751805125727653577312983081470858164335348832639826603068455562278582976664476285631232878894888644275409311355754742198345086013687693093832127490845367701379090339935869707065056327838563827042817086378466752750631560661470249173223179836900157857715401865673982149239646472150691996432536954081604362354070503388256595685027893356940415347982479754488518363658022435407638429668315311948874274833534409595875938841405333524593582958897653797373874805492460618760090138348134114070263691251969618844652867483851987364234916558941399232054892238642303448254218117917496816312673442522856249605122138594708902622397965326518466262632692893991775005819473197813634456733343489701418608941991469547436558956842846469445363605810222858621924495941141369209506170367345020817418369125151192110821530429471631682332319838264937145663264021001390301836159515466102120824369116875888786027115556886001504610139064296139989339648005392586020406858725250197477778418482496277818388504771248305264927984446442158703861319874417652417436416910039721028470008834481739479825587257472425802895098351596087493462826252592706854208559808691997627028586786887973251197728032505975478019305002088879748673952981469943631459473973461737780555038851823554625498408411224180702978219399229598817827241107690684876970961548922473952966146423072501230977281148215613400102529747971340800241096313129970351644923075325665413128844764601483241706232575147222597714721943263582754291061549476349284170765907953071526803290766229658295683966957204569062028656026377910872290662382536476161602422349242413024737998236300608765794738878918043692559889940813061074261876596260909241792205010059259580930658762931191509513365730773194694009009108335524501032171705782812400651538595537479954918934083175177116745324534392785273842476032436342959316213399774466206443161510310590819817893645731442230888779813858503682101111553437975190678148612885698549588614450090109029342204471796448021662097734904064883104538926541605173657994784560433159894150534027296746948321357665225658514862494715271292565359180245499366414455309078205559281884484142922440362484687717236616615404892637579680757947888095351736622283788505214647643073719068919573438299385940481467728141566913489760172193090199041917017159647610878703071226225492310742306129927465046530271652588109401990150393661276354863352275407610506876695541488665432563941152192536613872849849557112047063252670725112478584115805526213991809861218587134987945460883931514174745420262705581477386311925538074421868338334858776030681066503999386808742743453585861996954985526379648940675165834265939318662801682379411531692521281021211813524537319420261962242085507510905489337264119191744345265565302098323331583600425054967200183152648058056414390103824333095197209035577063320703445995134672086241489436555178928188030784392242097952192206997708828224816066797578017757102102452240176351234396561153310087143101247556772449369614686534564017924979064258079241755039246181730697478345569286153020755639939202491957136305479149193345676538991037517175881414861210856014084393057077685299047710813235987958344639452794757301870732237352872428161799058658640369681523834319836858918676086649065764573710582706186538267267930801756231879257207570474270541211456763735269638017771093218009804374866824689060761895953468121394254056829382041364827291975647920525005153602323264683572728719456527334841147800396458247046944720711884125236548441034261397371799451371874649666785646252503871168045060736528010810937273472033506571895080826870277959471331398484435887000049998839645718022395008206396586471518789527910072160637418035933849729114839596120172499118908143138935220482345548595492311579236439438882509660511752938476923161817240808094058323797234086289356468243589163613013090856583206154278096701891381416717286504739200160735784501007355583467526427101466359218701796463135591407756738313862094325711168762136161756933619321684079532296310993280027438922289255914649445276334628329187383911944793036089216970463648492630428225221505157021849083999555290432156753719463890021532241263643485856964893727822810078602923251267867797365899013726528895558251180143601614795623210959061384961834979218711721337894878518321852865082949774994203212206935230529766659067432696270024444831919460580607772457358131406123490598523028535521912744045900313460171282652210653622354076197401383907436832092747593282299075572663206308464088179914858271091681340137656512138515647934701395144983126258094367499097955090942774066552292204984982900403023552309864039125739428253976035167283516366869799446859134765297166969187781092859787412069436167322142155708165391512379520651495128918798260445733420638509049029725935889477372756163442591559647451834958081063939685384883008026997828338516246223293001846515294841253754471342058140622869009637945947200037981248573055352455135179215370327099465915566803303185592477681625220181473180882208552929534955997565386044471668634699242622266773372957629881960877905803375809138171256565870817073083649801704531730370141048632350458743863371545949313247978768478399605472381124975903017945163326569593402717912277943747223151747776783860467035161573993839788030176444203506376018602428182871625284207391478524806101691148376662288888793797023859381283062288809158174505908900448048230057403026537728546987450023499635994916266561775531798177550829385425763930374446170045955602373638190038935448672449375212697443984683892214407395936338854910094320283921639062333304441255636742520949538653745625096229590306260424464758170803224748064061969592363254091792940222921304340154012286784892013194740550399770331485261717142966213149260833169322113527813099253399059885378764683358316907876496399601781269130688971662161231715484702064846884943523254247692439668204547123722593392401949155116824865511012299522240832988962753875002751973383717286608463387201366757872119783693142680254450598283985177274352017973296912473223406943936080446252055469441861624551795572675707976566121627341702793687591251162032689876275863753172365620546092272064333179447240134945550422612592844901004755490033773954078114363713834794609427431346405823990322247325078316935689759170252326329639552589499708700063153157391482220305809055046473154004122558205713643818020595215597794923134435590440272451087216367862054196838808078255658006106147808913546180242476260727963173521190084722897316846072568174028309664472187425129025985944411763729002841880908255539865614030044774046380206276949418826911949305758374986181251700904979668952748453718319927834548293218118315416782843420874655141709121399252987924950395861010527057519829615795866210032861909281279176183557769734906216232379094847159232605945991118195317992384589087674384184562900471213252482005105615573509901970614226045719906640480551103478314220030399414507609093503480246867134503844324728366216025269493482942111072174284897058797653461317227501620768737546179621384190351804237079451914066928555154128829125478253297505324340503682380570221319686214697558390843982401597684816218302825539785768852350248319136119066062492380313106508568750205089268518361428327425154465586247601612500069361956883937389179328378645962838074151879216838724070129472922284680859861632351457011263426507906141374061626278372935140385811624314466685905716119954628598997955951289439125542888386464531046025018972121040300160153314553415663040523876353880581262114254035395250320324807916252706572359075322569920090287540300289188782380528400853037671706539270580955945396049345020372980824814607012526021431496105287706972875240620900579066511136496472269549385745506769456258701153923363986042417788589890362783746837736217105002202548895114663915555881974185258289525568188630429658406042694404468970443893673373351117624834939256337797018394134021175716400190356347918863178283653620972148579863640519182591848050811877457773317004978789782300456160525113773261193418427367946137643866344673872966690437110236618392014650620243837588959507720676774885031407844731746661810412475381338922810896985577065769254852412828585446947328221696773060524852516764552170094336090140033403492383660956746364728677161082720677306512018190944314630491442878547759392885505544609904428681948627238626294219948426426456437351398888988078899153067498934843666584689592692433949060534380618241332878945900662030106656213500493226058971356190005659007206109871457057370666067327283629315340753480332806306128534481995571873583995680865619500025190510043092393033904941519444106305007041307931959921926309059917927037437811629529404369644768155822180661668231202226835496581153293909858541832735824411141229754336859549552371769987465751357754999193619003198217116899539851718605113800535232526102863095651452982530996709290486450820953662547341618901811266905222363112188793445727660992895569278881043308189235754498942406017461392531185640859995215489346510854783291124723112939960731167039246283452854485587404663612891752563776921887224326442253346610154208168976773309710171175694668717335812694608104631815173764353965590029798754619885355474673240759938156093198344248095553546816158106031917951349142389498152730695297482836989868448332467968595751018733150057382746639561554704242885161802663514440043913883206837920050706423523580724312513976280790355443141799650103493518725403019931532342230902913447596435486924845442428098032565136612112389266935144994733499463262001543267470386606078395917160622991025648548645644407054855565298600629987511130691794401259698795280387473698019859029404549756277979026295378062132832643128386065525085092595427519545285984899535807835238671326246425880108007044872448281340742069150206415645750080685304306575790599503192202195128901738088766543240856130380378755159728859258094483739152794383923291310961947621113523574435113299768898827088456949343938728558155176707302026961162824816566589321566986959323832010240940608423666163178329959757010822268870106887883412653401125578675682673033725380282346557507504198071945858675392023044682500778609681619957638015028668320519242107032367185877713133817134318880322007187592774686827009902136641988489106626312434562257761886083910254313470304392021084581521517499876888285350654691983639569244836005329040198398141461842153367630685899718829347568459565269920250014220890907509044985922882811321970267144146333479488874822965672651939855147936752402774849419124740510678439231990829934109897752332648696361275305678923625439412705360323597001249859543127063966570144887067518825546186628111695291334001680659245232045120411563423978141242302119394387247186723477583452514674732372081460539377348763100631639176632259546217312874930789874671929926687830664995707033115753634970298542464755949257856870411208986260672222993954679203326077708821817533667461554586735183898875987712651448755250831904428752105030995539050652639999036123741788375267311810438194915154485669966523195609175721087789956383783660940081561627657234374525981793842667339946537907049353226748328192642259097705867638183855607842781040912009964107934049270585476945372289420388357438697967828423261265349888003165618700253654908072822585547351416976575479522224674190069547273078547222519899805624712542937664241269431075927182293046234408888127823390041338088043553861857526341776472256820781006351436070401766267918468501805503483901670301575175590630252414122538050390006147746416893962593673556443033292332142243171612303785661264709591716697542267639022338794435605402150659680514046898846052481823709875142696127709495072087065830477311424070367952011563307548666929434508109886583454563580552368743719783380600226023980438335012683307923391405288080296214068537750131643231795215347912551834105905727165805791953705333623587969424886063975020823859464560501281437160853422294404956132945058823551536507098811791357741036058779290795839895984871564652534833885836322905982236861811677365115486765967009937142780305159846775947535761289654457655990588088714086970734796539647529314933087249156243281549235888817055111801677842953199834491572110999497787866922460191643479231076045807046788142186344638945615267740462390896767002647060952968732335543479112829574758617126032777904622348186172911889332755802556224749338645856143069696366524577990060705062901884482646691871469661951029447198663779896847272413352555201037456398314237889490359106895929588601361001415184708470709143713161630157099646774880813069356959091451229631730519806284488753539631579657773804652934529908935427609207634702788169600841906231969970232566825282408416524941405390089571242826838745613703037098633796095192470930123310408905899632730127575644379493304632759702059215587096606094408914069957425171572649511860671637940323546231751155592186374957326121856609945407693591024559953653848835429443857783605982196325422100280605609022972858812164044772582121242970304123148081082520313884201709283205555819834399439047622455101672360909000994364078383537966201756467082907570867029797881671296329937672652675196477576844496032860069914478476149544861468755824430661354002043936962364615133716240284317228304016808634946365568293836487422345132501878167528318478782774064984775511476794336667477525549867113649429544971735987402605576404456210936391914628570935998797590328833454038576186260466186094061369068713712056616867808356392228817349287978918074347919741274867638002335247866468401685255543721291002110818000289501474861308208051161440026934307385760283569185559799722273507988998289398288088780086678893667989825461781168945330873395397107738561990830956821997653469714000574260745976672172322607274848373703567241713373590539480868369541655512440189294422404355456502125000412646336845025787007350797558019513865619447776760019570305367234094858707679706427753259768736290512647561876250611613227215345934930685982904078607009847482981240998946359274838434514196514666163934418565105572761367367313631889778669391375272856392461863347117280231237043119278171768790429734247727196801016772300688540723619605205506355707157480395460451591040142223532531599326848024244799905137635774703209587415969411040993745681500384493801583662017616305961234615475756698968197586540410350698276045862876737041051420565416697744811895784263014451899131066732956904945887325718290601228474653631511325306911806613721773027830598827980017301749495183923270342614609706836165526077890830525139407572493536378542309336164428731674711901727482418254689511066875593859992087929966815371972971423524215652947062518694895170661453015190872956862769056629932817080328598427569398175779362056155747878639657163998205706445755006833415248933473899941857391205821245598868018154303367123724331020664162067741749456372149548904536233624793340736973728884921714990474995346693471472127343565126153649026012760277693830094179036085537520000185177267013794194974131962888509484254096183262562437513261454025025135774127750059525062751483985867828117490761515878002797362867911567046822880714825118466332730718989080782370508641490868186895006166970703252505852298328222069328660276243053123140586439560010548816743021230411996102097379106154325959172343201162617721475987002063318525424042050094805311714660858242227937693979679936391693845650142272165302687583267843576583996888035128063345163500126067951901258294647963278466893089505808454840398306918581425584653422033276656528819098891707738586812377663486534474685884498389409474140852062199732214067776483493114802158519589883320700480662668343561691365041494905566588145148511853379583994257239176754803763961562742578114675720244667092477399134984092100436678444205739020647937631202424330327011770534799913233250453448032163718733702975399289903883221896058620382064127557947518569111727319810737451293533233461254393158349334062304371979930386093525687133346387201629040520920487117549377262829561856729151054947721072601048456945382651403205126402704797454588267195388932905159552766994097648927386112368754468990757223296079163262308382197260790339305663567518641824447670357735983375455040175124335986705156942859843255831865054169801735767815897209840960671797708757662802285277569924732738165926412142378975055384118596882208366712694188811092727387262484053398105485014958666820407952615911276256732311474068535739429106330736063148486389465319935191834270945317047948654292881395410451442336920324659337122991697711093547888982226847843334218854823293096876067830357919774171619931608565112980259330274105868681830358870494210890901646216160911585468933947348030547592267291821228584293340454594154190832194682209104384622942785579708305070230955920035320459742554762162194817103557082392729239582990037650863893354984150932257140169084545449883480929469458371762490022313040530090724736049370679303492027295194122492537060367327813333160875458776856949538024820938857922609174161837040669889270814850679353937107936930526076036688375458159547423773904134858140691129607704570208338849637542662495741692289229268750953657617044889418583241193392081469590520812198961102270365854089931678358860490029896523971842493465278110603570161068896092286702526683789513331702265692471200882892707674933513208386834838968671927321847652376602798401476609146602129338577179283190421318577445941718662462243131183176025942016119350915013783037359094672806746474744096444245950930037478022143228997555372822430945122902026526438675117888043161626284860970880398943630624943825761843830974024637453713742653048460090250749558566331908085073625380533529255884282558527928186867755496801960341643790841569321345543650773758082723816581413307794009795248763366313443868592483899686174751031511742972917329140651676316364781840037495686317186269291802429349441985815552518044435225596129175010241256237345012990086195963020525470539058432507480155793039043039583023923663703055526294495308648381714581551989217195332816563601361887295859896943568699182765632949989613703955277151468886162929099126096679474478664944298189451071413802244227491067060295449422999860025454768632088718656269046899137376006716095507269921366308818913704460771119956398979887821156846892993139793058329265562342912670255742381154247176433943468903279130996795994900520770257799118118425433977687050087908887824806566885608503956401448107117131402136997982848920338696394154241271559134358864816236260473487413404171781282368857189101626344702263764796602032938662249306355159064534516347014673301447714128420192416319232174122077892180159117096870907734939498512513973327367206699362378398238568799961975877081217014039065951245000512794783742581633651448692293782619404327074247667319581649913781308148687198120929733930186268242800173406563142622366279555639010825568500112204752409235786913274108223969538155069288568836336702152504274542162654156912924407168313517671563682027576211522691704491246033237550895961354372653361300663007272466438162046523685417896541905362169362337656521025712602061208441708791233401005175535072612525085458442764007213530104960401151840063615449403191781226106883628857056302635773209645877246823464540225528823653106610366234018720371431231531381744626903576363784930560790433659148711377265628427209880155843364667313255281591311394111525985186526480487314190556781481272232029970864127469167722494656457417260629132498645838339775576563300104964878990061043951271893292667641871403713475294819883608067184838179243972618020681541593580418188789740169553911485578686906183080827863471338029754965294245066299236563873424901272982786232008707754324898167821345955224767183845228124166577046008635280806267971778444656412319812457857899793146684459403205084083262953225453281591655105347403666935441219841865883516449949468614755388153379951329414949246075489874959067508054427600612645802142021393844687055755054797734913026131024064718280744447177346207199782400397816783008213143440703213660898952518371459070007671308679480799754648642614583523608555959852797015797331611908064784515261038404342157995126642902621954290285669310114226969784631641905445777326228161093775754479301409468733826650993375003540053648529684815068863946472424761957999869731198016220031114046484318924794674911852803862384601462987628073960458588774997103508216784404243417979958723097538502583565456426354449569644482847876034164687315051022802699292852482560544704463257950729652634281164403821913155559347618024039161184280906862033383970015380856878096703881241679277064949910439611049648765141657676701525627175519204886066747061268905401582572969894841671627807860300926529365733885386166339671356110950738248361334776861802550990346193659814608655929840800970489740997048557411037875000549813269407937757194401498298343510437858443811239448135663377700072929568405488122790720578391514106038786780576859604016208387795097056740486584862911710047580851479432729354358312764380411792947599078713425534025513973981611056271818522770799329054612123456573408521232470125609523469207678555558919049817518984384581360226601087157207794381200691278317648979068404092704266701550268978696955709827370022971633837048834833208215090889927953252894672218574833497566908129924689746969967788960343930031675090637750647535588859557412681681011116061256036722178469024870444974543457375861099600265579464725477313313412401383777487183762854754996113333338873798636571362666460704099837995132842792465377331185743037094977921151146291218333691274380854410996165946253058490144599132990426839998844265673054214312117464679390341976696809024566394397541099079517675256913521850990813113275161293808178186500069298113994602775129895677226244276841602969478496431182346037116933804005058099556461258091952934526926492942791788240109975970793427010328374851527976731352545376092784656420395934946430675727976513538793477232773221641624277890237183699847281613662225834768109142195881784719796619118191178210670357927415892513645386512677921222026119601050379220340401244804596897061186995219924781948324293097911812880840096083219240797665980620572981982953498527080652369568054949798761795840532331791538904663287857315549588367184690605486798781559696870805453792091237988706839732839677979350195945489447847913587018229542261752444239649804570287621174323175041414514229899554259940489592858308484257893690610182211741095120949448001845981016744761612789103733505231538450602694248508846895856189049220480886536422589038199404476237016910673516311882574470073010940483195760327796696028119628722308149147890576538095058153724167956909525675012336333562358475820099954125783345408333448670516428695134610201334391096350830754038671532284047025066734082174727127180033830565093462057967233857297582506260776389801907110159690844048480480204389285697132356185850117039355206677631088508520819911670987655597858161126434001219534058687247767471634190453823854436163450975091198844983264928547751117344045224612639180301983814896858620196174754121100835815742346638662477108176185323953621442482911578956778317949199185588401849846998875310549617286751776805989740641200097930234540673003824235616714132426285315733389481438440994940249404232754157670790991256784571688111284672805517923198772988038581768242878244476258376094446982415217682895272630291204338504873464289960474168061543892989927941963703334155183405303974991573841123084077468131311912082444104693885045684788349077334877401619556515059985629726277650501947449469192192342181650955687193453254677602261072397911694464193293602615805607146284505645585026526695434381659725811041106810100876830346691335869956634750291075405118969840965081044020041645438653060721731614987170288613064629113961568262330862577542726847220479016194589324405885441472720645039007636321308163336027324365627160089286382941618554352098258659172516942622773881521428521922657245170139205532283341528429099501316712008002884974550980274552219833341493342007631015270530882056470169531948380207580104369908428556323878460257000518700677176820536485727004307381110288927513421329109212335053781190999819000852218814769879615453551129885169903097635498890442694966702668173749584562489332363248455131772781958495886106606125132956780665694503508135068362496230116798646991059127029859458116499303014505961572671831414576615510877920612054872486982012981699785929866395625520777771702331529311593895400780062676845217073523796070651486323537570259437346486621985973664131364578957652812233899595110571326414384954324200118435975165936079071124450073166867487258866319566131758536872526357680420373058931437902839220510672079503468546096222220512123423591272929203895299939760363551886199525027484579730042133278408631815671793484717008639046562340114117409820106382313270349908897947769712075089656335881052060518513025400259928224409822278660931274682045098874653272538867563621747977686667835441127731942578651018514894612567990119797454912491953139535719840472978151368559693809892751347562871176071982070708331136517512545852242356370125053804007963565699694876951402629580149558339407176677204169176318467171708147550169263460277423057691002534190691109751785603777804808107519173407037046705708613050455445908950319934410820032930818402912893885437683482112561101051955238724767156451163136270438470150953941413185372678881597937034956999174794496292581795861908432088902482651534589090210489939012263261895344872672575945528329557643760604098692176113207719824621546842024348671495072057891268494320919133639348339344076681515586360442129578282631928607547376250424647316380048602068433781917352987738336159566383762096051558968596264713205260499293622485622410265736015744344363401834368657563765729534665683161560839564102824903944298858537687136666437105724864108534296204301047760594512710988431482974006882513354893817043169407249235783100649721105646431216330024611418656102483116964797095090407286740152210058352815545026629367350396018578544463363432381321877169030160144161773945353895393502419071251857406314814470755781737601326841831114066135655467505874060456136284895292032180801587796786059369993876488304732083350410218097928312559170844387636762528829777076471919800004446085745605615618275467263871028149281849728008284540349210009306144171761534887674021527614813335078363978878873430250044823402009586626007557859284897367779101258630598259262834619431221319866901821211273590605485265369367248428401732670918736622632945283354568925073918073503401384061160456380630118025871519366101654717073126604119812987791014015443919208977834620510968576184873490113742689832012935888552003596529888842808746073230747110314503884357051975674965665166026645955607861565212613392092541492668852509041617996148219027966500972498654421690610482505159422979632243598434227018218377791030486474202224370541390455088628146830293657558300302820949379489569673153270257687233381611881891217659088894955191032686683774589876773067489130637232012379894850645822055559143721559238669640432618361498933860528014321530558096998516210185478104516259542327469155626671161862149455532112934575748413842961384521621726013885869948065601559940923124960480849909074326667454315546726940876915536217696356455182568495227311527416498128922157343391486212834251002532434963304515385829361110198387830565230860830736407751573355018425534406641474175529589708419609445542957304863379088157572510383769069125865057483326020317513868755344571409483872446183159429948914102224329812987819355025373973512871601427988128132780892429941262787542255393454605877251488539724707771562627951482962564107623276575501404043935084464603196732957746369939955655062509832113336028913111321471059624447801454332792906447297029505172170297189395046205943544461738788864777753805801945446073036668811751695518309827122215172391421185360093180984848078940650719045955557465838559662834751577446584650782625379468256028703459023110279601872859588569718593133631395936208235934096201671840383521790552935547007317222527278563967694371641497309197540284983679037853790298293206600757949145287054750254138825037074766834037221221360689449182852161914254505789560071648340277581843946817010999723170560256708480312740129603048808684769306477604763658644653533458816135604519080632978517010898233006287942567332370169934098448530799263016426747334183530541395491643679026290031394245552223818646717571329103393460265585002931741686401851787844352861013690092771819181968926830153275514645393316233160563394744963054616282193505921684068662560895660547238856815154222076068772830011566579368682789077896033446053011489438498352669147804503130918054693323700148375900886717887981327220158852205844669159336953729648633021979760258355334143085482266236597577697417165257198476330644899965157176115533367395580052567370494958159251252208329150063540166012995421910157466023772024277723863894164700472101894153334150504785547469231833918323467671166604741384641312304122028717501637745064628822798942561940239472780358669262481158399837853567891003215768055736677164936003356939986825430043976793531136502500685974861815211465912535527670622760778028960330371101507324016268361141551215163078075061279587218443254341463919874227906440400458007308584038812773209479033666913035073864552678497515545709897986458475146142005898357366692087489721101091275622815716064678055934407157774503934814992353678640611231203380275060965563480346294919486868252748566545159970983878882777187184087069048792720831919996748146642310916220072702590245906621823707032878694515428477276224541921043649092782561819485152275057107790328725858026436569203408278590587576222104792908710525880070631226394968876946008774949048101517922595702520567049201567665423609894874691783537347093531960752870319193604838600368552619455552029112994023563390876476280549783898933799646992036728043561649113126711455707766666830912004590536099233060251246862449878212980221397891976876841038693895679193132577488428357309295607698718825362055223634494370370678440558139489660583494150057110671946649052796529968341859299227011525537034157010175800781922022032995426972405924788342564352548529369437572378167914402157243043404157521652638541709327255632005851436260728275940060721486590363260885509233232326367689687472210619880383013975204164700679402685222335188858909456347812085581991437777863373825575740042026690885957463763323644171857039477237565106116904415119755314618480985636660058609804923535113795820018665808576166273892818034057479963739112025599666567338463610243829585462547139783682295780859268904345629676029865402706087386523095945947257849595004162587475184737636912985828312194462795791126769977235369099794559973643493037077988189558970165627057093011313789382691835798072740713359182413431069246818418896779087917371875814113310433500494413853412702122160047885658697873869626918280958354318456597111078618665804043466129664100159059178783375676867680470377660997910583706238435721680928586295174822103543555060784621935670883582936040542721977878055466129764323054315238403831714141713106243093470121967221114468187952303969251426929267020056597437436465222817713536202942358090170041805744617509366354277016674481513183379569013484696884792995692482401626304245777955966761480905068322463473332319273963104161149502506234217553316472049049700898445418864912232544877969950732853940674051053718137501527471231798277787300969013915398555672129143105948169089208331465501867605174525720886102069480707866592032412831360459134269918971277105775142047578335473935451694489197984302499350477812608499314522904736405681971181976314471424038958933672739002016816504699372190225737023751694804244762485828627301649212619639429938361071843481057290898488301484769979264218788363254979630549446268467311730861229338151271436274307153504709569119751131224874073706076189020974884580251478341560629591619585138689126267100885485964568436286539844979367453185088205742893511707807384952925641185310714876997132572476236923598859172420915276415173079141237818530922751421813201492779946706361034779957131028700977098084242665070000494468566318354226293732872809255605025933823903803288337131850591643219321376510196967189344633251480719005092442383889767911126577548880071535861908182150736057498945352056215962228907280743251219503603921048879630842979547047722381502986370588380859976684521936349398751212232842466326017264302484886127883665321233172561234712266912106139665067689142173856535361966853297247468651276725709484321284208594164503782287565424945972097185334621074750739754171635226032183209757242375280282674908966488194269779807028645963330993016458956013106733474902533730575548131231485977753776541850609108167631499639195868335127765218038151056956640436720091841148531563545399923677467973091822910386717319667446499878999364109859618502819143029729957902833449511080486395607627396927799473308506080664501550888295328900092686711964662755163309456290022543095154287208054014134162469122404210813786343201915272556691965729377698944078443988068605579396362625649845387867520367543223107252934897568154359097666905921460394230080809879504511221521320299787318004404480057056832169975376513816915841445903676187095884602116384656448441674386420718465407381140892077410833351847011180046325988569811884717429332708132990209333864882431409097374957603940108473914065105530786109518731355166211007734035014201624925718026368387714405539251205567955650507490694879160201036995041577810337768632401011143151363411686691917257943940623960963923200545225280595849191554039131870184349959761206624956405021627762198756815454615704933720033897737274533009724191555284495315761088240172914036744556297905521337106875813697522158661920902605616442254552443129997032730086432078772729763358559984010858200821498586687890495846482168711651553440029470214694033106143860911040000291524693943810817278363483601222690965944510680524697311048551684105700939238084345353086512350235145563714416948514636462538710547585643456224549726509389988495729221429747730579848685145587375951351547165018535387839114947029003274060944335688387102328720076756559136992850972779416245651770022029296407075366513586703212576772391383557543461420450568455919714130474143844008714389824016632260764687814041311239353589933720648921052748826455555392179990673693557495175113473071334100960461867130125536405756132072304579184091989577778150511217093408595498156611737280534718226397677669146324827785799764890271832958040674175220628966628633907031157595567822369897609182789736823045011142312930076598893138759107248068564670603764962732860407055894496774819378298335274684651900576336450731727893182933611767529205452679114037563903510801552132965234467129273971713987486626245786428046333676425980169102792998993212749276248707881734561699985741078673077163299058831064481407563281450438100121798455672167999115231775768836032559453711337800779829975914807869238677484923258113285984684130964556159002413523423199544299324777575573272473911916028893253280406785474835654849587642162558042805281485005803868279946651206491105168251786361194460260268620702296442026377738632356769474712145802302747949156677272790889779391297424011644048328955977372383888995675618914247673347516524635925359180570135554479147144838895057152297192496414655486537181484250605247565422452088729042344701368678368300384484799801085266439390463834635365783577493009457376452466912854706698931865225690606686513379035536834145335156007857889044468176672690703102894051355888590551117414159302113349315232539451245229799199582025474707066294705581745573056075455761418795016022281362256555418052633630750334262526408924008983987763879206927092741373154908665077991854762841652810432981943112849970868569939133697111633001475712716003442185281961152303344216107011652455290839779760325700562202842045125965461928096985657655398616564876022843705783047811699333405462756787425651331644305696908086976786019504739341614085858821402657083030711219796718836521717647698990606653332284440707589196737581126700941574692535950166739267191329937116383563997738521745553572777583711303074147172835800916682382870968527548146624755038551275637761307891021206103058786278975279054195936698229276157148260267076436220910923352834781472688379752878670465290984574866605441108938199826752111665480615108251057103295753717813230914014030069470488382965654221472890515494458117603503274131624589501148641257514432303294138961016939186108900881296084326498372720079724505822245076542893550213371145686036782641408115260420317865382216071611301943500309417052608788524595646328366455541025967561767172729391634693910254657928602531918468010537507676405451146484921638152692412220419776771916645434518455297755346215384570173344074314791795675673310984847062110384899040450103166440323246169708281949917989699714958755989833109834008112033848351530984049782525701272485215985942211423992796011755331739538904813738853646647905532923352776993236479240263371835323831581946373156783716404076831089896624645861119434621496201879213559633741277583018193489370287257242905834809102484959241810270026449660163144743795037655318765853626250809484148104247931051543728487880782261645910494115862993838572968172595973926684359984365904621100462393356764640612215057228533055009232131163705684672018076090257733374983935624061656016488367249034271980993760283673678289458409162389392112060723504689116315644490404520077181058438695449906492234345245124997791419464170779780673111467514573596309188182480131589175107216988955751387450108062883274500546671849365824495469714963520239313578259767122537636204457155976246511568330375279642886094148132308348323706478222755712696770473667083755096066154643119227307455860259373288571738207757508239716785408454370630793296318367561457091454304353141481170101817713535310444806384110584550667133831650239273899596858175586552912609588310706152692772478885469303057746328121882795961384726670175402966947941621957601596657283668625955383944932899313420835729263942244033451109344965970995541013269141992893346670928181014052885395790091039789560800218517061176041553488509691578211773920329335022303187451461473761192001742923630048227065578134241342610148380121903244736238167147594794269853348262905458609020406500316550578280156929506178955335643036824320820507402960293823642325633270892767823217399541231142929296662126905446861210891742087352749943851876248966918401799744734292786006454789880927329446961025220110789195770344865334419747078932740639053478209436881754756038284494432542796852224108849614026270007499726375990566873353325176743005189286968417940341213518606374758945441797440979138842897771382395286788488081165997360406580826365897197784971402260526972130521774891791234222534855429186262803654712963338921065547740563768346670995633974901439931104032375811107211543024443138255492262020154308892373734043827905386983334803392988919550695283273657232550785650862665504699967126692164082349826980568585996052788902539924827484134945129169660441894556699154248240302239123063063916467313738079213122751285974479158590223738901374410800756464347660732241992302170286636404971821946295606323342805270018617254305427347608711287194950649024399986552946631282866659541373888690975234984555626056530958263504041820696824310476144362065477286325862732264108369639041766938085558445917732273786929965424283591739412004787122858437122704585409544994592384216340995486842573354550411152601394538325036162843520186938110676366365495047015158682557315512839952699992614782654608384403674518786139834147360272415664349443788617562181753011622131017227344738970227750567631372640358540016069785846469128934930919438856206987389967024761656824687653855976191495727747628481242655260809747815728063013695118995836748993696998032608822074149263488646388172174158270657158473776027156203327066030977005026505866916403716991437030730585490309941099665771173203727311512411757765709698380533881865156200911779516664239596930415403329447224162854133692793660480055831742224077516767719681862250904281407031758497263766719491690001505304498919506997026075794707369374911276921324392381077785983362077325367754434317905433649847185570842588330898000546673222204667861918066894984586212923813713097663644170940235468661311478146618264242714123289540510506793064146373069298753138810682894172571985571602993426902947404340807070052057322082452751070457751623829298290733505992650628204522714780327374942215692353172199813065349106027480941566627835167734894208130021182192157981528863326580035156760877695716443088697009204308123931121525869922760897005641916118580972805173548180498059013663555755452014078411050077977610857785199422580542363855764348156519749543392569727821735160553790189647429824082404131302586626620539673133039412147756509467812191185317978284209609153118463512910040638483585107839056423165202726588637392835038676473619031756561692793241718979793231753997063312162180758166671031939309279895721518925155097846663991367834297040117337586472329984398050548462353120563969976544771598057019329350849851913322334898118441215621640539578091389673832057837615040735294694713753240381713359269774129529796564323253212963640006811256258285562966520710069235525894968703128531694606975287719145994849119820857884621082548838952650739741704685366840079354680742443602826142633352309728286805648914106722093516049551179463040057822164004146681858587953846399875571613181341964745409367979131069438508582667401806304502466470042095820539127815635165105359459278901989008838886118340048776090551213207466996253043194355162286179792482331653572072690739300022743193655335064377041224943167140708722174462136301089323827529057337255570635135258224848353965760658189355695932774290793639897632234223658120070299228621703524010181281021634623105044102044984411451245097833955442593467259522855074842658345083393800887793044588511504841992452781051160455555342157708131202588199775265636585738822509005150818125019189547358587080761333360999929145185120183770455688920643931574741864529137316153178666332915359070797531088361598174451523719072125261965044474576681543066165075443161205117036511973066043892632134998291994176530892440090172392914478279578941945030601776372105751608307000558089257558022306925889460534798667193287158780659596442075344907642689034708337108146682943472639586048531601221803193823966753284298138954193295306993395643469571597951249843457094194844628908787882904405354762972724417793993824434652634163030290029126416889366249544699555443395216291043965285393509218154162112789042788942342971548016068563990754937995929759669798124771334253497597701895182002272977122119620107708987117827413639364663358251831638875830950185612155837616766577398162663433364262618694969282221263170412567754299952299742160149379870196279931381570493885921886126530427165574838101359663255147722304985251578414183627568248978709834147825667681595984873802260643155410334074138779246219119231487045298457901049044237347670848847514253770214647791818391970010849467575898730660631298118283909312236409104218933160405644315478429918338250394412463238272563737148931405195428140782911732489305791713223997420200994662484810680745858276823350495348010570050486103973230474445087646942747941981130882190612484532686394315234237167033276970314338670881862735076196584073349503479488869748084924585167451788629016501040403852158074899467110769802139828734238508763671843576407682689074853198158288470729293670063527325270312333678876144167759175963122738543083910377501569754837111363068785213567820389962802882864760160600590931867351269584160565901242255431378772542110337686602580170862494010741806712056702658646681908650647912579301841208325775882880549232352407065203704386515823497774573106803393500600681792667569353596461655512739428534007211310786150633791025258242920946561099543690090858213923417301501637977922004017019482978394810987417769952772602104445592498235346678287606037042058140401231385275735443610514584896044190603823055456278965401370065499756633730754693340567379212359937377150704889751754908709706384638052405323952614044306477501732509644748381906698448478632514916049701424345440405711933525662212935688702653018069048419518276674104894673899204306506435713665364127572827699994959552155503698281436049174119651236800211534832111066446745191285819609723298113982279079732961078265794792357169593592668449473259469814718679854855919443472476713990435442945192818713171506267729295168719105655454969337082068479635708827697228682275421121883395791766581018527840952064837034061637515530684957944174106993853369392242080023003578771453590602774293212933966086018225882344576879563148039057918127682686563380683674026713721970109513198853164609537616105890691600360407789280033636047096178136944346446452557328317088256776445943258602636861107140505597674736397618691015887438918584007100666059557087750940212182827229800754411961230190733686012815236333597391735505997970394984972854073648413233176876626690258187181062149645214233328024867731794258919788872656062456669579469587734125082801962151245920480943832022087411935721195320289868284701930599015521829159857514801240948685335973519416489685868276429977390802733463513187939767331077738416112277695946720190961125513553680549141167955559714831432935724670096996946994934294199806666981757092907555326864778713718015219914137683861918677901345021571418025771563269472896706670389795733014207885563319951000035635934606441573043198070331351298027059717975066094768638916879290116022579259878493417018533703144319184974517345239386554594517372223536162785744577461278054670699457595590258916610976891667938243710360198387869135515897055793480696187958728225151720645178046790237203346181724504177427955326847549611221242506445382916548903524567774231217896479386804773386713685519117245359802517976566649478914001029348361766611325400075256247196343941838426339965111583081032740038967487774688570941494608865291327932384475807940462963830947799621605451842175704810210503436764215486891061081692210019158093085794347501503846065652515147219326505649833667518305669138076862880867654387367796947486527823914273950927370727123325135298177956658439024605127998157978314172229506364099484650762541670240077399034339866373202911063438665735412596734365037344805511329064425866107179499578888977337654952563704772562946943385361152196525019461255914581304456373596475730192166231179238632532025643622344245505961584249398578085218182560639873234232890981412892841931189848319693165879881413698897080397783635232289163610456985825832824699176436523586486527788663523593571121507976644703349332287016778941542042961170102839926219143660766854718982872801877454733317560974018626077327058838203775061458596478472442474716824020304845988755471648036448452098945012584206950156602324242501461124138277295790898209989605651405352639885666364927278998711154107628417515217234684963033457284922179401580842729268121915256044627654107482478203397394775351960548401913135747690259940177060508230937840763661695033606587078698601093668140842967289063959926926257740086959239518260385494435143888719591541177581220134821506790708943694486312642770609552870523242075228402215017356869501353979340739095711495730618746907161678521292144995133373248256895767627054934993479786621840591006813163845446971644886975643445920477569698577285044325575237471366251735448773755213375991769934177080207034964324595199854920228480789726586554835726870109993904369700249193144674661191489258172255325507955064092924570470738070084112462447273633760714545261322029491373388121478073068725055747719104169692802559629664278040599327281382921548745711965276000584551511083030854156173862542319978813426578760577735764900997690073049487359895645092680699145015835723210622164290838565003330511673419847350488603756563686917805662266290538039836446435392974023778722510492836529600360422164087730728377768293294183272842311642097830079722567900826616452536723230699603231743752622757542452401570621620839190956655960415368649128734435966387953949069836726475042607530357631847371936354505878339118091259767147445727443016041342617655688181276636023523653365977095283558856389648601003826122379459503043997698908639932137811573197925591093173377233683134448057728242197999631906252132341786432536387079520609614868646003535205063547420244209742819403707970488214825806632540225646730522054138971549237126688292115021007986470601243488483589140458307151188633297318196177278821822186630263732552956417907386957304810753989438005638687588768723777168156489225820696381610547672025792607428592148149971973325647560980891107591115999905668519040145078650637701995488846489117799679593722785162644949855853736779532135165594879618343603745040296890876677117891782141333675003545633485299335133400987648739522099527654853715859416924174441290287055384720575988863703575754752954264426770865402359625150030616287305976427960837116952696240872836708992668107346666643037200046779856263891750489145916536631080865508796007852451049861441460737044820381248764917258358171430510433378692959984388044434395727134352928796885551771121499128625955980235712537517610790617042945500689013934130344834529551767128570271868347872621169617470967259239399093416702805727623624151590747197218668388217643287060292890678673304682554163007460155630389302162143015801216268965184039679214572482127263141977252735649160872030710350504893363499127983257987310015181819378927186840842821491441378273514165687303772389044816709812181789672791618787714490703995359781879019162065520448511998623676076240566233670914240794274076295675546923573312841857943156604069129886737366260009331508965838847923809980557177643691727083145627522341112790924415949578130988237562537639988633178413802952731563513270764369096651177730070621960385304697938757535802110050267001781772921752676590801913681657246350301161192079729043842481941114641815265182982079250813722225104549555241965301713240406724475100629940979644078176068357315436247260919598886094837410756779589606406146533472727471196098470916088580237037578255740132539717975275132148987686798193771476774348902260147650855152360016134870434724790792049584300846599181199818269772928787176178895067563749694492856294720486442379890079418298746321843803982948057969020421082183379072502389995295490224604581229954791069139295024405079465358319138439909084648526342327306102591894960594296695828392690962525175268130034067348832660135761133923238217828082530206993732767204209853263247166432689101434698170738275235099115082228261487389083815437714764189033381382973427437766683657587170881650905223020618650884821260419813220156530626030231527954394713049234454570511577341677535842295876524264006322735844981695585974564723256296813412299593286861394417829771602420728489012535646215619032148346611443938781115017739355718264382503348007015514511149502315071982488525821085029813175198821344800639869861104563537556288203096335313261121799059411853117743209319039183454697911786504379099593173561401735376124103892974344339238549753835530751685681897639346029209448462447161458068181914397838404209173990485392806958326138073937638897220253619782485770153584716820352825127054941284303476558472767232921330278440303449761177161394780497698076073283565822292918071181917718839330019838106432694592609331237855150709183357019594535669868493658633999119782887270212867631189008372896979740364673583185813564040227640375660969050919152987287909268579261274647689465855912044525495919652264909258564700274472961448470197585693882001684195700957451301662208700856420365394483685045265021384702693180620731694265819808258753958144545802693966266527198374945868628723558650902818732327583695556880434951689058485966125184111457117317017699187935597085172248144087811782260887311661418250025256788236339303248264733721637044831621691259953721479532801595705757091768928610153603096771490497343468725721025705217239906387616868911920912317891779890876770420527697879130640407444416889067034220496153930923897668277650350247560112484075258163435966746313644054724818525402314641273691129391229505267447901661320066299443248508990364380634778018979373085038499955216053766138344303237401634754180911147870229321255821880236120746043125403192753108363585860849911498787001326715647293318442105046203239920877067642212563494408633303599140623059065889725986722133944245220980935777771976328471592252193094130237370709099710268929684647025826987159377539187820752464936085481565204670450943428008603527691579936707768819243272556330304617769543078497576657290541451547018892397039124301178102379645175174789554123304748224697194876217818672905994503277588967351874403829627278222365409274395149593511304466660595357305494706271656779079593932280566590134095556207530984641265113820200144761033790235023058785023275569338349234606317441671376375988807080226022030863021958931384154081933420287143409063050146441937467722091981265744563502797346288533794824032832864804815529134995767169400364168291160356678251432355120404374270292666020793399240425227981732927814937294370942704801918754640918411392566826004492289612926224248449644560012110092596351189698872957738054288073302877268711190006873267799853705215413201222081371802612137016043582374345927105776465918777564884654038544651390609621332935212460825365935651829056770067639890199809809071093222026672383351911126703625147434311092382146808159744889913547036968734333971099635155592467373895194186665731772276619005113914966795402015847552912816351422611061173250061410736721391921109002256089067716131925882575542342022513172462322112291690568458449334118032186047631371092563897781171818355873143280800824931447118629899338642746122209660138400314212245401487112104745333182747685737400379634443286909599981748796754919329210207131682542255233793419542304032471880055425579782921673515596172986990297580660368194604059297241421503198504975936218777346549604937629858680575592644899494496715352475393749646714893720350548734999593787771126248298277550629575065964738773649862836683336605084029491269943057797840307273853570584629889847208549712431084461733313864105284118583745833614706266406056934028692310567691631132862729291444518649423027986977454064829339521171864282001878198470375709191145199421389246873761627686073847514282873223334453465762723209173408877589330739033894035659895664217443182594950972959666825198543466377368097952704077361654294368906994113720224883594155420712807761910469774697618924282287373802823318435064370953661178755860621803467448757587631249296202133572707849324296494838937625183080893257746422692239966184600004879772091105177322031165750521654387965838564716698943175341670118848978030991860790401217589808738538491610510684634089824326574629552382952904460556307342568353487011532614283839268019823298384337619432017140130061862470146362742247301598066806979757280488381373627988474336993421262856470117565764263413130309191943931331761682995240868479666664171528035125001238392448947840339865377287208288861497357277582754576394474742835552082796489209222408713095743599593629003663079912175730547920384872704930916023424234427568880905715751002139956721140544859326010641033330236214639531610175906662253182379803995517689834192405262688040648307265760438339493803169741870348298272320576348516168367245919458342789576048055816587600023837164251547553941481967855415236583388179863495901324407367969492812373118393150980338535902744760778158039243014189218569642225856580993895752509628790530918912952315853537332650825322978055189861786058668577008992892858395050115959129775383067530800969303541296980130371089821671377268346929786671732522823293246406204129623973489919734083443337690146499313243526465827920175264716408526982065265994954177810276355877821511517618775557739818461099234741349290304046967432552132682207344762495553564338493405655853834858131968830993021640478281776586502902091837128770957327136173866935858657016051567565518734852471690389758736672889731974860177011324400115528962711233737396345090539183558944943898110253806428377443205673242579622641122279872731137248296643159671489445945242995384675145300740613934801000420411255156047511422885880678402980361577766140500975010246357447201707143485649941756933757888736969317881106619939797017086804763175780872283064012253149560251565070882827662566311579074784149179247536574216312029976104941108838871484912763120046822704686421889791409116472109571599998731839306083671061316653848160454606029049547188149573504217552179518039337709716768820357470407920166147855554577441998504162786695824832720916859564155954630817507881174141797379410354446373031532893625922233532559100478435942212266366059932110867752387134822630472542641005300239457005311290244537184214660115232300776552036765469168060254861186022180346456754748103712243664390671597846163198156113126037931097908700949290792316023277695303974509800284304131837079870632904828351490000898832838516169022922749587539818099101355417518002215414890900561614330173968218097362349738165853665314372810662653184612945635241066355610473796232268561779505861888438286072168458963149347644979919784662604504703106884730202719034877042303143290182199393948721372486632642948968068687197152897329403126474490890590091275888429819453967930836326977266144704098522112626687528392367212670341588855972540927631559362759929783305064390469335066977659658295794731878901206037255388091540227688018400600291792237321898094737433632855130577551729994977410928730361280406173057348092870932306308534083444989810802173766826730675768758158152972222623335753588793116316046155661867294621320161007461830953454669376959489772520375126399304882837870251029862619553036612638164508310723098498188413201751941890773783671715377014187192456358525252787167230809077076218562871108266127960331385325756003759870698844578991543752584885420930958774790007781482909050265465708939353944354877123716173989951994254071752380444475912091260557079120015331794639724247856138255554378518369360133363366345315842794234664464697500693389052625161161431434018363731523847174602707449787614724234731603943199599743977348486629327226889216413030675970783493961307153734169862213072839481785509515100374035251170234845870747779488114383860715402072824805601632327353352093381225221346443312752993457526063035057758567998438711041124300972801183678921438715306422835060261673547772724227441574979685720060874421077799040591232209738314476279198094395348019560789123503955095410297384097736631020030784763942016259175078461983639358628642457552814078601341679457621794345999616765035569976476046839797047050351566235567368182922266273018475535474222347686768507400736769518455313465185933597309424509112033396913154929371752305421735996028793695939917786595995104193813167251495222955062769616270190494478109727125199911218592555345470828546191505106152647950374913317538699043585840088164296183450688969435012440272985690336371770671247854173687129568522137874995322211337251361720145144824142673345612599120873759793444824530353756321275197721282551227634821256293014198744864049921558444987095518859225266055673629635096835787616970633286584804081939535015515298945906872065132299802495080282964521848090855890646752323664301835134378851935012995086375769431261536495753629604391906332422160402044069781745773248091731405614783473980715044722414459740733692095797268821080491551215699906769811538470999281923804687709025707700809594853870400265312371507046423828207339033512562405720813987503699692561176412986476156425304681623020126303069937511087321529936922444298188900294341206803320174528631555162347475041465944303904847009134282370534806488435532595022464407748817781951278924726230439818990790943923931695280577900028771357741247518516557768765146976214458147264269710113555855882458299152095432877287891427179769487959562281423767801594809972687428532771878371039324614013095143610414305037318743954774059908186201233742048243756137538502168321570667818918483158560812140142551055638317197834486683784843276440524362848130192362379789338065246857550865027417796478665373129973982399427380590286581171007871714105496846502301300966025794322188322010577719535866185590047544465288851992254472484473248449887317938173150181661091709873553036204643370360813048767551984932384458678663958488993613516103632880696621947622806692280169219828711047945590957324769516083354349537021561355856691352624875808636462812082646716621367175587021376366698334808140282264689563282895137470446811287591177649529392221888368178588425897012916618663709683276019574747018212597758319274717121331742555109123051336649242348923489089520926605998501657292861858363398857224514126789178908962958241241015604044184084167672427222785386949694590483549078313677131006082273139340091289886921088426199175479825077817295290398413704700443743807727732402759165164260443971704022886199067621961381830749203271231725722578348004535681903480176624743531511073671962474429653055789582224809242809045234796293128640365395189022834966860249461932391025050796485064560286288019065356485026890671013198557323602947201045299930820893758808773906498380104149398622980538451113951160837573691650640904941254899793764850046216872445332188745257800056312516183420455533363813699872837667245399832699327568588735121554957959539223000133231262402011819568242045113875655469266595868543577517554957968882127195330143413402105336002929191937702796193922806479615561924624392615919969061530911555810145400656539006914795490416043462377457628831970269912148211381802776979750763003047535678263359977064653925845396461317472124642825335029648215788596420597282429350442696203138412992304266407778283793017540589025558553405143157209351402660320896850045830343694442546444280570067695444188648167183578456378578418510011129501197743202441054086088678195493708340001356609296196276348816514258120720521343265462469715182983480341403788914208430525038523803092646367585367139025606587609447055905576757556157114067278990152297183859368501474394221437682643654726151572209028649268557436938202607419203262458500815678614719867864692973736247135861205574325140704558344725285375593907950130567246639981248507490959982411797836368129109697323986915584792082207310068012822863354782481265191655496412822814320921506311318488320804883015109699795171548204946435713621132220701089235768759894201031388574086533791383962644844051981617265552144281919193746581238696136724090970031584938748644447158840793806205271716157759255209823751861704380248150609228266639373226747878117025787255554174000604316041774380348405763826996173384742573515280941234939316099127198591302071035101562212030085110448088409726873351133622590030165889993104184724866641091977120466885760604640710490689498686194483664577988458202694191139483001282562352236781150223828300063004701051866934986935533041567456459449151912530805098724971815839670143331004293237123256093666115756464762129773077409430095348637469588333439693697288636018017733207032849090138716800555025876667796635425683060351649860683677170552213990181793287569000298400756931055041468024452896005195028212280704247715737205721701515847884412306300296306664663244494255522801977089752262154907225558454751817622497798447937730497870193981178395914002718344750984683181227273616413243879712921532187565023522030833842051458083974594139896040301713350282234455459358712305488380092276137704607256923409724645868416288755638810698311849739830359799910020740085327348725401432263058670947853746237501542171214845716956918427218616824052398105488956568266466800569334461546939844195621033460832535284467747705161861102184893601548925934139404940791934191157289870302230907230235155943692107219801642654484127405286541360956856584213095678562451301218948421906633320385507277157839658708676116705613418735267677516019924408456678424022497338822406141564219126338991769326899332509765517963826440513124901873729191580831098349552812221048044547039764206743586691394322527762256161603781372589798201651832504164649649415104670723979314856773641284326795920893763372294425379750504997684293621804366783596814104255692944410533391215007123838467868281655378251140856041601629817678932302341985396967449874422930233162812649711101803852070262872795516718334273515300759324481051875653690258227833044935568681371806602885842340137040378342454970226538383601475106646530123268489896293229460989628822648611898584159685246760056499778760629943730918977426640693649952254280285059644525939839923647037879888343793538399328636873588209122175405230694332712392057103000848898803137917884404076608700956808160910394105522858237401885203577147293639202864023866938871394734355709608882823713029319935711365212855653610754183423437240482041612964353498991590172912368037498185713098452527360648270654088917065866184694780469758355899062281266646717485576923906495339719623185347918122919382187188244587602295030123387203265757352059644993692005911215353202366162782134563568993394533312372841390752072080963847731987395536877281730119968809987871436194745923700183796429856290250086684129477955651931182833823083075256868449102025696718267636749262474830576157192998576087934226990778286640917677722969365628200155484437290427833595009836289657371176641975694915589701649778817347624613313076157056897693687478395274376682195451724730352745796713512086257757424904229086575165905076562012155414684703348498220093763008239551827943513957584770421136348557783520899751877002300730411015931773018876120290307958483855231337564483796718108179060279100000181087036445752303593600661296522024751941207982646001961816406095385984867017236144960865507077864579525065364595864216886558059989974054418863186135735856860175974003606095864915825850722143679678237747080087098318033694871402819393220732497153674558045732727661932301961217373498682298227535326700103439920785221360543219954677085306589554771032907958316772264580553231631395069913372967864564870976195417937270136971314930463362257592039370383009416187295178158283907079138400124016978193230740266687551866142318882275706362865410078728163012002804837453007544357087750312767850326915189797179732378442172182490629141617563457809962960461031964442425338823999964845330287328105422629126604499404650218719875975641949067090477904383722001999344764972436663001096467297707373163088494941627141898098742372275885477436296205653820421808552834891635450128311469416560637413978752724102452872651853937849898315726391175068170333529359527081982669840259497539127959123796512945975899576372131736726489208707427356303140289258177758259196334562525808106870665908978302907036376358882723169146320501244518132704895170249673045243809928277278118514459249777078016356409721694773044196622599874256023865303080796695863402928599528493370387618729659438864255765912893301334964485771897700845286253591617644879681452886871847758501075489944550269865041854771033925471936106926403739648996284468890822881545635122600399989908228984441434067391830874371246837481077600338100901478599563321124487285149771089047428512534010463295339403284893472687408678773759712576733481421526531728851598106497470082436809593628914543715300013116428335563357674058747462052902562106020277798297727546650078280514680399639898903488714367043743633432917366357894592459968269171351933810362341701961727633597795327373639001466253276593622738720169218981497145481095249003436237221050073461944420984551073184079925873367034829893504584866227380924489205009254634803790186251199344581880214960917405660492123458670824180844157078042741302038404285896274229393089114833795077483704965757305199657666901527588539230995192135548160273697545669021307614649023200708911468450280960947470930065201382171177145304237559069631343407607171574319372214634112068231649368885391122227840490924262968242316948541272018681301129604422908476575844447731099735232720989596562915141007452161403971602909110866254099227903811001224713387571612209748500594084946445606056719319343440346992613308193255686276372467882340043808019026649542633696911083385780851207675075865491351286472307616497179444854021070599048162565286608850970556750305965383716332985962294616786726092564780627930221169604742397996653225672191763399319795753175293740626957003012144529393895519892350249623343291790366896730423506745219418720584043315998677341254865963852601502563666038086130622959616413167624704169908979641265658312607345682259381643169474894510847513089812496815765118773835686157304087363238202882603891397428635468080651325723607697454729948635136526645840297632272854194654203206803677470359687660732874486368937299006720294814499026097131541215248212138751743246201115162753503496707225050538195933639250579009002688520330101107007950085429531262186378963239888990911688030223526682654084760137321369655931218170789830970545900784670678715878432960363575420833694706678530758850848352080384397977919344187637089842023753881224564287752890419462987914887282333246986585173995997853524559912132532367611601457294701204363259682863526449652395584858376035220618416073407974340035566010838389554509648007608435910690103858376589358877683574518192771567571637546560229138447935273488199669076183870933039790596952453386379144276101662671205384667110451095925953958666921781795314562937283338774026434223032614237727039905477916972432271634399878473748438781451176306361373259836209182114098479761721255796152078826660445420519353643437431012410139668953950833728221310685394705218738844579974717227913596636465337859689508667119688006614454532120349317169958272572160474803639688974245529517573057611322606432734749671909911407007083597217573147782070838652293979101023729998798186617441576677602833397315129609223542424092041429269259594823908703531652573484383352827391399292654685388510122333201388105383716600340856503951270100243023292787312126431092654321704245234601706232142496778721971326162512004690327833680304008609180424810717811869821368672144476122717759533431896655390599397146769569038464446403049607828456495514409663451071363228680168178082330078570081819047831281739466987009270203240285762290171901775309479173697710839664007689357855397456857887866801452860630598189564569508021840324796860449587409443621133228625149764091971874237810548559699467124460863354005523438916211677976274961587513638742371269429945363527676031120272847937744431244125503250868695499099447899660294269570909637481437192131190915692333299205599673676920600196162254999641605006123681863262654776461465896622832156093092841446902732638014653493584803779631818606351693030894994206700882131293986218210314990331758155799341024791563699718422419535109618890769257119851874160043081066237063851525101984558888989070746618876302844564439725039163179790960994482890446477660315946030728842913874240951002589746953071764035073164949681883211862058706389083461487802776474224575757741782593192522383985635061387038292613939287453671175350175167057942363142869962969005793675786583493185705944476351897456941029008986870176703923845601654561411517867357777968169339180857428714617397701172762788905538914243552125751313664880422764996586954998945827583775364198712634045533958740893304555134801436072905861944580293148320293462421443789155723820084419311028151321692608431309476664124573349270590770754140707728035119243336217976088356340417074759826679908506096164903433021282303250415690068558774106152249645889773578021964490752115094498692830183124980345881501031867916207444825681717074296255267137627415293034684391226138797588178732657353942913503978592100401662562438670551249704041146613580025416286347336537361153853987234197261822472819353916420223089824118966742726025210397803061304931314304320380749055315862688521756052928554417960285292991029778107468836857257351800532944888558988158377638272980796617941855361625238704035246878340034872483392108862695981511184925055603050178236336658815687954499505356378107387179799041192569892834337648672512733220412851284412266804370508216508461979772367822957755036525105268898114213556283309436681787280396646268056613612490912771328099941009770832572764589563797763487275062027252159609223314472087059808876232656204433040842817154758509716683743782189559672873272060202186349448424978935359380301647667694442172601539962294894774041820688811989480797789095153656981907691197631703887789589442953526873670438043207609139947775436846817275424609315396019966214051611688156691505293688850643249764452460094775392474009243284085418527658773813086735476966547522881923952356440281663807901576016182515701674910358285297722918211990305855932099409785028715266686657900605372784929023546796882120290208912985539655105265071186925369732808509424664420031119190899532027150962992002990446843134658631449311669363897525666973676367248138137325648235244554481979666798604815383971379835672350057714787123084689003644288413102890459981176027027212077998442008105915734935432687839649215102340282894213434348499763703893337308823838975143090656538420737892698896208138529757437075939828014416960503243157159662480218973254262758922461864891518488210874763709617108376208814844316352525970019076304142211005289054557910166940244291168352260232703117260958832010707690809943886222103444443977863974739789182815499610783561133945389364045595911312738202534872735543189559315406166790574914940403642649131156066869399115328755842050737184342510630493171885612650268802549526605835554830783323280578378082506703473772480754718461232279073586730290197279429791238740636499023669325532455842942359807341893244193398274848201878993087781027961009134559941711704337652573093097152552501704355342302792415545848887138315282856839136321284459297705693934668494209499610022196018143445341668047363870047180800421853866633608381226013492545315660182766234084699976140600375147853019881755564447321230512371904701276069491941108434674596295856067944012817836560930867546560811159375388415461163464740611241089306046378168587107966663658450489425580609937239479970142472820163387591277491774854128468415725914079879091148426543629960799573747057043290055064468112132846547190806048382986488981120684295645555697013704207371031231655497255556818404422359127433221995360992582566371898245641167010462826487541591091525099431159135351833584128340945880789755962516474502211888647070802393677585451853488467544992118641513072300345382136240884391124293064139837962828852047299145270965985951407215526511696625889655813825440011711169265474997533890701985169544931572665004412570538659261703584237896902552668310754727961474688912117891461651141379649863346377370124744473852358638459612134341329735499774357496617962313372834325325976103723467191809131503657998752565472682703099001612166002503428081070251744037182968362699743824359111867554688615405185225352339476401805315997920818348101775828152399599023621960083251204114257740078990389249711001625204633991785911640829293453895737461848066383496621551533741436979073653836494102729383106928472725550707804381205653778003352001036676806044993825135169325439874244703106300440628556967067237446513845213477431707825545913638985382984903161143890353720595039531934841503733364602978297092318127697412283279200989561986637473426900962096130412930112038459791466672522871090744494743868179201789503311223774628842728305632324780966843680179420417781560338135336435827562551015966854137228562428748390817946677972208371241982969971663481772065889287905402477333683832593542893454219874849633404404310489479795374940100446236511574317877344767699693030422744439135816283762801761814292185666033991943856412220861171329662409047125483336664325377144486257473005568435671032189654653427990927738932354933979039442577874110372891144924738457743490932555839193343684627449396720477773535238897125479573338298181366291470988349040374128563641988019091822903218435653192457434331887801034923438044040402154750261595576856927022234433624485272798761737926007021345461469707759347553707383973237592796082960250478304491834770721703197831264153996415237581791281536185177569073745644500664486266322940886109113741394819259857266228762565577388407048269330646179036629882898640614032787245635663364403935687857618760039863446398601159780855597345564557018045209818710042534557692872143032144619119931460061819135930712936715920792407417005357159977061981130582541039908423487711429352112469870255170455014577164308923019823453340591230016015916472386154840378410224046198799021602465224920394096742526138574982979831789846946028411005368484835252032115564834708233787298658306435697511997136128065999950306438166174467834301357338848044449921336468782474650816520693078017841837975825620469564701240231222889548427004932278845346618814643732830809598795122985734032355920586654509668802873276586339093731423979291675834537823556900022480685377967457427312191786140041710207851515245107578042539655881273728681564522991510641082730689931949975522326451848993495068998295693874830535688984265784137189942396292043249989638428873140729269550823933842268567462086247349269314008141629429393268307941116255918610612504475410558959942025464756451738918892796322100594662325843290288638328336148531604676099922964125241694642525014858371541037679158515345803992848962452985904741659308796171456528478809434526489697389299920206712775823050536726190277626836002226739260188439089636445529630719872029546576186874488162483787868085775886804120602342935066991330210368332366912574671280767808493267909563873253635891817003607547498370751652445662795132593003155647576679674490990600279298892467864426357717587050762914435157394006547175442887531678447171448422673725523584180071033070826596611036225773253103255444455423657454701844592440132990519698601594539772102799645251033093311050595655549546253727641660108826504368729050871975884983918391056936233608847557416936748426611991187524711093604619887964619986409732943572299254197613365034970399154261871483291833537693015083424957893712549498862322712483052706632131788359086157243360743438444173048353899561056670864427030846466049035000477850317017356345442559837581387538391109715334197190220643137098308717803863396687929105094340864124309395804939208158435291874788164482060196985594220830556227599791491978482187138504377273678056318177159247353370514065760523828423436131625073971061492175625769817536597606333296172948665923133537185973720615154686484238305949146714086715520927544812550424156638267041117884828232312107253478641637945599638502390014655896142918132325275231743720846927320579350097837421805924718331264601209595556257875269758046429013731669660851535252611480245650036404991270634065447165115584149915321936607624558614710841906033422736460217396585615999408538259442918874990887905086439559032648871579779312763684570636014789129142222992189635655609133388970649316098459107885563053425400633657086964029147480537998961041255244975446998393222674869615043473813995153799361237584083732274388587533332657483075911191847547618737559678681242073698292135802245189984956038825615873537676362152825921303345338042352306479107820043427301558225737604647519576802412587326377384925495064415259815624819810595278657654408308223129835878772226182143148036524310194434299919439320934900025930815144871195261933434804398403327708801979218307710315228508112261407415005939068506793491367391971949512455698186315125716269070728803000438939727795280531446127912459515415157689233317654581134626935559290448388942136835464121738602825604273286075659822077949555975071152725161511113414974940843855309813238944690388341776186498472927656767567421399576253169228439691657886858713505960276189432009063761913210058811012049418000363744429078436877698019843609750610659287041205725886127244539281991218087726355579175285385727104661373133339211229569644449558199343949576137706685225016791412608953619937218987761226489012401786527580484219435330654929330686159509890200383342768897535954853234048555341164605949175997401754372796329637117399642694200693146481353578081286027050927298527282279284440734888107360159145210369638185280422131819944752712788736575109624989712983706172519215914804263386653747478514360569339663675622412625425471291698733585071191619467107609191779579910843240456082021026976363085953703780666081223995046670626023694618951642316350264212277449575347497972031093915970321099064716706087491007721285208628212499564355481010532590074093032590811045305226158849423998649447738691914306417734093595854193032479029734966273131163818339756429198649169250321941953889345288010999657196214104356631041773536653082425254452512234342011216980035724386247981054536266713592042009613481353011587279544024813006499221970059818326940026269794922883197416657728903832255913775542572639509855839232779087977978387303190138867777538150950590233128965633334671628520086182760123475866191090739697973804006045194351817954102441655502230845791875677918230106939253638295783043727872409450331691024632350366433839121488734701783582795769066353057162487555034600400922301650718958186103865053802392138401700750451618004148934975537488152568929456490364586654413021017603214738883253295787187429875952482059041589830835956471997233859467447231092736953714830319016211431543183646525492574589660588279643358241392618064247811864005158889185195241975183895792043388157381812002569145422885124511957070377593670298897509630179279671891201298236178766480621681138780305155053494013071725053796267937597934838583915426317029379216602401918349599881829684724136657527523726859933721261779873980182536251061598995147110183383510519940994652244105300323701824057655102957848438228049255681143415958525169877943925167919458359309334325650011173280542161349021290876852903980457101826953639449980594915566771132134740091740406124358546738929899177635130022078682084329108766051452300731676975416041274251495095053351231932502300111653950345335222873170937713639680735731622826343968423707431410761457292329349105785574630937621147071003131429613394699081658466337166522030478724225595809340031398951522525151446921795476123860132315364688201180165960974198426447546085152972354181390888193450285165120207083718379993129857815343351117013769244581470704744742947877744556009914846968274802826377245374383128612088413035948232190819130698129855202916084073825899748941562519698179997235329274443003260447933340091500122105975328230931642540853164423192839476310945253815716525007116359091458106539019147499963922437073068544519174564962460614643954210662361459407639599997819491382604026023414816438673655524861009817355362657074516942859022828014071712734004250115093280888759737083731875062663190805621474821173020951752988492876458076837344704353058988896074111158562952248769307531191156415790415691007935195145850954645269510033614724063070803589578133633704906961261256580227202325041794821016169769657382021548378439306394398076521879246191482474725794434950181109215947429396012160263544793763014531509927331444912242481587720288917868467980939124084995080616374676863831046642811733350036955536987483089622961258390489484966524668652758837595759619101905016606489746160392996850894353577941182868998306802074329144671500474425291534887645597317331915765973737387265154228280226893723319510280844629022935396661692578418052874108046997250929694697842302605514977503385301318813357401800984779108586089193160375776323793927249959147725017363077912929549906232668038518747735198427374507298010011578543760676700944550198408546305442462807440890430082002718910807258857205253680153011918165692290785107932199097835306532196682422668878591614349871652373401281886555055609450591207957557476803176418992717260369942753861365665455723071832510901537924895639522432698136095533934063736336858645140350051858511971980965026057767656817894940036408903538964805862974077540365752296430747249416821133896499864329388626056801460933204675627137957398978275556297588008225611619693237787894281085669775908375386123730436401931894943946161896976312403067900167176056911990627425338366147475821590339696118105469141059379729523044026654211339233641921274806064805348483722547255500028899617373263295672623393635270851654880648558783379472909791736222795925664411344109996407835252824662250448755931749308266374029143371805223589116546246002632515018819784326188135454976591669399785999887292408446320870245721344987874385814944623740927518469830909907464647473393535527984494263790404079535162586214657582782046493005392710332321705229767743340192383316094537951820763799833746749463609685853354447666123383489715061537855382026014494046120946959417863182389466078427678417920105486044271169526902597603108155570389552931348139170447531792686527528994818913783575127753087740353716416087062460272193796635130501180789382109254235833179023148673281673599121298227817643887779908043161410948486913788380154121705963341856197361796049427393692279172314771308994304840185728267619767081795578885909271981215742240352840798604130670638255118356988576360451809081679460014022376866621785059957445457833458850558063759448817234425833340413044025154186920807985007346390760893313543681182700676086925423691342480517501203291874661545044914158717265908040682778402553163222733214477774692469648017735325387152570120929311205361259465649811521581012907213624657998779685703925110541880159662440455623228314968095812620918590548449763405837210056319671201106096497340528506480793087761949002594513325830768603011901544619305966247055675044588680591326109226199327270513034593586320271310919987210036501335843620421942345745332485916955765927054021272464927956178592190301848308122068742177691644998604802984341760207699106630709803350729784682837384381979813266858992415635538602742563004393197086485759878990389890061536446424070039839739933782159099783287723279269387551511148117239802994544867578675342492770501328970292667046821262520916247158888482521253727110644355554714597581163518048265666179320599125187453187545037387591001440254026403912395045575575652687044749994946871244224377706990505942615965075484697250683532077814110147503987777099025691967698687237976468505758535397339849079677285948000858408111659365372656127866452492101230131857602681163387111331971869128724932439314441900547307431841487900275909450877079348893301042450260604243257427712364019055366970784582700207200238646192169320397870938537483500990438970119831306766424764650126176857735421235952068949730043934255957209069988063027294843402257465268865991974258676131889090170519618477332746524535157888835709726801732834482709806059581134107420720948531647266130142826945120148517763398430492654387917502317217520931087994839192929548673044409912216784329949143064552023391879295863174981907677310246277271603022243471579733513570907531631072013252116164025765942013654603896400217012034459206103260887196339465802140688126768285851914206287837336626826863849120201368014634577604306925290025718819926885511186381559483272627215481180034239754393233267353787912192392807882948405033470754814678160953404552729347115669419420897588355974229094908444504112148771440147014456664166231003164903349481605589920348351465595205744887534091934121652588814442473927667309172407270372604675376169564046753064693348236012658695307404808507617754503197437336278457526259693683385375707971604763022221387935365916016297321584474929794161693620427265813319966293114999271037836729775304570864960483097246782113906925398211595134797577371636753336221641232618473123982443683135316735736262787128256719293319683652862708810968755851187666059099879559974787383674516157693161506258705928439427697059961167066388017473319413443782104333184745896124231910684247975573018428122689766375351823902748839392254154821058944784270266899031186493055848366861111077978161405159892509199615440256052113326575477025859234735856978111115839506298670614233242004702460415153439689291564305749538396704389658006202404686182887632040970851908523105469909022772184161546427812888026151409432525155878261879240725230310833385016543315765911559931324409305756106233049796198911396928765880871630468377606598235737181665019195482976772934673941437802034387523145539221392808354677135138380131978574693607486351076915199193222654945101037324943885914927722342918354461599136400704268278481941704879001628753180839584661930917496652113330328544031716078213548535759825248059767441476663748514312850134189839855761408122618274780425007449347401306554122191881931865231209662196707512493188859161623612612017562880040375834303285915140261998343738203862122746911512248923974121930845796022818760565193139977173649288495436908638584386046864255452814961880310292617504886881645338278426160881529232274761121713358525752899815503929405274336965297762198064494436775757570458281191328385830994230235371165861236074230618259744733642869073524452642185788643511786674909534377528490091931965616482318640819209365978981056384824179201677290166744471565702306848718269133188254253876701321901700426971527574260290262273020443954824698236587550502255338653283969973449888773153928694062016817885804418909716228387760305626770711681922244379567151878878981164864613238075499774306169679013932386856111488822525961689125881956935955952617106201272289593042930366875937414445343958448746402571952648322316713928155364420573759540449714812240343183434071219306886722094539534701958792901155397103766754026158116054093526822900473619443567826371837954283543198458376558971545298970180600545693300775923219900458714476831957269250533414620467889343780926089873646216358522955369219142596748923204672755286145975581961197032970331809594112651663205139571859013049702768613988997822870947083797786100141243807184886860694561685283731114255621689211455440259163152067380215684500426985998232470469309544145277383446784184338343063541591970309684853349875783046802467795712959877122270264588676618320308701967432059598525484102872054840638986826492962951159535852772046219919433679281791287635200534949039768877213230362377049751657813080775333487747809251767610584615780484021587763970337857950393094126183902725436058153603794540135383374460978828893804655662406529673868845932956775418576998753330361501880136450508245580919870888978990586612222768297217216946673572111985130701114689260352994809238374470272213343788995919865255684396757275077130898549912443996238964105454617198533650353135436424014051330220751831079603613670829139119033481384899457828098582453534969805748370061946246568414604161125454641188170930562000123378298123597628114626746404105600343203094977084790455747302634809593693166423291787831264900784226609178249084132407725144054502925518107134908244406048153473912822169967827391847696215852323690864477949257171794723205140756029034013031691099914699037525267160926882047934478117709312501613918761271779058869726189023838555004950919223276949690351458423258453807336045228417438144775245708924987450924535436995804885489981835957068251010726894167823578128186484949855264856379680436414618083284207721064157570345597126358563778568734656227309069150637892753609484440493566529654196113123656772904668969411113562986272145369879209230768237173785692435425134482943952264741082513279881638880055016311012386341175186272937644851259357987800590111934939871794164805664126923928350983037786311026508944906488696284744360721197760128575354046081019487756244158679965949327386694121768812573316309377662237399659108610427974800358107197618160552494067767375112486317574784300060448160696415938565115020645766517470540984289225104704596565235372963346650412895612362651030986790863042201494749939594520365765240168680095835118304586935545443917911983114769330218287121491406976380822654273756039969771586393454000698748992536456435631992842066421024041655118317111259312285795398641625038998344712777590080296461939789895684088886647969988204296919501334459004837865713752209294784112399638115544283380299040402196277493624129616103570395619259788493107818145349983319722452367783512619872096904868806880517543266524441975505906135794699086537362857019997361514629889111523337601206679084006355568094433998177618190624023383392436204245979544113169422372012681582503509023103485234063890206179724035538805504551571868433381676777417930529558585526646202313424462654694274927920448401224674953235567107306497939302845369694608817884773570158330617735302514250527556644460424317215560021126130076153449290858180176560933807215952383050951377194527394854932336893231321861457973952853066132601105553708002546446420014635380901945417228539016898294083133472479715943255094962462101338519167516222889557342488384436539260169287821095721453518780923489477446970286612746672625776291916251997818535707887515078181242538693852587327494032393564713773402981456288541645559203546977374182231879313916396203487196776945620823064559048536824820503846345712441274417632583204133999635699481192754105435587068936648015445622668822817734686782977526394206301422421622782175663359266405350374614961450916185783560237890236987927898948218903694013620777753105228349203423968547037657154618420497805468602536688526995624546760191781758772334503953833431696121356858345241911006843443626991721287684052656236257744290493262868866469924890809634650388315212102460420412981263659531278978434088622886131657256768535160005780697413895685921684118606647987950838368920115533683023317598471414743823902561757757076684374674763659416093160209750271055876507277877875364485728735091632467883568211411425257057572946110492066337689380908249347910073731793689165493155510197288345972433639627772015841114066058939405103295127101125307691199050574187954354440878374546799743500225018848374710427877034047046787573537846157265908910315073849202397636017955344014618391852540567557493933312484126596573058942257500754697282076215586572971035599172038073072853333188572770331873798411035336145733496811123857334825644145239632227657276374356702059002563800780633926459162466638707146412921776944484342832780757190010492556296759920783845137663172417448011389915822051046189434923707185959900872444547023987858604888242944740571828002610664173997189009321850979061472813760654479131818194828369443079900230530857545542709635987480800785856036097701968560844496005050946904247066680867245203813454850609784544555711312705940067430200161610125453480009048443745037159243569382993083150808212099261740978324571203635013135546207499868342126165475969924657697096591598651039617092777697493195265755225884348471074535512486770211283896379721031220115876452461722555012866348987789380537549234571508898097151202579021397035067683536588335737737759416945411851866276442934540963565443504028060953808229178494602603140962785916918121732002040760501949823238831248613766406555712988379874417186618375730835455906925546943703818829287441823216442457356657289801098588479101107343346957022832445900098083967247536064877686164452592079375053647163289439090826821171844874949123625301736864259102064194507876311174177141580375308289987119314216100083320782352688908414559032211859076910141991103064159040993641196760011760056239721453643699099031779103035588249698911849923755292923156699091677582083625084665166122757287781316119325559036541597558016634963909571782994277443836283897020523981298198495524161370032805097910601577181963003137793168298542393994055046266088317740217069880938276211415133076985408517422186778131242882189018661062754208156198979255949947801253813805715534480930459262413157616980680589110438057384613145637161933372669438378394318622468914407892691054861632701739665204702791570949107844150442020863187541656335765869483821316182964382647587943780310287453586316324169888758244068550602045617455976498163734696746033180451824741692081560196725226054766673538146295873024950085392124869889382230990061435319225796368745433639714094744245734839284032152935115283215164989079985746999184412136335411973450079627588243765414690531854974162056453491916605985401006234612027010996778917678356978764124131199129507611164092108880255803896637427745849207659667853070308996850524749456969324889277512746202408460263535560760398013454716118902878344222850686397234733510135756562268144831571466355305020595639526606462575291263537367496798995258043664717442053480051386459339706010556089060558478972208441745390303077425720032877203394932960718941944685234322222740000658138904880265418593641692323107202501336976632034651937349379328434798417464021490899118116871673183501335340324065725720467304136077813945404991554793772911481533272941842590303253046760843087305728932578246071122137333872078029205199364429596479169055836376655727234974215388746326019665995948974354443384604806009221133516945468115320194398934034368212392035489205800562718433308265955749406125568186213798568323318782994448367523418170375312485538943999166197130644163729297255724253079411423803749394860691732205812350081099482501111838457926782292212955040210187000461459047133760303959356928483907422936030038512477010421082249296573796789226752875350019590682195195044697774025528483006521973680637928043658018590074704475307623441467798764034490217825683430995601114804679383934827087312798998576009374718167504195208865632541036936737357928391760856500842803413340722135258280809575714894299815863375159175863937799067464808868750278065102104852430975470088596609288865368735989213150074047699627337541974673085649385840805395956831180797035302712907841363124327607887057174815773715457442087494498463705718221813018535005762656998079280100034374978888198705877843283750886792707652158048691148301603503912744222663670984965806653170627295487324476825566280711882918080606365008393891164260127502715676567366745559226484999636346201509220277946048005434146586977081297595827834346073112274508472986604651873376219341781880614041147066285878963945880993043401369123724969683257850035145366720829544369981649227157158363831383279020017188697609817421112763382752262916347663570538732107444441439691422972972947728613514376355880764632489059458315308571531376849666228968922821253888854696630268621763995959986844504455112695824131744484240414249111999675554493996615935390047086606584257621160469534066920375073543201725546271724209047260883852964272275478998283360780545951107715550361089069537036065811469487476210934183511192535487912675835708865679785370269045208515872738301031788592429403200930842243692476077956274745678407487381354222987845329891091376059239229507641339729562510091761742414665607205291669298678849629357892630377380548175679578483674362282549012440878332909595236206629938593361014519450258208021449004739645367159138083054856354233328470698876831682962186485856068603374123786755376069092844203102008939750070073303771990828685465162799524596826267246091056335684297864066870972657034734866823521099585887653250888760078714000651929344662919338388538179619225196867691545865771259855091362131271007999439960014054144017993309328262822041637356251046708872652399115794985518950621918903852435697968225825485183189055886742173183038575903582871032482940415112082422548948203219429907191781539827663832790930266941472469510671337015941435753592435029808328972588725252098061073661414781311901318226545303056147614882448558075565744237049596115319584274613200723470144476712511525315279693221712813476048013658730484685337030650417764887434002697128141394838884102838339330956468103577846703087901323550360748036483419959831393927077713707434839769915378437826419875893188288481934096593289443207478868334180172453585216086647825108158086348964884483173954942548947669122295995175300108047722111066576617334558563567938412223442427030485314681765520877074198595496395754822126437821245073474990338744686005005889131515906173791319685710125880596614483109085221626574670655501227352690793211536293750325393473562720971787885556650671857599731310872214798998539706515661111413322735742963788255376633892105540388103523606672127369338862462903631382161391025719977253278036894865937215212825893305784572217818931379046564311020695549805710500502369162336252933047162043128510546356070840890617008585898797726265248561751381578583884161392617510721289126291015848433103640311694898715002434848610209221646367456798807488588971429343962896193890083075875231942992737103719428707875091252240420468513894317651870500862259843192279478807996190951955280175553441718413254586054305707264499084679848308851188867667147616888895986234527792558251060665904172109905113869741815503415264001457468839877153519183979793520718633580224723781678691284277302914277003952423738287352664148493383114615695738701901264071941758164279854787013315131093881176825435164699759193840831520771282075364685165325451200352586354301604015776403012827496924297374118483402904069498387068101768397470319585032099051524898371798829408906029009064544375553046667559218666751397499371011360491433365182419851078333071446923339737308395414351451895312143696938069921056336720075042720595705651126079302716943571647097346373105790100246706372353994476385426156156482567962481275294083211519474960862600973210271956882399317647715160156403727980372454644788052330661678651806862511024256136619291522657474985962169270551078020985468987407839193102940800592116297727872600466623952608442172994471014126911093030567632544771579452421476331552625042266318683062265278726104141879378164740481010330183408954406334697609254646765088595553865894471087532029478354565153802655946376053923202133479151205626841905146455896972804110625054641028504990339295761269981057183280335864220587884448785912238174415702743380409297491654628591476443803536824731979907421117949781882788173626243777276139069701632101369315585404645818126118678303190426080352149818084583114657670206014087400246283104593153720089618319596031198196494375507639133826596901031444750738643771647895542533218643306960916524253516701815591861996787538809872151564374717164046858938339713072592731294195580877061922142348913280581818916901911494198858154999809463936380862802799302031273816382129840587889827673690278063250183723710665422810225452172150668166020361430766377775208431629343921824247541576563527583639933637368508973142213187318316781334609330933301088744899871062500550427226408267359349894882305425589675347765725894467207447251453986257323001751802602026368298010995425272494388882103960694432398195823745677674411783477106075454755254253317559112094405879317214762236617229937479019807250838313245003670627764851879444066127250901234204458514320580472688759579301048160935043280612246984368632391675043846837722279808292615301905619526261016325036959807421168576222120850960625474439161343567234275362769575262734451327092013046432890982789170652644782001021657036167206392979474457116178034584502932838350079795388286105617737194060191190680524818187155885048879845101013934237043544342107653115324528118986101235692895924939034281301428622819345386586516782404102297508482104559378599678233453527618773002624573497965279995077560788412535572864452723091681544834573798781171601725609195086222141912049980990657178167259847654021613990020268355363272566932633699361698040627035595135366920746270880748849294244025971060863460430250618014335257153817419340989974733572744411521055626259129605093256069837290625998599627304537327421832910690004981733110306218222794988138649626123237204160024767906508719034878208202200991445376255397359333092699882993103047380790734538274564750839060025078794611317563887481859651603634540258018512310171939897162244040923437662920417885007125565586552599173716388963904035212721080566629846490583116616912979004987121095890666357144025593693107894457660156151665204877945814535286408491037945335297246965655234413634412285781738058444956447688724532253486084522535745474110818798092966147304430440890868049896384375882586987316160759321968264854574924139262658410739408419304307979255737210998935337483006833447522058322194785185394690459006592143339240304530193355374317768886617341909004657489556780385285124334000118965615439801518676550752313005803318271572455452771431362134946371373754264318783244917226146295400820881099259670598125886659052134756389973062113933459578022430648813708332094119273169646339795981550225248204532427124088224329374037788923884749194709855659195212637570742846885933525449997260116850834862495349344910093356048866721509277576173160702057476623230553268334863345315477316497224673030843730224923804400109959466665043252390501401469624060258533677880665839725865452322550130132128017576471511031441814952944704693503196431704117734196420110765315551336738928890268544948374476495080365567158027876454355200294703313013287094964153677707049752954203030415019654260355967091834428742055125135155984990424292263644400605927778119098923137722855052998215328007026630948432041892413785154686590294349868789080277502066602378106386100886101614599215985688881347937269690344091693375701822733624434524129049072897513849334526767450332705171532152748297865591045509455346439928372480117597351045075540020256174087537366611613584819957716453820272231927971847632404896238462225826526263939291178971009505754689329862526769459155091618559818838615083021369798545517211896840876250476469427550988319365279156370228214102672086056032835320536438980820910852350239797858222969574107469551306543900747284255275686069830719211498099125662473979938833009029161843853639857630830665059816472852276968606925093718671359902943986358928407501338865750677547937220338162194822664770247872893239354306181275709316754696674410674346205514214039598055583016935318662642697682057361789901383766884365727029054362805066450551342994669311927247633260550925335180078277051948379193915983985626337749470457358363578257751327614413793808157120990535638125200000811790823230428540700703815915197739458312040187166373636931294950709993242293422705079733201671594450609793449581232603500998182008991230035737644480219065309902538347133234327125355802446500531055411405583537420535363968334764011204783029379654313184848632537710124149091245616304086713199194133018238479840276842091424013343024566421005851951956548517759339515545488847746254006286189647045934895849068058793833679039437653430371271518150422180095610764239843514995917766441799808958177788185628744294823232787520844691676846750413828811135956231624274061764875663514494540015302605408077899968959045533589016306219379523303339279419389158274670588022622382113119587791049662759656429398111874148496125517206071350386599233614230865647813025681543208360915429276851637057152859206903003141094835182584698212892666427718771196013596913707646583703237243000165919997413131152457938480687329789549552685444387713887088928425244508419960142281867484185912523260162020361002676802476717962225935238919994686787025535013362799990820435637666361232190797852166727014693178917782890736042227512757033925030985983247798808331451754695726112213541663151229647854098058936920611413199623648963176037456670172480722774410595585178087963305792994798109592787197349276371530955225031524185423531064189229148127379072775829226000001844754537288901667828950576621545198650585343897139068239693429912168450633786178142284164462015800126588272599087716190437334861917709535597673451940152389324819558843816249095571218018621267743666803208137408754770982702746148599808361437232588256559484049988275358988776359119924320411012742993945029631176404086286420112240372203605918687166337840812387056737087874533418045022834022589751497429419222316661458400567466423633779118595733727768200802062064590001270310554112134123326792700367242179668087852029115501056226368398257482135680457536990302154190792805296898709822793781616869596495733746927115234159810492945013224982346364103526996047135936898123796128457949276311598121854927772519423981000912252135152596569543553484651639464121432767530253730333356029415553452537684141796195224961715297951673707363022845805804831495561787640989620024227010156943572832017350031518813676404026455022891373457929944592864481750725525424724569116159240984276062227586091010747709505384378885139379953968704590459850498786632171597581521421782286671704272739411847642131356324876465885008661301614700924702868131332526064190823854566030431784265580041960811345023522579186427555674177021930909389174594697022579266459765160340791252480937228338096981694192243686171020273997021628892691926518364742433343888274488706412839722892018921937266089715857476147548892882183246614122937811139495686706545732657952966980912939126613082730961230150434311671354345363637083109933540135229761835133747815477634649291754888109239504437359911851048401441659284009985284714962245034662966963387147855203430501154471893807082481827808677827073866143709107561133063160840198377658490023333065702076868229287511380700032052243629412395006039656991758628715454430500437752374304827920269211387476800362275988233419982873340655941093255389190264340800784256342321219466356862146098463827599177456955755491501555236906607124825908106675255277579539029488761455956657592570011772281856922797698476557492979005701908890476479055612465254513294964314143768213050200963870770063031915154775330379892810866162061963243173646384804295730204645452661489956404545047411233325635715837352205919531047913806719524661080661659562970097103774414396496729195958612439691308525330360265131466858564042331091920170013766136287083800623743156368162453420368189393355509283452164603303201948656406835990209537842199474578994570370881411560034548675923278768935144974278365125393559911161065998372694323546547581500219855151542368720008235575569966934751759534915035516678163373538108065758024561692338640353987010493473624715271821560651310664602913363600298235812040062159652199852911163307510736128864720976972349383776365307310231200929163305414238839244171401331148578133918345556840445061893863162753223864292566579042959106466545127380392472772465971621721961223588946952845645075723740873173460959002104137386500786716379223217177968062458136359055064320397890105727778415897756696113215154438137084202536984791054452678474160612448992894150777830756857375467740530749064281246704970881828002418387500565143534155220553809216676559131435409429296867908171298303278095188428330784934044628956631902200229882614547237196733730015839619817700001316354761151129499181977613783211577657497594616681937828493857917942375675662126080547611216376098360003147586658945133114074345462306130729450472983023008018522721370332764539312753964514378566495185614603141746512442296444110499545830936181273099507648386349474515797439764368286368488687688609767220553478224353357080663133231087947620920587471351128739821582850632561668518836774736722131267285410001155488625033011809379526763946926234030527701305560014922728160204989731560731200326504296606129381655257656638987550980334468891778642282767428342525656266991161726764338202722967619889463698503525070430795866177009797201924732376157420992981996513000774687020466159264942978804467532665278777519163442347672509855872052629162969430547095154133897825114680680918937225779233270380851035856855031864692939005052237340430210728092040003255543768084610837264692908117838046752893150344436791665132178139625098811132621233205988040911969032334933646363973901380795722309639556922834769035067719121220776838897209667702692286439005681999064194588785734405862726348024149907749825172092209191523916589900103343163582899513824923842959767171936703338250418881403487221361422526599366568916954708172514775595808622282305795429952702539955281699242151629493890781102942925035032153327331968314631766181695694769681418159595142007300612398752284288753144321390899709203729729528007462931513285227643015584461362446551119752367074264178363492483875982987968936300223524438833525085988907523977991399651043260196846221144296036158568811915874271767371181452801803618050142258589389331140651249865921224793259166483097591659199550407410542833261032770045810366960674997138123272907108168552194498309417369602493176883624435372069418390413932486158623499047501227581521193393009392695395388616857956761498535698419829110309165179690520404241654919371674952737797983359004066527411432063428075340591729522433273004411540511172383389044800086785640249040861274499726915417577501316942785847112725562327363882336825660394592074976138975114232383125582369506380361284292016011873094281280497200295041623269924637539831763670782111651791840980362733743296547766916843210823206028060814572114553815501984626569992494792181469916603394678322463774052500582168425957545197286764041198495061060404485031252905848491005604919202414526282375257404576360629773119678072857608816651555303521529237981575948948223508627946558033950687162923979699533272268462247594886417029700517018886661790020138031537990148096262465122267990681102331939949044226966083783287477782434639894543114254749425719901744487131161037605546813678964888530259021655874184310937304212444031715409136739330002912662949181067486180312143433221737035930776719784276509885022158023627894458112536958247477946008726310238103810902187516911072563823267547787959446280853544877637809514171813392128401263816004069689352020371173475281599541453128051162794766763088430356717160543323427220429463254850694118142505661953875735215613404676285843407411173485551517476323944239034961523802519531121973423697798750213246158551335625495588495367821797073893693545285112292914416644984312179972495088127205547964793520002677437953090039798072397823766735661562635390798980780158727086433178668687926952183650677584038921849683433438806439999099351773014297518239788644356516081166721923304144065425032363279877470146531358381258850822672688928089631389567052233448372132143714057103890192533723218839020934021254249340754954085710125148949762463663073827622225915244490811380524851097163358078275246138811961272447175801304291581699786182275090384281688346702358054321041356905038657061176611269830531360534002537050148423606587395004113950913343117628468843741184798118271378767106776892083650836375686187041144872933405848616889883477511528831970543200903379346772039181156146928503330828324987996094543809433892946096435469248857279351392385305783279839094696496016976738432604592798351578849534077773501584755605171519344103026648301667810243481292653943177213813521604383846322222751301428149186724288846054938951899575933223506718035485253313570646759616326408851712092055956605381478291190812227810196090624031560826902528666048854088981251724318850244381567288197076295684500447515684950028941434311756898538856740663632878064287141509833007543487320085873502934281161183752122447985516484500761385758097519640115811922624295598360207147658327422970059132417053583753771061594382429339419298871786383065658564645235026271141124118550768826373486350543059453004433540115666105328114108731850890929621174362405154438993585997028048735273286500777582417513019585039414098785441085497152022689119660930623049754434165896019245226096768741850339786559272321426912049439033804641089167914764047322076930599658979427011412340992773484470381939973264247461914166414392296618985840688060334155083278497280790356733649157866861676021197622647683987460975374816918224759597125352201202643814859371884551299968198299074994713405308861512481273463642411709541067299509271957593932796886423740250652492703707312190399750735557317804259352675473466364999113282433800136499740212664742694606702133292733618878577356405360708944681607542251938404581647204528991702183978900872583107574489067887491404734893402256612030620430932741740163861725933359830139927367036121963351018896566185219427049235967425172380758468725828347071832635789834613469404225873754094248158793262163342038558442237697605296546282109673036931109159025131934656817579420094853235091846525604444274825647417690515180197264667310436854108941674946432194476058623903762668214409339484035470169996993816026504273374331300203421663984255482976248631739362934998766917035608701756724687105025671156557830045180136377880401384689983161009311827001145125800779271463875025486515347739974353043934887340424602198596474743047591859648676045984517626080358696948170489915023462425031479395707778000958077616197855095501464304540622564564064146364541304606100128875489903568252470083479848778494843074274002943520026800691736455476299843279284821189625481043619304685406428457362715490907920899981795430958702187385773923772899112212121614606774263749926144233630384589249317859509780607967476426319563120918919360002186966784020290378411155681172525030006196490514727322433354530040963427195177670755998598210425670553909166867893933526412743782059210299148447204587256127782829831119584482884592711389075712542717295433314411800653936131839642357714222111573993931419976388029314313236765430398179270004836872918412529257193545318061582664079916947957412594614983458394956113445115171722252381947800827865917974347312419814481653288433402373630997564344834155472300983304679874823795605261786691462011023704513121557727805442268049097449867657214558249703309290675162857167544561698177811634073460749635605968383679680553954050132348252679055176514888351269115326058274819965588280767968606571915697498373719522035609791781445136272054563018225753338209457266275363947369888649541246513829563874323563871034756756317350608705575191874640971617479874442527292142032638800480552140220707669452825251195162274717861590324681834587235547875451191791149440900898236356791067204581626242825276760012399657804955335094947623330743389834053079978419546304575085319278865990940271930860722947824049363216830015399190154756043490193815985050528899104778762770434197250407036252535393802860051148375730679806902349517934217192003159193346456232067458582158635310982670486461434341210538136102110952853730606325750287683038991664133217897561666708987319701813298061400084830910128181118823345747925331263748898730598015822849674016013170471602122723678959678244351953695853334761410534347274873043231557941673382826232659697426743094159974280528257298321274784535201889265971368141444955831246658815061273550182600242454394210709931192729331030844018445273143987078611031350025504480830144097217000874632229261513362758633900093689623076251608360665852742174410918897438927986752529978765903708988245650735950469452404430757115355660568935019343243786757651933455617912720510339342599279730259753151683212770324891371893785917449275805388204814006831069851206246869480758676417558956584099508756444476046657612149558712755720870885103277939918880267983950127557875425638362192035688275413875733390307409251854343084696982622016250194584788426728646575163473649390491624885072019597082902392245993563930305687533473915622102310006187382350265727337131460158660146234925848343166947461874796286106944571893783243270864105872441175938863114674637198256769371612466623284105914988521814072348429459179976529689181003489547968756093980089930873091242737632101167981881326933049878297281842619282887895877183364090168468263115532066803523421003429664306502296519006438764899879623414832476314531750858109920489528214882660129842217733258122267530257395682980939509153239597580581629016275616360834993085258463655750358425342391943073613572752896960819370054877178106895344747818477474139797311656672799568586444358419865304982581161147484409013467330336942506838769911175179300704230413896956051384248377139103375641102942316218965339849785620821424117840148274476630589458157730451094906199609079082718928633265338003436983820635473948059110981125068815844396523971593624054272740423181837128378268991477088703209233916542577310855004406537039934231750171130820993328525728040174976428091325717747749029008993062223958463761473908365341571262547468872256555056235470050273065539748057815782300368037272578692965877678294535132005765417569481654650950014578404515519002693114964980354898405300066098369263837174200100642605258264330431681298721859471908672040395966034781899558921408824993122253278373907214804319869837969527723823213252071587611992786667964701965768010009195679487362475150113012190348691510514226088714354348016060995359074195334693205536336872135763951632868753639862732041576391108195387754785636018086154606505653610145892385968260245973618344824905643193649087216364283177359275961730178128168953073828406403977205107670643541596395477403638041161298833861800294708808915296935469460975810470645950479900885481263211398616533588095272623268608316087496555143381393667622390654321635164061178933803641034882890537685233754879925106846574024273768062203306173916146734059761733131564841301695294246078737611744296151366821052755598107598619778101758324007095534817527026029561160263251849232209425945271171739347750645146743691865049263909875675227390310935157958672431711728587094594979914822330686956292877955444848807090533183930869713481209825202590263228536922937533640108165534054445414444396720697267357379647915655822359228983226210203853913859053828000986585145762423429372949777295512972299869314748458627623803567400855950433206179723200386165823582244445697244020018492279427793696720650260609659549684614884996209615336173074594127965096529507548417506680480568592353446323119484736716112993703102634800407321204206159814732218050127920861430131919026313833603049899715373949096111926022470565347081412825624964235489098156310185376451354955272547994620474070414638073598311956550415697603835496130720924887654316065487848039324744378335368813635855355614942308518254118723090568012309929160260734885597069623343581774049092009393403074952513198586542992193374121584465491988420932519061389849895490906095670101274639354874682575569047544971518065531988920086685901241630420880366836991772970360705132083915773354780705150511660742716848885376018351995323767744972415510485618193445089130562957647779413371951108314486034580594647287430414166215044779533170929143105443503147682850384438716050432728910568030287999874627827847872297965551106697187147302529978634499858538095048618302903003098622908732968910405983725049055522422438854597050936941600340946431276604695495043342192064374812742463203151138813233331847725159175566145153503665830164205387366015948156535906955802153666492522445751988116316120919335810326190511769760748613505977319378574438729848221335683135451532938664818896252888016526589418021421406433720793969309550195769927661676447514753964696995885591203674298580979413060318302831719783360914526291506834335291275199619360998445414634416095594433584518315119450369386637930757960707074919256895543886596397539608852294067577427487744707819648459641571188928135680495370077555287450293702374285761708019504254060176226234394728698601987338041589118808898607774270130446541472530099672983723709711936377924472205639893925960625811930540397768331960200768704662330486477350060203217789922063115126985356126443523434035851584174330167332538813570686623965459327013484031787864565952687400805930755535573172440769857480169937423650687502418998554240580051288599002779999498647118605530081119594887077417047085457879664920137177496296875361705443221017031355381159348142007448504251041378636095692151673890269694454756808299089748334174042388490482221853825169815015717617438794568638898577249971338974897455905577558753118834309657270775637663945995639351024274124280083231383078071272279599623709200679008086610412669339664454176863927087509893861389408862671484619666398053628190236734710726222483381752427394454013179063490057583741607947508405061974335271538974663210572011316689482895668416281087785986449434941195384899357100796256292669969805994263513199243119001474992810072809842318306344862864740131563237997968778671329290303219082492691357100533404540406252496773016550636651764355120305161215534468570459602903841999077194206301030394837027036282049244141568083361009184581698086352061919114931059158864139408026065016980766366761645355427261120673447970377681467576004091933956284222097066850932709596543665913642314296719546024932399760005538359220676976917368458460433359501561785542752486000390820281134983420818108347961439300330549058158215094782863811400061802047962507158452047406612106611707762378554565146910600120471629368423651183583388355360862070026043372365889315894213578051338555231229545704361760170001468678520133043798730413463970723246941364745910601206834281268804893254075771947345948058197274150660006339270150723293540018341066098335364107055711776460372789895450294746286874563667512939033833259332132281242193866017058091529242568885066745863214357115121018164120153195712985458877774045830824158495361468817637339072579127587014318546750791875474947947059010531039870863306863646767236756215901705103350282731287988976519461424426184323808992750437944032293108455784330533302183700371842487700902211363803910359110463871849857350255712942628724539460686867822972666240204281994965629553854747716806711744662853001715058749678575738670885762244562458641373066263552939932444652526724566252247883211182635070631967992858499172352820806557420209351275582112748753187329505421857270592119565709387840247545625658962638064568098287579269757729312015098230127687862871114677328988193556337284706811577196883412532944776382914238621921021933279366286043620984191064365715176131940478252484851458877146583801194459786134794060612837092657757923356879906271679029078682863567770473608666054730405365652841888176808176843780743137811202508155144855320679692670365312541479055657483046193960042331300281070948426455109393636817033088336679661045035655231378977861769734127192217620386771539715347905660286912778959591889251368574279605232091492702742322476981148714115528987407300834914528400977356167906869322999948346119125310374008316609429298905304403378097148569840794551795408653637180466866279776439318337533462785819311959026345094725035641263427415714375751212037917423929350142704483236943621893386876951881160122952021966077963133004695805128705897297137950778666852024871277725280983290815730150309044421656204613472914202067465788762437109863404022245892760477324617199825206270065852529108532138796609954950198071076214161130880369804123230063788528203532079220058671604059983388675259703724664330113235328675006796988695291143282924638111421827178278859270282131196970224823411494415474501667204237075435391885769756882462803469535768256766211464189950313122777098866531615747201312483275832971390043465489502326938041856451093470202086576181814499330169760722328957869732946604638678686773050406193824358374377666896394467150844233084825390904535742957946343391040850591952519898357091131779384283060712737741724844502460091891798377564053702004699141652238127083063535716755096388858188277287753852768179763962343564354260263126746806032131055900450043239062186374642982591378635208407100636536995259109613245360130604756569504601789615776249086303310987739521730302870058625818946500051558907449286033701377121173725962366592064527335416400826314375057604785368286547742639530014445633431265079442912824234544141513303609410307761471867695924382540781308900481997126672152401916400713923815559972421323113404941542377223419156957497763233956868540707530613260333061713671461955233947192641783312516649787304110522127128405357161618650284664674794405132881288001933332558494974797127776114028388179760723350515905270740939775716903518450988114956286909963693946400604022809670070471762809972779503601880734375804126585248930208454968342242825294871805271181293746516545079263986154397104671704276600268754405666370340364642963276747252356848389879323933648843257762457096287726561639792128231867095286785574763836201247184252446549514133056012442416364926414916090979112373533727909276982236501217499072233290221283978801178723032695318848659210405882080053316622567652944083988566105925835841881065135217430570931153773577482892964167260170087937716549285050768173115600139075568188611315561332399504501991546190624613673253296745860480723364411352268152388457732907040767463669737640045872328937543921602997446363701397276922823466523538178965935528499922360146714987245326487661221628568763133739254793280401498777241836695721573653061314397814015895588269840721366629786029863532389871550638631156823530504741815421826490772411469996003533368093269555652727465908186826787847195623501599623394407800769685682465887237901642739539719620087943972919210370865134276171233013255144388350590557524944077894852583613261784941123314765516820558733790511715255976612924954495046651266836187705759184128317048374444717004207949849626285530521877904631800502006608061727720121490667937163977559113577994248008984337521924408932595920261974464680513117283461780675005023573750258379372232888665882752539132265343574751133796792378896980833846926884866411164154953093947381684361697608740497951244919460108912604831115417750778799491655087521503239563881509667715241270231368370442712877862328670191464500627198678792057473097929725643534845124135516487412097816181859686050389670495598590396914965803378366695311352262765940754313634128814565887096080201724683255730361547182076255262932192402345916057333861993024210247574610755912089630167755391865230766570047599539235140502034862440311118779178036373016045482651957783794936890966423802885039832130799965483736914443649080681253707666069031643135102212276623428308631532103596514050421795106220025132524460712282432972513146803898392741403514894524706070062905598126533364104056021018423716608081040957234586423725255073875624924780017304911891066205502871107335807611675717712448679740633247745804492946631853296977944249856383048077379567416532475047514194412209710678902099877705384155525372394246433778638595194346906462250119869266244672143781728209263346357787856259060966882014005816342140388020320138380065030474299496239334583726984030755124469377712170114893941742893038521050618992978347905990624203971127687867396408395274172659865148733975606517361704557066663271248560961347534107220976714206706083220511140620046698310963866735757407973238130301748934333583904415106767338269837677054949604852067863705021206412853512196452487430281864107528048121473971706326506594213565326491581424216771598078764740795901520078001865565864427931981015573542328256505305940060513582849252721142780182403997304506101702460177451328830788715901792191259059895141888070241037201162328005441223916183568701317231226147784352511936105519012831530820053833629242348919282761068769109822901466535245021908432646851746611832602252791189068928365036362680726895367334086616572632517398624964582526981035283320776107373467710640630659352200965250299707149759934073223202258676988409513015179214084241451960523467347246117425797845202673939506570562789520564819730054334419371785039294529478893651702328847324111693601926723962050511716286543039848594102937145999579256571313579595028211223398122328209849278294468132600738168561919272840804360897725070881976141228266052255835846229286743108820436977883919039195898234199007937637086047173990329572687260937292269479468844735959465826760047869805413797824736153341659203357945727727885015690112404664562628736568553509940983802104685355279462748119653917112207460996845188799083482758506807305719314074639351223853597762673811639527971248054215739085766308885364706333324072192316184224168379791451426646604268141708903567469693970564585494792463481498555235222361792004906880724509358536343490295085693293098563495099592872718605484909083000824842010652801404983402486329996724109820357012474630594608762291605541517995880333817404392831176675591344908136686069489703169275958837239060043779579825378609768497583102804608796060029615738439620006934111467938004289435071522751062638843891377052636213773573193971831524260617514561559939536666247918334368483714441498683878987551169525916511442130330862360259715747410835735877559708937079905793664334847397444071074974534336880600281405811039412479538984641146890700663939535762438134279302629567695369582309596285016120316992862535429602690915750826616419827501262955906423605630787109732497316591652690397726314378056691205665379504146333864339184705887874860716567943948193806436728652259649008887138949437010244096533069357683104081767426303265154421272083226574303754619902902842150344820014880445349582188465728045761260754673765053714009681223228706526700831552940526320260559470351684738667418306703053361719724176816815342414598614341067121728427971373721415925587477651429417976023466267343305965561139572323460037549863053793586447776900686368036702357658812357560370312918682117281507443743780444532330482774104282243941837534746641941627035669879795737679407735956196868471282543180794601039289864147651751975070859565200972034826133933052292939415827784226546877725509111389577382471869629926928647310130975917451359115628697096859378336469036023559764697479022737763679076512099704727580041209689732061115904295422960396113361568510157645721292095873062409933641173463907723133921308053079484008988551863878215203656854553699441709249729450985615182288124048291679343974125795705833441363955413145000911959577140460030377047017341379778542851361261671433799758330768608447788370732560678895312800558265632732143258674513197986776931638109504887353197549292862192161645358776197252428719227010690341984056101931412133588508133286048479456855224932891344633055916479586465237377260774323399939838410368422602775197431936467721481371397058137581219366799063116396418055855402167436714433778547665648556820080902600268302519508400581795337501448720731225727040987951614869883248483525379565307559171164682576691214044163634548104682653224233940907885417416817036681548896454469611993847934973406712446252840088176134018317504203466506467059491659676399965362442899785988678222356285517154822335381034474239018372811406590531560117663820756748053794891023800608198833357577006882450218706266956352351870531107062875312859526187718846472455327509760470389001167233038787076815388307439383559299694964315207645263729420257911679557700792102839549176399483363951770936697828521135037476839816773941207719470039359509725965767131325766278253096142937100047519591008603102822284524364069143505727385218970308014149429073632619950572139702650712552175103700219722295493854210010215438966014170807482748887009150241694313056422040471575470762691492904940918514603898347821573644560846816814908511977846729570265403742584150780289898886394917223446563104302474166405622895509557524273691778109922979476652200139506572114734008628931620933104533038624207278134894139350401802942953927489745751842654550756128889788962777235399325984061400832474663783055493518153178462814593249926659131968768884376456237456330440419180616989529022667633215799255446549871560483743863813417163348356899695323812031121401073541933666957341227956859405816111396398956721485294491693785588355081802450222904487824956904628489525957786304991267777979035641637324063565887136525221875477502200746194112765394122611595187865571829672279787198410562395768506794944073716714801183047352094279455886189799414936025178158823534406430331916781974913012636394366912239165355810576807977921378422740768104487082650976878198579707023553839745634587269329432571487592165250202496273930250737988563399174007390970920809864091078145069390730569979420030694046770170206002955821375756455816796007309519603256170730293900752171633066910104463499040200293920353306136280224874352107229996211705246597491671348061619635310421252508440333471790282562708106023042033928370777939078081993654968682482127783643549757219328633592575353727986711809956395910612481930511763365004636097176414390305250891407345657195554640214988321058631554810265848739470968489589067059018811518673425888372581113390532375974487667264802679922799167932897739388999597875777481414720057938412891933778870859996083833287123673856352729426348068795893619379353275404260468680654224313854439126975484286265144680205345458820778437226591206033410542998177359779463857164809825821399450964466209775091182647785357223420313564594114448508225642393501515844778438280248504367143749925441896067477813744961297240055044356068324257247098316389070176048629201228281079548630589048232522920678494356509802859215908334589865711134442367731055153448197482643682658690515603058856205147210777728201321863780547364090398357488935968415345084032869484590373680331637064045621836111610061878177688479719279354410844668261053141249904125266316558517407617458145763962031857621562891492689483475385341766823603810978264724461940032622572501636843304148635695629336929647972813927251426544354485734581775422112766408385359194973428569274103919971375141067229739902108153405614798240824857046015267894440166438108979203054365909457689056479676078893411905160730960124234862652789818683993523388315582809453711327029407043894273152645729689292627554179378061191603696803911612875722805714668499193323826521608633082409524796901835182056560055637811349308547209666261083095892366998171856265812344377971228382317350150464079164414725366650486536409762202682345454127755748067778168150066081588678342970841136818628810443132581553112967799128801681227886567259694236173400792390583025425701945820564384615423866538520513541629246243686267039294848149556959231810785846458746891008621271848616961727411136911204608264086775575201555560811390576291714932457035625050590963394286020794955310018361663521169789273358067062670229732282110750037743859212336232910896491343651938598872743986313616736526905156231092906145026057111368611058186429929794164782875703370713451790643088946259088903237641800798411091233621615101244357509775364785643014159387531870429976749982959570399326819628046352414608634742911031950593474387069891431114878923003653290776054618733633987662054552861375009329209833165591039546105646034446010876638260483809482850593813506022700916668858548824269920674727469007650589428665353197272288749535312980655610578018569561673494007055238245913797646080539812860749928479677606534905711129922314925004759797580695116412455767061911703877655663068878064891741978708422835938403322024235886888541320844125905919507139058381604221351697327832001309132027075492568878606399986391098761811655871309207498318830534238182584864503756541593666248063782534305328240088276589852474160611145495974901690088023071754138472101038731710570785773822319457790677917923445447473102046527323641152627248805851783584386458821392929244139740671916721147865186285080292335380658753327318953565322702371232436308795501803202294094687422694175711913554044023875939705527864802297508869688083972012463662096812065976774171241888799153999768899515643316811535072631613566338199907731266977486507989369927855430165514052326211268852003624466288634801796879616292050603767952954522837181176599356216725221049023757118282660751845047526000006218314873562946744016649716181683803580957172182292171641499347685239715100472868207428431340197671813509837149668011957094794443148798227575279363938476044527136290405019377003204051055358588518045291501352973218986744752379185971950858571398555875992991651108551187042123249337769507212760424813071927284068733427014948426380117857559106487452423695560524200601924932177721562388738327452809748732288602070868023658440436913374802478570820021508935273810204925552229322668816160895314362296070210431737102232796653383815513980312131469759369319560106439958779823524398053709585241770208491086409847159379823596159568635271253107294103085372680235396296404882463976913669945403355395844617061877193169791351892063602181437896009788247230298753378878794144912947812624291213271547919106980525081312584971972610341135919957460615488211438809807659084901040351483013037562381344282434827584887435547617182840949232822236897788449869092354446031379975535285035960157389510083438518186240481563347383685379118358565070345270613144782462539070925847839548334243614462592850046630997084540157494653093611895567589563091185044872271102777014733958040544661953357489427159796509910737825541926938558247787692334244626991996064503574551450229320807879408241688681536331046782721717012103931077392889379959023555570839429090511572351243136314235393101044260468178184035886198692828142201569166203557284181077861716379100659646298478168738739258551298524645836675967621351405398375112165069347436272725577538693112149999783380990248792180644490576026503322882434613926030307749549872425567674922087726234410136264128727436510388262053722290817614366969736942386308493311015345591695816096044067228940377681339405140935262607767525881203491168129469984060026579216781244335482131372124355318824745713657423600794742302258130750652969885469575366567603542153060356369926568394893488582731946190808932445179117114329425777555436054118307641021458126143683015684230227435614799958131475300640238797574194814749006669753707201811428075481100337066189717378711416538101491694348638298359985777702168724366069133431284750857163962081052602791495177558890032131725948583672426432116266957930608903751121714818432343008003584064157088835847560669639351663498983300662821307375707595860748488745343569875944446027139476598300202816708475165976132128214147431597408235654506322006188065818707510511222070708434077316990228711908950476325721401059358704172519767342738430575787022601593197884134647585032384777045376974580652039300700371503893283479559004143802917611564669319945869156911687884726492828052764271459777058949085684096566795919591701754057323819053777149964132720973727566075116101316344762863016640578405590730023506002864095805016600187862506417219611007089836042740320255691059336972861017086451423639639771036826360138258026314939002914691676009218865833110849861448707425393400882882016853407242189744741971906063436144603839510665916446618727966449200361292163385007269537761646100849377870766333637313979908678201933285562390411334471094230561572656876829886214309052239034097775558929935044849323156167345159798022217699800552977866635603674632743735207302602231429320402116773343569541679410741102552445949249488912046326392191839570174995313253126574128359265226379085656931264868756833911267761254873695952277658576287650182773767118674718813067216955352193954329715284209632728365828529793480166669974439619274248166131699748653529076953854095504632951969665110250025641520478207748509367054234806462573995228824126364885704080579926068547350814857206799511453343013191621020632399289737924107708863836652418266231642651512815630483481813453580458862551688969283628145983447734238418880224942737045919768434908628023708250589497723540346483505820961177407994520695476108732381625368894727345339171971043890691851894567439960417232211502718604124144090857569752853030664471094005557163570473290150045530777177750339993182184182855761460957763425341086041435338502076742396486794431573851190761924630606531829229818004537509908228232270346687351694800553080522341304304219789403326805251238507780865808720642641236628740537381268045860631906438001909549209411951054906553320469479340579819282792169257511276630358006264559840210319022736304188894121980240173374201236284158258948387003993663519843018585955078928260321100098028648343942270504357227045710611230191764058810767760348812801486804224046120847765620556776125854839436501065367023044356456023964903057897956243367341031405439338732146235272458719302396401562889150401925648481332650215251145775905392713346036863669562713869396763459059332971668016997834408728513689516946977120847193663461382546027064185544927209934614460432869329110144542766047383039260680208187620921835702329852154938359641161847157254365212076097534968033831597881521220789712659929300271557201499022831368123170240524315776111947274300989171461813499343642276592192895572696214317332793430083153302475074120421440239095132846493745242139803661769504909182574670789201547541696237286472742982519004327045666266621570455955939248839799152802376289766304493886920571580039441571000877850964594774453727354581924779372421266207609175098665552596157372653321017824169317099583624382776924671723549078147419478531631625405478895964388800116477557741201896230833658764556567977559940537748078899170001226267463758714528924261060425426220349655397634137246103952031495285193548003175965790668088930680763948865370964439940292255905679341096127356232697684606639432676870129988573835315623760391850797423149779271920913750720336864338304596464455775895913041752061356007308708183830654402052071101108974092009570836054828917375055793200248941615242101291908230481262375495356688657059545682065612693183652172754052809441386095425357290501319374714584313157038517776533562617156728810713554186130538933588601315033957387363916561199242561781093843119837800533669375634279428353607702879725056028142653834433440274783181543041293141191730205651764300600957953271871633125020028679461086579492657917755211558520416220575901449105889844779553119500780973298009629258030165902868799669170302860382364255790656743270422170732994322595838614781493683801707274250234384596711094175265429259246238408221930680438434314811700699173459117891263175017368630853889928124806386692749630032326049848298414628555285686194450054770217417980221960963447965800001347268595437832882494610493214217360732785317311416524036944610452012668309038179976610464470457298328332387367158986884624599364267932087646390355805683559813196882611367104366885478854519186280734027613192821207877961490631093148464054069530186601851622445702222317516635990722908185522873953500361988297406734373140455825131731538378341426467529376988242127092112946552878479027330861821759014795479442797212864888310672479943321725777951357460815778319034244476286988522624713351345837618125631334306186651046804924792589789441762236796114884723380872713916945025778599215979503097623410023069737135907378941721419338937074528033743489605590539071969073005782791103965791994581160268991705990915112176210472417528090639991607931324740316741960114541137226547003892933803067853635923505242065633938857184109867674172099954833082571882266211594988800477108874828299167306539108972585608597250728637203529542774425653759516948351335735059422036765178737132045397345567050952529843580038662483533358209282009323600697923225291716501128925019434055872946586287586385046018443637882832700174484238859275469453653934943519569229755178935454319621224589022991075834197349899967115480428907188396643353105062721386070818389690446932614925077372213242188818438667595888231456701419563598997789195366591795690850802081445200841150049120887989022423490406663656178859759489096270142878802673806990269205492403418177142425575743421880966444907711254032690411742261238574741175679883523209248832860698172590747563365097502963573425352085391644453027702423740745919238880547165821850982303015465279629044230339645402487292988315866572604779885699700620946160963983910442274653816480931874774473939830729406048226831948642536286048314252850787760826291783185184061128937684664555330079644400405464755009128451468877906103493271072566429079455418737194669829921803929220131286587773903736070268370881704456483536908118579489515522984265515812899751405607318488128743977017588740537932852914603804366825567489735867290082461144926630216449872757307075786647490149974812840328552958187869052884326552792664178720195758523427242157042568452905717054761565455653034830260833963621831526444902082217846802625572641027898637657882557791748297235837789187488487283420334294432469802554130964298900334313925321033102029697467135007450926643174876280416745448475776609204228055551082629683309973724089026296520891100158932168919840855378716582318698288961133303717469591368292830866171818295005701390394684938781283680262382516489985933272194414006202638807408339438506276180908744038893295791717646347379856646407634956048918224742326846940279657350499427577783208267983379723363684488766217440557947816766325614463464632557113715611230979308629720144814256248597185497356025821008790015958979467645183000075803733523737211381209409643689417535574479087672057637401800437646684087473950882239438314621449811536247499057802072217923145420921357190725868587123103602863645176162174431251926036583700168316346714437974362649274471760635294972105723467423267958474341494396636717752828787434156600419729160964890779740116257400539953962744183520027272358668127949806140895417563804575496970323872640205400265539790897488192546379401018376975329957715710398800309172253900669127758544933101863648287849704824130580340081829721583573628111581312553808131353819307309443533235958366276544842975177940582645736354670014880777964950705855126359377997999290777865428171946050175367613285070292758341161282016068397864405098518451754597524981845167071070385428863674192349331851684596112308273822725048067801163097204357296494107562545508725596752405627760949230782131733947399382894211848193487547596150953866490707092867988500422563012933370543675483979015015489171039302833211081333327289270021369840669365840517273558677417448727541111001653395475849349455006990037560232776615215165764322986163690384027057611091332100080242783428297680791956083661095217531356512905536712662470068671410896124099174426325843403630904042117216817352047806694500842290304584486760274318223564646049805095327558700392998899358740847300398431187272802184024604215129672461041970767831363672993706858945143673664216478718419650057463744973295566649872245562055400158055963474136289049970284354881415475572845855549839312344409074789670361198329484133414304970831178639209794742387787217898259633253178800837692140024501588167780872351018993613919637809080708005063118919574323315293993326546499509197052592886283667544423970679547551109690431314520569815605422859459088332946515423960871762071755061866602901897200043203311248572038986352084854806526668554796151807664027894217359329013587562049259006106117794998003193962668395879187637047221546031023116305704108811372115644949733989649547648935065682266445940559421288131915191910643588101073692468238911040009611220849359183375506600281814839277221887601737430155859735614226857981896681323954914400546978282227296914531233931541033832051359831951761901921936704076990917578932837525128225465019752306093361865654338630660590832943321062781891653508816374488574946301850694172265974195760626471531181684631773213270643890709254914762073612514314604983744991638587898019683362145478937252915317102068782164538868059688388457347242218329817013101074048375556539419080484121136156996183751159540631615849032601131863524842563803199093226163152015346911264505767970288613771630560939340437089405700325080234927091539734916590178998257068193647424213120757294575087623264298679989359456370205485048861467070418606078814585309769382221252788835497054510760035999922831598495396717357725662203574266919574939942182197478942309402062056850637934828101893442033024715453667781105218367940135246229069070157710934073142362125370147161124966888290040769997548674568155664422239476821475308734025528785135130515596563696401812083533049070942285707735147581391456296432288918214833277431835541379277690921076797592820020305220064357906078700037433382086811749074502136179849673645539931932050739888811913053925711301021653696579986857761281867064519493911747222033317835193119249118960123830032407598535799177094862901170990262849442910795826463414346161506949140479476719932545136040798269622389527588021399640079457377901588542128582266243450676277306568160851084928293375040343039717240287252112203382170719800378606727896583662255271880526622622082869862547925350815695463685708004709926458081967136618153739869801721877368951764911540265966763770030877760578398428982460009453169878328596498824492765854434799851968395710508610406934352468816866969294140067381204484015547356528584725545182975800586949235576249550558837261928569782336051135562387932854596446949872103369229558528717476170224504788445499142008731477834004524607692952699727203340289939553619044000206489916697029608382396275530958633782833181842361783389966119839375287219826352088572297317927644469684706252213047304220547746239728158312714566769888674334350508280089639794878989367922644868852481153089706188157094628611290342871162403507528041879018596559581673772037697167094774832084279370282038294185500971923778950448629192563117454790289018411763095293950175974038018818711289003682507645065207436697879074769770639495565894848162550366787070687710121021799198157610881890404914338265091203191129697423319847622183903354493748647957664264587224561751133078976556239848948366963001960220221422075271973505521934785889459182721638635878243843609319207071328310751647982995362403838067822939664175327812664505891687216959060991759545954839952949618143247024448101130752171201183770583110995128286241860566668715607470896205620356430913184325655471675554121952925286290974594889928068025487572826028584087946164218890728372674947965749832809864488393370854557271761585842788467716808600935036875043204856270602614959305243258349667985252574288136398080363897827847739344854149204690144959791626071963203206425406813106568223836662073118641905103447018620292066546832059159657171069838054858329322511030076211428617794761584493096649269396902335410866997667247922538158425301807824364264486399933217160953434951672226988708116152639842585854807123893181397134488667136471247676520561116204748526980145266079209714491622441017873263456991640854264503998328611075693934267616651068234709015133865296523796183561788015257280411589326142622120197959170165547439830368022792127092514710583574718291785813408799641915249228982981193725684803317691148731224088077819378365287164733715393359297822432639786284639773288317890309563084758036497292936201819658142758658327847172825050941123697271179296479255451142374304963649045673356321436267422470813240324610277229717474909477759738342882480667074413188711662555441812088575921287985431782943729455383453442604182757887631671762505830409587809534894653969245774372180766277502331841785340454244003593356347330318244063943662891187255637980967592593063573340050858667583586469736896086029173950091287864074942041187903306224800813503712534929540350787421354581167306281852616284651373906531734325937447111748721977070805228523967917086555757942847713325597635822630788170188046981851283946060838110510753930652849634859250507222638645992974247237233694746235149481049396457822452361749965910520756331074123274578145085141162430565030125351389255812108145554756895617517034038516607312050405034245441758110317516647080060535964234128404745278566307011755193082493068072464536409161603467912615123437818292289223611895534681889295524709650726395876598372414569096136728253541528072836034463394100789371358063584764725517820758004330594048922218194079034008519949799495575920868133341597062363434256235213333738247868485315844903692502766888045246854795311408989183885721881601429835380000885073875162101254919789242462900222055804053557834812034015482660034973004090918372069701434205270748860109285743251106414797316804105862465374697226248758682295474680973764612410081897988309945410922757811122117667882062848730053520882461902589894180151576789745273022256286146718624115727120676487455928040171802218441839538482292273697086712512521643289453583794321526342189356461258237804243678298185005359428006219064187932314240074344336403263113342591195318753488259209103124465815696721290005546312750747395473397948856450826002215802053961466090454951487965429287134286967755522534236981565539890056958514927079005094776167598460781304487367018345485503737163365860926656389939402140641329190333761822953785322932081977277698551897470631795441386969714093698488832679919786022809587088045020016344054835335620429884709903340849094522881389598299729403302323382528667458372950619911966918727211037529528211232525119451580037387923908365589066653533397280862196902905245323204860410827549673577287015549076921774833473632263379877037591095596944428365992951710838277012404698736018123026424977911896185729601918138752819574385818470575018671589782676777091533844323285389805388931775066899963134509471503418132574380344953388041981341252472684779283102699751359326056592943027723343616250149756761262601891290533381390430715294039638876779143469964000692973399360282707157921914694114626779235135186264812567077402800043276759180035018206469686249794579305209118791841065026712244459381659337361967065592724130350766245505888614307287112472216345408476386065695157538053064105563599354482077727044638705571027850818168600378452766042201237676603891627393835268974221496974189947993413114809457748096233193789690764602456986274366110255938452002430749389282733057223395366013907755973232810891366785994984609591248885362301952856500247395385618765558065557604718032889431658325448154648314111704654775227150478024591199666974570884386571085716892804792903027015475977345417274419925655707628509996531279280573628860738682802659490890102700946900916283937840162151748077594246599488006191816920818583148773777964494796443819061575897061785939734456123480619254414270391981531003165751750843799448014557526447516534063889754878112057529778185842110156191704924052507585722241553512851131310426464092075195304699817454739101608367124886929462669380293739615456683580413497538300279444689264133786339452568026785447826606025352189960785162178705846496036495963509602115582660707754527636756260495533636745158772495941612918531679648323982202499186795354194786788608949569834403076486348324838590316386721696068143308299930874469094327143231321757384797145099519454392150330954984343290351046921848322763527616850895822488666446061733434844556953846797391193786636480250864844281070649797347165820053354578639625497967459318976350124313726722276891575022625461982105081977023376504627962018580180726140043322805226998432085445755157283493717417714178428070542099602816224247548410847727923175133639830718930328322868918728099832326922507671556092403269840938899813122340019332156188475033741573067448968949811607891686141836510849738301193239467515574238419064842085443017647568524015859425850589933633324041488738564074240922709165028003709787379257528831030430024480078563422444722944925271347095331759422812791550991979576198958389781381275584086946787505045179572311552837017357093683648178648033245593652440520921533077341123232524416513119887902694303195439043762271561022926650771653303783932843845481526126713650316130664560899627522086099320212392468600408571446800998411025204149110985969761909194646366831449731081756522941648206445018208773272437316015123081302335770797944939899630510559515632626312953725693521878866874261926436521311068615710737413194445817256428626461777454684219661914430052315344039478179781119690251809077264335755018902820410624604033529021154954761412823275442095515186125926832007952017186728404563821060590567022885161294083529721998481724457379388326534806108098494043956539429541287548537300556402496290194457978732595980777947076021037903983225371382414399380519838930858276065053198427978640087594545857363142718554286266249262442072705519482095666694895112676093321395740527347306235895204224040217578656848341687950769588020030297065604398531034355484425466735904454905937892871652672806372792558911208388375093231552483674252350740552869736692359165936573977262500490501976490559785128056726745878526136404585021743684267308625765478080383454838588362645066211755870425666564735130158141040849179307440599775354874867832019323163879891650452712258261564426095416231891709413003834147804435643642510421686003923045782278886128687309605857390927736109264881916579464224476560091141844761200322415451894309930637095462820975635161477621726496659002386629707890381793875759882777776937276188765305206439678456616969914758982454053052547400428906513258476797582665324362102562082160226483349294873832448893299830296742992948265624522170668261834144548126091627387600192899193451115114645108803534704850460962659142961070724638989973870414928883515847448627749323740943682670776664878362840075597390093259740647791493017409725682238008377400255507624718903530742248299041233034311025437557283801176561605147444505006684196262421167222206947223717932761915262100051424792028391650264116447189114279486687581011200343010046717023872178336889232069016863691712086833678021035725143262365386259188476957974692709147049201400188598724257170049422225268757335798279102535707640705885129730369471380107601925193477374886154979563808660102327844378553664514059453439915895553086625738209914508315462213891233688093616184834588870689133129379620648345813118953256919954046277423192159373531930774832701615409191706409262551312396667679411839894833071704883892564021722508034259733288859254821058714364863471365469454892309299107718528129828175512838766985796139457752100146592145293072652116067741129101914092932444110955197249726417988077405883317316606711979080817614810905344528764024249255905998345720869757431144844988926508099672331526552540112655357071842724602235667321664017500196846574464046916811594375047582385051404393496845200625405046421685230061844378306413098716800068713026507205208558990197306462262788963359311337133442325822727727248305721384740061754757419244554419837687371560463537327265044815495615100067622542672599629750334454474266905158704817594983814681235896352601565104980136480301321353890100292692879920255761088041714046027803373945811204476312072115907843559192849792171790530675047512579625693190080569267961892792146739260422213282243494545696462357364871958022505301568124420480140883153017665886490182589353902277382384206438706821045039739602984440094401853754019932319046409576412346434701772742707945966676629791247997785969462985947713135215005085488493801970626644228675818912728615902243371791391729496776521310588556856376012679734697139644685133511643063061850301182736291211330712127630857840767412197478225687787120910146465707562118291522038530211203637411020406343599314624275917637410900210915391583330477100629329871715880420387402363224422026037353519161114608407089393455798563972447027322125259128978078113677136082793157659882720911218233851677073312922937464174061823155183129404318434155386314248779739120293046173829334374393831771384685364632960861798530733453084135624092401220844321501235061609911647316887718767358172406758894309992947863861573449753559254444945738801412263943818778505947260324264608267949435428934681789234895810267910386391887404788115047677125676878934026248394813451235180406015635557551432746330001569420666036385551063030771533452193585935801600632468082061777033956642724151055132921495785801117934801189097083478310900562781003006590593207565118042624828447915335645437027342134334061700448658469142391361934821888146000925180369967406053167455218047878366400449897117012627427090025387792847741314532388262464432112409053782351710906158488343216283465463779847914089550413231728509505548951633487056499945260669747547827513354828857830874773286972929782641169812307122071011034132374021842806288184916057336983509163629015395589118281174469298555819672589113956998269114389571383156747936055116324578800026130238676036858472797173189208091816094943369673268181522169516308099972427946581049749955957328208018244188771763233317293755132389243845335124101920552277679544113231816592596815443645589270152040518853072915294311304265326595619931302878895087496915924448739826338592449913798607036910740946452012103387694795449885518917630221253947364967453062255344719000266762678109078477046339551101361277235045698602426964008476201723667651688543332796510208420213353826322734259530974638151822298140113886715926068962702649375344560913699919258457703267657648209165416074852258245843367614263456235905472844637288501285063082887148556329135814463080231286674362138665010414292334658588966792399304473827228222525441895779238351372697688718598252162902223617017704673278781180465018576198620368104610952303711532906610627505617549287413008368985381793470184994510543805805197475465001735085227535837585082511999793351572171161403633477234340160388858577931703118898479770229404949629629415528132340414614191730284163737309380760537983335572743552798079705996959960242430373119272099788968140948263496285450992330222943125089939194278325461084242864758923837020232484552205809065301027460052029847494257265320004535262663764410873962720058467544411684399123863682216758263096508046546029565492043176039920871554295549227749765331051848179733302696030383592945597229202078695588730878351392706561133198459588589351458082802900264598113077202996110536276405232057138328554714559826569499068402215200370742536355409174254002358997138737508230837034211912579871549485482807366166782367289368788473041917049058512285233176764690634399518339364667304730529881083409662395451038332090150234965988254340884739325077174124686720189394212280605386764469303225195013717367046004075378664268708476387842348800041730180315406792719111797503392822180804745279990716367524401664257290626120719697614314693065344612712465430933571027649054841798004743037442106959882035920803093490735976540446548646250254176006305958552627188573430957449308565996293555521526809807327400538777203776667245646418823142416096496845507242089557272907412469355673655786083135243339444784827419073346108819918423398297661299818734981210634448971351834161648547058338506174069776851365175382506869786262163706132019042297990489009225850237742856721081856312809218428986119965033010008926560861441993027149133642495664273812360906000034168224443884412095910700976541262358552723216946813338247615611804520191476087443677178426072243572053970346076509048742962098864597698699489538287489371496331713204049130993572026193748110017952757941764365205207981191063719029953554833034185176007534641635778888426482750206746855506668736176601275048944134355527072785655231277127160192549368029011353975511617894755253814056932910652612678718296354068333508759280585427673443377595716350878567989342804806629581566121483068810680068387807901471325591393885881425869748269096737499984643962658544472133766100225959648695072868678284151188733573528137142540184244793802340469087293708268741056065748398975699829816679910748306539868256534082081551244728349818930895361086023326626817210062007736521324966686430734610940198008352632371048747369846475655473708201032086089091982787484097226664386894076811068109788540755645724805976390265701860888882126565828876978886568692976371616445170199249674404154638227890780094302559148263193258911075143855503830071541538689451680946231840174464171431216062338087756338518233229082773098700499620959093869833179088447897744675731984130334043330111063938217964686936383930650638858576097776813068898520025401833348363907520680717833302373264516645373492598023506690242123101629882430373905364484429442345327178112422045752500539227603062948410016466461916819332730829353687012392372978930477544438987119811035776745556734954630089266600510192320203096998257069670005266806931415915753341804392437144857399882246170422944194792604221663720298595681023168907634277815743073268618695771943103829593010424593619133054187973985685380929356515843069336847671973370388430963982672857479421614391880010148834909066889282138885785764357386146120969449565974626525624990196429458582711370098827292526895327187792601321327625917660607399682284123375643463334941806727253265665095316843166503945892592602817693879902826497677013771928161810633983890217653722016958973695426192474625516006898633365145444210737357148064500906119608058022912799888817715895545020968490835498900516580115025971642442680177266230923854668355077005127386243952445772123364246253659738184530568398470068679671087605602880853973719475935320229168058672242062654250298017382295811677301530296979555587617736594803360160025836500576664840019273803848578659254999843008012802608012492380314906167585035473180320156174225950256923935240791771836217027460741185125838643416306493212786306491339855752282846611259819579341664337347726163812689438232189526011545216555806502957863595535534412611317124745614257034245599814606221693384560804738131016149188074128638642950931804604846406906338338678055709296629643107558649440543931454380178294713600392440489289573120008327789067890859773863654720825352835480671012660749809397748491903044916997210687791356789036812419104255668561842135235908492153618696773063072468867593288409170310553264729821269639945989624199560298138138976687935762027944853139579444244184936864107069702520727764423675408482807768766138371934390264094465015720891372015164892068347572486938422172635315200078460095856369993475351252375049325666833341767915593627512077703427003589070119039163623352879734868090336846572658770620477077618642278960692623570922603377678210603914167975499067127266213535965837782644304250326666135959569256498626264489409910464796192908966430671967803457978733749222176075514346300521093669880952997521056715932821327780943830307840998215121476240121628306547845997296988808356558261408171126088530730044968781576954195522301180994559608409822196891618917386614353323859515853623659112761779750681366380713665327652692787481451299795735820629336958566901793952194086027974857535131461108166521880379167392047774457411792299735314642983727135191449141647681778533953918007062109561901440156486335674353872151369439342124254102237236791909932064181342250112739233133973651419527249060192769138321916773170484645909440176048190712448292565539872308215053061218960718630928003462332333935433297961893668371761824280558810014572075117063445895194544367295294282699059315670127932682161568724585319630073627947946100054607316935996087777729039172361533136688264474522120440740535800251457462688599593007958069348829692561310440660022900365862006718003319341570305911096763526272247475376146270429403057467423807296784409676068410517233392649311408673679579805384478836700269413461058689429839566258959488651395939343936695896940560814692679890620673072661397726243774722801923716171156128407076091400001862090134183216744702638595227356846060078062798475382332192662022954097408694042186490577044878244110418183149524760473488657086322149644627067611466285740824074896534209765213077599935901121287930643558235624876427710741552813184162754325450774183106839034650132818983655552547067880163767460146165693894706328430840264238428649232067325255406997841642783448663297224759674635800860127008150597303894678802394557990257517232526141571976461403953940986765213844594576416206709046756443684132296318701495235081487718046146854223345610947347472361825190853462484958276849035098909644856761424527179991161634369940150325481121971522220038589950771867028124147906739450024864850737399557486746821206409937734003313815574746384126878081531421542346089128075554744750919018661820147716282312151529099264794867499813530787924955058967364348108556541487141679293112754442834474243005853742193986825221989573018136460258717488802356973865913260224049359160223042832382102462870576194084070728841266514792400422079972542451908498234433824430118277314971853135048114223056520958188609130480529055623438653277292448027842142886635227641561799310911900592732818993100678108810670255501157269405116631907418673086784263337114603145973529843347186297569182723449200491498315389434841908152073403148406565813927690099217627586170331012796663072262865925176551989435711454016907409078021731952211536850471662554580762025436684334634994248772667980862662506428366088696425993983647423670080894291097389181034319831501537261776530131189360059958267871677028004741828398302347665954508653084519329625889346831855666702640434837162785745947001489915593272258138457766569633183335558381134884337418141387285370230190961188430236894151885169228469075810122747402331456326140797068847597389552798795603798051299388551545289024099076034536762999478257246516425209050554162234326467135952604887555009415665465436261152710701861772884834996473701380446254161521278176810815578312048681591253058873507751432513532275134217003668090227502512981058687514607655344632659384270972108255349758329334012862335364862485423636942441957693925489767636035424890240761469752918979496767978227307545118077267226389815028702200378376869062443455660529523474344981050638594530550474871605497521570822457005976837503681705514252309434204061463953608541053020514098606723714510640088011946670703396133337126220518289350280554351231744161887249045471543881989880890470515353771040753597278289475953511962063830325177992976464656737257425846906105874720872428931245993135791367490940270399551710965936771784944235332834467710067359113086557160354755794792265253781262579774214886490727912764589699851599784991312065529531177654696095226525885998676487439729220711060199392514776107464270828924001419727071508501532800274930243516923859900156653453714498701660085042564026074455903279452947653488558276758585788874109269501824636367226137209411562726396125378508947413915366883198991612833436311141284099834409057390413007362488570731588705650439795653966768613164843553644065152127590932603606025278551779558453294751199535472963440004086895277541310114863975604490224832390086010712417025053645201423004699056821551219681824606044059257865366518108845880955015204274882638831939715518499376545842993788047411686875018032930366974105422247921683983575622599914018676628481629254058393806711371895065926712295992006665943943403763775434147441954866091020538194353427083122471713997102556168092953620397144092706985019781163083841084770167979417623254661938728656206474245968640271636246059964976062163274886454293056900083578759254905500263858297686560142433447045146289131301701420102449694146995769937748404082184663011444404939417803027229657409325053312303977187695499078238472849913604432080255575817668732732587386987432888849980809350303521485372487338957603122349361396610276467609522850270855097762670437798521339490360491288149790864457671567380096366156342431071433659984200185466282441563141575894910618848853762135908901281826335869547955538957285631813139142526864667198588176428711779857796332016455569517385382425343083416206694346576494726360895866486095500648243721849160790938408452153014749806506492864820633231856274321747034163487347722824988372294127861761817007186226413019693556282938536952090705152997757528848266115202419414348034322948141903068922487188421520455396394515447124873840183502068148573099003443863390158723091690613875741074514121836046846611551417109773278683119627164099206127287989411103865943943207440971465283625815613497621896482536865657454056031525670156984985234164149286416524511107980835888189863759061041655236409715269283918375233397878562408327463997027854490395112540823672322878117526645597385353695247177467502330648424326760258023332586257970582366490861414150623952277411180479369837957288654141010002929883586564148949328835120077161149920471190595113497277422977504541188973884329270926875154166541318073886207243061009917278063851805677412082001923747588307139575284652465129554850334506951312982347658460478690763212656402234498356543192979593410148501878617344083507952349055605605180120747303790416367279968980011898902136492912570035471967599915758477286342149348452698350834374210339595947546266887350104895549906955940493556646756079979724588651158967423234796650577670435514588396543155775301405956390375062406031245370746347225050809751830356026123542843167544670536545357870703607201872713029195055736819816051292365887931482703727282831720687419653535862847031623894811482697238179775093473383494134953306757108380339701200057275846045845263780891391421791020736616867436322833675291369454158642488999322972354222111082752810152217583391807243931689226140221491066126234291671121363666382396124951919101106023856411325054524800913534356617032938114183687777492021993088176325041645524301446376891566705257976491979269207869719154614430214596738011033611540812636351923244850722878389810116753284209401521448333443915423921726142692547013702514714103638544836736809852054770037385489066013890891860094642613977200128021353240445881691076870168999118033369534611409980839112615489119204907993488579776120195416595923287435585109366235350995256129062386656728723100005417260730986414682139561559168122320769481165124426389360488975164303944425442563470082596000997785063372944841842708549734977590229816693470775971563872808953343894359318749984998875613469313384744424317835558402199068710433606878501055771162733564821821650113476869265852730381191980488109091388799066867613023674788830113024647623335294562170357535873482143625283967588753861744660709273327010872912233912199178099220853662451009046885622223651646050218291685889136276950150457834688126766460144460317010548147798380878900951283107736171085207846208576765381856164735600253149763058108864737836215471646762642742392982083148916621462063216376933888317809479058451357186608951884272229803427171118150047030787389587502107836218980939067387125783712662677262268803229880195238570665927244472717697497928771580498214095989792892039846064432071803801466479285612754710679172763579873569717847075314561276815996739498950371053262167594927405154667278566718221007194861405524346428298532812870946035969588719030341124209443676351282054634330911995967953048775815790643836930256351683033064728119536261873858137388791649969224826800273192125046138923643853253594345815154469014388964447667164296869921234767813395299938709050430417630203882310078668477072976256574464230924083534647996990194498973383387791818723283905070669783835660083455638384372868000399356495364151576542881670494905845149847218052297561190167968140118134642009859985422483194569526870243235195598586204240262090932341574329456581666119388673218474929447521595757703519822192698188395509298209233396305292623325620743112216033537753129138456103940733448510140345634838930586575916260582236975688336709144989748513031136740089605924338747936252987841495151935218482976261416005132664928787197922958734405304688575210269278566656828737479493896962635656295518254760409382341755114896149411522369880377399019258294620142005698788516277284244179450527118515276086789823830642308339891521071909039848106358160170540658012790464012193344645360330672309603693594659201676739719265608169994803630042974138967251188614130663669255737018724287117410993241286618190358361533579822018316198030547211545649877389101643109069915275697482935535006066823232026193407402463760340081880492358408228681066759038787536605957411576057743583409283335546347355321496855365484310104750015745802487744539353004793686808327180722346540249878516680436297876905850720535131384211177491684219286643344503818585379871974703582194789490240152181587465868534927381735649009023129758549455057305976115797020417878310164875672106696566821967175725199448790101719358062656914449215985476130917184532471486158909350203298110286498619252308276125639034753002742425202459833563202568075070119114747692429121497647133268318846170274851497910877630449457338986912137612594210617259927025577079922561516999312616041944422229364362723325172453359796173518184379959522832477192274654140828749776942527056837877765478638308020784717585594983648035366497524047368577650121453452817334277996411367035449189227003584927075606163406086871529527732755989758307250900153060839461325438905179664248091655031855124042283529003466199557649742501694486091809931638594868034995281004025561351786700204606146363751381168126711998855921702818608753881324986185449581679006019662346059167871285461070438710555616330324218025943803287343135019851910573144685033949112951096854593511999263488634144337655058543935015473561438246121185365758475632277102974363670512678881311458948928196748870974744044183055942246708757242212421289554979694845724350311368922757578731907255906177678134331168941359545547495595236666806432817559302311311348653892373707721772709588942147255297005497140271278432199037184244234090841052225447037415935548527780266050738782724415467537358387191548707213955857001132115576471321157810341335727979951879358111200016547811510578289301908883164780471972588335712674972813866094360742903416824085894606620194280081515398814961377819545073335103671121500252708646804777421103203781771390287913929898249770210713789191319993600275453428344703499761632255117449888971007493712034636492870205505947950005390474016115481228043570534594187059645928657012471699921500928764053161157567721825675097937269900748788262056791613251558242367060528646310139054291022116203856997461273798487827505780266252586288637407084826354970813754552715982330606012985635342933206111619681327194035176813840550653744408931991950215780347015362926145764274894202607978666511933924771121853440231375114369049117590040085102504817071832457464212831042685104270529820919420885324306176212380942612012203946813780137695764805470557122493572124558298184154926885605154966943049104321097273574685755408822362627853904981060479004834646608959088651798309836824046607571711678798004353198229258489863726898927755543686329836265535453088011342957030483528840619873147069109455439276319323420587980990167495278106381998615047024223926676443834583196921568742159184973579851610048624209860450372194290992073264395666616686612796778142508726081828951688118095572550064719426577177532218344684476532278122171907700183123928679151202878200720761410240828781265025819597371943555171075053833191019738990493572447730415580123922845038312930515108677599163896957702510572507048476632059300620115017013002368274800400825026618042615219307033799243155740234967670670257494117837612918111320288993820308596779235300641585140082716786663443876699851342956986562722713794274626255469259813614265811691469977576393768489743890573582737325929547921190160788088215136308229853758482521484426041789133671505309362254027827821067954914578736346899273816558041212153494680577553887606059066286296490633254659788467139470411539853293380698356533830749671953953916848368646036686352057377239470926917185541373878234743230232726132749695393616746134497904643975591542661715933408538753387605387814496858554889895203024293052246842777741835389255021660962922115227785243183806286070035941658580468469531540204263964909970649571000066832782730253218292814510031974090143442800871469325411124039429350271807328889573006587127362398627543380802203920383927973283880123831558748056146327038262272988733760793446034371121252589801860874519282525108723396874273447728286136430070814549922069555832608373613216095925542765497557197847658242536194549931366481643169383310426571815196069694060187841955780520646699946470222033914467688595461925253133143704802543009495782931073119383406617409978024652784164417846125311946507725497041524500275432464021653345581337146639775901401432280860367557502936666139640455407840739488345178257786804290954433961507632001403017967524871918564848223216655700494028500127572964592640642593391647804181163613587214642668486537445812299257168368537470951005310270520879003949610268016446927047754539884042657897972791979791546006343689539128263809423938541314702849722358085930513597575248815809096611343573629100775405055094836430897796131444246450984314279855921815027530813211009960134155574583437167363893771741673769941113136894085696655022839233022645605619189826989782258974865213923553839467446755393388084040284538236095712293943537231674595941165329054821428595524417203444904138912492963535708641519381564959146481657737451605993544705788893382726497342474332572522106749309409579268678460723812698953967568022760060272277298182738473748544671168335672193549889562556256656191098315366023869287130876928359459234455351360986207395303863552751230671984665616534494706448689383011944816299556823387069598455074499713335451990899660172703582469702130941162912369683070127744401631174131463175723899488665972874716966008663439479721960869657066853585167386258481970382906289004408099900237268055967806757747661638276199197317045164243797980785146350055900901765554406737155388870121823512879548327414640694141101130338583424897229416679789860883425221363300673276289268496623515558783840059462235381344052295095124950071674102322537000477687209234243726512474145530615718949593734055872451359246492415738385606731009669468069487613982071422368728397824305515897285086467315606712908384026646483146807435681596770182479004181873214737420907780153366392762208378479708162549584820437711780449075001716709470841859495234154091678947581641941719944581833087511599487108775027783944593585754417894309007532941192445740656963317566860683200193567925185114662103646107977518625525671419915569967602721172456777755731752680214835503747002172911804801811130724499107133926337827803390012181599893450630742798312756416398089908711298880338766148195679173733049956648039279803099986560092519971714034715184505427033478511371580535654229478948553612773187503847577022792349631814483196399283770785144462918774855317977312860594330558865626013172683288657239194707407912739601774757822147152673620006972947720169305603717707860232989781284609890000118722283549602302669219920227625909496901614477177500158146596987861657027108159335904759619306797192115732058525229166476440667070708676616095186730082672920694995589341038941328549302216669040167488302942030414880915590903392987762233207468560964360293175259763562649667736829169699575278298885177400779991980347375381745638637864697985587668636592851312666445617790193158102325109694866331463576916415242686905664898303038138329695251023599551344763987135071187428151599829081253072324866771189352179643513982476399967639141694878152849493517962110768247054333226356533336179926810529981916315855074912410875176034325214491146381983257146455632650117188988330378911399782170062867148947260213377797403148226057052217091202900632264574033122957917055301756838723170208076836352575020559073953129235515538628511009443297431026596128350345691679409739852787086547720601213850083651299759013697809981376899727855031367674124945594700391208671103270130123317475619040751740017870631192859380101918663506511114935719232715205201699071767904517867553549691236176471991145945996509918713522388051220037570802022256247678929999398100459195174063634691542340623398724274677962774185998770320360496668731943960569529399218824210476049104349120771146826569549720017119364059412498981527076455555410211469607391693677588847596925238576274737028348803868626187690819205302533811281517915661497932659032051428841414075251256933593876364175368922214762029056335555461929505631999530733472742099479738645474140108495270987524020418191472413759086260263937771263945392204895193415391131819392374461181269832059776128695442299979010485555189764056334009584630916805278517338255848202657790344238764471807202073517054058981086279533079297743050466971083615081023203920657853197959582077300210704706413560392103598303621472304301675600118072925659759291637255763961699541397243523431879750055265764929456892196897459085637331824664813658330679150794336060356237697597910253864281778403294222794709991327319821699252897020205675856366674658779882892763162153927647392212884258515137498925155433974381212193801418448978348011904041358459254639408087983627468372818725083648371632767889391152883916409711957993697428839294212883586794967976236086547038024856041015262983785230773753468085421350973253562197658934128022810517377876592910416263014044514897861373506542772264551439700310218434390538498430231112163435961653307525766049772098991616781343781498408515182516348223163396840607164221715487677173802972780415760066468684703017963460749004768923663225405839799555048028942172092543544527439799684551711089267894273029610499413031407503621195981812046636763380221867925536393851198370745500489307938086552738549215934357550476506251709377914809070825682650825712500293826600135932881889343804149544236858668550530929609125592168873120890182987048057010197870217536261249226232483294955085723401761722801050878246818798313203277931744966038854000278274958122168626833547071983618539008704695428500348085920233070839783214511687498243731192545564268472672437059090908620358292744066327869056419080862916611645299968477919434790830171318657417147554568705796535814841843864961788894677176231938939362429719616873316370977403210460542536639537952340140687788594635954338453743011917953079887659762124835756147039155952597105926275358211071228503535859422266752033483588549117343022180792784621887112681190422187845950152937818458583709603861286856847539748687036280701357770531907596106444550555880091230493233862208278997291328267189436129066783257978643396877973916227996969991481663644481610474945180921703553964044305414289618059111521952418800082055498575164562006306443874938951786994846501861991936287753100488666118206045770172366656840294822603934745327317035652276548330802592082247172566561283091947033729873601948391774401884682008316630592504204722186816844786760044524500969032203206644961584795719863869510085580524949306980108432550294377732297774890085663845208568103661005613497806999590059548903515895627550469939343897705598048956961367824162958822084174765501406514747604361665306504997781098418349105505099822399846139772106518136685277953469818711783234984314683320778083004313888148430724438530830223825484608097341644439925021189898544031704359482317053975804453643098906526387080225057109456560847970377937247396088659206939159228523166537397455656107048182305873037175352493291516862332028332811252408273774821129225656014207171109683222827479018026346502639992670740886559190943089428945914942472608133930260217308802167352807931637731763072761661870213314035720769378552579640671337890756274667926181025326321233689791990622436369941567273784659157181673992815297952587263380830325871572730765404650155335067688286657675737254427215686508494443751435261195800683087151215695124517611713060248936245239117782267662033358995554007741695775343657726213319008185970086069984398138678187426674986700264652239440378719158407009983688551061957354764270916086374706243508531864237536191204623534392090551349698776340122063906669177247448038718733084613290647428015754225153646197967946541823721333509918504578912086367453329477100942733659290572111766954011348046194262373318645924471068351027894191891769414339883860034635502837537495832748654861820956909689592964336236044715565237831164333982670543881985939269195403656981067560172304276206657380924497962200555529558298477520551079580670460473666307719355586251509051765950509775397187746137263199193143609728483320141188845821656287029098818117489103045164091254579917368978273256210891113716559674806564909481576340864533769979635638019396664993976037760682446091373259184257868173189724269894518967443855447279156761250029378830263920600080267348628075110940231737415084721091466062790775581900437141560710738316410691364347166801982917639585028743998940606025481302039336921200152342111256677613390147500554011660185901771753981654405210254936382300259124053823379405963829220209400597301665108211214253543756669342558223727663445991566235601856701202014700304350494504574351072256919569065726652509446150717167209317695633137184980826345328755635342102015847603911961661474757745981797348391689292990022312102647962623430081958412067839702598263227111064228056418313178636180293763740811814487755689893264331888686962781905526611498660989023783230331479582197467426173531217264860639483832696854409633247423082362794322489797391999950569991921331469131644796320621051238161507057230532596168229528598390727668690666689223610742111200777055300226224123034709703584878880136726970931971921263444562905159916139157365160155138597697558338902048176613670065715878629843233557959328321284675568648721723111513874413933113276877508396074546980274812720730559151248812596091606831161932522736602862122293251955765685945217689958426330343228296885422761663850655552516115527862369402188981454950816085579853119314778567255239739712910810654512866599549337397329713718551008199765020458436532299582790715036589239940762741688496538122482816756871960998138086476983206871692744380372648111468517077183154769571540793616638608774044397614873598088286184842996235045485634671893712317832515779500431403768372986895599941382979688319791698333189666235312389364888905189297700837027338948906303755063791313279873461151748913584140494627515234627652701223717427974780056916125746540782503755797304520338268514613248042791640600886187731797794940886183579526239738800008086986106448078801310467157496638139291902287726776286946791923166063664903401493617481026300131907402098266172085669722746503024089078714130851534184365365660573999704412444614320493000450417001932213033611474518319625520107648534981984364405629034851389208793992243320343325478917519796031393191182640644166017186408438880588370164010133039370441097447052247345585612679920753841976283888367971026301113811662937091485100927219040369079532442075695257959099460341523714802705152081044489685510761636956835922203752450899494202862394425591528363266914833444432388413004246026969208123839134442733731726539531820733237445525470077522966354253819893114583693510581719196230420508514886675955430182949926435056863983654298198452878014600075213836447856400247219980031071880723019649241415540177484761243578028187867091718250386557696290032652254587996303168586318191532898800240923795266143815365510146968663057340623279995009990735877478131092320543784356876095692932074352675390900784120276022265787591876436090036839974277273472721015400419295989246469049265190848761066379883943314708632668522998278910125810319207282360729645250918455205779961464763283429623323788285605056219218353690374369620339865208616839905236754382149166214898497647419269830945435671792653426336272865329070079713969630149416573669158202430305790390837857349679956994138893388507726890635589142071142040547273532013008806514028570447481915074378247543115816637318090620712396930068412048844045156088413531794233997722584300275054547933948408902580073131366685824655783431468789211220761067290017660810692834557729068427086735879347668774086710276319509589305655182522792865062809374241431358736235608992000413102920642066198242124420302635648694681302974540278281414875139010742257468323175870113489768133494135486239029232009287219738191586108629148802142904420981134354630753381217611047452894232188029413263371567467081078389120965798969516914806522362595291304830744788607286128367050651453391659275750656003389439961817605585023476116717769838806215558053672334672087203995744225650567412820980729797993229126451294832493905498184439399078380976170382941287098390186872580666002918235052043030889316206210239725713741292288596640094739833876158015092657370506744186534280455016290660419157229396927199794223163480457517255978097314696089368888950841309358669265137249398338214086101692321849968169958197829854249394330895172055198319110944759002129847108943745282066645511523417852453886418475793010636797704623294780041752677744041843725379176473357756982108549316468735031781162196953005623197985858394688388500469744364731932303222974680106984435043373549607201559839581024459202067511124594114773035285771318831275750921810416904832796725757180084258312192511947972306502832871805535954151035899341504778828082634445851578121593797317832742827580601448080240325554246738539369494374964459328054619044835150513262985364015886046058071340221664175774107712777885853630173759391260690370848919735269372311566301756376338196188768189976870605117230254856293408761119316979205528325962885810754441518052786359271306181342568066248077233544221542433704846336328048881356268187545293742517477157749584680630811933801698654773949202073727404468892107028735244747105325687601941807408392135639051305358137349441892968165976933654661975392571031873636383589124499459547993019184071048142120217994624824928525533846374046118473781468252074184919338868250644272590506040138329099357370952616483591118463905988563693669642255310096124189873645001265130153091064514678334275028310445576391110994356582287038396846262486175777311626019660059095253818789223526604999129139254568128554583093094781501795131711402874495786795540268311574466428356118316217580261512421274460023588776879175231563944848256901391710741776724809887192617105656593822461916203196912360243566305880294866538713537102065031403954876475293491312624835529061511809698765296563882684099106109540189493593954369660985585557557338665049800815363644535808692680831207051932214787221854216412244016318435789543215510992351141619648697071511618710204157202363096221403300994639966614398233280006383244589348657106756267203186901751083752122147382477272782560181391033816388372320285269553831016334780433373267843241917121929626208351397053353103530439198039542556155324061682358641554969292312463214619326321711925990528533010239313074357816396387507880559230097214974908699883438019830078314357516109240661729683757113105454152850767757160010696326233100914458370915193677521547890465597222590251265093087481058327467973340330693915559275336903420570015962299901717738883591656672504390887082167295211526826728430227521727289499833603280139808298242030212993382082069729617022184911116614540767724602715044634517862218599168793781397176604747176416713196039072806102244970522966367777412146957461363298465285432415267441619179077173146995543590501527915522158180686058623914186874784240943290823760168179112914537324969406516835884921405022245127838953106349640125459115038846707567648562274712826162920686147959056584903407322958528353973561217937186471848132326800621698365914282771033749607711807194642655124782572384435710393250810947961632046325861679293295125209010569296751998611342612756322376410245783304347398841769433929874849254090932124094964187806718153563423401989824464533988995223708651365416668316121320709544050608898941424898149536253082004432345369726439797025526385692901972334609003616647103685679063476349707405272197218365008678594934208458472879317729712660020378345460154125609457202301037127291249029110263083340727296575065790153432931566046720896678356905977104050245626535846864012119365155093035396412449905929074894072668982887904107864182421563268854453201693117855446592351424115997080242484887312743048797408829628427256700233854572173766340619353012266321023124910928092835619781469824313487950308070136553627312110508177230216830335549407485871169473682475307608292727347639875371199828427293868628656087577891761803044025600114108761326859052561334848063811563298005888013696240725811836571111815373953213830540105457439054138008301057301927245052131345810890638441356984948287952796326292389263636828889996625826330067003005851295158808645795611598765560043392755713777919043065986418526938465193273033367515440426900223337909096196275928626878545863320430887435782966013356863596716414474569864235666546105410055164704371484365945584034843659483455792622258599614467097374760573710777550221688028696338829152723166030310768131665313386264347637526715994790239337007438139011673808906855895700983870359791199424000382636480215457397756372939769325966435925205567523574428170749405710069524129152875032241338655383333634912819244693134233565832540904662190679028767615817404956318495915435756983975026037647221152220345064294824308307283870319355922920728675690811168247064252917594981768309460833958530320908472301112125426882778395669541538396379460095195953454485698586362612779659511216389644263294969618347868322304191483163598770763614978534596818468079231582266647774781294721037349296345826470440572309206295250789346464884457128360646258649554456870740690527226002207241215637445651328660231202777556898701638654741869107883490100089707522077962047714508962235602959875376772896274618008779310609616402900158511501544011290106166303049660548622111540915813652174933723917802909669837068882261871123327598844350633824627716731677071640331468974579144221072829766470567892051392282278739746049528706056470722040116237279728141389156786003742908599103905836302293605368537929924540649772163602135053135065048016279267660798547918674950558776352001993400396589377953519813433035437921689117282164940449757566809121326201016514811024482268604529365496295893429233043129697754344995473353554163985876984110358559232655100201530075711765439891743191951748571131212671706449302146080045842271597752612782410769539078146453785044619607071429004820891812392085913919764520558028616735767332020691175359835967369578826090542523168482257897863830443879895139256215449607885790150655964639443674470034952086487424592026171974019048071937066539739506065517474018453282644150615661556198114902759191470834540911515791015531157635282681375695827793250537576143808274450442932934663223478251065251992589280362544426945552676262245171301191628714354920920267704885172739979279579001622695451469002516515387667235828513388259792053151634749074235528223097511487039348850029551036421145898660036199125113909745705202519866465474038431152890303741692294314127902488845444314841117245731135480557931620067213201041047362189606840752773396710181198390744902714997510587873081437427582869641438408292262996625021698997546572982409002560144279314924869049954436537336221491355230575790153187644090154641474745001702556380804833073810539058352070746277644071151618390282162527828019942489759251943330049783616590073993744956810974179802708914699099287606657588418802452427029995463038519975666272706424064783025829550074259277962165799280043508732501941905834758120758485180123882070143672814839603050216431472173873782710088050177121582795773161199706587117785825521155070973814538789317173594446401295153559581970590242442883766197474979871197417469344782930607824693134387503028493600269214238761753760552185469804063919362790408213986383743712613755493617774204738954451985029405645931059786886866295777823618597678929898611828553441154451074793014466791452685364507736913033168233432283006212510901785861908974423633539744266395582957520422860573102827706447683155894513019210496619391785318193538029192099920361541747957790499125910150232986660902391190219437764043740019146840929751099811317710230998518649527584517753936478540505339740266858746051455450448605803743200551145920264954847740442243475365444140502830463435824820127740575827471021337494747017003103012675894652034918025288514467076796294043846973700070815705888682333673975522010134009811289912214229933069169406171188792022084526699753063681122484492111069892227962595630720020032771000840019254209356729856470743913159707381948538018798802612237223495604329543684930319051538246100892004799870926139155054064831151604403285361910718721605713939459874406034617138019196472289774838975246711744206117820134293502226768035738355800385963022767269413929547464635710084104913025291990316263564307917781203343842731141652511339744169627823394019803897189684151966286749503459267503271648655621040613367483332139997072933377842415570391304929753473852323375594841164494116718091529530842466422426112506209895532277238992382792556990156695799082335347091912839586195213036587628205362614711045224699933365588542189362655695823698877792981054470003826642411507179302772679422768367594630700828383269287528936006174464756979417481785692463594428249882050774316660116829004947125165481300782298925914830640261687458440352776858079259477835985240365910748540069153741373083108327499994184343832443527304522235269719082458303302645890546674211264430197885401752522050838886911172571217800869892775011857757316361515998752255135535274389601859881811277100288543665083292533677147874217926681446522927366074623063910909806561677278028470311272135702833768862082983724251248065182918583152185082053755042909329128035201443254852577478155138240679502513956939877656745444148034949868483206576560661155405582476937710871378648704103015530091851344088995376818757001628985522291806692309778952024752111916034683813428569830950648975701280650192300541670180410372061665925283889524840002320768967023494318496758409130524938259691872613540521633644098502194302886373249190868065688729586892609862351484353749841212586445450134800051106713483491257223055396731744035372098445100664890172677159049725500059653526894875590359198826729527036099559650060095797551689069219034592981431548422925872630714199303570726810228219381217255707558973420726520961731321854252120150874405619743712204947370379880140748740365191200062575821091707323650150977361947748508094655993218114313416655271812855793572934766982146409914463353739173029597219196541442545043912398763218195453715762690218987930886877123715010410539222161065009573546121305110686742383428182869685893341501588791415936323105113693426478589207480071183773873112852034727296548451328455317535645183220406592556383836276507989089476337778208964386000345972400439095442776520047329960240529172815183122677143190696020805849876483200074975173228969137647122308602726667215256637866119932905455629236282470396334226262736189781264300845663803502824181451326029910385379768200026803928603681240395156358899643884706275806132712355870762993601020949974705496885675515858098056090015718430234616712234166925461773131085359955829340663257267004362159826768331154484633703711069787652577782700584017496334599951585017596426559828668535344363338856734497214818358810981037940776194789002396320644054187133073964162047953792920091666011173008041612983988964266323912895707383133374835583933439061769582895173395435188471018369632937719607282508396619138203771302270304175366167809064585365652403000665330806085068345700439960255793199647560813413794847454923559582338100995979204083120936216983950884840735490749802401200364235261181260909571948639774090844243976232597636487515903980607787578549529150004877544157177523900346267017239687380822204112425213689218749398724946246157906499494913200542895511774968896244626706888880071713296365194360608881187594506580607514683726543723274160105259444536526015076579110064182456174590967435862016497583090096071160708218438127780092433942329778638597986027429373508185302209454231015958897736615021592295996272197879640474885259070516174363553243019705011211080482229927085872190013352524500191969177263269098466824940512260808303129331124058998296614651482882670093035549654927729845902299672463387955884701960748567811087424781328221077107479033166489841297919540133651138318591183107838988648775078010817341261510263799721909744565854968754668384144869274972887912888429032816976897679184289088630577698345555979665888287845453917149461413048735039158085275295227844636614801820552876496631731281530340298143086373247327474985161424368067099837393957448670942287917299677757339195237080077086223455017866491125985872242979005617221451132759958386972615282113344258322444087856265166171417988485846309864103561557800370935072037430306890744875187305715139301275337546379377515178018803672306880649805252078748829356001781428847184950711838409876598339054955840978561423895399007202287436909815166803739392950201995928463272333631877731848695139897816500346906978809449356051836002362298311831264460679484834566898041859678939593754584629538778680388787897329816838964225579888520188758022611180086497730661865746798230588263087267520755184551932985728715303515856274516704963642356048122478037118754414327050067669947623235494534484545813898919640900676376962602027354875994433693966129765528467818073014916805005570924587396157504093554085438298372894651237838684825689013905107737454535645089216538421658596773212825138517772606103472544368161072318500131130056733786822495765407163241647537086377682088430229081976444026953664602758862264610169379854376796843159826027958202677081438542836829828196186187892779027006568760660183052645973415901034554180876569090617013829934003494929317784531141019536432164422712876642620863041068038860030511071973772623942948234417369106275052261643987502996919446921214039130431529197473963439548287767274583372580319329020360456560768819616113427183961641631584596487870299655763213170157834400173525657428858495782207455128027607412013912939922864125442022084687384611226910424102642379379050449993945222013586744869292610440982527637993127906437599962504594532245990226283836083873604345210633801619355665744934581901813052547918136221761157924067154194321875121400522415394443010832459468574049591443844296425700473353674271277025598628858289100079292893157210162122116649056508230306991926723015806081038224999499233844144379500338355099157728584243491677690236278636574471739937058217346641001683545350867635308681935173441742033051770129770817496909769027882451152170475368227611224090352192145530495518660214253462681632620489659586649504677056487227691463533641804059228750228853594030480548394424932283551859562661888970011375214189608548129711483190876250827143293036318560281775896879429945800980585800338683059833342480904164457411847542576072562584200108333196266126791966220762948842244234687126028587609326716192446971035289533344408834017536838395287517997811794067208214365172536723360199470166145105898083716216511211487724974000121829244717086862368105446190235544835466240304550539559360828092643942526164492598245576117471014827443001175705635844042691437713247464521309936248453575204876643964475939847143648177398133151031688632496530840412272845945551806393857962259443978085714410903530320646667184950326403630138702319496403963912712417216555980852531733964928339847289253299917248414844136913520200755993339755628006339290197489034186559862474074026079861758981425720146675161959026330912393858942604083088300620075936039652246511484742027846084256913835191618504862905968180615666341855077888819871924225786049394185254120924796679816558712874273224687325240742789348426267605282167349201695108856105178106886698725614893935030458564660550844434841889245711463888291163265415692671744501036036332892514302153789120162117793738554383334890555429371103391334995302947610199229923425888362122438672905138642197886473007809799514225513484505038946136926874432036855628057301176810185480989774616590733741395872102525914642517188300743291803757818843048116709081255105305093123071871584076478363903015670021252745639105741392914693104017309015139895742712849134355868116024804618267738164486004256897691977176258831117272904114566512498233084309318490237301312657259877066959814016598595414721892746064103865109219722651521608974791231686757542021121715901832227655050154168051991877673802499794503052483780122476842660803432342058071744973887773231139308944848114887097294757945268716370045420545865284324514942475809488394782527822012771785970312102148381210150682711706826475727748125051711745313996083811786896826178573929222773143461258649995501165201297710966396032289680125066258648334021674648164906665594551208266852777591107494533578741846919777623106442171593057207179159347672467450484111108755569329212703209276249881660037085358336905924386083428467247270929598758144300792134487403598182564892757763959761230767215955895941812455056060712944308424138978116980004168118045169982312457181322149145746145827703411686674116318643622444686557096456038831226681687652488550820278480728118572502219420751513327603784187215634748026792836297336053132943921285252635109102082090265276923995737071441783552289179497813610077343348531005207895487077351544660387278502403802062031034048265637001365407126158481756948638439536752041017930616898324244138200813855762268683223090556915460924838194334554239206770226416465466573121733527783790539458222088289258425715159356780828638065775742109397677073099956478893862175189781425468648407593566268218092473114257513355483408456333683720013721816040632823327346675797339435032354063750471907922651203198663876136931383671403016846642496524647528603946566533008912967768952594728155137754227106346264427339774351578658519605812207595055478730807011311070262442556433511299696988328265994788720560661572325199404909933525840431819958200676927235775250477799031092428464404375334672940781070846169133497205983298917661323459337434995487564220526244622786890633012371304264448323069149527625945471532069901880204688828501934815428906634464103090264562335335623412132326224995684694968695541963545019075192480197499308590203092180522974028864503142266687179026616908320950550316970214685505356862438535448320712524597139069412148552222709308072758058530950094858731189432707401016011258178221026579281492403943218002171617355524574439872172191830285701533543956367662754058222056045420663651803975546636117239172979592922143322007525787612991200993997241239412766469454477089635235536960047071120367335414447547006959176670321689061697263379529977487922620781066508835916603783614635040559335540261755724171886110857823217407214229205460278077016614619604741562202412014800341874234733238918555718880723864072619833332518877259948368617118612181002326968435821196585194405669503856386751347454258276231218996594607208657829515908773351311151069790963118057558407097056775713190932018949342279876318999474141348957286161211672561694046939435799765996717132792867002136469685982357354219784830198322793163558100799047848566805158351998254205234386837432622605473506482502701877979149844649437730117944763996974662117410809415353703894140129443832999100660014574850471822866015999878979214375625350306623748661499914007521062756978922588915046255561935037332038020289290463969329361656407834148797113157514749483450501728485161981973781008767209011147616498835189751716572808488087504264541177409162662740528054127715438620426938741084188394139266592348666556614432641244448494308603764918262375901090044481059880676482205432578703172969813627986010648508968307301189999664316486168880136315612820780232874672829281077430483259593571959959016400243941585597540914379383248393989901177510885545532589887288781355630852541048994367430410597159504855434656643521503191868250211896674974981469675469553951964567105166713892879655566293273292282891804373508718756533281249643428563888003155839303146086703662407201930001124028843108592055970247048592016735416150266812022893100400034823065225330267436185456001692742766234816697166595758493682789506584192610778821431942881650143190226597445338026522465867702242954908154501605799479658263819437265133235569393640672275420835139878107197308323608686957729399590036417554671662873496245541276147417009979945892417260384541082641115599734595577472567938910359771119152830314728704478378050910581918839120160326364134252429395581083822305737353407158760964346791332081217883889314425709890121807525584170979220167936960268896965785968842669436347019245840252013482205998134447384328286180624166998519790328977828580036948663093211125564227104182450892592128959206215326693364658292772485719632703725035906357390648208050548211004872703797541888339618256731719420168866991978996207492268739128793595131669483297675353369601219081961951819790084680225858337424310409150512500375621664362743066315994200430833729414940325797208979436081121696112394443452940347874054186511073172350285971310572397803279794892195275452937306526863736851166588097149167737910586786759544941360108167952999497136657338958331814719446749651558613089418148523092161457253681845510679746630981515061493001072600629021436759854492419401411136100052847101539409578685292391353525454961605536287564196035876861047435385802661096369867904246436797795789127976150649155904770916833419068892397273418151031717731868454750486263525347879922659132669947891140882210602176056024068085871079490294560578735561138327532969941007774264024309853008104192701151970964323872277766194556239620900141713532030242730070276946856180814663324192379891014243574188749745528107170221049907463246628490679549584741858911197280310123211654045368816145628491082608477556533240380315141411623165089238378642447511275531074750225336292764781784477233343922521860165596870057597465758445309028441354218381755255225411357804561043351475383557583711903350350846599073604983964913761949510096761502708443399286348952784998350441476118896483167089514826513684539264366560316455198077181328311108501091649723327238271735979441625756804282710063807105854779074562697873750339991236529724301723497932353701342365886403417026242115589526229105188212638610709235352451668911769158729224759054372766234008818936581773369113334453155352445027268090565753253316851484939313100619440126572289393041023012414194600935322389865947139260305410782104727421345183918128690312055523712259058304722462063037952592233438769922644532599224156699802917448665157463099566010669938881424866845726677089903074702415336559479379418125509598042275869052564203076754288451188930251324874464715091675628068723604433891452852350275395504463785984130824181234252806367692672701810028897478136544240019745327005692195059467972472484865745231441287983049925154019570185431348497267926242756526922655129435382427247416761257305977781577719069349153439680783891192851212069868559747232195198377771507955738571001788648943166068575375604314906878958429130144793088716541666413127252608645375721007079617192078685662892117148516308941677139760310984249040634808319079850422948393939987681926169388195033519058792369939624509815086835464944762761976020408403965452809024882374969767861496690593944367870074382343094381173950956328269818299359510759599043600827116692531066692497478814091639795813769788860590523395497012208875816902623125870551819324266431904155224512052206799524478002774498958189148477745101216438675206072705975864394461028228606707750627861037489413401342191801346526667329086777390511389656313817938810957126769839568565422551117875884462144626348569702518672341604432075103813607258013440746423043580604806822312235139056668236621467019222719091875078798639173188583113154721106486486455077706329898895612054798196878983728113203806920691117414860753303637782183989950252681620508525370659919494383448344373933447221258443986961965681769246617518446169217083612787953447040939212982118153203738801638373184213213365502047417162535816921050154064637663897686395488046469966539646701864048050146860568785986014382107980960292638031025185763164854748506059224754670834076769746127956404704417850413958124781465121310790663954359197942069834221320798747298690928200677530200608506712858234604706677494037608636851929019801477800114915900816176289650060575049547680733924207179632106044993081539535966559611498086253662540301601651654236396626996165652767906043098525863000827673592869656910147246614216663538840144896294219990447388087439285317832544968487279572472782477025448065099691678993569109509230574799356398242958822636771556710570540859404473839998815073867016997930362060572767604229693862068961892982226962881933920268949545838442947788112288513296883459850350500723136494611186827256097115690434489116282633988496970492243584876082485065033073401540954567212524724958554349497458317181162102145576543555258747646586164873014799610149202168799824286661903852907074046466050135806791239441301352475626348565520962315048934982121590951794195353188167238131165774953656038678314193863573405362422221595990032850060995401846761808512711148714907035207006805780120816291337007835168372343673079899350159783733130539739638428662909529346090163638499009398835793530618878866470044122675277657276869326349226154410227372640456792116586301167107473043911081990557011343489362995300505799411025850594615337773644261054911393844381895164289979542249684820662309725853311872238165951732716290275055331079099114488376033556124419312318958251806162741245706077461495373834119323618095339372466869419971262626880386113145351646815570774830098407876505362618439555106920567690556455820728531949125389214247483716820309805649463902446544876976307429938187904631843335036105156082490677420394518770517458880897966927060506352169208743597636279098131589754940823321413081117075543876616054939301363740560776131060579218531111027828365281197442994250466019756258199089270387002595219444311065688090329497974730166090975310704718275481220828160315564332536195064032435405598856902196313887329312913869884738692478215576313923196711449749404551780635864696350174577520546670424385845199601529416232747844061789066418765251598945727316059188418381928567018961519316025727625964293842430632230611478103737235894255793635227613898338217344431509655360019555599993542058208840104007703668848003006710137797756288096399797994489544341779554075894273863255173690850831196952370189192684066888607726240463987998608483122344422931570138053680061293844187191464424014710443110455652493427769282319648665746521885476790065620558473457164893785632847591512296817490243459605091643044409061106476625160419245929217755437783058427711176206586260442135983892616081489967677799244397088779769570490705866176418066054790083950689319884238066486111002713772460730823322402161161043892772268965400150908541262915324028717911287430427345344070411530985959391366752854362022517593344520900135252598756219772927241115141296171888251591824195449194804693666420014975505810524909122799273607580530500747478128060777199819051664334003067806028706501224361580244607010961289489784672903746272904985115694013124083442355474735296214595329084077805053374120884994237439280283379921122218317860731202872925512957277762060350336744312851611798350924280801798609566320918540198730405675680953816242295987648507290139139773831822116419852637552424112214342600159923212492319546126758411941418049773036448100787136883109470324196649195227401168257384216106203436615747083583926007321965356409042385939880533515474727741359468831898413915316034149902017080084308305851827531225187531848831436944975065631231245959628948551550747333710140125459889343055135546098546378917559468185498026686856903863549127182670239360948684155036089601019133097466570108164172209174617579182341690852853905789710919830730054844520077577376600799738364607097659573661353380582173678639327135332998711942263184201169391850434793510077756135087736045125520846303364307715068985342295847566715492665553094077778175882902297066122265219547220333024981689866009003794800291852204051354364497677000623317467489128986704946773426331243846926325319606406231153893474199747509468542296242606147217789325453010914549660416185488954908327838480129498472793750983681868148648835685131687678115448405050016578089131114099534208399332122285879637356808971466373027809407726763355508776501993765342481985134349764212929396939582303097211373039658404085016731414456086160252744199101328809051404038217753076493264606561743315059441740251609000333042823800168987281608682097647373254151641460389699057567697536300166764637171491526973950996843440615987119133065720059172032310620192537755086230923895752775291713903398701681343216434665031104426091858552382600372420785721003077365960138354842468905954785558286834435820372526022470561679904074380059964837338191855814551160408951773244227409467533546148354127029073575952470846176415469199287222210415589550294248376597446544361948019004758458272467038015217501188424919615336713387602120868205236505039216337558210550696389528632381925058696931185264850360288104062053954030807863993518758811261445347097669840541019839542164438181350828911553777343516202116005686773179507305426615263913932406214551131049856186025274797413207505017245748344100570045953634726160757054619634677685672048530878415787378226204732279932965153604046105116733659617112359917962373718239439652572461078431242544680445983102436842169381486476772979620775519967148193881469277141037027132601151582626772464372768216367035500787195030740387770711952543804793331900229307726678221955403454238562943252310121874060961520484804504627041794660826486653066838189861774991910297682139410331323544894764822463961756279105763696524028443415384512759216707896347598174140093078826309409501828164651529166414668364777080715314578998095471641090799780522221131288316120722844297304647403229927757757754458528594180808708287440035657907622128655293121385331758352794099508893622764465276903713128170414881820426654337725927695324495534830815200103525020017793592632953704160287488988942999848195001839331277602640701720488425020874547013599048402692494860650000482686548488185463368671695091853944207978166666920329540470001391106969060240016338753384032319835677199759212523550937085540890294400750213755644201049860334827447001491655228300184004110354880990861540767511442036699195252202381607179097556300618735351076138499821167470416634097339531635437089274689479229988564448874078440707242673973670446682798626240089331556911083148655775635356132175800476702040545603236055578864590929008350322495823805566763459145541331990234363927156877043926875958088964301975413919605105048216339507584556063598755520563101663245281478026752027488282085565819501894201283512205765094995589205794566266372253074163366580851776182382347360811261992364724684691926811600874587720804582248109941712390796672637963996983702761160599849661438634727054282446908629113250748424589283532501962856593906555146264665356163354762056600068913015407475695461742355341664216236619190082455244688619979080963820299917835882795485639035168188468563312262638582402635391385757314443605750809654085839916608208515912403238221873778402294048621814943719107515537445519940432833798403243158356284640709234417800065452370397617430894537430162927132590381428457252106371073244840006357516055203644042423097118335605097485104910484539810345050432418303772597876326862780957364056168678482638523703660093490354688405532739020389934780321006267896577041001855676089783125559399060106128236927722251311637041117279735094322652141163231448095493765184835856634485266212503401045088085228449248681253798354359669131867658423306701055747218001991263713629405358480507930158130923544891072447335946959093007767940129106015155659583259953247045319618748597908618776331347789378554921101985369732767905818463039868858865040328354352913902290839305555461392603407272372186096264698645128690171959061277978994037414938132656281902161180508037120194736474684693043463190849929004830434304198996134581662353486892204527486979444640813982125709164560190997817240107760764157910831710592407896345468700794001781415662417041006654228677505620938582620748802676535554605004241827192098194794773647308509698709744829770030428438316998454609551932367234026293950092641192602235689231956962057748556218409683990978427673248290109593328112035853434864709910078449770116172451556430161866973686586501154205589712530500315407229776555327601218125763329239018232918384617885491455155651727436873308885615556058659057643214912348856460837403751336633288580284601949106145556196044946064470596495743245236084195827183686793382748459322887264639709162446207120830116463057507490617290405908450279510930236630855459189100104944828652081138527862748068975385206904743637073477823792837444284803382073566105137857769360207275014205456188757759257837347557314570634371203080101940069251443951531686748076898108377272072495034237403528842189977626686499825884424154048052816384767072720806248387665187444410644049180686056391488470115182922946178444360786583093073821772610006635002510927113478150881062871098628089789509686736557830360988839312757024270093328964892661312992880877709736458236583644227095847975183685737267936785343236942746316824105295222919725138973352729482214636981522688505481595386290068704820014965567100811098625546078467746807898764714477037642721727155093913177723028376142424878133851316136701611880916350616793372250380394247676472993488213875258909601960263713114621043712406135565596615166163830980686146374719228921644353108971335172578719847820972977140797031940280703098011999017033279559566801119271074185861948215002599488007758730667913046757739602367231882483950032375888473803524132042322148968315430714782781617040177635075469931736331122505262174011186657752706228023785651501825931841503944284022855410751829737707660447277318749044019491792265656333380397303887249893638206957019055890768522707804575255071511928022522275780686720821178556332746165175567290106297866484451485540316871834957511056228421879561435241322242419562600506987865465549532934191375870630378054376111765550797461558823289740440180955720987587379838107352653222414186106149388187719912320932037344271768144337540355073897916813931196794160697190132069667156811496225581664782079740405986191659369764554744313530468478902576161439207239254505461476291007288474270237378711241541637406356827862590143850249922603428379474661314406743532534562854091654933392472085069402048530815952400864859373617875734141003218351877823611643349331323340351512007203228111299452360819567800796290928355414097470171886904404667180575351669022872074284446736322586424256749407868928110217875310960991071980259824796760860519065561933323499890791694501005969586025266132829008896021825707815834099986728518556184672529586940712001158043689138257972615415223033009981286252030733331484873228530400567754568676895679806698635403744847742551839301821873548653850238360986613902660969829416617793657726078492259207974628470180163526317064354700365138415342683459211926385242550143108495636795066512427116925617249629717415571900351915599412978696354238133410050030831408677268723842185598004854682048994952057635265360784800029090394585542311820892928428217706023903000954411593570166490493560287325391393355538837991890719387768904171916907293761657416861415316343404955327241111401091242581641558753538093770426789780841109569824678698224765950124374353983064854975481176006749229402047694453990341471673749411071023711003138100437543634200517564633737270559489824411847848923705126152765047419720302780236141344346539218273552648788946843816418333717892626960475187994528153377735386763599737341577303744306851427580183553292361054681730706361939083341293279548824962119291278540275924177267833748544701942357816291287894580963847574507032826278172615308340798104359315973565858149702617783179044562401268186815561823766683613402235361048800897970846172762272281263173354909581236864178948209980739937608399979270938662735450207582471312289663179136742891708269896080182632974962192576125580605126950561094692723837106601442595588800487150150808621390940419804690193494470606505752352355197795047611636304735794789890736489707972704112248052697001315980345090409380187895348928371063873379200068703999996360764435607754801793783808501642847036698765640762040254344127180642853289123988691494814197715404314405501057876258110301063563727993201477982003468307037511035660916860364063820585336430031709380441805814687418503671120289893001565123073033074993231622602572632080415711670597998286026501394196506193038890454986737632769271532515492645266945258303218632243423896211542639641333436349944874880118728758340402219045764113700294847084185735184311548066433597692079206921062611975795993698097822246556759398543721662101416941079552464289974126487208128090093822552479631980763976014546656265289298674282299988115307477581717299396619599856802707900137089379967657001614564353103373566965339304595916103740875233633576118763501017576879901674437849992506874830666047281537035665285111404953084548072500839279258886284052446266659131746227712626231938826100039844723447047159616729590729434840063773061699704885458612981396868252244438270686120422988031697901677131370054906510113617971377027692807683035399349175616164114457682775845457510763843603936468290856873832163962490475317891779504020631932505050035058791052620270118100233475222607798467742041865138980344577990394823374601755031932515185069245965529622684959338296214014775245136589764179432345923208057014932663520663301407348768670765416446969756361966949072379990565397284464855238769250280686798611976975828613421363172775483768448119312160788893047314290524089045780077889409236729144777069192317580486958619383235169077822379064761637739045205362278927046256296687640941075659667762938574245565553728972061790622509439222152480946713447415932632204751879556045357408145262300488206749114305673395079225881838403731783610866485956285221749149988396313348497210248523558580718463812670608451933662464202309880122867667025845626321524217603546848178909226954423546514131334873378670758971372579497661807347997209735789933154217866226417334189635377268585763272726773293751513514701910199528266897878874615374759390745766115678926969084134505275969012597540914126920519776317170264241081065177166582041077315745271828750542721479945605079669962906242950301183816904683353677471707334969076374712070892011109739887109315027716392549210414231508419596805170501442145590429734759935571628521258761665539996029469118703404815172967752806200134237180799801927663800052549515427364890881263712546825502427371072184165951569510448722360075279193590314573819555404881769365504418375234055764525406104774415685600876152637725793006487224094586981429140219745282894504041231398591987043024304795542744236449557476330431422255964556403503862716740991893575579356679118001084039165342014309860494907186761828772692831735309607551347989998429201456836554104614312327627225423931550963387354679855916748221452568550379421317947924405218837526930408383489224754440662113351200825324096613924058395301660238434457775995779949390416136415216329162170558047064216022426315774184979997350713120561060020898776386334711633730118911069178407025306749675339260400541490759337769734267824856559606712477356713690613610980957631944438120721410102936970179783544598901901524522702344106484097535885039858107869641705360969928419187773309869338215252916055788564913787526448549218744937179596862995526786521201266438383394048030834116146714270972551351989489630588251462768613465915346134888997555944896913379416886037047540819129458164652619325301073737775821125263170008304041924570516583591413914683133348013246564948309544328973349171412099671327885754819861966437305643316820152882050873026667755016813288902322877066006156198355383046239353814873370759594963992938539529321410947131555246661499503572881035293211086838190717078291602638854093623113274620514668578871059439319563792981689474476095878237955266868642655230571100054467256099888631314921925467864759602288543620788120349889689742595576896823696144969651170210832627775996016230177373375515440658017734283628932766870042365915612941970488610019265319095019547876973180626260816857435980473532892290268713856279252653761326473082898016990887075390666296344041277831145464121715019338968420329908929325221295762490923951485446122440635424504129600281242393510742664165936261458569823422129288087297645790587345293107508472590699756880602791439998324582574484200097949324057535802452021357317513139848315452983457301072207289361693135100414295283073458289687235521781162143716193435752362004722078555899656832701480026325709076599275074799623446056332797161383888324755219073145258738188248465701695057729262308710012942460868077233530192402555690008456770572170848111182005169377689445529762737944814494064482383079851485201511625806174040327533189496329444526432836905951090553852450608772385412946418412935170634118278611243004386326949105983013979437218237362769454070345380552868527428783298225481092255795824165309219798840869015658543318324221561820160970978261995595676966157426426951826024320572989846580926443381100147632347215230254706689622888677832621211465406778882648670946801079174987390672715010618520315994467983092015790838629644981825188381234256295034559626869266171294759580687537126529088834105604125932505337458047233675626759558940229188867982771190469433900747141238078977807298767531124608428489159154146806583578326905178456654836203212123215008921507964160332947031762750923479010885246036116978554832535073210819360797735134271268288462654114097661412100208818335187490383739728204825773042154356595832597431203885958734765734395842533699886415373996960349886062825835493328143306011840543973154209265937321503131064778115901412432513580003004317083935054991162223818496108464867837724645346568609376356143281064703536955246952513614623369181075808086182025837457997137386287714797269818285544383388714097953658821198945593297884917217305424349767269571861360151399931358167837183357952757699391520411953762634061342003785319678147953148607987812287294271937645783270737163845419777764462374237002163423222249003164571684739819445529051628023073855400696570369344629107996762309469428743014107093537164754762185584525181978289155597860253455013309256988068020214769038769321097514410037210555370135619908190845986169895332985282360271217402805810666613777375049084737567424652019866335105102911157298051406980515556696988922821597467765217809515493750341300970319991866544185902653556333616400858916264919118683980475342265369569002494843032414470431933081183451173868676738561853435828692218911455602617896093659401311568043054793309302667133607537713717419757471789295901110225345248005862129316568137081971202315891346014173787723791257299491576599620452805365375618083044921365294119229095507796923115711972792208763592366046074349820884739671546066763247565923408050703311195985589463771800642091220750215471757045894865455897234136703969485754601517603015185257106126005726871241910260343340419987021346401430630845107220768529168731361755662808204885359364990382932746256032357057279330145751528226655829918068229965927773961234602546330530968291909667677052013304942331381638640255850907624889656419028325806988479763997192769512935796357456771900964386459376313589112013318010571682304494590155232910925754459397622109952038602274543458550489734919769673152175436041997472023348782804372318066805968581398226396447114055386876045673806517245894053526736479081975788406423339104311030672890549328108242270060207798168694316992212725357261455376058355780461807969860729773188463259418841618559367557449474098641563890417524381340989445597588192096711705755342245440019123230530979733490987446850601232539363344639360655364180157197125081046053549190384654696698676883191271655380337762793534176438878250857460468310668630807195754174605303443730475592055536919299799882049419365296200172334928277865077484746869316135206853219456452467467309346868673969482793594122383385478797717040062120969117855287742248676539398701005292231733957593270722847963176256557471387871309963488681146600308032339427731048238568559488274231680141615708524315996147997835554195381187652991523531377505718239995320360973959165231842583811933518242376085895943340778251654872571541563836341364819657561735174006702900360454161364349956244807215159381845922410077685125787853311417291123547317578629616895823025162222446370245250021534973190379779181400207727984800166401087382233295221829128910664583574575793462794220981573380462702747254179372179326275094268192107428164676303635171838222224071425218566909353780959297769803242063334155411198011155140252283751093983639341038194055822180500739923741851680454386017482755277688129158392944509648309668440207840528322774022688690094225695782843174613824654343590896743174099511727604669925386303658417684299738492784342236928620431862659065691383126366299212434071399361885921246979085594592101701815006641132603534512750277086859716160452667229050246134603868733470390136180235944012221740907375917732738921320331438874319928252088823248931109321394950543460669762002490602535361409041724904203280031406748965051066595817248361647454989733745772929374932759320353467766469110338664914262468380407353498851299714011563973129189494808628928450957779771475831815264439816642627798756070137157366383443857686543412280692188855800526954604207688376023522369941742430673636728734912935088713174138016481476057966718672924068574375612419651599819547358747950219216283202760157629709074932436169030490374675175041264522177026846621576629778831909632934185106990368951131939668622284869800715657030661144367382091015330594284183765552667343358970775626980450916071076599509539364238249698420757658343085542605645403109558854236882552128027111220649102739948701593853962548773422332807084404656166042151691226256645663998730525646973809958368302789219444171886665934970248485293995021561062072917415493138649678114451406878882442617565910424524295407561280905185633124621898688889129137211567147284878706398821013023732023976559598438155855531931124142072958458647922515457458773792903997185716291620629770080209533872884447715653000101830618878407890261447521942306122378854420392510393418507737852028155211984755299396983414099533837650342193925247821200779332750510877152968518018893146515075299351822770714684406072233882003497177007495074537906250577962350180516038213121563005906721804604332506036505097522111887558671959219679859008013099417737202615984323142979842775279760681372644713736311653067131692933416438107089659882452617968303114527838230092712019486578627873572575498566531063574322891369893330802386655472370859642382429269980013612094605913336413876846465842765700288585077081858883976132296107207509244738033463165788596090034263009299337769447738685371332079775217488312848275799031214303364693882331868600430430824450610280468287105767428874470453351971280024564462830656744626525140665648761973113588519096912706592023166381771174542642443366508812057393356722084940330783048431993437441424100206730524902886453005014425534665578538605232394001175036390859678531028228767355481164839577303434822845702812776838794458801435182260544516063389392436260678931306717855771661699466582565470733929567185662169334548343924767577310414559173123061460755456098903098135467574714633587121348946763670281362707962391099469320571993154394820862599445697931396743493263379312973169384164577819466681710255689323012534989609410592872604775731022743443588396899767387764396025526270525029023153680944516751365483305255448163846589910682918058716017327286106177546768927666408095279175636275028792569112732661090845022019980080853950178395961542316347893914640400100764304166351384274353909807690623979449310943333690789455828423834147012878059466205848131226917066890752585646877966446551203826132010879156909894826848863744272036133457149748945068939799177186550277886552686388131192590892697504532865714518194408458464474263142941324344310088404054261883868792497507606559903290625646272558261888038604083102717586651047776314721852525164958910612870712699558184621263421149940500751916231671227924735595084912176445671287539847959417462566313137334808307446976091757463519333972173399350291103768425178651887162123579767582777983321861989191185571695134498239027325899485007791519128567592903818706978074215117532275769353974291409464766492352124049351325282226768289818493330589519627769303588242354884768094178658528433550409613662408299021291375541623758168806969403664901808900311224368978978258383814508562474425365591631116904129225453964587645724574538777561213709568387029480228627906616559170136498632895924455979048990739653763410579940187867313408290241253885118404187776587736573756276716035380549952592497615717275198190212099451258801655424006853591438171713799828878479889289655791960857954418248088177597984351082349018968594142034656633734290967951160460279283243008027913778469134212106654140402882044310424522662252457761269640561130286338839574929560563112488658275162981296206240859401798458716958008077089752473229260427585828868030789586192356699730820727650478543110587164956711379955329262228110149317102780245155152252104030265265518669127785053322361181929414582606685216347066951173100724590764967025416528654183618255005800037713552932596032612901432238068082098471379162308420420080377665655395267159987128967149258517848440666434899324792774766686630515385671559536635997454367360391175143629730427530698338242776402440944832720800133387224982200318179694923469317276797265768684057852469966582436764398430896342899562773729426945234129856554979761013202768212247755657855102314860915644447606186870444227297713475187237730010107600676921792267613254199134645237337171828610866306801108310891467608373134254953949181267052367917926230033346027080836482840972161584732604689112053071262639825348569334876228594309461601015578437029566616657545242836410386773850407404169291589876734862800736962069674231809873996657963230085291241647979393764172634479293788837220769455580827455187300041259004650583530931997055668042276520296656983009576970533937949342864705257459115035333026586155076534634131588974889568242906502470910325472473427465793462596966808300416026084997852878560485271097173639022078295525781887762345153452682691651907527628305990383779301689033186165377330431306727102223564149792867575781489090757506813320392896790857451635776511664655901415847775767499810723755734045352963123408151993791890839630604297463740079258955094099671991700552574493299476921387343008926438577466692908800044284471177856133708526861416467533719479741798874759707098777866848530591597135055854685772770956065771637158799427029589276055405493369512064915858374000376118431393877502058919884304551441773209365053823490487731507928842303901815256387096195893469852788651831461621910646695658511751902197276213697989855462961255987006397164589026904099671124171734193345732548831608838704561050471231411713463161376523241102400149793098174551799596006882895726966371602838894649203206377159129724345287619679653561460779361612076641716044627087251900273046680324070768641712988150669157361289352673308664627653787666122385067215656788928979967903892933229159113663149062145186352470732856865219877101187941189696427954582933966265217390972906840140820114455302690941694935974054746208353954485479708030717552078241632182807550844070692577065936903656795201127594449589011929840379622890517371903469851892419309849580245155338107884206219035563655945546788018493670588218390085083845314428026261189007352869580517436784831551507878286017914585130903865319084789564225045518159312461414233750408374373614301048509671487730683582508156052468419495564076895205419955523039874723902144351788383641257954604143617051618093990735575043489232135536132457914668340243340784216690048253769320618045052870956769548276334623961048074640838131620605200375930797950164602752868985750680105621272680607668816759853389764305524785775821340611797877741976168521868761455860325247158934770505556507718016916580381704855556649894350170834364643289976241143466601621751770598437157364222437414519676368869370733127327858984001149142798447426375944268527701625789118122030820765962131386130188636254795313877523555525718002016185475353372549148320458152021348297813866226738748030762469482338807170206704950067656722670705107669561760710064794593655672453217807150766306775388020157702630164846446405948759252612534456598412226359250566802204943527971428306816705873399989621232997814775007296558963590620963819070826934529674019742124599336035226501699415149500472434625006222459364126813621346467579859894006537478274566410951461719415047821587293820642148171205642861053075805417580200745132871792357997688903973665893890047863105781046804909663767571524576622301540837713937759312558643969518699943118064685286644538597326447627299007380437723186399599272855978598443835424516327010330850950656777230647738225339574036807311171511455904428476199960692885142282480477190486361507251244983704386220523635665743917734684774484368169919907909749061928714344976586375305376703999968223613092578442422666809324349812997711419595333594346736461346817356288210067756252630248709380958213949908135284593362014108354908227459375024567555364387045074521738006182836149712766261216347826392603017110470169303097037373194362239397706899522586845989303548563757827149059485168910480869672573128250878928114212055029734223565297699854131805246369946727050279718191489374969168401773117230756715912464040309376901839174627512003542303076292381114485076980482782192888214270205222384115179485132962922729384891514028109078423137328926722470822915470885078282943292190224273351238573076935571444592197715398535326607617481755196424897917198873254270717168215553607467480517795242717783173342719827542231032106947719337187805777739075877773821230462714887125325091038783321587347951737442821606214801140431117953771764817941535623154271047248557336561705731839112744772916889184527186423818863499120087291573420974791493450556229654739495319367535919116790779176947596819323067931620297270847122857821904301146766295037065111936491929781669302997525941205887788868662453775252982180301715655243659530497325535961552870928751048769358435084375133612071688530103982967028112058520478103839943063153930465031920636436616379807190158602653685579851889265802723574830752306059125259245787376254931908009808586729707293163743224070910493823352274844063782507550513788110004843712406370241572814069960440554416969587851996493364803649690635531190809252173149516403367991256289456101457839372878560068237730477998191344071766016903921052109524586098714230295955726911697925835958739722371636031502988630807281862377191787815875145140376480243028894038579827155121114549070400266145951189525301316072568799686749983599343273922581347476126400721534577457314639376027638312735991687148851482665255315090219164904724193006870357024950350469861565238599346166363094183558993916538651712780724214339418617393114968040749016310330860591434416873459688376551500904347987077790919163204975112393137062657273632937363604713847897522931568229196887685968035033904198936234082033109025304775625304807286289236677796655282832014755042947864034260297045007416221974342356629791780172993189787466554761877995780268917095741956389397627561269494552532811264817328510605035652583216922449612375768407223053947448150272085164763544624210905251934563875148234720774611994762624186168884552035830332789799649275605152446529209339016541640190621759785933512712377544891625714587282780193392494001747226682927823341272918843838103350127127541435511293908455895767566986063003072328476505212923677369908860333980041573529127479744396387707478442057457690401975107432915589382481809552283938882561978619522233247396705385413705871698788188722805390150381730783761752666521002374574239118063396168926574408445807298432363938742364087730744314539976455688738208854486800382854930996144602837288001094319019174418223426734979669200840198971063746452387103553858330817315594306649262588091189342554771454808627917672387712219110333106569378795082950944916599577013208282339628122441681875834999377942967754168192444819840966584454975251011397269768985461905398910053957102632457761812706117118848440124267671890667746369667017821380317691569376594012685738395965658710743167018003644026823698271633981285236754435248586645763457677970327017731973480360751138372317552741445252448212304210114113131372050837435421321066070471637477598561706272426972114510036017336203270923470877477231649404524949843901238438627829876118147302004661356449922551278828255095301871518981363870102079180227237992227737724752649158836339404619016889194986311104761170276512897528522056211274289764408138874154435644698855242590214343958110719890581413431915171673645861760244750773348261316660297930974013617214140116877750332111952389872358273211715424085744251681030073377349043767146629385281486959878851089307806454696914899340173890859872606656177215205337716096736058748827132144375055301831005157344190951695284883117367377251382426948436419234788624542620422642597065889869779672617240533325739235186518804746435562544386175247748775939859885129075383044861013367219963068736386924444645198271851474205722303651993209829075867198076238768880430222738329134053490237531568890509188037622889601483718045701225352613619298331573255524995399862079210869797648195166377441496466430081877320198171087296974101648897920098116716759327395931351640571045811579962652628135085941513115403262949091062509910228315701140838763674604287181686325861015240704947700820371741603914435265916320252623536781687847637605930083816312478950624753187100671801890708804149754023140750711292576033916207301119075384960530963592644587432215847214456706057589384716727217828142641825644533484336747471480976434949020307988232387822008887514309025550386762359020294501907071677296467317498041505420015449765507111011331792234219884411229409778872025581404427687030751890236544679642523559674305778103423370272687575708782710691663104802075515232254099007438606001286953077420617257298773012124339942981215801480658337268623749074973681601448699410276506276968794263048057870632665528614577722279680392040096820947075144980751847955824728987172042813778296127082301746690119434919907643967796173853730267042898675762486657036745261558896425162338405295422919787270668158390550887826332936883241267545615685800674291587350720312387655748266426026924348698968699466652817977961622004603813756439380178346723029937408092003105216924003702529269949673647635501887337411250840241455722291431922712336278414439746261414370214077991791669156170242377649981293121015775617547068088278467079092650573782930346518730880105451835895736284542478922525453110533641841544196502034330251229138631753147873186832723180766559088115579519416282696505168507809989071396928891374650434204488852081814059301832397532634274078885347236481500818599109169793469819762611627351511108639719517470797015965288897412125087152373501312178240601352787144686476813086917225151769653462385344267039001576086874898180873618919820385581495220037288718361432794758028665741798514349503886101201787530001871085779685657447001416508595727536667782903960833747086184703351174235311786451565544589872158192042765556619404261117171078332681725021622068361175799160796385403109639452430467531672193466045940008148238948755049140188120916511000728810141005824284013595571131647960676054277318488050587891682552078878556142344506872568806604443355513966635961231406100757845361168898637907728177735195490201732226137657640948127127423255013094353114653109768658017489867951184588780644977567416385853816829273918631891951321952990220670137114105831836601631664354531086726346130128302150704478818948559870950678000535545685921131422849354053521230129959718400419750464187650616909034384934569151448185140274556612820988062742639227268543905579977181208796389811235713860184217639961542912184997174525279866203261812057421635292920662704625666573645140307972631320394242710466010347601717854672783063224073165473786693233175179114570878581698473380017438030386664133620068968220167966384438150735329976367148376113443239472375779086414341488025997251459456457449847031017511879576684998197647482995399299030451220265791652949735357567865630093541989473218809898736141948983266459806116457036727482773418539951875719762366965118114429693482779729546716178191606130823557019912147014457841499401162888786075069962706440399770701124177562706077056925124823226151451560432395811979780891225183431246931966899539342822983065899243102441157962146944067324496450512099094386983729146386047775655244983914841452146065184543117586027910871026359255301998704051382076099415709758863090195875928849397697637246630668606192542824494627944434890943343276430096930982599985494036946206468912256792874024040782615701739693527176604508929523986331974342210221400672120043564127399486231725842807815487004037008301825053717323815741642609083191115429933184466523048884471407112205155662530231082429596084195278947430734791619630376689960932132548506378872079777389543089932672819890567585883002326295333441707095410505346730473352008839477828373027896578113841382851296689860824566716558371025764105944252433723149079464476121839603507922417229458870380310943024000992344293832914018340875642855378454571319182597506553244607546292982397818758251210350552658860692509730709726760722133526287594263393688720146243905953283359821900284290712054289149728199885930247440601901370550646065493331553115608971916181387842926401903369608852167568771935269896318557181590699629605370012498301922264073696695171459424760885592430034751193614726265318739801965750159806151475552589590213932623911646389511756978091305417868713675985774334044944689606425605760454027886481808911801510106875342437743720555250548277040984281272572882146627459488942087978556675633838306200567716850492082461488271174859847155229146750492425120885172079406335789421220208728814415341175075969831904261779018319091772416706472804060352394680242316846122199278822997937722297252469995632756706454272257303318398978974682486575742109333455496613839297301547826497725837008135913670073981394272395755731441681336470732049850241077018587227665000456840626314012167689544382204825231650832339848327830721462109043189821308022555440719471824726263549077702055159582280834917441839220587867406679493419805510770274061918611376959411314022944985621962423247091077980923565862992657680788886246978979553986127166675394354165019408558587735035066834831703195372573551805534127986395175906829046235896750709860790898008850964596294745879510856613804527079246450604355792270422892973205372845927342128047826089796454989214560978648456121236060739016584879459544478247532418643190659375365251823423281525919542405008547240739132535620632771114150279847118904174475521513429737349321869011748167856024559629694303029659647839823030706028456368155532061799701540714301710171229341862556655360840706775673486045685897653128407442862488782881944023533699501171086733614954612526705764907498069544612888254011337582193262683149149071719527667556361564540055815213269075436471769738488343686659479570017049608387298569454819266693564398860165402754559563812646636065814346896614486936105997474853455936962720539360990238285842703749373387464416151219496330506629290289343087851284401082031961264045092077712700906073625963857371421647955690382104752820632721814518845447877338366832409830299982819332177539257112897039498924340350524369023888637079810963716633191702157003086418816573385268996096259543228115300221905565979738199752672564044820238204090685049631612721081443628373005346288859367638920778066249337514693090817678910463699474099648582670987009254142244810412244173069930633687903853358066468912757261103135590905160987421215620813751998315347035453627418913623591714557339897107518318558004489411794189134991944595728242540304347374755603695108641223227259134608037752710069846239615351285260498046180136748681997413398874560280295150256583895184731676176448375503406255587446962083665907829876575530266013801714872843775472902478077575360308200482613842181478569515200689790473272714436700862331902919053359117288213393099097015138648372966864347847770534968121755684694384568955327156796357080408579501991067886977314353149838042576949327572511772544235374570589563605311612698531843991175221480985286810940918325415665499815782203824035729642380239993684515512771349341150086840760710239344037978257521623117022744555449316477686615472909676002490685810770369790765306722955475711664298254659922684920205363775482410515278239336009322658742567306062038932627242830448869552160640758844990362914617419429716158074916282082213971574811987133559471676306905878906250534539733985867995253403171703688762503344746017141498870986720027408818302778126472633322670635166586127246718364112262413126976144952092075224044347449095544881122021525586580366062531464388753569879188577430229409730373427171534210614668732530583966784206227928497151424354730768298168363785232443766428650523440799382080727736946671891789396878972131223097480873877506109307837002256983845706960521028350807917904244619191867487780503630011848958143121561205895309992825326990739286828213205837257688644304889820714609768563207714290803618495072479530516258178246762410313616443025226504313177057474802714449023006475308644417090857204828033768344515461918308305800978203465474536032662924064913288639256012665011367520820451222571832553397115925193211056916453009861879347980755287650924863536063854769809708780281565838860804676863596755778384675391688834803661275865233428722816243518550429248044938429680659565267266872376451571160179397290362036460342038192907867113555644091393689904418167904481355816193282202162216048374363190644260886120368318760542327842618260696386133139176636753445283122598682294506300277660318681532194827921757961573953480941878421021826815650223707443042691089503316665963891206274906079243143932721329371660419049777709781515048290299610702614712982184643014198044711940314794351497269648437549199137443938167316674227160127089513206332971281359192310071586622122180122001015049782843818550624366052024043127180564980399722091650367893477030706956894077675030536596935191925415640539595422399662518785776201690321402077062985561921148985589039108758011347955434035852612060648370415017834857857466903558454130097034576485864309256614977106444036536713138684759279755674380992415073964877877733931190233385326758628832207832063774013220390579168367259774292705086104338474134804830032955708615349146023269604108914512761646666949264981102125292031597061233948830261357707458423403483165421413360487085628392781867577552321479979127097620405957380324839856083690753313928732692880240918114338887177323495056461828333218681315111803334555297766071332247162478917895797118189242995126673829528524368559266186636079350807362719971973963693748071814894873947990362550067322159558832405427973333740042172347512352072948530982739619168164639273907384650499800131176925643329448471568465632462005779855823157548969438930795643125357164620768704098312949966323505798075688270831802597013456518633001036298770071790038840677762835111882274822096973609959570388000287332221711097091127183855243192394762056690909330128637648812455527956890292758578764910280118468211412069802626817751153799141698291472398972112709881405383358528334750728260852942642288870376085164563512146576033857232059784733542262504944210428262975066700274644859491584596516918671510428636213410935302730556964680249899848430578079582723325413459448449277921895733630715178899041535144440176416774840908698358924917975060761069115856207638475707226735087000553865170555540772923637278940139977121451185990209512884367593239019814726653601939833890317301365247928265066792668024738866938609076904963728674997325230236294055486031208587035663365637371664698435355465000905559218697694184486395245700748775351443061341290393594207627595005829696606497279982185258734490165491952222243664956129571092262312896007655563716006817172047372345325354431861209579402656494935745124696921484696001147375818304448235483928063573396235166683915111461168224349740241518444485417145032746293580744297638112883934776581983704954833342482060600210417055183877189153404280417196241672761408122433145214557263958278981915403079870713039964987993525193601833558802532303752191582434348590841311946114108701546537979951873015192050208390558635889904886208277225696060543512888362866489504049037675585075116014791000396167220286793789522919491493744567610672853503928147489773731237372818731656793258659404380024252061326119822264200537857507566493078551109022983108220768901513320737552309928407055065899787721148621234487845192564310443672095765434958160773537290317756702786422942638816335856067624676209062342471754184267104921089058693314222097737320385911237274779357024648719582543216529384474841730987763789346254747758480280861004982012871396351589340166148417725083110382272658404803057667822499932878483263113556253239606905833400934915447115151468545368026846664481477848379448459306179843581520026813472570199092590790849082325564472398528247273651142415347183577613522828618904423506381707007361957767146472433756828120420576752336252920298578716434082825523260434831325080488113360680675213472263331804700638170658502575418966436517635410932856962428896581157249797074601015920919056313664947314197603512673633918004705029118350047803414164081629101027296463165608414701287044906982115840350138693320032682953654667763713441348909999319992219775663139297058983608980350089248677362592313480487217477190420356721838338556288350370225446162960078668617418683686484973457205977785961417906553372140345048584322083560653475281649542154935478218638365789294453669190367110505531007809240970059731327619561726739739509920740800890351575751112608984533948438711130601270225462506322505178045143506254233881581549452700363856384436981985279897511025065305225917834488174963529319517146362498998677806067200288685985519619610643742611223295327974347494850009998351288958931954945401654604948454961820816680707229532027099282418277565242118005490717879743669203768196710238999821989805499065265629772446579941053736600961408078309525627486089919266848887703328844757553120475348136230640483937061894020382916158976077690071624885464667707700284846305689227807787390117859324587289210277042489325053160771592154544318125075188905697525065802362119665276835073849362526554915168772068775284019537479707564948249789053976161583972621948388298493059050791266585132423584322618742928281435526472848286873853016669857612372405005249541109282781740852903011127201641376573191921939361286769435601914176131299493562007379777556840556460070064236937261867787758986352338058141251792428385069196885856012772879809625158675703445276736645951309001453992886000281057785124461073321575043851176609857832183146461383057273134177025062751246672368096276027155979840402954151852649820373570364796168062299095494871482290666911217682459121370444231265616269078355397253404885606784019937672978261404626281636404748695889204537450534887677104906702880816736188517035030514936163337307969425785693179102249671799608025172130582279383163587374927566521225486018625071572379261954309190182157141554499867902798538660412661809932209353929855608249029477935803360649645811679055036745663425399018755385149161538778621122902037843393556652706956765188856542901758452016959996112422010116217066398034380214680720104909638212642069184561604015859107896333926386825955521676527039358069074292958744766638335852780193154604763125211196015771840236134205741725774191449833036739002932798613178174456330310473202477845412792322697244941189089983718155159303429868293490125566672025029066726275161022233340873354187336880644915873418052317846440939001261092416052967481419552853346758174447522433959450993818510400388653390204462726802650802145273247154027912924648848949047852094741211408875622494072826420839193475588929773171008161570269338391053917926544414014607872923297744195006440083455859312581158013488445967156698210923634564978666150182280848040218397312395832664533936929064564940856991595113462841756947049993318035451785926177612632086917264888990975267532527605646200567859212069083757915101228769881791156540118958657844112221476842178762823735399801803965088782772563918765396660055576207708760316366553999425752985054029390743790659459567037042732704927832908158841682693937155506441408129167303503919821823274876995645933618850183557191352355201385797797008528333510645008713046072524199655815798911710902883645985291252098790932672459354248156011429699247345886992666023014079890184254402849013434884721602585679029758058746572305652172569657618383734883181506709586479397701746107674804897779368266349988433975985425508914798435779947781564527276643101454996869232989606387221433703671192627874464064784883301794818024331292202457710443306100251512479102398559678393260780513502564744039812544981948213969409435870769933381590903127595220987171086869284273481234299445237806400189861278884685773582644931483056911047181351549807968669375777270956750726848750896959726806379426744264015662293706079724264050976345587124580452037199454823790551178462661248542531214775644040547837841408099863130078567002318475045869007012902958415519794444702077810000982591807437719059550510699254953607930730422941878070911119936670226234205279027907904747518963954000808701619258589314436476553324856535440888021094560997472978878733041931852252897068202853050848432715145302676843851528701995918392182935678804306024259139843739910494120715359399900609195680085337316439539309839934760139409853700581038918047273946166605143988248636056114267815136309071812093771336485467900911713731442518572286474372215467819844117146636492639403865131392742454990879712638438439311813722772157778192364250381564835409831827697957034582956275838856058208958802622494579112476746111619444076735041761310340004871837518204813024772564488540631487017772167879260726735244319617950442504140579794555697643491355500530226468373566380853739291739233693681640886567308567094327373270649112451907606112327294188906680169471876291589378890935753152074253926849668346143243703604438581611290520982812113074937953395769663618281571948132546151593682931051616317813241119689364759323225263212099293733023959195135734830374799678843180380351161451861552758524529561905436295985992206010337388600856772036510311421477983153154685894317129748208341287542390440027929021653321478965767090576446961143601629566040751734005354498359344556451790306422332819357731144341788635856538066559786291407502107399926274877835205578398259689241412212677742099996870570836181086418222110753526278052663387486847044113204642015087849212313741834062417596909867955423544227262987222333041129515710994344964761422177674342321723626597770873034584648741965849331611332000771558683697932614602021123207311572003841512400002890284553212615519336713149803686368065011758373158162964818555199416891900262423169830376637140910688680314162731963013654601975975751656744349725608242512401030266232305355587739787122281204006979016094374705326795886593767510268310060339764605259503606134287264381292902658938355650124222237247635795645099116393345337513703187416105073681247135614871063168132365807271910901579334150918561405976447708224306858800998700345455666609683072931832452244433420209919972792185754840078464443052878128007015911581600300369641297379720213745208513945940515274996343744597180669082297805146281178035822583586661224691611322342239621369599802427055051362720580606107751701516354752189132612299312202427482697741923452133685774769495605645813448459944223995329005101287531914759072951004268380551625505202445175876423257263841301991942060093495125463287818136893585350395976958012241042934978384851651128487688808089760948606582358152529272232044157439230050312109821853931269998130003531110407165514550149097037829270551891103885017951925009740576125631171704728133565901309665619958819952394338593373571462171494563969280560032562683959335159286261316496722977849879082424239894126917246374390563187357498647627042865723606961232835682111085085661087927540382092269375576046488190983930576709208455389792399083314292732505406220315322105560099166907343026279313059572283384644814640909796614538752314185223228135170363517719936160283980187235677322290785121852796371969289303321172031032873211901967726885419447205022954020621421652869997934297517444098533968912387381133793096884336793616555868451980246571447943013781801090207325003815677701776126052221737115305964263261906059201788244768911917856787833616600025655874091633491720414466495446004560858949587609595149193020472978529946419939158484650661710690934707732205360834983919556238232110415854876542465983578550530299364186352408419890791639322625761578675287744301563107384369503100075602719450896390213174524480124108675853954977933275926192975346261566140115590255549377232545717561699744716422826182483838942974852582492050505767181963845707972760532033546139856972488616867553432010848366411031663248164698602126730513606669393273117444086131044855425506185718634339581188514103966790009459355800927508544781541621948401863631501673802579035357625997840969415794820852262825658850893642770301978398200572743255675526696086723243581318908798960610318951072617590702397529399508859754711341079666979165476178679358679963099730236789345432332738496341057959285335828210492363739415805879245674258120766772392126065327789725336412541005871197711665210867280697009504592618664064855273528333335948697933256031075820633088080295505583792279536568547051491582696080754795406802560836425550324643626592882475784436328822434323846707323607288845246019632420834652097488784377556838931683384289957746647109803274157176232986318730222258145341150265832042690945314218696513798410636869503041428880109444856796142195550522571016462664333749113007053718915703634248166338367889016474115638810578390402952944390161490225256085203350041658290780312123334379853125300860184860462458855479454540019363362150225001275577993813818350439387693550757636540759094984919210097058214935828798529444806142381654999106733642583461308835486843501086754086804430952213602429804699605503834948469190950923714069406235694165580067548249639972161517372156631430400908107058550199265589012199411301881426609057925665223652556265427410282872872707909973147688657340857378090475476052529680191213012749556629235652831159515104334275533315898922710337898514534958463384681003793125102626950335521763384495233626063038145782093118046203322419536253897237814164182686741987364454668579086956062753789593382628305650752327463926621612111554149833785503098655956459100142565586164748979416279406146817264915997308144366183504580293735945638762803487089753428612038427861277920072284586121062175993055031443877785676757193903683708196608399679904901365677622968451451550203515924104345259007303625767683645049053221050298432594618223018609582688786624001756570589149364323276484509096684541511333591320422213527732281149641635329463062920283090769914605421143203803562682435458202229455165574189912046046408509420510132421766138638709251815222434303912240653817195761024396156807776479447942324899751524074782748897137375483847838830125557073702749511970312548996771273838669022367900322788427317555932200019670352567234210562040466677043534070784448618348242140774321708384743124348312032331141123710655541740929529565801506899932854209928177183031823885991452429513337182766092047286771557481452416201705777635206425140506260696177377583904922110190639069504187360110523922866211893669760434550028773574865770579281177474728288677801780890277582454163347794702859812931906832662799256308138245503675577234263160725587453996175350366716280214661439574386953901205321000246691964466672509834998418197203651134941776695731678017388709960909051761109156140160775615569452882498525694133533663742727781713946276794776192757187349509183363554409742193373168628606565778181180523363067105525772280994200299231766564120158123859759622369801088470333027365654482813384800358720133953073935689407422847628799015728973395223042272814105947473334111462315129149280103639689253351906961549407982476029647740805406964772446524146251064092133077198893677284184596943180845925882362988886982574872564964282544185876189252190477516972172791770523178720479946981560259626995451067912847607700098131393429440912037199352021157693419095290461469201375102575209889159659133613929346871523336910545311557613537568263459549124023345895655906229842671943454505307514842599253716631103691251468997170951884796536679038295967043090414684614923189423411544793684365129535770246750051368886965412244520881083108000913904177225111345576652640614836060806612914198161923794004580266278399797447256062895888096301360278937623336670579219916691115919711360343499731402417063701520923861048065053405332494412065285768478351270642587933718933614461570076834694474277703512613369451662845605353997710401801125415044519659069518872882702770575014318353084248505591616638872296515559445537907816085059094035530535267558361277925122914460055625257369517689980593562562210410446049585053983323700279157232464985197415381886236727354843975558442074965841674808926835056388924142486124697990976929999081013858203481270233295089683070513977177209034737567122667904518101826512763034234195529324382994254935214972428944464760298685982783841188424838776859851328442076648601934465274394576183528445499653783570407316938152656120022074869451059234707301924952891047713100511031989658661740251547836550857154703366259636129286235431313915062565090331328569429428722968723295196523809031798273057101430866906590912313650908801822566107223275134554833959212723523431162025402872552224676766599316987149960158279691487223195271049531095326099399024680066649974003611313663671622885155168848820924848279911025909862525332203945164476903853217390474750767772163819185756372395168001772886313314715696174696519504055363411258826235641731996811244439037961750001066427528440040730507196392834202498504081185823681453369426760373907202937721841231010550916550651555171411689277667068932790222707662665380913549759677753427338647433629740444691514767122308222530913691071127678718773023715695002611632109675817300306378181049654082705726386736925864580515828354678957746399445383660622624701700609334789772123406920644867913092517662510036551363681138536178925386460022421753529761551511530841802310008828998213167651246711508346927635654020807890039955697380320545079846183776203579758625077243715087467520824789751779983556658311146601787076603226257970982766416269240264241679386833443794758330035844196618659748462095966471985426045336976720935250584761938372195379308786596882353182864672821189848300587532137865332490201947604501171603778328777583194634985941833245992889781835005936966096724302626593696230123695983949441510995618278107832154798179120712814332692568749120141439045387216095223838627901623086745903734971582142738026637645320952983992899856450397513333488420132824908346842502152370653414104885955133398901152320346806966359078489824929113270481410531835678904319221320569870601598878619861429824514646646352111467675742832222648998751409781912028545088365412172913511509165799320803604961207565230936010423830153469765408158076002918338064806158910585947326254211889324714296960678952986775748461145852850700146419841719703317769170336103138659715328628461264350210225407506785226404201780295717486781684912483794414768645102248349268516129590283656019904093239395272303408275179570746093249270468923071444114670623443160837297644726866058077123186225560073738538863612680629047781402804620139266945814169419361708010714164110930768413299461635231809932985104888797601574689930450860181908287330921956726547033791540765064093264229996874551584299656206058068160162754809215161494965062280108233133063579298628619046365011422447656070656592003165459389535347639562334133874221821028576569110459700873517838072593901688364242512146098636756478611854114363534456143392175742157554055856990027308393341050238677339797069222451552806949843374617825552394780953514736185491958699228050558219487074630031391659404373109001393876510513751480243724664574922993994567490734107367990922495960630607096335186657414198002194508653841946195493396409572805930261838534882011506595898106514891480415498730362799750236431868475778807372009450644280586533108226455969199560176876421133222179014029301248804100014433640955130025382074532512950198219050879909145193942356087414179689705088085113805815311736689319142697230689326463259905298245783437933433116456804685227907062297590342720145474345345558113766056043573954677458363208216531640808060434626530877309535154952119358793317319869362052367032493939217211427439188453749869604428264369951549284220380582150816852765142462912139241270301065875339602371906791936994178313169209137064490121453142158901410177090559045220529990759881682169400752654080802378430842514069073381572455798791119873725142644924093786374393301826052807687809162544633384217013791239640660554286891632406244754104647926176417709412001278730702927696724159639686517816141141402980815694443882361286184177500159043668321452854970447170288708622753009919000617331571510366435404811903203259861346407464248723828793343476293438492386788788300251532221217241451368184828418179268939186196407165334219253377601344136209852433974787575589909598809265017307046299893450947641066116700282121927593136893215560322544854037104879307388224380006450541685139829877546658121646221411718380821522388422828171880280507289817001197013899718943665477147054419716453010240017952572454855903052320035711330417953074250235060987202112681300288953318464070173502768522507656048570427420373890790342723615641973910222839932960095446538758522584840141870191741575090887815863940097578232487451896459590983866442306962639689141151948528027411758598099715511770355143585892603247125578879222516650910837175602071698881451670754931165609408153189882007755560620934822557082351887312113691012690297192971858804740257920079971135363777937222264027362024867200381552402056842060074469624932336897219766392115373308563366839480976492853174453966036271951201014582756591203497971434767554010530074654735199806002804161926856405714628874473850024192647375080786725658199460667219654023674507103057570815136013682650432124858177558313423661909083462227018569242673493902684259463253259633441289234675992987748481113445093072829977698976339378202297337618901686962136855852915135943883883848384068320663667475535454898338195109089454528283427309346549021497543920368174724564045773174799314660029493944458655766622070062354401974475300079239484377199095350835356786317378643986756674843664593277771137187908538294021688365714323139570689276863445327886378432244588337145602333012163988105163407997812509468886050555986003212562978159075783129855891271035587842263141680579296394753791377969179445250418502436268977923127078552523926937764505333326538080558041377675706457843669855850820576397010921360126197321527102015488171531049358909610979513924928082014155673675768050867231306512039880840539083676326185977352696663255012923496342633938671457526105908783335948972689935566883486081521822700864400491072781141190077692416861040836093733165945048424246902863212420705502293768286375633567497043321491988424420247488958313700450367596775198952729571246164668371855830343891541673209935613338645606420944769877194192906496835043892367249507584934687616149037556115073307508544244264369386268962265874444596248726997679591058155920230413027060642606814115148560633672313540497002961597121067586806272390365400534441623490345260541800218401927477474837969980634001703661492259101804157782731248467430684464822990434024695328122474960049886818077355206090466016142095593718302894753417381183814394403796769048682989759002802567171637530266756078224412729893845482524506583904084455287240686010667165063369864133129716129480144872328776089455309091914552420261386716930236471941720229746549710976779158556042240257813112244632370724146909085392304743167096307452937120360097380794339291372732478202478942286048017615590901186281682919054324954701170416599928260349428384035577469378725363563668653109274208500589385024534569509848385687290358884578947309759837591287117995898688744271580776000304054609357366732145709490510770693205588436251937040713555458122749182912526522587203789342123464944813094771054881922696958549174390638522735402815695015612023685154827176561319651220201750423463798586680734748076862664986519737419087265459815109409689619845865753406391239978421222816138496787163020968993506572329951530415784404817253566143142415930415963490739979502153290894829503857893512692086020297731801426679056066175060280001058850254123993907370776436177765045486659537360359895313694920329516544272747135519795677238401825820289955722746476875938391198705574107510303358533792081531533810307106097870751911708215492427296485794272223829868076714990658024563367034188212098854676489276123626325400223544327550498690549362087465521721450032022597080422128200598201412316664766507124881125441384114277242136978132248493384231550408755658081983922219287129744555293641846627530665066626587180462297472484512594368267836988778697034063236757095581027562118108875183243975370422342778958638047910749465017135016529048649267187700634108970314815832429954919603603175762962948880813851552105997820401427182347312724043181701721092732361560524897813296907334606432993530971558842114573579876965167040306092706607556302314067956969680797034234265136685507990839902184540034937926187962357181103086681277583177884742900468943273595914616514467299576944978923984594332148633462784812689658608425199291793070752741781374457896401097391748385253222348534366361451199312301655887835837930312686696041400657407910794031671587356457337306873723025125780731694139128933774249760565574524731823556541161139958613961704922480604095947087183979591824376368796610414305788586306544361245568647110577141438967169281769164823671283978088023477342557422991117043939892019985761075111459334826330994980110399899616543465579806274676095977075100420699377243104607853464054407829612638491328604544915718512928885691894251453091958082087563057531461946531446310266876718898363268032570469263508369303839884688190140026176801416494310503683486730586225090597058926289840208395096508281748160404297567824955869581403331494402710029788035921812654581192451813570360910841331099646156781814784169187170154382120253641669904503108583203410049258755496823751417372155690938460270241889709114084947619371053072748804299513062533042073278038257080753518117684575483866388045577101152677495811461416285711214796123453384489343244316565060072431842898665208988528725695838602659008205247100789110502415301566704604100096376673382849379170771210293271873594043459353169583773559621152564046739238111967824234418594965000020642974912193979778899250444496208735913495524037567498126797755818010734491156551094120303260391238385485298487824732013809895017434962201442689301909313776104033810792305165546406924622586581637469119852002665026261046234974536612636414205175203443159371010836831031967697717552895112765692121164219794713396034314679735372518263295892126835956675471270853107999632886178146683684549270234394553395429321662813299120751544703054871611436434893739711064182688939427231257636188090628838177136735791041064891129704987837739670501583175449428349248303380030264646535334792257553588926595941453101948398819654951236898017722382698783549874517512510365898692101405119743900811443167450708851818216550581137498181931196699975589400800148620240709453853133114152116603441497856408722165756332557770134852677354761972460007533849566904878755545147125633523014201691247008446617655696401471417665442374525880426986226716952926638194584786758507787919275426813221698673300296525348381577942080531244088349235815520166014958181120334677196946196913450451252009941507901069326147220808687314124775856621475897924561135697187246341007066209262357206586843801839015702433995973009962769714145769750062944660881888712501844907072684391962969313584043806688376709678682199919957058050681073754110606088726973485622674286519221958946290663423950735390647912808617145552319722017094819232859729521499090089643221784837968126440509389328635113352467420171316291811663700009871610116159778951430058628000689339697635478088981639271422742274954141480849619479083353322179269551432353499653386493849554336045766799086800138355790486974882041595548413222196669538673720662709881790419890641410343849899183971630900090450849103581751705119926601807557669463216407012384889875526612782256540221405220299938360820819902547288463354053892606331368133953381671147421037807780736919123776077930875076257043576557772119158229191090059928881784770374704716632832187235170903259312004226503232707641678165020508514424599247120590440590059247496634970470448430986686814376977504189666069874048349292627615255144930863772401611923934789356677568965480775365372317322817788802753379272245777735440479976322721052502737499500877335432723873431640502147813340057898963359897307603103112236900400312953182404215320127564469195111401878444833580512404319276899699197108724075974683975782607511507771551403656088097175599713306386356647765001974186020335942008776426716158229882520566470859471248920169462985015764779305972248589949829225009277341569606783724703258391118627071551544706003750625663499958580400995238558628824758561773773689087713795215927664033161164054079660131391625736349723250406668290394645532972202023866072173676590161805959625407509839787098561665751169841605039718036754921398358784439995447259721377681190581812901364558919118869562416716574091296430384016997381342635121256899672548085621257123708196013057908972455523838136181733051837257335378889286849839157798322667373916127110346300557166269769764311715608547859822828587726781936146201304921863775000733171177578121945116928750755041941482578637832116699739062380809911062862869929079855208993461557766908371657503702291910941983900595938090643010254331577347198124449909518996048888743306410212039051822404159571752252164839604838632237473573312000214146230991461844923040068940242153083551676032124556264946109670803962143846179682346277029025538000141018789011071602773695749658920539118533865424855262818880918573820271492492790458392542492080785423386707557505472447332666617877949748856174503957365340597380084792162775188572460744017901627978703858169297055722423788341957423270959428927596421371040844637288901008288695401119753010223804523599810284198780403716099734180932806230727798859040534149469216280976832339781964118066861196059057709612337996720982767132412189219553201441329271357968437653219911150091799510501919582853900810446710538325253876240224851347821107963210329801410401421512967273296225313315966026492438879798556105314435379725915945598566050117574236882181244266576708184644557132894799065022258787723946731857803997958635223396052980647536235191159892414725696992837637605089957872456097898888803064626571462480391987136890592661674141913295179466301581585574390834032944179621609955457176973584087705723814349233748587645007345534902165940079924166771124590982778581187015279958183698577996513912226829812417653613300327333125607655549105981704663022078807464970542333852008990666256459982101412094576799621041790693357406861343111795929730106558058370676635608430402220400264898516941261106978446266021953106014483138407781436962050896338129026642288355925706693120921411631644072644655734068684983747289037981927198119541766983847022455244682424549272183404091205068419025436992145124534923181509017618323584841639529887912808850156492972767173637782577510830064085716684484911012679473252683224983576176707474094425401054329199947056647940693658234032227397685454191061381736545624666091076507774653250345749564016150702338610225370329502200222035388195732279768066073812675098642108878488004645763110090072099925040268727027290408118265715599299162712846253061075080543351463298579452542218011550466282749044837299838586763639192066094435227482937704658723386421427774678130547891110899650885777244703903812027458608013674092191332856053611185838104948864519639354654628969162134920663904184631708653504377369245366968030240863632234432854597330032047986348895940319235160623740909727910178842357421570414091929540308446818198964784174493161827091279311395587344891509897771230221316834187992789729518483853256500478738783716736898163252364649290911770063235575727683680760152373482059064265302571467370027465894022938908359347011524848960560161683353652329881547312302397401368928490402243942160509926393572102989647365682208149319594174390028116540652724597949736902202566056003674156941176610066559147323003890358531023575486944707568684597147723626412207481415118702254214881925018960038918976021924490394476376005936520905515684169087116698341227511061996038502488237287010968487986859774276430432865505010242044629538534578654043385353650818093502279635857614886267156217844566832810946217856117025220665822423967204130786039769265649505386296214519999308020036512641774208631269447998395691066351507047553733467233151081389757284096816272779073251683300357307014749768703685646635119044550605335719593388610279469634167244354091610879220023448169436998442358022000192706614819283671761889099635933935709575147430451106142947330913818753068648165516301096842106746492359122524254804863391846444384358118099080117367858541359808613473951755398466307183253901639635240977638896046106303847070928377153505899851237530443828801672660279968653600630541160161962209143062531022410281270546116221462886566766979311471163348851540440617550117658325810023418905272284240562581576802310879605243172366373225930063614758659720786320622837085779766987779841745101043802671870586651995527707165201284483427023748571113905920660764901398892490944802347359802791699574341322457996343405980315952644145119888600241469835956917415913512152952617352604042015380954583573517078125157013819630299865087350458400951893693611431580269382668275415136488371824343189070063525634511156557223965644136379997195318118785888072052757985768282594565817760672320485468754910174847950785024985843757937093379339277557361230238762734927752609684574280838454054113788890691513513442077863537504251664314623480539360942658628209586960608831998400043956774132550962700999331544623992677699764635764511627991279373846014615993438225826981927170274434947805190489106147341362721548650872518766430494590916367716023203957911593193831774847393970124603554095410722425092459502189452415495806664228517874698246693848331662145033936810352283876090349206439706975256303656457955623999049920683745176822156668893226019374750245257725157580377874175112102877672556238515466523088514647775740407903590263644880959431447581218907618905134081918876788862131263865039977283478006274546957958771805720008725167246146453948794628682019230871352496932300467426397000742205975158717112798979644857528956019708046023233484915525076035563103614063299484292584554008219830131188343411067711766324898357786821460846531041659127716291972640670502563402719866664706788915215530412703043191332224768518004264745204226393104857196303414716871996454416401138091402101741126982380232135126681415200693591975296757977650530981073081592394600800610185004927994259440275597590965818417281799543258751052141867159296732785901478727143335368086990959300571896175175099047876237326680971731960936789322639919859138785299730484019063342270430789604636929903058028617833217852882900664130450686657790864207894590591126765418232031524220597241617962802711375047072502815226268694518027544624120138636600931423516599501204852647462141120815882268248502327803220333392127839637545104144336476318804155480720067428283962084441353303214434285585995716023574590211226289779162187906820288950851998766472930232722925432719401394523063531625977825145685555395259730650311035946359348698970250310400166623525759487318455794573044119038942403039330871834204639506727723913464979296711331907328202234930560736244233214790776802726967613331920742679206300478100676930448295600774267055011381868170444444016282007803690237854054544044095702284939857628175219341881993742032461389040882899553063074671156449738357716811280789987967137894291110607954527340877508137772678886965646166928318661160668176101428346901810701893464085209118412538563288654214265335455677308340776452127450296955008920620106050861047550751806082047442272623973280062083044929995100295889157844772244952566976437753697425965474712176477304772160080833855558381206730198764352265402716524338906353644556032314400958694642531755181492659655359082977485103165383437407542894751648119941525678739306463088736223316443407581561950108291150896651723298301487766883851136230951795237209133958779337123815184300071506638503209985640818951978249381823783687724591745541891259900645549559743031676878499072819076826155633698643070651970249175103348036504532933051538282126804582936389890022376796057013984164043284965376513772967756053029049839744770467931593429407909620322526981895709150596074351101819584517695536781782286965510667317797186633507936590241932323188541205691841804786346592852378109207035575998467829279912698213642422776102191476186010807366585778063114290291162537158047888166471623412298596827062032449821638407484742715476606962406249421823788060303137887247408811986875463385967084967332836362864978511811401339878786424330992030050439786781659596497462326002794558893134742660724209180322114561579187767032879818885888380720673737295495627134306525695682320470152246520826214345493670756858087467631562277206454804691042524167315438309486247929368718641344776725068556397743071184176709201910978094817296030286611044322898944561111898772559855476523792669530827491238937981512937129365887171880351063123072016821742977358318691404022612443719624303971439136391346140078776460222896607020226307795592643430043610732157063063594259709646253128717066634889934761343605666083335218429861583961224134565674634222138836366850394410113874654056687269766919440809561127199567265386657013736197575147574734086435327873342486402306664276464348992774846636991789751924136781477564368065569520887855972465585936917359742987019231389021863260999376251585494848911250537609043684124501156652829347766946246059167121905025447673734298478375977008717344373333260872157545553366541095350676154260427555680491830869500299048472191758139435951371511151791276003030503750499712095631699156196367369481683587478870380171525498675185625628950648697270059772679939858825927789536898136055893542647059983824338050599950411801741189469621058937232235322577484086144680252155527692019461272807749124423564336282564589372916619911055916833510352826149208320451393681170662802521810395232850706340094709034531495805135704254443260047974367937409553820050006259211259448070368459214307859979176210950513666415230151798371150588069860894989322744630483676861737263973173153561845465681083035157599943716668165617943372169279980532192741505914532752815896231347455704387281434802482935912200086490664263570020239729417769448761594302794348759186575232328015232194694485054003311349529546110157720145867476787153718774699320081036292292145912716464117098483009255740083976804532602669297276051748645491527382902784348736357518191563133857553107910519774681888663532574777388545911997079196176188202712432395501238378518838172918402809025235355103818586999853390819681176773864804091866038871155151244024784737297284259204781606223543354239363704883572290489837941529962794313246466038119260353827424825891596209170107591737164441220948955720641010026544655850156180748724663008243244659103894430570124066409150192461542508197069062178272390812423846798164196365044352104538709426396498839871356314061645529393791423773827004255317967248854873159921703919367987461417645765884700754783699527005518838146151671449432659884056650093223377261255938411843923625971485501872644073381801899107941141470354869689247707060323376398874773461586453284431335711129174731456882504806956691051387240230793543990081562597555410363969252150967654662236256748845535654880578800394958532224801103854777745930209245812975444303070883993449444312348007356556211921806501767868497360039785359106846142957145718545718891956058849246682975861603618205169008522422471253963263688160177834681960055063700810894572529577958097161246414790161927829336132294812463517472659902854034712277846094564448618951107999406290125156068044333341018189876231727135430781095216622249830691371806880602932845602738724382457010102716607143820873844833445248779554157460491230435061325228420302421491389278240588618319662943881014813314163981741886917506237883050970807510941629934913286123270899356063607387941447897713692037417533610419964852482865213733370843339616273305619208016498499451966658453474017146302797112809038986536224351937190914279643512901357334506210194520375416627314107045931490091496421902697330572177551669537422355466351436389604455507686192738497829109971171850917213538597020297411458272987863451852906861684080220215010956950651624252475445118466462658061175060898393460442295359519817426971351104997876991034202677115673896923197656980172212925424320944565164749876058831091283577050226841913233811048016871978090090926507426023956611054676072555958212350699531205348972739797063293913902653062568853015119588207404974730700918945297302318842776038025402796298409264072102294116669423245701775311811239466487160358489287971055213268315253765792257558903778615954940987434131642446686375711703984735429155122447657052337127524084874591616006976197744185722870853214881999561374648671854812195575557150709261044054114767557639858726151449368485274971331952146538327554541416313630047242661384032015831063091592141374955950246820137549388356964446836020091339635059018109583121428309724563844921312404618909416531239015189402511853521216612446296436667044834974272429833326217920913377969097741967636129059105826637573052028062044046006748201328148975194088041042292339540258384733756670895416284201333280685415768234563621265051861565349176661404189178944611873777590500171741241831754084018022270865356962478561856513503794683439529834933974261401540365299238084832024601451944712121408562347258898453689997991043911584844018955642139368046258419928245137134878750279488303083716737662269273746019571687591317508335471147250017060462065545672599353856703357542222182173070695615174042970784876000619517493366544400383548647204080094269394103313628175450953512059736912251602737767253840844154456462357942469410792678681853507443717448609345934377533017159694022972297546106266333738235551930633584831405356340065477377199404937558868014738058904674544085885957879880576071508974626812146311632405214976820162781159591110185548711625140510812380441866811674020396716005496898543106327628296563378069440014675190132953279253926838011181543355959081977103761681395767963398090050397134715229251472754251322398431463755314911813115613199504071319461849082867852353008225135964175338519999506480161610693676160888488218489935806190999671164727293530166549359084709313263686673251139539843799408249199956974627498484996317246060038207755433593677836591042417622256342642357305080459091070349330843177701270776158681279787319576776375430953513594077145896686231550208578398683911662249788465536721999670721254779146799732461658964302020135856880426883480944921831044681066877585331778505117047111915201188709173707231881296881067734036329319481329307973804318753815849810508012773832671460593814741156140870383638996006963846524468013895843168881752765435545611301849467834510818772517803623434487114273469144207494090875557953919180703231441163211337378840673312049721890616289882091353014529279945059428391975943811696864798782718055466737266065891927841203309445109492260091057990857726468357074992388870205150749318507216805493222615803283235094129950025446335623812232829285455897461081531556248058948846132337131294755238609180550388339177772498015721994313383547812396705274725513602488143239815619470026023935520703362821790974905232293252158906051906872805182977447266871910454644842168034733968643657612639253836914887032349219499622566088837223628344912986534523074033289451943473877204220584139196628699057040148517152337862551681747450577423458407059725082732445543702663685284653800170733493543360232495954014389676530522975282700922765740321572545931251068913531161841686466134177939207659989970764719344322321167245534459837167793765070565092174171295999060536650845303151427306694771308763975941118742842548682332854390167525595391372859579848464549103947236982578321600423943867457378781873282125411626416679859987475145802774155981670292936042972879740550254951797468498684204355710614905101575042826902160318974509758247904445922261842964382077110096083185758306046090166772524956080913371708983544949336489006706351811233214490887126884896609633810918826502409647974336984418966600257613339129710235765572297147672533477848991551064945436174021158491505208996437860796111957475962122842357146488227396435425927072410925232154259820106961413577311063019870244853962998441900369057570694667393516336189391084375804625736330889494394791177675466750519033738299669374068698842105334655940287804285609459787420658606452734485293798597010228639378212752267380734095813348993598335925194397122145302393644078673759915941844393804856320587185860883989999920565534830678447289911165671332095303762196989676122668633672636422016942459331136101943885284407315944049263816543706202643626798287155726620498256360586192634306363472270255953231591610654032658178148947133702900719324013971944397400345803490698070358700775037340553873734371846342703624453637453835793951254744446362469618063550989800364416490604917806020172959102755386157571590420423288064566504791214245293203396344980182778973134994069140341927388429475785349278356300336802205254239617627232609335289429041587496211338145019803185775882167770548939079261876373484297311295398671039364237065604397553835119838916881827977647872825489510113137730327760548231686081280022423546308633893339262868478508587090053213421441289932332115757552890189938538943071990026278231329461007499893320635052671927789391516553512581979683096345473580373628846738066024478372605351613866628738560014284231251436620593374843319624414297752255509927228233591706110854085732250361446191596772141303207573639599825820236885907300551605388986231480143337452397827447058829745390338511379603457469272761946228478126359649772139147032245019623233476145561877381899711567582272792601009568701988275228563050290869727486287564166453014400718781684987454398691015971444709429786931220185858131087799971736163716755075279376146393701737432678296081698990357402062765582179477821884470948520687262636436608164263724071323881184737711164448335196961266858797042038582428277009015860522709320693699062667009205690073896854777576185962109728249002932145360185797069390670880824988419631186278691298223832833026536123230132403028864848082828115800411731219058502369743194184667417575863016419669621181038464496772786979609267170050250206582017944883202125017387239701340881015776335900941806528002726854537111139997110215415955803101966142305454206083834179258693397825292901314486950867842056503545664892436751017042976501225258868470020639250681419973924932262604181027589921038212608977879219840630949577055980114782392575120554727002784591654503057707248058035657326739157063511762988936983683962657528586588355664984644680291621779060383563223629913532732452622340158021072798443883589261663311145127345423788002661207685597369268713547674929270876192482319140775630230675306049202142966681586255730274591788428917891651059958057549056618912890457814247139185020503015193314459111512319564038214527563124383234820718745535107447535331119977215531029690781140910522135715278007106733876856288873231743273071798083341120168875911693409621509666500274069824027867488158750717978363921810442803288659590875407735181141780296529740357664576433319581993806362552752751364268803625442351540148982536409101022692654165102990370040659527429109698877839197799536801875762997109217315646535354950356003207965781575672242800998175998362361508138558461126482289714109646600648552235510373965714855233865228390472273562506972994450488987147385556782086337094589178740714892530303730682472878229358577705147426696496785850747506990735047847356805493476441869207482346682295022604456960927180057821485116108136778626344685311133606141344566218433204613076413701016602679079472258158960493168336608537302428937650627183995839531554892058095431001852158177869755748985063217796381750461749306713209802040837569213964728405567107028969337116789938012332004246957197364051979038371246426027456788465361112276233197003207204054582631840194089360097770754372841191826166223240271903107006206159336889090352042687604761795601124517973464433994279775883023537302425436122371678837976324569902328577226931758737641702870953422060062788705895433164804723145032664537321094137319773545691050987968497329427651873933566090149539044190942531901993100805173244058251596757807549328283365693801487324884170132385202339515809340434651132772474944612099382224237764782485024418283440460553567266034096079587141768693746702737929853515656071500027567745153651481652782834242312550791581692328977203119495662575896718156821509026193635787607466446363336925362873539369120503235901050870543384128941461543185932256801748127223174094932143411033272760611955738628569518300550457300896011558889785314352173015626309961087919119842157827006335747815968401189481505317089657333226008745295140721046106661615046026343557722102401266272589289000531511282818829284888570780692038083401383369666948323456726793940177869108581918857463751943640889640904492794125452960239369416682825506312793230667492366688898793988020247601484587490716795904240338303999187439287207024298702480671969061022214738575015717307619802488195881721708366192425057229871999862189177878384277461638586637799174569636321299273551329549154120570152532400679461027271241857241311532950800225624057957932785933902379824186047257797552349332541052981840611173889331523314009364315760802516796594496162678566407158152345974355322449884751602168079012498896717281262582821982312774044822768247739971256142102742207514413197774467645375424205662927976400224655570001412889164202490656970938062249681767419903470253083312072216662568316137163967548958362333834240553763417377383201963764427403082866241347485000361512277043480807304163117626609624529184917520434341507527219527806212886069418838842285148903542936896744235268161117117367073474004719315155632055085496915928052645468302005406314418811399910093712869517468723022404794648167839247853623323301054851646145901917541720634980375682696257767449225642531056286381962351318460568024085351783970452053586121414423181473168069472462610275991662176329115071163234650360275240120704896925106811401594027375629788034576183188171891237979523143520015818821208549283067889484554078773069209026554655014789565225369198190710256484229775901651047555550001670102836624713381571368974050544796795989825841948446627869772287537716400617673535145445816868973824837994682120424132553019805903854888677539266722126396869185694774984088881938624990773141451293405078153040787628587720608386153783262062234648748734435082108342663528975624833375221680223360347296630620734650931516485700429830065901625177655151671942029782198911951742319269178029271863115293421514005595474636193634967878708586759303778860024602692947787868168053521053122898146967005291195782568382264066973286450464385907607546013702562117052656824875629271439120827848156065516365397351591129757335112086532934990656457247189634379055028886354795364606333597249609973031809731283130583810684662582012043567675697424534261726235013178521949684804067895627125493831933858211717283904547685179406066327376428188287090327214312816731924133166936311640203861392586981006993450752236820612464197496074446541310489165170462343053664049261444587061655466774456090956240830176005147083053146568750180533041786338842601797979683172787070790345570907086101749216717926230584974679841985336741126677404604715105125881194552476596555992617250683240340089082682211634412110811330727046083652112186543006850800504962794851362745332846466884798116924817404104582056390966537417415560235035877701037518967030270137429857814262967365344222841855538338874779853974560066659123379251505530964943040066112808547480397100728524318672323553705480625815799964714047165053121482638008442848084308554024543336764507427015064497284959373259521823166964143070870894198516504205095960503298942844895777031967523581409784367315838651890249308135486975928833398809137229895833733806571082131296063816709238169924355204386351728672225177419335380326303034234685422622325587482826608476307486866952584116019257804527887209208567072333301087600541507620487137445350274364410636365626584090728947759648386512938931306624361903059709858951940156868651684788972272995027330623160509862167069824685791721868670649726768221338789508586770081796217144474721572737384112434061174709945666155111818884182523247542702267564956069051330704825879236380556999634714841529155193232305937973691494716172458284374690155060977345264563741460644812478925259449927193337201581827796056676652768952310974761351009025193017556125941463605324017852459200087041251990584775836711131927488988896150232171572679499254705258738992514715956347664114410484210881655075809076637433587401130216593127589152700413837049124575267371686850562995588887134534265236795284738554023591394868095105986065894215271180383369428830687868795195400088442065168546687641944805620291599692933087732232259030200557894467538868859336265045403212837328072473359357749836317856493857329672403801434014085950965662635502392030825585210389786273961555795662092545723592961992960928694734770288144499410750934228023026314493066640585358544019309428415084825706398793517663560129277691465108471188026588257606838836659768050866699474387642295036478264606472199151950187677790752921052095500633692071627164817202967278334489818636235646107704996449019059662320224874010938967570220491878637762034999164133544538493492641589195669291545555368632242842179601132683527870446662274897115773472477231602628236739335506416547757473923629324673391843243768817686419509394867762886148080799983915995493783515604703574861456826714549953885353607867574537687542503218242852913828958167766050039877523418191813788241112202271240958417659099303045633813811518039137701690138801685128619944374890482501250233053874289383831779366618769438527832201167280227520646858861628731195763631492309620279878513226796785631334513665585139954674051420371794384282579472151509372222603786452863697934025617193784558253623554736129170867417488473796823334279892858754317173392900909300458271391878341729676446121623490573440820957619243357246094350746685657487032960582026038746971081475259872474569968651719883689697499672803282345669721414957796368699520606250362400208769093155890779865897122521721741134404531811655453706265887451760208641161169455629677984077840230925780665486542305367138746476325150202552543022720184113301212096334672233496614284277667924229476362346033885381132117810070512374071583137457141740209555439887609333230139196283768535079261374068221964667150621207443683289632087393813349297029129049222091756946607375566801226437819578775584571573304380055905861629508024233218948506195304465862214606907555949654209049264940876611878137334528114841722146015629076530006349043233580502681919130101724498077294793239660938347554686928567313275774865877872375988011571444400551317565152800317732481151004557992254063258721258772740934337398798014964976240285777826251774594792062312663818103527555502831200199111607727998688300823370856006114352710727031204476552336232320036676790056295392445801079612702312328852818802370948806506535645536598384382488962271476172204939131151724077584847701162005043785559017881746595419827726615111220645518809025966814494876294678338412900687742449185718715631690226750739195190359968249588970865280038755550964768238765853202315702658156344922456299871455009441208172322585523392828898453206611333402134570361789622889917831692374589128407183625154107122472454017593054278805925189776548164294376797981165686175978081955686553811387542589309979833773033859371823195837693934445428369945885565422469833190146385481758613368469665127457507982236753367603601397872829547226795638751199088730900168852786832641772029085400175326075236042929779807883982431080461112279353197224790919679448644631392335102214507677365235285960191114350987974080671506977412572118111158761674307897989291822625024315319476901048565703648142985414732081308951969923278019601142403403021255678446851556942795739136279288204027653050093379222017181024528495019442437203225447611933710202129809056483420760949621927173955506999474327296392946796402176074943841647540173701720681906969603354594984494604917635340918490852454470446639911104013760557233417813888602604143373199745020277000522293859956929607099037937496298394765209582477573676016582552461960717581007857775529017636395259616603059440101244669488930082616855527625052677207722789523745391091305940569609178835970462775531622296925496383356027466131365993757901492754290994988411838929720828328772973744897405516262406442272537360347584781341949313182699849375624834635614810743220449030987078546247309495295950966048126869326483178964038390776834222561664943037747426769190013739897230255409728165119979123320541608970677530505306363241379608976082883336849291842874823410421669888752576569806770820770071679892678507919492597540962741896654925633919101171734708239739156357188312230923371337276015647719496552434360590573169562109844821062775579716101504184913898793323228512587192172415277820848513595858148370393776559757299122706588537707945108724770510168726735742388243600739850079696314344379151383796913442835288369747705227470265200349985868154743141055238650942466388554086777474138556583282035997259032337606117362745839347045758344006672292142430500701879694547949298321128460185766722514247073700353336818889037395526158412271654739426463960505881247746130067580937990071096539868482062843549634398381212391320434000414343556671976419655999758419247028818801497620027886851868387495772118663330137263694126770550509847040302473008118015986292916073700323877810162135683958961031821342623982890970290607012026943705488613567618893336676340464519222909581585298130399046899062060648865834782120956340024449535816482021524341260821103197269852859308681450335814767201366584059008059272360486599775159632154408017635564641560876516550011828780394321667136325178501997959394228201694004229996144078835533606653301872963398386534060693254430599604005247634045626101477614606432931399830709825585530407119545260589671847232513305494878284312612188822732807277141018897898275992363895727366679185381174061851693050033534407564240825326356465081554035266936312441978696764878689747142336171107943320997722994322084929574170298858632496817419297453488685665606330288254814010026287400731942262719772927777874090092039973637589144429399671612044083817319745338271119777015265441333662687028374529855098419541743886637658340016046224702406795667017363050637968925256123068569055795825417019433201506431238644078048609267325887153955145071435399150054108354335689936829305084408511141648943276686201327487643252212071566156164918714630529391693306677900963116488611890863644320728861178913288067216998904332419872628135659537810673756804377937982835503089581082933341667477452955377577536765849680870805922219983813130871532359548704270549716035834817284146479010941568941206423349109363865325302650260418410647413476695773052101292263900138078161446644291326921417912173281077290702578253812218105474296159497139419912265234543915431111152806189006775419441873503768354328580356014880998430962434587348504451454429207358241833908721551418147887805105798908995231342715565536829533959545082244354229304189109685181378438759678593249335262638256002810183702140117597854900760453328694612043305226812171240566363092008152352628223679958786102562505436802795232742342161735298680148551847690502927829582809257446201497303695689931632349773371482803590628810033729673561197963096361170546071586165414392133730368609242746438713431772166719094015876274804844702155330813848917745278782602007280839140171003942432453815008682599587376481793233565606639746344505540375557136500803682594167554197020271006154665407772183828718710644643124203603305720860919892385231057222969348041813424152247907650611528769389690550813486901701417922408937188519140897806868024986952599935635189300871562294352696288226675052783066096448456089096476300339763000514202518375855584365309083378414996164239250634670148054931867559267230063879594498234920280841610960689370787280807984436580859799179200503108217686130919145451573230886783761561904511366911039675304018494177901400153412064781744271302208633883908130537658449639784521374547535780274337646344145491847493738205960072049281313193208536026696684424801692463599302463559613724924458549738727540081157862417235244676164435465443330707591770328791112144587230347546521151366086619016192924184889573270967721410306575354154847457334374471638616316012984055187448181683129195930596471394996728407252053690645372616078884022599797022530958357272131213717438176483250681968149375449507515568600985270298928799814568045097644302172636870799647126153655003197856453256175416423478322334048210536112052240255584914037765581309887908228301388298513761660541245741124234518915135636679554788384933129445888588758005122040235218273852264897769213082876386425619819783460282679222979932213555103427457848274022777880654259548915889566042851561792617172990166331534395455821052877011386832802902115950867960846380226858202484616949740438015685886219156179873384625736505969206262875515137453293975473945718902671190115507282759721746038499282105058650404630130328215223142796826531413489328781934299158108105621760267486335960896330031534416217388894612940691307185502191635282556176992321662689053239288184215721922407933022866714902905571719285160562580993109291791903204864423213200575007284492215326692653937258323123344799585019345286517977819241519653166957604658738903811259971908067016213852020508490847188904186211827285486322935912440276564744635464494407829022988901802735043695980113182874388733581947748227184663879013532845520158182486179540485057177695233137221780573982958162973775134872310361666372709359022883787859848207865130025967883737428483814983509398643211469902026889309713746175678721537059980679897709732951715412883701586796705566125476059154330292774256945258357766967577895055817929216671926610506264226194298006594630587415306562867403254758125231365671777809799855522605998919272160105600551327624195176573307627746118207855876495769729908414687609916503342793010367337884671679436551563570023493450223480978087337289573407947529164440633718298382743548004175714900025504711695373681966204866087733749207280425606014620709225197899346435587340900873612268677729630183567451892914667099961694399196136870639076574662067517861672717666748727903166852353071998604206004676163111403146860688681557738558655488058751555670402399341168889134938532337250554447434474338624849019436949127587937038468687703890229443827446387725707238629898723653921484929969931974390414741299388082259267372623975484635434730441323944096496207042398842645533726831543239251847736611540141380001034346001191416750190424539594564383688789086023890266006682753486267545794651149517027602631024905272350596684239553875412793217161807178927025867563488519371313058764625065489584927161187231486765274472420845735422240514185001229802695358258040304120656381877944364265056502980271403909400231634734936505103531337307556286288080234373943812236657152838293256442210671219048982976750862877710875582424042674428256173798926517128555094922900230907324869620147357365097694543503044731215878158042110094126247320438771134183443548350557773576350097336436150554979784913785210056809141103195074401880058292309750499301463410494682499539687730331987510206561355740839331641842380648560142548316212874043745775906533785317911494235313742217597385111744619255170192128770751977076148075508201081752902696982938712254542227742679486030076419837954998518076204536357790625054336524153971908036705240359980341727727457255077053857228849012987648809648018836626905817177514315528357275175469308309154734315840540790612763204317215757280607054163827723219665455724654831903746556829022428094541630501902018920730082280126851307302837004698117556482070803688849715586262246537150372960034970759934009206739846142789674019451100341543770793640050236370599302360292719575085854350123390596183734252686054612862583773507357017023488349863793041817754723801241617353277483297894503161057622405339472585878068400633841499364090939850489807150331740741762878109939460804270167667320618289583481448239350039055142883159538445092003830437608779889275089935542023302768567637899008698388603597079381082434221846968249285110079689212552077257662988651291203080697641348943974782817024612828563631667273252295811689189948157907470874888759193820518288728251298607653940180018210178029106170038018307644910222946800443809918468317682607271689181230653949698947827545822359221143023777619203250701850100614857980097502475888808166878633092466174634055257240634606133025654853881469319063733161939356850774175540952609065810635680452589175310436682690803551876465584555110489135068317856702018198442125882247341100852066944494631612171659957413756917468414240036655603824915151468348867104657906472653289658289515491687304099146451049863044462817701076013812445828676348129782182285014550992642825586547698524278398305363315338976972597618111649556594423401552606511024222632321461505263149559222163896678773411164611501719721924358547665237491300250177795111470957809791314342538831351710766526489702968965480509817082748575303547965887833509866377223895151535301506581230341771019021413102739948306046954916479396335336921604574004237540426695213651785761452961774725581704459159240076289614867278480112079094675447357214252630608149706811722646383250124773248748091289617031186607814324465058884622168940682986323545487674106443510003373083961385720753701280702380217673896864349756896011226001226980247535526203119977371347611178392566643455198144899137442126736347562450481044388991384937424719662336818229833169129653230500693078126633589819361850068418846208804649317492641134875064226922870623400956358336237966057083244846496538815128619287485836742796828167257819028057848918892496059925831078864218476625051662174597682777682548397196396290683768291304360119119343277014716253278720025492690797010142060422373569973060212241209785998235371201922785152159539020096955205237048821839622830570457457811132305431737274592138590424351061163106394266624668833785679466698745357525948674919209842028244557201389675062875887521690336998322107623851628917054321431115611130125477752438273312046110552701104193475826195827045730662443240416955379046757777153089078072846059812869826327966286017419849881451016282717827104007111111549385571300611132105238411920517603761020966458227395259076938629792483939570018289826563815033867139991362522230383400027930670457956994929665195449174113042850184482783933972150572472106334471362381628359470678806550894889493609716710389259341623642495397786412607679119620639203290400438952794864535784093942271828171500096226748232281457518904408057005372053267632590365658253543293691603583356880350719566434928788831101982022938477269009668765952194695659656963690636079802703398343143765759837642375645651482734867615296195601781523490937244472533731490323144215592558125878460189871380078623884342215222913680055415929649616378534797688433174224336411764591313537319491912812396789467501971606222963099531921137303128983844010047237836870186458907288646602953468642997634120387708654377386472096240999987962120119636504461050724334457010008095646563796515769546184675102899018892138102332427486356973856999064157320944799082965683047574199288094320010336904524562846871587294688974599877551730759538826615878965206587057231543657324324066187166519537113294705101377190644636256057699626930216945499634501957903381714203139797926962458988263037887416112026016979540377389250568405480204889176259937070001112700542507414739768307955582882045532971658826798958990970033200191304778718038068264809341746326486631626886627238618138751283482736438148406079498200185058701131217472475642900426202515737049088900264733320335801170889679575573516813652482307304056142919180302487053628897738601092369813032329743198614700853773790137687252944680085281602961173350438806830860309125040435429241414476045478699952974377806976241836981109217841718296815977953120230570851671743756047388975035093590617784336741225387091165859119237070347247944600379773364186485189624932183392047818891377879283913451081975704644341049378763864705459926048445201220225222155300079922928553323515332545100588603926791076389347779389226396224661771983925578144206788841144801507062450949871005955937306895630737873625700456395168008972939988891105041260168842846283057818678373715174999888107148388562092905229632267983454785257073122190886977725252795009235822913965586034249205831295103166075478327576477746494266940152420545950440979444194474310531795475879741079853151609840939384773867436578874916713622999967192493844066639608242773308715042610265213981293247901693552314500752441063678876950809022969347458655437015393052268740327818239635316291896393379541592318177531732642717420747756665340090661481561550635475032338988534477711905920171319459934871074641625217523624834470753764324064515868053192800990583178488047332833570008572492705661287567782091194347468216397094703607408264486539270109327112453634404184262460101940635409657362940134995326686456223342722080926886214309488833504911809570783206051413362222629112016470302329005552297136453035827343154190619820072718443739179653349840254381625123228661569027208407825216409519200140585717653750550638823998594742966558388389042660263141490675514497834055834056021737751727445880424996529616070902118635723948170745765217640599099990102291183746284825306394267210268662771289317285049140477376240577692043954265874335787382904487150448537616906832759349556220314332707037198210259635170367440465644846956841899800249786414239432106903929748719416046897521897880372957968233575458798476911833460670543385210493773673251132889565195902305231721575194914609486453987378090670033128131702508818236669541798194319565607765988508785868753493770750657135089746192699963448378706938255037647626642397762407462603606804032356029083747818628043468932011593203201682962488559840363690047847462337737820417040108777778489301078327420728529085395876267673347975113958616367433281932275706429094275204400892361771401463642914467110618807663147970566031574970114534448917339401742679764435284385921882165778191404640290301058626479956376894182538572197768763950519986535107944474797819885933574221495401353271987243423548762808942297838532260759259829065746656321910391043817447109669582028880130441626916216627249524046620107180802664105191852526450723926132282156314453193363304299636098898805033020998895048220583257251735239379906173455782920803341158405694645881160341533868309813886325699633268342423205979762795474985633556962090716446582595204092905247770118250124348731286666445027284858021426964673558940842180705137143875870978666561865418870276556263608313317412728327412785286320251525036415803253862087080085469259859744621873620466583514820268227960344622415989602254011872499535548036064796510989360591921456477173179777942496208056198199981449019238390754590878735141711495837619045074787744352515649331409414647788651797225244414300279689873501622437849386020086853943255463784488988349995804410169497245747556233706712551802021329227082411102739381795905632178551692772872616543841777862136040897403580365775471563154804222575100301154686634100943858571271836899165736283716174561852334272644500801377714244046834264198824598185937352995197223262998846622944692631587726826014370180860589442276481531557451138544729078431412187707364101323669541448324125064278715510880880284933300315916563222232888511599097175903082788093230779662092681412413729088980695938945652573316862659626686742614870296450414963289257568394675027098510684739420562969382314809889985970547658785983145067709300779080291002195115862401897205300790004637442761702964568800951564618442407359839744339072279552603393409835631035326269722081459968429642115744461637969802002416480249339747286480501686861933505458360514826252110714542152515954062621464087388646663282899002749972871794082305704459473141929585707259455302746466594881911529530173996080624653866287092010438044767384039209132703889146409931965334827152600254265643618889504226334678842119012806746639263660225843668505996217081584500531085508727888174115868651946710754786180733678284383423397280124136236277575477103572968410762859932631652212552470450543560391977431920922931254472196165383971048975810934469268395240059753603059753545977639672167130280225737073425305525545117192831200919663591237168357998952755565308774356626696424200678508413252155635640456870905831533279856250942280345730959042083954112009194759848098631228325551780364424871366525778842868999042816365687024042073023635485371210532975934862169551204568721285717822228925507286947670621834453269488351511408418527478834678626932357117858832169404443365761665977169360201326731619164941217539557590094590233873287173514777512509627342656362702246511973794308465316226474707794336301188815150966302711603911381387906559395761004644413234406287723383822532143797218903922181360398759139672307071041971751060908175782533109160062865793385527308411498651019068749485106114975558072039831850519606948895840306123360727216472630113380382449318478790504997963099716766076924732146118701303528629349824771363149054178988628910725163853576712476803689937977020795034851016820097780011003814648488156021936093381071951912425222914917357895305632147668579425477148968094699626638223525251286810519468404905124581731720541383464364268572815306477135712703729178848652617990425564936461282802372375836484208991487013420074249158961593483430086588108023245098452760224551797108730932798954069388173997712625066195208941874352239259234933369109136658570035929592400313886135508773263845287036323278442354750818369687344327709970658501726714960198978919030548828075023874631971426243788733618927079787182026038498513887761833297263825179579906248367450290310621075709372026320512422658536210314449208067111824956954428389776498148891200212663362374298914636699885708340839863036582047086577303571844124995962271911179717866883823042559454166041832378077620426198518988231754166207060113404776656237389895686190359060739484631324229821747295181383313012739299741898664649376844314133475638877012437092815436760198977706000111988097227141325269388053898202239666839283336877512872778634391245542175203905288667165748393384932598699961802711518443411156752516090214238474421271705464848097205137628817280316215581213059192403716301040125475424205140123392180899119295563506646064047409877843984412828928037464808309556330895950074664830341387466925426406074558291465882249089358679906527360623624845891282104285966094091898054373584555745599236182304102271032294728105679874975191377321950898841630911031965106795750492729515438384237127587422699359300151443217319552455565029817433158062189800124041565577985582586068932879234545296918307566200328276429090832794741082232701339600991482644452626320275794788469280951271270091879523070455527114784626834210195627156316602307437740633546234515438166161272327955878436521539168447480849638355783333571416016884841869665764388916263150767583710594722925429372205080082117604512766417948310783876537896362699741171868024798074297788627405443996862909263774641678670274452643780129592888515736346896292823459207627476632262836260355430539098158011867736100802420449240192994406684708852082084723786794528819523593490632583589110484088711038781090101909619178862511939196598049127359932694095531106893293165059726313148250100455235717325076291764701521522210731484447672083945764840827432122146141220855841536303230613740527322136032769785984118574825377949818248374923468485806183794214388470372685828356579181887604538152174372444368360557374834780524541968574701403263544352926679561710105107862816658437824033348583336874777473140915925310271144758342533238726013529167132233082245635351415106123866828625367463517132783751764196166732668307295881390163575305086655460200578553346472501241354524974297528510313247668085456362684450018367775194905346003983453114617682818392226427741092846330758417140897420429441312857853265879614315406471408173578262012945593345634794798600308199137156281874145301655967001382565398715279103353119858655649953766795730306890530977375540700300354434061499971247394343224810665589244221444677146708305781222532939209987256621918176099630134535819562709210755767173419165825658735799568542052564256034074688572837630486048889063210585233079839297826523229930706475860110707812835997400570900215122124387717381578434050109798506242731675470788913126513147881239472686471438856461603806122256751175974547128399436682352949402100034566295943087142497427636136598014768831989735529231773308854113118258044908220982458062968943531945352799818824926741003018463806763825736595310302961641654933010220004967852721243470935766797778552492339595106916396444575911400861605999238189852613290693284152223818979236804281021228706674498923247407482002314825827458439815991515730079716194410470004777683918193333774437860930772664812822796839642142940314687402571362703999528342138853178225279947774190617352186077426367046395760239388237471088055913246876284427101494526213107637647123405988283737679544950286656654801460321914825687541391515870794299882527392657918700183131586073777226981037558858213056258885873042153293059642725916901532777650997422598109640361131821281242810262781771441659519680493478892683811099263261688381250757795989796282082288845138784464538630404113001624593883080585741016423480165696129816254780321806446761084231688324893352574008694319842650449790067256761822659225288119774656760739703593935065131286543257542839514443532618842386754548267134050971395451835969530104004015812164580359893444674763956713201141578760552408190017815192112092223290646306122170200287142356804668643680038375918845688034877115197095589769811444575627928330277752157024459404838835723550125811830984818929502097660970084343321465786132473721739803504248154360315637732511040906645552444012235387529346441212681520155380037452191459748531794695821876914489228404662629767957710849291464212842906338190044150092191042493679054668295562731344189593035849319000924489792167739633700906533455402314716787269596637073393818799075240840107058662918066343388503252567727961978172275242227787120397783646900813841152283394743428499874020894366980797302812950493554366800425695574013760439004942475677366744583651910599314732156569076435581781416524047922170297509205131712194024048387761410436758692965598844605060453234712959665676469835982577969311654412034582124130382514614547495343878540624757309267032843310682747419645947324765593570767029824566752239305935966681651533191353994710314093990830896669475219121010848389871281820803437839753832667732558209016995766666239625874985806771581475340757911439807498390170143741056649210795069928875253254210270496144186827893205525578911617769253379015299053416028149985780443438584453093947005748885582972487828453696301159710456463484083125579175183707773644213918013441049614042484407491754648323694204134966684658517737980043407599081501153553216505557788576355078489393110011740735792779679900825575889588957024287307417033046921498860411960080574629377854429947158590193217428161419138708546698902587428981962637974357677745722466981031799672558027918629167420271300813558023841003793829635222960118789901268763922519536221992575962164348351155754854320459674841017292508088212249880317486341725634687571848334443301965564832948777283024643597664561003316320224863797405339804667372908307206279376794791737820087799634323802220189417289614482234288485248042709290402982295446712814309178323170960704099212168319406779542344933604409660017163964966857124009943352949000422634586470421211402059205154900242639138938922136814825311552404072996328509687929869977500647524836007727831662854803945482793209814318853563225319293255395716462690471030773713767526726336056039663873372794585047939051791259755438529153060679882243699188864196094355141457503963606797904092699708479134970628357973593219481208057437193910825959787499147860620476102831441421642558054127754483429808881425903892874239898296197650744710768094224038303155298978227466447155261478301111741300943655424294794893711313802067923128104361406028923324384262666282384705428539595098657493064390450575092933126337736016926995987007718171352559255854119784807820133056683456604038659526808538150050755548120590109657197788820897524372932828119592027367232181938211390177335567516503017000722550974429966086859435767097823636910124082973012477650583927729132301825389261527124796448884814138637454354172520477743177070290168174150133838627917617745995922273091464649659894316026452994415996382633764119929133154971168109169300178334021942125626968635994841299663976426112625015509515199502666034577513006723174346543642101179955530335825410234568921859875076807380558961502535285354279833649250347465534123726824412967246909865005464311471668583524471776483879672060923642157243993400921663507315566252372128318066090238380077169317916379478588712148121496212631995261651280358746533647144085970064071614442051928336435281332416054971601263239010946732122156453322829009210769470289931161313659625577673207712754208800846036844252261549089817475229956710264057112057737511275247106355892942820303365841168155207092275562307485077807472186191729988345275474895727540521337025427963705471091632266822535504679304591976732867678927245525181044825210162778819442324995720906247304216896279571941389420007379527942034796534865073837058428609628552963450188332717933618250284667072826143373359470168095579109819743916468701225559833309923572304592201707928799491747638929404951991523992196908411552080540648543898410879446436049430245516775546503425081872132395052693679361164299997664134278676135569209827801545313355337434837223031703501404245887693046163325712158035325802604794721907912839888305688605700651073724040288953463017905222799307956844859623976801519590577156668513217648169201143852985754016176281138200753174331159248535262360312535265992356778872480713041628264840763101357431779929208266522868947690381076339977157656005290720485335832631690941478512685804439228958999760265757137737909696414441066930065661530129240796474501411202673201115636736870504196533453260358106516661628428402194091412142887609907697419526436506944403126426785083510406833988279273293676983243864855667158404508799775244987682915770718193803985225180478109987466638519229339803027788891025993900494014936407268293533760729630635485196497641575342613130113258737813762540600336928293025775748368043069239491131377752600954839216188608766957497097962102201174289886783100635773546564689331652474023775284449296962369164271059201002399050905348265292490419042235262962292151826145250234207394630856440556196649042678965727337312321307235779995071933934679627271447420732917336509083374814209618111267013183711159770729327934306836089760292269909903531323085379743119709931035471825922123488828526395116437476458383036636888644634108496461777114536279846320207398371365969193178576192822132135203716749723454427796320730822378990984291423192620874720424559450039913928400759269036588919614640946823148832126276032600560881138643333716704508695326424070492027527936817649517501434292797889123553811945452382390356546737674536996618217398783685792895800187345339137551054801273295607713162526280821950160825165559272118603297090112863834014934611962371748150767683924016446329933934175972409188729399869318202639810563420991853644197029877551326860540746406557027304814738427578949129047226527192605283786049892045536216220570624271019936344255127974493772782407671510108553542688466646651556976498120552732671607629610664347151977577400365246595815668679388226384733389129625511518702617249188566189514766333825920986571418766445949920358794050293009450899658346959517151555728235851382269412936070554904803413092935042378132010496910695942691197920334151804038158053765479286040220645939449457766051149984828049169169869209394690505962614714435388147066966276201894283902681774233551073998581732945615125850926633579673578675687388095392954841213074118143411598644019391007589550505377514234568204863763863544124044481597390843827014351930615288783736868452157543194510398856061989666229784744742499711709397610629385772618575713752614655649952677446208000292920475074992693266377394135441512055904722231924016630450049684881698295437433444134893097345166722575769432697627676859001798945344998086397284663538465904370718189000816823283605525227763302332734256973535873556396112850769350667424275168180676123139522871152003810469918664851988194947574223116067796901578726382585973464496361819206608046953447685421488657971359248522103270512489251002718192503844318454747772930982617739686432131985267688731331784629062499349953267002810937968811392764266861705832926940318999368836990955275949336032374590478724857887106281199364367167168495248085860805693829049951285532040243058094739034679147744171927663660550966560137041156617290450623187796221399915382975485594656473986462653902377524110790691852815338332103723787627118339583563333987059488850217836338245421212606425849455141026860216696109550175400783659432940703728497320554204553375691801997650523094931721878245794892249339569030991765350124047310196921252049490664909110305470710185938125598547147731104871201656755552033263749929426140004352082915173442746424418455887952037580320943699240556270017691809084818560364791121983817540873845126179261024314734518390024798182623854813232649046142325288319609977887312524620425270424459649697479387957681241064690109586542505011939823037878937588556064547355985359613952136764103958958968767439441908302402547127107578573568778355169686749841916885031315812199028732961480943910707916620529073874194656358005097142906502478253651434703219750244516279397666532443212370674359489632737468866380965787976149770821043273672080878387993807192427530497066527908943653164718861496200264788470438305946827717696743848198878855839506985860041452860450319335094562660434781035823467766868494268419884813233506746355327897670795249423034147970836398242375461494757342884499379051845689874522658208691112829624122179393563780679445820056485848318503983760732184766115580285154598391392563572255194440373375402502468186139035539642240326502955746937593720011346316590511125656762784127110816116913824102182354410396941000617480070344991189348690114183972384459563522959722457009458057491925650390659565856993466415404624517555862740971651745948564336118485090625385568304025579904307097009428051430681431914963432638730018341665760159265010689104142565321756527574772806365832015749098959061232678827603333324038857958608561384635499422415427729294617523556898189234327948039308892500811423132813008092672392217452283610976854274323861343786762949449644082287367335271898991890802449262245641544853570905920986228998120210498156902393539689635389200622968550586629983794731799047282651016218724562605434977327275740404384983454646040674807288351495881291709145777187349344723683105585092701997552459682037239402946634899925007093631495154347598203792397795481604512367608997783820961438783395255563579440185081080381278795636949246385023650794948860212357476640301288970146389403740097311368599741810594889110694225959704271539993807551907300513455059719357886919747744601891890849308285592203742813845022174506079323005492733348212239520092405034377045956019569669107182403250863827381218913486511367557816050915360558550739287086309906387320483942684101708247224467434834213175370022842389119554688358699465967823339645655411942651780495375845189734360155335699481811225278571648414214546286255128496621592135776774195758517184229562500559295843770186763249822637402717583614274682282752616965134342236461010736583479655047694647420641752056682646507238903112294342112401653846806751188217358382904177571171297644182414424844757522936438481970689446482775577155495541270936054506729557087538674767477976445016982181684730966849143063785389433493872808711919674339802358010484740321474065402276436246084859977474436260389585065106961497162257612687797338320642456466080521153765308359802734735818534273935199804422718116689030100828465365771703591569943770539282747012010562369587949783031264441115175705450590323121574094542987975745058731898564131897772328929038606492818529360468311449553301312515956368770881934207328858160594334532293378141470991819575392442216461142462570558782070966185098599203605541433296134790112621295694018195066631702398113172251009219770434657229093987095272798856538576670712192162326919127918135039860194127940926742332602948510392454067017252775363419654154584907577708726839612313921067788189669999061491041436419879559150087902500789956580174534626798230447711940163046010925769342237099266622992944042015934706139763341068157791964504137401441439055154486421798308964994736196101620534802139428906733385994019117110034118589194208265577064305630239266339634642234827518486365315440055909055024001469082203612106588263156692934291870211873435814179486835129908101517274646166318784979578622789565163884092156385139612643358500455421243328677649608805875638281785813714284948410730858398229024014920922837670109283575001595677562353919126712642129115677350257559008890601403368649270517893531004535929566807197406788235372899892476652992132208162630106460168096544772360554778074040936707380518939567209131996879444098570842681705271527730540946181458577841806069233592742105011210857028839527229373954425387152527336486374502127700734833235345525971551634235887546101821182460421771665629055935863813457825893615908564385621724417895621146202660964840016596422601806149278098858613065096687409890213103134594333319507910844342383303938034772639149861623906936823330569218665432870616820182448810246937336044655450118451654411341566559192206441675562679537995494655880780757470023435516009135115197501180715415208491044017357845348234332659560981423408697473235414272834129477709223165594357066166244856424981974828684914827373143779154924520266700513764596972272764108900530208825612539969847978877303279952059795967042084003107849813211151517921354218075210802828613060592140584856762819316616962222938985393630648016608667877718047408195568238129865918041612553739839107220287745177475527685115081441085160136093270243083166536653711386847378940567413210776596274045765495041722615191230064707138172437879762617110535772879237472545333996268374451699830336836055099823026882775181817043188752784792233891545903903727570696035710428103313987086015555117491351690529352142997127164393478718036685290562271366686236980272197759834982728446356237443723625178645048566292987795885227210419532719218201169386460745823833048029914581496944636267210612797656197244143386192539431198737315022736752665710130380946501328799277804802150103183318976151291687486222210302294041895947345416101182633860671051790193588593119969755504587978627125942634037729925984408980971896238706078604656631267803976801784624877550080999946169591806129544782351563596996264993353904848076733333794179481882940879710382161319209435306903831047682625242306168126331034675711330657323419495056980247069188339054693554247318417387028200625757077889980256999792062046159776511441040540061356912180112134830274217261540827719907353285720603209371188407806369910939339823482735314659914891585886040103835648741956382082009905474489758913553938409168702050187157786533264977966239599731600336088730846203151703607478070287395686489817509309958366277616692742433694006573818556210630077263608824525195857282579418879194609264289078393296494925916080458006264254397543821906720492278628948213389697018509562914740021047646978198295857186373925627488167147897951983806676195277274606120742756295578599027318025091728337999663552855042482942489249597571281067162688392492275212155135198758431819411329604537777873175024223223700358260787325155220339893021248987950639666134988699629433298465155363908242774630588047764350855752173311357322702126642428389443603134576067402705357089755978167064156377651619190769305547801168725465914264068702818208197774941244841005185857311085690626083692045260491779096504527093907086355933790485147101885435489607361381296477170936854053425713801196713823861551710751258587394753156100623721552882433013521415306325413740241256099550616095211968327574159729728387234727520991644719651324991569490759153651337746910367944388593282379352678574877836420012357253258192755158605169012945997219221909480527801371203767395976932286621407150952174011950149762349716890681318171121285306292260591204272605355244071273782842238144786812076133012469166807266784894441971976044746991239433444183586645406660203062472855937680939993056441626490969750793741435492012699702838809169789683671727143882681269514606262432815363590117436103510411094906315323965593527221460206656713500135645656730411691987034637102132117124027591569788818317146893461145209955686968588995693925714514288669349218727177040872511996893212699080046426656693308683861148893708052968089785894069108327816525051704662486334459510440593543225426212389893815748515568439162510563425219868959224667897589791836184603715507792718411700106094870008451844683441728438206978583851713966792949099867388677440365196555431995275261752469312527822210184307826066896707748921928652759166398242101751833269501769859586780593287886261814621967759951335606685069282592351792032327089358486333831241803997105829321786854466914432918548014790510261866924624032825804584543473186205249931007018172889150719297023649272519875176110944907087958508448309704984608902763505779725982107057557093221077444159375219563977684133004215102735487769246385629215420506341084027360203751174647391372042124715732775706139148508847286204165003025141841655027139952275246577135127846816513228940929854690304850069752379802709628436468191568069277404590665360682391820056770972930295046218367673069411096420717417093805851907796210658267461420569772738175003807534308417149794166438279026934951668633760484462695563321510340656039128784246146276564242878169398425696061725084501302709153616505817866527360892335944660654980403553723094154125682058210266025242134247473098619091589841187772572865305281933367746966925582159329503849190612636817519802129899777103091533048978810606876141147863502831915139007287290194816108122292766493012952637270947905076228790629952284482204043984645188558828490645329986939238785587385233610104042817103808251785239653085444614077409325917997656395499167090975567367080745466107032240980919826172143144274157145262295024722106914374525814622134422761218565254826192157144238884664803590862417851703999912799329024305530954290624831370289652064538657605023149598416674720659065585544054257688847675174440531001389163912651805775037965063737209519740692383712862483766229519591992755802026947949711042197587640387767135718925948048104231899406334459123535318544496273723301885721388417311950175659082989921820437982534382889715904777536751997382120181724717999323683794930722371954302107680555784964049743271018856958214947548517866504206827255664081411000547812305119471646752811349988893449635241464836819031998529564589002177289888294719478759232261063073000456113484197998892300025583963212848915641746137480392034652384011042851127697522199602034497523935609925558838441383939348245510407118265682646637140315479290825815139547234681064926888421730742304769031464120171321322333126377409300161162555276941588727217876370234943047744988515033711845008948030486437047135009718986622347675734103909934009347146803693299667563495920991598476325591800278409030541232786881561815542309784150867581057558790032288414637363377428247659989580317706995954764215339180593650780878078524917293920017293681062650402963643701844376934489922214962798859242980017398101047778574160169160032038804826156652015025217690548707498116298904872561465668666640511327153491004284967695891783230218744038423852169776920715191617934302805699490435111511445390744096238847147553963568457672778202361490092766372413892806371171972095770446897406609834108481141776987464000851014963579567705489308103412135410887292967970700177306344530774757684846004898889353259459195967496560082752697940756320925932075660657213542425739937653660047461672419396352476036351831100183779442490844355208219071153985605476060660310457308990054006862028363209272538258872059148307282074202747885058561137539855351595063974298332414939540859144237929879105794996688345388306732664760695726641431872723010686938773992722961879246696989032063200683611418548546819857377449751637555699651389142746384069686200546942328142799559014912823918467275997813158868009971734166122119664665673953896186936486154663529840878223422942676715772683094432530041581413108697019426076990879748443803818854770283198453332703055571001569682631025866207978550899641924218430811761294145330668004945368751418224441339375527762281118605197750611209138609858899043352147527360835374675093814463435291235492454149893983320043505331627434945015165487925939512598203918658372980133782272019201549763203769441703918274647259576569803683264559899193645850189429531364487441553129303508433454575137444576532312536903537305050196592009479855580283137410714500741418290920033408858642592167308060885850120497231794726000035989176022830810586185965899809259356290777256513842204094358631444435640940331740615721015230879520561924427756051646429473333371521896897433900547295563393735060589375591379748164415697691962818138982982066804585415216008993835803926245708826412434580439625338408564636246505252335217806698993830327571805670684984790317246449878771657995637444950368645248693899021023155329720631934019650380386847579990463133811072439118601103138197530895083710974093597819960682360745940740787273325894884175665800760185647251102225368653276859410282045674889147559687356872617139253327185653942103495041156041940237876423012582813116098460732466424621537651994776012984630380889831789333239914455184455973235153019109018143197011056051270865601876851379198134180615973547580820580360250370419127762023762856155354932916829945846116866168913542961919230003263026175793473102452310306371567352580169209873500044242767434598503402040963191787489918852278164417086287672334312292825223516722299951773638318997671896426457398313033350345753071474160981912118207352531001175005593186344251319107618764043383662058843910781713904788297020484467678703412358711521364931364259111479585276670539218868442788964184348432803695927621918118125584841681128935549348614233934648389714438032806949314333109804618595466401550201740734094099304191013593807623092069514928507263731914146046916869941160522424138115028617940616320356260670756400399965155993608211688837249942586952405722697978909021170528462715423381925286086325516519155930543396319793540410097480985015211563189105288656758499706010969459613122268864610240115846078780334228322262607487907168897491020786485694521272503686825784111458853653770372316717988761794742671428264852112516266921979004539806933824925865654520663133420196053028620740916466808349361061478411427087471944505846269784381654400645063944480893570882018743998499461034797156790666060815979631987190259177193894800477368160197730321273230672667985496530241022402940782864595671876620748162724440763455768525157134700660393838865355960156141754353380007765212566474155651306435601764753371661525225617855206454780256036573939401815679846225649986466517167417948919544360537673438018751267159508148410186467706572166876214808978646053809364383213063731107533343494941872918956914928669367219864955564007490224716747490691126125412171453182661978759594877682651058368966407341635455015079302552682350088846960604321842643063067842086265353635922479934803902977723474175134488516134473248949890313785868653429288088993795954077332084253940103986895386339547601698412807438463114030793969983961281901712014580257401724544547126627351872926623119488858376005640113178272066573293985476874003047644336099864167234953274799569971888828873610297433810065884214709367757403399601301247297759987084786216436062044957297970005750651026762465109083470169956505479162445219286322868349132926849859116822443938562091947115750827537846370910419891954275801531110936893836249497778563212226782947231009556954817681728827684051999869504034651666929939851150847647158734492737767603636484430723160267937451550951997003416669288526279704516181415612893400806456112702995007504501812494898820252018212605399764780634047336195243853701799564228943642823300081960752350870755045441571493040122210941438337872115789787581510776083900898932135040039769203282969538681772501800516377936900798815757244909846241209782792568014654872403239705853704783652646198456808817162121649825856185123413236922388173931988957554814178529184246789715651070086706967071768062002012213845159637175455189386742797349567017725953500727213562942134616466629825255141814384486569937549435568153281584728592908578647282087035154938198134977504176978322883751119878617381705957785705578639297512561307038703598901142906054819586634397626577972839010646142605353142051364007154682003509970149089659307764036243444908065972548142488572356699140661860031913950373558741643002579386676099582580299123623888696551419592228851160517655348216533459693087285374343223279127477813630656582501215694659913231678878342841079770396803937541933107421834569525368763809878593938903509918275779219506584746063848639781707513448684918644897669355062062006163240254973348210084809358584168801936756929282366422282795191382481507061594391384452924282790096675381488638204640966254654107695844261710068352509469104691868901491208294409241554172461145275591910774691358518477124322133613760557328886812062340357997822278323129097053235475801886730325898709845265835897691356542353528470052199863680583162483732342329988371939866733790031221224780607463961203495975788766806664841300135748661656300000288619744050764448986663068012646318024819977434025283555325596273616178413085269750151403435393044693187114604065577755953590159477630091287181273073638359716547097354601664366886277640187580350588956298277069558049804739527878804463865713133114476814125511251731177069102543840389221928116618245689606813532383592346794347492333374528373956440910355982013889393492996417551544573905226320212908966577410218419532702983218666021668999748649943580988310618545590865017699919691452089323134075085962614140505223458697726842100828836991189420106099106679757701258455674084486913117067665504179659734537561473252837549633232032777715421780562026585778497597299054004567555420250821971198262261296812043974438847973375451145203949842720758010923228662248479217863166160692548170868220657276090839050816168502116779039607058998575004975008886134839189764878690843391291185293066768401443136873027547383930610147576569391575165388431028003384193605156185866638134362503344829105463842057006537707921616433331479188961546267819493420173864051598470955060230884574025178691607171752157627986294505041378046677644937109677779053614809959323086788789446014876655915935458258957947763686472190282770716193536692451908670108931727230942012198821386556721789566414938857982478642496419315239251905835490967473512216501311020113172544536638983589551263172125991525621337316569421192582097469889289853025459725509804242258854070990546563638206095384121389995018766582663932844138505823517649772615060074517837867705662859033169080335153045467003721437356278899965562621889556085853154735184497353634295389921102142010884769958094388897704785433254210799144622961727645714280165267453150087717406061413867456355644168329284620560155130634050772114330259936856585510654775705220524015502547368480154256488798389787736613551714529481900507813690138490709495577025133680820817908616397371392385004475619787101033662172502501290488322205199127218246985116419923251428562827004088212994140231884457326360983780312130796773058083420131371920128437463725767148670391493395817783493270460296818965067163578733183516557184700311325631936533397344787192591559262103745301098589789491733454375690738858246020165928794204527986621297445544522945486587198723279390602549429770237377936042005924975057008287477943889158383132811792082859219857716388376644765531023353367679051622503994185622425858991489066606612500218018157405808331125772630484706379626708241502791172394120440303598838319449192252354117148986083971384063764527903625518676117636930034503722878077901160872171190844707298616263190997777944755488991612334151714225780826923305409916470068816282679237229996280147806681345822409363070199434591108418415991579008367029031002364998378093333471273903918765815780186111393367668614365032367108731412507665303257831430064424000132948686966917351364690869300479214531488939266928439113652102627677990781950060683458813569198765054695113842107857432267677602478839660346329548298628155877898909157435052666425050553803372139473931229413454347702464311392480670153135310143426874049983773225820698883240191824298671119660504880332379931355985052018713699883820604663209094589132048219852645075269148928823624841058426001526300855830762425622263623609910810320188076816199709167135800941476686203868846884013465780681341076658484385077409863979687244445172384125423494459755213518739407054597658528678010360947387841676284433775464611069699514393862351918272411027411012165475299258291728902361365391262549189330835075937198322471559618791698621833406098265889357670021228299976585312336075727051272164913075485310344595887477590554415464694596894699273231359154221866193367888808686449015111828189294254734104484444370651534340074464699890943397279363745459106431658334239757395404295014610251213055385273103460085856980947728069188273020657974467221941517648025897157314394651127396181617695196863124928529093009739269507168268894232269247208522628548733110170669336998982571033992744573489388890405235740174863437722125727424441217045966594748990613804753316378126210450269686529719379727333051570049770125570425608539129292711387526607380878019255672209888573270522314702750990928295819534972871847051972869842591087962418427865828307023699534560908460276412304908479859072429927428162161774395828005988110301691500738619662429346937295483629550270126219549533319018902468538195571586342655874825956197788181693922079988794036234347171612599484265463981507811874941351441036793081547482228500850382501089495714916226708559750646769446217550421216566953459222524740917429175287137073318764557148777469327856668642528698736236087444363449658830089713480736724336111566340561709336629882973557973885657866146374393922616865800510531452798287619525588266569586859606055044825927633310925918214150917408985451490294020870816434413367536812169180962249096670135382312630625637990066838081966616798288242573120618028723671276633210492866814563370757429855589354359345123999419519999562704441527163187235793136886714798843541845972425762672276037036859281593399392797866808086659276451650018085182883551300622028974216682432271091263315009165892154375854823159467572398241689927932295134992121309933931508339244542912497379564897792367983954638818825059406412529730405191865564593401022716782885756586686939593896330458409864468216887351152375714077839152866897753483228911234256690203712121284540022366648460008424172219167665512170156510426332812082208906243447655104105772828141310905901665603689410412359458683598590608715749565858749769893641527818610108506537316947953397060475239423453332868119280662890272829374415108093959720368300992236464904840616557766631005647029953818892099913357831582016207925742637341029369555853537522310012032735147735052543667383418905966154762869488167532852820854928806900328711586716711097656687548772696749245440919621060818944372858046858483748436449376103937940390325600182087221471861908310959747257819625566366751026362485092635031844167378602878688911432681144011420032345068903037655171555656192937673292161659232559023447927800041919099206807063738597058985290149605164589129250264269840824943657090646395741798755787608790588458756753734941718917735797797501329323166862408663968483779305800839439109456032832145174702175162092845676344127527911053309606911931775778171980870004960460839072430029382759996011062085859162696285342955145605443891181223478611558948183298253532723285415834627166671458644161789646780796382885354594338106752835476883996435833787721265487863394248304605984813487887039127590573340384824821611089213682549330651616171933689435950295666023767952994151376665694835171374679225393241157437634578957806292585306851498156581624776618465919922960977506821694417532411633189089382754445113779135919316043183128932738715937210709741680150134670626096952203807598927835626382357132869705142532392047020253551446414201641054818861328226306765239634134258165589558765808778389959752194555705350220783334505551762540117374994053088179178273547298295789139568362003310504828107971172514323435506399118577603927459209231858028678345018368000197794532173226613874741830918119101634806684666270887277903738010622946814013477851728245332232663285870467062856277714547246231207603730135982456541263669625346353841614172364421702779538976380520478024566175951811343000298048203228326883791013044842685458187709831357990465130779408569936188772671598575156664437055690013951394862300787795728491186279967857580119745105017953207815709625856762998344744725433620618587211080035826600817717781361943719668383151883359870737793339288186986528832467680748583958213794742690130192034898766549371475613807208119621462122515190547452261581171613963868922200238366397515588368274786279391898257991863913104146589695016015275686752007041767535614595058551215293846182120545097387781549055719286813155857672336056137699837461946803223477108062454664460226498654466100467234185037459334365246140971402796547339794302003120608268696218929789622184216679224411112655700382226910780202059663174293703283547349836805777384998169297565935877808486682829678612282955782546908650864606392056177584654390750289965886835862204019138444556997580742806213519761564716544063203906104961806802058335449566496410478369445593202987979504240610165277648338993776089383600429124335328841545259196433471354110019725440458777668599650067930143133556057608965096135378681541106528919918900832976343069921305835703834919796425024499571302561474249714396225538941558701122940693416230481198313505874434247417607486198214538127071910263028304491580896508062127449177127181235139171360709430144485535139462234827156273184462653942982833496030763381146875925876965647067174382031587410658963890630024279189291973833638942494484626007709287915882032059274022302409545608244236497188213337355629259993548276894977101954082198375721410253440127557958956174607026432396401542468066869242480221588483214254874561369004607011786333578293885853541664838974106677964562119898351565070889675429786782926136988324185808735587461891740465113307573517507413846264782568141553716279316323338594261483479219825859501341634881892147585542849933527622881262292094084350228669440020349185695710770447953805814288873951537379385284048318649379893680367769385909233513487913080380688388818664396695643024582355845102321972632242043799622062028486483194742632329185277428958966550016270307121711141994913824849312846162002145055260813548735222858568766366423758444067957903280618878230719944294098055916771820736446005499423891224904197845457087975072874259215613166344576267315597291395474088738634057956174256695083970404391240282591048745636806890097420570236436519286117403782538423927803354031952093433198903471300450647355616873198446714119835975747040069394132687309522047135602422280591163859294158965278005991569963455753239413412460456049496357342639190523584943039918361421504806671182746958663397165071073711524329076993205957013509916872403401407208230268081057480662731470515789658192241400182042855959507599222764001584026763588017396610443342910950015941936905258606016696144775488432741093837221267669011057012681892885668733632870911756982815568172250303984703845811205515244795053572164413759498442528174584077876489116170691095651898185300334739379531936277916192145273840341052960338765870990277265872796766792971749015128403151407273598618428764535028821491681591485734287602928365884535094512606827549995089069576322428014179330933013040062420330971973350536754102818866019935134447838081283810771945575267180978879463458593631999747473149077413870667310367472563869420950080358697911741712619596379157656082672767428874320126370207024917562366816227569829947860863178342766494195884799751918092586550915304800489981703559043442162560525134875366257385134693558248087029641873698453209410059553413839389812364340026293125851803953950759314248089766763985774456308473609438107346223373970858625341716880385254985351751560242500505237420385421219907520715542190390696598553042553183966615531165904337275394880276380098073326668440570764225604035844849970998657751372526823669888737097911524151835970199741979774756326181829292099665867439823058549939288594668456108765990098467378417653580083460423820172907103181806551644630419999935552732942203840397897708807077426281734603133016114525809019980599483794777714544327238238654639895876099483989736315852605483172072438923095690980555479951768580236367624833971972576570421066628230436147387903190414248943702792542179014802452689375386250331345996688356859839868101179687879360595960311880777243064758241609851114181276084845259846391642190055539804975501021858938912182705462979996794430202411867061618365927694377688072887876145455485946356463919221114139433958766659317525346194478874636732868433546052657962786165874298168848139992473724571210239701616528184815367252449783323905698949607922180457764813808004528750107392663852402091964729096449090600551993706859012932161112697313327011901681849171660361538011751566597629012051797626263679062650463623582638281993415676209555701889684279090912249374841341354602092951567530490935774782106571059274924421557511872775028202891588807458345808005202623902060470141279951817159921206457791137200278513239755105716169172541775230306208134172727842803998868507775310693775126687426163013635327711097604809687562234870307549172487717914380358011966097250025946804777289686126181416943307131478127417991104611616651628165553549514951139847851903580686429245573936142276582038851999226387156634517829693953255646414216664551679613309905320851607026306013767023816067539451689950631933632738898062421902834824090704481993126452535811418191853414498999183191873808395012945673836108009151034604084279686192023739054947725313494046654219902965741292774359549632535641467485781945046682982901310422185928544558832040712742426905132393654891904137728271120212557553611231472228143102250383831719180044626080817606429079934608369457631367698348888570861674013500621788297051536675219185248790669370379674218423850584275318887367317048421608906827265774826168666568312763720834740459761646694230682653175403658150647270526843652330411291949723942091731478582197649535474704746609017405938288482924066640672741457686478547795731083670366717567432193052377812145829304388850667036324047143198478723787260670619675084350235618402102272120322388792151242087772455484207420342116531024571591344854050262443777744583660566350706001327947150967194042734799867380115984697199660865818833149618430630617393698682632728402681206019919108821173192056730756204393411479376870002774820258608409949268365139399659630549699324266042479950836462467886669492077288480124730406526237485750218712464979885996489910015071821369934138924488106941404113073466829694599890893294067705198992313355767330368603467021520415806509694096536140298339112346872858935720517220709434246915368296520287727462350943845431680954489874212210603423574013769940396055584794587845509121615663965803184546265839250046182842638523747143965993734479691078067097538124594209572842396696198298716806381345172735731425054944656262159179645233337359731911810458736936958223472515898740187168387977251230055684123384591137443799894873338335037759004958856585991063801686836102571731812386730858448289796047815596466835528965903323108497284513111221444024285035823074241153479247270913507886458612828965199882995364067235449818589663597937887784734233309640081577470650069576178944680072053961312626305733001324074305579293001884415687380409488586886694528164732739789107956697979379741128166601004793541257845420943468791298559449205612689818013709383243884008891929268271884297923486344003458463286198353386834019202061042982465779468007976185940973446438561758152668695951773420781762097965040226194121294056286699727947196226695270784164989054422564461922737067417483088954186711318052591869888544294431204036855626522001628740728042326097204360791595044485011845090029090502678629225784557206768742306801185333043888012414339234723870378337636685511674131337835677106303262613510315638437275017872231972698919809975742217645817866589865538008995666828496118684250980083605203397752943271588257782997769453656984315788023371530934217801110140678460315186971835452885985495575360573975464771895045296050682183091931780189986391774139605149006509718474310213858632476588336237315633222174670750993240277514290164238223109177088600066726522024164213275617101490878468447412983116810044047166642353461916551654403181970165719048405042148078566935191644309632724126853500315119117154903266782818917538936432836906743099975924271361922338416505067577722048152664177209631694066386608632615353321236659275719349406732284188818617993498389691411073873179002699106275383539572935212421358627126092525081737664650427479930970600324157751027868709646866771098450272436523546561318235602964442371670616691859972642224398637363394441008540092913485542287435037951868339074347750584132287320817549643915855563330836444095239845435729721760101724308935894726096615360034335289488062073709187895860242249581289786615117544555419078832597336411807722339203432788246529590791564752437275598182321233153000711610423524847285209750720254141017000697396244951168797352909273228394809385261356111175477844675374878000467576237799085950685096127514997460303969220107829358204879443996307361522008045853047631003964967550108184914637927583883949438620530264823419680264672907377782701134435551366996299552652069263215025012836636736527458237027127468379121570376674531845968554039901810282183523926405044114295193270239276270498755137431901339340364790306017552756530019405295825515027323033861958261620427414913502193033908423161623988434927569863527239409657799386838176018801732158564362585883532935691074963307551176320510010911253817380970939279321722980122922662910325225041157108367974458851039873409219163717586703447615059045336005219446099760545610640344698375315879480433381232661461755433646124915845047987361375609790970552641687791708669179221877565086024440964618375242525230478913575392127250511347578380586417416801374659785645094327547808953719495773006137607522895743965069054207620611159164245994304634422390801482489829180927140083252064306336337059966117579722695869233869588835698272690775317412644180055282929366990628768658701575223780819352408381791218770080191447860077761216147300648515428289324181120056241742556822211786944858900160646058930799470767138889670150410811516096579893861020278569146996319673278745727718557215144403270178740955228317937028522653383321713940568408964343568264894549252685764861775442469467176683803596919524555389495260064770118063441440301856407540544873059180675421153841013272635852587370051099230727465847125295114653895012336107712473777025900228318138407774012150238827948359782946410835884609708120533250421144598795714069745688942033291145347494657989077449580081669227277210682819529045201976891266331428162406225227929944985352770342143049443482357617664912562983363360345689574462407949635117627604205587518173690675332068637001849079666007051514717380816330141570301245328611567764712512796132069563885770191317334038011603030348913817738893534633536663481494556120231376399425644049348555457991081370806919675313330207803611139375679165916145438148917920339573936046761173421229144894560208781215603569286159119882266969811004753535731126809450436207755876174117671725366784792130642719384273226075531386460895896170508747556693303826474580284392902733425198778463919843526099227757456808980813101752120718185161139263498688716077369867137979572225631191144534051195374956137175082905782022848946645827737679335506989582973935068197500413036850311715980651659354036781325019188998832890358165013586274829651362051875331068286857416732932652929068302561235387272858148938447047341371021992627663298660831570580378600918564895295846215964381304291969707388083317757294842371558587959635225162708048181038500271074051373147212392112945014169644403846410177454586507995576906627626372453225158799453510183282993434346047161594576570468024099910902579682187770365056685255248909217002356581127559456643536470459521082448889350695064475036254311497212628279107533030850303666848971094248582900293588114322992430842165578094895803153089253663276267760303590846221330071745717880649333838216401732597047193304361279025115233364608168267491281285878158463532201110917000028592078377542132760017344336548926872507346592249716908446679857489718115404803600019636076037279705081304108065348814926093443210844493372171451790434101638149851389699103165924917298904823073062180600805812625045360630909628318036520147618538264232227049755804671321202660339364342530135496541293999708736385000640662788559674999169203540358850177606773497928675866175497518563614383076904697805149471352180458007057402116211413965615619094596763950964165811148872124187554505514808224236380009481608227084532217250501578087878326201658227079248037721175400347083949081102473303056365841743865727055543170924054628601616155022455476644155103017147369308400964231436404621406226264378902667548482510983494941610278949626104883525814234612590493849229083346672114225807873360134924424861370226828425305066740118996823858472009347678454033029581090238725243791549177212729517466375625796943626657717397931403282360927154853890667942750283879548614483999249685722165242494864199305152488486778717569916092833574137556046623470081829463997921407699764278073556903861374950795879035210819549224114128750536810170163253491202476818004983464490883750686810803570819763166196125054020821867927448372443178024462502267048754906627052092894753230509179679462888177227158424343462120576496515437718597802430964472274309185758271092385733821863342843780281729119735206332238937273605069023473762099823461123450392963873520279742537250609713867354824714900359000743626836313536501708054451822452729382105585141727158208498349389002214331121287140450155243306948162371584134962911398733775189745706753086901948306743719718298790703762940103086583063353960359596990871844523503015964605601633448629083908043733094511401885432067193406329705278650557720732977894021695125662723361767006415087930554327624429526953120381875336752665488352630338630923867704455352386431587226554052416268958575208580014423588999849693797129966511044829694486821848735318830050573777746525889409630522789721837694380662825662339184016402977523121805123793373666993617392034967867353080925849057977322668574691953429976679581767940069534811249680207905768832970109267184030253358910588071332162071745673936956741163229236272706715789795637855047134290855861744147490064698946403249871933658382005063790489602107618500878778004081231298687276606872563046557938565320824066642469268958915964619158095501266104604169873097026195839730706846274549543529188981518626961529190831585286526723501849926316545669372803300243818688489007703787363321234033428757488461061109361014516917451814601112875012002093857056941568161994285380763167263089450866172538539197844088245065762319484000382976525773443261817773915088450638248891019943406123404627985320432454134917276968218036246935328592147533864529658881335086024312985077916102979935056099674860441257812472409518433645916771784097305749800036479496002198678872570007579867329646520723151900717762128636666071803648179525942628565271566109975704246802846536541827806139748448901069746290580097999447876135397362693019473856211794478748071665951995617318005370665892330065118867312525424276012681682036955317781181249354724545108389923488091244570853091187101216335600138736958243940432709697877238514076656266124856657890491931590245122562860320144720367596163598282908703037337847262979347215666844132528783559585935628746822714400715817703708345354054477527809056055558504092347242716539878136715242268200285604911685521405019735254658473222909907777289001322562511075232597961403405154186665016437332502746065518637733295133279175682443108123420502791316927261321184486308818566512244799645548074813957709704291911812558462270432292540567637274733625393466361075145170441978511402369252421691451190839210042370832417780900452596559904631437133217857757447319987300642844143312111311666426496843210533567145550171100945335985053946213752061419943256969720890989483173010486808879969747705689972236761295526048264760954724753160873724087929664359071943111471337273351563904865043543263362030747252663936593747870210666608737498871219819802550608468425771607488786054072106589678570547138078585952620652538257198064849583191741577818473074056491684753840403449630697071871009457270879774576643317576436188638180448974276908830850966116697468411423247164429564424301385504125527147876622382430348503565676299494421907396034510887099718680951346661349884259692478373002616883009198084937910360293114345093400258923843904646167115965187210148112130445204695216124147562955575542445361564570732561898927586206178881000355611277297478719564070940570703142860443612724234318446250269948785516462645267354882348270542526698062847785883219827097479254803882924098469106135930919614694724782696003964379243442035122155484598502277596569235573287440554045018632887531962481334881146115074425823901516893805155726681445508318647190615969959310864749771247170486380229316989277689154060627094149952672259421467247731598933652846186290164033818112766719311981894683331757608822061238465758125574016066896326152255772949340885302990384673546797202797026075123946552520207277284905550130888492375086229596026129125087595805747050316337014355509803707209049953802954639529814796603300610984455799065530253708585475140009328958900241870701753494768838188750069033140692712865860096892384008378749203091797940039453204778540584913218880473013405758271712150478763644332970284899895058564297935321607558787065170536301405586387666234687031845612228938983126240504277201599551353312096532237340986088423890066743900939250631128890427561010129366997133285696106981347917562673494607594251348924182104458473826574675876706988082131073164376617946324731482693287959152872962642916039473882287700808367461228340495770322962125213597359886403967871084893274311614608178187152711901753689583711568430320968952465818313443530810710586694120859380073182181769651339211617682309409795700717228737964759298405998950133508476687650114016801365675105286273579637070571101236392748911586783191682041935737681859261728278848728025395791949597242395559135590302242571030205525246915251750476221132767010854632343987175897573453478701867833704198949442240832499820043331584962501665675549602802265559544994860481713471176294143399159646116468602817803902713538126692976404705789788615797588580833415452229632315144705714762262322780522738357674509433033670102881868990729581676007782879487390333040168418025363711773741316536901119729163211299341571561800186080919005034846059039251104472754440378872790856636775103581318117743484939526047220487829532121181325194589905904495427858068357462315433616654889844811256395735510595526266290624243383614622373190085278754742567945949361257810141261000973962141464009159392571017588050396548136293143208329275861946173269406600629047727221620463570465315709529069273282304835128440738179755261254954114391420298119795488891908727183008862592331752169000596741507736908283844585154378165858179946276167258538215654844610947976659766081708472469560448461782873660424432351010785977903740129276152106137810382585042468887414081669939634658971813615013373729959983666425799392407697988499125305153103263329930221111294815134748754132925999791964386287481864519448531731859435846139629820491349499608572735224860188773252103401140428389355782926596511297566849841677555618013964610035031812289525044359675854228708132533143751667017780773896969892590760497586628262824958001156162073600392287594747385947611826697414310969859902789946032194875076447061549467586028363939428977135319409182616231197922629908976771280822975318621909671184599311145647681209993503614127382104227282136680177473046876567772074854602396263325561633407942046351233305573077612050010947179063685366340137685095038961942885691254205368743357463125520331383362784009439270960182118411665637221503036349827326709350352797530547646901183898544066381961686239928093501986004364745489646079470427706813634887704800384518538109047846709660392552816401633176673019756648356625156603109366224853803470887055791024408894666619783398783668467478711275083500375385531987550431747847711550321030421132695837997027689797918598374264016088800306541073328609031439836575497837804967769983191306713865711755659465584288412380923012853835694486433999786006419779377816086132422371935684281228379389700819971558394020103357482247613945334689496241368653328060404667421888558463046059636023706652564957380361688406958796432424684523534026481044981444120335187182819745821773491363560244553329849871857886662930004247314447757200728833949498224788673217153583868979278987002296115487125161166118650561206150924056901656862550749128634908069195500707438715786550510679854163349746820235635795467309165651767152603808300179890874311161515496556414793217052597782065588489498674499480695772707968357720970682645650670209112711762532530820218009730436265909846010153402075373177776827907358985960523972247921320455975366859330326841946150651269782101652287885185729247656101619111030821118088993231589410265949384333580298493724243972839273846163736355205046123020437821902564141000479308659965717433239619445773656778309609051291013681585559134562000345187360475454202541972030881257487777511330927443678275970294185332175790946381489707012770715083068056227927436095953115748600165399893839379402910716169830023835727604062578155407215173802385174120490210915937366833919329130045140446427466086051860816185443332772230567897539122364200425969552305665323007073936091607110822432164754460036769137705493036902331817713104571974528744560168734433925774774945336772465082019028075730015104506342965363211394717039245448030847429757236112247539724850330521334472209031534412652200104052232265582021001190501777163369329568001432133794690239720020256750027439601346107643298547898183237534645016928524919054569201341965285538817598754487729507837990290216923400461738166443605560126804019178729230197498344148762384165703330386333747074141479170012499807003315881587999829180232215497106520811550240845273440318930192574780985552499691682932571926277664628183553609483474322375951023815300403489054780881168102853837928799391384388634140320673572302870069846144810623813602702439965291561009903401702520923906687611616389427452672608426900121013444612895381774128388112090441115755391277019970727584741024744823306643558143845255459915568339347819753101837893968817898685469568768206408154065894329551334193253005228521010575700210156208441006910523477086189544385688519578737451709358514590059717485593512393175624709058437025153227491059267968891389234686762089713971182373879626975763614778219894896059512943735007706925009675224590847308216564163522921457930429518054398512295987524177161786616342178885897161376511285538509058145024157418367354581301273174122927282695016411315575255368498708229267486544226813634921204193466377062542968578625014634268272115715451490135266893926206558516481881646863629170610516954085966681449584808560539024959981619838143018675287488604786274008154648546984884099099358632645528315066405739814470245885126860910808651986053400792973228487332355614856085399542787226540659560080618616302867661267898031189920207566354173353478834262054002146048887510552626231498421343376524673764895026095211204741665750500516009035254266385139101331479802939877620479854059280433869520169311342842435357685647060078110352292167214503911401397792095210810748593453908509188888598370577452620574418160707049184432359923698021146181753294348248581942968930619008326882187553228873102965667353701344633455669535888426363376549470096870926460948369109778676887276144961838196776764891731537764067679080642405595572203725146865523925942489936482286741434924488697886559397119694526179862175908792530067264954520649616832393227607477623709727429480205288159911437957685987540700547041637366185768051980309895095117868718561746475630315697175701654619510327828453135070023176137389546524110917794018631643729723691400153784222028247631336146036705182261249300155617069383932534304437032551557316207770940284839562169726440813878055535722907943767316111095509177147891237143181189463172179370340431684720142301315655858286728095114964364491914318918000553117244370324351816887843697230225379207249871349081357525938298945113869606399022262059626873636761966933701828822417934581546252455046448157147808069444347807149605679383181802491270688001159092764269416786150937475459545378858785642319135263289872448458278233206226153167707296271659961425155699077085351138390852333931994753460767682530686765049519762162351910016308205185960938083142062662749602612891497322199838210398619811817420742627690551064340160716634824251113490529878046644976025594473914570417619361399472007850471623297667833330101759980158660789593201159872013960939589547571984484535938392497645089517576948848280902788630830491394406872903968876636476135943309472109860982030920613183462332761339991676980756686191333340437874285082071196195163905185789670746782392170073364560689485093598716598422265956365455005876630631863192649679686979356843404366672696611428931725129031038453618169959868525501639856026550086529708223512629550183614195716977365740106890844579179494341324539597798983287618249895312032672505578126188770767489498992342153308400324752672307588954895899944464900345468290498563171834867122838284280557192634603187655410594292091807894976709630001816459581865690488077106444245093833030866954916298533822490307799113638369686649319561070742499998900976829726177731615684817553771231449352764698619002825418312557820226855004682603079573482247548108327177120233274237539649507070617218300948706170139178527756467242138506374821567446089053257743288101213887151521722874820679146965717205582924072352851294096621299404475790781637578068371540898962272117325004274445252066300535835252508845106882165119477346241113012227123961019226047268510010924552543626746882121803456291192611641310733380054717866064435971906089696914360073446661830164507466381161321420683878446321943648600169632140147983346506885019376720677966673134399995858351853928042640028164679904489189009399539563683843534991458817338231148185121340694585465152924830489439098330842987976868794899533621982365854804705020004300185745794494169990472738726443819120404525690985414035403735559871013703968691300152705164596008303499658842396881955808220925751775497773102009110090465921860231232662413521204657028710678257625587490149999750755950111608494151114301846260178076750042735748623700130420980277516327617274160490273336389458559896891321790593524762033406387852989743062484582886712022616893136261337658233975724284728259130281361746210563692400335616170051313703292652387922939637049807468855064343294639359356477712158047379309633273711188401700226734460922241113266435441972786616044772893340700912609236440533034915583806465610451975902785255776011801295995769887137490851990293787023473262631099494097372412716030743514688455940939834299498786738040611613330949202781165357837105963246941940907282862236952412392785893334555897172178255435676636330089424727429544983293867947804759262753172291463674221188018883352567625568796826376509648192187400947672440672178328357593913741066817303205591047021116662757108515395481624584337114879712874992936898672511353777708926200567314757596812657153970602036145062922237169933041223852744434798659243215489246130890046046942144169142457684741751690383598958430794971937459658523684735756903421871791242769010600626182224055830433272579462805289732110875366957059334681627946445826048378805938743934394965383110283507596143474310754374207161822784820466239419032965584898994945729573843336440278622323660056838023339521799475701590770590581023942000048391524158630971747476313220517640483952749338324904242970091279027124668978507357066007700879091907182644678568978617884452929647784335456364255056851138176254462911149240986589090545083813443017920368988351289991901476254995201430038285823033097545218622900854638921746560725195017308345956310773095498220626510532390446931217417242793890926191569699225034052256007484644947943594402919679417660995256739130113360785108097368948166836382421670949643560082318942333817699581563472663316284477983383298247140181891818755694256864791847081974578734755542160519712187428596513878813802526509669239148338273711586015904531799425540281634371408544452702764730840917124069927048572592994093221393304056982616134566896669555933256693939844004714901081327686180319573628323860097270957154018873474860039251671393126110296574253577708784237675252364554951434880020221786762354831481711806021826258893271450248616292628505803285096723538196465795606700757949525061496550316345873921701500078118754491091455745901534144308783875748048924162675620167893140629451389933338300034307002536345691307266237888502289490872005809865899112476388640873800820544178986640050572753126798062097542503817466192222407016147782380339462744384458546022610733660485613269949897979403733078348861701817364864719357459242402516925341967227072371162785222723282842481915852169672827520934718397415551055580750213336101801566219894993537275510244716224756155043811261065425138818606453742886339093774933223487590612616578071432111192379960389063480510036217551225441450470163349891790748671083542007181793036631621667512080030070814608130266861833836966095826439431378662449918957841296176266340423778009306542580619134009296382426830915749869872048181590325938851548920460004383610167493194413043608375553391339072035123921910389535816815999596390348269893539650031230840998380530867252199635403661539556417172348292288796631123992229715239487187415077686507816317805217095441483590238567618023040809141029683810244727957671445481232402186630841620213244699875371225326189655980269596002881340355269338252485063568599789056386723976878817725759499391242473400110706863399280985538825982688997499700906007205161962467552877226782271358510763174684953700420809109244407125999194916366510567031905261683606375937895575771489794468753540883420711882035660988796763801261621317077053596669244286439749848868214362959882384061558724119862556943473541498159099131463749691848878605610127716551539718804114123039190513518929535509263580288558698671747983195249546597713148988097515669454250074659739668296983957811375996375152420475453320557827630666626014694725586348946098836051015845078365803979806443618794459824489654350762879980133408168663523367008910614564624889160676700242561933131618664070460381725921727740583091549394416447825798435289169929900190607102059227807003727794492642273646592393587430538872804219719483906661448493101762163855864687711548733221470969821157254868021721003588659845206671514747031225296839850898878947411817569721734659269229711751045683904731189070618925858532860864800924493409853891150009482328249241744840913944668041114564490085264436435188880698149674500851047334323080817052701211230326621852138633693481972725468834686147390242175504918498773505500365195632826137489576039519274124988742496021004639849339039290732407321019917999298948312350609163824270121758991979925901736404959993925201989899700457722386766062295262917952453868220795255625193233826437124180580133715944828730083159911317912814231426751848275070272387294946241269093782664707064235785604933953979610734272398195775411059117449807517384816184527208975182676857191908973080710981624398414284596865865098346486569856117484790876027410855433413255452496027396978078408672425500367628346074972353898910756023248955390408329038984270994267089487192640404228636766705102171540391644599100627775220361789402504140760266344683312185418976080850189683102746862971285588399861514335786959938478464383569111556208427024489118487713909169570342985896647058190670061874536792495038847285347746285437798188876395574316705423553606391452014791662329355749906743599616432658950034750851501051824053479535010223771861464314651782124549345785430341680531820481545671322061804931653346559523254632072124811722194080194255256166993275029199568286122092780630115632410370828893554398440973674004419906745876331145940028295886642060352771484066311282901175936598627852954083231170145504831401320573807163800339294287852383355230548175718926294008705417831215175958918043981141515632561000206162779935229403023118788409844236513139192825099374758479497102223201313005417090387069595483031801326971962783864397583735678658472146303030647739187203508759788813697702274644328207753519566856964610428300656928283465150587407644195564628322787352735493396619280440797250744206527713067769003894214654720764353367000945785129398003954815233487936725670958695825052406040313722329390584682821430109423487256765326764510705756279125043034908843982916050635611736443605793016196322011459384424881222650609227858865057506234701906071830293319167148029808168139628117605891429727866613968248155706182287424372527840830156470474898815457627934199299021770338307957851921203653193766847867157863908725770260314812866043661774050688927353221189482614204897584479924035569173753825623787956443897565506451781696060812055147189808651140733820017385385756200002145693303455792671292854010226106215058775936675512399443160150601799658747252883875098227731574139803328084025283891810232903882695350342890146466728470056000436839621862486364427909573762427976250302091615512195833225176480194723483604899968635223563796458285437765719932210967622316139162913364917155253674264561223249411362686252721686733037179591801356124573638443280175935032791693651899635094831713243640950512714961703436800255762614858183211367886286501281151860615922811720608479861658392325262165966056787777574862757440521119188485075408458608059668655193943210389592401307702524542689708483809027387844546650846455234017044674806389453211876252493057607402963412231993504159921502294535981522988100908496722158636936805964042744918825913092060687714824873185450094804972567493951393134897937420505836070962931939237348320024582657616207201808738305090509005341392238881890897491001718379459652584451860013218795865669302069818832819421223108698706255422465377817030108112281236712382727049641832591807287656531131549604392871304163969487950381631011559241918696315833243798843965035316929429268822157321828036379472408740727026288065465067785066399004868254003404703526813742380497367003753199137584099252126262216552531412139072343506247376404243043687082942517317069677716443183817196688890585618726774962155797616500296293188906696330173616784342684671782857532710352513410122706669662773028460904961747384549580886688784490162860610291190724994038396024791944169965782330669786933124288869044432152328705482284757480321031088175443165983265091756626872685735322081100750310896701034129682163584637181596297704693877351567880932720963992180156144657651516692129100439130209626526846402554194306745389068695116916062444984982822325944796743510979615445019217183193617401833928433607829091027462419016210191561498697677737248691454226204153872986114572427443627673045909861073225188004876942940806934944658659737428863020861647996032769318372122950656068441073398594118351971282469408132641163738702799141798763197345631252849548504163768746193853252878326839332803590869801355182318233223970939782327650795620796177012458021149809184982011200623984052600655237994134258404502142958619212926584576714273958812019551752373361468536101772282161845169103752673420906126447904373311068784816592727180459870134766994311495327262240757760253752152738258504422696172797031007956657346419360555925994915695952607023119644527684278142398397663994363345386765913417275524582083728572843750807091295476323480529884504722237548241168247163963412689917282604368371358816924241453301184070841876550377254918881208776708918665698960190651304116328421207720678721597858947284323555659475866192956193423493744494612837575636409318629083624252400697604075357331596685337058028876146471351002295422723068623296871002297057549601254514875092484911998824924792658103977522980963263733964224486842022681162115464231350172837565571857324486904961980130900053204152985679924047204800658784687632838518466538449783134540490949157488678676142994551893020599533943239873014750717383452081776662152411531710091134337716686128923747190900741068934372858500561874319744052956664268450044452657915372341887268965529836219755366609418892547957376440062359766337362738989438107342576695008702571384819087542615394372114346319960723196057301730909802287153446369546088521144455741303730302516946790519484531816845787820317164563298081953731271777024186395182136334441565312723497263252835715428929529314563738780034058310033765299241471101529030313406501655538980228227135691491807271099178738084101458294716416346566856281189031246057536041951620886639681586654668824310665174305190084536853712598668886211986390672000898149045545826766727314548488162368887459206105208843443982632004594959138921406460646761319910241602564476370471075941423584481238076526230072778776416980274147947226446732940992218523569689024737680346963484837203147474499537546451565149851138305587738386825673188752401475188209349453259489641685245294964556361522368261819817317606605319659465181231423076481399735534766681717004782833268992058582408024546453581670551596104018809556701090326157293889600221170502257177540204953162669223206655367514343434915448328274943768698820762294260627184848179125129585991560537812878272191854230187486259286371843191104505815940922307346699448219502481407846157240381876179760198857295855603145998009281430246134137980339922169718983575754928202541358835315781901004961433130214720685814302250656244082876665734967158856936966677775564114613469915569242515530251485292991665633320544967467461293111667020179187262657557460944591631883600359032556521040495926831411195568637061594951505576037231288274408198707669442855684650880581938362227789901761370246470827197437998273232891616686286320316796373200968660424719053035863678956667667839416582395180549447801214936421327460908040059739627885267506108162345044392660560798955900400063547278058243138970092519766712825348142876632273676632721516843677243821931676023077362570327991713383355320954338193934886955964177296507740227605431461737018643079132678773011817816010261209522633642187447293399188835087031261186732958080905500615260692436896771322504882954048463422350854263178270545746843677953373000829887481146202663725197902104211557359515660030231457096132255021146619262467101569452550022548519326138316699199027242646145454484858050522997927033810230816978271692953301424537840085728463895078661933516003245360159614349485995569312913722183809244633385650430201841819031351612053040787263708899450435020869891720535978713932595339833785443086183620833971866998323673426356029508183849333500711295416798186411539223702813708982675483910752547908003616666973458957456817703405043280299945385213473693870753589900682778250924077747503026771068749326423695164903349742287703317894110981926162223484203674773626974870462196017497024688227048472604917699937508361493058920043706866827528689202816185117390899576004050054563739136271914638398607925621520538057133242748341973237913901511868590124817836358604629456165286865144789851235344597606312336788897205309715114177966887647736768588343956172152003162575362051771047495032887572484875344512779898480743624270485635460463803612043558902599991298592649045366113860246200982208248898149198032576674456791869872406972679520984274280730856758319442626895424659773756336666866423805118470960093575645334026477758411655029954318603249815449264430172412833774000120090373667390036962773098487527428130688221825226782204323754707757921581702933347707211113256637942301005095941402766279973117102764812569527283918099152729184280825925220267314831792859652120573193858371595363059843370621532735773771640645070718774857886466596838859926131687524494380704098945524838901748220832881791617776506489376456984460838028769219600196707347577406103936835145436210443836520257716640860295289933509926837506379426872119276873074172392724112083491034275837649034025125959372089115038650981616544139122918652831026335246874821040769531096429549352489094624154890855015216431556459902367162956280987153499986008051816838588891213332130223513784978085397391031164938980231344831148400697309410332191919534051876708586223821722510298165681394485922405053362819555793899647736233019188666170591803146022883028681500614016974770023951695755755926649556631144878487705432889044197228548590034027608345092950437287492122126659804835175778270907908083091570519148988505407761109930609738398665735785349001064946614448310473842862481386830227243434613521382499996972643546916045478018151653977129283131079150047316170640634346127689941569551161862363543048543002548838249841146016838420786991324409812370533859938296816459130774091434171749914723580872027230355777506704081222299545268510662103729785854017486249906115481071939504698889040721522703581082072796817804445061603893250499801212685002076729411432216976646999592502444588702453536968544999256743865507237972056492465566800010358844028486307799544853262229186909393882903511421528131428128291755052499219450974141259864040318864550016936928988468508233025043939393320076905094691662020273190592898113344764265524381058002934717067882609606882605881273659174497301390867458746966243475641137604954624010922055166490010129633067882146438623884202983924203340986090861951579898441534882081760002080054978507173101384508735597902858080334088562675884327734227564155000655248299398237843700279554039058520038775346066604989653999501199349204050130274600191731622944249885619800720278173411147723409639716440028187642536721558102293839325064888287027822410382105826168433547558419311074960557234028293829506811878015480318712020584672411771997670054850859030655587722755256616993641244875124615805054198266008839613527542833643518373551304448350882592748832551619113985219757864173733573931231961712069785035637311206393509744128136802491326492310234943310849475507671644451332455555646336032492965749646305188029282775073045993752569759375670539262036643582068791863519725161473980792381436033499189390447772200655992914607836904502598843604418736491770115133355574737112426695090065833714264864433699108394163504402766100855652659618790176446208673973431861282791592629571860560541131574043917002432732190848288350249617302576628474758568753928999729247193894960379734824497721959597035333142576370299217659106659103083142145885172346999169424664647680042068312351950590705530832680641144245037196982424396812349040137214752181491303448465138927839581744288020596400634884418069880781203354174671700456343418969436647599421708009181288234252116474021054877593634165501654930180835372582941294710745373437658006305201800381863433024830365536559048624535431079469920925119410853480662350418234281247598807038429644353730610706496635726126408857890348435655805184273010988652719345248820214921345161135032953927998797248488476843015674387462923621119384353929988490089947839434674357063763936943943615071020863232360105035274324202676106983647495582742848215093865438072113233050348336931857394980569801794705642185871637313130654509021507067154950536825343921857731175575759993755433378807885326266642703857537289092517404013621701968760508120882281016663515838581219986582188237160405632957712592112784215104584590549049156242647272999972009977694035447479081160622876317114099592573163085961688879440674109602297869177213740506125305764096044242151497661929533070940215701359915113674617567927618344911857033740813552266445902439526262427637532497195021043720577204786121946296041824419167157110557640888221002736866662147022113227101242209323342698850533407923874240782144963725318600966075531721952904557154817783466588270652145668981491584475250889969701510013057515952028877143766622386440502181269982969413422153581843311236282251349820894140700319969775837227366155148508202956620594401277496545154584188156445385224300225396962316873967354189361656195420962773275853950375423880934677302072319021966634085644854108399332871538672366951008813671921426754700316676869806375197058632158545248128434534664812840264109176757602497189817588408921293813664045082509729523433090792849168696074044925601306025656489425961277556865776363935644643879678512565473098808404400016010126950255382469914693167573908998721911207584175520578760694377982009315096827578038611728872043456202007973889460023044112430161771332568182509167045883074221853979022791029527717465930289321061003691449695645755913954886566355995685946715316818936087346996559970163806939853407773971815638063439690427315295486753766328290711863836209265579033427188571903746057060816400058472556156023861552261654438080999530472247205899233477070308529782621242536670032330556986201969870661122930985867025722721412545313787806612259787605528261208576214887791921827267967877627113945680992503126385674253847293812718979210746992440620899560927517860925528964284799988872028534489528013470344251515486873254258052382196186961258897956122717064676243828349370978886880666290712427530557961417986909214332393725832274639794273465971165127065312979392300841857145922722390004413742407788061723998024359088290658377948224610809619098062845652753934637847826246618549254967800397524223357327535026495501890672395322831893499518764932324682441958141441262840765813499674276337933457311919556478910832297070354891364597538592855744917553823430489946105802275617548824254151633709172117428061540816899297236188103350100116945785577402091004366153104207963382818418720024202126644383499511542677863993448763193988061108980748945872737066573137286229228312547855802787117738610278694171415946338442217527921348420332741404666864316183687092892185311687986678091414098690867751070689692210701271360045489985516325196188106888666221051291964380261888359576337638200455246921291088862779209349270407846045121451405047937437599026948263102209645839098517130086562715695395740905823209888558050362564583439216433027689865447627372366566668035358821865538375282971484114536509107463370991044043331439100237921994885960038535219870902976378864431229446139575572336734547651464501174164549270631526381960309378699336693715447111155258330652018680745047678110168029439838054373302859830817438255087249132933071525214996327040477467854595695864577649275806736926434144416166780042228385138130373020640283505697997890340349705302180585835964599028409032576873849853918012897682829879650787478263602993665500330106686148321326774466019571914700209492518966548178870258941270364268214508638732942673101046884669514469104018505886222328918422803307643055566800170651818009210918002546741355924166994795926286236980918798217777788890005253341883826350105430459398391707883008096927215994114687446510941363050538666292320200540738669710972797589892065866353371459190300074632963391508414292041318783386701277082597465428142832012913081881062229611802772515931088426489739112084933607413708125562501812213340634603537355505264410465655913392165660296845005507611243987412009665087592167765926086518838855805070534826210397909602432506774366923261330279427457316842083904225965070209304794509137234738583504281848890244042353839119852401286274358812055355321722540717496499738043029327771321962185109583025291643090227785520303040563062978048780892324378962601227316460088402489065270989030378024283698305393519195394505830929232922195510772355851938759526133872226017670334301024349855531055842818063605908649703646138346023976281149614298822667090463081508194007518714688150029305864383087604303305238363110478927860110779577102089408818506490339115927721728590501020869873021669752600724047007412947831554643896273749721888573434137061181430006995011958534350984020408423930018809569575300112773407250606790582316805164350938054655235033186344179829581249654410377994816832124427405001253753266976410202098976841158763368571984301036101037117551790591955471021693859300423642071308900086380600701813645682200968756399958114875308671658345865971907780603286119130398084530727758916686776669421633636194152671500744213710842937568052038011495569104683380598571603010514172042233135000740547486633988672660870442045995567581264579303081283820449296678769724621846356337944253174036998519913504318479537675426854415761838583811791015537220451536199041052779764634990508553878029376247382298326827025798996098457057371825286587764428674162627859151539848376397029838951914169066437459591399854165415285135969102083286232930214051697651855117622862827273476290740518485881655155068264511558896384951252460596821377062148380106045122660131850006039950671343483760331210001676071668423654349230312253722131893240271685151339731261884601245406862045764796845850137389490959031384547679593166117609904887651426405559373502190719570861784113551604920675943950996743451612012777470538664471265665509156677870358251615116585090920033564454460062690063208340729663112148225360470127053512024066214905269973354193867459576758158018426906124629519271370328213726988059783634307398133052217422513981165351467359962806201114124028739924459549572009367676580571281002542259475236084866411595222283982215978120007111878461667474222945981555645181675164012141439306600897395605789813499350237669433756385411365854750871306328054055248208434924555347262643912339520702764754732361839970079743778913551306556671631554918370833605257177260747801093547950334693789679837534400360661960518221452114642298478062946339378260299580238793535634114489002697318285942185698522353427024658315153716948260384835601106943145120507727325189195136214950443916566151848154723688552215898114352376268792302578512947480769973114049504910717200797467157791698298243504185629738064340085923650764758822438213088572932326634025802650860005553065646069095228457446421451020553391252015478189770774284274246477946356182401642751939762950651188700954755970031365942135522983881162986211379704712798235660561095828568572528143054652878322194841160065316403714377350040867711303660940664453755572329669598349064071247396430949289784802416044025934656242605188221373951232998924729763821927718305324944799394771659610640379996181791797082080229969956689501699160460307682619271149822446918995788944099481790116018429798768494260260846342058884691130283791101877801973439411681690707165726655914376381136297966304533438113059384887786280387928374374052965270815378223429175882272482819318267676714347950999932207906909487283698510463447542870847088354844836027739027991292246415550926427348774640126012346586529882305768664414339360901965594466473295461263896139343042763186360513460397205165033198452943417729776657370355338237150046181595778558540008328361528348708757470899331692731560035102746809298443425122393290201908002080726160311269540169849468496627587547024408668269742596092427286978718703997149176742157054036425211060353684094992364425582368940643259197074838597892250470780750195213807910694239514375673364062463122480032639863916115765836316686473843334585688899945323567489995480432810341800567485797591573783345097024389596028755281840713168034668714024790412247650496427923286076047994945340115428026949867495606764108908040894763254702982520200263351547922925043404187836316176384799795404225483740982562313103317224259744369672891740122039658743292300128761109122520447589513708345345363016608046107048075449392444281852740790952798675424638030678639222237699661200749146537272761818293771143252295489183862303833715209046386388584665721507501624642227966917849731784738017890653975196051112284259897197896513031322842557119740989715263579379349354569295453814143293364906998857405707608259343210195303843004160004618846573078380189878713279931776729023019705220287197043533073221924885410052916396750869726082561860256777258873635786244438736334183777106751358953265714259804157740158509976391129367119620276365652974272402051354027170132531928293497055769560292107401131993275234544284539791690206221289133759366719716374293190885963340421547609951931280199811039043045109837840264774660527260695129524477592118819192850681477581597606211524874432527949785209910339493742612121276872773196207082222881334736960806263658954977802494928283660982635768523173775232554709147473407559038639614712242541379530008409002245532892603577988707258409903723980274520278911785169985694773496042198270369666023726017073998106081327691438909657401553150119650263404294202969289479274250235787804535741838085304087663119968580143842910553058692579195372407003014409759094543608420754798880761923827442278650726293795880444898779069677871198613336399585836822713655109754665756036870378729116669949566681906436611843928910180459655199475073274130753982441208241229568975762978661466543699218597731631076985638511165830633374116721518118150133844836794538483148717700054926615632223114757401825497081649429754535956595987893680035714261975105308699258285411698731567599773760407584192718552136730314229556221557699005546261575448179243919048777678569616481352657691485798077241670101753628180866551760387640591365686496471491276898327435859012426618213665306420981882388007967805836538085531531304891450139591188860234191455921680473686651434476219625638168118921113149717771131170107861617552369591094048598209020803273970368433267230809395376515653518336802357037570722259156114062293811407003078122998322943771528243755762458257986804202568780635997218275803225915094481329633897830668840066449156219816785299388979967411913241396192266801532875445542161914004557269859909792148024030905693182736812678928140821186529372221534274394067989107984593292523588794178088231755383633725812594575298015870510046973853430763623538372307826610035951705076892511255619412453710145735097805687129480889997565117142269297358154596672536660580760294690960682155423409878926370664354111182802530665698788352671766259248318889585741403344965238778465312254839003745993098211192489919328878727972422985364049384857404944206143543832721172813678983231164553663178925468823009512540883489985644640643724631066901485778042129786228930685472543668362975745193925488463861802956158948232462143134611242113370123300650972676612776054941682793303681320607900957080386127985297943258076753264952405035655744483011684381762810631880439891314526071781507663885795079748188401451387758542736097569988492260787051284522214461924555542177718918906503173239807671549210541970378605194882000599624718648161263797035556995251694470971060461632650446906514511890921507014564050860984787243156070637243207774052698914387934069746585449237809915711764141246212381763397275923145367460143038190363638430101889250380250997896537649348526364519125406566042124738991551586666875095948560530471673439265351596982174256673568653071254445680329377069273703045637075175465526146413475737357791519274538814448248979284862382647674323467327822411627641330914361564838739356909638815209564802950666912082183925165360032302048771588073164687098047389605180927866319316061053715595834280871911818955441333339917365271253125903437596125142359670032952255643425896311213820310522339649157711871318767813460428012026363579371683995144059223212943992438816172662835681843412761966297270206873129501822528792325206774547496616693352464054638453861886435033024841814893892607641150059970840330768448550428520622021385722214789826830189853048354410800743238620864548342053706151022030515818906270894028643669771546352489546347641375827431062146345457400871011761351239140931874123343898440783269038009791014940812445723530565088815071972963945880137145303633413784949800969263114380370182591975200871819666150652638699269591802635116042525325334903504975441868734884778416528421005195814450683789187710762122968536692884761489021609902583311225411287747040527878337807190925656281628424299082478606308334198401466574535040057983686038574825245401175559605880844575985281001931710222861461318695951054670661169694134488392085223262136313656395261219148530188119039885430285478442098239333510437734587218333740794071356205323410773762754722159549762150025749369599332348067319887429833803790777532531273783339663916247745806782789110206418058232322620580277306166525149732634159056370489074948889304547998627387655221296114305568418690780944450281808178436495267140789399166638368674117026706241136672987387349409613499042182901496870744412341123263578976382334020200312855368312795373566737140603304583679436883363107858354110947011534202696312388060798464385785807327369286063554877755515921511217350879861316229817370286061253192679135533295510387119545688856052203683844021396626202945212659603395177977146605528227358479847844373750258919712269388848908298400852475422579436639653200128326792560431632575009729844901553940026161102182281984464054432940997942629954144453223778568453551267157525547149243801449327826948242303366686928180793240879757620694298476212574115029755396433213667131385951172987473430183422543863832795375404933847914599977946762640050684894776514497621325295351720240108455841930643047919964273386132557280512384380057756556897692062282234829796160835967933172121379133676831908039960531667339445271474108303284238088296146909525186611133794553025166909338502399388986560791684510163222234048729597264478096815013191915883796881602117848930892104743874339901161149151025203435988870082156040115685142773231693944531421074519018379329162310520461039720465315089995606992551293175401969718010853807923306813122113887849885372022932418417967993633056477412459006034252555825560845993721032539883175926198501043696222194076755854027871120491635315766823389208452296794049036105151703422170225094437256418993774294217305312777232974187346303038712285365122988166530596919374324914196547800520283114618891838479060891038389035346873149758644696259040069166761114618816708463661706966144024322259167181991941068450869379790127829156328549064969340749697515149569550141032969911900211851776913923878817172683095900159807399698849159501764441605909995942519882546422027035402842205172398345783727938069538247519465295061940157054520292579045110482824423368982483112834245780611882309795052651670760402341861688937463594139916245850968778059839931377216615838005713245511867948616898734594629343067316777964825064084977039990003869176628848027137809933755416511916316014767781318213491223143864780814637351934753886321922062441451819161703536115896175028185405814341549951993886676489691468374543489373366226152742998934156267401949218624841144219076634126435999100035235862227675840486467718483095714100921478916745448029307914011537850894294391627411837687867372945502825940983709630515486764091165602845606446041258741432480689028817186496507516457645856236575703207395825448690643178368602166519302773129424804177686948634325195185704132328157657093099512988174189460735521202370528132996992718775127726883683726897299044430831596967052692057369117136628854217995325856854948967402993586606809426525267018103794982350708872803925785820326189089699329864280194632211012862595446297860984684326178720386432589711972661677736306324831682494392139796203555231413076882881132605327488939852252397814444096283198751374582635409497930828784356458124208746907672161055060462560216312578218655994249395829560691096873163768926523305582449314833910006824897123711955310925250969115892430881952533082836143919661769874901010527046192574979659009652394304036823037177023354050330036573934173284419292437902243523407122676642207918333091489474862380959813209639991051437516877008623329639336185628115950763174099560751848277390247060529942814884988822575251898506901058424592193304213411820857153261957659394471151645596809329632577818518112414016982933758744374148609251555730223322385134140610191354957559877575559918094925153662402990859130394264937398010113660163979596998168017809024711508765301427910217757722199148803338042424111003740582417125101930477703324633024383639951515753123097151729329726073312261556214350852012502995752657112409236401711468401955768292741458704615807996403942758208112931725478503483127598665108751821960999865430644104745110739672123959622025433409789555737509375555787722726613059902092103427761012394948290770760091692371108707803703248032495163563934115414760375702002050282901337749072655728322377861312982765631297968783938285548975038903310427647048650140767737893893079979823018577105318845225526976739165374479818660923976207687358288292710566962374325875787131315308873527401721560620000836884460495849202298057967795643698245029237872146434717495137831769209560846984542425281481440812975632460685550033516270301780829272966190524327559213066439354842098407190360028726397760182534916268787533046759144142906417819914786576143170162317535002725499766748848246387505911279483608146791229914554255400318581045210974788341571979074821131982146564562467496984954683627299472879518270443285830795413714811632591474048111754231424231084121680129794388232988739471076021430884672016667584121174672345763865220078647694600902184987183504343762812990177503625042882314481658730096429557225102748914967897197387724608104553404378034410270545445697480247835630810132835522056999402870286365483090275427230818846891519748844357820409512935646625120305900259296983123897283114999401356141692479443552327175868465041759962654302159615394711459898120961160218093804068069767472396510741948784943047303750788354538319262632964845166870578244682372954700315571606665747622557083915271869401420996087411547555302290413757964707762862701604383757706348669112024675852507598263356785616006335798024617971739375517767382735034337994975806558246923593809428219160512144910557715200293683041466901575785664126875229830504890497502310925753024798665710827956709609499650596138158721692904440490301308955142879747520292733357553144574300693802906272871546920239523180721072872082310357805075901014670656219483330097612953557289791101372824067535918142951313345804091440661345092893327009685500463835307268423380175054707748342626509467223103868789801637891971172440175127535403358084190844142274534961078386066525905418222791724359415380679923363631119813075562539762352374362823001024328423142339226206019113726653739869045228074691300894843817563579235751467050648054426155401671960559282896511777055640002801672083719389339582452843159411050063947150320361488219021046918735657435563298661995722339798240548304969091955071157000283548671548449397511305822001831530098074627707973787804070067464933735658551137033419763855190920269927111604719615572915002389353487566441527230721714634954401610090642468139517957872925208726854929517540527545015796130681983191066271926794320765538402305230989093364533022709711951365458716978209962778072862796937120491953261310497203986627999567996799680500792102375683742381130086658098140199518944397895776680566841833775823246919429379548245555027228518687292437086735127550560390585000512334777275792495737235031983178425532508067563281990817240935053123738596319783666664396104474983231583320562610088463536555667409471718178377260462981853983605319637496793806903876405973537816945749000384421499390127310257417339758721771570786923062537654508386291421821447070241309413119090938999997512748968831163618270777834396439111384309854205006397948013356538893894830424909273063816398204873794250547983045289555575685838508802196725636758913576040325968426503571119070876870435547410919125592897967806486000298224101161991509978367589351096086526211097144843875525367014671708910975787391284368507431702554478657559753649462629547180702004781964086155748377696110695142838860312468073811783200852338353014916584340457365873296517013829276384555836922260969315186656080159191612871527477952881512347330810465841648949947793947224896528035862997412729750249194907441463612536453863759660299336105054054310619756147578377827313525719951676577593265322637271058577044421499423527333044436951169709217249162173312063037510632253363647494645369426181265382063606085371068175309329182921427124448573039302136772555019949050720623954947441309309816999903132958052972408136949362413741909918262152434557906393512810978066187484203774388185137509731878541215203850109285917211529991454003594254595646831768113565568713014568958703883387971044937241623996200177951601657850144736937035734233783683083649404337183097028925198898397956249374952650784297376502901685713451641777969097941821096833825875632287080601519013062393624661906752357417555453821047094629854941553957853909392837827922959717158400399600701269766748621817959526052753760993128514254960867889311680508739496527204621471600798315655503308301449168878064659517286025867201383970491178594160755145576634629896152622986566866085158553655272541573490285092696302008343455254654815271279961564802979921004685178542778658188910153088759883717890873310066858788822762398334381160687215777329774690793829230180272806140602742701903984848285922378585451023166967195783674825628944182658116144507795122455152742758733595215438450205684847406152402714115266004285517470006264130281490254159993146795261967961497211343285252851121673039000471006634434859759545982690339640761381445491479098211133354856301439070722131184910460500397332211386891684108252739782616301042108931214240118903811043189790159560207851779531640539356412776593027684092662209697427356128067924512875349360395189052181084260597498795187951291494876589308785727884361034273339919996723162052882423988426959148258191940322048607305320376907733186784901461905456012629495079060537835797995723575629951810678709826493782207630993599435372333423815518757812480121636432133822453469566187209581124095195832996781694968317047344015286192973519503048409618454062474743024050724234934757705297855407050169679203116236406215959224445660278615386442152161041302225646553867276448183625165215515866714176272988504873162726566993683801810431933998200423133353606328006184709851726242000894598010116225445363865278782413970363805243906430942647178908104642116768394734968489878727290851067645954120825748828294080608827080897646681784283266842203964284879499036101348706839979558351204631147231810026463141164344407691319399230020328485666638408429374081428067384959098852988086826748913715972490612224432598287823865445871508516707317029345464926993308905619707887429960815064872307152998953855967264467110158466981667262658742333607326321621555893881983167681285534097058909936910628430229551349871585119883259995690686802591737292243656532492065312692555715426415613083933337144707609429072933993892023346280987455574105744968080231286098864457176817791548668070156968537126640092520292500894634719758475449895583893624345239717668583087975962247280450047387773552809035724927249008290237710146844321886175160434539851537719875770892466609033207208416739836716517725558449490912631267443245190786726580410323033215808622490504694124016528977034885294572155400630932121632008283667910609061806085492335619785406508667905694264879100543796692271219701050929876363710585844128099361749716514182869788304000732082326222341122000042127675181379885847595103619353540930607962299224381543039468335184601695132861811776029080139081264608681870523606309255089230445509908073939422784048295947293671480329911342626612429709870619467055607838878620968641699316912471370165039138464703498994793961666938249063359280411039356064692736551669222030191820970214646269586701246972708719690758356740367475187362870291342074978394297433630983139563582813654893476927316534065055623979549787931098874975865010347175295710948744008731664287684608663341386835615064349286234280211161275429424777734098630393809154428800139226235920636465216502965506998676670839216451841498396799668971273956192167103671632874935818255149417535872472611834225288999944110139710196151096780353586871489265108326516582659196517331393163561970888817284648317582681381415477685114052878236101351218900963808100211860691174040162891117039075101523309786126248488965232081839983506688037239528928845735596883714393899270123847480767651396361566049725201778415777160998064440377219647286652431778302155116128152303765333268662756847050500012234548293687617697693290009886166402928953534532999063978229716483660369826292263409278266972781685271406153538797063714778321154676423612197943470796156338894629956006794525254070174721834746300831415261444029838769795390141135322998030392546579498976857181268338902047480809808845121131586499462632215682031551686794857835847504277501677487989679831671980216954470964460018866694751986519399395897216267406148849182915734363323940637250721757568892491900312740815559930844252398379837151888711299580000786325310003209023971237736089962994795632485054861602003219414254735234522547654531145721867379942509816354732446368886033592566798035844167409349813701588979099904353362415076640703443920495701140350266558612905708709743752078002264381391518663664879185836690477182418474197893903002224610133169839807341286376269219495192046057009187652275547818269377120789219370903309027794111827196828021121961971526769118148749851584449672425377401111536329765967939992936853848931994270342024553028068724912959695730808563138913176160393035057534771972658209067422864907058302600963096670501245063312146798956181772995749941290042829996755957989591278266307929402503991590876204511186221173046667620851560515958503491773953186425219400172393459211672409046188340858110201620220742707630644348997687072774336126758485790616416974237046833688998386226148394838481282690722450893044991864037376143725237589153902041641256044619184588995175599938095072941847782114882870142267357818448681719311555315335214129614962913964972924441438753195729894609860959305619576567135496925171014274907246228341660565989844064076999425797866447463505064406421601970958280254830058849671799870490834468850458167854428069714198466493215664851697791194517106953683469496466865257968662933315701443371412331267168913786473136373875551293187355508038295462809384945688033159599393489619473401058247115695644463037726267836309255444106044826864813633438189078623434582633637282740555289887157507428392141281346777262080804933995469822592344992006629996535449917436047576305683184801069536233183420539880095980374112416326769712218948788275162242493241669793153322077370166141812436267981171135111453447317166906382141788369574099132452095873633364683607639677649886645087046547102290415012394118218780770182021238030705262876690506865586666643242968408718735206743535960504952630078281826886747949338810502162661300796533358441673096818010602058985024736495503472483666792704104937374187004980099053119790252183745239864198411186049244770335170276097204162291262099099312389607769873822304625089073770897145990013218112718554730717361076732028384053009775134188747082683008970879749364888402778623995488531501709442513859820581329688159771748420715763766672038196509174734442797362341186518693168704018559678153369084402462742827264781487003689955014467961531151992211336373613867639727875923733377508710846494357211346639321546539821967571364147406029831453139365746505067604346045426437753599470546370923016602869567683558958884094658097300310113615380867652987799950722597561594053707995254384570478651322258672121684928992402527220147165360810497920830877658224560426823912551515245854063585059197012277497640130671629489091693983112749492378616550579092597072214820206292069852171117401048128926153799029194343908203861308482081400953322793205420380807012778921473176618897165832002403085436621381606304746041882972738471556545710864785703769054108021379564811210926732073949636939591060705865484395937198311915748364499899165797193353569729257526370763910724016725659189027508045907904426282216914751510640854114783588105119446246709707718125727606991228938575618061534982566823332391511701159541115552977870163098585213716241901997502626118024885932775544124293006888492647881155474812743149636478623986043274231598384583822968875577675636501370048149872161447173774534566846534843924097332070014887686625758963268639222315854974834651942589666970001645631969952058276990208768181056786557951733582111971429459560751875380218458589397780341831882891832274775756454578292048361716892286876090832539750829738973684387782381992745754414173109436722881627386421896148659230699848445586370412891840115122704296947942669572515851372101279453631368155862391345712126489386127728799184847064072832664755745315321006509246960969730800474542286202779814070217589595497699863330869273290557543890485205736860786642797611305641292397354475153569557220022238277903968595727628807901029874587901404132591494694566547052392480545486893429767491659183992035739751615513128843936343602060954073879057339958198782274835078596257338909449221211265366331028671511733385626666073974081908464105622055568963220405314124556026543229194428259239108677610967225447217389232513346663292946919477825346366349432694363909904324717960875874219380841141295296436600914925911285375034182164745522121661260836160640262439296965793429592707644988644845934477895951490979331843382282798336166622774304017183709171815238686446775240137273048770537720393493693064574423185043264209646744290469477956959567022700938986805026420907576601622601297429476361746956097600499829778501536720384822747988816234799600123900644895927396670090153552176587106611041376501908215501101292378495052865118176946184685353673453961107993267190795110639452417966678006212565866651048570101157234321123526540375637322723360564715130236850606999646196781023460037739786418699987305549149897197378182397922681331340960660600071400341070638346850475632070361547451036913516281492766606942836181864967756707338798129979786264088481479675974740327611452689445985422004453525767471836646600896041148287280969383143657580549521254784077407306407604428150335259063042420849978172977620659384609006200586472640080637912580702131131353699870773604173404794554777762444449328008102202353708185625213095712338841246314307962414163960033461693746300350712091304957347755729442971250118066492128978702877611376944763904901608361094448876901375406969458730902086853348709261367669498119388824861677425935187786629332181801416056827012772527911234823064049382169798654714628502849723460351965454394864748744883994049567928644595909111169900857632746847404994862167163372221663257352018653080431897524855626124735201180914545595253506277048900438914786188266252187421415777520691561815156822624144412243105872099219446401615847352260935950850750495513359758208718414916889094788683132797732624318942448850991829906717534472774715508293844295335727798676208551920918283992499588755543109851797044862227017855789861711901743064153136048593771112740488167709688565705861347639599177123029617388731829869108603515831857280899093729256281295990592931556903338940686488539050989146039397390756068133763608024432869648286481057847814002547143796532986369944903249017279558931216142798495967353628970737996642857226592968467559225265848554037538499541069195950661078323372612937691735414566647999833884004900520483864404116591480030062137955903510051715613377468702193854503265341862593008647166185992278856471301823031232733417828871698754417876905876692405010043313667305958747340790278530850290046315857544905768345458779966092960900466629344078315804443855255151896797928886027925569751785072133068892417889345258466229115803054601024878255790128640925125415422896823035655173791338089815042531211545133426402085428608082257848336377439099370620057184564022227956042290000237729482780477565247157807142437252218577995492760395842553038713307038838494413856439915751397665041392973990368328361499970089567605204443674493693490497294338372199278664023857298658505376162407579390896999020049666605518067865994235068123391053708217496505775239938043288728873900327951144206012814861047870184080672122218397903078389174239417064563794281711036141009182470141411814257401632455736517003003067719406486731976496774198156413548211779507010020434347045830224237607636000024633639788681909753405686468587958925944848817596653493281256889175278081422727376641795164939930484658162004048890507120367915036993052281616561605335048435369700644894871669728332457206341114134368047961766924230701042403012276960779742424924400878793558019886077747631131458100977096213480500448311795210824145149284107693079446830378372370234066191435116934573528163915923270412750386516604448687106720335561892231275824195445556644159922014897989180206437846390265784806470449363561604548868222157667170827199893803421435144364719830533720500589157297936554157681423429773845166491873434586187323490658217422705379935399977984746082679424729094218596112002086728015190366329771201245246426946072962335936330916014892467447184519014490344065661777169575694937256658899535761868207732935532225277034298754709063605768947645229763254979291612395438931638142207816080401881926515271263993206534111425693743911124082840729734584934363299079088796955527750557483487372938448832242578124580085697914180472924096182290234600356130734259155348318919327741097222856327264092524209258726251008946991070898416820441113068902491981468039157984876928236069283588842688833976494378277843015162286222279284596187405866591935724758952957867532835066438762570512100965046893225308012233028633749288096243381825499849089904987765873461870824281312663790087724800199020797950897478182863607023486914234361734253846971435893370947114262780136329329408255685941354511496156134522214319945810052354686630129242270573179157145647995694223218056920008677471158441513435670832703495544875346072865007061387945518282843845801055272281874877174008515088955979967312120124193404214327646088769447951528704309152693954815046818481241540267903234390365672144855065595285225974966875272883450068906447442664173293931689984739467731017294557444983279042468920797417982925530488623955740852310798268391607848764359091858043623320197604751996319807923648586793853039342303203440017088357701426038309916458012052290268901548151770587125332343256999184162251061268349017075744240707500747116727070698128056453246012934331536961092030076237974114544570248526291946928078213313964004799944901266655908214241379590694902486971283343588287308246969247166819715059343503394758548485639952523398962113754808381027010553932161872405635241473911706472032101280746971468072102985518876104516544622469750282377421811184135787236913787904165408824557165436125814242354463650704376053958014532677782591683500859215147566219573540551582121902390258475730251761658746705086930139451455312087044613774521202491996840435877989345361930782263465868255489961453254871285908457072602603355177447400967161537490898774361668363626648145082149528453870331737639978550598497069634965871011555340255350489299618078891154111321328128063458631105986361331549731850555698671900118766267009172999890822518227791532339274432675319977381759102017834516021714144012798622587934889356054565576532406796454806240314495003090213912906457135551022561846133699356443874082968995254016961310110403126722937285514368334962489497494037482663352676064242560261608388249643010443332475773012969787549409797214395487384090676250991482070559302791904901381201597912273281042086478881602160599104073448984424021527082073064442163746171353327667598682696695645503128461037224688279149997624030915571616369146338760472127201417097939860734251507589029989663170050237874497552033743061511303932449703883191098297159641850819845326745354896140499943449982619143909677111523632750065985219479867175396299731557209926009213941751795250859265984891250058195800069112708310051202084791258054325116933756000189232725276241167279696085507904799143115563111580744343459872207440957201009454236686835124058279835140503161239913497715246720540436523088488720057253135781131805498697625010356295909190267600130378750227976202994237545433921004735866998369219016778074770855553540255510162296213779833470728517044796524022506587972451438517412650100442754670709142541913369502646387756263318331951160645012078101056271055398029269848267047296467002280792300016487980012859090760653750761893390402518541802967704651241351501264493594804420720022104268224414177688825869507567080032433392546213844452642797266904128245768413595646868120153027730718660419525096361243703460582887297662121930792323288092678880046661186659114800370686594929952616497391218410982676088413615107750473182120622952410437954404631978405200111754304175171031832900994277439707383814610367885618620710691428148264701616818139297631952950894504834579603831014005849540368272001346626308207420382365129880727461095443920826501013727103747714893850501998018537296496394709596240334971943245138180626461502103964278700017205835352869293245889438880687806073485647612509400006253928700322734047516327426963429750761776787826980945242940506373591833307859821508948624428088098129844548361308239171970156666629743546308373052934593122454275022757006720616595419559102530045276618160079312551658346826718798008925807841421677340229145948050577701917509627059713726178382344229485278824859720328148300736395521159776226453406641817174931217055910096638812587461593618075776402625707997633835671082910762519416728608586593099635509289695877582171912886848294973792261815105497082404731962038069619263110607898726858951345921340420013885836253385246138312938531775281724315561581996860056854391872958860391829877887363661671012302528724600471939428171707548698154870047549255090911292210085568735490010553372607987844814914297392594116679238753903067015007910452265504256575213482004264650236525676954668512393870214110034604506590947437436591480010169860655407267818229271720183359092847494087219813979796497983854021196665718928919157336533932324733692806360901606568326589075883404149040467339701780129785323207456105283964212111168500693258305758246577648450834691032840492662110938668458772984305402629178180942375127694438355538124372287743159271357584480163898780633847702373213091296554806125826239110402550061298081605058117291288133309672418550797401204130646064327266298469022514568729772367130610255133636853330559261694406929115011658484416951810419585343458950634282819493910600261613513479771152984133764015002488008576869139056682433380317377434895523728901386392534370622250132653940064088205628447777630018806823906486675728351703831926019308494618497237921405652343045171242388171880355501051523658924620132029457290098246229609105164810746321055331028900626717380890546802345440087872001919660485538898003469753727482966094403016529590700552112743234640915842711094288934362492618834045880328419919357377438611171560017163853787419410715380687383517375884508031418817718671034511529215449456795235390987479207504205703709989871365153381225048010667678801471373290848109864602302742790880873047617799160010750530869721056613012019539967550412350097629795909890426650984938647334689203776666906854362912302706180336197689159074744599012313062780349837767831624705132929567205722370014667668435810589224231482822250807537613268430473400178950644374490440036643469990432025461548685955211910970856028821090325356065136516007346708923486571552145294758401867169209575150114137154699032249829365728670217823828784339583236284711816064313943824772008338103631196612571090532344063336934136980291704250554239268008653099394114974972770785234481902711653678041295353710824607453916539807755101342669834305823740023346182256570957425236091051049522121077797121850242461327530068362108480267171715510665309035505295735326341463501343061188359636504304666808469294280470238769601691334746233814578214211177841987203358063001217802275031050183795780268411309711215835187574626920522488302632682520206875063439808319445288640009168672419292385035683587840893555676661528958986173470005294083005931569373636537891213694892817442385667283906225268882754262062925071130298770188744145847768880139868646622543830609541488632248304778558287915539423993527936007538280578077720418205232110801350206237761554030273288628808001398358731777183838775161804272284181828630670486751824240199243880985931074349660837574227918128626399148658100481952234111912709706012174132420695355423608993140720187916942362149283736555821425246573729068883217374521836871123743700066564462458060180329602224109020969917481450125564948799578116134985014348215809657740137395552737502563430118044484058339066875985743040504068554305470238720993221654482221762165649213701648332458616147918080038137154348555547708118571999373022856021211377291273697581664304004664821290233267598964719031794898548138807169949085360746359433025477763293432547667764927744337837340634557977589968811313621351511607310187872168871366499072245022019436754905515655408762389560327894304102705336672784849897508754769362041012715375764252640891212546169609453618882959746594687987185481841971288818902014971318847660768401387034177691785893309067742607521927255973945632323143290271566100120268241525685594296645060876494425736675884029774861039435677037670918468439689098130114134347808703190592384599038419961853878627803508178321959207454555668082280804903327729401037763990349485056802672171710767341353952441711765108796434301294616319065044725562226811829031734655399520266498371858565012252400293062551764045566271235297227014014591609700584231212241283899719747691651532548214776302832491533694933677761449458706444723724939820290932879400465225270769511529399101768578129198249483738435210312345798268343935954707729863889342873235026900535965659698118658392942664014482272077824395207362800733176457551330699898203918910046953508097599243272521363913246428009475601875156376605341462083060785181741951219749244404619929424932672431345813326359045580798627558715436247905193070738948332708095073652348983914438686991880877306144472312414580086842132230502486895260173573836031066531583159168651840981247749579137727217681346932766444556673701598236885460723161432010347296455057090475204056525002264127510008680094966955400107689630509536910660496924271647222487081186464239647587071056977171539499753798909644278479557288542450669766311933822071221232738562278836098373210477365975278330661151325304396893173366063438298532807888528699086723470988519812642818521427023723459246410923940817402809490441283284344130241387726677887541033027510780150651034442111998187708253472703155796264892925528299410227869026940660309612142884548805360382632729328750754788375283025040886653829796944714448518139415279512339485973903124496255707028465955246142209370019967867520438982925598725452677588073811353409951114554232074382986009685698947304199453375296278880248370673450798546229100388119209205875612667095761290867742811844225287151400074875224467542042472022970129961908307726576512077051033169202159787250434124291768854547480242457873802685806939095864109809469006200354365136771354421016231083180035305449007545957854481768667459301565458992531634425800086181373662196223742238933560071190784535831083934428164844746377086013376911302580390487109367095637584988276379743258271503928480890268698217680582450239172475638710670208661082167834206631325542259067665804866552728227079403997319832173941172514474988864788875713551034066095354951833267575404624800840490920675874870100186826361752951316685093518429363892257701343750987575753413655193038120540801254149484550143480026110222574505837845312417371863131189283614103965714417090898688284605863666893157774037216144889490386155141619698719383217414481898041656796860316774046680389494585255474699985776589282754705144380909589022338415940108884419308144180137288903649258883908128385343406587542059880250417289939541098516088043631015918358768222197349897360638464485149022563550804943299662705820159750749070743384985135088544172318702685392884746652082181916050571367450648876398071408296192638102199355993727181476955823132738348333015087921285629733236114360154634395311153488091944265047257223031412431259980532140936374490698784852132744724483706814439062360971781674144422919722823840046063977943869766146613747870996894423008701929511448519373723452057123513433464262032442576476660969983930291708884696582492124056046320284652288727496029473717974736011719032821904389108928188388033496438159576739108957923447932302433724775968964331734507683909307937292114395114825309211880472070722912869687366280208421931335200747138942459555146753454770005900386750010992112483917414036967812222852531844001988152720219155875591051912312247806915208833824531055659415754109518758160545950281836691528957242709840354518259252799414166613447724888616075520506740850259132616563906900966725344630472794368910400576791487123309402938477356127355643494034846440361410045956702670714245080877782011420461298720548233162090258505402614071040434916969542337051406313063646145578991377878436828834652664192291116122312142993441822971340271653153540432955811373489458136674113318467102793687437754019313706977836678865350240574801966674892793035220332032587874448551410362691036160736535741368311263571475881855335422867160041114352908420133518646735972137436061396696954315713507945584902938969069555853323114927634081249045243100753857434522335356100849030303184566106155247863844517643216384459000513274278763695736073269460684226831739801113971632863919867515468447709683026119741499881802003889568157749120135019690220438285917348512964842996009662952660766389818478656276256904687975086586948162000791303098101379616554298158457798148597070685134452681379947320977640789711712713433577587792855735744520564709488511042286278390421042099058942354280215548584519185948652582567382210537423593390385055135193890583882934611604070989844228689107340967456011813598796239488836382037668178890954838572060899600036448126470668015631644126712115020056631243243926231418735908284478565698834776250665468263207755012705617906567252923279681561147894663443398833065597392089809012960094536133179432795565295642973288692136489360794039111080437430864035927291196507452772444680232652919679697627011223263948694013344687674522615532457262194929581529165832770726649697893585360780221633282046893081049958751844419003986635661365317448482803913741806520375220430918023528312508763829965812842855142631934115204781942532737522228000485051284822123760671942341417548944353155192398257306181695646698775721460828145424416504742254260555540585890824391686827155899851826222321815064934340855115211300936430897686666723979954942851452056847340748591785861482562840845464836652645775091520106844941841582953052884995172136800403534640463483907296784762252746362079919067008453092431160900663919759176995615729932953421721614382055428954129348168185537222877100201183282418379592555067739676911267817538350481356582672155617391884693022185629605650955843172723524648519699133394704838801675037367278189315311257457112952942500539760145913437321169029105499229193985272271334412292995873281004655995820662285255641363148317100920440383883498580048496956784957410153721147495681191993708743497968719634334763441499191117956027393375065935029239300727005682285207215434448053118542557677048266276554311948611052016608575257411376482113847262280035896324967423736026783346543052238575767433876494209502204218472548541943566864502236037449241385757120447087008685450394491357283717737874147020810238544183549825773880366744799214079233751340741829103856094916381302305302350977678215001185049482473754519456704118307023985591939206363038969412349933751553551020105698949033204257029614422453970554605148522295864705153544297791983779404016890288049091777929775012546790069721398018413879221506511545574937906834603561185673699973227275849721932985593088900156156793338759572844808959276973514667629529957723350475400519774771212297794523402600093165108825731426081447996714431802834638877323367246363753589361279905772800663494846377361188992718907667083588846956289754439945305500576767431692579673274990203799001788101493747850019038909325229319868670792482542130456267604491500163219063091802906764967925056333380283846023691723921437967969748767483588408435309488781139639233144374254558217126239380246468054364594116951403786775086073286119699728826480205245461703795033759263902328145862903829122423200946306669756043476096381778541216161377386555795629976781877005124004515067850642315590409446108249065190569834821112336086712473446715444375426927155205040502472071809449279951618128612663256926129155378625588505283923782869634481408902173526282578544365778378095216376547649468666992096458767599171133516360220594472687565123809278128795244378825619939977518502296641022553481095813961342459058070924494869981166345323471756361368905578044673157895786951593918130733680640064270603985872220448584992756893125921104900748327367782612652514831259015149388378065046271890733562162329339110644819925601132983451190858162980828541076258163103264081965051081026206511547970554095825626553944241743800664439489712259570968926701902234986195672492915069912760191473102976650067497748316550788542624807496960749031703203616404420127925061395015901515582101965247966187532236754742364379913253196561064186988215792910354457258612643872994504041257712496831084396194220358292301308913840783036626791486079676823442496803524221633460764987524682840078182629699352512219646498053822324700988163092343400648951135277058287605493833357054470055051659544718994897959321057144190036293268613573096966529905057144169994073469796765981009796185580477613520688095166600124809499532860940483274641030390550261362371428444660829945290268444652482706778414354811939057070687752033856367163198092883094051714029181926096956819849823864633182989622811769523514154924869799454483897838210595603210540141101602580784313440967550686847331889330268564926932191352716454000126274950632613455806875177221630456816653657096891060551306492495568759240468418019651977660422070683535296159582589027649145986386032930650530741493901697080041134994115855929675267741288870515204772763235338752146656166237255957242466383941811905093128074746100417197016722675332874115361422735978325571886600461439676936357850640346786414571208130334039167140951733505626110160507329486576127043012162376476807278487829383919645088261676517503690203557518169948315189600506486955126809056447387738662196552798451465996369506431704122957019149162020762400044111818685340187483502999452155985518409036747015184977709375836705152849249393640383723297224659219831521475949095217352369714493656219524167067635013313680233784492738649857198701459782800343905544612734912030096749222775331759001338818244107610619605459158049790177108338136155808079410263414474403559756183606386261012790774172435217403086501476199049710781487222940732190742297437287077738525403723168067231279784847637088315377571881652338740943441019850840827448907416284907044509984448780085291227361899725734538104020731763044077316518575121799119376026194518546730103731678714557802873718388765563603363678940495885750143030161108655011366222741813823262584509362887869460702213339471028953257680048204980077727066995000325919397570815725695305791772592640350299051203223892569304937364324244989156713968248322943191072021540402266688746596904285118788888686496081535776502882428589214127296656542854139167004530660526711922769338271651788381614384735309906471564804957409373075916812951039463553313715696126492699505767015591816853917800371593443525002206348625321495798617775160250656805754728969245294124815778472962145427039164353846458501773069981429083092759852331193298561084371468380383588579985286010468820520020910765179233105747667718167599849706422352393544197330312272735103372363797962815939017736479680884392270514374883412298565616352321694544144323014639507231743654495953306645327731755583627268004763012605077825500889185787369122897301858358342358484798170113240811428271045591968427610664504069550211393014843551167839174535191922143222272059141930799127560981330931075667088580381053142020608471321585125792659287669353288108470355230666857881512455038018554086135960553077609272557894995601505810819714274787464420774927484022523660216547028820048273592690310930244001947026786981206860713750718646772612748296357319021445093118265858653249967624806634733354849174067859221563781151869389629464738735534882883638048127122840774307594747950535879691579855502393378368286689984026628100177464239189078498216230583867647433396093544258457883432963153148626607752873822616505995278388199332625811627823693120214907884855558535017820689263595668487519218764050115636396806891683220757974638158495951462640682198763144462460195213468017923739054825186329579604692175924587265748249280812383156899712725796371587805842345022478006636805252883197490368053238836606651409572015804834077758756392322763299447444213684737099148358708952448252441436835065468605865627422914928457446977368328065134650611170760271826251561831768066004106062794478283491754953262376531965078934717375442260845415015523201931762739043601368658560053247819443583599840893324224134794001282614329123520294429567694463643041373804372433404630348103359416354249340756901985624167292650630856591235705456609329134245728289706357045680452506702896085728615085189199478241723573258028464612190834535537916984097805105211187834806608430252981884531035416879202003639651496582228281158467039364221868477961777725502862494623135354737530314041263589623017258191263910042780654686010921232447101007023629261880282413111588574943373278561672092802842373706083611469978628185523101621615610701906760938486611912125216821054651631752099169011357463734586780669241877553431117718219482772081073935765528506982011982636115745401454311217874291589936059259595225057525645872818384659669076786183696798366287150254432906686038168508199081724210472778483155623974754384761773230211825997220387495071884039623800137774573617536600529346411374552340986135871153823524356019362730417162004116395192621185946850884830758667283983527519907758931329955667309296144711239679175624235881497583914002838498346266731688729135693380304555803090401790655038201010247364131735193799988230139905773436090962500135005645753015187084397022653337061918259292345964924340663927203386278147854891291440818700358910785218485691534289988432829608617162439780496844819599597298836617560494930474488762300485191984904319919421542474542201409384600698300976652572558870280727017795366753763149949384802786796852884021366413531837985178021195849501263266897570740145893056100018323841797707669192866472570178704642951707775356548355031578480919761228285939570021536547865535900829954032771502999459594913218273411382687213654677864116722193672007843791883642238042512125133830274309492325156584222980170515497453993404655956003434415384299758147252690924363167924922593074576942571255897742969337235871516048810844617908805515572838056227171191732032393344139420433906244797744081113441121284984446571901135092025001112188981496167903441056430837150269969385943762582936943746273008008937528048509547355954525622934058626251503553446774242819388328428377921578660817953267598137033922605478232058573025053965918665737540322347862389739604150997015329934530283760950046398772670107922887856569342302576113599208463866622536849104857168852683284908311260123370858896385583858907420686377263543059424428984119299780938095342006532188464305549209450219783867156970370713731139777459259719178158329500794088141126417147233609067914238695842794674804717646971804480884110404519933797308849963782460407767955185898430350914051297703286490430423455217023350550807070362701032040609477510932429775187662007914052943933922971130556998019534741420860054116714264150559622625081356557699374316962500818179371185393161959481054216987425119349880472080010803717666480954606733752443688486160126364975485311931991165109820922418596474445204616206271394891433229384516998882595365937320457833990261202615651554121700820320630435587622288012096121846364798929647787092177991050801765233269208675544044650940594038977789458624454812700655185166387943508733644436738563402045166369814638798901602853842951613830732210666736977338697492458862895277973211561465744362913281411648899671535551638755812037103296877184175440786623556670179251487556344959522831624639076717686626167732912196568543556113117830082749258554524693676047018353906181239384012019007506148629536631577470234210708557477383562224885511840747998800459439704833885709908615684373544957280516653188492552135458634777145617556618070108982263371899673245530248440591097068934911369262253127893978082220496420999239742869670854840168343611084565500129704846007346232309588810524956172441876540032745756591371056779158523290931430783998692528174559057371543009836182468493461545857413694747544212433004222139011150291073216544507630169287038800016275791704195990757075194974069755169147098535065035939956519583656552231893415857665543372689284118307842801425763640367428869777983329185046185931014605930266182243824441117971128923468817258251520106856172704763262950272406759872385045700678150101550396460606044543353017691712399251722862258431738988843839833980777778199137068606620789048242324960589786469281201538400356834154950468740804061148608577714584218041808352457669082210914186747672899822271994783408948300642959901872087534795083450305238569929371496957032384330090444433462705044155631062949158180451610744638552231614126504532583802771877198323332223269691461540332790873807861661356880900146830192005990778308893444900859267855244090355901485849535481583051243990402118015272199045747170345860922453820077035954770595688916382765552351903310349453025457719226079027923631019881882708843033262342510991607390780393602840950966889076955055475304754270532445767925413113257397383177822518690081252552378210619321619467885379831817750751883129545698548646195303971311513442539257742894241947917411863553377522072447277992134437818333040077405324611690995452901176166110962532378770864429308191961841081214222919493581418573397503255920147006995083121217512440546928065186978689065269944248621952014153484537090273068906178985794599004711764478294824155629188658658095924159928187789856611392848315294625627427727913072021996778383484966784654604951194594890220137805701511357899692679905008390171207045565611823142820090591307280952939808024697292125355890538948324636477750591867317387554954773580756630768793435460583448254060042292826284213086707835176395078833138220275063821839445054815122732546496453973876678901582160634076055565727371742918625694041912512693062225011689831196896278756457238081448973189887965267013845523927650663292337192363802963554575822302158177211277754425722574784057855500221321169466914760335115313621571959646979905823924928714515545029671998813534187869448546929792515580943194290459479386073164932553199134704010518486139305539909226895327207845864815123205978853586770183276002112988023978327829273950182435293099978453400941801835852122391371945551463734714272550198162112811879696937346846419304190013457735183265240816183038529983203225784831557323612620212763754195832637676266917445396450767321966525007895051883263367704829429470448053456009443316502786912438144518112948090270042786933496137377966850996601462283263325962055060218399356479381594276923355678971377496553093627446842231735829373274384008028255499252958555363303488065929236077269068285401267888722120082944451781796363593982656551925254587862651433469284427077009611547239752345139499433658818458061523312212911105412790903028981627797332560230445944300332968130896644461429273715456313656722702612742829105179196397511459936003277658901963540603783040185131168904691326883071385468989376103770542051020340792679170306164594541294395699684477061142175539707493050504114137562450923233682358486266990011321932295090262015389258246838943876894233721178920848457353604162214009225714000411963108564214349340441152383289914319563723808428721283352427439378020825957981051941789678920292811546972465246497843352061340036904413820913616214479734222102848615696793637436063603219774020441317243589394706662823781176188370477680290730253369288713693298261159327071980988818175350350498413784540648044584998997707406014440613167747966775779918835824246634220217517859681904090103370842114159900346056611510482665101203447414945385343467864136856941934598952818232019956691014602669974613211676789860623399732924747837009453887920300630874032014709927184567155953748358035934942960837519143943385023137968863605824312581392479432307678818487769378743336459372580621903838899126575396406107619331838828242343447599611882909428654641890464511491627577883200793665340908219162931301776803522679095385253063201392557345465559920850470977009825216774137652411791426366193387624191509972000711602026121754328111111932745805113130171988358222958008265250640125988665833014302851539279470065506722731022486862343239001147092008494828600465127381045354754793140158520447647439915931933708428514123231431779445120152070247625208081977981005086699344940193191174560460065398793450490568341860342737159286317145664240570547809614061808742331348246784446689041860656767542113189330700393417840596644623258189873732677396652457931816907553635372241823686104830212455045094951135548787593167858400599015670242386486148164375544712652906966276317849326226564963598715450668188148881600533311442417164468040216237306333312491248674527709076729922437716998688569145750284510068239635478848673487311048847945955386079614435835961538164614463496623549680024893835037053161633797242520083421531203182415140556809451492695542982423910787041346377025071006360599631319187821713432332794672643921693493211068791417664544162639680570352144436796653558887721869480786520532069949531567178800164041319098166863250585687610926727198026408835045870670609156128333671455694888853414930244622638123979328215200814915530259643781036886190711549303065658960342406936319463731068963345645205649423126967502391436904931014997855921023507204846269671969265442230398931511989129976794726528689374359627872793036211426795480952507680167573694823379439360072721504363959861989750779513389067277910646252176130124978410877121014824403719545334709558440898071806037357401780178279546898737537818488660150632740613414155907190082871360143507021858143145646400913512204544268979807887471304974184123071478538964698021561329703694688176568276937177952489728208379857305039813468612268126207980959281958365014158696050279673112206827953140084604163216238976231503307922321007329038084608391525873418154199032387313138455686505402855175499391585512543064852980768480683244939176673987314016656119307610183991689343043565855065160296354497050401193225921282567861690965896559886478807329442517348048318829076810699875423369613401666721320958138953336543194206875624558824230594760067298015515845104418472263421150281611952072595429195840796871903984557345227941347497450402145312775770794071636152279301644360565390745558241098423188430601277391823447976161589387262544580363152516854066762976015237430172607853433192866520208933099979436831081173353628816138425074269297488520599477765209443864931138051676589229525055871360232561240243572889117215396128404607543967288844318852255034244852706661100086212068433720961305939875694826710428132755604020461623300169739506393565113626957285854763371381497009301730753553758375064441662805834548805211145297117565228924107573514798438162088031777536386756027533821667758806810471670462924972457970360729942693401920434501573649144514577433565504957545192508646951808179165797439838954115286281297677214446310030364362027649693034141333425820627955495778832267165164624722028901322041302763334578055317187656836179498404723326049606990034291671078799303984826552008221648659537456809360536371129794027317543272165227718417912728965289711716625049246919346483388172415062052108366507376156494350523771322480281306374892438430839769369107964314046510887820645069218122090648169208764921399141791219244509201476887635913276685012370858030240890609112173994557190559833119633922665083196537953987162969160622472495096535757583589172136123836468903599294988783275715287828769596289443133651097108575693478370378152101985512817910570452416963427710526606484899561686811229777085492866802611067329070296322831580623363248976187066291672265696332943282979475327364844338180870767189204293092733004330595543543679052078604224744243576385602168356239157765585777503574344965336397120303310045268835986314019845920987570126707877799865059655934765006927062183795931621001240483982515823922580033549483071046850705130264476299830173102131767687672318839507270440316098772862166533240277529039602014341585986621482489535933774806124221502064079354433150031133607439716642132164890497737619568869534343077768507973892809930437686572896556588373271739763301316767892781831138411964833397621010215713230250686828224595790139926346045194308821652315328518314609535735004007538741747607755389229974656940746310337370856373910347081114732273933911349282961522193305201065025047043422422249524684384792058979913289705125320266156954747974489946721352715836139048974063380225599670266304985635777676081052328575012009756297009264287639954331711519727090593266551566153654943075104280467178874097160438564640688648139551504540892034649633485674622605456841585187437415487963908491130205981272376805635112358211072074540863346642319928432745957366117252647313348517558695870233151024663131767708984948819498352717756708270875572381031000750372993261649958007707215271425167072076656940035228242663180695994417662400093336992531175578980394687496609873734971771956375430093322036103277414023387286025517681648366615987921822640254777857886692209837137348155182307035932783709604945813793541224801414592456609565620253614260375606744067635996944712206920386013528837037412595270568307754636352765682969687309053573471679081992425012169711612350032920629716429192010613984314845125185071790474132465652789045576809538685488562013718199197656750207889805718821409461942128090699152101198194302518966337533154714521799507754173470274860107353369613406955721101600390703087542858916939037677353759695032561415199640895648928979077324869938396453647485657687624242178265057800982507478669177254128650075635551821549009127206827996780025679602747439768947773028339885764560784494764211488751655877493880463668636560321716941801378895008300678634330609459790835490667738589873221525366045500212792090064172955549307965201728948916612943334390259434229479478380953038318439998749321911852111619298126732569948239036033745178962684426901097583909664352195346252069689762405454165395772139554425375307182194664171101426582532088609556628924403334353750242944456882246476964309091161719308977384653289586872168556179426888530851566331010222919798758793614914215562519267836769721202081339413022023669031845797092661115243292909405056527927470874032195245161981545060394221551210505719449912527668611508416994655128307494270160376762176600620169699722077390699363594138016167649613856680482640926439568982332388030831856233329976069697969927142946176670020614108379461219046571773283534327088818906757796418215851173305931286354093873496184872923465321083857374513831017887725665349934868880272797188061245999335448206342615188879293231929278449961482458390998743202398798663513361496992215447265491673569776068572047056904738889589069769309289587964340100361699201039085760901595919905191939652563050786167275689185604569583967361238009910204662134313544891050312447039520225184614569831534219820085022175383914233483549030713450292552130984600953711700027955201023466700286299386070641746084377020255418411820065232340756620333091676966479137143025163288315414499177184842816083798667971311153693768398343831760675020075546718891708984986730745357264025931092912254974289609250370664984608104003889061035748808597831142366418020175682879660855708781068217899267943255182863632531833010283331000191214105841560458654164264243932299114481887021399612080724907922975217736454181336746527299257046177192847056145858715175808213478179233388102399629915210904777282282458412234595666477127304408664322417468627523158727538213459088967289659377448139372827561154393007426703997696215616228589692045229401973738126409596084201754452870879830046781340123157033222467792821783466361702021706135763587225715777391252477598421393469469961908863896533393779025766828506025753773783813416910780222116511637921651633178549491671010890271649179500913844755237164988476322010644900601686248592618179871208495430664168320492812360144489997448158212893823047383142256235486086982373356789635357491087772760675985428375991615482066817335691570929692648410165984206029565238051044844491260204419263274739030178684286478253615175724211942347511440788352070536016838623818977084960632721542780999207564964882216117285583715439861627119259090172029508806798346545293562864934935521507726446705214762427178864778219955988622896369997851342100161870910354142423103061552496762250591104457241361717297498602048504323571945766276616726366559059091368577336650222446638651878727619757815875545261978237631529090446425375231702042650780317468363060272361233888402120129913110949098279789236525353509367577260982446521358836973652786457471923974280703848997925111672329891185690411413517294265163544468788387586575997850046719439461421341138376526343674042936133040506499276640194416461654524838944020856277527410003902722601272429340697173699164389508417598512277333500361056942605099940135130236805217711891808135907911036764400671179297076763575949463954828617925966578553975214866213433747781266716762620502465196325003662738040539380397698795641566808623100591538856763163458742941022530737378978649441609530766030296665139803509699105975605388266242812125209491825875215679969977005984031524966532521415632263665524052830849897835498970026843196790390649097931211177738683476742963040316530110924184826777491198240770556650580185347731789775955258713889868579400865376065346552091192460707440433118073690321728213908762988758119554158742749798404814728858319684755776091206503821968605640289866845725633208975914967588402217523429227252216896823752976003272409675167561161675280997939204489213540843261853340960822091382064933561527254231785334821205064657897591964949947039692963688036574077193930006593515915971160151281017272034629932019367585360384278209035690456341866957251428001457454916219083752935251026424673730521627272488777218765466945627402467479137608749571039901796416975767876950107893620325762067059409572297159647184585011749772931244493840851512005529331787456909642235765870023776945762561588867675028334407439051183032197870320727948873332945292318266939306176599975234037125009587717660769815113300594733265206896747561330126915906345965409658077186850204465062528930054837246492372548725024781885621746148441803013665377861644486668089551844698264231424207689437486071187169509640700462402974468779144789179186818894547655769022237314399494398974851295721963347948879635083675759062368128721077537756549359924097231932232763401275997841252837459990433483973176671248097368349005282428002476146074211364689857645510833180782527804929182300444757149310269202285065669817160126603831315335553865608503355121590505851183932518271079748701169610762828562560918545074025824160352759356896798680161734984352404903643996438585020682999836705825640016249056360823367642274381658989319263065900109557304118515919635693175501018815941470781363633942654621597057226628484370369375578144199029685102749200395655102920002333765693288685135402065206415208236352098261584960295498379369997784012167697620172045344421546129606319820409822983689671022546419806269523559707728004377686681769428712997481420856602272970415225724798318829482060180162400406192121700279134663202417928697693320582833138436848077088600399388931295549968229629859122377497430349950838934225735587751454770307895910136598623648355921325409029074000491138429758976176083527560355834605889360477115994728858708302626223999413675116839493838337184374980369925447042618449673933586399710162267048833031871822359680321397306346843911194879008230463645919848205552696005535308083622405585690254939642208859327389099618603983247284250463082349474933288360222097179550587115055514774315669894431340797798109793156001049509735062936973504028155291117898028322702653502354030206795983719236980048675139452969748463925416594342885550713441121395690547254775596721198295566372720760528684358009839408326064439493581194153344081039662635085327530071398378835541206746528933809449109591417144169188368313535434839794336232170044423160777723500969658217217854427428531420673114200093809369873888814701555860795620180819402231079538059263692673286458850519373192580565738995990693882780542691301573674453898008711822951259646343778870770226209164226501969965587727313606382179607079281382126932423945296322971912868512279909380519552655866903226993901623860983885154579315710031415099706314873443721396157226137545924763144599752159364026565891737990372378461319782684103079032390884694783965964271697439795820636899920454712599124161857522479885690904257636006967000413754698452332669164079173387873162780371802228818419626540762094278038453024793461801497083539002110876466795177337025475107025221629318926471447963034182890537633105027350228182217076370654630565430038131454599842704156072962393670731095814763020268195220243021551886563263125126089233149200204754288972920590505427757460709771626905488705521306403390173745010053619702343608436071016327338424118337667131539729580172825742980090624648613021325714016466365507654698650756521211635149335562539931747926600789575313008061256273563062644014562397389266639781790878815575078531654372300530611222949653312857144194221297613867513218199731690329937425499276949590728357542346616632669741752422467385036235654437265065519493903007071054317531032318067273176276748963387942601730427800569636597379653879631511733756768512275549957501194082034794826934010201376743766852998675143704744533134450356829087413886069087496032174706997969330232807172319775454558493274303132022912949142113251995006143016274703245689562717234535127316995724055825463228551146254805329472767042222403076547753566099737879370455322863454627021495955285209716179623353784077685173684569435879385694932683021914323986821445971209839435989165837631533946541415741318943264058532086951891040879432170681947046399218421819404860423657786139982720185969522404567372276195920089941762498649422382917053985600590837516614022463325418030308912124831195341314365142827541582883446719395139095329691227782751820376599623059773273743088919059723351167920255586623971364786941291112038826072988178768442034057425452964668328429333228913462018986684388747279601591806125095437880818757466805480066019844490539359036915041873824541743221856356828804496974335474408519553180882197346494318496637615791903397146505211520749242082384690184315794226456814108444401922231737117125238648788187988557916724890100481491180952026219995505776085306585437004185681990769019807813335751914803743734312643572371475944580545554383172166400574522968761967833901915012613063682670643181731802932391864310676348282818466136435485223739423904669089534207000365076816011192561221772642685446890293401801965310958748995432139742190220812004922263640366681982607802889925532528741707446029571760168835435219225310675498097705729944106224944061060176128264619725229367570816234207109371378142642469043909523018764249962493235905135928549183720348463526313108089699511240738320113125101857871009974449988494229388750585654387649222164852720329166334952517978737275808352159892266730602541570581093088733449464699064177761237516323818782747322806881265917481742826066832312438422933816612172802360863312185992769266181181254440838818277981182229198690019838862277779972451949251827169342291170973917603273301436181397254874407490717129747081959995422156147372462160446849583599424746766557860054573343168705615717048159420728572901861565500049176239585979991107626821293019298188327976355359100940135636351840399355518282985359320856616181741925151237028187578682336942858859140236655403134825586595980985520132100608981317427197920822134943109577149380106688213222708199387633027952916984459757367913360485468330220648835094628825462169317707741111997064125563035962443701002030338382370502145849967187400801961867395697536580753398040711128014806798573755987339307188464651315860471531768117113527616815262037532114681334918459026844432781766975904365926502634883536080871911264726420030019779132147491419722894986681665667035856580494707164167024346498888775660009443262045614286724538735070383831728960823094404703697218123775484565990619420929320406640718626401867356013053939466889369458543495547490814266055285957746892861829058478913141737625453497222521678634592626040929306689840981530723021533738858369492797695148410896365051112479089191139180905074736007949807708527678367953440840862005026948897505484456596626581206792113421251487891358085454023290005025527267217622331876499292348437633895124358397845233617868825922919678719735196186143084836243299961141503979963486238041454964083329879348762364967067196776946279208542345334265739967081344648127859503895600472204358660041852761178232855156076068763636878568080358646824254418012615959845962255985165559027228142683257165302075961695281666971130963651291239467201336626776010925782276080705904488201194772118507933654035362350100688027798036692527649936883884216516848346913965239334518360035018652203786050584398503860404239800592104436144572891276353061148011813287179493801518917546730504475841158544735173746364299684812790614884467537772400898032760578526941631993473517417034262833831715243920589272404703009707676725037598717012889001314857233542743998912480518128525253913462277792291120519954633199998390413446910361440626227202378354909821944230865977831807040805828794889208908365955587037443724015244500966251324846429914474205041996664149509702081977091581066870039495557765403244710119229007569225109967982566160322387478713755927543223818374551988316599596129308826204324269059661614871576833914829209397891496356716129578198673885251206736322428957103318186986287769227504466040321929292342529888632623490946090478820210378184429272883343767658384539402691072913497233599033624998848247829297610833339123254088554520824104491906147568915697829415867449078415000486029497148347182437805523867192629156115255222433939056760779627734865383493442559860686824194681494768350506605169228914759600983011841248846503317619979807067543835837665579194255349475484139717420366822791215853290964810362390361318301516688966451054446360789652661846595328767893875955052718490336707933656506511093174628979653081051910908658646234085501027256461934287998003730279421064629040181585385003314194443652362925559673193121149214204339380841183607633302917280364888778166453654902290094043379064801311225280119603692584930511336793053998335808350012122917854090795996641880768760135350374884335705129283061411101327410862282846958639788952838695340071334070509426368554642075671465249859425031132511697096061056685711894115419094087465099770367945995811705385299117945658545224850044657769688354199548625175121929082439561311043277887829738740586179049824052340103292819809396741468250254994237496906543701004741560301828041769552793817218313525045734228859487518129228532601358281291446171410457240312277551156177971022469886226221070003941153998696306568803099684368660666480632285466035872498275810992303869133546590576342247264364911759472869974688717137918074709327828167738066207876552628510346866277639003072200597183053155861706116362912237481931376114177636968513447125578522376530064870936912021936284690868023817407507812630071027431554851550447574085407021027021477333466527256200831988845000254067534280538578197987485834950682692738697307715531465392338834478430216132294492630510963101687643196638495199161955065080053667575657455023776702972041240423663024531297713350448746763965090806268695109271022296677514104538975555021264250535816681046057657143873717589209288155007020314298902317975718277997854903428621528017774341560191609162034890447152438343817111644109340594802091609344613289284272802305463052984111790609612376277714806782519062281568822923862673525715019820170794785927942501542969312010213137936446049847637467192909618577374062987379367860460569340878782150160867433543027012329185758384956421884249115010693774156159341995051788999311084406362332587676294516083582394000168555140375874855048474493494969393546514361434532003217013306902824374140891421994563814430580351501067960048204269606043291546969759756179368836432212909880268284361918703758580227747823693654473631620024202342742896280433530800773435472813267412508767587093685745035878861593817243950996757841397449246733087459587312966422499683431267406148400414886133343386077601876375668280251991012065653425236901667910957860639034286569288650481722106775243428273260834505325470266923842312276968551375951362262513969655436890115415684847194309929971096493002612385954535337730011803414772479150230389606498696989038712947931825296063249152347579553076865836114527673758604514191277772994011833973657912332613163068632771120395644837407592571050694823717545828002561201852528173079112587384924847390572671081779818573598781185606572341021083830246233950449127944457741233034251619231145527595022222906274345671768372228161392719887103208812147879918955532055946206953335969397664293393733094333703934923613061848995166066739215027997384165518273144707116248008644248664638265569788903479494253641937203515337226279738488170318073321738089522694218714854187180842862839252813982194315826880295439454086009474482709767671390054458140407775083987253241804539978376233156201441802208442513260696538623918540664960845227823674441094137127914321714939039403983329347903710655366293406890530654431816709834373770580298408084195933520168032075667257685116584455348597258568174563867697551526679458659154447813797626027619343530142209502456985511292461663326834326973099957600517511861948884995594841898969282447282181352313061859099295956363515814797803543881575566932187938267766716923005842509273333777680432825899078007976175358584616007435436169580054752506169455586571771406465291252710013157258363699125817963403513589284548554618221656350181035565732835906263780103791561092871086741662125186321176592872788334524663825081748447077713162799267096856852949894063749983457607752886285315588427523678615594580318691441784741746706644279349720175617893795668632763557768150694050896202206518224900016326467549528032701905821648987626225607012660221154866797857124233986187905388284229956389125533865635721374018889167084888897452284907392631363283914210594782735855616483455079811721434816200307381248577755072780432781744663427699042221433301297436004420814615063458269927922354823568741785831424700978007921197191731892276514992653015543923324539780235661084961832906179915703699332440578869142068270070275598599736247255853934130241854388582860876820276556123895088598001475114665584352562722572757322014573798399293503325690860054022876013869531845117780630220257120831611005668977508779453744820158867537493551103937888873621589262386170186167952000538335635783984859234299888677535691296985462340210328257018191837878533643485337962857690576054507302243964253187056534251373399837207691396169288153410261546429727990097394114915369608621644056745599072991229822650455517638722864252846552331776701210781128495649081265807371627741320799357822411547896041814025682719267780827669153987870164546114615582291982397653914427715466967716442661564545386747649240879293063539018030894139650389039060328101130750831533995291041421856330800663741493873241609426339630968897385143873158488257854927623498611841643861331745107100219668832533601168974599624450078005033441416403943109201765434102606803413755473011587414163798610628391843549906134637951518725344883824759652224119543788850520900755152715931155682369372459947403700118008243711287455865291336196608028288095722891028784234395363663330171988373481895272884621258877248046609630594515458319411162385687374351301781418346608793451853355580985622950028958393141398259158946743280046585946678064549204490510914479378873232238356112640948041669812683897274244871650407570243701179274190873390863557827347894297271901268184921005269594756205961956231381687252394824873034649092001711092789920621599623682792321242577543471988321542898556856544677148725937928343932782052788177694906482756294407975291644811957803948732168208672181285769044507358151762049799938421202566240085161611359819774926910114949014674187129992898709084930703547006509196843069000450520654643017516554349466783822253409172279189087437875976545039361832226960861864419876416589123909278560966292850233611691473154138656982742464058923437560762178565130008449325621095624746792536145328539553558841498248770875713903298168071283545218867017427730065431069321035829124581787376925825524750508997540266436399192805719298631737138999742141823339931340856335742551139307327618797373524024577925266327490813389303507863689154259407980699583090170742058350551138446268838182866542599769211884667950113790682270039924751205854959628999250876517025965594420538267723680756338455245130243634792987319821028068303318433861871680848107841308298155487808304744079295140365603510936158980988048871311499022264797126449687011641481697607908525753406735640375767838791682625403489229956434094641501947920250055867545657494811039944022128675782048833141577423195727165485785104000157659461401702816916258592392665484506652189763565992589968278454302197022286813103368333027564039863177782182014166430485996726180179944323485954462372841607295758225600795562418283013009236924575314190153721173709647618500656128084323822152360025864244304718526048893568728965248180248255608658271423955879354267923077657313159975778931615418558825486056460551058796982504811166527792510201065671297493906744613585241426596329877677856990370879149842248332953760931571073206084767122507778624319802849004054210947956862022694857905415877642172767801834766660391540067312303921073862143325027398585892037038262015067337927964644354711101449264482226567724937633435129850708957879464322071799038169024592150720825624216686037042233917210921818000225351267359220193646840523047111087262424381320584764845008321498662404021130881598828415216839736412299913815378990407444046227019938572292614208582693017615718470730589502466510887053791930732389713814714360040172684846434953971163322073744777498700423513608264536721213578626475659924409326779310919129382327174679529210512834483870104627878139414477758479563213580372582748119839054121023558849756548611379174766024574630223439424793938581423792632999987516259854749295569037600996621055437398602762402769955585245477750237677630174534256811659223084065176930316308906862260521465957719372577215380058451316193040983421772339357801943358017434369836443608259085513380975164628801195501531801167728897710226511987486530200068569763501447802436841733942768378102400685060980025701953354583750314346395391480068954424372665277952737887666613797549323858383553811847731993320512146440148869763949616323727274055710849698532813405015376936882251451896092114205880679393431275266721482358680634703418894072659073758715908967317612221885786721980003245414691938241560848760568195350468277102283533220423627917910432208372808061857874927697224194400690456734053248777246447192883183664113523399525172297614345472880795952940272560901065127042172853274972620868445275904802347427013466539344536473020344471444588459902048733059306055683824742831384769766580363599112326146837099657154659139236380552794934771882972385845503725220710023563942875840412484490851333691708963551557473561666439798317949116147024732716611788471812894161140382954191283881141829764192602769721250453332024389557138895955911137281181533792723814392307671677781049617629995328500052782964299048483521897768236370431153178386887309133315614020206941285633182150690250338793349268144121339212207158119163783798848471807983785248342703839245146105432519631017250172838334924271278329307281742458245272170455087150399158849587731068902587422179641136850575078921081008469295080810424993884446393775601340501223360656511553755717669769394688710629032288891845714342671742966275137530664455516185132478092416053264332857382663116042290828272625119837031597692903316166613754487235849235095220920487054181834519423514106501303324586991026465352217105919293214106243277874384095538134888865993363524315237864875954429335112141803285407430801302771883052552813603093665150631376911468315072920643568862775005888908123520082883930704451706001249511826824917074115912534795581045675232657296913143665406514690196535767274671528878668104803770240959243426154184683116410961873036444178525435475828361726819434602243318202431037323072686828130086851737065671036915118790528718248752879108196711196172200326880344738709492464789422432133502859603694832784398486917997196438091270763748716725574592243453654163405828668968922398584426377293076241014440336917115673150473763820763735670990736640109951059163672173631815621087517571398749269695298021889594859088951137778423822217323886036995441474187123668641636677115251318139070403319812965983253332253200644151806714923377086009520838708627665746065196644086682835976275696680125445852121539445707099319866689689453728155820456190400139138919656156777035593323294692850562152956594467295026745128356027226439968178105752148745933712380677429491933334402114201188586214955681517548049345657405004995268951578290346585093393261297243277571283218301437875788718217368735414963976652160363310587620221586996844295238895816402180049295163696580738255200000374969728321579776535517865163180649381338996596656036368586705379482206607644525649537045657172585814458179937705770323904132862489384373327532920324565013002004375623951881944287636411326614942822541691092998609284474545440389332475991377304028343040120746588087201871889090397217905649196528481592134933468213509310495886932447187975189357161959981952678770371751688846499918109231860832050641955328831044139967407805357968816954365880774537978999310014372886489590330023348654337186794158554857288236515764984490529236326058451529953967799446459104774187243215354248320540312264679695924609844532495839203989864797160219383336178879331765541390117749003906387612295472021755705670470826019717254336064484140971516005686392186350071718118429217511667835860276368896250273332251312972507477088950283669774749576604619116761632992409351558475993443208471580758678571211315497957594092054068952557783288050538269397869064951691143108576190070367756606869892276880746689939351505605902574056196202729814255782400431295251783590823718916187281155991765213563914358589538422817552692915337856733181291288845940818125523104071783313700599277171494260467333547197617140673290968791427906844004117061669209615892072957114802719605043040598663753565287390437226658648856798930508999191027435238619526890202287920455302429486960866216816463579312394118650863414924819526064437723898204117688664799943886883183012564811226977197668041204210029117698145654438398051582581020841324087724702308452599281650315082327024968363765025292104232990147127627131241029535867701948405028901323214279370378172412074030155519260392758240228006662864835277364413716075844983965970945228451974278275547591677283777171918008401584532772940824518868441721477877260700643347204558185196000454827994785701798337411185009991771067422092151420703756590334079179202652301174830594662934414635207462566479001028857583378100759990014563184316711907868605178454715918872092076984620657121393227646489251915606170173924636087523151528576975860944025386800997186159533582269244726211166365854493180437657272128763510785017157221178627940787270087634435772302078461540005652015695007887728783463081027955185290042318970568235631939808310356323063772845106583431419670984506296553226764471664273624678174413611147501108938611772134246835586483652264612842444209163381513058510063224871748408385595389675286754973718708873227183275400142847645136738390691289572111179262965571785934627780586114556217238952147952298717226748946458460688905194989002556496611272064453623220107272991694090173592050340513910853976670859823995192017557854510645845135569289249385985628030879206807249710235361388928557843347443038276737690910474466257005852530930546987508132768271787660291807223803004120448508809902027151760179075718629267674391276031871939156158400255595334200721901646073081420906491130170593113101432411892124705333458567327018169343447891212197204969670823338660123351952205664748372714020267118121696827129793773617672086383845280306409665563905710123201079215883327206142561961457108087038031154170088226466567257609451422685316001149219996350577900290380679991334315058919741778560940083024784990876374014699746938209604801052840217235625437949238232885905455292034820167656447931542310152389443244252888063079609901822970605188853487110455130355538044805339383157180647629092382427325992463718383023311100468108964952136094945151598414590338028173838990549699845603356867014298538457596286682650228571417505594724999186157653766458034543716003455036246785755717465933044002542833177665737599073162742600930598260059659281074573967715026689899463098768056208337949398059130586790267750805453259235288612191838121257503904792309236541464583369405322716771353363845006838517461770292671202614956682738736550671562536995500568717904888074444867080791944385797788460152704030417020874705381462716420494587993986255000605445536715288192912149983058418387566994411294550998924238367289815864874141092314832740435955914032718296756857372189747137443895292546040655036661976154254146277282632498919538569674444560205199019749135755833257288080806453543707197427324843396847848863348105934439428805557035496514057748354969486154174874445819527431265758829689318082887760657829088919747804210764305130381250823245219598814636529717805927765813000799812171927922383891970413088535470963304148172156866274570889894337607183935448360667884857857929506980806393526097100678305094527750527697249341743983788958280648012371999645794211802784898206352176448877282972432514407076443020207403784812495230025721135045396954715728979666993912247979427158826970513103293052752029006623557786069206140785612959499546225206715500842280458153260737763997140009673680672585110054092899623837562657136218847752930189386185788570757715499976407851977253765460500341736719806883327645859359442625258617281234850917647795273809858635078026111537909209538318961092260813888417068618838903419886887133828605101613768193163392129837023965570329449194186542579417893785287630365593703002663713695805806307956313129583300040335743841768341296921742350375275694983015923664905584665207717152307646083241255117725663263415051962252313681179748416098916585233525157631643065739542119052431331307400617242965831704732200863647820991888336615495453777372890253380217634882995994409235145823421154336062338057680823564988442982875037676785083875740134991939169423674253825329488248371568356840607442597834296893006118998142603325390195296077934635196028159286902519999874111921578443038649535715325179336124263649672819696560998684218653845186187262678138055439906486343466499118415106059139334694771332156054463554865673869127610511663731329367592113588480891412781275011943090594048465179021204165889734983559474869269250581211295052271867895574380315219824106415701975218432998058650704433928784819665498651246399142638162453487749277166482469906284171917186001036103211997468718413968931390638225556514957264863376713720970954897461306160260918808024799498909415258803221862135550656797184896872308330106112668879039843475060478943280900478810562423721645010242352926214967200816218266735025600972069687686187808352829981658474722761296895755395196242995952424774840856481814266442410506796033001870981246701075555385095086872360260031082512325263100960520092516966167650601470516032318895416320840188874896188166004019527413190761689849052407737358454783524260920094787267784333604096115526570580907292730268610614099691420623405761569577412950323114968729696541883798652109291468307687279245961631777118823873864498985875233494886550653722365446032130874551853213873602778968933693229268674856434108096326228594733988529542440875458400434224983689792070181924771692863249048612328771171097766430625858079527618013156451328936966643420474108853095045753792765403307722488338196547395565981036347028370780783982064829598933623956233501737581234541932349537088792265941655747632538186173785657199523792817711853538950419983385685454954471628041906237662565416376395294555840703697601005314909268876684012879052023044312716635482149249128660051545696179673015528420632524482800558388982596284347158664592519640856606927303600557633712423342875461667323157694207808153339145113874296612436915271129506038205127401162071505556986262174322907538170976165385927981123669026622027207611113882383436614057248618498438633402468010447846507636722727953475870576003743572032222903265157570803736699130783094802443842862607967820409180484729701753723338774892086996173332887611451557022845889555132709309103377985887550938559185392803025367755783362418604952083352621135709538447715834024900579991725337502338518559669599936529058296309577567170491534306447408936975512290534208440589151270505597815016609249618721340697609608486517791925686435738804680216585474435591312434148216537632238624138391753352298536822451456525094501135100118364914454036039342323159633211750049731827407376665456865361822389309889271687586548035981356079071560876858293130788536907230912808054156570147637986417714213580661226847918566051936499642710118822503830739329926784187708873280087568630348533273078691767953738613159531317181875903033914305070000647438525147326806203650589063440122113230470282011416421767784201183658925518864654516852501760511934281412476699771815308365468371530796928708605896446911797175508583102745291877167678185467586797648701817751735434806527570867093254540137851286822343616177008321744675743326370474304779189685088434154357276597781958517900074327523656972500104361863692824548884669824528611604443491708052921727503543288715897314641082450314951059621963009244561231142682854613041026813461806021392785148084354192629397209917837964167124077536242853165845247913548302807044321055287520125358465728165068655756011541074783525677156619388142110789698312410209186936639834887665768312399917072799447233513397040751136763065073028891279273575569072524303329300115322386097568654941878873275434517743893934633597720228983086965056158539926448878097817869534999500495390048708076780897295190754554125386561815576740790550523261268087244711359027970639549984039569786931089557158887750347648311989021206350770631257904776730422466082771443284368897305672875300941936076709770110198315309599342122040823753769934488999278250601476906056369652183261681077178702892318295161065637526902983242893527031535672503985319543529519792738764816055827901607592871416937594715687738623575285779188445369585528932446374119357126982857499305575280818404820874179154817193050567414291965797501731816200693795271193748403355281364722425256688824243739802241955573420667609794178993491030743067330193278094323031427563550368107228772164015036976575238296483305402939158138938091749119830459849930938753391950320162050004727924562363206426265993607193819873234379792251988495840737848899927337406955001170156283989707490828161048258587971285312272976101241262892924820873733553138238407278963592997781893563630997755099497815528749468242400046506365052768155565657517831657106724774929383945499097206893930477079988544453276059305192453932553548617843622527188688367952413655686976844852683416498150693666389442510415142498643851718695064370406577610149535683547236940205603752869318297523596350024568623391180641741075083065166649287076972634018909251470908057571155702864942175882283822892932152737993530489671004822733958455621245253164520720863243255400434077753780215155133616910734766587183007456352889605627958096508725124104000540005343881609913971762341381829205556591974299258465729136906641847946224839247066870988403328668846742073362541883533611269204936956246770408756383323538007189905229932762460791531596408380799647331761357418720238345259949407708675442214356538993279111183872814318603525992763149833469237067608081829299097629704119740408728701964716890042445736353065451954687253176961446885793437291646980649525997057609181178461409159850223682806627600468724790762945171167963992111520042367622631700133322273750037974716258345221142182863084908640768710568601299633762990964194673857959902220626069371020226859532064516011645956229820524151976079301278209063353220127433505032464500410881731614806206844109746809960858429738493130046126021700688869144383300955030764899980258727123469992781708005233480607255223896887906352059526448297559521437186709469077743882480971023037314412065047239759742939614079310189563104231650696936150413636994323338891646830270329030672557168685678844233905310423001363490076933554352109059024490119875968718163729256757591023554892250222264002231996328888261444505223124452410165459985192060950789781135206099715063490057117885620349910625006252381621263061984254295403941144589728292117138310226364416079765437047056710781295743759950113849105768863887573087896941887397119314176825815394188750554482218546720542429454190590094516272797235545089342506455270991066233662899571037869390898294817165146049682920018809776190751574731617129834401770709337446475460581809775012149259917932895355206605488883157660220744762516669295984131813777162371263933536292615566964529704723348015596512890644644472399030225707868914681791914765611999775165985229268367572817036534628330059865020449585744586715102172887102507815988923484217352905027836171232203356003547291806744897027729500570077036900615599331885537577532983906083006338928636891216162876313618118367837290946270237137921613069857097075323329622073563783543011525687468505708421240558278049234851887292525921645466953448131379781271697626329671545949631449060882777278293594554701251327358469108827474561981513272095703534686334731849000227743724571020330174475313262432679442554203275746867824359702229045770471202690488459326561400516942440384977845263728246667182673308853268402562308342931107514029967524052985900473224868175334446100580379362949219611546651436689803858610806833676873130964745577503030965226777609876250727886355866051882511603210682572158527286750639972988254154756965631743414973621552558524424031818257772806522798437695950942827326567970559345748913944048521532689136759298620153908890784310806350947688280542189635296524278310745184668072208842705308444977239186033952827553521063122351860328056063453077028502175835670894128643409727713715448096118651405054819152557358968782084128745264929826423161174391213714687464712740480251261964893330177917874858178732128906584203407557836026324766140533256540074037383626137546579822897657834237209645758837864754708248901085953493301688623611367255338463956956916890547675644925330999668348068948882933900186244679054842427836940908197769998591849030861886659185793669666729960755738801132838643700014795929077810455480116473219378397773076842255239667459190357505883080001443233733463946967250408274974680940164649485306620517376019373940794352423475465792248695073183113642219515894135586087317750872227232087348330787435381128627278105744059258422123078156289043416721868006201316868974239189423232985317582350550084942951693879754619062448001544795959045981319575306663042596778340350337224383884155068789572815237812484180142196874929058253727004843167797341223794605876045522023634188811857050732475093941175228826346623147408140053659161775573156050583868409521872837718198789681975368293583642046983285676447230076393248511134067886558176172268811556999899890853234713075284428998738045289924056251415246389706053699700329629639394616170706246106474118960934174726223451027238230076741771279357846481039460797677518342670767638969835559184607710306034383302097045047191967700869534375360852070161011094546324933577519304158543917533629865749783212565907973936637785275323233868072692827692087417531838016232104486284755150880042528031249432909090237668076046262523841320201308275879742989728955062644769986406176463018342721985544110974914078851262392204857056521622534037252307685646191647896101955412931289433393013907246325586560433636742603289763448440420308743619128940106821619112674627992348849715115410196232759179912476011508527981455857132911187920287895654084359840461585427928452391884159643652760584709893093027169487919577890697916800342592117326743234073546540875637342838634774195691914987014459317887192024093187078857318425962142483929456420878106473697853924661774443231893488830020143581081476730705321990049754426083049814524114727246000997713772761452705766792103713061243493418673119632504090402499325106505386907346834342618141821500736232845686093913052879529147046048808971045682940788310685692066292856177192094277109063079215676769238840060573860093495257749287589097125999109474031061930453895954525247696990999031771469422322937678448284538311681035648555153315333318617774642219006221755355978606766146351891236181195013135352345340778841825023708188185829865581143247708010499320860748371555266991544852321746896558709529412572160762370640007829625784367845020190593918842744807258409720584888558774707605864332666368491614565271452706318152777762536775683464054515281676208307768942960557361366629365247731901300887851924141040582413803838853199869197562733364535703545351786371053285253334316239543101692542206622854108548585921704585888196679164036590702552508772923943010178396406142700732477490980306513986466190577491817942888325888449922505189137150675093777774348403449999778649120649234823432289563231633836073314761085945548889621673017023728790442835169988874639787547864816006884633837916511814291754146267333296537462547437611670016194134647726306325465952486535088877494057491282077128451238524464472306441777920636852455442515423159982314905367831702721642761327070476022164223901907258521708568101872144708133811203856101892814933380798251376982915325510025632692722553906130853758182664480746044994435331027446940927154125548337396993456578541229653391992051212348065056990016525433845736224257355405028014632786705976333312910518191907193963148563820936230200212237061984290347111565631874584733923826234536265074455562535476758913676131194362696105117385388817711495476053249625261987512535817784841120280156466091316675720079630249388106570428933509861741063439155210194300240215695380694543074831689649189045493395115601386169458555478275918419900902924634982346137219937737940620403196191199814949277624753612966986040360315362057563123501712366358223272690662879506323044360642699830423954891838355560973094064137848072440933555922003073929961603602124319921489118539690076670977869903092512666053965928657940356473788435741786181033874598436869850260047063062376536999439387377458023497831978816565727282015732832649298234369254487596428061826598175822348787261527232157073661574971570289582556133625485726889592641670572996048602366468319932584532641290224947971580209299604695781073909360234242020280567971980445937467106392503746713388118814235635610793152216379565080856345511103131783629926019416275741054373536012185279810149368883537110817766581073648241933873267065795305710735556680676131646234166137663856464536731811156644062719829995024861859792056697994063906883835034415241583780346106302854624141077217678804090403992382367695042049436159576665123422886154060867324222297068622794882341433713688137161530049367481734665335721592247955660522955485362141642810229191224594021905817649025779477736961554570916590227183853713031372198893776830659867741765428197369613242902102461774079957814863559090473946597956445045347769058529891650728416345515648312010327741730270710373987513682102359950412624336692665822256470515225791719660963885571385075892103140709775907178486920680261016545015886208683207109906058646339287521787160677865058226676610060968045277454278991941379468986531690063566415556179154891031320581776438606173261413754224172310236514807880756450711607852876516946530190598519373999284818315692770743500003460941300610430514459549632698539632921121958354622503277480530816790056841737742112456002737328793530326769480487458384157017490155493532522007301689609467494989052009724446368265132897973129951691245278541221639727638429050994982959876726702861044632967834458170890336257962192800206001979158858642809505082680917640907007605198532814878224893957635343133905957266040137326727615409072611298627248029317300623923100999461155345219468087142186233777353307104310064963578570976214451764932628526925433166859351849523097855787040968710382217364154643597420251692329301828451085356798034503380503624320984165791582016376092611302959755765600091810748892394642387811699438493233321252829830980345203824352812756290626125821353963692827611951254440891502683816814687439187667304046559731036602721548179999181363890194790161752105884097423964199254472628752394206871677224872818574276783802891672866629785116378229680323149051997361679034574823810305535861201635362248417542212810479222417810172293928534217142781208894910167970756704019403297929978582733433643034402983224031844832079401684604655631346150138213025268904634381227615548463285107584308887149302967747647668475951343866122810049107961667833734606015863359651718088648357376343535712548664948358805425625897602252362852088376666724131556234042491296653187736920621664046403362920189360463986011130822730880672406899205709167238919648158945942790631315265174242315306435452312084869040520311102275406291037578964450676434452389126758371179892101268588048399855422038906966998993309185633272622427120049326381420988925406486186832899823609876285767410572147357087303842931821819462717251056396498180086200302897264092367889807136959148717873994125795504050558026742269740287093368929308062371512330338128172370555062703901945006539312253570791630936046611709933442960300436825297015951622555398071241275909101200197544972273192249298126355769506659660704202701561422096989157158206884869041348149483540193373736716406642294668048689761820107220849838039213693024627874076546682632458055191850724286084032145123294142990233477876050849685434723350431234746023115015064898474156602403009001527993423665667124797097912491185068878542042540151623069875253798632300758630465945057134603641721635828278020033804633775959611664376702793580779321870046680751472653728082214585957188397020620989973393780645926352738475581665799324554012510955238539068751419682776087157765612584163730964762000162394579635028110747911815781062221742790576990627044971017920100432272408407557173739312920750166001027561271603549433612462072793628804033843209783584369170069176850647185083264552298008878390326200047359601579618246400499064928830873172644719515939973130837010516713934597086036738257044242210706546241056962442125536172095782868644251496208969247338064580435307527765187782917941250273030689382421703604005135709533453207854504789286537212019424666643349065851465993983633386356098109039206603005199348953569898084986868796768087999176353959882183650029529746526158648670965144634461472381796117715737364949090999376105455857488891210813662561435979528561632624137930515033849692566843977822235871227619362664257360716598746835447300292781648012888640310961462994660252916359632152290164598655133270150010629224969814266315658555807811640971811524184744767644585433163743307585323517559550331427771285877152296414576788886961682061637452570759817649176632164292674596218807145197853196289437921928711250973855062887609912164095354365131833677008026372967636008088682197897274512466710745876757546525558312610796638114703526543798542391664377487350138671634562492384164670160652602214074821877016858384673523337472832126303868504808836510432680661081623460184188439985823686313151694063887812907760818938624296508834845366508947363771429916811931297693212765160066825933629221499520436075595037308215801641060729130549036563945565429135364510172917411044502442991702919134181590209979946254692164205899765913408657780915509861683219798497942282005340226116435687223209209770718520160660139718414326319252799524512973308552817272509026119172394746500697715267137365829042446162943915558766194100690907025107337036882867984265500565011714452846603540162561136771220165631994033021044915741706531984708972533211308566715095457039687064379040380794430797216301143223986145169408528326547949793153759931676406282062416511014731241593737441141445208703503146930476512541131919252007799405297270154380922455791594371964440141995274391403621469844175230100018368987361534192019020728958829204280901623830872404543974281265128694429275309973635011801558350976638262353090269536557167775040703021291880124548932557043942754370204944748139294173835240055770819397799036971612907291963570694280999627168305596415357531775329912656130963016934029927628851075240428670015687325390848267403400281833025287985823090995548377645462820436223250143920167209502739231053307620235256728987990001170814541668528009966743126212395358731355797502658840847072937567101510289361286982381184646152884086140771340211682436403804026985717879250970579597333165702068732765840626395885515399244279415979735759494181736666249887883411915616511325442371142841320802431370032479206088796786014518922371844640692036474009273337961965472820659817844761084089427555546063514732166302056683660202849472706009260928988261810620533533989590824697175633372430335295195648674734505131530552285364308426019235028296860528629533913457864372418045015045758626228194373575803075129326730619009195417126371042627159417153163940657387380430632706809376829377216862108185528136556449981495590518199919186088680288466441016016764656467870770337379674027592175900902837458291753448594794408787603795397681790767280878646741003573486890684682340502172043261306959741764561281728407038448993620118676160809466888183295610131511833652742694467779887146236426991912265551473524012765546037673262951897757262087789327263008622187605298991132307592987750219720539222682960454176673311244958123472766211759194317759983193892808047350589365927794539443220401231135824887958884127910721472611725198513254023459232594996005559137828048456417396177610910737868498549289125809280488403225005689766322996241432708575658217543382106147051041726263603710201687286342028223918996220291667178072869826172915303061573065731359254506465610428262321592896572491045640093522160215175657801337100944405187876746495234182271210024241461019881098700863405025412395614521359752529304546737890705430283723649217390919652825128384908182333200587228662791347921941170599513460196456534655492011972796158729757784461703594769143290092661094213954707594507972523009287112567020858327126603341694026654070675488633927496511383936286722511100644524656785840951631829052394749717641258772816192963660170420941547813256302904526636526847835148594501466166858667652195516595801266884071254466869427139071130897794795956376660143077311712818969393505003486258563971125446225490841466790027409889820612088664975527083305197886054136702469055935420932547845096546366223634436105296960404102801501066240948892401536807605504100876704812768319818319414266722083214251989460432593598089795162994542497368679073051354519983012750863865902645694412082746166241367890310117517146625063248125680895837884095639628343317144286934814259295825681195858438867397943870878436763853430134713560259738215985779469945582367660085068244361990823753358140680926337113773870255236087880927909533479087054639031133364338929245651559860794886958941386914843801825911548189641503166383708071291228553064771755076937963819411897748709322869095748382700133701981427185976321560015040239449460585973942496684238462137708941025739090716852306093391798113346638052439025990628989750948816705063246625554548230549431496309226163245937705663605960046902243369737427099900530411858449210500136117309578587609259934348207958418268850590795785910478449776180672223276295182108412429371724141927658652469736769380393477624947655957671498709492804810936141419092107929043555398393392200118178122586560895657746323512303499189694594434478656166089748480058135485300101379941928424280786962522969002593314585153277992193382648638601276647692893072728753701418243186646150685606430971111003179734306939687863560619166587668573040202277613810159476179756239287737909775369765994570120987642407898952288759109134177825325223034662138331998037851061824093184154880517020246677553643833658784855130296111830481623886687656528990462084908145039658133979239130738386808897491716012461242989134529661919738996272883186135857155227784788608660668058609819322900798387527597976256440786435061911687742857038940127641809404970527947898794331554516405427738165759510871995339894574567285970032296700945053422684919842104592455709137742437825603319995584549625456663575752676721663835927211706352961369051121951353161413335573891139794810749444843116312051863959863095462409481926876383164386339066854461760661111885441371080847708190784207497837328909908916900502024207294159153680401621579510956210581537623560152111395100935204853504867383602099975805622616243137009862243178490137332468696727250726676271165915931285776576720306203169908376015098710741542886424167202783182097039584367862472992340761987544087850143589469544582739378999117144660108606949308429487070233614421904427161766868189589777546361424799921856106303739515717886248616019134526853679013660683850837633666272658727590623069453325914553222894082271982517696094281310670621450008321478241246012415507171737936030863912079175985167216677521926052256079284046037748633060675468370559000652250863432128387888405471455736119808734409456092299017782907836851383619867295136658423469646122303442926769701332655801356376226076739587031340207993541793753514019631733577194862512296253183169173059962885798858290341579263004436169562176440323790906017785388877275701818361628563385152165380317250516914101085843248781684386620282255959422346363100253933789204936057979255771242789346019893727645692636117895883583079590341628363755425192453465797617855661268150763623372811888028683650253612143505457867453400378301253251274540454014684986925526191486066766262043574085958575576616308610342119926871502887726941376995416226225720947273316758845942103553457818793723575530081105595780405709977685196277957298330462771048651204788649363538044263396393228778025656846128387510242426477235441260482421338423851612854198508671523769830668820411569462217442656146366850752253073907717219896598728428688153553544570715571114713409388012182507649390631322651877440110452462033032582919857230220397948421064848151655124489558411778493578519275649698972274728291194615729050777973616802665923926557991450671260490170930363032782668418449313289819389704063321210433554708047731967081811375983795531643280949963117851267760517394318740250322839317911115647510478521895412486730187875712193389171095700098174164047602874242836139972842382960779016383305993824732793387761751266539956052237533778472980631775645049450691833573751371236887881870513732930940239753489282588918002947094265268391181997938911232844402416098157330484510010074618456516015012425123447592454411884579141650313061995278538178865674020890435243317165139243206888775374879914532145184125009348500983644651139435325510879894268797939157995731015103088607265690370912301094593007587286722963014602341281783574709649874897689398210676874667395406456554074376255986084186455853357450532835692639710967065091488941423966317430449492626817520751929623442286268841483304970560646661581953037428876901716737021087775646248399299560768702970570421681381603308743743032337204600027247359474945601559392133402594086285347264214390056053473433178673478806075803493167878901188771482266625892946785767859429029133828535211339190217610979078914783032009118025767235854353254551229436355190022982925626591647633340930485098057890731187184130482868732218619401249028884477113350470176690294592967887235074374739662783965851227181044829323128680474569038674143179820587597265518378800926187497276975066539745258138649857351011424463137095997920098837597386012003528734385785973294499725530371405677621784380417248452486866366454248854294686530096057873045399351302428495820231923760842511052547500672975634442628010984243540480597509910140115513697197221705472487915111994569818796446295714075306459797031787731852888087626629318646139177138881558571951081109705743063468729619543911680332864678461620773293140107991282769126565861989336507496757451698050627705625406746094230620998114033520496246624010254971799072358282676459474033906105975318657611108624887199332827738625133154392613807419006434008432098203971163420725505735466614440166566586091416091092369195198082206167513013938786577352018763838998776077493338816596265095143693753067584950077427445426148212247918181064723541612768325589432632658037788796559282952615531266532442481475187377065224540575887308366851769914582398868697900188190376547017959673980042067695572195092651747420325642762511572287881323387337727618470792150158407612908273540433781756587785486900488348813151356842965788308347137568856561094169968006101658222834876463368147439823273832586641641992756642728245843434577387888172305300489259886690888364132657763761949878886277363362163727686910262330661132778177955068458002218523049309712851016619729892688908445375835533390553824377421375115806260876279059649727601171322897031212771332353166859330789046217946077239924820356734813013628202248529916729242259513873003788953458975997977502596120147030245199459783322622543212412485882233761698740393121795609816261329990923480917452492224159342580215595197837312846589508544374892213723864460826231173755531847663068394162239062617340945245193162519405576739482796736940255706669340813355794959056681785528917111086136249100027120497919854710511923165792370643217396810491253840645364966924461085868203704105708736878663426495171583913728944920546183364318721822186063729404602698160569478420222758003657369229425863016449510213656691395149427364942532571147260298266710782900750052217875728143263719212702935042640085577218073355650290427480305042060997340109650119097962388105523824250027720058836791016432573399654375333710929264077162179232141730350449390652838610149769417432240596561445983962730635940176970672052501718684481760470736731399216268463012405503613613285811681124641069060915757950614904285569164336477697194283314132671708679408406505522458550599364519878301338290854599430769355546068455276383536473316038047501113856723273730448884825192638114185974814411903266441972590468229908049835874793506087675016749228605040451483067631206500585376473912992720411037899627791803949257133868082829292602383076379630173632709966963286368492725677258592000336021180285565708127451188953353452491517493077776262876435014206516626380993852283210188533598495725186730239153549502042300657026195277654149264929169720164305544054475991621684366106851669342481720195662625913739893947555572209862784795329241614078705490878965029068969293139041012403591658976191992815552766685519322458602035445467342670835564430441078781811505016681406183202530834027979734043157652316607749322976101606911589083794954931280809079655779283594269867712886840015422931045910232620570815021954866386418094970859057771082701007921121014538766871837247290487178193096979384026715480704977912115989984126027298043554809392523883509555819526939743025373231804778175317134455777054661653928615532229731366377961490841935827478597671506674938692884881035940129528664250970595580619411333865021903035108154569337596041251232252818422441817528820346576882203304967224945824393928322999732786690641249048803916550425577095860072758864091210437672558129287754317910141383061779630861210080964395154377961893234218397612551503943244528135453615111891188608678614943525105872202538146611697845618371749137008848927304674145320623169368681065344702094413780106317434713381184194688301916527836165063525990080075772475348748847350107085406773085659891528590851550085628360396990259645048451568005866585899200592465494436293303177790716326732283406027538862302361928959942958638659596661272644294787680987394533861935022541463556267794575068743110563466260734791925138827071784210082786149799871210522769780303441993891994211224170617579863804275098367848508138881483551813824093318177995333156850428428654790321381149611654316729104496025176539550696546336339209270006554666403890631914005855403682895101740269293718551845942331675264491775379067027551459778156296751494939845066698226173585306976320387985388580853833932119267168846327565550386792828660524874856679100476337736704973399475187127050906293868335082348054815150477991116511013858415507681547770174880738164417037941386588245397091849365879859477057797128420138384218780331165378143362751362189441792140275076109270240284286428467960791244317382975897713134583901023173097096406383649178393456138038819938033204742512593104659192823862283834507407159539394112083379274976513224148544991696583726592277081285702535199428528915844350413866872088653589021766328020617108159058269327312672506883253749253348667305003840685583666692433689040074947244756134625589861544115494586050061741176221306826817271699605430861172989919516680740367928281202846619753667926046465655397179258499819535518893075007634696936615966342549509750493957311263449403046431428647368845897017436712467925888491780702697211891993910456495432518776395721770341697421566739121517482835890139664903717030497078008175712426742840441783498547012069990111644421229039574293442260743605402484892187767661611471742118077857016744219433979666852708743666899860044146659696716311323503929079849679804214546448921232252486110087519798663142158912788929840844335023271972264631481247560170619243078857345325890004416270443017452746774013243396155501362126613803674541422346908836057111768126515966245424587335284829892750274653350892397491802885914118305316242577125158832129193101906113243098380813990501482255465188568318583920136589381559224310752621627851867338802522066888231016848675245551417562006529153621030959321896051037973668790016167606230489324530174467560128648024597279098008011572168557130494160344825730867035251203663246607802157399218018652581499284911579470773509236076338636213559803275663389897666216267322490809868509827353166547797508729825889256871296779071285261279865248396182028406013250970840985815221466301216580170753507442792148147251564942498142175950910412594093855630782505024711635701721174709813611860020506541513713349962661715622329810030719276709489555588993718862105064342003597239459198730171318757283181554399535057406847451198822829062107950900532102948554321387178865632606958923951757389150057264914677154269860683793878667107798115486844218070828798879652906603206825557487165102815492945338053111202155741263680362985825988252013751288176431513601182332709206384944618729174896750661573920202159207170588194267231868830004444375032543083717516571040680755638605627538675064518736411502898652678232629811176493416001188155003346042441985595211184997591334417200651866704238002850150993464649337647610786699899780373627248722221262446468203292536277874816711199625225792530841327424320277734691962947866207255126368743422966648852140434380110561914553170369361109935162862889446966744507116801556880777725643333686904711686455199279486619207112954333543144099614534255821238944776688234385600985580281154529890266497427273391878554815879494358624719579381663979776200927041651935854179655572870128460477860252036938107785910977288507919864224008381652152865042405709719516286803407079179843076704530230310655831538751949310268423327753577841069385015747052637169598149138542642766272909855037702198214464051544205102633246786502434901395062029693808896699791879627905071022490102539187596349162198321213073462795712915258776572137562588734520611532314300936924857445249628139887811893969725622247808480238182672270028684339560902458691885615648389593040737209479768001129075354045202180842546355662062839712089309280384774820172405427275598453431582717661135308333934217887644181387365762518945727579347415591245032935141563216142595195376218036851414002210638186848594850220815309423007159400285407961798916901805392492952632225100789451327081511370265934526458016693227220976141671203393905241486625415444001396252926004528452132692073330679305006909977047816397160602399981770355838249228372290006974018881594311807836786681717011839542319374388934655203087328651425429879586382104119779511813637108613015675748400331198934954220845854714985780746379332782592820501902179415004915441668187939698628436650177934520648418280846316238996252335507601479461276070089606091411278977976208314298391858613551553146111609490343333002312388287720027449490941288946109942089725437434246675188437829768690421194500794369843379286564978601325936065102278002395706837026391132056630754032878380943342666797902177949467288259684658672705296672131096106654454105161351535202868299675121190523593697675117177695626700520998608542087037492492603748064851684827955018362616104279072950283728968045809910817308439990509475648583531864918488297092600019097181962565478036076633330804805472591485296559854406337347587635938547983395452545628877402392353673379448949606173574515087630314064132370404666761492382620011121380674176299389843976712772525558481402914229750712730186589701595769647913835983743783703213179661533797007331243856282822909714583201091300177535255843199317478817005060802497451824129685389617242194844311709108534342810605950284478893988180596631362990506625545253115255383982570050358237107358253301570980070282208850069864342089383401987917249895917799672913597109000770940074460119020169475334098935605357644272207070725659804223092159719354419701755275817898072201119730785513435586392009958045057135578077209513088977292289703359186014633020279850934186997495287507331163848945070035148703021970442754920602553955938622363450554084259367316255130829221439325060739571784864637789788297965689808352305625060433425722706451410090700682111179511559796960478556312017650292371948013882242536785486387913463449478113647418212776463471505027613940268591900009554418389862689143601261970871972569113335391467734830384289464716005599177238839166875134406740176470984348573824676379335145153744595326774531317317247285165963261878776999113487354249492711690036539663870670284249866631485164128140016362613827742843274955624582887488834676848849353949678230925308740988759910821991047793851792502098102085587399679201762284142049672116759783940332700576423122443900665077556587374457059369844668925292473105324110211194071072010074638313863052124048649263758307970559075734775134996002015184678188253466520166350707958441323027755491516117135688629263791934751793844341982532980675550403519102990401943555497110570468953438123675577005470373134270075349908725559362607203425289403363399744676869374890761626866914491360060920727511849446024980653979220133371132354853486203990897214005553749112768528681272595063189926002674504555087400291094319192230822178023873826917083644618064499006681338196887134729093009300843476823968980114300553920707574069386751798826130721853937677323425181933277565742913145704182370275864166870325074473872210006405945644302607342788744975131079636477038253471026032124306288658948816201124527789971855128933348133781423795667340788688321668720096181789173803554181530111803711655632478420888561709261288445280049517089775650841660743925865579848117718133612291360184460486408848607484609126904757996181360826898415927288994935674476743489121743609002893692400139707021243216579678217552091501758856941967877975114615617969114920907280509954529144333214828407034208980789227603040815960890580764129246277291772362514499056420112951497644823940727147340498312787183146511624004536390144707757244124538559293389341479046603104676308465287084667751329763208804663046157469718459372153933323635420660354244316792264679133014693776509846293189000896826768655987402493322981317358743524847035366657157624501582319490720610417716216768050657643408307337811484251680541067054736250768195826791881976405705291185163289264138354051511028304200245639296438484751615989807044265192048792533967778822194373675044098381686157097843760662815736343417761446855009173322254798413430146544618541425653073969900312702381694955376687654050872086260967200474268138815551507229144169495848055053793393635337196172059938039749458528365565822791186967810684270808469396372960793649502491714912609224370033989371984423812261248788983000727618007574620098926939672341218963902836181815029896114786573043553975543048106717889842924341363914691802373488204893981411938349127616792294639177966802212125810022421532006887012032482534172453727592927533260473258017532394876344851784680063225854880952261785107797596304050605729474070893942348259524132901077949419488591064313119527894429354222097623368488442592442352738714308540617751693396007706569513679129140658645454810349168793365056498481165408687613176635444504865682464756201287000078307208150461116309346093286348940839381514828782285263378486642799107608723865087718977405871938178650764430645521732150283568310120278334625419939239820625395979670977925751424177489037317782838456358839899436345895200035326381343661215139323133235654594362176371806948835951720085143070182470687739779581786252304263461156344365268269182349175653555274979160996136609073271853648917763010890134327640062559919715918851186590531306355378275248927195662894203058244853261160831176127914860230492020776872995215067370810844899672514745445713810753598368335943537294823457054478654542253182869740253289099823617686565643799416008572633562183900768932331570413425635816099517188253765909479448046562364796869660072729042609857243760046404430929084466467473697966131380726708472088821081437552285402440307408654297284669622068658974723006106422706643091485309359484660603911046461248212622275556266581696646943687928320042228164715989582035440575082261597058165367358007299495847046914225018789718629108062073725049986771704731859545041572664130228060248680006240694395452352942404423759756148438566623805207263790291356656216934484828842560617952628261099503791878212132866996813890273191748259069209406991409766464138396639063353058381387264598245921454885225600695273041411319922452463206576597294081599519694222382596332211279672512187362202308510152672518624077737735446633179529423131169217636072904452394876958310913312850831634546149708110450007071697364103065225767822718665965360254752652823633017801996552202886668688385324959846563510863593120688723284133421841830821367523098675727380951194579463919188904879584074140275482198883789847473718957198887999816341335128817327469931898932362890486253810203430172717501558631673824727245334777716528863922329577041026770415358433005736339375085462272877459289099315095203635370377738012516911021664478236538730419392704820299018279750113411726252278802904732192408934607277862765059672369560994056743010282376804913878004339985249968091476180320838094963227629359473945247535623359736524055673083976792336486858243130646749491849224868274983395022361784142878806261715866996396379279206999584047522238632496339041453942564516785500152101044455294904406639738050538559906171734389309497394309932220312526342952710807468253823326359510170507077854507812060905797374461877011939081606781204840017852338560183869014968837640246585470806337766041263478223916598089474996280237031598836969258030733472054469616693992938395452369607966650880546951199871663618337651047804808235530576600894938665007798346732768501613190209402970604175993848578740475947961021454275689666079288338039951694302891680662593896245620407185871301348755744089675988344300715549093779883760210565769682519612145062223597433994250262994716807393518884683131353553630357918211318127571653290774904965011001179083367190162155167081527004811670756138695418268749555832474262615724556738192534447360898336919593684936393649620602521483344361609711545794281728701277009375941547113264508309907452879288188229574125822738640591446102167639460819802124397498552074967780304468525890322601614293391341810274983464982427412122587942563491894704643896632745503816536410397881025912997484103095729525609073101534669455455841422127794102614309465304238120282654622290487240506028982753386427575268848193826924097731172999158932093849133655046003595803666406374821399908963663901408097606108968326018349493269603473291307177508373018851233797342489305782496132844772395736574339261518193621089148603549686448870250360737961354968977358846428779928535241178825156393771620790113605277722406470791243037503991737555946997931763453840454988899166670312749179864972268027474502125177448995842723321892862871852610754713575428787808536100429665164712877067771696809631194564291331218321110807322598078974660320926707021800309169936154066054939174479138020897885084732615974158847322943940223751192943920631561483651790002683012549387574835362286005395302287261491421447359072847619118261244486570037842611506722285907930493713972785462862976641128093008127182258277324109304224542290428440337449947028411826483626422570406344919377819511213530597545053800171455819099162655375246467162556512484416711906364565222617181900652918362374047155888051110661711735869388283045972561073604192788948974349134591184786994484330123804226494668030515464520295916128867496628886576123225345943078400828335039601631662786614699172305879381996344683965520512960279510393397529546295864249526328634609234855810014909643536985304915824282960600527625546682650169990640069613129641242024317616999921464818527821529558355604513654753698398178027324217712018877085669450876699600902078751591691489519906972168715302726760321541716621178296323966346400299662907284130148495038303743591028363766553817768583485176438157635071567601032176871905627729606496869496142786217651066273800618655297362181205730130284028585063514087723219943415508100348564054522087049944009278118175658882479146520259062469552762166345878293502238945438130723170206721887175444649233535776462781472636246558398889097943535286805972971366529894871058018104968153991946292567346497434521199343880434554648257248422323816923477746524393689958236235215540376861167391039735817293379442736408345077256285907056734413345815433636200676421444832444403230526918595035200408867523013112255710813373956109627860776575359337637813650252553431185189842475796087997896618317335485668656358521851617510327118024058322124748845487684880149275024070587165553632967170800796125461677344331003481920222670948897265706591386586827516736211590985406719814114574047891541207199367123769209262575474843212901237494488791263410534246188653210921284995642165221581375774444727816110187288582954991117810123735202432778332099098961585301325498562124993956349087238625789047995086473783795717834429971961578087161995399047005404534647173640396450681683929179156688542113501500148122179898522234908538215528476438240435363092901297690726198814347540768654369072194533839488869101134464178744362125459201243705270197211611795124944109785433809207935330294636003739951350057613081895705258221233328827977254442237947480479904024365143079689922852403639471052318847788006768828766922596984454401963103825439982452413832976770678832661882901249854366393012751422045146713210661602369441275769007491297198564033510134242335262265858729301936706037834094592256164949196193712610706499063217313998009054846525157194903529942233111858938168613815546529280743197096679399583634694266320477786423017054810862240859413707519167124252931549368754452693479763402073040101384760099974101428595358763905269838229894332968558692977961448981935329129259604334918873690949612537636727937003599818396144212802799068108928373046889666414211109035380494161218917303959039714187548115074720248116406922691345456269533635222562325721590854182198822775359858365071281675832339554873253136518747851609526534837708021639795401207058482815506501187929999148835705338048222199523517319315186690770359052316312957906043503860891486484514402768126046940597860939019989722566955380902028049871022677239784544169521328372794044627358206519688723507605297560136455208076266626985817031675497704585810188317834104496352026301105278458615596764466841835003309411410978217236422955076468480783888621166428852527765805156754790162231806252576344573501758353261171125382115776644261398465145546670794996001392041996439436600445505156426693042076277917107578087119105738746547249022243645501221730113578704703561797566269881332301278168324215403135505485930546112238879388613644345501439293718627216619949406553216001297212925023185932667512052863473459034467759418943315335029116585826685685822377057252074070118501255555258966726232630143537704168344079034705674223936555637425716036736830460986996470222991340416424286645678018218783723617263212239447398453243585317665629804912190664300304633182161190063862396862123089628797062470767682416873195176340581052766278040288433694377907608016765754108596492658210731031491736746102066543772835510365756491849716123799260429103006030680921582808812219284746250733250721446157146263744791943536712888685964347267314996394469439148419244819708699839353534452658431126304791510578202729215411462008913655033272261155973864878416617144538239300006520105741996771116645901290705467242475788937706164482385101489069799955675899241026764682545111446541038430687067125165915656077544146193786239509809101357772800116462928737414929081298031378266357848507954985938165980098243968606408312156652276123427928622539334604761355430579456519128445529513407938017137862709218705522546794027328486090304611992308204902291566725237858537061082778105120746551182957627136072537886193891414942734407674863510723133452943324082137853669585979938122770556509283959669725754746562127892080599911142925536748164205882950909561571422534090901300662897065598506836910318565826893578883244213807027308219436744268394254247163478100738046870122512916792119225087198058725716129732683648937488428441758442734777065292601212810200857143826621159613794324058340248583434133749878701759512498654327818525732783928111169880670268686641632097200355173437336923294878399830277983630146135975773337758825941484402564023894564300789212520078474882324735771016097742398285439212635839657400178356396364681870987289240983081941445356238772059000750783677956077245377226609883094530216306042278270974963445053488268489347010443543513437164762412654743403064601515460787741658210285603563710335953981511971511883660506464945964017276934262526776171668964030687959595789582630728703880155968107006551263364635167295978077130114693442090542732952687290216206670607247998704969674224447156713212792068344733399602241413839147580493993533673449361219057436350467897633986736180576771726143732486222350004364833560086963666227215808914127549278436023121145347953656537713028155315939187374205906106316473323646630342025794453301067421883548183307420616505038299289074725561807493358827154862155794408100056323024575391192198536596887712216494590083253857817988515451879515364446516580898541584313068548920141821917259200008373938510183870590772292752462704507389652350309632812952552489072946259969044440847217951896788823485528045768103290804512981621772319301409774891188089475971302666026642781027264522012761445980512464145806219335201516955546659516882564259957438207700658378492402575533304805385066718808964035639501478394239716636628909559563423304788453594630542443755614762574146237074263400179940848703567235585712155847421297284575146358242845876133646094755942698402635696873361878288329824676668287067261865586549377260343725609734293251462382457759618968482114736650760487407932494671931778144043640673650204721193558683033749013772218843950528446664035662821069774197774494159581792218428976977919339038276110177238028589892759193651175150275073634195685485375756930549722485553306339328693374580251076549279897197772221700777940738686416003590421004346491569514866128787958053199940493523010583206081413653778463983340595514537059488093434172057076478608038834174679846879327758540673824929347062737135135623932059151219717481449563125606658798479735923864945860078141870817924325926332064620526350005947516139953176225681390581196692592423879123373177678274385851532121151657157723172669676544663898162804002470973930842806099697169448721223126520682611428757342020318560845095835229323421286167926014882125469649771649864206539207607706247492000420910622535016236313708962695418541997441856298795574739788243664978952397116946953275990330944540457376426165553990238999024380296847748843670181090322636517688066524514211884613137304737862196274859623097812156112047856323185271370455562068442305682603790541765697117139405711778129425271505541933470406134122240560589693341856452403396827911293650255355004738747883675917128024628957066223833054349002920156743241521268765552612346721269324664057534047154387178460238633895013256932578571472085158707083551891675283798690541038057897658193182285321642444546188064275132953699593763363992410981132097600608777630837466833901958039567981149980216198444276389084683730658692431855960879207972904643404985739796309726694032490519545295111325339857417511697074753660107042310349977237029584379155689987957059671976274735366764178276571688836724020701953092140370542648382795591631730095860674179749670950239722202078777650818995768147846372840748729452918130855992901563857604436315595661455028608203358719361335983686718622706967843151442409489413908957182072804194228597508507503693842274267185150516329194278934662518075962112066202254377727604913005593623033524986774536731706104470449568578439139173592745411256353803572036396308062742163718734595502992849198649165334187057605629254556699697551725792262740429271438424146151200054228896907323820135584038599588455262870048058667644924091375363246337754882096440385856442775130715673912234953925846730206568115353676536686940441418415758372214697399137697312895962945932370738560819868887509323887024787388432324668121973686214021242501714393116286834493350706651411995407543440419979959873285437354091734854582677331223564463428729884105394871779903394085613283531065870785136127551919063465340818359240257205445331137238975464601290115444430188081055490608750439400774805025975242243767733715178451022313366363061104892137087894734119583796099578207023928065979892521323334013418347671745669035142497939795447959878216954722521750376812466016694696989673948003493337650798515054871707201754795623118365177485521457214385985249072710694972760018370426428733580415161862294725672502698315338962327223092364353691984104288490969083044678593384057285121064558601458437543821716890485422058899301939597431801061890068090315829389124035701667848602750393417280823546149289697225758058544341846484635770419835337026084755969641040015188549919629231688186162689299705837198084876811870362263360506693731181469167215275425971075445504140846281120983344540627823146022892251852609768129009929274438700243088737837405693753449908996514484596995703624067528149040681828882271301748814412930004163245021618855067055354463992127523911045144015873858880069497421211516916883665002229471311390832258092275332060134582990777079170328738025777939800597474392306839220099931617626184414164762721684700606918421409417576085078641423576288214298221459267549485380069598552401700519673048202854795479276786207815725820023139493423158059600086984385340053212049807244507521673386663704387854578267051418824210468590374914855797585010638030436255576688606748889550700659115537694653144850873571258223722568495114429969630147216507214259839459233381487793820974659901477742918671891835896818985195370191859454980001282465911955372107645362887379306020733952862647804481291473395180805519671716040588040968160943152132391294722700014703890595230965147262141538040412142845935726794321359585231332035298104063134483717349795273578036869776814953097665002222693333130222713096580586562016767277106487306065646672169117426450942068544347705721340950061012473131393741601923351038739275733941287184164934568067064048960552450957309984266292309584022055440290899416602637176264038335078568667105129586951983139688104477288439657497217160120398792484014348945022090431297624475620304799318578958444864411661809337544260523289181099439142703503395216381270778529457289402294145819634273934730313886049505141134774669885241958457870586673240462258511920850323327024650287860280562194112157650269908399793251045594362328847402667709571255080074640448851913716278001820339198489689645581699076474387550045326593457580162816011657420327168256186827336693343750368168415256124676128475561612635122251901422435277033255002642525968893240767593415428925590130052909496552007984012038977889759134333417960567364020979703744168324482930508103744640706000072657456013562512276891488168937355984075129850085484683940516730283644626152376518274318044575876190137830855056942038669316929441107161822045841622507681925539619157414000621100462516520316261713828217428948395983799166300205082366101623300043249688257686602055748072033506867346900809871452804339812184047619955533258362955522627988140956498822354200889768002545655897303945219818073605880265603369090519198336044891321078403252595912517900628593077335905740946089727654621150956321874242204002143084898419342167003459490695101930944633322356820389634496199018729928627944669190443812134873099776987562066371232956974226532997644167972311735846709780984338280507354904727758918277663617483653646997093419825165269407682031593857612977287985184654170697738035912995525946311830223454015410338997758221389154908370073821604773259194446273551225203546096788772739102747302247446296418151835917154327318287494932829971671323762601909718051983188040940156528062962569875405614102333455816465886760560416631265314628641755222702499141891264356448348594417686967326407289381365155819894312233723290798316270754303885857264867364631000598236699015163000142876256547199295236182686294870382082715092064297326346964443478795369887251690159122727220360156266918427782210328641963012631843501969113312384210781888362220115072303109012348592669689519919620472020284796142881580246689370241833651841842532942475189798410855083016639286280705286248005461893270485285922280151190183148749641489037200083115370483794338317930020597680342797417234499723500441556144547467573368597601503824337004150744920354767299295047728861124841729951770444772509479524718191515925449108919534909649432468554739950617433663189976946246163456487935542414033563288673177060953823258729349353014200609230481696056568779592768059318417652413403545353490783105052066108006711201686220996499999643412114409755910610579464022736884924426497318972510112771034178368740744204908766468763709230125785350646543377313533497645632155545791847305667384730135895339666723573530380454500384688206521706124507688880662383021806570189617658167838245178165986454497258079496360296803111840295823117289556895515379072830207011068470491241422590809443543048824757556840968817165153626884807859419481404127355093848385234706264889881753147946452859055494475088495681445320496096184952196873274702624269787331791385843548105170017206842238640323225864732220155009795880263842551840025468054596548877289800780543537884175580615698691730605594245408018570126945135958207980193130755185102440143797801758434187853716554665813467146258603524778574157279239703948584828853659663904938510204383640221814873384317759506177842601496091323299679153293651509977233882556507636649856907439657708396408440844325422145367745460655776496535990877549914749247446119101170312644542487034088098542759586445582253132995581262998078816663745178024972164589650878697985499852920596823696793805380340006213960395804169348877592591206379168354814772372216070819505014161231520958770838050125315102963505900696875215368112745677067746736227948778497229236601732146124023345801902629069240745979142864270779329150214726409862024459022166405521143499159659493371299277711634479249021666821921394345490918828446802256984012903115793135475507952477914487150496247566073767173118260331436269434667946243127112954146464938107101910693795974241026900218836230848083753928178817589321231636954265147244239515717579344863701912167535062010957628172620122908798185440411816538614932116551988907134158347747809973352198256426216275684278880546292793228349205874361625239904537391888213880473933331386424777598824516916057870911690200421705243510859646486702918571737555031365504661196154719897717853115230395727904527733346472303955834603990478095063030491877057978592103569737638422850690551057460514351100865863032944723403581669301819756918162988390046048871398267942111751592924294403914652071957175784697214144549907189330378599887585969004852278771310789760184189524335687797757683475478098126133983181887366902092216413049134208496513456987763346964273339983538268666620913321298140426036278404668294444133022459356471688577360431092011021796230220193876545952171066449954340629557345754353460438983090888737431553446375270391541628976346781022453575402605995843001593309824369016745731422193732056308871022249409534545875240152879164245048419176143807276784460978275466898005523708552800130233316182498073805347037164797568268430655160930603463019536353874623925144027916064975316370713183667432081440307360501672860702113019194258170605310645340781547068100137276159465511612941169030347024722249300082375491962597232126560679670077405952881500187306023144686958113740523055980200170258882399288267501098568240563347519604398869272028210678935147317314998030618928987897047484936869645670780183128718986180140670482769035819068883132935555455341294166281381959117075241680804820519276746565248100141818596607907476418374334586724772952164088886779143061451031032940265031985619021795217818686269409225445572414281238938134484571006000505456256063292608241025734370172285684797348406292653948526351629953441038206455045363991182683883935139002404248609033512271354101185219233617596186887952209981517477075370640177413811204178054272468261962239090777676758222670963911181546385418121574123900227713692525440808624127514841919668073972066492509660797044244747247862968206934663941381767208987857307439969474991197020370817406643377733668174558963879731250591314824817009252989614112150506761767009239871819807029534120431844053833958680838416583794353086289317627686070458425964939805081412956225111935897097091921973667599772658619072957978312321066988167694529779494208614627128596583954840889317142617646620267508860475335424330474837166223836717948078961845546866830203161669482963848931073689435770245161784556513305960924746234884262471707686612425155353029749219400450783686073839211371659863614298293418277809949763291196634857623305343525825188280040457819869499492844561340137537199901829281350240538749053838998888691756416780497668315073423711542255959928159356925466116838097242844899447291090440994377929730638595566114080783570576777012732572003295417330689451943910891815258700504201706668390247049606316654606356690898113970884257429208545836557794432018510656538317599958909141346835095728495902464589964560497731095382470919042159265301540256269249106368782878112921882920645077720574046844222586733245201218923572268516835795501201395280304442591781875046782683507608924113147349772356911986871859785752286541842205687698060013742712718659139406299304645146205771057436168084938109129052556525071090267005959557055904860828764208795416313915089959035894478060593383584998578776970243510300432614418230487623157565929150751490688768984268543158556269175376164660857710504976846411901388424603048915354884021732165622424195876454629055584112771713095798831229882837050429075260894880959741172654876608884902566082686419893711847166927568571671130057855697261485770594513270154301595030429147535783567934099130827056315123541240922491167232196414577845615673353675530860815619295743270532201522993015450238235080468689279393762229927204165163516617376855254510226315516426817914736907902960770335650838872217393807122116365773492071851250798774615698048337358126511223127944022546127407771231176868034778348200583272083245642284623886502987341995684771393862930957942912113507390838215620721265808889900318548842482750490637065027535969491910232013546179602826142637525434436406830954952893484363075544740489611322118062649350061548252202518352957429276203645388511831221897011573343846725242995104276876673754685252356214023788017327984197083140843613989577407908506751217424203554649897908532437783105977700904622991778614305517818254706353471005468654978709932749909994982668074080970028704219879171866202015407600633858140424755354506709947375449434194298224844449520195876811571244117956849941050384427087344470209673816381620249524282995142485307047825819597401710383744952667715439917798769043663071894379791010179052769725323815720555140015142548897395635092618532122575050789874506367383394443227295037802593442864146674956193405294675723524822286781208632523968889748890974834582705218402603597951263293064108527419886274816156310849005094211201338501021211493785973738290937433732869958072133997067613172557067637346142090599567193059070662415698743584420831385895541811406581796266668873436416311312697893587239730337200929542084592341936652380863593966116503537044285946673997428436354723173883632696778049936536908075170785592442270131608429101338470376104048146265556425942182850616060963685831608430428541796080332223841128248402050815231605555720791521627916306851467644940799917789791792215963598058457935191495223665749997685689215382374963193400723010462770894625452316910137431380634892942933032593334718227064524428608174639753198615917018501022600232231555561714035634786498731974908813851960306774320353777961789813220279522084136630440351453604834006492444757662333902334601635068783496681724725246742036778120262012751570551819261965669841345520796758118699829523013551156544342279089913198501622507076120983120383804585636122602367892437623736150219121569474082776961671315652611899592928626586185932978322001007494960533250364095716375022797381884988297230416454475033896324775208083384542885032195823010282772035689302223596589236727269596784732920254118639966384729446277992118142776249150653350429876579571396732054890951645659777062721184847597266669756313040943457717627572100152988987552581850337051230920413312385226040419953110568030472926977613466280916349646510808482254045913601476900871664964054934297776740501920288276109159101877603421850287899815321571523025538580442735685187642082247945988784391282563761452673651816534871212318439889877290037806037123248437071193503985644953809765177861654293377305679992386336130975885509338924415340906353770916166251623809530937627384802359501821496765289377377418458861267340041235906667223770077975794799989985023602835132899192416799577011236944983150922202213745122526488758133477913071236451890968224132707283658871114839437815546863157510948068278123306223272401937230282884257505841081814974191922451289710511207362357282645317173954007847253263190752569116007345852217449943039096720464794048755453061459721919622955972232638929956379347903981725720295025738945341991599312295222688819151207332063620026238092938164905409853566560475720152743761453308057117226572340377499228296748091837034205595064788688331213543201378867986908447369217171904768726598980035699558361768949045504909303940247653820605693998252669932586669489487547373921189180643774549639171674106092295249547554915831393975029012156820429178670548777458412289974115875981109150429656499579034612008361347513408946551737088441136837735007961734504830135948617792824295148145712342045335513143423144053827923388731206287289847021102406643631457727216341784852972768175368642526811958872441264674425348200269020190432705933040024683232570350027257617673074392932955231994086563586676483994923934522384233027614802562384795721556360084363163304431604915677294650588019842271097891354032917496901665399673359006972592713554778125512523269191464434165609398998855545332141184111829393384442295632309989161956909084038120559794643587116252575632338100086160282908208436134386518468326180827440382207414057032868549095173416491609972438576064771795508645831620645255108933829933535504975676161754893753753628112661813304678752105227327527447911380571715359096155735597321909815465832117907625202853061371603616747697634413838782171158800900852258551688088266721039998866892188015732724484214741487150611037138406587401967016583672553882573271332660023752884082979191035189754007630768558900555106909316447262771530218810152184457313650659130997434694881028207884820508684718853508467974922739054702141097606852683388070769369172384673500911898765838695092354590481971727626112342707381670049096661907726557044938416135204964684949255607707349571477982492397025773743944790801147276633991300284823744022065159852981228218808688074023256076432229130347403968645821439067028370606376383990883744793188685816387697276998969429271046077976530676782884610330745813995524303626200664005898901451345653544825124267133901726225555294837674911495222972649136893769672447347333584522162935142644292519978175778436082653910217258603937018614425614889952653818421946525347667021877705270289931569313626149444070232319077774390211776077536707032485344562259359939552962081855464821680165160863613668775837842427163578415034878031797539210731068071866520729836275797992482763267116313184161817751322078097865016698078515925888379660113187461717206041260017027190564838026876206722763353304896781111876039717196654633365071910157323193994291988572416624655494945490007867456566378566740481350268880502203385434459482622848696011328663826730354712102595199374260765163821700427464831210142736927253306723971016189255234867619546977709824316614404190101999110947888469786575289346512197587108016333150778053555074978706773962785573215584170943974193573049506833908681786550911004544876403719588328668115869483856598918691156545647527144642449657369717320399904802299259448542714871750522837408863883995816398611059850637646730945220403644075480670932982858552674550129777229514503006736328722581830080583844426802857369386121581089990911506533312752449332913306265084411745755234567498477370102109560865237797678759630868713024815181494771429456156329870273063143908990282780247929279537977768999403641361042369142439965440332732196838346219280069136591237898462287920757415693076456808151004382318952019754670873504257820384511800148098024729733000849168909030242689222539182478283124041823523371967505995796785774173559480157464712437469908260450794251587176662806916596794351288095885840365905320553634377779325495382578825616561289744613316652570578494963545061001778035155909085085725451992385276402780423577259807056168055531383749907704243132960592849255272873691095930273441324929835350763458800707690278355118915338180750391144919880699998660307807394295136946836125065440425882998599329747941439718465612828099707811350873053299060364003305634739914485749134045552305719496277132235156025393180092105585463846178234796017955912992296323183572798088032490255336467700368372727098857734791544820250639991540176651821820103034395037225797120658520620929968920377782355600246423202486396422285898963469296523633901900392770901620082018121277040308514794505557781863060964629301689519689905770994539807665247229166454163009412115679298921374658104523064461500242540938236109209280207632394611956789002517981817985162283457050175801535582470143228630057790823108265722768506435125061465719959194315014674496758291383344850066806531664688743492741002198491145754499032476191086195497247552711097523151968731458912656269468433620317964883037457041447233302682549100302489884926855424862913143223190554265700298229036059335543284661577692334335442775563202707865143309106900773444106289874355156424180979793613060291820291967503357446437895580555838980293460797642839506093806671475429699277892755172570056546050364076453317998777803329208700431844839427035056252950420104216895378178137890136010043374881151122417974026580742306222541942894495108458143898883373104564913760083318436363792453895783958059978739275276559664726029552505376672281865457906443377557413188837871616907660899839961162501468286294698975065425654042247572352786065882116863671383284013256738311473390727946779392703670158326871694316822521455716037708474703768137095646267302151614269478647737107851403011891929720835224533202688076209426780527310151279356747781437074513643910557326012436324535989078816037775131294552018260324497812603206088298696350801314069217092231878182949156130437025707302530454835677432056527215985697957477777649122936917090983988626084744062474437683140158022265627801828199656983953557807411780104959644352590948724274744262985388573347971449647661982261629454836845772172784173786165184700728867990144446249793423226983428656107989144886291538505326896083474575468870269642042347304605275587628519710605447095186911960664282190858765258721213215806843919696621263549034958444161292455787061413712653157406249302595350991983783812457667526158162511664063943746596559214101449629835297924869850167221243551325207085927966148681142709225198599240309104778735141251943896420829623804267508691217257241633755209456534567747540782285539471516997724804444001160203059645945269592887355494033190082421946496249364526027497211193876720980009085504605553868866853877901683206483689085840282167492533609480099520399785420448491064085795700103762312872890928281957307824719783727057982789200560273173116408616123112856043727159534349229353175737847984346299486973779877140911923463702637002544812122455140383240427336512682273619003215402464656864942880634082731282766488249285288345629990745876885969086854721413588566098351258159579292400798846334951132086198402942817102591190371704516435505995076287210192917744166366225779595772393566476234318661008128066396257703283581447171957372488684256868707424547857512576169819529232628403892743091452492500859030042972963023347031245121841545243869703983260873225023555736492068240913934697826949213387523972490954412005819864914538087561340417782806008720783535896510052073303752111924397503454777025872576404198527319674443124482156573896005862500590967921279931650166043298213876633844225537613169287590568321471878850627470806368213669401568242463876692682775130755505152101408120645331255565999987621470870971645185560313211453138215872676860346856551714287279156478349938431427232514023210636833884854125349200176777653117735430939784933196217475092592462279281174494719019795212648667346563871525289776102225873575009977991089983525177605424607989822890587467518917796493309750411195772796765501508293088529171576968388605883662714481279769220708958236118868001678915110508993143014571544376842342124711264409557469579565969136521409028928658200347468555397970348403865973035272617108247772744026233259218871246965931415300765945927816567121974318506443518725962129794053074705603321979502930876831304788435231803759099859969459922130695214635526022815806302160869271026931975107046345984306787588465150197711991392160923570349083959369494603354027655933540816652616857101924186773209246203104325537620511375918492678982077147840267293521766188050747917460351685272990539106166906778976855500346727868533780706624635626845916422897389716628251593948851782877561420050558968545580954143091683888647722980395849837799151610213777540703369862791662262303837975743183950841544007684241618565000231131794880302698723175459825165060328327597799485668386507434224719885230818892043449131736999171845257269969956393812246458858278606142990693689991677709654321721700483796589197359423869241122926709968316930050010774139333570062618052256531514924055580212243387369661248261294299449554716592250188178125865929722015403713629078082764251722630412943648748641284427426155620967505120002260262845310839740251488501480950465290907762438440044395433299583453539355203515821345832618824827031656383910522171071493237673205747755200481444845930379741596122670163650180356196269434048822601709896036737368649251921575974446193137675764998692186112766285150569192511392010682882946952818004821273507139052044568841151769589252977720174923502196034505394626727404752543309648631680153724575474777078527571669408597127527066725178432018886988877382533593919217034344652028909099013506922308304582724191646181041984210325083769640239584513294132984452068586866754351513858434032524814786530016137962115590183902579019207270910311613393778890117009466498047538855772228279544667441085893854175872847533910050147785109485218253565235306421703951138616326431132065807005447794791181344843716778589122260576568645512445942241771409954821911391730555827104732997304466231422054026498701406697164470029502136499301730677372904829884829341787625004171955577274733276052343589729502017476634380070012877065485358053338062138752928672149499588887222604621824356821157210242839479771590979739948723814078297556742934604388552489423738203936589472795658570328554390250518765941595115772226986522869598974508780912305374171097709171884903746722305797587496096409918251146788410053132426969066592648006527067839281785150543773030216812676403742884815061015447519984741565110507039336031081503677422769886843793945769369035419801922991294733963694972231684425479134723567052459801451267639843250595064486184991382495529424334468507655511125576696261607685650577453464245398522875733806783332455230036493423509156294636428266409426015757297552591877735628320803021493251482519808632657588872970423027438970531572806222079791942414093015343053818848804813969290095752108149220086274712482540106339525820821534633475623820647449460981284569459022628351833139804319180170038187103185041756186610119667853487053908097256146724037696479370142964037223734465789317472607276337767597810744806944114574669330612444684477230974378027426221698603790210057756546176089853956958756098348050969975947840347290724380035056196315219972654456623824435106694403253236832030867896628987247486484242373488095047577241656797016865092861910192279258509053490569593803734898715473058257757635013719576184410520612064735770402771712091702517606540292230174245740321978410016243816282606228158601802894049452118582972242408200383832023272470856418273446666448822818121145416119984360873507489968049812676769359839927380313957461879010628731112905872900266212760431476967727135073810305502340801289792928077070270685232331901290570186654863742164259312079941568069438473730296442291783940058829380801748674488689621815814019904373871469263208202174303947583997561058627411246968870607192840253491810957391081282660731300341470202617852964484568796292255627438689198663189999979271730232121765708826589881054931530981352930045608493421443997152317803024259827281550946726399487781305227066885549608971028317541126574933449097470364044695291617078203813740217125245930704411439691722387661328727518647479372260200311289097247513041962737543200060266040783326951022129397928197061127666269926379837008740158457324806452178785686542288225885160271131148154194881412747962336310138375295855878023972210022873275909696894124945623129837595910121735175394127102747260440036291173049864459957203615694663782933013849781027568867678807497177428811060747749973615815375660331294173587192058557200900663238599188993537372596087371896372378767053549659927367963311679883852423975128063780264341437805675534228073522508984627518202601481724087115623174197615678928002843678188984798341391610634659378909789878449935229371536429124443397683784158789472786843881555591970845821676436447652945821860639778850087925252421839030144791979559976900331669933323548707845532019266005103065635531906769536180746894292154971303232122835470193422351702280954409704550210172270638078111161348193940106613841643062433650067930420991493233508099819240701251445315200920553896886678488942026065057031786991076196122496232790177420452941577077375752031613465740059468455820238823574485629739403441460079067088666278417951990758385820466689893149650930809652875101683496329227727251498719850052590387957067343797439016460397923455376218777053073754835177563494434347603983466975428599406706926621864584400028415754845312813690589030346418076795767856150666103810244565922221402345598161500296491660321268707362137702704417225948901726067712249551727365092345622832696931748084540232201902725632825194662271158148467273858429048987227513171388393666411470081992690702462225151592548860337694110143792682756878128484604867517465119582885801488485358482186218510751324122106728740885687256310401934837995985272342606900942852299206016347014502570046959806465644565706534760307785046331183228833185699182077516675467961767523573524953979156120581243521364222823627469779518977871089162943998676997806281993770944315072884413061428417429671384839903299393902108346028929202271599962500979108371339116058191605973229492634313812227465834437848715549458490973543088866636514462387616553313551944101043403807190003824585156991703858136806937072993103573043992523384050167840621268302410901443715996468121041022380826521601975689739975770466906220330515374802236380905252707459780034111029175558306091638388892198528623979120148584231237260765328867909581294874004683166200495495857970032983814689534275396725606801999294378971660057678846000281967228298843927644689336834549540504279334252072907478234959616067001925663594742801659488491362430176239019920679721523735190189837772521194041395208929186198527890554877665944491015795622510615749860209908690884111765342066729103614072446250696970298169839358896356747967190486817848175610192387968283107535155041952075533218758015041394272743224310654937447097400851354384755141777334561796747929895569206562442533522320824276810122887951629513693511249268721983226853691413946546518862250741899113134539056121423493674105758263643751620013368354431227101761575315679948444163770026584150780473776323237383614831822375895000038951425338038572702446779703522364800284753806184022568754582347113760491394109484485062732086691739886635639813549458088446169457006270882571767132841532135319587210449398656890327409876146362147348498912655877800173905224102200031486786904888373286835291294989383732877009227191636647492132187513886333829617492002095715996261821669890454256566115634005277407394415521886085357139845261673205925035417962116436556568719024788594598853175507224314287439651127740065003974066285371909248915186694132168992437128937642208050125849167667426379254564128861322120555661936203027584413667101211359547088933525016732261867489677085142445082258004603215545344104897771277078916179117328224104224490200976628872561229711787238588168743190162646270191590147860081301133983379160739371313631641219324957716766875480380191123494904257220985357341239668389540553990529658224963955983581920512747345331901255286149993795863666047830967943892529532389784603409049102211275650718803585535874386293595867755698673284248801493661526911302229625887863125153987992268583417470315158319114146174550293348324705992862226927838743857398483193772545723962658011158427542083751371107435049054451361834568308406289462457750043172994573064047130505598223959072846940084561200094466516848985940564298107580835246772165101225587479288417091230261124820993163133839899959761060208821136244121599624365048285880276667256173915174606876153157039925607801377489202352449202554287691499935185605747276017938686286260725005517274086909721524337794591159059812099828720527102819269362476889013183567450843645356296132884624670648277897805751390671367810318436705696043967334185378234521762447066443658873374405657152890310064724778757216109659234313605093157523533909951476382586838182507008324520705906125052603755879186761244836928556178923345330635286831335414808887995979131487092759943098527133047864314214931532836290121346822572798030914361657086456598901117378526245442376310860516025588743356270797147621951586381399011020767834157284056921944157914242487487788434024858064810049278518826585537992533738884310934709854614390247157511070391433397193731999442440148973309390406267529521676356184450074403078213385367666823135070536735950268926712301555490471366126338459672346359389898230702516597986241393732214167468067231843285412159081914217879712775061821769496450377141277892446943513542765187128581413564825462530184751450591695401934401997919302265621631471792083529584409861483492436242639804268954633320074187814960342155849362789040227168445956161072190854716758863991115910481884847944433622320057861404953771954985114790675790083101180319440198810786387772939858936731716177404078885213928396639467156716293510907331882984103718534713637911144098185220119133304598935533877681647079279039662623208677509329691209688402650039061543413965633884756959435928504964166278819742829890331579861268335445390226837879387304536402242209549796573875440143363445889153265228106375572052668357410037126140011586419366122731338471908906607683237627963451028661131979554193324005066886966624325852918279995122104185058939372155070533448083398069259978706762657872620762694928024591464478071778809591457511594143805643049539089173273150404513548985152035123429713484771728088975384329025129645539506694909676153703991220255510022247115252552822234648138933565408965293835318765976030928197014360690044065582776580789833594851956567971914778221181293352676899623154824828527134203168165390461298342789987219532198754991982040024266770576362688595719655900872484825732259350672238996721841802971303922014214905183171121184940371478056817469167415311375418098604003256883567028245715250706847278087394234986346804655359730600172232033842700256265166553582726628495529684922264021189245950033782948993907866907471894906773562875221170207518823005576755042508317426033022067515197655991913692400054824169999962082455994016668231676678145146723495574976674507694191673151039079583575997210192859505368894884284070745067202491573727767809640709552046591108486333267511526971634769162056770537457016765686986694308634319839574788978675134395142260659061243573370047356519215225667155243380377297717364714485500563625023916590320519987596311061166549563225328926195218752017296722028914187089440625530844632299159002174762064303815875324077056593803957239902843381888077233746497122199185783727807524398630044807941717409358592746620693219760312399814489680967448354803044108393067710486313166026494983767727964078591472619596127581681026117448938534840348579399567558653859826477803918925038718957083271127064287176564004957502089911274742854006525238968046413143218837251041557712787800596924063587506828758910954532649146235127991987361674626722937321575026657171654679179775717702965144356931883534194389164350961380061087455565915727917717049764892005037345599385860816410271314154503220287086357429934026721020073778304636281474879166122592992935629580170288111110817454308897744292532265654032637745586646632895696309815040309079339252586890888668862835076141445381172102208340848318327835356957916799412085962086577424657965270786531845513784522405394966310699293056717337018218670108848646813376206036715029365577052089441125676036776156826738273458429272531213810470691595157987513686145749047491015956592622280021249909358104135956591373566939775316641401145807171349092609536528162913434003988281254551264426074485512118756523651935478399655977240813201115644238248654047227495884497004454954914150858928640398349050210938364624020231517333084745543200805876175034161495535246978928805428058623541128561056097563082202500950653329124202686101369582471527408187624637956578314624848145215623031830616861901000649692719613779643676562577321219786567609247589780103782746861400011406117168667685255211660553916172062119793065026695126685454400058652168941808578717606366112497984948655925836537277531651269732877182658345307917616556687843603948537058023567453757295041677747192907674048450631205334728405514975592566626997886324642641096993138010295078385545323810480992144802013155808375417380158599233241189706658153770237993064274020634696765615747845503985637358724346614892192720671739811839990597821468005653742830999398496519250675205428513449319146846289783554334835914653089668895341759519805907951945823974561169068958831861295519454966988126588521187962362183978018796003892702437018151937598219021009437143358897651545292609539488753129565404859595805357313101617782229999425781618952184757597692272592391811633146207619609167816782435188779605043350541615857745184635033886325149240188684313232009102034331896759741541700068402608567192581936728209500224373994639975029541564106632243149944797793463632230160094541344562210855422326731079169382406753796387649876785762247444035720748714633382258757899824744991800605635167721549706827412070051460917772080724667779196072626878431220261676626952812788780006987816094459198833468537060347814045997473169021109085239681348832594443858811783750940172414789543421726508831661976123088109764978794965987077522707524757435003489496412190737027884153066629613893601154287468432209086780240066368117745749703851478471862687057531264976675821409754320203786582385280544519917065119235088434233375240176663991981797590392024182989400644585372819542294834474656218916105740290930155843477219210606618591501985990249661766602095497584402089891683258650957801747528426471399106553783417041983655579636066418266546834734279846850611656763009656135837211038266116519389177109546431003964487987886406316045055724127088741414482370873904109034156396959928435240175945231322873791444147053846870865089255361598242253856601547170143846404326402182487521198298788039181193720303521161687131880227093840187823955153042395081572354981026822441265699257997337421321376151334856207614275612322292913007102665951086139446349175237554298740818256053849351353970695923914840944835687416978791842291958186032296919786826687626424753913623933185524193503586952575017408246897895446974556853510971394362636468406570569377410939525365435936301768622372877248387725016119395525132899733321352528201588197647102680522567188296494073170932063209617131060814138949102626826756166014765521777492956897902271521899019179261824409863360723460323341123649193365348233254445724981068834769495408047062208542579915991248567833954114039428779431020879435108339741420755621246857706273510203659880946160663196413054856055026787557763695864122230389598439855034763372879960102595945860915589990115454040587346106258849062538931435428414125193461868075341522107536993982379737826184294695678539037366845751188911462842834645968198839791121125280772142754707599899483116009562129948665823855553861372931439663136903195838921794489305926783877468903309520889358906760692114434585873317658565991270640327481406211634079899908323155292800679375041719613827489770864234628791262697895965648218552107956297237326506246236285354154273614703272748433117069661081245614332793499850233571877182456499580241493279829476603608675405546252068104974604509605400793694181534867507664624100715299091919471550041117273586087926116407464283142426538198457885383476456102273151312955741802721904459657526116200848028810970716962319677587092781482945319566464953084413780279372873063422806693603923280828176251314351539312400100412970619410414891278194154956486986340931152933061275060746715983392745521713610942179665869990666265887633971941023351458774373634738705072066060297631796982732378839346254898680879383329970648304768974902551283742401816831301031868760171672991592701911732040906732696937123723126700703489430706950182112439003030039511136366854035723108342635775130232548667058417166587888100672367721008556415063944323022852911077254623433231103072421613443939754325648355956614196084817874015352506247924686975523842691210501587389307165273229720338280562736089946426755966997780316505336857218354568592156786564421901213842248542320822447432111731171330327615051519941132054713833344887829546530007499417366882120262667271088500938990910817391888576407017928266255522411128947227707235160571308929711458011022291414988732810139310950141190880905869018148897595135339519702896035306414954973400948563760028045210956516587110989887341909510574894299167428829360802798510430739285349892710038666111916103574751228344123264208498788263224319950697094922683942819235605450782942809061846374709990693927313362571793256592872872649112395237317288039531185258649448437902725367322985276270055119424623828931044651757263602134884014634203092239319119888611082064275595752181519078691704895588627841050761239790757071651532555783463655121733103514445953608098510771839814173279991085043915929238385268504546499393281183483719500316546774603505096681789759878760748647781409741677185701748815863528837534021185694343366757182523520773061539574091707106062419735595498782700392439442793731197781279693446066381233588707471025614319654148034168723437290682198150255171181346452627973525007677536706472955291633305141924135636497691721661675223184240235359990204941043803182490881125186382436745793579627356370588362385138472328235755992746571606653828860642880975492665191096434480921988332173064381004649634704011936402554798745035755515921515084216431967112619353258897926374154202265311643224473380103095282648216637707049356771333120457354229019086000413915343662908044370583547436894837319827666362382545333386303899986684986032678276502863984379422841815752616436784673646518434555442967085308100089129768864217652962361271638192452710989055027821368035770858106239956777922372054249103718480939740666002893573041274256834982234707129671862236680742545262999343620304489274073695476700213709236577632771638680583213482187857269738849363685853025160805700041598381910804848125852835135281436892120351672942476278845284796485826921247602106048660733868742080924879819901314073255791676882042185908877244611417316149191975444389958713063526881552823441320402432171767763824941144280406629803654432871376969179480942944498672861306906646202496984930658381998518689310009771706382739934685267509241011958061780323267145294910666699152024221033582318938576090007495734005136190447554859764830982642924596322028609401062953176577627533269554072784390119757520134603777804844684458819895573824661774852637777554318337079329735779617949238831329244871806190391018374679791208558135088555208969905978379837459694889813487950699290371640033897685400526867037647818294858862066872404761691238810572130222859847014408271085823128028543027909712229506314928719263882309834436996417202973727211842659435914313042167913046921944133192226487633697368601727604781250712415718128846719647159898221361746118015739066221794626380343748121127399755521112615224214590336837811306597707293099392154670671869584137049664484900944025441318382782934278473339492204593960397833425127533584887171059986026451144612235647796072666828658739654542274705729763238528306191183660711939418263729455546109602051408172119896127130242507503709405301425848067255739438445422538241364690162281814886992577661029709403711576328100546313322237677990927936292191221513457081377239951837076435745301719344284161794846982305943743907837848993101428646834188158706318487130704352572150462405443494611759229549995354444740977049398120666069572657593735792927036544428944204719925847347615644218909643106249442414151778190263583601742706291740992642646120454409113859366066198157835366788910510100136739928619090845066841037882133360771606853863034818126761130652244674229396352167939983129969966949286872984642206002390024607658124205280250399958984344677337794045302558168889344945472081896571119677208040579910680578359269900300061724795804491661465831334276818115688294715445090464461058752419934484872765250194033077657117759612639731901463912726008141581338830800285765782616549724443834154986231855793555304483798381812319210574666301548822825642266012848883907455068305955322926971527499016819969037603548505440342660502863323252814531129772265546298415658659988746518839125403478565125477865756426657137343296702623560268701983851582874662446889412451652857870831097811242631888335951952807444266069597593841642794773352372695856175006145802268510437768548270729600559056278377903438148871432480093617426994699757269637034007877976122756524449073130142848649341444589212746912060360687038010342283123113127658181573743053795272925514091071489601231732896422146038052967500956726836429363012240934749395550703056775070884031218685676590439267608236787383598673109917540361071569455785752456156594225832532748227752530153543585084844485724170434775828405202038048965079910273666948633129920287524321329033860826827759540349665767634599176621452737877700366937299128962703701565317760774665009281705644187349629427131271865075150443807829515858684775334387959281348760953163240778095115290417416678281842632781523902019787607561169607257829023766099287114617838017559739743858879161374884097003228551414162747018230743244282080201045743135559641482480804209611963401965546267536253774695435128201761551748803331850130570520319104643060317200178948580290009593747501053138635944592281512881794261871594096969642483678760908995887830716179449519832487934205617850023178872414479872684859021563741659876864003677041976747871036734817416620437896359971765748727273707552713319092409620238192437614369354502167045556290956761452314412798830043637588911099081492367658455164215028599991998079464602132595698210028916630359041159749606373257641829036054845403398479039301773117081037258237304970234588877456811097799975137591174251963411144032451381308865467458140345421407846929206156609377217723951268612903552482624823713912360719211503810398742946473927973264222668359248413451778290029930015852990500882882785575492727801900028441949492827140907211286691942956416179415007953201664207001583469193353669528757985055601354707095741873421318201082554193057596141905671858415991346049713312943435700928973283571607017191274435238924846415869604451079996077800380015679924275976340816278400620484952951942209108670204512402959658364851050170371061705542824983191893924899093548378125012310096970818594881108061578085038644393846717780232693367635293466090807523127321685344683174527855871058360367856462096562463370616600950952336371368196091373375599099274285307364626927541736457275106346149465881878273862453848846253083901568343239648352088112202736779038158913557165550831811841296119167754964683212374119243540408696140498608391099465210761094147237883145642149947743011601886777471739779992926833294028697622238458238184417176559952548452675587635659598727504980941653986473691989651145804023052011657505497520577103209672174941217010139010125944082840136454575460508476636977413193681501313137247865000837084168602428118461046549772086975224664061446980984027889241959015373915605167539280574888200815921901632400675913707849355715953453189451129257881832933148469326088125905539382968793915833956387091261577844008244666327783817244064849553251180891585602462939933718959236600919138119424715406859493628982926851530305278370402558752435842371911599720102834815149859596776596284472928563133486471076443401455059110532749569196317969227743740851848358186049432993164244378124740354394883479306298663413285863163642715549955688743639804991480114656671930240919718513304322091853092896163540252854238967040931710368931857440227436843569844636568687804689608024850846981691166135211733674159982084696817975335263856038261369689522271149349033321228473633780911656959088297087521046619728784272626727195138803801215229220682588237088173958190753229364042959045186257755954846025143535912700899346713812935226623285482384675207061468955077652492241296989310578060254965413390279917253356008274607418335648425137913982874803732884049540326563314450164954049565742741194658317427350728238201617163852534089830065851476326264154001127683065371076539697507740723733862853917663203626225132942097451675045619400503780424388948981013146827794013250757604373285888703784585728163750503790606857623765387254995678755297476552236139405653108464914252385794435285820756831905199066707258630802155581442237157245004778820213039903307575239535511931249704861954589981904226468179524027840167787475001413592822656898628948936539956194438344972613539679112249610886761015476802310223971786570661587800252678667379066302277792744493203754728346354512800465749861053460634369112178465934368381764949114915609946548396375548459357705823383298155838832914756913914187711169684502986989207336572080705780475976520634894992122824777248842457505025387493966284601367817999935233266047644466220229902717913370852566851688375784805826225752818352022118737980549630528467687946956772029148580685763004675458915356165889151886932027687237113868115740577816672952432133898927420040097227716959827345248684226472707821935896467141536172644380582406173798690482492660383635064382680951859152957308281899327694221208682153326817539053658580663062392836189653859879805333893887740369403389903866042635924401354171770471491550538764331842720901197477282177734455006401594506946384692420657161436393375843330551982303518465106724603252761118003837670697599694847438198334805066790412318149843584252863364911940136187757517385001971333216447676112125252591677140758236323867033996995006127207254972083485561223753874121598865213575135268528499612380080357708619653225729161176366461061248563829186536257136178495549179604827918169624616297897463528986782522369090703374783451206936190656189725350455216094874258662917140787725354902121611252466645231524868395681981822430004057683097976656621559598055476302130292441130084710980508538481024734176496036879042388457920508626601574489619259954758334809056042935398925790280034702460661567705744168099618422073805900567868234377537059249318739185988064632969964850471617596780333957282527933033156427316115121608555253054110106218682665908976917757671901962691356564984703884706750620564925453429518994385771176437187530774281257948011724462220515573186121899109476331257548219735693482620905115286690097261748309382231823606304246234054953968294540105407437772438506084438115348551862083432240006232770969218444415107099702836710374052360198603683415035349820685365498187622126485315502906000198211740220596116634520841188037347229509100046755931553001626110213723062869301332110167696519364209378006194717351728217320431387577816041383798384880090803748395521680120345291560819149640359486136591389978824591449424229873287812574533547651172751663704378982403998661071375643213781666270583947988669297824866713305781484051980691884662576361005554283996651152106635554134544029980850962140527705546133153550404232558359446584864646093885974246225008344335093165178954619447981214196936781132927674726287166195413496569524164482212897883358857801377326244121011334571980648230144967321043303639178537613542716226031640993825319121263710411857745819641849572919101758699964265772744492172683656380086201119440124768479055094591509084428967741775462691143914578917302138149586456017529199774553683507003141211450998189568762551696802745667340605882788303635703464555724584521957879809316082666521774528460359068766728009253753884749009703363553029073939177130801893523855289114755570485100350160948916313391988832461779590567360837205725469549426599323467591064345003110594768537097981191003953839859280876694016704355013133908674241108190917755008732908052228474377454013619159170543985271558638966166558584771863019611818875024180518549527178790483742230688862728501020586142794734313864438377176314149086838417712481408133306818365700219749516730902165621138754022893724017760266143559107483624752929471656604141705276783339625529124484921128443181161781459585288966107424654761831279365756100583103012523153575668067725672599891906794728420844942662719456426664191558866261569865256109724190191276899963975549203866433630211542250397279675307139399174514161869657657056111560660801409610807127596699999068253314370476659450159223571100464807553122509534108333062213465718462814175882052471434788791499620526299059401979253121660906062174426776154705498307469744387788898756212511834611103910029227008866858654526309470358432137284711109528548734666282286598294144179530977376040297772581728727808002473627743511090534026928943072783606588523134167673249816887852445837553708346047676509249956941188571667918408994489939713997592490464535287220050354659846886783046402724116299189573479864854312920479609777006016379253931400190215969999947797358279819989868485280948425139170570677460808991099574934822705945404921841578272845378024102847026252689900081848995986987685051984968679063881196446786754989850468057745444219918021744929326748938199332955158978044477184624873221015536852716235079935598617835116221701794911227105108172643457417165274334866538151681727123879165550501599628947499300585999153368145971728037304149541602662433952763112866270934920871636502686566945348655161590560478617648133393605642888813519725044402204916294466890814829470582069706216040591342869470871554836729296938874155753752056400315132814197914439105492084322281215041231922400224243458044044091384338419114453987099394391722902810308968592946508382617644964613117735609653965253612295111824756517449828456315206709068560703310689957494043951989074838591879172064958080624609568310782967797126746100165738551897718891497967250469639044023437046190673330561436758633723104702113691667357425600768415507826896137783502545526374265241400767994283407406962977822991315736738978512361886058000588042831734939616934198156513315376285694901073108000894162469996516880682467791898819019578001400523823618816642042578119347010465844139279334420601750885800873740107910451074091682555844598953154697777278959915168678239976549394988407697313624157682425618589053195403548854511394462395458229127550352578173459882641296733017971864189404188622565606642202449745460024542483690883778922746053669725779366348473829006369720806049164790986234525456774435598946425913575492270692121607971536161479494644206742514717888658278562772915876583062962182845589505747608427927423107480044232554379958177463759916601381187297082928569733409800022143829527567722387826320445018097453130145639248711984284585679021148116950284301550961223431878857671675396360809554768686917004285611273290854664816563437909183479238344970064213694162896284788101540370340951363181822701044644023342568916791305862123803795060060200548109221775985022440812679135541882267619222612998217689454212042312338505184153895616454690587276924376352021592666221017399211548312494307499216889396456540237621256731261298951964633672456227764304794770733733396503372450305789281956296994504125735898714357270409334019265842717767499553803279582579152539418762519458036504958152803572270863883817514875224535938526377488445027523561247110240432678871363424962979232393510844178218445173230997934577899808165954664124896039462291354119399444631108604375566805981654891118360495682595478736483922109731511264503796523754083984612821277815948741092943113873474831390902030178036455512783302484281499059003721950876021960921776557061660822244005146939476474444884185971801755855157245122564007012658209215271326031488804689821376910491145841707088316798292158310271411341926589207409811132901550559008351391769384430537902996231161519692824930819082608627641092797435251551481418500683534324141035571516091204777545715161294143017648743322146125031470830772101405898251407722880291450769094403278575512170358672966393489245979747655557426498363705425243745865787853061423063419015905325298196078571911850126775258262875995188808152400492609807954413260452177136763204033400509174807346880587388208859990354657534636622689918320208462888310610591540173316810188602471019724721380857247394060009048639619831678985599133003705444804962347257575780384487175309611734214467158624063577954287782747532805432266983642710293183102955627414061585108096673466969054547451100066086013448472709727146219976384108377006070768279125130156043673664873426247983893991536513195656436583412614037391585705898787179159330129972058382723815272730708859444111910794638063538270531968634062934992625168561756354789560965881701423731072762669627114421984055338512123599476358974323416274977040585798895661456744433883954956322600546770841220336642859340920273786656084065499629746099960344878785341051302085921929815566255519974549831381312167644154388712052521421400788617901317790321299844021453397959135299425653955230272590401532343012932363104661271208754804930892009957096569094312996640467695822976458725386253402206199187751996829849969156279585240437383359064324511174308887697129166993242336131657050599761549978909081009984336580330992709772624137162630589897525409246400217889485855703864720202385297036883857697591263662276405460964660760274536435746639919094165681344777938229376477022386623294435514322319607115234688692094004905260120347738163952333329865858750494331113204108688789011009518358693119803037535482599255694435418792578113358122635052815058448729259421362404295158672838920924378036453193475814334195729726515329493816694336084564772718162724800019115883363653570056861307661717147782762674518576361843242724337103755542890597543730359876140086186352586053853926122966690394365775355928754246865177738355851651153591485685501609943981529455374691363974392135137490920881903347472548046994370382623386777990201018064308436729402126028903831070791043548626422627146305524872726491638597511125965082435497098830008153249771821510319683686356493565742314349211211503541660961311518433010419152371849352099307305608976855134885569875554320105522800863373969932973994018985271181986519100385444407835040048666396996162646741391367761275905909416305034844746854557182705269054048585544451784728308680692359076628947067710900984453441336720038657680886812660549358615961800800508735150972610452464746431200281311448610895505054292895620045380644786302922791870953975957419774528102670276783333453541851187855119965892224836084006436030757872981785599397512461987161038982706861157705191650165921925240335439720987888333175551137532631429938422094740665213815536763869928508526091101249618821126737957226244230950264800867588867147814230211854096735610063782646329942482074611081504269820777791402949102244256108660454489623017635259663709624933243953498716652540566157527496725248077964325606181770298218479168193975244659903666770728527969934221129464180178069332589394427136276241752111293250297164423147503507221391712037070903238864482408101687140747725621747661675098208314945765001560370661995961378303604961167811076161449370822437692426884725188682102338130840803231957375725444949881803038612847173575807972459599771082810274130555184638572281950806626799820629778191748242918976116190499556781040385786005399289904792180134324660892175320220259704616029910202597240842213237890511319471447290875873340992508393019051564938023976542052466746650248800450966633641104896077523465916243010928019184525490092407603810292942069196456721199308324566883794221415335508035444681500438265724000062147261036402557775680394085286168299891706640690941237547439063205814121938093199314514136054963701328572389817985055052381502227991811404385113609746609606499217132401737312950855732087227416372275503845371648188521704776268171764617348836133801137932118951365415399330288758103424702526133438203738927785346612743748349821074643163075209251134317221067333584029236427932504052872933424626165168290667550536724020494885124643957080371529513397606075246952297909639478484579419204395357722673896742435604364515948021643755620645228873530235884182883773905759696296104575580385628542728291651911908632805822875258902400418289164582665700118297469863436128069781157157646345340413944140831871802739822840265121491641291817219385643289297298493931846148528323893494833793414923979614853217974455658025128890650259911946225171081391527522847379359163629932240594629529677487681651831485066764515808507590796692667105703607479378953370544135630500616904807242563722540811346269315005912078913992913869579045660843626675370478165280929098615146987714269354877327515498716586222186545016579260814886097058300660526855675167019990144854024610715013485437037084743714158405738827755504579667712265694991677506326025669617755449653398610209445446228158091296007938235480410949972303446224351767427864842508390426235880050379883988894655744223919071601055753105873290053788902134586402669033989729777043280776168741184081783608131296898635932188223901331545827051200020035268228965436115906967826421462458280936671914067058151443616914896820773102104325610904862185158516832051410281860911499073390036289978437477076605813285619549375338131599668697530958434002948954187870989710996876846994216555935096509249956153964161798013394860073780567718731953808597366575983417601591687693835474900969536513644275536779068494324243762670722638653905213474995584946552512283582464406365325522269784372482735098444199118493572687459806587332005314234858966944536654320918261647404070237262600101290639088132530374354130763210634460340464394466607725647331407497114237859765107931211293285111825273956330617946380296209058530692494100394508925656623000045869845266754636882188783961624681247927727118366509856381822118531588098947501592227523491625146383057214762881019815128471753213939682732924866514787376686267512229489019280381687836606845002820304150321785939675596325907387507352489216133306712794274725671508204646919489817887554595432253031071015736835467846444157010822611618932926357117422492391287257108786014194860253746230057431345313287227151688236484873357349513325268559461409515331162819513764673774179070699274756613942011928088989118917410394212306688920514379621769499966468521108813924327036977881723207021692504143237625926025207755452869938104402652269258869824045046493521965563787314350685686625721374477906239656979302940179181855196327991817812075681872396279843289034897463308435130945388593511337856708790028213707470650375093024142462661706641320108942049889902891558636114692166512916761854753251982316258888987707227192855677881690298055768207051086969541151891745777117703609846162042163961750089193441819835711643464419126338503117674428717208943767381493974740744058343166820585102681839752676435529738480287591388158016049362891535073847759711468842904739722020410747741036574182641188744761778897811649735116040651117331350802629696575973124792567779321820532628502320138570466940466292639958084184834868052346781341602154829980833318816921981674317863646818470949654328167215939129906506099797878241440917453979973828615507444756502307862536771687185014826741009158843721620989398004193340836727724856255112533234600103204602133782187042031805550889262307096905148373927302343159187121383832161875516712718754061943575509743378065590420875111098005816390156673660309199188373824461999594170120898062387479418286752954773578973994071531430680595385190406992972823226213254634204889165839183932303638598131329823696838910536740910315978937500964907690595295115157637433649488002850425920199562262324153234155382433284450920063353015919952135237636860388091969515212836124298952542314757570673886962250132627989092130933407928276211750687340794453668330748493507199119245817528126135922885733024782826328005691975225074208440813370933309512482598479633124140040164023226821374874225180289943676780474581000782674055693362340357378466484874348890848823393737136483071988691659017762576215736979269064929040219704914462113800392411347695410842110387298562376646200425877040607064031341424135404904609970941272108905283828592165614984373510965166629089280747137457701273721215601077814284710269590415142764052272367859475995222903005546270536154387198015003443687871036630249830502047953942082384709411743451045998030494778780939211524163846730710686685820499750238029928304870765526309551938100790769203204931844874847287842474309235635593365672852359847289289731947914876586801167514883042835577701462003795366957352481602683828057532472147989948677401139298516723225939125339679001940025253318588090537650298087567001727674184301373102292574588804422624350433590073593546028331340094186721997163249363301573456258220756862999550562323270470977136946318452807890624911398397271702211323223387622841083811596446458752521074956778836786009259306746183637261763227060963056285462629228186935497670408102650896419417951301855656990642560528110257021914252094352629560738734966868826660535628964380441558801619104493351295424520549575290132484267683420536411067050120198193116533514699386221777371904106888459552901319666313788855979470407479820321825706153507981743980327847189160209545283629913510712516529093003228897095504016024245331653501844425696065413305338688603846730987472474115399182560180899797298692754159369373827168385786254241902063556162215762008862866739977732411517465411186154478381104874604409708400663295487934865044897773868838633152121056914102106946343307606225625885480697859013600414261281735417768526328833230161397254775864869459848234329923550663666553949806685913661829455340586090607066727318932842827268140305902284875614629558145576521299515227487353864800862322016891131967755852201932516447287361892117031758802180179811805349777970977207353472264409527387846362434375445619162167847800355817091938742299066530292768038118939499226972124152590623593447575180922766116292766758142923409588354251099786474486523713783707850151456323982404448443795724395247035181342050527761110000784813591846022899622954350273241751284603669803256345865322018980518072664759860104676230544776767732533960734373421801541218406484150250965432880240968458325667401220276481407785091686086428397221585300434625472322119911869314224450718588338098119168240419501797522719666844131786751405666423797902868935846733671824378262689659870498488184054022388084819381376077095108307239121046284113606469108740157332882129105372639853463531348775602663468110228767807662069528927995823762589474829347505048005536963936575857894820809895015838114126835515111511453140692481021259859809185009994838595939783712562136305382245071570501134652029062050282508316419303803908690322926369764996395050225721157454132113332555617695410364847883437694406753475629865997762677746137307987077080623443879555235280640815428181612724115639289335847911513771312072553599483554668341953416299475977171386224023594539098244687930638421054619722059794881093995184697420568654208564115491320255511406497225065414974393768270854998928395673222179022903594184076771985347080309899287464980135734985488045712145897946797947321569319435116451053229969486867333163246531223351134251431940146660916835751865335660593033942099328574332402823854006188202519600596201982142885804430254010197829176809821196007848257068286046111940252409102522026793388149078689316980168425759891378695352141331391476420443581302157620506199847938993943277166750402537341124409796323974369420101151271722139403396597751735465298692433780602031885554270517004756391744812611468100026206207276236046415885660787907348072278126330194757584868457577157628434337155243083018364310894629133186916225660493136649770703531132044914632614628462697853823744065110244502949831981551493345198175714040665107660890541155852444993486931744263239643792145930817767175038190313556556662217966990157298821863258184945624031038379447869599017422471300395737412692521877593865987515390512603350477416241700365691378196105705918093395299690121470439511980419805804881240013039955139862259027743465322404488254256528530712498686903330754924661068261600359663350307337985805856800160749596809950871281599686299050750127558323576353170887268127716696146802975936922863096094123534038997484045482209275290062984737353848007020639041167710305595638680854175550463670853722094254896580717529269341642360752065534672951622540236502267921057767234398195675329242055941475901236532776596831898984395060643028944020546849748318083392628895564304724095632964210727308151661346035434816685257059218038409976327005280867864098574050662976153143009446389807486698083887075649692309489218933910404627392673289553949304133311752672690301557936129396164305841001075202014029741159600178271164347587080694690468285576403988230225993303961531615078751388667883021931333683185638943137658747016754137009711146212944262324073765678916417753923009275891907217291332287257171092933611371958720647096222207259279184111034394216370251718917305767919785508841710096626596494098959476900693569337938407436397112171968608488604630368415476814700420921603838376398401756340815511607264972283926267441532612025837973474068830355394155224414840568485651323917420122620782539791683687997706973049462868562788088512139628437021895545351204142195341989894982444850180674244779551897080118886556181121727344236751632545906813919358694355382916096361333092490602825478599473398241249439374612590597412016799559855079378570147073602446334301032153905514431867832630342490126033523540534772561949203362292176976460732088574083934216728940596599791804832068698922113420006750905300048863256775645661026425307830910770281737832783221135170044361118280529981034659514763452492365975373179363067815280186963786972956592690786853022818851300344267792800785051166452257903203398802674884166048906011205364197566043967827791001728439579660748373693877733512744243249471311727160347978024044478309773596168751333390134821972775601344150438264563621711522493737846785976539667899797807591655466970543675855560686108884566853632542465403609123009924586293799833363824458576865135124181560116070831270316430627899933481483713413067010858442525558551072358240332508966657884833609360836569841938167387146884725775299473869461047702507192855244917073130279922726423456503613732819190020583582915528584186411061894504077570286183969385362720951064559558724906442266171715823671662685429301118185662731238625181315787760277235499206724601502481327234415464728062181917225013407197065308721625143571860370746945850879937926126814165192835148411907015334335504289854392207187949625545068462816247087790490233474301049639548166422555899400372967021862482167169797893901794398901935794602937807425619733939739627742049981466318447690610529078951920686466683624317553581599524534433510534237687702832056851882401283632725856126456372676406051278709003531774052462565662149820028548042256907578329875129796213505152431557743364385541513240713139046668238074100386179322986948247366644695742375330608983506945701055693052049275275282262558126921281032865000720857970829582137034571916021922193833062818044110913596694523794090964487787630339050237669645573897116916138319253437407451885412282730990653457650222643336852093559066371368204762784113868197014996198415799048463783719205792177237467944858165915523365824202361814392232459346155100926904967379583883759031401416300271342458420177387327089322472029011810273572032481444531323484941478832252149300229429503675324590223231310854113260356788123658688061640813683152680781792098837385597615897513581619419508580384278156105185089226365838847201025351486213334957873376347127609832579702100083636830700264189510750957879953902331774890527102561516334235719533845516618713184512591257385545325297016577235703908359211545103572612758750660599603065425563170167858831821486433247661030902801693381280564027432895686364859450559720309333452824421143900679022173908653749930759682234740657632196794013541838753829878273434070022149292042201977465207098449347273616470027486678271247934114258023652864095710010111383917273250077084678700795000508130186324265812713713503725708435997930082978433590820178989391269140383380226046545382146789227555262614227941072484840942847995640636896658975962514164587222485253477796253843284191373874549520872735235038959986960330438966322070648890946621335188584690376952123082972678660558610639554700935754937068067414375404851312270965297285882805612791354625193033651189536942363307811436416045993662854074183733560197467076328646298716441620551216216592025631792623708347585386425095233892069523652031949292110501573838867663540682826187824009662543316998426852784422667585835055167925926141528240835495207764944177256809123002174429183898852144088923743739036535932604912874638314208431913634305531145087277845971552494462286856313419373549976499850927037752360204425628060742752104817463989425847392690033834139015022115230512619440765242968581663178049456525269024229242427130717026943322736182968897306236657098744065237514377947477006143324806538964693793343802860825575808860766346451954760000138243933297836026859239189677565110424149772340008874875252331368271433739480603422413225035024095039305646987391509355467290940196488335652617406508683955558632485434367299197668407133723696339001510987288155840624138737418566214874650565162621090037744998325142461801805069624011718501151910392515527942795713906452176011152335544353034616975779115881890313279879756211406554597982265339169804428164748894032222368978472055068181594788145184421839886434972477676283849475255167722836683568298205697835061448073266026624655922558309983883067895661613637648951938677367417674231960679182947870741223036909890622775997188275414895984616919603894736733945169955780315893616379177545263653387712990916348639387112001158719344369640325841828150168155456847969458450814297446600909693457796810399914265464107612281413780100076471591132587235186925370984102358147232686463965596966609667692348888624783367942680111251604526024177465622545304500262870505024110781737104180345664312163907666153925395003104854821380986809838038747275195680384901479359869572512610848414725740986682384345388966811154813784904066221408155592958742697280968231168925943057699054206524406412394928585386338038080087718810149801835918019260052161143904014792500230826914773774770229070435478969765592431667424546479203429992719189408019546935700781358272635070580114549318020350450245222204393065282106405704924527835243695909761203002086092779015793117696034172378590913169007741378868916633564675936754495498779286462007719037240618179384696097562604252846006719769224772244536337520821208667845237973278201792584488318114435833952775461595787574773681566333815452503205084798731927584790993778072535852867392980445272194506416844328762432670865277357394163828484647941834691728060155304598582765550500871526670801790753839732169598404592498758638018664382086807354057891115501618518124164738553760146583028279049547593393736489107656829303040686980996677064774630127108867760370691508892946165614465216126745006890297490081319102577535724124559027868678014886648031241509192964009633465372771602876629150307842209472335910411697163323441814545685897057032434482133640125690275889854586336768047469061906692508814578257465721878638059759937576961652699988968757948240330422938200630445997224267623493862602051247237482665869318621764704377204249816511667240828047309285434636028679310815872877034816831700771405964808461865131272224588786821378924855615392355213271922945332781229476907855734189978231142854731120500264047029757869803031767115569907762468435995755213214247112847115434595814950069052357453783405990913202110331140901059954873698258412226865817798040213956598098245572649616640759117752750751942990434079430351377558126964454132547441259180520524816397380912844466916441986764644868882508637883988696253685920809655961226956593057399351849419687753454511300835953654076504541539409630317569026383327401244071304298582584117536647533634756972718092476409447630715126607692568981714386812554773029437879140215294174642612109387197481611441084291041134292475541339202359328737572042339811002314699563440011610522651417647802102624505809662701628149680892450660221615621440807410536638220899080069493284820963183107165405042452945223499375900620639351627248756619328008766603928176649656100480089337280902237938426661457300588082797409552513368108799284507843965060917958751930327136712919903586573362744005341383478660686248312156652411287249106671218069144182820060935775140460076832774468066830253158403052794988273563409663230401104939970338590425628156215925066859256556575477018225286356424533376201398246193146914193668595038313821261530102033393716673779346867247340406852518501049196137560317736231815801108409833874367459935928373025257465029603112772636633136462667185232568940506894135075239401288311714152288359817993457408383312732394772406483698884007741597184183037198146090360972422260752151029724932486193642103590828204531466326588853757059827629508146231683143395407401708376098768491013688049760828977775030741521483680210636776199600318034200665754266610578171865530250932508464881084982770027427299505956666732552947392173636740206017089548704573605586273754326513003542735869441174459108291404113599726930492582194821368616391086435742608526464748251687299390816066568554657801924945784757681426440938614664655306992172955018417834139121890997030466639070990122208686893181093914297393830718840928825900074526235390071810472326691225484541984460899361094912083597411725239269959466541905769592312714513303826059220204632557002012505369053061571568802516709149803731543601453608393866124638285051031402675836406528434209224832222568646421588641164318116768353647446003887792648575213599225159478270802958799454663190847449521981007803603327939248077240859432251337697630464361192890180160994908036225608285479688935645715715260258042101740661197676974058256518275364304053091588599032161385264072636980538684486838050073974312349097481384016663170942477134609762430052659738630130202638713694974999963339569831505459501173101463782019230260358111007002830830593263740158213391404338619286898634980355256631090178653555379384777117207570021659778316641458973244457260750581544610416393418886315823872891065395689715296245600582942428466662264951550015607571810303554789103541115185206271073897362536389258745930938124120127441070296337241206861969657098945220409475069881287488096259244911085211195594488651901629296239873105957047831470437091503577901492093672553146309123699530556310925742708692059608273724014469769535988522185990934646618576274584160742094237723343466166823473009506064352795297726267458882471101473786153807973316185917617845596308555527283779653952295001060260798891577897044576789492685717391237382416186576624203028307593988533544907364710305607458546681210128429024414019152074573380546087796618539966859603351308244407929265039326969854254833893529690518131522034980993384789117250147128646105035530848996461798002667754493720393755710859510430011204712555267984149447818754702629363549618964431058902178735318098861113194855414257022768731570213978052076807819468065290023959167195893849773780101480791264899870158591765763840944973672304760669500581523704195358145686628934322172548932478644873733991416049871098987985573772502427775118889619035477716491052613618911431844417942301199439002974303906179979492616577182607909414557179368539345405659955981958386172605542927593683887743402600930738654003202790229840517925036691935264277566569603933098160489318080497842632405214273547533052702765985247935819028379603563806038183496582329030405132552119745262532816440562323082365521248349571465503384084257967005245508034509916657865331615837618356183281791638730656875853961778894341196753455290411165941313968176463896575205536622738266384142043037945138768087562947022060915226547489354225083618191353415408662136653794080149141681773958228664493737072025568552375640786794554219475579558996486026761295416259960114468680096630505215531065931978182735300261275602354041029488064753269422568722091442581331947586824724371751160559799735569506183398855919151766027716437582579054769587973215540336573658885372668360611228728789137722667662336053564859709336125126375980143459468210827988289400151877981051605091783926684153339450848011231028162349917830344875630938714266203491090136363825723878651533391742924635335023665254420109947797757664192297832304095069245452383546840242623462261842583685570438994474861121347782743542018725307697834359975399262721427323548947960290062462485373437560343737784275808309714529497434194018734962331420686243537571714477551287082410109358182952864288260265521103721880973560498965072012027231558731974572446326125686419028779009426517101393770310716659403044397310903902196243688375489847971985187841671175222668759489109436713604103178008149800461643230743885078943176731279334362820621789219233468803388860648787350168107428787658229275175499419854946953828469151780502722820921396300371025481490444427511480680016223364062204902916258863381011761545256769041951299463810382324538551681529807642813402830830213940598956826452617997477155493303994010468957925338115976774990703167685598956524000548967005386233093745503932925733982602104279071416201140738303700000623067310498482058580805629304608235657949943723615694232073441250977468281115338528040383687615380071419675884497372489319619660633264279285115103207967626881832114997216179197617933612319215754111951117255591890961059029066881367665203083247101871358191591313160728441301996826508460335605678632595931439642852668054414337301256578649573864107534727998014478515516734373465495856801507901153989487959118365928695118062711746291397058763311431514616097800628111045129953869815283302221002790339227602282663160108744560578626517260754840641669032447663877857893187892909924368474562076297947226035811211615980201216483650670444223812799565959806781996241924304726767666655722449727683336935523149532563959987146334609980726203852938093559661537249089967813164183602009642267586911671316861544739044264173888042454612401085116420575654372644713577212264420117796446368919216380743213906615382619806404347187356825133488405929272878701026747283872229637129208401337049806775074993286019759853147673385058285532738195521574933112245875676645674346607310394267205135092389747662267316355293322393312823091158447489916781458715247083483550847975555559842249074796311133710920422653385788103693782443116153746871063833979577805384063289585153562521090341652026779846225142583345508514824356457678318878710993774400741404643142053001393894261468296203596147117191237065149248762528002838276489012157335419974755289853768634863740838710509285147333051694129647826247555014629042250006090993858284630766772163573657636032686989197402800403432963979331963084076696624892181909689847841196266390481552684461135678425106573800796511241675748245411275444513208624141550786014659712797367545476589142885527518623582200947409355311970693348300819323937709961939825975575175817307485933138939349403893079663364811099330324250121596661294060010435070735220742244277619121803646909822115690026468166373123260486675068723990794009412144505660478422776882004228182079373281559470798955571280945531562715030068293785865510612700863774655732454034422912517983992842502924109042553166510632104313032655721448189060471419579622379289641805375835054956624760561397506640621822684633004128285077294835745565935780995287836652537933527838484532247009331807955639893615197088953199646740217354963957402816450697365167901952852050415025049735778394182595324684052176771073881316912107145602441048623930539246061750311267025477010834033885524344378308188697982547402622604135395405056469537906844544160275946927796218608912593357812837070701168067386684306917783291052621978068118916923275302000107655049260081797214049970054186201369211913418144537645904283893476969811141383303465590426976481113749841950376579554884988861541915090542484844187610714979173147905077144409870269397469751472720648820469288648943000715131879231687142690467705630355122382403363396077338375232090437954078689034324336647134184025492653986823324308101418775279188773690254735354504999614386864198064784364477193172706607873569333314085475877567870067408764675524860819961279302609418531493064586053176964983909152640790021233776732364930929910054137547951214764316991197407106409491797378635352967588067439403501203494203550361825940476738100706422836251243897053113166489733518558177724756579190583082150750165880022253978303303441016651397361776272722473077887711977731979971274541467584033386282678225782848684626353939375597641528859474682956529648915491747320252843933769414094734337249110887048455442251379784932776994181358978437517484899146242791763388558610651054407088569935164500358567907267552746033964159377322750943831841349483446953467663535246180628238521768519293883346654489677784375623008259744930690394882299673191927054521459585615573279156402286790486965435242766086325451919443968093421703959656654276945808427840723727069514357138521581900547555252632288829916646037721189710596186755120759229337010196863233556261510571550819542934167628049580308987341573672445232494063486273316562271818629588265896415420000473102511497151473631744707696445839791128597589251912151719280142274236212588280806400235015421412763398271297972165855080046047077408407439915223405396400385155852484270989445017999285043689821729059590685295290963474118510324227650586899151184534585263314532667623478090589842376479892267306170590165533121694851529735742153871818292865107828278872948712842093282688496260656963942942834236283390858891375019629425542519953899626257598301708544927272038156654746010987509727808274196740040888509424029478158954782904492588000944999384930000458615319367216742446600948383311566032466464191477554633919144442892358252580057838760237806925438041592838920721373010389893541917343621095304850850186152569656645279289869329355951125967702567466836547326454200054706932272930557249461487768074616386428500347862267756034336757434984502797534763318516492595304329386962141230527191031685989186514377645646664559682421036960036168532260814480443179332547129545434739373249646181864123476610086540878444151337645670546654888161429836536361060590684982575965951311638650295225439528323218042251610830657401766814000314846183281941423431860841555369780342674156453137192636207121547488822635767699212652435994597888260419543060957498011340492937660750845713032942191292078444209532446386745106196908760081627418873547475003479271890487006865578840769539049799810554348347924301146016182339934165489916420353197547781364698184365478498669196489336768435923483251527227805599222738112695896208614993750109994146288165144773087033454790789828427617859926985449480901899353385760385446552974602563636792337534502132100654190466673079537143945156163688553381572282677782249814769247703369043714203864327807015227610575491235008848977890246351329172376662195829387570478074409070640157655317491525139010816711912063581987260000251784236773504084527488594275050349778096417155713107887222171740061304009911152471919287542681738109684188251659782364884199973005477343676266401541603177481307812489211560334463909673280183746595752720019742896914378215602047511365918159305340305008223519312084921047952954439825641851438180868825781528320029863185350970852191794565880166093202757127677390486303030950447439071326146180893771083359473930751227901909989592712739609546849994230013287699134190823731959237605048432951824812392648152344555534111910071183274932781145655259250130213525916816275543162940996807793231690262152128983447586498536320136196445074959477113089275009111805474854175084751608422973999998867810299295688449245815424387220222012263256545440742270353944926837713450832841240047825691249731404343057207878408457766662654232126720662454721533566177375876027434297398419436248346146653977567730367691041844097547545656904163454257617611149652729769837933949618976629467958391857502810173015713719874803328835100788336438897124663320632713156795730782126693390812062376579122838479198070130016970752190890236557816916619874547524188438411052309850883594690583155037188995791132491100983260517687411731990081921992887139291436623455849153880971137091559476072290094741484319386634534528220781412766117738732295529877120830026846245664358853706673196451641093349034554349296114969725332969469682128555259217838367174400136214793735161812174545300474308285153189191736047903116277439015233337770814450340263862770681286113886291588460097282641148294696334581150995052070581565304443041899604780382494168941631851407727530173295655514725538948964565707628664218850096339502577947986058791546808196576863924181758744409999236359600255996793186126198878255102665814400808348866900893194316656375681537259624740447069754409707795740011574613828185103583924988926830135977297638693158026089373109541559534109105321525318937996493617378897938166946463558795589390092963889385021590031073272084765429421509483930466857837790594689992391808122341485494674337462672561632895442437637726716209698197829685191499080206932842520629260155115400314625194452955659427420362491970453632801182357365216873019015478474292816136255463096800071838556180789778510001716089689366708385983743600481321639122277764189859793685609904295297287938346570276599028915543250017492844862504180149754413936233555299365536505609932512456339543683363490630686829827759238416588759198493938884823066620124081849710069110814874989749408118630727942446258203639500994912927081424613565007210666447307636356436068983641777267028739583499777046581827072267724884997123012430123905103212452097512603802985428558855475442265021496128074365821618598514748954976036788659138356394658913449902401526583417233162883677443004698754864066562836656876454872791302866300931645356329843219749558455576166164126830001800971756616785388886407434329804349122872433873558192986384799901380654190399171920403368264512103316690571451243826078866828103719719485655093142175502076376570982015679052798865541005240197251766620677371168852279401521038491104254776061563993966025953439007769503619542591598244154329910514662844207333112204015218291351885293269137335459544007288877695871821201340236252941792557431953562465152244500839513965474101923617517256351209927687497325445295962833200275019605106343826358296876807676657313186091605824553058027640563040621298459902149111925613540492686584123439376575986893459249749941304414185376749775327884864133214771718222702274594280397992060302321272089951849610316374504364634539842273406388975194552749452803091359048559190454738297866257054768362860266467161682182332550763028780849645019878031583672657518283308576122977563580271864364324825858037203935557933420110190135132522522345833640462390121447844951328206575687588617069530088382183228870987772543232312447027588642270660905579718337601956004242081540002643619441659561653724255054088660362629317365200256933572010254640178075111818019538511367645556288706866025254169648583526476433290025029286362814283600106428608384319784838237799877427182335597124036192915751147542690799222880778719273538485028742832400628028135162120636945044616946384733412540872071607215945917095704151512419917622791517826452273746978607337603042784873750237977281296746494586639486503346016157060604920758587392191635590351646674901195282820932994712672572889246758544201932884853421591071702486299499816075098004166889108736322847160542635627390156804616464912145838105724276714848442593910864370527460127228561355425173436625395719514694369070742754758679947981494722347265143193268451339025578239290087673910218822708473955822095985535787764452829946789551694793591051779425465739029007180369193635615822755118476752787321284249073390794890393492404975493566203959826164948031761377846062421573472636748722547579099929857614010506958490502312878646925368660912453185959153296978318095188858486894538021287843502324057680244052960827465480051458979968463193435219332035835310119687607980884695225518098581924360473421454701539536622967244920820662968008923465909229856944017319454736025161119852039875304042480151264513442302993913272511283150498337866041817029026212014320480597102615617627276120264754761349327230545967468118925999967308255559087546634271849630770208778737121814674119752065522396417942566874735393908367092836179207354324000876881373746981396920604948363891588689357521032593417816661095969671040646075354237925952993473157339362431888127760903712228267296573149727257489709370247471764144068342994941870469866277783469447533030632512107614891783610062337379624870924983664364217848266965060764530913640979784026465099381234847541021636152008201123276037893499399737105419627433057892874322531776194434351368983159907355269267057108763206960105818913825496527872687148717301084544575151904775847597448838906172093134427911957453807044375194411257035190089440235351476465540029414274630422010252938083043120079391581699360895910098781408832003973812619686756859767214771255722723965090706043127120024239016460976662770459348278125933795070400094129735738334924849255306652161149531547363668854246290979530203340427972829017965324542555117302032415017174847984634475638187281567869205507764569626978647438581932558469331588185366781168459863404506119721277708767744783075822794218534789903498551446213875978889027239510087886036333750864997578207119926881773751361492100402614298434639436916319893768176808667384877842427722026826558534627911383630556015727496832591704938520145352294378451998271308474422303192465460492514574774450471076720732331014084926447782051140193266170857458299717579553939404168058853370555693287582083120061831984497785674438478012787883695553049162959943096437917057504720183668199361793510500014409672031436317132831850905864819549683827033177050692276892419369875110904150336073702210796247207641247532390005524424611586792816600841247592783194011829651712339838589537997886530036167156383872436371846851363122826076888455546834761537533774278067652032933015359350513914483914543791120973501264255161770543129566642927483126841783892491769457865114064247747525468631211449985136852032751991344971010410138110589876431155038962350980318335867798965740203426030038991047024806427613492909277299056920124846627844619484751398227777509222351627876779092489694979277511996250806351670730111348641676399571738892799348698333778039089998634414607593525932041705401440383588643688904381523814106588236229296549473923824693830565978279408941343425166062386195456373660202504096443377117107327856561793201733912003586300453710363582742933100085364885477781038807692383850900922546162314272651411750226605649821916489515766698649317230236914674866004220728746981593895083094171987768918279176474720710284497393087432825860104073646051780317171004572208031059718852778976677378928703128918333339978178135673834822744557514368367264021549829233478092614745534187621633353675017619281835728240481734548045258052460075617514746564904077499348580109721204921240555370458771469293874937213786369352914437392428766699850637246262728028380354945021587508536369410450123970956309660773969108866268698131694750913199958295158133568929487739360307328952670742367476743251659166772488055625742450111306408825148822993384902327246480262517289752880726227801376031300158219232871905927009829216557536830980109890658337425285911899292944450052862559044101344831105791773053018729553754850133455191315671272420630399754314653919569316984465426881719567906576122576098876113418202790073208089515091101869207076106526715886406356196085329931177042681877204590723405804096073809716503621908497955055000553081656538384160584440330104255023977866052475288476404689819568394922599119381540350777947306921790625094339107722070323693411946574715218078575321541774918383664977460055642486102055533272005223378001203585049920482585555520812705221853509146652596449235838030659432093913938214840989773759419894626687673779401238846267050811760770952254494479149465804635358283503084317570386092706248045712925676597214183045152794034560514812236609149946865603149197089030508034064265612649561598334168354328295182894652682415634498206542994745962612439298835482994441430252135489998569135749938022112607536451769717416035720028502930465758625032318383807440602413804942445383110121688050530637850030250070399905588642634654651135017725621510110308548707037729577520560968138865365537631820942538988648885848363646713853451214003466307427947357954755241548007287232975836027298429362199348179040415693502346979910170820861678825315493917309858259922342382872240053280375953894452592213557613578445367428271816906843942693378179215133434996102155070305126256111042938621737716048711284675586520787098910238486774811120681026168135526412104417511475338369835723992570996638925194720208275078962146341423420170460625757451222636477894628979032223189792240229725099959083244262469758552029119396946862741642542072523338238325908873109050465305152793198414261040335906415910588601838054035655800391386607652102125687683590291756801342339334313167942290523602403928941980236927181689848819244392673973181878642456405745561114048549806603467675240757765918479112909169563921564587969372145470178054222548545698983867839254504883838500142468954714847173387476700608447389059819368816604209125248695810738740849426534047231398494031679931105917245667469874887672851422995819262225503594136235403972293019225994657794796868405201435363434218670722232199321443046449688633968228964604366765134983625035276577772784024365735324245564572048966184577581284863226232956091297389573166721079770238392398862678782377146442082625376698164615451567823197235319946414180273094628258212710555355547634908046302693314439446958744225535780100573274422550335782574943291206286009379493714195019658077173122398416052278595134396814362503687058864763488012386887244357821826745296952029051364127950912589631679706180414623760098798524657909541030862824712220933359648725067214190899543273443249804442851032807455192153215929400711069011819798940199291745848124023701183581006107649537236386343992739404705817717073853663134034415747507464207400923668990227145231595798158596522066606714291376178582268816149234922418392040870039603327562892184269211481448155755048022957418601219457429498806174167063874237059971457577483881900835424955664502250390083414296864170320134747280855182938425172887496656786752495978786520041325246968103288377846760542835307170740123434091287507999720323400954180932701982661400531975169639433703344125605479182604071528393071133305372578092359839160057664584431011589787038642130157212769582793433810993918350340688537412374098868667374550539310170341067403341641940405575696416602657320567088344639735302285910415800172869659907911256739417467373301352343353045769487209456921097415931521419556246819368366409652864936090275265926368134650316645249460125094059187100597956824944211894647601934840156832621600973459825733575258771161267622921643424563540558873693694798046156481697872113350463811920482932059455936305935888688854958341524054682314938992203744485242981019142023260090054642044433594979743620093299929103562267262185843971594934846129873051692135620165868363521246525345220604848790350343875360673719279247557545631475979086467053758985242675660289922104112781716511015341697866297359328947294977037339094201049537639911168589864281636744665455275151212971315791978972331500634271328629340738752015637090496773764208043603833731490434302694285826902287925850641465082703340386045346106303418025541828501632958732397126259260935355148955164048239332007111210602683663149571676793793771472785983854230906612330299274676799468260308742056700187157034829927467713645759961642712880618395820307314760787247679912496965354960627360569755413615291381531816543828807272989807634301307131454114037178795431763146718736719008664806566715878576036919391491915299255562870109357406803725412539220146534822065789806298898220587752105625653555660810362413898395352608603183090156231318293536099116328112629388215664886983059278206063607438292793942167528104901508488069325842744198551499327748603042318640972540612297959160546348297616897255483443909162069863909547137916992684162478225421679747044685154177965077658626353861569130608061179976884863240472626107706406029750033564728325586454831512101209502721895730186175271168459714336195474531884169695800528686516460397811332216847010150623410562627186738757059005071512716022851931517174446746144945981812962568894926932337312740058353386492068906695008294783300899911860337367714727286232002891748926452546707322008705146054848292748874023864387418107773148010936402451391222084001243586335138129605813867925956052206454207509168434074995476924854879564212322360375213332039225432141763217270917533987686600937513154325365950614241243696527471577248272094488507904917115613304273427723277868074543366246334171286084576957907246730781264709457912876738576583820430702170017825407390140361884627109784816885571113055818378954319907080741529788563630217853896091382847664132692129862420934137607650250194810863723529795622505319705207378555148943395569120093012278171422163451666942750886918007366281956754075768437618524352363183052071668191109712773820359334362792657542003756399335775622923555061807878684530403030681322346165464141672893167706035553928747520485080289488475722181283531211078046107143858380202380394059815425143190810249037830941678547615182837618928969899603466485608266608285700929612881498331383670936493247380589532617553834250490808257946899372780786663276600942645536758188689749159413386659925964747416968016546376866383174057876518661724354922648104463458492149703186766615808079576133067055153012583803794101222959153928118045299489087222967622836506240884652467993978423421773258486214851614229465604607148348540709989832557338366482149816415940652370559831134302273417974777270604673498349173065500667690930666493186356023746084027559122692415837126893712994410738189399750702082166676518201266982258196964505595079273749621435293875321293120378160045085151425477530102333869005845629717726873611989878409892201384196699976810244397804323575436477504492908257432618746384588047148247303089307984472765418300826181427667810771660752813269468913436606102476757223466307330644037183876704182695934509382837458696487941348620396411111342165246342559734184556019567268453973169861550410496262772660641204111808525995412341987066393274234441328782966811877428283984008464598125283135917843441103310121973443415145388230216558038917576211319920277442405205537592855145209302279659778405994607343429555836790402480425062488407971546590511995126008987097749000589519444065447337445681546577241794992427158076112462612291352505789778506191593053428827559081403958346755644150382554129010933682248147762159920634112968256597190502248944953543306757447835097651381007425634447350707801222948623606627326782856405392053428472234922192584801847251382055061295210318300704967360722515091414520700237719564812329076127683591071006127418029200499652553862697470053360743535039407408105607458410786666739858130580022834127346531674923702505020929754980814126349114941859638962528700854086236015721922172779056607648826601800495780859242218372667589084905974155209267091158760067316769811961268633049161942587864704380410373984553652299001389313508887573645739599434479479029531131286386124476427643860438844127599817946445458528955441790482093448035504396475128406300890538730797065761237551297116240249199912359057998551547797491275914034357890602166667395982035628410702871091978313625183895184085474026356912662511328271113656404767347827088398790336002764673236326103011019513424014558715348625838521599007109371010890902285816165706863176779419914368263606738224710185918803400067840472719603937361369832389199754752711507569874853458277189390069114127084375742517084249571262853253645072596205832217196169797639320755912057060266934620367036245907513244812335238256861145128477696201383260337429333049727805318027000818747579953740047167239381584883060673854867597004370606338712421020242150215829010665390370364941254064800342408717230762233440348018308323684600457958048589208525039242275358833883596837875315150574084056938983454317408259794342652109310831442435062530074390996351653368389361401726094685894268245832309622454335816528166891028488324625048826954233838441882146286135672126270864900497618782023338274440142878324427545318034643188856767781933748182265987469992527033911667309157139186241662071394239438118047172245386058252431370240711647899230060995672267323515525216585937512960764620193856749700756287024208226452916335661143746335870966490186565618937585878683583229781280895120919023645719287364402637464743942376135602701780072112960784427906273505849562072309150151455836338565179563742164254038190809446075360473216230598523239518970155364598144930991534636089386379478421029523011158597021009362130521036524111160171471823371094106343645420340022587838473711829055098734613314249477294219863480622789503476527446512734576659438134589653640287134096698370977360846428953405132738766815027864903384640815620286603427540123239544117593382569963950110969897826275465439171675863110706911157799749834334060599240882690748944591676492423147601451181740189491598141643421515994309367459729082651677133779073565019538826934049352562840022135597999099844964249063206368982539175725875921639976930096745379739167250566880573724585369503411478297461467430484177649595988465540765568385611174170925183276976569551563118800783992188466021216060192327441351224328290307657918243788191817983161861938873163078458927500106617056182916349881905459408065322757713718270801262174864786009397474535650234722137734128855511692994468992272071009017683495646715650428753132066491803386555254270735561507394000677936662002169108377917138036607895986124550809055317999184208842662924338928804253155028673549607063081636608836411617394259692390246208981079426646806502787868888312704152078447601072636765835922008384685339789543306514936721347164888741377944099873934015458012693811490271402236303205162123668510546195505573696248356607602359672605664954751688977772021623664499533545037577210082614839950626901208987304507443168384021175573487781051245021548355011776565700062601137187099891995372179484430154292179477329058385593981241349855672643620394652754173875398117872668887727041516608785320095978016055199716982875015860897537982606201653066168594235808912194386730797204387983362753578820968801496109182665788035169271853897177773875908773708457573678740343316936137264634821563626324959022276339622039736020826557986802834967832712748979766035781678947673027986898265416162263705694782560487697184753042134051406216158236993335402386667136265267160601113628506521982828491867039955119545940233065424813516859085599859434608888059922222102968333285772737072786163103971163621337196368350745178578143163488819224450997013972762525462012911426884341278363358956453255306657924181894304356373204001684307681824919282972936486116483108729591859494400832341100653693959952402181516779100527937987078036906595639527642740088289534591521861240677964782792481362284987905537860154151130029031007605563503784468116133943096808477857916813897265436830945205028437985970644360357514648582184573377387277608773734957794773155154066927518627983685730117513776566988793569728716011610918894670577179665954690335068019847701466994323467949590679342754309342454343528870923631806885206149934265073748080571197024068224682612204552357829561630951238150152588024726575069911474411727155402821828066033433358629260030988434198824248523698821720728789053916635824475793945276627156089090516276463857623706156739199176443996577676492148068366942827611807936510568938622018491220220737503173742050392521478312876531642190576046856604578287531726091632620053100399187218953479958568011210161877308284695904143778613942749265730947641536790722353292526666712009643651073255212229127327155935088007156595563505718468848420499357024241963852499519894688896616033636813700488323667877499516146091223037377698659272906755836660373063978824710640282930538243824537604079146083129032991217860702773842840040787940131713126707385696265262752483474989563170113456844463419977281633146643212271966075323909709906683791103858955315731816842870041221036816960101684665946773198072690790573096977433379953634509516235121157805026706297972618809137826108796377210828414237651068363360872823976744289058818508066684067157701952940213281637564393490086338510071580137649469850759777884352520879689643702700547672202848628816566235155025440444378281703944296088975943635637576904616952833994306681845410532955627306032936758198317432158856696545275557231958022645652065777926287017402806243182777143085011998872930430259367308305043449984782774576661224122364707592921352431302745811821718801167932633565713039600715321684730962332918164260803045559988416769650540897479732362316983778162881571825747155316496036346028615943798389222010496039373498589492756415900076724896541798471622315807683293168272392653898380487295933514138584728681379470024435503667614319711909543310442203861628545612476135518304077835302404234988128111328325167916818197132629256954292293676887401632438361566606548426901494364379650849239472379112658124198475886677774330418646390850065118049149311459563683522540800071991231513843006214497823312748513925369798226043562477417423944730290036446774879513539256254538842088607442868234222723068764471088630851333980988727027331063991231806855562411062385190466988019071965953850335961030030375020180259761438001711599703986289015005189711271141550592525181302558608520661506676606189495211983067623936376175846370218599441974648522568307668926362673781456384389661169733847601446834946783690271461623026066171934290686916631637166035679585580346235620776655324971684482456799429464181962714916456586514439815201321919190286478219279914974019428518276243861600597993843315661012943515755629326017948054456530769341809526128655164897472925511008415040928890834137390133324768918602749714750558966510207092723073983242900706649261631400020350693049170892695912833447932998751136926623495315777394257631547049777604874235222606221464459671931758123633526057443900992832193565063301461011565161833401682370391888742555448927286762822198608003688145614635472940823460655133828902674021862199773345321140567438446285354486373385006121189284884558392611194927411734335923966717346357774449661902440215299321175230376119394281676882090654894593691582520805747540984849381035954944074650921446463852129271837430153844622586589342762598111009693017708135705845512457236832215785431221680798882841609581378083823665258307871254606592856262777746635079447110943819693325442622955844923868651681674523442937477848124254282055826372256365751053085468361712095219283809087015899206872769914215183790857254749188844341730255329079306730814277151739751917001980427993759936488343808531961267636336173906323005150564032407039107638967843990652159792039359087390402471976287106224540105047787125506494840546326537277397569908340124929663253993531711119017077120160921347737851285428086028669315456239263136739012397197236551817192442488670341992258719430858072418568715289591605032781099599075386426397174237571582314175397983997010584971832698799538600093499259716560425364744973406882900658909589650468991377900950182166505106478541999950997900458533962486851767355796258112761320055758570567085116769065530781457611718342434579711581109077857543638375419660778093941446394443852837320106739759478061711456826923819814442329494871188025674795339767279582199431349237791567048615549258485362634391717843921777568837285010955646025779871151883973335962211348503843476985683614724574949775122817754157482456314031332458252909112317487410146542733699437196785434779490409021371291783019609729285193651612966935443916886035303630572022783519277452682130817342368278228062855327130106021792352131812243881041996557538024069653517273827375153092357737092015199143576936269775185255999310473146939760660502521596526168513674061602572720995970179264818646651977665429881276782339242171897523539847771345642227174696275841810765145047379377849483202507246850487369261506333141428929701521229071978267698246277724115806030224371294672639978476368805890998737553699563274921040117564649110399626527285876338505242634223841972200648703256069551570277075594256106321299919973137020403120185746449336222190935511479180103794718367242883019476638658043302568655576835872497116879349631854966899387805126469222963398484692212466228831480485401853819456481702488840857343225651792371085974471100261117258217606184741106990172894158920355743967823715344252697264369904990772276972717794149445316681077900047273291786990670740508941634133320900997423551647639349038471116991214138861720506620945295632324374474539292674029991216851339237998239651339431651693045220644297622255265322984321537052915704604753946372528283959187966919723960252623468225427216905468690715105543358734913239420942930879283884864899539995466952864658453208084558481333959072478180694998496545581566719706241166248325079050416527214871298885039595996653724154554607421564095780026418266882818294188006280026081145034872457371902395297330337059791807148177768107189504131919491381925114019115692199330605774563280637851674166191332521144692526049280771983786566061668614643567952726857057425251487873561715702103539188592775008440411362966458974447688791785578551020921693935758881594468466832453666199369921557220459946824580985785724333107399948599180805563063241137346292454539865517348969332844030157071757778626580429773089664732356843211904483730896756169470551984731208344557565664921170568002530660586785561947107200365846005156845166497260254550032542602515843801355689446692385637741979630512766603534592411553112470489617175704782560171114959213324195381890556442063195483310827897013276487996137733932870221025826412438863188633646021241933129735370281343265485840884896622997479450436910892321344385418347010058027169282714221533256789946557306219725918462055759965840478496316492397451097070946977790460357485640970273523374429636495758115750424375768928064639483030243768834065870350466385748530339629513276161215535568017846745125285193257241081495990428177821202051390114222671899191996386211013119939110699097589557498184203025571080771312418313352895587219754587470424434410363291290205831164944922410070511906549486712901270558258252294845860502042590091157268848460502061167580022246216690039763361247736752517999814160855734841434323619716543453529473166717313286652420249606799551793050885597770249162905637792553446118737808953497223529727601261689711129186303215910683756915531660100370373411103030224577312152925677718416799061633535286839147070926221587862449762441819774525282606503362849283223629698524969828116006530278820621978903343905293729108579332145362430235307215788014225808830272179577484125404797717073534239648086713493642454864787362665641998297601093061320075235972621514536012554412055498792352512013311023045836466170924884209500622619927917968716025941849221876208051740451218721392111579656670973605980940271715393163115962174194312925493056467970432926189351987786540887658392019778559943856896501053219981843704887157581144680290705655126861828813226956726828048503975061144960746929700371701339064067078711457276933070987862218257295008968606014690206332498085063820347460474840966610185197102927404496449856946419481535296930310021662794461252025482056099105155916750734774548292561694566154690714425444376979665061144303815342979768689142024999285176434309045140957236762965636537736407427734693385640434521882004200676078199375243908567354163045533252324922540529246556266637104178628346048926276473014368045052028968094884710404026711119227189092328980268417846484762189725313844127685464071974002598297326491940621506308659294776288438973647880039114914830717783181022973061455959802799077850715645667525315019835008616270513630774636234818858918208004251211379580789832198922510977953648561422140270422076512473684015473052421761411350105624912266971509148678740769672167068579841770480663216375036418847856303741848817660784301603676497664083473533843915623902355182143006868439000063345521033002768634615091204963003885081920013200335575098464526406807996118112073555560358314915003300919695558039220268327812837793578781701877363063889099389069489997502139658064960104184960472349281855269165433451933489523368512195560050701243417545248234961997421164052531738277020451113781562727840804568969724664189395421634834110160131267475484837510556332405195517628566600996267636572070052993042179314019388599476677730867044657402725676289475790218771015701219360128885913709479967993873477097507585657345987445051630396242079970730519595822923602319064264834073064553220268395021983374125713294620956180065945567944602225554022144036807965794257434283341234317789884343233739057597169287319365835370747195862164778149619524379158651011628152772941545062092551222130561480366951111442246860180251822701143043986582067418385710599375583347780815561326825600082521806179632861758617901571257645197982009406757993699079195997657216630844529785771019701978132273528485099690561825104776729391385897381251850843720660768086014946157587001976469131932250010342280650928713160089439290603932520091357405106109103828107250194974410577728810328706913725882219803217070888642642846585944051109820470942209512183755964710276779539715380346252354323031190958224420586555248060559566859381778319680488043717221132409599055585588513898930542175483282319382305840723539374654653476583822534632036384890179342436235517423934877833584092587789297964519749223819002924369290701372626958179812120616244629031154297469653891662237002905823121411490591649245682123797381732354604063928378039982798130795433003716316931214656094815093115321848635280378687167633357473425336111275937065127516496321329988612798968184475739791176057759920654669681088245569842281540651865774116629122263168002306520755067043612510476412484903641505661541804580168514098084801509910082138169272763261497491263601082881504867619061605309380612459588911329398248364082255707146983382314880049418923225865327487246275691391932191603780671404399714544083095859515259085848307412709314793581407427130423119343623452191351878195552525483610471763872861878213995231263132988532142086368041995393759326574080897125882194906720092188751581604733195398401947284386743028866196342175909987211316092891770799492852910998027107090070982173233598992724756506682172086027128302496603306846952069202664583628802507083255396076349086723479844214666136855593675078357333205199572388563983108906132340053750373455289717646090132794030763623477813844811764385494723183118657452803463686843731567374318189214858164598682059685014363633494550812339609574534326859209937129825583809400691541609950930450764576096158272347150311921900006370797728567096168638222255869771069394647022080853229527792546191207233805012289070836563659664839967114324607133720748268144668767800174836957683316106052293151002997679117292584704712169653901776199550423485654819259015227773625929211780736822246971728000842557352540615667375238464124445333734160438795568042071839649122108006393816536369616258823777920779070300396952492706018922878084721823410966632877295396228507869793242629618911232024304635656307560492588299597959652751895629358258877255022470815375341099886956751886778703294992543220237532339793908995796119319451265897588233690887137734338112891642807880223631163539730877603749002138251228694011264920310458362997213527515906752150750738387750384167127780489064546432955421277789086500723417018302303441254150288390125838115564703488651146055619492059319438944347918575696493175096856714335589167388776571462362150972506478961618311491212321965033432861292576907027654754980004874933544628720932780733780032277968943581461157013886869864042657383289929319209079409938271583396190971809166226178818072259941821459819647130406260841222208799645042895843777133963899282189408596034550271221083350344886262963404575777550836074421676844713889339521141920355232268630128184396901147525344934595965596425614170849141155052626932193230134720671387140663375643243367161509985469853681234999396688289037315939313883276133377333579655693071584633348850561069887798813236950211218383355130898253208238750871083122841410356044922732125551290985596029634159444862800550768433007724002691091606856074547620211009509164230660122301719366244827972400508456705290438698462951423622398311760302600366842359098121592840802689904022965764476638970252523734281528104484624514013313282469003850536996711430241650008192062725432660132803147925101728714407642882296621880289998622074876398571570209067585552664762822508393299999508443320788219645372077742560876119289577709521213297207617501335388916712649890404508865621733233122415304715284526141920068281291299702345823766524887238970352270854471276699766919651666341393915449707592883062125747748551584783407606207578867775923246469390456603870102899221577758425678504230246938712710923503169654873502547913157292824238773061489267653447902242569625452159436212507021797018621276286097661187153230647598481330583460465827998691977679000567194664619232742815629294537335271080174719019538227223319830086620615150520789030818902103385701861458456411797338914480499767767244784798409579689094433412447169659500030449792194311542696360823298213822510783019360325688912788969799511952897533744269670112191941514059526629214692352613170422765327084554233938684421674720097164398648441605331988588953298214905167516505173124653200228062057051702040139071623681967830528150408488950570821733978358099151307660450765728042646281064677789649829678732698342398417652254985071442753211721028832039355697007181889163515555174578679693123215033576549971128999996092254266253569188171256237041187942734083895279855601345587645717792381160100116470527580850882332965700565620513616400665254183544787937969216919014358300350784549174710486333692528780084548901081539749233148534927221383644123797000437358054042607032809850814669676321749240792796486093126154484439797510580538724893111600308252943404128956127222763719176640004117024090760385550951826892304163301852734970992376905197358055411649619992941805687450657767510934847984114380491934455145848997947508876402456138494369408561110932738007997994247794974980855204112090571023395810440635848587744713152557793533798281507301461553809869347227899940709380051519772056088373101283959684626634251919813746756357842775641355968103302509670436643605326029745757154099976597381666330349039503891427397657265270032473699839113748425701635053228595376127270682205909979268310883180305556477140511263077939952711870767627502599783359443117544838480654774234989157091288743735690679842347843307807400079109752313025534757824631727026601715504600498644824169545876687979432740648456299426878069751181961065102323170119337287778798674909687014827766689227317183128842312437628357144007379293086661925300872351690047519378958119353179848752721246798396426084294335916014130116440460676117253864410520559660269620044410443870517019081441628077301338735344603854766516891953473564735239602155810191912151373096778121091893338867877357107584972971508728416172793921913371849915545912230002705360055981108836908041948523332754478956577799748625932853533050970898079882287418095980027751402979364104472489009491052450265614594472542388770658116503893410213853888002505394993772753266904116615107394990586826920416800988323793225136139073760781448591526094529742618594823878222414810251436027721715393548448289602221619858313495835170086815938031406175122112499931835537452188281218764088727316653308603063581879787576536331002108657770513648294403510579596904251604241063217802256708627539987230703334457656358323751408532092470923217143947459207486597655344974530625679162112767340230596711146413100674812010991758028185159274794666395048376187718081615733533609997428113592458505319076208700888653848700015979203588539314604502297089581836302662674075403926377690218500199698439356676131085508071101109483777494984285119604825910654327139872797715518894636750144483295121576540572658397621942209612316505222444478824647776965520588631394675310156837873617326809872952895484415868188332205600650753587046592928202521283380558930694529082939067646241178608119798012860225632529597615771329309937505889068520772292918518052126133106193583778791405551897297098840035674654355761913204638445083719778794359452853921196895883858906556164972503924453883751584944566264172248856893523274029450717733985648033586649622874074359582998715640182562186915625457085026725574619978015820009734445711634754848487325753031606731038257605247726483650907535388218525455933999547829289232878333804205620148955659345101071989715189348395216477908789879409693280784884075933714981794068919407686194647399807618246504739377315969318559972090137871909024933603366532408108773971469689121263080594899997871639702112983104707508322144858725560348526166685883071179898475529006502512593142466517173628387183585868033727341186326229720119417983946230061893636264779281726947994041671646700933436963253799857971566871788906767766810190241311978153702631480078523335334127026136058317924032022049750060240415087261884196667719949670024384935327168653370618935783103751943888335183245291678718029203469205420076101333207936775434712255525139804613405328448860831865731360903919324412721258631905651147944105090530463494113468351683933879359569050568418886454396491150416119491607378491468440866878293190004994101814046682939625485143706455929738356456141593956901582131442162363464384637008691675515145560907026845680199105127440213976165738189223376373752807173239785747558228057634807522178745051983798751600421545732116847767153084495606424282977676233945351184202896958295082269128644415041945716570037853144719920574784231403443951998138743890211351479330942967598936764280180378975497411637151136104517680280760836170225416087681053291567660260805188589077384027562029803242391423149608997002261631364073924061861504514921163353958782666304769324665418963912622604048503909376559170427389996379696230117673334915982806887175225359946989522796262258672521222146255259759379079316969548631588622395549505782654000750377813377719983386415938696625063999623215704159932338698600043048666392472706979588506508716702083857969905508877544144581215019012863065585856639616404030849053683406799375582332451464927455821478122732389164313008731093073688648119126444412883192496941797567280111441473741740808485856280605514704580030462013536880510088260017328022250615427059221670339774106921977081376445868439777986680288655059686665106073106852215701823447174387556708958052613482010025372692524641075294510833931632713150441801232315057918999155270428380307182694671245498166488745445570686739828615539583842186503191739517881265887038101910573080209128274611930541972588898736918498623655934476387081283747982022853992992216375354751693521885336463574662516635270033633587664716222508381890719521667405253574492804169672709384939951531528999508907311275079115930775808185409653849203090371558141725932527211430042975881822000682765176973906947130032942574290076794057901447623600299111959869633822041290938108484845441349759979174870236299933856151307498110797436754877189198584752723753275072369867665488178334161885734241689943106445360506631650315219556123601831308029713179491635730929322791206116679563299148124186041460995956998222088307504461163393768171609563655665670493944634377226268589767134714253250101604738016967025424443378742679752736072260007947153475453742148563611765675486922172354775868161392409708742200272452503963383059297606311250673743204600214194405946118056033379140533648218255839017276781806814360416081150610962877528105832808208812724995804345119417126578189988377816610333650195413308785603263305723638479697041997665869826161572840443018683851605349501810703886962902227966096066049043693999033314513217185583984302788016836015440796771795040582934124838214820216734121427389838427038227597245533059116522842385936313957486793074827740226651447742744761359237571702905608169223095751350547724871544529895892880324612254903576785334661961310140444151997009373331166443343807271838926849068393288156813555700113551505334781359425781750113898724227489841725345574716806277895860274991804502729004394749178003299437058763993006122230815618078720842834133913636690379757356543406401408585219256712171371867244699803410187428083871036599759337462107492740214026637733162503072349989482682652817657281488352959857338762193279577056406757865257723597637548854928574728562648842122983309814946320389350570966391923112641841527834376069516925612529907822053812308054814290180013580922170655051207052683927548456700316893715079669798378136245488406066253164598531270672157889666313709123054462319096790744711476874229668796600539052994252531877183725794797843696038597905016141564986775830371667922157116582480446742721337398546790611717701925840651707516137055012744327563329885610971431094119041652355617104596159063265021742228112889282805071896516386469900776463314966890269474869391229676174694086722219802787421831659214642124644740132652144549775659952893720610332442400501823468628335690331128119608876763583685125220896042245965793187685935606386917134158482660655177044424710646792687326026163858679545222970504152647570996760739005400929074008512686261090426587693387325902329054724294730094300490998942137522225446703597895045822964765715680743644294021725999422105842817875534087709422437963925657645412664275172712011151813694718085046667347233981809749764642414392014195736444098122734110662284777526522308774492789093567922553143804668456974378466141111439776316643893528300049321876623014400022874728918237807909683728125511825369318966846190099268641244380562681958054338563183684670107864528189610859255401302816980184788304471896104633587323043856137646512615427398855841640226339251622798732534125597006268824092669771745600949862020368117125140721560968736663424882800792066544890686653058836296529580088860599602868592416497854881968276139363824598381227777114996918352326799874760286769661787732663783457119979011260159021303638708249284923076000657306889283784262208284874866373822288902185002789736836786448590135615642115231860514924516600790289735601838001442654543631927441848605648938551453939751879056586286122808776771050883240475008162122084983275888151219943265650686921231647399918312086918000233145943820106391515974148364774921939239516217669490191833101776031907601923573530499147777134405338946377302319935350641495422743693249840398593251610215608912314840230306060513559945755540216187901890239919250069892582629179545506651703954780988026307090970668256015183650116200750439866200993309316638396293148167977064925166719324018446488286997706031352446083249008031736142068178070209906014575926509684607572945808836045923130066414674100767247472532252098625017099957859835918136724729227020563089554186420719742501006032109266767677846845951230182709654499942394874700018626205240004584117470826172189736176786459850042726615238371513808384950416762191501011456435549118858837101828781016849870713952825969732611182664881289481653797426799756640739110710063664029101757968111049497212850694520933560413319776193081260405341061486651784574721913316997601904407901165772530195798656557048054155251117677072183282032535533094507590122610825225290381779632665113863916888928667408404634920221836626139852162688302634794757827727726418279301090060683598149385560055752202066751304891274898884712924884719001181875668074353679929556387466822299237388077464722557214662656097739467238898469908827748233555394299404057293479429046062593509196607603234704708970801291284720150261983630367564759691635608738092429515515322372774217571611583803561063033236528282825509402108611031985386238869835055461249271534901484929029503056295473373573686425086357642585469601786101556323819854389052190228419408645883885338495189028463906477661696070141823297154222316120715099154509371991309232624293397517376180438432040349596819278968366666799298919886020850306445808956243352439260329533310063510281418416512748735524449554536988297636719385121884553073577307683494653353876734176138236761715601064928301440856120455531392198443606417702297855870862929557712661192156088509276963776344870447188757126800171393240009812640453424026976104012217675420087915667926616272835017346900053802726557063272074670574396072544860529618077353948800613787351881839423431876755982647125914223609185602575408384698628984359857884141062816227511696602607176538587858522615197407451408236246197559824344098827633514941437290246849334446450986184151329291021294795395051859989672769007794869868434870237596469002961554307296065208991595978843836571184544334443633433129012676478219070232124572811573740042734152425098578921567288667756677882007278780321883358822353505787561711861892704038035606647023863421303599936520925955482057217027075246071613588219266081506167093341507503788587892675288765976499194635249483319069923070361569531002948995420491835582302698891580442292513988621176874652772356930144340101146696455476970713258394419747796157930827951885207005211006389553912870536478442073340268057298730924362288917317327883133924835076388728221682191485168257287633867197193940356735860055480680599734802902424066981591367866548080557519947617103668203032448137021138967459321195157157840164717276861328028721374281027942639197751537087903077048164489875601051320757515028616068596435064124915238690134175058107903683364256244956005338415366778197271793080145939607215605161449869364127708003996794495951711802848031072325743860560537565061768652823342960676136088053619484145878482282904536092452260279462076807291649977252399371298550730419480512910158485943652056496744841355331410151360777423852446934678958414279873799691427153283894898007304071572802228990757855982506559545645592620908436942588396413805814609534160398168579370103525698442076765868166883118351900987092172344192468442026750680400415546995161024346701772403084658615513105412071633248219004999805612038880219252150854991380040562721720530143562246933679159196722959233477259883707354405837333351218876177110506198943523714388344750408191490676788058485717969961783535633326970483459338771937433349842510220294698921549224601324566184676015449324403532700467397858258053893835934922945976105728083370936593896638037390773673841137001435196992204298069539010873594505977400468591307975966910312600284913233732781764335500177047796459881814093576816007119048993141748537780870185828163413642274646386144987376538073815080683913477373955573152543419688167075046269566301919813121704543800774507869336772629776202318824834819751510975611660964694008058986679800838436904228183579878361919922167248683384111702746603822289516507819823189553603245688300233106918605067051993428949074777844910958084695897419159364806390659397297486052812975463609329732411566620165698452600453435805145741529317655178913688954810746950185932116620715367791538842782987459503373457346045770860689296186015082293925008766317491535559867525077219969040008175602591168256655200951798092736178574252815893301730703609925809811828568972246909651291090063710740334975140352731281606338319697369795058975942811971653417639135042426590852105061718649784439595349695920937482768429754362553449370939068797186688804661856674971228776854386816988654596947269253000182367597277623284415989546836286909476494354190756910690088003295349533399659262476377975849616978501195099260688736400497950718633826084562385110665474764041234995989500779708232230396816499470413783819661691606455861597291896243021399089071205124003601148800933672909253703284735406672530328997676502829181403782205617487392872041418094042014402445618610789946734540001507883001995829926017206683577929477720941001467302915886768064057661255189607631140712984045547451215772262652461162178702881291575079154399054690423438625459586150465271082396216609548456927471898879127337374134125599827024971906878650350116221427395017380663254048458895132484591692464079027989494728400076976088908336898166439448418622565041909117121283681643495269198007070541026253794318654614507437701475898280036900236173892636429848866098544722958991046745470400592062467364450212941698212922060257424533417190029517804128663741530266652529147190470548594720222283521568215616061098182309739258129624542184134933484083501877288799958928990686374609485709938176427110727319439946523655397149828192503035019285963844472908889400201450497789982142520930136939145978300018326298417415404163012804345272839689539317765039147196974201033490369462461258361437361751724491530788981683139729617587076522839720718961916419947714917566658242420993020960114310422871313962928860398348010056935406740174896770252063920819060989526231611541833751738496363230766152376533237685518427524309301398575671789096782314506474034933917846122395498809307341832523582288320305020525608385361525157483015869422351973279614832287378785053658979802559685481799431570391495844723688291515678442066838410779596060327350627307552625005341218440215184263484403087887350246660018637009303060637261122142585681309575279701733342136199956369892713001116175664859986587826342668752383288209765414035060717200933908713800467582121256957776434476572818337470557272849209720549986915553950142746121155702069424480691800373462369232977806177781739320280948371222388447105734444061188943773566685232962916604155055210950603068877300965082303119129088064425717260797900350116774934042088857373782913593009418167024238550758720138434499580501600183686740189336366700015518425931283112976159790291694806653496754163291624014860239799194593310703106212268409665201130164496578745395945253209880711763556744294017239476240697155766256679112032469017797892145876480075265078682614045023072339582209189007069560119801659871822785464812424177316898822625703022776023265305545249326082822300732239846817048622697382660074953115131591810810158686815539963128742208966607391311479026998130015660405781966926819591325680924151988275135082230106906973559163893795858289886838775423845186296491403114786989896824365681394490332293778898281278555992348483907592928375682565772071338310424981776431477709292828841475457860542863902027371568247082809866088528629802876958515088279941975343764828502982622912039192243672709256182618064451646684129726118038981656474759975784145761118285859301025860107538451599773912994415218807953221556451198419934503524898240090611596876885382478969797774850547519331701581525175183848034388612044964077105614196647199261190055853293551641126066805203088865001460016922918702736668686449836135236587855692475673124095964794689086357576143602729948852315269444690682578118385113722505495364012902046623602818750993980400782564009936559468911172409387191535985236141689938040319224228301584680222406579179547851184430194577837476090777901783854055393040206388592504529413806104660275498546745528425106127832733552204059952030822303268358907302076751325610489346825641787840112890356109252083797419282851968901112679666050036739943363709704569768693841135415238214442166623309072072220242107043693035756312985217290891165095527264028247969719069538144887121262997030309653179920444151796336942260713940609109541561775668873785802047442415455146882718899831192297289093027933221643356712017395677827201326170133197175093760076701161098719581144883282139590126857048353880192372601579864894397859652409431434438175141594989574066167874172545585472913091559629997041932014967260687364596891521090600860090788184572143161533712952209342148750757169121375973827082494415021572294114911149740085303254934120758430687285253572396342029003575169399514392165861371265277845440776355799225642349868271507671178332741522268909550443545381705908214320559394390155162766387184544534419426967956525305583738630755064937336210270886924632770079826986929203741321343309062578765879923570086337648082469470540995746146706760203638346179429001041492731769195583408170713576124009498499408097150018804183442487497384705878943599192787728324732320457701909309231165403291592545511766639984147180839630306959332764942176583494995458193857324130259304407573522342004208145335305513026354371522798576694625673644662164294008826886805813040890506267894517334441190525760423093175749185296759803360654373874123105453965672073696365919305672743775112637496064582381592516655664101052413369196687463161086129800775992445018298153299183662066922764144145261811108708466481538782985581133287755396382902005500594070062160331242133973715488777244832139564749001970536861415234793854269391244058266559153582492919021247699379932866563350872748853833700802304078148502704122086729910185178529666973690675889188147912510692719553092773574347504816946240930613129101838278124145742543176308613587692111838817954578196948475906944882681019717512428577968240967655449516550986666335755293646012447909431980213634368704085064848271987480280507290836904893002020870409212690076143963674456571345442740157692872240399856967352378425019439551902540033882885321628008977109413195015783151821102696229351737009206941246103596011743974164630895354482381533017400476151194367225604562981350038064213511665486697896187818206398222159616611134599185116533874315845490463371348265227766258806156544327695263956206221049405454338673367227037049107607926904466815764770194576707468962836359423468890238073794515779826573254864527175550672381789802883672196303481966183846231950249474991857074412976305517393707483864171014644767382583290471931566542036546955123941490835278242584521995449094458611184360629121652428522071707584336345090875299866567188970834293072668061513378714545868250772169396847045037131679998571993665979202735888134377040988942855437860907311263836138869823742897055312116326771405574455266855349058980278358586228076691562799103331740179751951367267675520617096648977981059356667601558336127313125070175962190485783873264011901876714626971548456502800914628360845229142048029171946693922883696829061430522782594245010642720662190122106781466866827431050201546006945538647732742868144407050087537180676427657720370780852193607273369851233130892129330142533803224961357800996303437229982407401671890040984820172760405309556745461495647302527486238485890719400658108245556372636310847900856514061151897211864430731695474748457284050285158070587726312145884212891043439665020517193475002954548807684977611088222368182695652390994218238420494607035549389427353994768018784144351515941558319525313921976746154267490389692091915709078915718019945143670907724293625529697157879094538080018090953442582656898920045639769418956779607093784161524538466738925009680850171542901272546381057648150189994482684019270381691851627772213819113094258442808683879651302637238480756875068345235145163915153977071471644192486127265146488003611422600665616373917071596870435585296352183670787641260631595129554798856825556466677902161709116784687286690734540621885760139893774537588389991800739084550588138043001209018197260460618669253405975133560446770795687450366262292069936240019370713100655854134721449092349340987912421449477611940488185828751757366806475325744220114461282521775355053518570814637003329207993364455460242207456036316249312489333700997954571802677564124389133649798581989281825220110308729017784129014293882155793649606599747655594003370182260883628389308758845993055510132991576034174410295431751246394752112896893889427261438705470981007463278908466702588059283502061986470508666397153502821671397703189959161815481913099341419432945235321733040431646908052116481907292006629675621841786134591489038158640820147916520694275065329348683274382985116636593129466574336942280744487909058513718930008570609446459623063035531889132726886559041714351399960875315078281786817034222244636339982545312863950677240015491414268167660552378012222788565179113470732234295510394319136967155738847720083709471197679495737552278085021555302224525278561270285700537529942707534811303463720463807682196914862753929630247946906341321039737442103176429341307022542914381027482363984673487057209538100512674732112026767345262455131765876235263427623660891329671417881316409855235446657615902018911826590649157960861192121953013947650462408707614947853317665491537313279912324592636890991130966913681854675804733573175892605164129661643302419716114157240106882890782265764988731935106470986360934956419506216116252155242550833425089875155208188696710626710961613753676668920560799043611857761444087704481100557582781787422200927579935045871425546984527438329365161842920446607763588921362026879612136731745921077328370736033425620431549570812372501433592895902225540634196069603935313908155991834337511560696434058437631894305476695120303657796537128539850553825296788587164915173084922716791445447872340435665796484424550813080651448743443187241515490320817970890663982597564896690380982854997946735867303759297475815555167862892691393472744597501287206585378279826586521139652186826101077855925917400790014775789757972129113738799259231309966050360350123220285317254941339836154086558561620037806639268420033877747993142286631572482587860969027704132524160398524856113635602522667502251949892023842063722054251456518096492701246836997340920022690832260754159371263321095380151006895982699896171230829790758986018758357257844222750582099280492099317911214550255555578369313558323986424986686702304674631863819899823179027735460518356960729945530835047781859115041068230685792142979741441883321096578373529405645385442530061080605260645909560003233268819656439989422446997002367339290821345509744103117061582430370351126888402774013366986521912733210936586004840818004756848851924741386892826778042880107308687518274660005058834093265574711157681812897585351485647357818873605680351986736851913003493342472503991368706738599468807102002690795926107837921152684632412896437906140789399387097432628110359875792193481648486784595251415454525393907591443201554264034581331796768201929117425121456990175359028974643602365851770957342067563876050497286062099782217751843341393922722360560453435184965425320580377660156566042802299440291344359177632194843551275345953474502616830192387133509708406751608956045745734098678926381662975110215619547366340923964426306046785701503251653387579151839105652865916169150286313078561653678282998165097419912482477791529582187608337787004823037686600969565327360521382689960849453173947985414291007702135809951492067842843434439473558548502140588029066668027430714163006036211077936473613710158527207276039179668089119562211609275832419555283297793166215794319164244731168951084095324916770529236484371292705088251054903169002174434937891144825831955246014660041757934264544702796078710283875382338487200219826132748571961261077091265064727001023003493130195059845279504024497399997999891457889153871490156601009928776545827984153348726763372370658057301566051643871924926645995415244025076293589855119720197222100841832577610641788860904060462777754152475085713099355357499242725104697917464102848007720390385992270406441311147320750809457486602560531530226981352840878342987629333422223595856167303709626940216133017253481402075080153084388404156492365148825956545279983684273549321385402037857606156093402571002044188199967157922018985892959792279038884754141445404791436268548092095188989685874331319431010867459937050456226037798771681683668477586943299324867405799401102649321488465297511530581243450266435829720208136433228161329239938086909090063129687550243776679651947815482198651762164884469188549746794495525327060341233364286220298797736366632626574846903916047084542206178891552102973207756685560387233781820006674596500639517654400399950716230835771670846983632893249876727692059604250415233344411951605058891415705828403920513657050134536896222132588491167150220908881433739533268190856915327769237664038119567018672177609441611887553894662734770177446298417806711317235794000094903494267592702334460989952415698375827116496175983174372055105089284883711753377403514817058380589139614582193799478218378830310857404598191364619292774544726685222796574063776349390182517875129915709032500061994242939324679305995518247672677199298737040348461286953610638670515632712581126951054649257560064522249818257661031751660005900921895950181892607168222996277100976237129208008988968457673592608477476811055592537743971050751722725319471982453716190548870936347671291008640971077465744395405391032609695029991941592658542472656763497659657769090001733344132474574684186567217589719392278279138484958512514246211939025488856081934898646788683821046630420053849715448797335543160361656796245616730100389663268525941526114137710967467093253031531936112661193250442922686935041186564826919118584341703101696777114441341901065138806551299627834652945413113520634787626627272663359663727649424747975753301961879796451230652584382948591185102946105218327058482464094957199809997956771258827550676507757222567344020784987660158378309522149461929444775617858028062592155032153478448500328447326182216652371522991725078966799657741394793471591604962572493230348854985367213078259943386975667077824584080774694617936025787303404687450220137792453623623584140811002949894910087549418166926629328324674487949549201618634609414699376123474521136368918398973986316976292211904962186945404162415839436651532582231379223820079167177037363470154794098610177310469347507489311518164108945177263116226260981696469597096245454331887332497814543437740577231290520689308750856211842133586880812918357450544955291632438410043873608818733934894722885081412288421630818747637026540689905049574480867120805096503671220714796877018510379752439984427801417787647702127031088905655133422851173072208812898669372410324884615342952544243433873236672494393598181616745654216377780001902211274901201196892540894697144612272895117932049254370770651871296710826806683948311531509160404133551997191232273112205840216494492588985652241795103636690509705355247343462070659816160048208412929161816515833277098001536046006823592843188577128003798625895147586426395049601127107799403297804435659624748176771369014884646201911002525713037847182814544123854838987464532579387921537829132115555953179254823215359636087389854622086183549923807421182325827028381121177500540117825629567104594486902545491374812997104005930384525010207474938601259011791961488372667410172666262153485311363205749108248614036779790695233715017556090711844096611873562107732742510606144019541208079475025768914771981304659081590632822383957827324964667980450944520345985045152788070782399190872007267837788045135511819610706524905544579426073995303455368827614693076963949108425258622985401606530900458337643662727153232325281379784198180974203822257507950162855340887768898778563427812749993772710219211999222112590837091086854197335702899612242839781419343943831117146228377904516745968893821680447503267794625825733295798227716260986261313775645281119889459835973639640410073440789103387173162747257409698552924555406535138684673680023073514141278266103388024213333329055089038554147679568184641537859808532228004095782593707717093618109234215268326740760234918617563229789252099315878565098746031207713383567003332245401682495030333243981503920153223275018883957868836349546794460945759753064973970177606416570579321118384501917962879375396550683243337641605496052056230612232145074729125546642046111457069620323868712934959355944170359142624879342548194853251558909624867234534904345153806238407839672712240055663316210232993627867511034731006381449740198580796716476459336309685477296973945881732055058517636488604645371677146393259662557704729954257133150851660124691553503155597081212227696873026264267151816327504089164578385247849925607091383112489547995671751119423742114690005603089350824169679304138129976534579638262951861304818974204638216414159836520289052940720520999264851501381104363953403770553533042428242914774663368471249880031341678157789297423630591983718702991030483729105355132669085395003840383734150279394410233223790886735480536412225525870134981355089702368957872228712866803870326114617681178259193179928210237554885207110368032553999577772334431223600365433548564620407693729773936500579378636276738890994560884803973681426864471667866367181692669595084056715712103112468362740546430574398390239113895153916650929355319292327108766293874673035548785226762167204265998240606826938992688626788901411141700574698075234902885838150285144182845296561881411556774662176867044661009886711201393104656455421839093603630754657524025774185607296637133886903886728051827599120286962325538078306317255655788762042875542099050194398559360825112299982158796009824802896024113746782694751876753162226832998373506081142237021601797295921167440446194890088732187149123181556386538975703120678683641012025505453908135624356226531634437747735283865084395793626583865635474511932318090587026939134736634442250045420214458245302412154613486322665809649938921240868039500095181307627585184729639176502502708367732641157426864539307598331814988387486080587844184797119315973975123399815151767322595300124508024482727587310423310441755988995953429722896726607789974068001676216555056624912903615380759278348215296369394225901133729958818661239436874610497100851503568557093249704676130119926823460188346513507608649242264462381181707264098773263387991315146455708662531904151369594904505569655638142973321411206968814771047251065866759912093344168784377017814318834190853412293073106604580855628572776898736555886776605742285281152742756925047924812981026607985496777322965810692926691179178885934632068394634895820280391062921673896331681083269529884510529070152447700292695161739366203229984568774341351016279452955282080488719946591732976384467701902887676819327791050934587369947265863289145646355444292205924339384201912234726762078009690728078944380291156895683878868174395407816409625704344898652701924468175272484241998399776976413445316825864848334686223092909006091488988045627073662093480950102304410328739926814855745198542160849704667458331424336207446507907994545544468488404357698445610721903506932237644095279518077709401378394973375818771978866595024157094237749297075095139390830008822872997692734364965674951303233535970344630856388517917906273833391714190431918322409548044276308613937262669986638623516054128389200158805111582913347362024678606414327449129288619146103194522686757083118075648346414586925543276807785917106708440952304944543916492132029897613676123517543390662324170510457777574313936794407235372018046504920518073841302317277059904436292595036719080075171907423145700432723072274774236810805020042578926710661329337750273252319578517784643265399649806256832615937329449470568966403726545777363063250284996368795107812350336656579193217285967881749934116096387105609264369905842063150050983715130092199433827530894458793181077321938104951017395129698859691030751016870789662702020727550105995137357012860715016257276287741261523392651488682276310972119141072795843405495904835327153462358904469040228564537904065341334496442685489763947906220116689206098462051304348630547865716860963335148911095993920320309089626139172527249312597850784892639932164794594264998606545216794988267575426646819071538378930044940795623604579354505361001290058566511386175347030796807770005287469699924670589294486497450902106644742005656191005273508900595853450368213562186588739089838359441245235493267084291121377481344254683736119768488310928094721758885039573971887044455428713106028747834520118845966323757573251981773751552978060091933855779397503131151018109012110575530849927113933839140834074697834365212746399518624287420718474258491339377276259738667062255688139474005762664877496232455880341385978301661117559733699341590720589125450776290434583802329598582921902312096677774288573415612352633647440769406253849064493337514830448254896123602606224857807840397856202730947848817898450632267822943618224557189989813250948322634000335886693263246201867167984678437643378291933509562504879243762138248487640331999339327327668517958303495183966649318178766303451677273548634074966689150120476930793018385579935959471374691134347265509688863666081260441186576525140438505428886473302319814253581844044209997092326687380460481379800697403193060376997559854092256754362948199033175671734471446458058620803111804161886373309182410003345117476959671605018830702119043608104826240528876496502192899495300139950509126330297577019021337115777508537243993130950272180365540411153340617820071457310124041575106023598299633524648337454709361744517130517506184669357791817421411423717534260885746972235241639412834152548692453156751017090693411217406079150186852926176096859052934936424810831076770014450190294066503070858403399323697976107562739961766970147937053647340001074455383844951800264226915868489874531384703516758464720445368691528689791300149536626136214018078530440275395240926792353546465757457103185294791494055206704107440400452865710879901310973088527448113175096525447211402835907661201278036491110358043833926557853284581094873594869529792143579975939826428066481436877064682941205913681111810701237816711343884081263683776790480576068384918044876983908041907945545145742646699327867051643606511184269274975763468694526916862399482056274360055648755306496351398966382270337751252979423525624429692655931302685484106643682765795687492725478846140874084737738866981373215063052195745696517470780862367981756643492158521999869918873401168358384215480197923065717986460430524477394190014016333760913065184855384286759734974082949051528500829742357025942668030170296891946213136304661364599613580155225442502601657848834931162129841649411093402121516001961590859438551623221196319656638901010391115125562003855044499251607660606535237140042437871647759889673689352672218402265763484676351220455523166129874186203386221447078033694538522946119244056260127327802092787559778604318250344832040367434113976127996739681376092384155121056558021892418858426726889811067815142863341525589650039968761865106833697536757687963520102124848352393712842282405521481370452872195871627022185620549991620878599928790803722029864054772172005849849500944900691986651822632336897480254846004827081751484613528249040037686450140742362903682108493043291330230404867016718326765297865564902457960347401281564846389297546862233050636912491480527771254479268796194101312397805006495579722315432742057202978689671628567291385727594354763996651531366196872762735944827614037967093156617583595746528711063210275833808098148398695486606595139994518589404541843460699532862009422866651147286698466795459312005334823700060720099483997190610056806582955476605089087945674829959007914138232253076747509957175671321610736102426756327372515404184258136990336029317475352534120504285513984880704979636709978745768608882610554567592663769585962476038947849682338780978698755388248551641934369976889945584184620825412171874464227295768402224860479984777171642874867653017862437493274351040836885379045752719388375752239636160764869045860924902218968840931161448151688830814854555450564365795944199530742674421043486702895850965376402013070622576141086584855619695980802131313068344780321749199001599450835007214490725925034806794195922591174345394091304673369122961802986404502458613158432687897418322698523972274070420450485703711825451343316625048640565858660233749969034514423432911472033203701799054774268119596435273828388069686340947920306586937520164762761519581464334293246565850938217391662649753166468390140349974583478468622367244794396829678663848188402110859661354006581840256930443266974264954337347695442254995415817670127469004459061058637097739978318737313186175121823933978830595798703747079336821443185737566140346803117425149506262424950851146518804313642072611898557849717454431005656578697527952890149597580528984832702629610087171079339171119497301135928093767310668744943610005492311302814926784675260835203216409754288007564056731508760759931676739783597108372561715381367189996252183764187453814465148627796627952966945675058860975657019029074441818610800726721387307547582050636372189484329843111605468218448448798229641467249521043433759290421793785938565658041896419135611679664037117686990060688785073006576294896967231556355400979088523270134598343187096515311716565315522254762676565524229798664554810490261396994650541298393188541217737025737379084652794639161175265413241222558049317282381978245599676539756660267947199624172765716217119193139133728670512350483219682223739202137092054454463250057615602040249701843857176960567646917907982906038862825460783954722677285754509059473443039886375589664974503041967031780617605101273626779528651065190063060160351257558904867595414216312082449107468257068426274866034565688582889023922857454519498954782951125324572820547468163497591650023515417707416733262128908951824610518598703911339245169588103528653432787663037479712822727754356575712134578487369968277975670647058942976691533648568899754940665671200350617950099259614776761283991738929254921067656542249029050137516116672730928479651400499957624747579927441725560188478009683134000113963837328083981890773545421897113908316558512036677600661355066776204744312715008975564286043797948237425852617674987428232302672045771450104516127364914027977384952700887447786947794798056625560650782088356732587276681709920910446773509793636766461125746624171869009749913892620735073671510726387108459189546113427699272851597102256239524571590399044062563844966641081928269985957882406187377281907224416524611363231334152369709446195081633053262051044600931757591480172218242967727107972353163780940263091363646761820441835338934033449849771216735042508682687307091936300489242163348321351657974274940367176871122732461728267288180383346936964493230444930928314659315838225925337890714658153260744651679862817411529467700643738894862887335228085755882851955105282400512841704999713283271466093232130180951768807185342827804650604900751453748196471492026334488025808850133231351279789977571981574491287992360475863063789628050562429394849407245209239667965258486538758879296020234886321380835645291566674962119926992506461358443884321204521069082751573765480074895306594662355588062931249343845516413471051628399908689895982749666962105068210599686253665849069234781025725274373804996955840976886172781085204069388518200863019956629552078629394411286551196412573531801702135051320844494688124676234146823450729238747730564102138552823703514386091719867764636561161178482391543278544018984822709402312118864315508349708107753705437797712645546069886541645948064957010423493125380154305492651956820174721298257330869757268482885038086591679848878414300757455536120212037281774506173371240875097029689514067546023968420574007309660018945695292923025907193476297047234153641953987539596604719515082538433744735270683178164578877436050090931156555284567850726653621018489137563957915966841788989586059680751996375113992240006319904202047776356825576887221593942831198520916570124793478316643798532028451624984202048385339499404287125937544221104105310800686424005597980516109611271308744893926338987402776610737530029520976787487643691116140581791811293220098230948885143214164768029392408940392314935460896428757625810085314969582149883322287653661892587949295666535286339263436780902371170567083596167463429622127617621482277660414616893876787498568332873183369657785557737766707791568465907733016275153980462683730597283508662514675459267509663322603074413922560277283411644183034866152065265609209258411815315725353699947313344553366507716713783269212944099510330295890234221451313857925205072118116342420005691779057140156740091796576427929138748167375799614974635491724765595034429202269120255694540655930681774575096562223108890816397278947229408706696399789740417340856414629673899881736380091832869806386724621508610244200667359203853785512075564504264056521698560825481693608907909139968252169258127757378294964435189719427272726652857784481413804300980106747776371975587699313705445411354559622887005106040448685991499330340285493097912027319928358002861695772091679475364969336664127042750205285290843942549789295267820137468447974016865266528689349538647148417574737087560011578719928109280185754527526972980533117957320251580482585326610335711571776657298741354115153561458462752763563753585634655732874591405585089944300823438586911973680438883087462067121375241885272253460414549514791965950684407715713256507534116680870813099280322138227945672237109056963898414749705331201009958535968653581317614311282471034151302453053434754563178766057587074445535617576225728618451039921234791387650212208602098731537399903302199036651609171791085518862852105455426699728455592982347601762149950507493235026451370304163556405815288931978242451446772605219210898358421080369199479631768693178588884585974797972902884463050475654108388786633317506126557863133344299995067882913181426723888078384414629051226510153258377298000384885567998093824443580549247079520737686334389868890740923072594906817957831659177255375807033813585030957301482835195570503560150440912265282657707179711862392793458257132458472007566023833369615499781082121023156727736366659569880205268884197720966129627716995907658746972004776851557487353275284898357858066289957403445841331106997850824818347019216345736172977162135059018485579311560094366755987282931295723032063887157335574513110019746717672446134336750773025194046322936548000361331281789747354019072896812036937778901776455058627980436219262099520992340615836870971450284407535481159965130466713017790006032306812010726214980628168078183601623542393596388712067561800331546291036461722006087886028979752246756152986344308960180184794514519827393888664264361584905155637455617787929480793690306557055302791132297479478232572258912362061073729755841746154991616268113531788641377213730886375888640169415228955442667439901016735124234490097575159733177658171077528762142563941616272297814109440543535042463656860287886182969870606615072927966792334367362538166245978094890996563254041591141677224212295796356521273130555580900973704818669397321123047050917389923378700799194529302669849188037798846770615054884816401578406692255018308982484762943165474435427162320190334339863408562337382095406942354029100154045703628010409385372805425345297093393752336204711895220965222511717852605124661919383331653224162627328450741790762537691643066642131344285146250610522005544209088589264244108853702514038114761410505385546090502842481901663817307146345983738945788917990692005420044811340519529541787178267279523214480779970364597795855883810890432899590740341720134323456907789658288056147537391042885412007085144887256993082716080682866655997805090833699835552853731759745026062502681131094616183910677846505271442988390976428195139751332020845053208574942213412782805819282183252802321943820533016880596100491391908929867193933867778519690748820185156039718015205431561654745429157721011353638613099183232619564687276748830875579739370090999146344010021625291640185291416311883188505215605538202290301306054372295316509903627370824740574333425656525494487652798443745209150411225881101755679974877696961611740402633413146254271825362438843559155075539468179499705819299855534269083255984822776746027792473804617471429983160765812647441806070364035852151464093585433732167413257217311494925626993451417027607133435104424171420227732768907153202636971631146794699070480209900189032617215748616874764801056839491690987263411686711798352905743307659999334086671281758500963795477220827158526629143248755092295652670886271127646024969255281247891348406269140338339621230551807021157202936918948755557424018210891536026685663551796348382006774444606171472634351503974938093535134155335209097150639215420227299914477210612538554496485886785711278649874225314417855586426389938308339331246844213259209804040826649519305059352819339737829492055283851598006553732580842075980333863748142325893569676804991090766267658754405190876430077035529154175322888729214954085488102699533624606962156827791967891436778120498097800507103076776150245977861098652546522225744711786254607556205513294007028062327297507567311914003001969159222224095485560141659182860346475126513122547324777224667082566955121629201334442158780975292791582262891825089327419910842446833356500254487384764744664615010246420371644173739905963859311002539349616446606092467447085835934312787474876704865187514059684147099736165388264127560945896288997832491864827097179722952714893014757645111284413689025948211325061995479128767399028723549544387241494059601729364989671297053580595423301336661493329785861912842525609380915889604374133403708288255563931455571826161016485402095912029218033220235637461651337297449417629297910024144510413306403960996427627529921073242932325311302172044271247007661300173179288017893731612204541487894570554071494548897806755119818480693382318439107520093692510939255013904980006772649804038426026027743330476714024204680040826645191406648959327701896662922445942523728152674086750657766662667487081450218747776258750282104845593338645534033567635285647725228532811083772131095661225796668101563231205377567342927697881046327501983313066695105286600855051280090803506956299987144938256163732330592589931042975254224172170857310600079459241986459518441478907595316164239432864611750793280018458327038453402056902585886869214494319994173028389156069090367078117070209403533118066105147286248621564552618785984682799059182816407039395180588499002071642782766723081179748671075303315453492948935308830140722743252596266766401917117070515007995087518626686736807425075720470781793097877866881625578004315675034308209691499079080289130813124290610770866568303003467950742602682591615097332017294938477684082111594557959028953535427255261119766186048533277367070810549207329967986553564496881875053571390387248824613274958332460525670633874614825210185681938005628948863368170081155775084974742104403252693115289998829518274262801752789748125706580693325541349149935473848546742582683893322729759855445258130229660995675382322486510282658017913528092062680575296533648197994335685721471308847056722101255297929754440367276967300192536064571433294706670959081407650128453142341790843877245795718254892161410847206990307450071523723432167828790975694709272106697323218287129130882979980436918755249679831911067092011386904752298789795039242946527150036514124784414389723308191243750742648611053161567484625969706717325433821397480798145155405150218624362849763936494338935701119123321572246319871315923783728135041357742055184325779409936121834632687132102934759592186615876499607747017873432889361459826984520829545522225846359200383138629638292227135880855050763814441964254490972418374229247432284646983954902996183735998603459734247452495045444251567455862926823023579598759266301966448750201146651713318355815126474235280610168650795499264559756606455756202852787126291346658587722620465645299755871532530925640686042053677332746766916755280934061794206012087108705116604367412708076277042887397779438376932426754172085550384164237287828172470468445523148682907951905635434649462063343724384486457256264011425511697304912617678447907105056661127646038428074389173612669371307810333931814985088189300110455094348837118156627914076327358679038649598242255872271117873691358855250673580757215266258746207210050881328956658302596882947538442562253476045666252781868984866459077050479714651570291624804231746142105362063290172431518380226286966048293150389286943771289948854708105628170041825062269588884445750070509951543225410917859606564835131207573168110292365842565829117464760958049708433708685271713204382509717030287047080333008691693256694668452654462974927812618547962781864730133496286002815364236033144531414424847973379751488415964078899313065189031452985307587659554792457060479322911100677934223025622541780490991699637309833615973665179981869390711388734042857678724161484172974696192673504267673642384727614943632496865252989308730167742519880504789199958683174727569702376158855577818067573683785245046547303306761881385544424798776761940930725463067245289931415544001119865472327599256396126853467490205286420883221835671495885861272187964508025921224737529966057070981955223289385529798970599847614089832878398449621302891661147529807739536167824441488241903115412951916709485803112417562649000183241400959560563607404673508440272202756879127129357436459832547805034049025208489213421127769164747100445169568780720361876568254860668690902631240113724367094929128520158751292836039253782099159645044927532691829054976933698735822466403462494994977925934991195577601672384747570453951776627783640207669180436564316737133715338505297652350115624864100916953539799079726548416126168967527910546482823020926377514831511952641710011746735548088005870995270800001137408800083966728723440927271000164850542776405674646675956809960524773192248273612382672047475076045883639820584559926487234224798759559977211302496020822873842739832698808066210429470237987812116631156308300576235934643041008940391782071093883565154695301587974541858847313067626834921796081591136589434130917235224271026625835599640630954035609489112109154058392637558681708185066182321811731814502725852100612181750620950739637920855764878563357663318599643449204598699759148427407540002438008729867637009416133249722816479377080496122368580642365272817707452988305456436492482139888826698815335715572638430678655288234264221753704453284178496578906526880245733389324675383847287993462025722978332618970699805086570593502766809252277342791994481324775941855239559053597725889250398333339576898652686620483545467693172140949431976073617240795119863132350155959573699159566598375192681512296707735148987045862695840709961286542398654471469175383449557687476332823130614117125583543283541429849895281324634385971761691890897561289862407182076268457129227431882367409391491637104402244616446403295873049991158430864689725360296827443196665192293032634239636125991023708476258601397485655667086304199198018984596899706279993937136500302158878581332495164643065251388031765792756110688472024779753214116173027601487917646333714848162660385040572802765649396508995669051404697766148091601554188498729714051253273316241255923254282513987628367960866083794774521353891868025862363516034307347351441346750323179142059714662571959003408148099804999202057740893266378113651052097948495391842481650077644982744141609244084694509137497953171096152132061219821217743109367875761143055128379118168992766449686877420031091772155526490704723017511704452926397910552804995434363665161924434078568779341668650998664578804120397675914851422802744396326458299308742007571845676254744873141486041768114678399926705399387057171296600923235921125285062427846786165512288510765036835047551065597520409854291195222765702087761239232484922635111709881004174082432196229698876317152916681232530241931262836928075961387580835678630061315003737234505936667535473751723928556869153091456004047821637548098993768273955886177116387212320499148305762214885679875996387333898089252233087012604792737216212347719796574945588088807860432077135702756193205466618997087955231515720918398606031450017464093143686438857827245477840919360176628142850156742498944766917421651295940809089250276173055992887705316368405013329869085912992163382046170491406051746303822125910756944415516297890753022506880262303535995964459595710656189735288571673254542149629618473733674713659183844711538419121887800851219583812525764957934585659207157388759940414068246679708188527853654639216512108564498339088668770236799128133163656275550382025394979846396655361357654570442463881524158800198029628108147782034501379865879210664579567408463777495162189789322692662540231580763581271538612710189108644896210139711561291919774665193378123790034346540718798560095746382698934182672241889839361641488353371977456761842521537570026615078794508378098941342975340184872868839265293277111189380066932789075802360158200303105611820231806119928244220136542024836757326012287287154119183202559081938318357742339334034146164949914539713897762080396262060729545024496361723734476295019165304905227913744386827522355735622993213101273871090734922238229979276054631651538143151044368374512442131649197072626792005650917606104048268989806912782441547147293815642158251169184312122213463088928777709403796804780899926050270350164469952031692038316311694841394023109314309731002630972743814751739969028403576671054798155704647372985600374642773741672358913605685736330293272323880893361484062428958750816690758136134036341061177067293997475133682834083145778691284279634622382012701704304367419337352914176428892847987849282811475282176968448009127152658478802521471011081448141464024985799962387158615049533484006555067882490054991052875810266474316707206918555585404269398506575643228299239795977653358443696641151736728053197373744703253546229355881503958139401946188333626121771392530626886649731389061815203652115199675840148067336907121699360668310719650149681779421153862708299752955879615242665142456147262539449399394584884434462187622343961144611275547391328259482104368366682444720797042714616230161248774617403896181640241186983626456785125893905871468416480764792534686288645188074015277228741895574944744864556062344888675917893698329818777865689800026825065298149610539592282855249145260301981469185645252704637050579779841576090498441095025179122531650368598646359718462578633449106050268130930414178698464269558104932832720855241450428182611975872616274558062429277834899376088259271154093548732789626894991776703912992097954300756508320494556507089484081093590632832539942082774429744058793911637076380233714062283862392644223872018344178228199795498830774901433987207400362929370349823963950308884633138999547556617175593073826244631702166797608974959383864436134094916273354432768714953309948603267704979249432985461265413793459234193442884174303705845192523094298115079339590976572981243905752878553565999021381942873086080291486469638298980975775937364786785868593432743836671576702181257326870355582484904919225053806678402809660691265264572281388364427934008798600943435736663782375939728334805887785681306984733533885128076416271961712431108037127322764321845291802039720582159831379535913716962541875673679383856101310107992676763146459756343531787363629776633391721927651541305169173220700764802454433422545567118187433404161113635102349072957853938964608479724440423386420168184818728940958691089834280160352044142214786736879706764013129794577031851524613308983223510451238187016662986730262693167180298817188077448762234625921101993255247705442278677031786008407048103074573800411921449051807812143047114627764055274244578054743845313933853140414567238803013672982494059870866122900822220067734507568468164709076459679185564951694503945460163736496351018762905421597234291001077880557497275515475515095150342865139757721712552799934791662497367491307815091251347021220223381756529274357880595880914045654748384012986163197428803415777775017237642652801528894541987284970965567030765167415144953362151431567741018374076020289966085325960398396074637989774563009935745219474807600448662986586507543973786218298618826782678644546653451304438649001387756034158381475663981780624142367568738589305874607135536033969362338547651549493649762645768232134927785637087946346801342302277153980040945967213518948965236573776829804062505167699675119570377181665485910692033599345371030182356254604455008353046476029458776408712558288591627822490891883317666970911436843986645842525303930388283407424947380632615898452312741083789693248355878776140471763864665092869178302382397533997607966175892908641018364141771547270165094691789938408864433317133966402781747974325542474086839125229145881495332076555588226374406619585082454145627711863323195328850442840035569503325266286094585236341946234603484603853097609656794700116380506015596183944722684750723625919680751851662714754770470645401204800556601100739442037090681005181040141058340647490378936404737119464593396571702404146578474057664114234722043695002096774214444875542008900821843106094342564304909887540456272863069131754050252337961032557959002922796053153613229295541765791882452373947337494596081102366881002737341218580165036846577843451536332627254346036884530858224740388218112928769535840913927033876871687587701026594552213116092498849395810575453686481838292670777620955757693806006036043287348177656916840400763097569625258797379752018047499894631213473052295243030881170352646386500360192068112435046739755315803224147239405320623227347595497622635969740895118218608982058601063543039256741261453174324238815392064509956212606604267733034004683238250357200172046049881647683514142123819511940540370309314694048412926264170946749784308274766089448626818429787128904827201724218942550444078112313445827206946301554867621651745199236121644800406603802821230136615573042917015710014153428968850766393821661858954601886646707997969754560786438776023256183982552664256578934239226865746382102258399574322070387121430773055192186116741918081027594177833674255930043181253177482122520520833589771582461642473912871780061343569901067405818075203275195484326829728789847321744012390144366181772701378413092673906072677213858885732782322419633057807672182618252976240511642967535802820781761087594424467874688385396432844679498111297449822325428921550508502958542221788972322427852918063360941748482815592846235892869988690912945870035363057570887752831851131447386884913705837406357987837019843355271085650408877634282226251718574596517744900218669357700851679928036769987641395198310941052535318234952181885418450000339126363846978520161427867637308191792423031383454203286077781884754614679597890133470778325443744374592842046627215223692493263621932080265124440128500785879190702325666624456971992282083060510813299129697304349780937527298259881913910923695615508985344206173173179273385610542638737336351442208620319695267329941584186479964288444170210706736045316229184883856490875990786576957007292172842327359134675889084815056231334503343662792303139997953564480321310274570847590728096688345720812519902453317290426067127834964413831364699607172110457822449382926961971469322577085476573278778606120138054248116969318489863401152884022996254026534219763063000840570667234189648096758658488342512470916975136352946611552050709705379767173894246056363535383166378362564413316084727639664663821177306277106260254956038204868168438556708128369849836219841745282585191742776079795084904330872698684070445565601039901501032971160272873690775462294496894162594366548393862488182619960505064650943707774927158916500840096579088015768377187443427147037209461100770561238339799336136956280481282963948807158182145312628184786969772594703354867083180601328388262556506392087817209668445016773522478833281165577296396765624034264834814876124253859353532581445995262654620718389241352904709442828152644743452848167623412956730624759493082504160249889418669972618864597980443612741724561925623645438702270241329552824948272348100474470736942717434495887139092672001510618555169057616847926456518770582849699466055332950260988749194590156426028628822586672701842013410581946801506064609486463649899941182077712895274587021276363052750626838604408071573555338733996026772002808211354584880964635593092511441949679836692721538404746826824318273719458376424719902180967630089848656362913476408392220078297892002857992990768376879053689124123075556671774880531030871116654915074938767620518593087039675661211231996909631552883660628237825137835027829303927248098452425322641811297745915891236912246766076495077105677136303516909184074346453340630410904838018496730437208260839360511729034302269126713148749056150065174661313693095253675219350546645382579238231663896390770925190999354896505850414619981361820986925955001811361468810891657329154278173379653268254174453088885462510299129754207848110108379465252901886297350144059706065210570174796279192574729996016684931649356192072253837236937597415951851584690130247996635282376519467551163569811883807185864878502026153013168952996008689221098573131902007900189800162868353450496777579113690292368015330598197297203522988716567285694206920727402847196551343653584454870852730341202562253192635529207740613655980965797984421620515482838566622166894149845783665938073843624191237117851331742927365039815993417760914251160203198501016387593454583817242353919294746837829169843024020528908675344694360277983185254206869394544614004204929726342283042343208498217045444469892504508958100304742184269778888883876449728771324989495541259438862728146726633011944446177333029570958259212960212603300800181814522475973064840398290805871857861434850611804934576505899852708829081358555772712309138655713068361210998401979057568575071186939558732551217372724750667049782521465150360168846835878653062579990861363144560574141928869413641791541516860754955057912381446604112015889576191241350125164197552050874323719745105600900207900191748280651844495782048116753215948996163605749492483159943749163906198917813548890788226641768235436995398805362201015178136087353084437043856874150847728801295530986247521200293636733268655802934072431763581881226340415371177598730286082377338939423675662124439877919509049511372912004291685456676170592637201836915101194600712922765142729489397967573834773446479875251031006861270360435743616893253369613708279306065217774076306709459299470435146365809939623808951639167948071330557423383807477219110189522725586594127525167310733696461439720875735885974050811352906896579946136554180534386706773683109884367356848181987409314270815410594439039532027497513133871596868611530522181451449694776744827453481459247606314083353320470889522811038369078004364872852147102328987253023238855532651915779727668102319250405343479048130331763412820075699893301318000980272913361379447246123819692448482059452827400374354169365661204604272784090814473953614536985595733475727800713149799938138884525298679232114346510849993143522482849203566228464820502837399402956002603103018852808776175792908011336223696260986968152444509110819855844453176477448847713142785423778307178465737992028363980962316648104069918631851406613033450753188754760310526034437323059133001209192296685688429738282589147384859777778892888787484012628438600433383758308825079282119790500719966803662850579746835697768041360937496505217267382984757365818364738861790895635282714237913019046242706618078640747670070288906125367208006426509612469165127237505326943872283971685426590506404293780084926237372230394887808525162314305879532213526310602663654797220693402360931063446469239520938618237650465096082940562144126500628072460971899194727825754544942698036032072082037749058819202251536758273130711569493705893698657937525037770503961392090246476092111267767111007149774734406336154168367416682575632103588723092015007236397046473342883266880152819208679111493021234694626623609614554126493338418585089257251423407512607073790977743518812258852854847033710321287820039202119432426825261258314815519021386586928061934799216450466033890750687069716364726831817371084751777700722729022033454338848705416531003578579201607420639041767921290054728487644964665997427843082165397552084922319795339561595366681499837382622927772455017908315059675698347303421971974493553479098337924319425599454620548296143219083716260699185120599169785288466615738493082665721746003925945735926522265487839737315535590211628339407019047943500516195108709365117773172100672686031280702294415227410133751138516518375780490482616350594409180617988332492961640548063662708229700977640822019242289627849584592567551934977815049850335873717440503089735544128541524611867037094425252750378985871945931951119343925276908754316758192272030648799302298535915754981032645805148328609080791093878755298619863488569375835379586596363470448465927544566666719026178743810049240823910085314136490665531770084158051067907937238076519492916818684217340954991158884851603290199045256257152831686956066290315486788697406521576168271034581909250494010149720897572231097059110775169395880726593128397577798645620132139955881171862077124574980860732059316260033733802804795237194252052091287007350761572112993541768578510025392054285727438511771632816921776768174353698633473051612725850239401091880199566857050728249313458614277375758672403639208170216716662052757577082079956597741430600237529477755830159532452401177151386080535343449262172069493145654956126109363936532450629836352817419252918056574644454865073090736184968585485901995631319992037284029843460332224917945821336527833774454302023365074030862592432591448943272329581587062950816509184835749846541379998409390559148344460202059203838713195224699348843358888344977832902621450832359255261505825645613837004405697144787372748546373341032878936009673488430214642175108694900179861018697050819976738386799762830249241386552815127020028218830253557329999207472712964113024557506793247864667424258034121143712111706308754186941803806413865989409759545130128399911514924210858152423443762896201333398462488887198069253630425424170252945739588193615438392578196976407129154409501616577560229480890309990221344714646262038667865941291517342632488078289741320793486204843677680394508220926153019783057973263019338436505205854476387311625168959465239067529003274022065715665885122577898224303068736436582843657457641909716062727442474506138496204553579320300522625781473835041197093325188033108020733452328978632097874796282566181194533423125382779933628217986391198035636989321861353405343365310704359631990960177855962659478632925271749135789501702100312569382085475181410272748773612104624545373502965380111536966692746823801057175372395152435561468877561917880935639234671551971645719672496379129695207039977310915478976846976743508843563399876132071636331763911937953227838283979692395567276796755187172763980491453117295324758533384280732621590719436519042092032268416244281800555561400777905821595715888608491189350929249463013610282455845041089243548742484698086907660923743451302129908154571573968196850899130690368846309432835622168959196875637671630528005766023591625057520928653856272943987029088837899671444152520135470568280623409465323205054753003611912250176148427149811432452097436855658241182148419924831090207560025629101602739317377754482528229421716270907003777612895865909819747410129610664432978341540814210351776919160482818838252565784390728667322621838498619133517249765341908183251484449329022799259253387923935816521465943780522921078557159967394353178238102654784461833097092789776993144395338524576444094106336745013470308046485833195502270428699459986368947173581369841736625192191951347541885146010562219572466052798241734562981905132697877979332668322986505756553187448270711179728386453895702795008283753976021130804708921542140562401074564646498200694154204699017921157181057134743755678980968061956085401820934936288481250952959321312743142877901632466374017950378982536025270215325510480012092565350551336159363570916245132641999523515661477752353936491443531162278218493207818048165964147991337664407752622372467037493226320334664874113187692573850581869676222391432746827645287186966273436273661247620042848763888385448153816257653215592352694902093806790909280266884914566755565980756607732828405812304963067801179436791051540140376487770732181963865403195435829067366995061891725541942123331019003261520562463960155656100744615088286281377864895519066475765935099607139738478223224658572468997117374711437544188036618378287613786452992420938448533239903789462502754837173116178129517996151770092310373538722262779924829229944134792200979784134951336735692791343386747526081532260018882402581578170706921264062637691976682974204495372801794931511283717463214779587304801389533780771904791235253784730783345169214414708934008810760215189727330210129565683198114083911986488185401095266577423173296436550745182181046259980357329887703516346361234881626051316250850484563228322678878193016149327533367730108619738955520477576253487476817260646311190864733052994884138203777768044043213091588021450568322678715496427353540663525581631802260985558625338824054183084956838974909028866626699162759248247833592600712600043854837200321788007667720629379806510997794631540870169343275373560755332727974304915187687631504195025158207617664258239408415386614478258078310236839483852815076794594060279945152732654871480731610363626077345010748559932398802429166887643761150191811021500129491575258410405784767150151090058812069036607378957847978686123045079609744710000545595970062972446348801928896140181323665152435366995809328668054734457927451209336074625239203257531093741703948922418959057592178414685177314791601032360361432874572095180982550224266173519087066128362115377568749586099534668083724968935523796976121550457683552150375038583142050383026210843404671028053204209595870277279998298363142836652910648268278680895629413999052054247489927479894832053057471387068659300541913330043592172105304062350097931753246225123730189747285762323624016829808260799814534321161451905327916872559710590219164394064185598631668168619576497333768095522713108210699518182456677208850206190865251511638947403131771270256348345577029049934633875031376155895677892365212702313016083093521704618561381407959454159273604336598536385744818179255505143739305450965090513214144778125250750625837712365891901395330685039599824541205675640320403755983020590872215904893867853539501851275361891445867242922439814860688862288385360667084743898034299537113026244142034464178001287435122942153959323354475314187565753909747047313059080973173959553702014364157314848901114194790106080623115677671767558820907849226502917180597225324575116814849907368009441052254425884115692243826893030827736434227194954646248989943056432980654423608536839736603724099756441426345421828667241904002605160296571742530143930330000712343915072314695013526318732246157266992068160727863685537060727174787040806617993219762852501405968896350744564105410632258006368965275370566501977076841007616997910217170820486550163594786393100700162201733077336653735616838648808928908919797950457351539430945486082112866464121247546437833240432253026158416555265197776178560803273324918140960422685039689590483502281148073092215624433786648616745974417714263391821431340952601516425866645520941804560210156375405087614889746422866775900549478523597354356714720361400093870987849561028764415553831951519120739421298747081763116882791557141358332295866128484607913794553402352980511912903180126041278752223344366682007074561038249631124317485796065914263942261615672871305644320405367199396061888257599810860559014750488935388152053021886662937027963928586579112039244854675657429352906238304303377708385599885712133704799723117685308118902080471359163052815517793936781373167160029795868549448625909747229846530612337800748766523743119881099922215612943456505224052285229924327490932250554449088926152978271532898539644696457945704192668548171201347035089824680892352823738581542707261264738317072792088691930615245638704073537476510564225104526633350654091777247518056789670468583680080805134626648926013903642636919706177495132256884646419529257183073272857254409538347311934297400523006802917569066275987114145827589971036916802473871629523813230400348554652157844342404252679883186968528736334064384661426544162022220069414489065497912638092842823761758397401449808725368746030720039260522920476417929545565494208024420981700058789153156228642354920088558955696102446669746684728962658643559751851540468524734235079528310580210484674535705320340158015786358989572817015728296883274955325780865516921942204304060716336600889716126543323743419049219148994450829964726894334634085484149823985516273221018224578499270294119450727998709480662578546078168381804675579655083463117232927189342322916792508216777903411162860146619458759368315063465258996704692081766140613701645349835739958518524289917173548978409636165498772185941155772815697784163749042359400285445400674235743322108769416410441845032066153518079750893922619917135724748331957642806716324126900857005953920134820068790148354957812770508518127155672807615159113658006858141609674784208361529844816206186850437946739343875004879220734191297843433170158764970835874740609527521475624723291220789880821879302722455174917520381926828858778279926167661154720867734784403688621883772299353698791061516363579521884626111296576946911800044024539026616243129433313395090813694016029048829057164306425075063181099178424999677314330277314040575983006278996340141151796037160651818976816423190657860969422521404551107863978301823101719375311840738487543918517176632672205002008146423843970027482767905290317235438946043864927224340257074477349156080500647974047691906404453264089806876016236568941089340508431690725973664963103769669295026958836298603643518736627296389802549689151613533177408523167705324163439302184134380969470311333729801784878586931228109299132573449596754997438287587159155971591711298689602861625473066716754067740366229083769814722800318084043508771109400495584994654922870333168975106810048822019854923936504153694492870204591125547708897769791622819297745508601359502351028629247256221645661922899596560232223913358822696429418063473682781848002446588660357430736418262231236577272225180793234872937512707976457812583702869008313880439014827963969111057433565394429933398231621848867542554529991373098436700345043177143911907970557069587145167514281544106585135024601664251866971067216463315524658637624789861752679227913499173923084482785774241245687184700439601109344798132674873585929833392242647588552700978716392883092026287787367102736023165718503112382401098895203576280586285517405127911689883068100170270727484110664965335432384558534746384818235196773447785784221078195140858857508354271020072735120157522535004308875125604315502103796145311937788155760492401506654641656248373676782527461681752469888400457229763654112913077112536821191105497816119660791264620854487207873389070907447054823614984700145298036082101133638348702801814851718418992894846017492669012077862750696898120667442730293115265460508228020674046544541925208764211337018763147272563609479152571142651025277216664862988248688977677601521373012691474579598848126379836279506806323752837607089938574505619679050855061859839839213292056994410050378122114023944407513866429248049631390065648199368149721908751728011332387458610758991057495422952719201213882397743066352740679141532860558074074712945447276423015627493627335914147323921962725285477662576471578247819957013715822967934708299410774359204960455093504333647714823118083515674090802772603052747344009814886943401968731682400040521034162607114411020190552066347895939604080309210673102985997803430663128230404140377917900508287582457493580790026319897115691209255074872938320947021039397597048001572862918404486314682040730725078798918654317086088444905061288377196457360680684323706716108616372568652049243260566071383804428230546464150830194865308999289420305515473947510822335019191679013904163757287742909358904651071259235758684853199735446851984179594191055677326899045363956631459635699685805821406263550422851561291618209816601546775684864891516974852450590621276218609238514513081119128187125425456382806941562175332610009154123922706966395047719865952422094917779985061580888787715523223036352330692329497310646537572895767551832498954894213990694103143836360291712502369108202252259427277544643134556907299110779923882845576534471537963179190861266604222803751068588307781694309108635854336627068269021938269976507564183964322571559160860107565958431291129152367333043023723329535138950315773128398072141148006694760898403997010877168282352050957018592103915579142749050365369734869720622058471046778404505320590749955317536399866371690712657271622024006164460039681166751557986331807416493945683028544502715973070933573054654922480215355113109237483838678443662057872124967208823054727548708785530379264607929791457731646579766413491827135700230446733520294342600056775113006331194168688728382587529224856011748318126126578029232044652596117465258940938405747892510291557096347005316372491202103816694714566255868169318656885541290473422751538399942937744977172108299508868402258202341138446682559720476508183517563240634757743015379312209552914867274119809161509513055902400107136348115335549531526477798164629428256223876492773049261855346944164698003799276645927702556541068393480012025271499452542864649981976599382096231777038982399617949931056821389534004759592979730454440240430667830634528662312476470752681945141498111080699929664630850148549971631544107564144967682915291731773348308303885344437016296950366363074767030084792370612254900771248462436018097278333863980733262808158522456146325058422533373305165214945718607198061551292093095683550762161396980066224678693557534389707635282057790427802960987444065222862607403689209585465564768789133788802978949964416764983312615402405597726094268432676789711477877030801603366396812685756173818497454599111207360689483554653714515347191030467814323081990576979464943613377815318873533061348739877489451302381699258737200022176203897184694371502914671352479392035122822337260883799781981529809266201290508474276620251203637521277845839813438979166343796650206660863504386367875894926802979559826204430586703736058558383467752320603976347567016632827001556259801527625334376626228211304157219478645689065129945807189836092112625783391218256295806590563312174493975981866941928131779103733817513664535521765668835939176066283906293428115299869668772254168592518069765852898392846752376054695836817389069387916304993603384497133240068810335062186347757238999539391133523809622765333984587790408995947454021638653429182138990133280280941588036094475511232126771469769506376110791432573290150334306805943812156963418045509360398364981778855636748908602101737710177616009850097776327090695942162385458902402377820456027034772213900621313145891889135359780381198364567764042455722628190033269945651787853866135996630266004877171470359060067226292654409546368247050336585820718734840729141569012646043577412788424994459970334881636340357008495604371878108538151449109709817409622901345924996251645936254621446538744575511864487609771481250615579954627315029876678027446173350719692303475090267591325817961572213485241269244134044058983297752037545393582943579220248185373881712908915488712760168160120546529328310451856648225548460519465235737819718690139177483797542746567633655861134952397505596802906342854226286318144395003544350186954288892564094279163394034110789750469576441704999718482290197964847521993083831277475539677410973130823049899969213167036318929343676396054102844427339062497120290150809693580834272357309688093938339222467228918912358474552905290450934378062135869147758973593279590112383929456658778795243289381428638433047092922983289715435320803554609682812843981217973492802416429266971438655707833561304287801387549680081501642578076204992114648419172925509414512452332628548301695744022750136664727207897350409098364521466487826255786873114667314420178575739671088826306773588513491799842543946367294893686745151747654905652035480203425639007055646782074021776252978330329077673403324922096345331733424947084571885802902915122223180060424825980916654501584693153229646179087029951939851878024073554707323123747177056142043904845302455203411856814048535761584208667680381159759099732005128305540426110696228176099919501373537933137579991162019041406733042740016872148960287152716419198338263761916421753777690168630747012170944569490999460093718995854224778276598291052092739954024202755521433183827848202413174815835598123470171270061268580313810033787275437105440110875131057845847740067174751682435319125795176533919227520099500953282199914053341838112369389839654126612442355185525762536839787636190117271711399782869209454514247258576327509276257809868860011078913250188654437521197374567705176026947971179653502183803962855407585446984870852454659380912532380864694732790057229315221215766376675176146408186630744944094947744032434584917203482678326004624237760165241732886050776779703077892092866918398234785625422467608592047052622065973378638093013730364674708458760714518094420228222688787115282349562335534783349123454389127149678832386746441630044440685029091579105895702632683121548479669709097831473761782482416209411650450258781914530682319526690784188955531723621184949751327035433214125205209226006531938061371810842685739057629303027028101912289415639464076170974864331020563148617662240618289074910511608916092923028626010546110806553298690677692430245491282356095085517667950924111969013299210521843944028964107509808776909633052838677684096407956924111633456519103176812315089460948251772136663646742676332029974984198537685915463210261527519556839880764269621117566756419186557615757428501832114332787280098998676096046881188007404131592414091582945862206788532810757927979270505039708606027458757269644078103784342882067642174716019957511447863892420037214052925051033947785380684417793106462135967114823431301387464367388403491362731350653418533671690505907168863179258212439159586398527611827784628550427207182192748626584202249619776506837927059285823495343117895034622624670342420696123181826717053764506174317705922290550031237749051540574830519166122904442948155887963793869216721867856854500906467331546612227948428037681394812213735115846881874527546737305396336834957085245744738777428751063239601616899442755101720335157377855791088287926150637732064627712750205913540145234740859301186705920567911931566812163177456503362592392036635232219512869680186343156107949141325510495457749422896344098906089272317779820961471359474933647260815837535249647803378914121060900836424915115001141422982923399494159332004803468915249591029230346587142978210421884993792764791686877909051207183299768007369105548521266110646127481209674198559974454953322983810396662132951132417754402292847742252301263311425014116814360705550745022201091046902269047987258652215373371215443236769199261897258213514923750032724892689471184708394135707828216770754443685042835635294330084042118449019891273454452309699722917099820988310720851589021124280052132995996054656198612808643377368703448327828794392730483146718088601262376204961676708829526821395566468745826420409503854033853929381114359886848462240963304058931131116713386820391317713839919490580740703503917447306881963289738501369871161888101263519604570107935094520468277719294782621674452377786107491590155041618033396345156596866522168058108758233829068713882372480766448261392470198115368537422486876982523067987650512410609594966444823560327920045738484057687926679104348350093574400591790579378258778447639700553747043903019792902919836377431209836428768222335251502706702448817352266934166091393124229442901364686461552858882047706934903764567081068067749050900015408290576112127466031045067914657527665471256819378688165020785559437987154197959511766789260718848691476626352718924156477623431155273585034711293856208870221775600935375631074697467532245197600044188926679226332775066805011740553359739925879742756975428888307519673728054219788647532657857902493255161290807495767468753427438338242409283846173517338303708529121407588741291000224632924393844018111475954260607849814927846801414679863401451274194187802570453507564854942166566405091906685972272046864932695760483086238777914027037937668785666267406902815310729014578735220798511550440133587270761510239417175531154800396665417441773201925910737098095512297842291929522001909796104167149336381878813247451985344771003604081331416649460926083644377390421503779800349153023724982828597879784509004431802582346956688540166479129328023566888163269681344017793110433633077468758529124951677547633211585233264805773659979779687405102913086444469522918767142979256214639989961178694318792279342340762736378138785563092704284345520397246653989864826641655134855938101069152914847469236691326402965219055790477853634633147010556189343244267803443789485350326688936384788135717283059193951497481167640822044627893174010105943881170135508219743984186741655749213149949011890364643133617524430558493702260400011445703058235856951341120314887077707331820956534672444708873880509811409871335777305801216968558319272491052924675186773907767559078542541655164796559420338970857360897993783078839743553615810155628947741533701625988682232900374919015600747157986949529283316557407031580521987303366218836102518396576655807359864284272173670790165145993131647415060520193861776223880716535010822132057188391021635346156527519658340059930125591744708724433604582974961593798107641320738920667606948831323877305957785542003557917662228797521723527155395007077692146273191900358140531979645541558627956552163577654658553772089254738494110601082384188114463607599244952979301072226367087177139978008431433534800700697979531251999349607427243960753742421310379369471798871465591914872668923725952099081335884620045200551887730273195014796604261890053920337871416461531482425189512521830989171803720857930047838785690859318180546975711561313681898235747336772548313511440348644431212502334242459554307706141698035517964294759662789366029688562733751281125170597773530826546926544591717118942239345049122558401483013520124196042834757568303911331496801672021960511813250521954339167951067888731845024633350321743669799880652265867490549738584455793748016052963048249787723109776130997611635222158118956441895545465599868644198667013580360337220542105209311880414179425198096668748080002004593909130274550911286367820526031708816017703565800771962379678732041725801108215202956324242903288201168692459799797399416370870501474797564185857232636171347572738103830606396138004943037459533556294424183544127296336365752719095828780860445632876633357178521976367692498498333488533894384903408413975554768287953758227189325243316234103251716966190276722260279487803306141927602463917652055803183174789980233601972913832376028449269169817173907861505455252041375522344297869842510308706421562064338933545446077860710009662846937715098959733874376705753496518685151047773982959128838872456280985026870497532909688263270590544195399968649642865000185599715309459343765876493294635342055094238020246682924888325797012671114981470158624166809113514110987189983352136155970989084451875225673577578236174705553265200886153330838528832382204801005814157306074739940544571000688335025600760710311262483977168486634251800230906540187267250618556077854126479852465545516865331794311784713814143903799589855197184730867553253588060087953034194980868872779333321511356571122853178812366992811715596922609050383765592568497385654578816197353702035160112593259330472565171539825731873603046792069690982074888126108613902660754035646879325294396466945478146599368978786886816878849587264371224584842431291082468243870738236227651783778006267827553048868325484572785533104246369810059237652164584953861028041072428753051134499456220135672827550454319077780192127254228859521770016921978922544680549330952605122703932722657029029797696559158435651711859200911187649858572702761590931221212974176443541474307607278330098826581024252909819892770715032637619412418837788966091889170249957834990910677994551081819848862989278807071783624503046824128157683561172284139889099427666508803672940455307406226567985713508485343419819161993015478807237061378332795353030693058040771706508620647928810633097296954556133266278349797154995251689959129083387211939597481302093900540691535241977084233545604507343019710830455184310951949541745634377241795420483199056777269411565054001057123867198451354178559997261532912113243414726777196685855794026385683038497715852128850689983150630398460487311980404993458456320145066974429441433802252903864501536637953938373368049277432217687497379222576266131423441941799706562636043589107953995899219456697779817655580903310092962349823628239106986843872163638497208135576553167900329836287745009327685116779199357978287355936797313695282160128022455030080121307576883461435538965749725209872922812418287819937204054312450381609576801890010656777845819276457468128648809271842844732928384136174341026820174404462790012721236089498941191549016759063409053699059802585356900745309419601402110409104982938911543071194831954218707558138165435865194234721601018291817136052654038159503655710603630428495377722854759292762406098476990747072650832250094174187811541383896483340463817319501979546213695336861196547364761036299497995038442771081620584000688887157548920388153035919482149772922142204750299652607438628038060252556157302592810928928519425504648177348050159361715777819450975383031763545301332340515045717176109658267178013231769836790486919778893689508986166135770683804722532922069731675639745729800240628519807762766203353362665081690604696260923217725004954244858725388376160288512448657795499531582331689547542982387499308161342107807363110972888008888005794345236202126045772314676276972223212712216764509892635083169085427408251799096899430929859902056199765520394914957772412648161133377699348138514754524203087651261658895476583616740445671072228573620978280729349833724932972500581886922994082000411048492667235438442086979893961828039534046790706484396621287169981098257320787380288256560851269224691144050391301415591624720319295990481770632178964900258196999470764353706760522192225407321034476455698676125562607292777797365621549504796820343500777991285829765554393274855771374951408558837440400809141289955568449543686411327895526921567410703884665935578823156087918581384539066035627559917678415881148734748253699034858414110290457185976795922796398265930317735765555792893686106711910027761052521430538944541191044101628324438447121124603685318337541959909520924189603167573463547269213570522297193379338242507661284678722255375514663407152192252787331582767099149779615197198038548465987295718414330749800810468298563698710272705651470843388746269863222763222974068158954014978466865830753769880372706837457723551399656452623942990185864457814836098554489337022012992922378299728160522781950908506642506920649527433519978417424068819271518751728566042406431327323307035371749842693310619467826266706436898179016740476463081143325874883791773270208308947798993994844775136298631239822141835899542224814723816616071938256389101021558095672057580107366421683111474230350832951478363632917506457837722571339689394060004386293076632648305137502853648982898458478264273715355845313955851714475246936820422295916155186851371120687373967412292191047579252202812498472635813417125745526162783112591603840550649851529883042945724420874403748764304911066742540924466932057452090451511305696841788246041201203173347857278793012598862885979890170915328713151314621650605358510607314681132722676768617104843093243097372241400278640769183359966361573705724912167347662651571906225911392382280898193557243688117333746037184235507748274311866525709595001218260200252104353464081496367966451592384293171392366570779846726495268393963723860776168317779966575422679096443418897372347695061186793475305333327650391142870241188260700223158283815237588693267765992776889439572701844569176825287356094328279095278018085470594474685949728566223835773048112343603928698461667848498019355706091137936314882249328029933533622256924668042412449306131335059281476350570717242271886703336327058866001907713913619199209276547968717544596557137308040571219466422635071198745325984096803704945495516681974426538026121141515471526739897169079439367200406724399907868397907649747023819820196338714924994958903097175415188913759437396328810620455206008080819865142758994640075703696808476535369139980296971721586248119093773351837672530801282585610748180657115846935895052590679454915811008013078465279412138961186767978013963493837243137441781726963340938734709539344989383118844353922525331474542585340337482825844577804242098695186038572360216545229832395494887410544105782775985603917676817138514069563528741066964775973935466940205120922478284237428060800828702435205130114745372042012956077867554743102432039221635359954284980967225864017179418465256525368139601982260467150921115720434972179967194338505396448833680827978199612604961019428941852000649868218032330411986424656969382705617565754951124861968098981892623026849160149191507942719344750556625310446189302026840961157803440864945869708496030554010636253109469305290646193290057104089136830518798275572306395680710283813172221782671951328174036590009382144898350283655483740388389524290895778119821430219578823684159402341414926673878701429244673676565411445391148675049836261257846948044784848807794755552166289491027491085113702550981420751116562611531640985334127274940172590912378486891167086408759552721730278178328685703552972358341221035954361399208504886240688939873813850382886704842792119837656337787204888583888546370310053556489625206982672390382590014675781548377387761159908497008891937102311670718962734955297896520595534921300859621316134302283256320809745280444578763383499413658129445246507365961739393225587902487489433785030521528135395124308235236196147552264772453911635005591188893749055416983978560461895093503420107646497432826492918139441118781997800090390536151991992052950782111870399850390285730185407821623521632329260179661523361061285550970268529490331104601935417750420239569434895472759192720007734152021632926764320828818740264325045791416179278703296175257180260357466274330833338711828650158783215454448543421962612199379031166635719988422417387114040486709407158270115805370615014940976274575418017680054080952674706998971915372587245415410148644292869481899341918033889795849878933569026976199721311347477684762309076622303233485826956591458509924230275503914213293267325574197706051502400553774644611007041711728156628754269982492611932815641267618853416517488057270527247545034164084631137777745537715887848845881652977815464950606236575579614111166344755497889618366346962223678230063891904344961073422070255366732512842022252018258625775551185009252069968852285171334193401044549721556006701258614857617703180192165545097849893918890154033304601337961135425529087450919278108775976657968334162879292853208751169630169783343136725746865303147181624494790247322625833737077964331474805922483060937650595988267386298469541426834365851250841961329902787703350019979239010741909173209629382191097862851042826220631032413826981108918915010592628881910042173503365944351506386677221563873622176814422349313781146494220353786798002091355486152819019248325753755712487499912220737317695252474359905692529103569660193756402400665647004085773502353124022084942536863317099726512744292728725538910980178203176944109066600675606213709513177949525775449570606251628684435836062612617424285168064680287230463751459126232244687111591124574467351533060556754880763928852588274739206322572995669718143322259300887133837467114455971733465873376122530037680969583902103759242072453423226820096118342799915959357141274709751986894428395285863798573844821855117106065225155836407281471462061894038404709971430063014069819509247122720176742407676317064150309230770020751298113122060628471177917185273891827733916313179486700703841483161498428155770972301161160094015818933187592950434534962453367629236103694714663482093456176829052051573073743298789274453981213631772748216875804590736397330876434204504082165194372536731314941792950146892069783629589977870380332770916621563657555948487003904395244488368768233706811764475208118239910214133778632805860399113275221755601141242780017157778812256526334726097465730014697406388922810596053303334328290031053086506731400962746064269646613896406601853112877536851707989380500703613502617901439802970370371521484048762058345867109711451079687124089630160254984429098739492283472544647512345411003147112554110559637972542966486362499046740433702856417831773620058692261813202988511118391242402742289943974520137867882546218440688210126430903896069006335614694087644067321462775228625656010360141485945793233799405124186017639013793965652590888677068099574245702657034498526927346901497221458875783199291963875599954126461940315629161331962621569173494055964036186654379260550280713620022506523397447131641227271827756683125335357152250954059720633866735718508076792525291507849449243428155333459964498829506386425808509956672509174305390618289893045975413677087005848931209461373855102176924105230227090203483216713527755777595967942303235169001347689271554155043597403732112997982336136481935329452251830463744012318964721180426453625387543573674984518179473585036870245907302395470973589534676761920943421195960161693186333901950816468578988483038625481176558004030474184108731223327320160530971214836335645848311755310243931195285399011342124548377885825850101350697359357302538835608022933822126617722735197271327626613213164754951179253964010625210880404956898258916837271164564987614174869925137521532513487202891536417119648645212437077559630679567550408973415816105898554380812198780028928936117340446666846957874483173647060359278468838950581814581114497230815623569364660358262849898844651893324484809149499494091831146558966374852648701316025051757374499194207373873947762838303445946643861254427103179633307794470684161325333236403922831664124252430643410521115131777032797087776030646297029280487903634404298530132953827875181845166121424916872083140130493270512345218888998787726762412795539666526524827095955003875443594347649796672446247750946187489892413386140690206122868525042679588125228981110013913437455279437788170173692979279636484830252301011355629976271005838801549538942471913848574092095873898183937186557102972654074071686904752053812903383741595147220504568915992594565610354733495661054409310292569752124514245580726278189189401246089661396665870830846752081803072491899656694732909318239457348295576543949093731329198936586536577666872533976093375642337691586699255894089076949829761110062480099117678551639669837697696682476469433322369220063788909908428192544022457090519437510653269095235727759551923981249002308744718071376172885336588657386918491519841606417074701419616245868042443860425813286209655457879642990231755875122443775053487318912942739533173564222374661174291823372289630629298830373458307038654330160299665120831179664425693173025362577148157902443308925276692355910792972209701632681179463909809960598775885537369353676124328490758003802758946829060075824567607149537483001274997668403017812569816060477142844776974809101885062557833118817733744064799827594437617924497178648347092181710329860836113232263935654055201405960068840476310132719208801652788417320303651439333150482039341453282257536779015468431933872239969206723145032348966595519624566202995987618315256947045312357889149227927273768774774570280962772259103456556011421706619184439562013532925174669802146368371513805569318352047078490798047673476326225017606350764883892810496854364797022787448007355269527605153771657473100983499191566709155261526516951910921788998996847973813462511833093325976865895631066492156288497860999391637252188708410405933478748700498674107795052082932876178704983614788146001037318876292915192549723281349148065569394278345294799355338731443139110028907387234841473946190333355142497033178263679338175776024736910081542985973854357092666555493508046180588571672107529321125701743620649339730710793378283217386955785430451121723669842230261894642953609754018347999974583430864220484203636813373509974893005506838548909797502335604917457150357074954637689278152334442903713933344082442473375743393864932362229467887869682439640913950217186663558570448521230978943103520118878178795915748566133188623257064159330712738632525694174886030610407941211763403316535181552698840044598480350257060213250218292695342887239164704065412033587851239671583244170507852715867857397020341847475520516918786900581846064547832219867252688999374481597721443755572610213547389181459291908502576188906433155436338578704039571721044046912697761815217411820192603142745926981659765459887467850572248615088912835904652434948762453285470162439552303995063548870644344147513494692948708396930332201943035015428177329566419169031547664271206121373530057066958409017142650317551505459787366178207267606129077493232359483601454250716453030470090130541970744156589400807117287273460856156579143087876064088670598342802120359870482979340493779689446713398850887463711547757638767795951655652648200528941087692167952491680973155069577708887677424765376816610839451310463077431068191226798792133121082636834473836201469339556144573304716180176868280453724119278507709564143123836917829348171546457494521765439634679441902230748308893241089940191665142834658978324093671063184840541259714334140424235016694199461908490351284694942311681447287566315322071864546561774348008772483196993950533886392863453507456335753911673425263356606728231135169572235620692484163064048561934921514303213752640532867566774634951886726229097061895799015778916358164501050072984108522067740172222586608531912855594394585397830325707923171046295655907864497835452048266583864329227976435654865180336022154638306194894865777075144588012248392299169343552012121289833163575588319897992870476176238809422329780593487623624007722148338749240139419072915297102584951976863479567297901802270413219733443318290189170758517345011658532391880377211328481046488421651771237728039067508183915948736332702704657159189658184423548637584064823235884267478650208162199975794132378182848511197179733167913345505590619510420567139796511834156340924035740714432087252739288020504999238780958983150430596572504935343821749386967866103323744671469216290074215602042491460063625002836280782642437953319113017373656019288547103769241574172958870322805095801283966061954894442769266063726799836009567437947064099157291191899013362953871452853846778386317309758994324536383762153655600363872508314119544796555959662972242382715300689097800237154190251713052417837779572876380635583675350643962865565347688266984655834384320272082006834225023928316990904936504027496298353094022257596626474745174539009814249347718845630659122915003051879340975706614132815628532127640065887171141070476940414176468608807479263225002993252214588809242903608193295987771723701001823439789345111579159504353252363448373924615451422549736746071556198627601153867631824689888553007588941527459636436876482119138061472926975973190152071033888589086919945068855069296106191711435979705758924958502773502966862419854819813348255942390164035758578691299269217926527391724569509088800308956554526391139634326406523096355520039306150875428322060716909714221146924391562741262252744687433585215119229647481443472469233789148514533976797705567720160998001726734237756190989571755259122153622684001999957744678992125316490974026617548798234192607018308711043926878230875473287360679177710452872732077427590338515897547609798762706386509768363910484789082980859888631497249381812031731378443422709837432663899425703124262054185369661220206903834082750874057309525614037001326880463031854978593873307414311459159600916246524645113154599081471917074919158913144592397441674121386766717615220920432748297357347279797878627316590656541171962359418664349473477579801237677781090575517793531720996994012955792078495257178189690576285399862649416174160515338560802422583764083272024224983327979728792208197933296451845440538367010455505187559439029548259418708083853257457190033956329739890396827975050791912269827664457362059242731145925832014955914433504051322266109228227252429581210846148767899195163946951769026974241915841985073680186406608229841442563370346767842166322348423755213732279232848834517169137746769776701892904083131028284971429247478536246036982956432653778751908327737344764938402258132805398319638740976829459909205903745557850790018376546854887646482923998032475439727916622018923260746878582204310666655515748678534533343043601344363774297376372178966948356981451881802765013955387830445830287223466462732047280548155205196582518992153977484937547460493647064113052103809193574777252001414379259131236735080070056246967480316521388619148019389527362312393547872959895679045035135362464935327109760157756247690851498503576359724526212625940112195934504669927651438098562736802228720716030373555777924882341525996430592623493243024222299170353187283454016973651175024935161431956220705751666462926303289949443425403790425886877887595447944886306887927073687097701907426946040384378670533988867847147116139197338436859460376868106419501721289201468675319367726150769515735792946826735708024725396445693892893158180606652296993428704799818594632827545236690582311094451821878810383580757794724242795418393069089565677228811152581071662565103078646589114907024461299712215243697946028134170721279186328462512102225723648491807065437540265729087235405481806577505099669918942417225487242204777207696875027566173184368297025896644592379795023726720651866142013131337743394163469013538190948491022218095888860209976901779714838301609428859928452750575732302542016532204477170826986559121467520215803523181588570137881381798922282313464615978339759035670267496923219875333803742576524285569740370515672653953026957743283363189634106035650486840968296125995760880727539103622756800892852208679073866344694824112598318500227626407428924185197602836308093069408086876465033741629571068395426575426848342062031962423389660461752990539693047200894625933503697374881359161632068577499379719404249734005499165700941016401785387688572024262245799352331957878299570221641627082907939498505408850419041884417172650489540273220031477561447511989286180354415053451317997809659673926651000753883976769127735400723874151030590901551322310853831946862988925974139930428994344310120372053838223755332299109688173810022204730830653460280613340688530736548393174928532975633299873774333572398403392117839344603275766052705342956086510482349119339635766424038851909163511924246260090936638101795445239207842183490837560456920680179341529131762533186519288188908063829013235675816684565894283054022634535903718458341357655943568867749268481962721363530515418012982480899203121655425516828317169440820733586006412971624283960175757635367884346176223364006131287012915637904799682689117621832567182611641424652796549180005569623350047786080747920871713093209398360279254455128757308006270945211834572236342556943577505073622845029448770493635383617863886628808247832064908080393562039463651132950543695643667092376353260313475417007879815004479009943446249369342892020640981880657744245154696836579981149220101070692428722037268415323883741318888936111957900805054926269147733307309316682088835727931931220614687078080087642538290985073906754104440263729933445225750291234872094104613421500711061725923718716385048132886286026498233652469501019377757590502594438305219060194159064258359767845596937301325909080681424106535564713396264707005937436698808909946845980039909042742990851229395243734786800032896844983878586264516862676056105865334346031323640691916439793446550186730506758084753954540225759322355581362156278738135770340697812435864148296579539819463750790413083447358994501186558637140806745288817875140650669615361332883730507863617819179177617919936023486921511884205032609379116154477280278071397689024399201888289983694809412582908407961726416404845849696037571555320561522608988203071862118348450376273268188703959759564976533252256921140802527239063680552631652983720568152622949737880188763336983697380205301074172034152476991039982287130988563192288396816454014662071237188951536117535497508953509178452494160228370755622784894222418486968665789810238820356396718624341178633304070413792338240095189073381793573901382845454731954227639634281357788315388040597726494487381171010837910832447418050782001674946683894922903095434945418529655830402573132502131744430410335094988627171611715653458519937615451206676645703593583969433695989705649923721228535362006721156936749632508939817711026017344338150759286233078074477781994524632397014015714149352499314998057232341927101220821733960225965355054163012070561372011406182439965618289515429115512978974289654631358426728528561129217962192369413497626024086280274281504684323890064335039330855577292472234895181222652365733793221496136127602892420899476756078680292964293411593223288580975734579481960651438465631007626437494625389807557798056958354579007954548623681610195237511550237385935231912369141328426728406119262015967425205167451311851466520696261249996935016453171384757856688845536211966771867992745722917782343323975374485142140155328253207651535727702521951825354545034865729238033592666919266173550006237767323855127853830402145860667884100642232408525216624331612211095770041886129836434939499118359165374238323458895244256951034430974066193175890752081284156706232418717635758232741618999193737722790872151963335568888559610980467671283646788202522367369514417900180434650737802869543745954046753425198842576015135157652783602631984993643550559754314144809150928690474445472505683967920812207898014176008578993190303700393172373122739099494213349953846253592426767329184967178659817516931272556367742072951261807990700764654663824334099549144775963881499742554982019417108507145989547776830529749134548294250229309441847125764307041263568195994828065454896825808170143808251889605024905390970073325024273284537685975935651700862390259587741888498611709653432826262379560344781478330448786165171937078952774293341653309402614814083942017458440916502069101887108420311039838446692320022486073038207708363910181893969437228674591279525392121479623939661276573988732045946276711456788692847301100926565217471607704339865653341860899165981271186611617475458280400221249797957841294086511253544358831293652367835162146411996802868269662401812760664128672123745279646521282918460929385271364424050731786343070350363677850514152994706663248742668431313597016525785036696764810293968157066736783989951981278420785201844615152364089744292343107872595219004093728139258565336775487219088084615921992453868956632007382761675368927347141171601998259906307259134455164754686800211745027926723764549739818269590390502229158854658257279755994895310681359421999439225145925149703758481173742857036876796545540289076637345126755071035611218684074148794265396844199620566007107919586889008288780713522461349045936503523539174633341207070587984670340024208595709719459519243587524711054166158734153762001798547107050663066566574535677702668962086329451155033509584098812266733449698884136441821828474532447416416743008070495673676733508587511365543436818604028879345218474031500436533815565989847555709177727010719316525586127767098396433232642918586165727722072856961156209550551962395443739290115395277274352171735880504813542031152671549345766304611945894696086733164021348496502667130331228326932066438737840736905315954232404953576259228138611855653638998442115057847947364274393988551086530541559920250551113636144739652833641160843481290003716677247283462177516965286400059118532550630162085792067444080521162470275061925227420974637949853101288951430493274785371968326100334807662895532999108116009091373816746483082210222302602060714265066739385553892963658944721770578288810488644740398756568480959286328782277383870633870242616806308052283863009619720801580814708829552018860900133354990946045932643080985538463305362202250337482483459659496969532373366914815908249911942205314702129131660422866048521979709948159850457174361571223709834470436082620160369578683507182525521352795763738858620115351938995171479147515574401456284953013046257474306924794280978185693951549009177177496593065498317332013218918169037441169169616585146655697809538716734471476215259174073561946312216710276739548792134810744558425792604475486671947939792806058661868604858751010510697025677406400500552486802134948625982115568941732615477545362706469288363838764320467698891267932751030717390999437210461741520823590210488713075006481604337972295932184212851330556204523990574082702559235944794507044173782401085285233012313962397205621192611755930520121014685448724213942087574717854450793796195996579962081830347892744169002147540126317151945267736223631518753594230252766529642122180488298634664076697842168480861132021896555282317754093842520579768665395062974395392178715030938865872611194101844273833628011160951943996763567425553579889883379096513259266749759776869553065146260003642385698282599897462647617185303400790706606192111335238118575205276100888404450308802552836837473158592227168728201907435633252852625304511622879126203366120132934986609701835003509261722496954396472247067483237668179152474456641654128137135585034433425249419030242195219782698719035189783989843775316751075095211531950422277384084125814996931568557159780384372400192608953646837729024725396384127212529853393678924117365360455784654315112804336276757115004107526387124316327686090112542469646754423471162712966460421591492227608173596064190173031992220529151371188697236516870628440752670586315496524670975679463116694734982875472313786558316766255522250365354404337800587360271020496075884297698835376364599413950005926062539885700633594827851538871725506288305867302806436470318314122920689213179518575396611609132902804512596138213876639950182252321535581724864884049527238332550542521599512302723177374713736902627129797810296383934547815633493021733244406045502542748614825082852814498954216106724855166216806365649753558731578947758177085963083451502401096818001311778040136383982017144491934121430905649106852211536302270644743210707796297135083225470454736278026114556840182430845115371099577074706127138131188313860303419650212770283092785657529829690012265276425683332700634021986759095075917749458514462459913325495607944703450396166281851647020999481837475255106166500928731970773703293606283933007774426358632076592853739107857438311653199830785899890774676275482588040045623915834680044692279953535221127858978326160819300007442917306500790711358808554892278307859156715287618024742156744490737648074506407396536551927160518984302613210634584919009596466772773016735460270000148801227752588606288263726078248353455528480423312380582657857864653331224597508471905822272575668512120725133348108854915345964374046057634567719330019071311353576605845456961992965378845600621870578149322703700972550934765296200825625609394312709689081873458024217615180668697043963446082176226655414669555403494160105667739414687173147295583635486034747172740111999772300418174394569874460931383157368932518735173119478800718276343793151812667126236371525720290913504337603429663774984275780729850344056130378205401304077956779408561276227366245723401109406712805500734053389729858812118143301005096188983801258110876450228530462808578030998460851260683562919150158299597123964105918526122259578198751609296931230600439667616363297434198869825353583811440061380514014798240038742726964660503479026391464662281073254641089736490790792396805133220849129756287399956925098720574438830640774400533949306827189803322540741505559721711831257165348639803616197012899355743525629594044524481941790079810200689466644185980006425899760569175432371464527381691097718524550005780752455746908675536331705010391408619316589719728698187016961986382662281854279485187365410412210805324758982205585832923085763768769748915002604078828705604899766636760684546052667668908942928771546192019847142503481639300962415665409828525237422418092285526619240860245191294570728919656707587857993317813341083710358892424404276101554133567821754995638600832614112433594285092727519359273021999118927273278924311687943507883618781100955425662607266364181005896914491563671998764853133914900213098757773829752668249371635305068858225779010312754837254459820552995637553360670676712632415397902619464984436929794094053441222452917025216925579630378353865031653168689074827125444418008240551143012799516200302626662121184049001546934541608694461528789881238172437560619499971270453595132007417563981287356550410587093625389857199770186200384461989959242898052484913966500581010604589080355929295118059819566230156642601746835326398530987599957560218729967417173725263947392278531445179507730254341583318242064091976343556352420330334478528823395625183578609642075282483432806548346516876527814512361452810126680988319560978395305786418701063511233647320883017567121679492249812335400100551440119874631529965714003075053192175452367664327128984512167085484852255146055379672539490035589757296116037018246821990744963991732028371405489478228479744854366310579793636455814960032910716109065123398791481739446764745754514398767098482765685211331146543241579563229406242889069737932380499760440399528210679271987720331821816497502267853321370801791693105846582128394825987085943599191377662157055700539112100757833157347374166914226546624837522727357034015063152295243595480728727892359831508036213078668053755354002554282300340394398622005221726718048225165777673789484225290060004652370997593194850300027398721796865510876755004655161674374409229527901353275407573361145602823995479857588913864171916100632493142686426707590866922656406900278296521169916676456205002745583516674991621267846791298007061629361363734296105032848494225790790940725194936784085914218950319575384451328394958596833911836761667410132477219345378057027353436201712806209925811429138347133268003460257657180284423768361187102060193612551366676944636008915617472034591413399363560303960921915500553261833034314349933355991247328239885998264459365103299842144098425675559241906866331709179348536829082673005437012688850734157496227218881064560715674394023918455708603088184451092461664327586990251648384638327171252964247012991511703354353234120017451788821563829747184227357079432524407596750012635114561454454416039606882554336450648763699029962363907854104673490522855840142772378606165261562375882066616087836569505591307297913481837523816909978957792025443152743453115924303610198302807362947260802787504124058369748056703662638463070126057340793614171357684896739623890419660943354426634257512900765087223711495467878743391590837916329966730855278998147055888467736050313985432643319529725645175908132525894314868156567189015121607838271695988559927329273623018781754644429537273615884225326116628715743633902459645608777344143884089440296544093481307289913918493709977616810275047699839263407088868974451541088231805809355212044546899566110751760336055605194969526979277400234381861620264575294330409489739849973007190402400010732680394222458085964609989612867491509053586962213215808106031199768287846004121721078343402603837525447468267502369644773570053115353512454191286819491529256651592593772421026111641628645085061078928596992729105686055078003554536436289448743586653655573755455003362538424647636591002460645273893501048035578403484896929173169748217864898677296711263346081582562719835982381886743099078959428240199032744591469674219908684294669544583115853029687855933876684670864983399504238631788163758437527126390566569878596122937838314232170318224286701009878115871341874823693424637210087536890020582761991457942277093621543612978497851037552818345667435593509330367089019175825029208636434253597963118625640561762859473993299249287957057669486898391820618330543831872631671977768076107496493753022716862106876782519858872967353683711551195677612938858298118830705237904025668283457278536226696302973710283726223887788798108267825868643362742064393402480580017782012912937221831708063524552431840839006354131105036611726322142395061131480735676014086005287175952928050197726935259025124747109381796771956353757302557620099056175102451552066052558783429664521440177525907720350894498432769765930138468381388121494458527291596282823577785791827199319227285055001193530558079370920462747296998371347686301889112461718441117153981415466433786147309129268476854782585721467472885647860873581229652285424816513916767841763960403888791949039534723631046335337072629636058228202079230002397921458361593229804522001972079860108519782504726821449567242480325514855019457343635093004164424279120035141690135533027725095554176239702512119793920175913548836543131038464597995968589702562700440013118568495012976320180264624421848842768193616288153052005860963570981123595096972006923156665077730008523686858767599247288286905058641154211212458505724409643557118792587199689558656323025321879119320464697432420658718630328312486426762466872827873973014164008547463307247851358196083103323644411718903610887442390260272745813106226007671424652920907538189367577683570691583253308232322148721326868617606726884497584076828274307400867323417580084256383230967280821579071885897158078079720806372010167896125020440280180316259055497307319787400690339655103786201176099975587098805971710397707106258407987513655739603876438659291225710670585446543379710372575800908118878775780504740538285170358654936278986270898292220655109809941624111069961918535240129846209779480246113211694139564326182085454527457671036981068987755082938868163436020535355871525636162533427638989996354309576724453412890150594875833974465796447852047926651908557626494766143629461711098366523732091985205206480977214574713845806946673810216224324574656808145281660743199204672884745438012930021252948428701039700162053605668210614118008238854204701378892831883518434689630926120001831392247309745179755530907157086811324094924355620540239397356098670166217233249120814313646814230773185849377847498148756620715484576044221908294012751749857632860306993367166734029292291190316818451018910787006483050108728129387972765470335507224291023390021814341162260155169454083097902112405907572363811268089965153188176792826380956541297182177447702652331517646255338137953614648190478198647092346701134846657085294437201955446275296316475394218658276522697085110002095398342336276152246464693890133573988447580986848564096608882832782111024449237549713433048938483960165933616611202647336074380670510867260542145981445274375203149029335211345423905144247966401763222159490652720691432495802862776839633175856749876158143984713195435692091985677518445387605631801761620461847910237850305950326895624435006565170920243271060319078288919855256591171233573026125094467982066276915843982114024269810568060465172015759857414768107594688557550635047246981045499429600346339716191842437376897210339128276157603420590258814661244688006579129713588504616303448207210792757378444788934302577547172845973203220556518220255160522679084843876871707969403623346562964870368289564353180377078328947825685404369691601251809747250855258893936143174479865730714601401267641273776835949461139066193041097153268171117696187041998820072167843108259152149691199876879444604584475267386435810588885457781657282380854352593820031366643818159860044940883214790742509783751099644712736516768494109827215515520808172176403482557719094133567462893173356383126168755152631708427506208855918558495311976166967449205314677634406453856009321056453907643279857765637774746099641296386909559856953056259345306843019007909894444023236293508953982137967976511128518217225233243839170653754057914650212789122758902718266866676540545120032635045578977076295482162742472476866815641102201050568494342787777051798354675887854020348974694841009928506932196708797839068132345667384824992032848310211066780991895059261884351359216293171288787448778904341855052486892664657483956047144323070901037485668864222300682911966724698888782753872049674535121727029048108776206314316213485038494151232531806472636461195004583861520194490456059792796227908569336734428521156634301254477509288241687807274929496604969218593149387386328400203625394508819970671256592372969270235267004919367782882585297626422276602905137320132288686956579873881973675148793522365266572855993174252507559839512982746011050798938959487369429111756470942136217730675232985407723086265076076021611284223782735879657981219664476387208227108140213110621455509914425589657578279751460163999238807423691442357157676992796012821273761524852407202260758016603344255503577630871484572562409882304763785640166222098887645917012012149097594728432827151920414212290055102776918056871201398576171542872785245340771694939520762528404055499438544968295996413815101140285529833359174010946196148768749837167392224113779498059919267744491171365946012622173611377273310414985950617193211324188369261506179820641055731230504862006332745274168013764587531193617147046117546692329286883507592691829405015894922043874680295494779129659354737823772493317463957521828915011288684603294956953870893088427414813863340856190205383571328731124481997795038065231837288860715302946743742869604683836390941803566807568333557474464938168383037932060552452224523123893477294233302937396605275870098646989772370189109889745936667134580831170514137410724226466850292701223403049769486637206546594728384341523705504217511135749887319670292254355992718093073616285409997165530784585795530395697887212637614275723376877922162811475271612553188099581643190021694195117323946773350159033977697938715944769004618156759991416127813068686086854567870344664336918595797398293741057673061963530191793302648246109775089160189551947400171320705086862993758654470197267867410491529659284455214213626137652386317497504723211823821762986442648720596841806821520308309242754396226098529805565340209530196075494879428474786368148564747219566689721790778687511200389509063351098188416191558601030472667755972822723947633009849444335756747805835785006150181743300214481124983334527182538045659898167577721549374974652300959852378980840526869955915653757104322696414841500033967616898378295334061096316405802478074659209508746406819503571390757565354724108075341739119478371104014567185065232224404438314719686255421162576604437412332624900623595646018321977753216500824885437066573550587145737563155758601326058635418993817672615862528339113541889932706860787703317522700872347089101271320185471439369609989922470807419378185278865663767024515695721384004807729950331203317035252091242989980455548197497129421982826471637505202630547889694828734471996293056660890017023632182386390090660045516718218518599867657669976739369566773134207003336423330013643800354287111879698555490413866464618808234986906157697733043209382582739164579445630104563521363940864469970952761890966671554122001453180178846132053276130222004442277784487073929121310131292688492620258184078668054386273095685502221116801361236552141370449982507220396869054638472370963516697145404723876040026359411617618768801628798200530935375623608232799669063461761655104298717790608381598425667353597758956382347251218870729126359142309954452601558728612320507559030023722832914885742841463849097085857252699559475608491960219763222878712518162302159080338732061656635757919000692345217284619425069014569586212208522213837795400433921941410370005549870368468530950827024417902567157031744200012274311945392741562129075467266625695234782630832666863575111259809128273542838539001094594186777276219327383522138288608348763372639320900583116777256470879123358309501653339607996657278648382468292585319939038689924433772090269376239325725890960337036163569969852356874988230233766650813320210151188008321608680308099312320956759934838278456395712831792080882563050279902921813352801342671248002514460069568736745882630773689398291478306576345091884045211106253180224095123806366162354585707547318256720097669834269925933501007165020729112191075597494953471623026106194254352981841368464845861106676016086917666974858606296778030698974098659508734738652364556045550944689617888939953921660753557705606420004283507736299880325330518057257653534621538902086515779873109488014901602392855228221310220309139998997781867554237609332099692754078141320766949688356414841523534599432943734383476896118781703660243552416198713150964853412652333846357774930462496071718376118126861501832562994926362542103693413169680963995826840371899030218750724413237016154031271730744104175457961325664650155029248249907759580976418551293278044107345737521609068682082126099542629169806542210376061378932065019763457480750686094605024730267535406102223185425700365850840647721841059039490301286888401684749203716438499292774083300458542570795319334268756787073201111175616533488288499351823929813051749860919963497646024631076590127307214213480392474795573496507677523006898044358827726891113042828409940436228015777404459771977048125575447128903437791080407134872338874146165748935663762891520131028664148073328993623099360746526378326347228296490449909574615577036025796106622097164479776873498660401312685453302476337748788652410660256557090150582013585373032326590465977346042158080276165339124021597968030873178663014982417943253534843555295644362358851714724647205945664207634736266076755489521469618354950885840971718886790382189257441422974027981217817030436613788103480809189387146656302354814037213955185484241059899799744328064629387810417364090775114374960685379657313294156965508120624395688501080599741152141441981378443556558389635587674547430887670457576890771053635609833363633560093113444064195017648184324685996422725940756003620079453526058562994090178355454726261387749083036637452927535343556641924944553010350636640096952969512405107909419570252027894552335812101346360619620466592637231366970209571495077760396766044459290330171193494514379683473044351196044683170948472920136937204299786385200656438096065664244205694888636349035928148778554771149288646101852415868705266338351502189607426251662211213278357766718858673596274688585658705228473453542784957745937951520426852952802000202967037930489122048494949775938012750737891956382667277800715128536868462727499081584210140065576162235071708056191331131238968087161348286207689089292065234739986840811124728617026742066357147059017914695213809413795973362315234587651805257524957548556835226243332980683648503800777707890716764843219912667970128952246844530838298998684454635417482292127395747980830751238321523401204487792560672432617401399972645033119654715368290946462591392092552038120960132820782160612892368772182869531370465388943417707132636350451513132347463111604872310819801821297345884311281542576900281866148504593345994222676884374155496311915073684223145620286213613101669821719964159714766976443901230244042931185122270598888784485503011530195735552001509167137069740901032922163567674878725352752670886672336247681052404204088187768006058456384260535128715799706774434527966557205709786295187897508931308748360068618128556591456483726213674731120423276444530131025949075004364470294512229701626988399884696730442345828986376712849838905702474654698354564664530620634881680730106628130940667551696236367131150977997432439748899187465149303109060215239903453349202177597357011472025574118620404426003522906184300453766923197381370462620742527606333567566645218686227864414811058602304817555694806958925565704502050412367861461737423097209243216545052025194509688347357986586569814442800645486106666145083185668176163318935946992564069362114922856090484496848978290906277333779508514980269408822962235670678311371108385524849828796823832124178086453459542533006434492228897444845510298056562986856424412806391805814032467824736523242897628368405724316960728600304347966667643889491559159080405891170894046003930479640032932487941661634692222621432578501149673762467410645232264282648015418367041601432356239421890296022386427843559257404050057446622799562089811466207697124260700144807337808749935014521990651686562392618997141724196213827805404003373977433478386261361175084899914158951035910050883816645658780333891851201708001320971892597947409922280802132774297198087770057915116430754543985450240079766907223008524038461559220689274855184082056217962103748660733927076267865650385915160242451743204628341884967173366471895103382439428586694771586857547215968468979645949060419304630028607169573232103531019449461632880590169820389052646794773691925890935086294805611407623805208898896250734927163335354889240837265976225406548839773906435818263298021683817445441576193364704733934556038766284536483807490240961110641774070862036386157531324758579826058049763305917333209710488319754514689546437649591211588723027618832657315904002493920801545059086829258403800145327786610136286161218485677302135141595546434063710441765496717097343008207669222569091485499683190297978101641405329245202953871526546519135067404586828955871433386688740848416728451077702679934080690212510191612154555922945111907382225555915178709445459316243279760929507665385166131750749167841267166975521571032361066447181073060956156354911267380334273786579314465759471761939541980966121801710262288712938615132597994408850229127026306207711349429133493331784966662757332333342939780272286312931979000863255423433169445656815182572449309489572874745093909911625700608547379435934477627985104673630938533987224174337375066596196251323898398164405754945081227510668671790446268510769100360069122512797616142069290789477792272568777470382670125148807132067784249830742091882545547485422707387298762127863601872490770836777591493663883975964646459215877886731595221045121123494630430810856919052312425062374092252343019698788471490105007665041797618807852660935038741737097190464073168963600395792375910303887675950585219844827747110506608598231229666629104476933279310365993361713039264485471862845674469645077855412815088684043835525419417497314434019302039545238915940515179620649437881526824208718181152175007341190212592612632473286326017894375811245745150360718714970635177037439251802957710974066674523906136496934135040608561863704410502054972551003928327084428729300671922692447015149722034811512597744727533632391277556630853313818352405518719826362855258142074110489637973354115559561692131162674636980621321681279049132803474686209087698013462318379020617912135685732233280646167851205354662569153328933699289973778259150006455542081479341872777018484688866926840667076258810792459851050651336897216130973354022577054140120356582443016980755364022898125496680524242305168932950203862025637093068748293213664441719950779754289489247462579336547308640372302033365040872883309532817941805088023665992575549552282880985598677143028834372892425288682210387230729067443534324940677613453811912926624666631753817524677834344749099768650537703733829302389345228548697921402351658084320923284058034161468734251783456460266120955312109832023877334822846956568679656678725318011924164257795498104250204167318294023250804708867646287177144695610551024632760407756838360879760606714622099020378841341185433481472648850487829815025766436034458691451905791524816942912086042572106203338278664212805369407236818703040784446323939264629616726124711885377240791188918348724363918887378973037037754427009759331832254322240683763803814698054067674274361829495688180390877105184664628729153739187844644805967271132029041859897129305451013125080711904845686439512359325948201446747834478838643988621989162700503547857895979167070428446054144917085850272214698068958326150270841582235468725057069326348966719752322783150552840249079456467134782161129820170307877904487196311903653577344001513901699897595347401432785496569435184041856572183607777604870562145802635222992518020679486583258505148523048120209330303313612220136264299352441697145556522157411094399853396506966300645092192389189719310580054171515757493273874463219157272054926055835058445389622885900159499145127631006198229885312013524797979222836076718421216544555204686165406355402799453563265780332410621087008768219545689603380886726935836683253984337212508134991581216684754348583762460898980996766274823570021874383371684833710940461461698015594441611929610651507016429810773156946415926833314753873400304359855787357042163840497473623920205622634208612055829575595728123856266313571281608427243025169944062284650856844094966692298704076275803371459032181581687550214620663014651683281924884895999101058817172333725117822609535474028983160951554919546805977849774610208376836112342506004138953597367426225514106865519859631722157909515090256168473761624456435265150209430549200177443629822284980400276623856147454023489480494480469569580173759270691448569675530333682656958482660335934317271229751387986877009453509401238495986180290698505007734609710979402946534559049194188883710127808696002776954893662939771797941319599169456892805086932753372647914288915079064020198410533817867596628140358405436850971243924344328594855953121351065856570989680200244491839189935218630471720406086016382856076563561663233113754293229134734421745336712676225493586374313791391537466471458168059046357547848914420743667581194290980842731581958994195782554127670213221005399025110273864297734798935945010231076031490719281169918364593198842870478473502686868552625951305293215048857254281435232573604699272434420907463449708245594504154043037866024468963406377819785551033217762447083155013898467662426138918320407302278294538061821014978641900256868955784568945924823080181517611884993351928696163164123571563894888241639279830314126508361145070893196789992155459179300254641434197588316333190177288482084457717845918325953650974382362282992196554445728819471859038592088984923418113910776552525378927783134480251682527469157139477303946819998748132216910340650686641445579795838342832584035817331218767836224207101406928223702057477372004094600718137760465448876065593168247003131351532487428395352381065512540250940300114155598450080231302712972853973296809957522129097175469576502580193003163331192208825722673523830615862853994285804706469626195780626162092561268954542023953688896292441388893080602830589841002961072806480018807049377733549401207213962892497490908438373828730593276201790932854496448190040846176860762006015076089869773683987254950508419775848335956788676626090719743077582229905425318519583486551152507673632384873308194590613437847820440041232411213914839654887880802265368663604263001576641272689543353897337740568445950150391410754235754491027070696132062362245513681648608911818916315734149633600971104169976775454550058730033384450804961854834071744078026995247892043922334222010557368947264878238721898131780381916689986170516152171074042938379952205424703072929585083940495592573840878029737527091386850535838692791366049657561780121859852827408154012416396143181118817577993847999861637302641053890817782218387563410164618908463334749969621399360481282484262050199718474229403164078412008192410011508775246765147052939960591699634743882007982480647832959080417914501324869067554398413251985995507014005321887180524402491398314650834379471772338571973467719017488300827734441559825164546340534645307925690848367244778660074036807137786885880947396244731092458742848958454911643062281041113111940413069819150277588898218482142538829582508067447169964815619636742951534906589478203586769488813277591066651926430580603640412108919869694188059529570159716143995552693109413780177325961869410963081125696543601902680119485665342284977652209681851935422176493502144498459771422142213839449437188686406147872328060491437741364207391289867789825988172428779381842200192236389377650108294328754566448377221314246255470359311464968268842005956534290522822211988540333845911892073277648346095531726742140219345203749097921558266750289205592623899883533886170573082217646058118268456355325666634822746499834916816129271213528858810011028675598365538559330194951448311884347589113308830544975724462118883524945771590785882747730674502052346619675705501462861082800473610690772227664187191817376152269337400773872383987653636011332246142295286597371637913809866129889092520925680085921569860497213394861480264827139832448529729524737756926483740663043754226598495728954776628945843972015946042468455245644326047924966168567937930113319073346001942572120819343343385860699634269470400608608594956069879546110184917589172455932506141262009860069050131098176198530071451631396731763076518633506587546634672560396451586661150061160007783697632094613502949995402208684335393475941873933794427955654412651815183305264629000532984011112028805390853157357726749292681893461548851559336249677010979009877450928898530110705544920301803503179451740186308785127652367681610884990912331273794381158292294528470024527961677265684944053000029834458549487474016531713084962410767877726756698582645301853293727493093918612883005613800891194643381561871026234672857686161944888960291692531300209056347679083942454279074776238566229502177116530341278352559311956555079554112389692946562974121318680547472974049605974201367547930712986254027610701853434602573461738523210840791977096974472740082077237434658419099338225253226920499734061471967279542101218438792357061445331257006755658341119066399241414630810164967736429276141385427388029862361821577265423235058710499698134741327892424346027603714821252759706997937649738309681775530649852703685975525863459639460689489855008229471786404168620279026887995775315789639103170069961001684741320618305323394322042523299483245173127157514270193464787502539527576848534269150703484732627370043872363656086022384674541998194567827340960297154860316665559841534578336904755426129033154524171269851033869131290132193156140256653554985331006889159579805797862542514486294306117232652989491209272553334142254258496669826481317837371829429705660492370951068717312049981649730361618629361618479489445113522447827011265774137705456722111454594935738290985492050841908378734221940913237017281004896599789392629762794761326803813787042625769904360554013094902722873412380844070454108735985465532461872508228807117594779367678032406327691635281894248501312597891491871222693270302292621866554179960813849015063949919266648888169211059764522255101618734410315025020616724517027026747691034524981480332679630817910861624430365664836087134688953808025593062245656232418326983434990054123612696821990824914089131952736536433150629774905011444650060144427899087985181435072076017987700705640293547076402355667948841922935558421464971154240199908402529134743190891163318758103942108068125882856011885722917994935486092702016252382670705168419013613800139928414070269619209851196584668701583714433351211203089024291114874291762012030399267604731744494500068919896436028950068333214750532912585792920830354845618328390265507519249269020411841994857852873533494939408575973611762205724029910930378355713521514211965235151769953265004441589230232834721307316825881843464244479495748667209671532142614381887729278192812462970693606234696491005700771324983456579406891314543001835788620174180716928161976679075037611880547401386748772479026036440390432406151333477561377312244765442420544752406743864426134684681217008170628610640753651940178672807070591420729635450898141833629208669601436622932359696243074975471827545712966794228236997496832825114579451753724149670238532331200369914696317136782819867895867813473084646995941278797619477543428129169354483437798344719362714591054633847511932618792424283372392391525977554391796670193048855997493240435753919374682822445969548788306158690483183814548326648053953588190414125473889581093046065279434386854911444864870660746099731669806479670500490564729729828286505855553058923107677262754528592855175074241675377590803386274025082386357599474535864441185381434458076459755322752042174032351702514836598333027717660035418071812153899662335538404160204665542372373197365688290764507400178606150709198912724366704587311366295259900105546465106360581398023551919479747223449800736497721169795953120156201594445881413998139466698670533621498781323688013355936591483600840307609321548077121958015261980813190813954845979159331034237886234844923397700743037557590684411072088880130816069465426268233627417653477879502144732935211994711660616971920146759381257827350185405107262290521485461360997506589891292703492774743250372071397232100649950989759460390138081796083898132047203408763044093505908261615975582143517856084667569739888126048242643834959586883333351426226114736466505360663503721063763097278897653914673657307162304235510675276038314569323032563410297721496575574853034579700878279729441066225913658800842372965866493936086916414000706260475982165726245232876972087761044497820563681042143475351118343536654561301096491883722376942868624223853531950524400605911424129122056557332849985524478127046421537123027699699374649035695141972823492840263734637309663948296614296285658290842411174114772082662204624337017265034554209724709284459229144377112343220892733837738242243542714894592275660975336564396555910041660857687015813159922798273599006371361164103487939145062463171139979993674340232244906933390025864395299179858021192837077800681419410933279526958497860974495791318797014169719057507216217219657477460966185556981911981897707605425787441498647162347970401520731870006072863475223322959131649609223978297230694612780300943935226596386883753939682304113386823348937227564528141895008919163526935825115291602902879156260740342201486712366453347210960997928392373808954023159014534674763580166525759009957375957083054836243823837871501769785518429471666662257389578416159664719920731313096053750666135269815037850105341574817077981494903072288591358144897655435320564753296385055707627415984037733583853206385967384093487402477890461733886236307309641076606753394559034074174609325754745187262518232407709919738624107969124909946320909536579870645108109373651757725320787012138943475446630787950669007635561898545278711459580601289396812889985447619887521528218252979590581221298376925944472055173589982602122783295805302825599760858556208019590467531557472901340385907985608328799884106746830423497341718279390605786871893187834502978389164170305496230162527359618716017780436989835554996176269118511892870167785941001368927327599836966595050857186108033106936502320140721061750634923224446177759705751313360110502608680602748192325239401949132929298777104623808032389733325389862097353823794181854861396368081519707124512953592416904225991278890415861398059095599566379323144343474894012615229610453796458614271376029094502879384083783856468927134399405645931449395156557601244278213798736477359208676335815087294280561747466543893678487907678176239738089698706228230645337604382620056066209582805172966021897150709677419178224173486241373935415833321474195137012547003542474553612739898702698164888559801105146264583551946814611121059018247895187550265045755832404577837961860009056796870372234860029628347789392753861049472471937666550873481272860631260363996078813332718607349232732292171880703831648227259071663658852193881579308491259633862856417247217380360243932513141596831212179203071030917461362333091868378510312243154968417017928434105429185913847203012058692745109326751241215320330464468727333515498008943876792848145152343865424039711040187214696790384487804766433081355107483216538166092368243565719412111836928149323485736447833137879646324180002468528298137992083901197675288256389491190385654010316077475701146358200287625382768844653442922166718855870573731196094363252810329502823099258638438560547610652784712675429691154728352612531833976108220778115852786524162653631580434929320714904998372956963710042774237219175304658679721729576252293758914618830904086417527673647256456473350688791995195726474405513208170123342045317805787942103876446030649724178096378329357521496261883704917849213409852728142451804039442686213285885575939877769905787076089190719258756088232157839924761620859796337284564377579157748405895292128446172729796595662173641496257990815045428925198395715330880300357691346303114216725982419812194706730014449698583938542416463388887427927278261340416086579790014058395379090066407820508475801236038891115268496784359637335753972404987485776325944145729763718783080190304449122578252749060267265088618744233318792761456879592215858852018970346784716046180145819274747599179096992154844578612158687513939504418307405278808283421309492511048197264173304339162666497456848263452135005882931755928255599871476442296591619667819334421319919825099120432926631770081574944524928171558904672848107895733418327991001588233884385992423241296562063424011386143100615162714343872300159330103648720006459587727203968094811525483558820459861007063300747411901924796137282599648994474691273051250601950120511669183262608245161560656033187092695694044491432318803281182362952497566317199632685027304241916012004662978750546762731189402789997584190390021123283466314376795001064348854326983705717324744420563626051979113805703863122705430665797740779330680265069219050940585344620723824485452163308553704254561461073006534444422555518054611556481465368503254009872696372559812377241811912595450637233322843734863639082414140323553178394081115348286869477327093957730522947475643209876885321758484358182748346311611611528951811969086486703692872870076398111751628690133037066182250436061653641740251814525468035317204728631281106040625754609640846791401725057138446137212010223126157306848563419032563173483278908375251150306580157052457513605149814174631679661860044458117135327534443634215252708641123474094120194354495154163474555150003206854422607719650944627209200869148198721935476879794140007241902887672522850759760382904902359357314040738700042085809030824876212784639185204641544152172978591498989843825867346120924884297270383024482068979717215849500216389335554673981216766916018590188840179303755302673887286127578725480526672121746057725119101594326479311873806915267375535519328325094876502981105440376640329409608503972909043213949093684072507194773337534408863275151328261954129718188291726646021385164791367572954683966657429246929157919167898539879158799367999038139695581809637392250574649486540923349947230977590238403665276207607256337512711470246933285564166100527167147157711214183901263221916652948047966036926072534858407640175348213080895444873743696304818395332314539934318145543697558810578511897064627537570332728895886759528173370327859555102413893634136459550163028702451210113468830845736393795528087394166335248509178707940510896415092541820564037543941928722713477328343576418810873536133206116779985940230004088504406178369946964776338483952967302144598557087509387462094666991541805616525682993353246564413390699566186263087454934356653910351989622708086874133605306551867924661906282028843677582393134112940573928346976705763403658239141889555168834205760296879157660761115123234231807829162827755433082232488307093482722880996479089684741815974067168251767145040112195941744485474649974752012592485336364928511282458796235421068940443863456440152515424150843137636409611743665989815745947994694850095273690564393257702887094970621992890765632921090215102115790526282400772672926969038748511873841088438047232723483623224760819860372336288819880973370266140636652726421555110421755652037506470109269540882804413472171613850981875601976462550996581822279881076026061776624940265638860080114056008322057408956259886347827023211570674646970027137286014254442791151973769359617666757751383386561123641112235163277628106723288861327922039643604208589972139419622595642165765989266244961589490234529323616633521093801508077256574304605549191086569595480861336403410959458273532114531771762508484048423838201144341252864786548282844121694165863115283885197625286306049320084513581970669032571910223573625483291450104229522603361089347863143031712868545445096569287497937816303706085539916665860296785452406081249825148402748339026323722244262921962851634601692499154421960809056142591764096863664591775205668742027198526980671834280479555145557458872955161806284553799151585067970007316282331299996080047978344781746782416546034857810334066338653794808434773073896606934044875326845509279050337338334983855802461422568289544989817207448503289198159979809777059139547680649682282837337854178891119161204725627080380296161286368352372933960930852065345420842309613111299444376021091361269998447382014844561782493772220407328529099395269467707145268413829424844151162348382366811738796854855841725989694374477875904386247756603586811978961243568032151379539375236974651249435922602048108671404693187349125748769923719604474778327656970484708331698217334781637810905858918514341482075684560734807125538028939474679559608050232716190190233118506753643336961812397709083775974549735243562620256452284264472525163632816910334892706716444553943596100454469536869673862156673701020075453031099885902927944363290528034914698343172300483609735388554663725327176965100083674085452499740262802402781440208333274981058183053263065632432692251534824346078571888018285479367187200464353860027153921475485355742618411447745023846478006069383243335011993064475598810061704848734582648719204504466350982912030417392966090515366983098335648232959034612622164422513405746092887742262037792337647974293274032296359963124213985840570610120465505651115542455909780908979032189547788982001041011545996052872145001883609078317454426491794343622086780529185645793975454529767038701017386381404820495627537942812997184451643485214232916090664138266802150823036097046491416379600643578283692861160313828456086704596709436639239229250925178503249368042860956016081794408538328406906222636129177222751720355106662758385156510591049503628775327987993057351080110747528868774178792493606979519288506876592789983148766942952424492693247965682128451309392667481952852804120846229553244627473868217568712684891832582239471267947965755003122236744503053430750805988325757906968704749332993397909051359397118018561843447567091926995296335463024438957682461173026622998198620243809334815193742347919383880179872738564552288484062309901947566859930945908143089831102783121518000436121186285722178213199436232438274210097766088270185312714455081869670295321876761728702587350174973846462645953535460805448090775740516234502923607222538279773364908719229947159310091352336808981478829075368608140320010244112883943055840441499012088289599621105496911301435841951541082046599644294797203965211153840978663366238675831455799095482563655900777159886152853130668126589703869762958095329161306252290127461135373186843834072986659798397817261184536064039334793416952910944302994881733071852371353196177348538248731174418469107238677551473265621721289105166790386483837818735158084320280569062805761901941379640783422093420581548614330559317198710639824090959558195297289619512275061122058804847303496372124226583876632002211701290760015159842779548569856509470564608733592528836089520077512784933343729374977322821294482245797949048390769799701051321645774718100027403399692839263379826898842772230878745336996942249730405516311124839658926154987568287051637473016613514115270766986413093521989437387871875872020336564296731718582767285619414425833231196185521485495620678276863527402644485696796264528276701772745477543897158499249404874215479353404736907206827122022071050609533447278417262299032395099267360963771011565974557303028958378563091576423823872281675983781157170419716106334649966670220349166332648087565996632577666523744083309734226981205940174718391051596603888425802515127842209189001823847219129236348204661400595962739847818846746672798471449967171771093366983157461134865009847066162900660449228574551711994335828721405024641303780237976392861785966072904546839412031299725370128973541454827991134489972659604017226801532797769826926430453730800947164180027049359470691246327821910528734642182909459341038931804502359677643010215000809061938762164540653651167533283273345857754912081277802520771334417635263527457474062973768732316671427089338157451397423990847254445458749353771928231336071502882485900839302322760294310068691044718911778966553598204577644265516947500402495026606202561472359577385741103235204273928490396471519904169674927357371978415392117343309306303307908702585072368992265124582235612905953943526233153645720939623210412927845491292813920868174385056771385847982125415052804235742922433058052541403797030384947182117230999952515917547397545120263693511612405497022383758984768495520171794904316487924927445184241703617467514673132262299263388779198384534775157115576640628208403052847710736819175575582170019472337693715596182399594952080719890383230625746093201481750112552737233540103765114104390834854367463054999445102019629573846159478097788362961199401942546079148945257698115444519736412513834486641437126792800660737440162290617180398909278495629908756086091474547316037808090898117313877349128007602711473071013843213374673108520410302169368337384663132553411652938506735818279733067253950257917852651297829764105563534876722828426410543993637128998840572638617694208433629506569674968523037764671151359036479350788302608069667047393600415597553863336986956418657147275272626004870862898162130702909249139992919311805594608017873912920713504513662905497936135312591266914074310382319931672445912823869455733276136574233258506183498199135534434634520253342057361834603716091724499232745815969779878519907471906312008712201256881748368523748913981806297522618294667788963422884798383035845292577660440196664454768283629049379783252725854518102978452223754425028729458621380056654991743809204342820729851128433928164171203743198269104338887609330357135697250252677788424151999074224973332274107247035639759270664395135500007398786290225219906059210379998612560702395628041211529442986600950454603628149294692101232241249671202498968204439035940635112127180626625104152806148992594254347188852347950238265730427630261764159400872781574470250865868867921821417102920782800794914717239695933892754747821537966183255817265188991807207244312713578021531661108229400233036127855111468587380739256399022398884347003291079078951970609443141333587121190394227895154251342936120016881884016565095191739059949642600105677017617528600953727943922564704159941062289044050068816523988725409816717978566964423741777877890794043350937414798818502727542224255874335786836264660774215255692575035967532285203353344768657031722428012384629475981741045567524996623609395154811007889311489056851764052746774001762473465852962899860629453053879264685447601048936504322489730359178346309700667856932776743861305899703950277909078520332848309198462438188755763288319336071611368216171731685980206399365025609801590825220856318132570608098539139064497592925359167764854234657442461330370808355012910889897506964168659500271309760840709168043045210956331702054528403013417046239705138554401522097561349952310290163978885875516386709205585810828544096134764937457066635126281516096370374386235270708301562513800676117675028011118118524399806436084265685112568306231825546888062539235539632955596992076059292725029261716742677139215824446697168655292039271845258571199969997578964774781186870351046797173389376255030782410929226869085035980291113062316572979173624418970200211022064121304254553533580117989001044999668638406752837084739496328303514012800590884748601673135897338009637209812806659151053389617314352570526976367590638184938044793042433152928159413523409515611899588772298423082657738126487548693278055234736882170151316050344919455698631710371449278355085429649528450211382916048452781751346820448245988319756434985797405463844171676458838033018383498075688221535349562092345704885450991917222444943286692603022821165659519217865758038381186713358240142576088838653534475111296619989664554575809144907434788274662197612131034702123973691016815311410158649756071282812215769047168214220753008170249536639649656696422803799935875125474502721694662678501142894843585656408035118526152471295414182090909519011150083912969807269062475340260247416173600300686303913664340779864274450042336448148461670498033970941645332324125352152890766367115829831223812449757080087460920683148656271757677276153039854348916737132668669050804881234582769570678155119538785958990365449467990728657439906252498140685258888150195593362982734354704530943657287227459955817666927789325563060949361274984258590032615359551964073622575382698699076317729270649114139459361268994643379165575623362611124943402192105700261267648280664082467176686141885861568559865269018436152082936905600196526015157329993946410260764479829856661395330697640096857827847935851017361394095425065021121872069111510133242109695680254435620476548611780830277108143209489572238605613739563870760422818134858696852643936564218267155583877411882197666557505425748233178769047809366292296439656353222175782518304675928012128744909808066914440268155362368911083943831203980205011692617295884472217371971677786015095226885692728510525498384862309427161219808756791208803518056793852391960204337500052134504561724306187239396624709624876456027066146435542810613909211379422322275007525667362762469581059093007938552171937892191658641504931817120984641944618861604697997111212525385721303937332672722247277167873197158840227373575456147794424328740478309660860915459495632603945530112118703249612272132730978170724927980300015734905686256352741683149961568493810608220740317115563691123357410176168513723724810169089070594021247716066637733419811326713094426918621262768587779841851726994393337504960282374488209896364272319137583912702355063343234682116257056610770941036651372574735325277840447086311503975084380377184950030394530943257105592744096981512711072640997113197577069785121774727859404052687822536393815518899109394852171055333870888825371439140347159754847793255956354592680226158075161129891512557572170878696330610866274557309894282082037910880066022760549210253568655320461926900782015525332716789744202292841902563285879154079164808439043059951996516104976090272912733819909698424198724409546459073151602770956375196029448644302074305068159485828335771121399509341853218639169517617617424333692694420016241765736662315198510917180748729628917349256603460708791775714409240913662308935941486360829653857616615797046246993188037448289901260351095157948947321972208254470891731092187778197992961659238765876696243977839861015878620347182149873982877459871824070560396042232773013276626767839664382410285357836778224223253749292256259880656432281786703360054299660921119530785850912811731149063389289068825461768034415759700839607112691335279220870463616710282910941391696429489092388720338408236614572001312068986019851158791441863392406308772426835413171511045938300810765218351945257500776270459356976551502031928235286864259151675456422296925007287278595633054364917848067175981799365601075858966630046297037843761089412055519826526709396577744207262890837896223242249268902063037385509534538777130974663330685537696211269619405390326143489347528514204714381042081355768710445580761292300189575688935558173942450564057344495095721315321890031951104117964206609099767517134919744040192992211554665252442410864362175628386549319331628985526878925489369362669886740469511284725429375033049771171256966209611375891334536222111608694164599416389040567322454593034395706942688971156113194165254662995482894269504445405124333009707375968503753438088668826266368012452728148309219284900439597753752699300298318808766161618511168947583941048234005958688398032356852880217994383979126269740995730671975727726087551581169236979799086857318950032052143231729232072644230151099202493439364105446630948257157175557512562681057673096314641922421921766414838725981292444501406273443683681491570011804623018340162522949623881610098062988682462251713772146265022831305688474120519823059537361266545244380333032533757671180936459326172304533738336188439612926129602312758162595116349638538783063583235301342448498000888776652154754355617448663867697304802529900607462606083207996618596147535774447960987853250964679499924213134384035568672840207225069864925308192104020229890334522510168661858086085450995145665037056536945152034941734581777116501894012289586980246161071271505336005625462513933831948200380521583833184827769206164948706826145493447743340309585798628787478096695658716297119607807702045792074076943026607770385406139452788074593613559279437802245327553660813311664521791116694539694050496055720504946978090044449507601107906537602947189754105974067946917353842842806944171127196775184269357601672563793139826685335666562508479837670344834968642063273713735416711692286242722445706555158649703145887383759920338245936071630300094009583078793576574036142997529155212651739627327367927959749562314230377120776583259848143329909625340586183962186045147859245102934003967625323089088617271561285637403012226296196700629046810187567167461785153650911378742555514076083296592945757833206929202066568751235465698839644699291629845523865741158385508679803254598395312208607953403729386199158443385886925411763560188644357022076543105357937276888093808301490532375677816842513276955892485371931136488028580626742642335433545711892026954094501135061844937199077892619521877493256179906447814458191046994452330401420377656655054782178949959946100538944256181781437930566799435225568641724457994852789571863382130610865591148325671725209858682557066512642392356372780968362212857701196369379022492769895945864760271207752808998312480936075106328944349971141913556088813918629193041274428424082124901520748928087903362372541463796941140942948458430085526690862440323911948432065703627938102794481255572203112804163221392588002457876441539180473677697599539438533249350434153358715891722584953052869673479885012767179233877533789177141921911520657303337187157404779060140804764725680839447414446896396865567077479351280593351397846765277287356354400593315009723823073052462019572772905643383913109977879235396927845474989204337010105127095387156725790794155109889863766818757608306030544926449514926305334422615568510156007991452266953067941085949649851336505384429264217272135922615083375794507665898345329370223279387758814735984424336093352790156730649856645518820093298367197316445909331389669566949041730792705957445930350814740476177225594540394867251268868536765039256891318634459670347890486479386636756940173984809843141283648734035200654219724891550613952802161747227836204338399739014951654038593882860606976462989661337561573143674263633108146749501965513663912268234064034276504807711520087014297673131231312350400841550810216748949767483425474710693666889593874573769039470184342086858702576671815743925853635075015513613970922306020207699811349974071002696432038717082843404590697763972179734403958077789582627473472342193209324753277804828773360099471895402633327282131813084662925016762052673890552914668285816249668736736313662065067030240951074582139657322467647906066807505018931644255226948737575048012672100577676003767787471765834962235457917917965678344890811486494414581433357256279362059171539383048808975930621164972885617132368062460809846791720975884434444212029919989196381924572212711539692127427776997952710915102599200345430380604183315553803687074727824289878785718099704612822977214931152571813805872632623447567029374379298827337903648611093802974932671170847666368699501136898635093089657207969765430016776220534014474626200445079197894718789452573940051010105618396408267482936507101495039597961665326514339293195042318628519212329520833751060339117646335291648247922502897669879957379127574183957942274053050841405619264572490706940839184785224991446010713953717642913692577782817449453213268020468046309994228502204571416034784727115304302763885412948402936290355487215934901096135396344823098658154493764989862708398451286609906474176102020684608721832628259716962703255900982113912031647633315891502426479593225772205657290948305203429928250970898522898802567191522577116365708778230311217582109622810636376487516743045510893109019659302249441903324946234845141470814911492974738265651967721128376060122671114345877589767008486440790654935283376734377579017405806185297017051251222631953133096116014535776895525841729407619031610412193713292533649902353887398355554929137334342360081909447533247725289113125818771383313673959227802289115446130118492497995435572343744785630411024686553206368584286992498487128269080932051374427627856750369476671153008955387568120741471050848842479807338289924163004476019828800211147583706109162439772774111732195200760661097774735905943463348602109042074709627561380447102578236226109272425823497512918698935118852057046481466900046645023399968527929779226598196185177836868540269056621365858169086810269100760963683085621834422639782958769248698526848912418523254380601665193307963389386380616454391635418775440150688256971738310541213541360025804515850971655789174260169106992816374100157896399340609519248911362957357355447132913593286122131383577578159803270406043740557141740900520799772750930188926257313335763350157546081292010807632348107145680074279272739519264576593588243012741401745782989138614914762368127786184066588848441025439941529330658397225016373808496739930975043164833332166727157983351878802604282409856044209472718169811424188944865867600673104575659347009842692199719582941159216721656306383099911234385953898748860832941602728714853679170729568638334634444342649384747856882600711222867480056892713514815690278138065435121337897131039351809832246340899580632539713298422900711232132409824177823578570293592445853378950061705459955637793860413312511779119081087534438503559671522925060976304281644777254210047025144777206017198370221094188825881142747775686223399220854326793700153367999610351589042392466460287211582838640479188215702161732736426131002282110170016234598560156093780061324179734520519294791790041434936736228429953953628757182211746524974804329410066071103402520451196151987572886890338932783382252722526955935119570193835520864336436443036929072550589640124983348094349185224460795204944616977767067753337990806172847278995527215686094458895375724655190900214254380954160018333690896231142820790101544594157811784028565845399645041080444413810879662435096082952529494311563708696442676549370066391029431255890993691386143182360887403928648651701413226202823052028135731354490408074023414957344722710498627685204203060681634410178207543331188139025819261359506814650772519205590084172106381036674968694972097084573979180647002567873745214227035405598647846427452843793725187262374624560057753567929090897205703852613803942917317357102014259492384076642084507770527127417924719897452459501746257203548493454100738365426595449253293693648170038399786435084984931933414630403442755226686856486979629871914823482358301529993854151421803577748429560886446379720523464286418940644953572551716326548131315011778848114050081533941620807773640740350964528799701527004937183743667710069560598252325297931788586942432945988205398460711281659934433720655024716594806877549444539302166615732368942690044045676056949827532889998564657935296417821188058351444717882225336952759657619544397258516934020935955026961976978440989474693382895686039558491614311680652457000254388615455730516476023913689789726269801498070973592601266995875761892102781968402064711021307737652263265847196117343656776497196310659745976165926442772789397562258771469227418357999390625699220958543183315809279222073946579089070301836361154400431767094587774064148960008544506528414840444239784480383383088230023571952776047822010466066699555397592300763069103709202620227194805381945325081369987403671486001100678885082183061872296077907778432525047008060149960262410637003011038027373401908723061183552569500405067933621416178129563387017051134994913724665249601167586940058056796409729404195435209795556496233319858466222030433648908659218777147399293835426546294618549821311772357775811662518751061184920365767173444877709688287641513065571468411261591895433608218560179019743047383497997304133484619865508969363935088490024886585854117519012151277629785965786592273193005988114198386391924740471362265247873282072199565171652125922266503249608875289388171117082198467948348934504352402223719326991113105325518025927338659401876522399820514303125793959181006843430688024742023399124983211606322435890235446064482497542972177846771460676221652542087197364121866677328514359008576789604223724100353206894004109896947340702483978754573083195196750965912195603661274646401728857903864442987824958653830906820958401780743548413958108338389478352447670658676000367610944305974548146220098400760176274890182288787039386990264330403498473561182633316106847708090634656507225723580078257917807387115390654247096526670801074119396982374498557045078073289742692570622324854368676791770460489143490670561580506762744025533010408381788184157599180437053845999965690161254491127113109225286520617970072307780418822468491282855059690467723772683932387170399788976474172412767824107387793713880282590377531009106410496193860868871913542422080583704700652235668636579880256812575302949991438155296454204039201849370365775092834399312817321827933855847052150387608259007535356433477197529277132524244611171431138314285012552561200254268898953294497787884893143195285719481202419433981528415835954375080615272440406900840430096422980737980377612139388203045418282068815029378100704443700033697907385944672022275314857389086919094912707599626621738034790385313151363632609928417400434331647255187546907369116255987429946841934415923734089719458350114010741083742993335042421021443704459988985625768412170241850001474377767612805140720686234202252742349819240409729876892877001039667494922010586076944237415488127839470225899277625660804229985297881453904443363035002337851598168225024281996043566994638669938948327361777290372615789527982954231149030832416988235154505469971157313802389203867400073541682966603246443761785696420414164848531977941987424205190302086721356329789594539039943811707103055367788596567234918962777054001621375762110075806783352314169639144345539656647445179989128879543199504080627766536650092623073861457084393423443444553784086828470158845914598627122237540306941069480523514393202284215112642847559867876635161229522946316559738404146031569198053765605766757440732394034001122171101151863921720745817157508038581578211610132434345243719972672367510570306522654969634380345320148732809296965747952511077855166484685890140368155989867820284039742117293902962625879335909164476905366629316687989020866169612117578253521941571050474161316208277839630568537570960606399770642180708697325729337411224885091493007084015169688513151776986724695763851443807960200508155260350469668405088418481899804329809491393563704892801337893817873095310186923290875612636912512224438253032741609121794614837244305684289359141123061368390470402031028125393572684616653043300641542323779104026836042748574275133901008144327673495723279630983575637763790589767327603745265373219665371547308851877365866985796047773329806647895954990079654311887682200598840069886790961144862867214101577819291708061268936518123438568986333070717651360478042138835167628192652424632295710952229485657821751418504045405027048167563414513741624030892526473810905262467827350123140737200948792936410934412077451993533734140077180209027156027577365861317879289732821159119306697394832098266976191837572364096594077357154294709853329211199259593991048196773512867737657095828377068728985472840434534751847705425331637937262832531155139194680464868431619373191257099755547746649816136674531629916037219973873018481961003153563365849491213237307880259038214777861495920606608171823119018839219936644966622217752225340009774981070704948771290187020879645926399781979631853608711787457689764301777327869535755738891261647958203332382137488510717878104860401334882099789585175521545897382209269728622742374594073721626087630433992163725686557836306189198379852312361092615642048403975666881119826236151459928685862167449321879628337856443254745782901106288791631122534429933190626479494912987205083512464749323798397987974411542647443510878068780879429630517981149359141539806434420672252011190042031822500842446588002003193230380736638618360751992539735028569749023726605205379389903210693220190379120286204602012543254883705537364605970970730225595665428456889392600408194015873342761266661475800757455184279480479411334317051905616889529761534188321865744380244290562466347352831580296013234511338244082995388445015749364312266708260682480107756042259263156851813052419724401634788638170233245308120327709628553984712899381568491100242651009446371288487829232227082687636053207101397132781402084615566796561840023339210604361848755265347242834742465428227622439879943110697623752984999355370259154913410821882221904631324358736245967356291675544491183026643414819821074830024890202042346344185579641283619601106637160957769036997583917882197937751921379648123843074516738391299614160537849563400416765615090832232333197856783280018773863633863605970175436838134014766363437377658463891306945504966344994739798257967778135301391982034645679625994292234259226927173774449686784442691087712299306446916318249890494592907350753316916952495758023330995564736350543617101540316387942828923123921436910829513385562109824645735075638003341592114979374049402229277309753015707143895247912763651113260971208773177770643382304915457605021300776018793445154239627702096107975526394992900204405858281811637671701774450269054511242880065880808069711467763875514902373746823863288718094354626071168063031339608120720977644124990845493987140422257608409293896144440023821969399041605010412384888366262707577294478510964332854327670297722429766530967952616277340725778306752656440714572040759229098100204459375662298500651234899996812181297318358447166028731604023067521192506924946659496095330220540689309317917183732375440717810577475547884776107937478190613406413975056973858395149390604421627197193750100733094631936362997537214301222902009349438800705334507036021421418765882542718141203016346082005575674056069966471252575106890657957879219311345068116078040493087967549653391161580631472055659129575021746731643569938283801898539078106548393078403175739068128237498012478088851331825445545920913261199595954870059044714278676791875846372543969740963534517774516811541051371078059146516622606087058599561948953364023707385869013389386011289447750692255511117616150309408174352146968748718906596647966580686529220080357903435504385756583223525581617330086623521764057152981335233595862373640903180482507061358548264438411009072303651154036436003238422405425306616024779646702588257616151016465959523740413961243906552412026278949122712681726788567894592171846230185457928246591343120184465590934439153954467039458120518334342369299273755163138766653117444094691912953053508793593669711696764568146144674508319899833673391299906376912986726693827175645335704136093029539967559570275751528196022670570790873483381603164829456452877212247926129172189827936587901693599122811754681005766407986773736165358711451818535930959892142271469680511612412450161999313178260635217370130488657600588170151055782626082498286948032979265453720865267923570494414290803508626673724509440487711103374733367382738460878497883475168318876856197675710398349035865154922247492210851501002124659769252636518924063403629756865932373727920415733341876022238195191531891705232258471178668485023437719849105665036017794687466334233755755527437768940221841229230271796900576150745730201580531056562312620209215727515611735686990974986599883161493230134154053996979262809558337363565416774450917411775049007976880896661690485860744607421719014838506658564295269108581082959493525832562327070353790268603326463475883949590738133493254245480982537161616108467833807590810445316342031140972196919980474106085437175991337025502756226628888283874687819893478629529023214875156237518432850109514480940803856732100972794280723984467589471803497150298197228530443988789967954025006397827755036108999215650985564993937029551096448344241473376157575786236127847381876174761443447497652555798486273765213470349136251604680609760066008327045555941459942565419336664275105735358823795786173919743458564241136692266803646975845887603765426782545279618843310514822851210090864270056991313174877675248574129975514818742460995649534399884146965471768565884226312128966252358580732004578566411852174385995369236176451625693710642958048682461564693492535086999415388539040513905694714178164900183211032489878243004622839795656211457534651825111623452589786977031725950779578191212910721029894151808672020130593594325956197676973755758074746346630548544422372376408901726215122870039140899325378088163776673638514654139573358243916520229848932415794773451203187066907379630202153520338503200436476782293928935581350972134156450973241732827446195515037642587403388448421613786437167997967683636455841970306331803958194760387748689361778126605743075888063156842266444762638036134376811134910338914130178924795391873327071799816148921508167272561162025693055165609024099327297936351496299707680554691226974095096461742504687996542739883797519308383560372002842922312570267251124705256510955944376508106439561450820142214406843148338794289048529431609780471644090757964180623994930505097446396277697288961805719347941304663046050431725644155044380630168698305936790131442083365221813953559439392639258997825221420011446947756250609495545644084885229240468807954029966094324906066827562080670240861800610206657599167254419356728736924255698929573932222214507361548901149659482830311907312124029176889169618313017628431275400251401982703664371272316383846749491150177663540060242025138939759669657709853178933343330116359780965226590017550371910574356984395926419749658467573615210779048536904376905865815572216740404321394165489272772043822742744136944945152957150974147480885071283386796926488634946499060211598834296040141151047363734303157268559636416602192583799336121822986161796563211192163240324036032467199779802420446044286742294295376154021570537277799388200735492933525184739843155777467412348810999601352662217404682565088066406629380659844500900382216675148813210497854229816542566253188900373081502060710379219120395854279201334486571788959222061432994850081408728208041489103435682147405270804128438375003322987879469337801612315134112863407267183382378467310236064011750478208661312388081058872987478429912955819525452290643521920671797885415827980503294240147221410377769035385746078936420715345013288787905583493856339591153183185208828325906749785359724130614113371519421922954849395678654600946012680828371256047774156800628934697966562095894229904712182116554794154355747949546040701456340236302142195088684937105648990256789083759068911438242557363877939948419237740547921877944114889893939901936887050215583497477690581325615257875839543125766407418258625047149249094236255546812415884153082442791591087367031461286638192095980660074042326506194099415149985147919227722086616140285562863304401288867444353556761762217823582067547165736264139350234856802838187574868411259613503991907168869140613955756365432206492437278377362571771624280468830394129690293633076043222036113550582251920258214592418634658081595244404304503646061482640985536711263049990098401949940055426672217469997350563347529434481964130992749836588310511882251605027796038920306434634530111607513653518314518369102303990522710313899325797768629302654576581574863430109907932359714003578233153020380843706790745694568043628644779839604838973850390855470594468773368565925277094300020113237559112448530655103678309505058617184288923190092064948577558922366076546950057995916181288999899709699057059985534755380680578922189304452696759729970302447439315708466646874489691863604209381569114522363962657045887582586601605762672918176118040168463853953961398352606382114746721591585065487463596432901963689040977651033546712467964439641786697751218418130273728996105648527445450478539054011985542505891559043711656775772837685465955234444026988536123861767902177436149174433814157989685106083235356101585051876968876981759754096856348047300397867503762402902613626681483405423083771817337959519898882148681524670967318166409522971659350081796310238994843475674959157581483869924897242775478339477181690518232850549408088092684968115575341113966797740443357199821759219093877264896437253453702232519680428131882720006605202142659926676738421667129772154977740774358729934716191553619028114259652609841088234479704340096659574596333694710795902079618173870244966484250387137657356977224388162867347014646587160458290158167361581090894123210109414250342021974593146226877392521836686271272296921908635923848584665832961513154268815390138961915145072128064908244572753804660530604541186238386701363898656240688408878686763308168189038746050808959900402251340933852166668459719573179903173694460959868843008225932145321865115522284492472707400878962945277848145861472747368393884151308473099435223032821844671797051570911072195815837096854174896788493875062844785655240258221526964284086670593253836329449427832698565236679712466361998295506129054899328316830353929270332642640730366290993632272994328412295456221831995145883906501517610194238465354329262085317430933850117425969783347290320977375955329282215647582548070066257237609319428352159433853982428237193410111553009430335159550900747557148067318351584540871617009081778044398952513063913165894744221155189872976670323599311417868303763932674143642568736362523840200206052242512454153984561036668590930232810111502807810454361117813259097787253614751840960346557204844339933956375171468170146182713942817736072791225692910071104059352700300747394949172928809134858882812195593059200154419894455494480925497729407413846890573344936780677828506733984441717989059389088369000941482327310281880647927056178674888856711741453934012240935346314270386027391821333311021080506918124873525759775838297852174945735068295367355132013387603598237331277630811912795552961703290763358346613219456547996250617723290069698361116306600534377546925067979707942340295094042390744957525754421343935882369259025949940908318242080470090808016860833386681425607871166196501779757051784832928236906502828960982481021794465518758813918287850290390797194624688378576690827777424013993718530981624554206531291607079809343676390158536516971349260961995245691106599181486600876571854600217597628548641594618860408658446686161880722777015702590367777334961169116855321165241128153949962770966960130009010423486362836325394247241587235102916525056807151616155811022246081466940752253127120438455211238301315476259615163424193351978596506648704567867386319875310192386356910839808964677195566572919259966660632329998016423795125921974816509463683339363711537488749639221448758381995965547675813490246462821620253059244315139283690938577267556094339909845225537400615721429822146979118697315843201914145553354735179444479841499169277372473276440516236716811157389535547823778249526055320575237990468640929366500890727246247850295276600080803637222457768235164798564310119501048501971002431405226161528031378895155524371088434165115258434734330212238616734656499012113305600805915887082942286740868028119999716255270189763549683304048166649722219114737479423286975330476181591882482078182521765353897462155272002001990504199606201767677150346794356533543673706865690700364015154861480390538168108134938787322855662104023945028852143348851082978814431213029916045406659008153332042365316841497391818567806486681425565832784756234346122532354428069569010292878347564828413063100446452462288810231576189069429428136099987175283343430223055824006813592686920707533293033226855825997214344675602482526356171304515210977050639134499376788858566293902702752042705216942612738975740366382031204025520224205947545293753792959453010683241683727522558656380813395308822728876231561377360848753667093502633471475887184390952563259733890585788749576728230125240490816526485334774819416714229201751088397510829651075820330880836023698758454307914896657019109079501448172086378378034634936248560058444438787398452898469345973609505485582603474689537909248038026807725893745730950866137749292678737338077862867601539303184387204744222866460991057803058910825029897257920415429093565598514484885991258379491997083389830180080946147877287367886497208604064343792636778581506255859292785541542081789651121334277504092809941868018246169234046415529836743003204832424794884436583295682248052063350800885998544002964118056325843829684406280547891408152934812546175828596216139314856500416664121333252119129093243366030101324420726979624844033468316315210282423518603674917734710968761877224468794644351716865612619612244546218888285652886348949766862438503253813894088466834917069245786880921998155366745168578918336689132770509225810220073381185397737107635301975353804524347728815914891374845048486982353000832396264928686617666756903995657350427303356224596431259846667841138979048190900386037001880667677720139823386714477107679697139815724038358451398611079422361435993202899376691883418958256227121455818699339998311809444927259421715834135308946882895515035229363682349401592729971545618095837731513412319465868912930847158451844025620330815300565368148852046909020515745232448290648243935627102318422338148520803705772006548229198687513697705325117252348236244144380951527700414879912502381996765530237644639046501662686949776412918537181704653859350145823213350779410375725769214092033781745044226311760172094292319443390868843982590016264153083885671220916210161812843822982655183618842500545812203022954560290021497363065833367026247399901519316394912745408374983054493112787046176649030118132502344682773510855291598511636873915170125408203757426162859118155703557586762616615896976383082382861596638455537504848898908151281141356655564273503749982541042356794870229198567176847037966760556191821640148865328946445291567143460892331546869414877131474609129142458666194191669501097616943841600406641635533663852732390498211455302509147546501510606092628049946189525125193057631569073238680760443110700157936580702672443181469364835469789343204444508600061099076886896977202712330526239343227545904117884841236175626292965176681696868424885558025961676510326039150549457863574525170385782859132135059784361749178680243728211950283915390634285756420728823655229628646010978582204019618654588778742919872023421783475814134128364045333084841740973270519231898377934735245711884409487020734059535224961288805177438811102146214255303931166963453396945807291821082375627781615648330874413051251834859343161997816808401327333839644243872535560239959274064870311252586669662362517114534528728664564917359111692067555460210457102775024810286024903832783997715314455850574222729980516948863579547084252646385571061851416901577393191291718436161471794139734548332825963156884145310091251990390933054303320761505487867349797260543402006904388985113608108958126533456053884500239161895789436163911188520266158603807001315858030164046170714187897796002804146109953138141547237032322847750319037876266488632785246061506784199866892345748110074491750559375588411465355230847601800196894977770954337914243399953588408118715833475134757458199465002946836285849845474108275721708487387190724581145755029018270744459321369644871258699760772308717807383394986072357382020831862991014037584460723285679526038031823552673217925675649766802152204652686293352490865971027230853531891654905796188767572625162123336648346165554519858918460818167743166624044301766464576113593765882347652846322604401130004362350621864621236250239085560924486625218896049948535305841387145534271130019632066349123134370990498789641114730862223689480059714676410689787777307912027230828602628116166491482039889279624197542203385673291133250436138885779426487286946051893925721001388851104662827758034206291627015832240186855137584841636734291437031469928709345080730531468578002971965220635093959002989970136333707444781202440156813364684397596574934937085327785508667921824198562915273978993861721901634701837606479094969061958146685503419608979190065024273594232939849548174042462389918313450572286343263610106760613191552631374747324668215323641103986155723685466275723603987263765857698269824950718760856692565068739031639419033781641837545245647513164810926154199825127239772864680770104568520304162535636396052944709640948028643933476379777944789438973086255399692881397040111186573044863044102252900947999175981917349897924019027259833707015105282816957373601782096657458083957531434412303755142520226470052689083619467983980365304351469457206077767887908477028397874769627545112592390484906694184932505885372387958368258068026377036508623488332130156666190692940716094495990836617791549934181183807513406714924881213099536290246009771945149280827865463213692213593242996668405548215203620207611653729356119661815654295195093157779813527127106913763548853610188208589875813552543448545741587090548268927353933896966486734012436766980925241776174872881225541273626931666954450294133298955402578982434864671109642118497852507345647847823968922308458757589862016194250851920897493093622913125340526600972745235405399454241825978148012532636596241683010163025692208108443235303499955746181343732202836121073793196244557019827055000574069698133215367294541583864096075317783687119981489052140947242778127000119390655712922588286453302905611274351293373878486952381317069781259238155417519852166620340009445564796491660053045995553516710140243267742054832821262965528510409257382197382281514258912993510488087929450975004886568422001645490350788894356683173823401199310354930661312167271505526120595994240518353499666891419999261870152197862525444684675841657225883655908506889878552529305899110342560642676287467382647075471441319164495756652378480890086217327083684880817771422989218249136888672636213483993482727863872558188513621183561956680305539292691781083785471432161906583856188439955568346538710948619268033874644319008213303968440028854932651981521155403063633399555683558470670464468218703670534902876688349059646156810002157225312837505422666922746920842426713484517252085678259743303546155029542762292101499774852827138904073905681835683059584475312704127297333314774103056143891232011718785382394501712078524112060085212297618133877778270917255287771909515707291605643246359995738034392000829480243568678643867153713865634557539787766014661334314597829900412130834603311865669542679248041382420419154746523003889118982373811496756067445749080852202580684630122571652744727945669910178067777487018150606248823638826464151387128990764303160838122977845013886423731341374249411810103004218717971035532913781023569312012751892175942387773541696751244917465283956815242884348259618657672581073790399613230111013513260014672047690658066486237006082104499167848144246886305371545056679608655672326432904404310067014719884331481862113485553254357640862383281547758475915540914205941569940042781567431999937788887117097396882516525190513841512538088471509189337254811847541519369762231666309890709624564215909325692412320261839386322317723542987997979371502067522113344190465704137201270058462552243150627888925571641601863277331512302794227094449476670869821750405098236921276416570254536412246815783730133512013035011806884663266464400508687977945081656939446948931547558451470552625708860012176129233134844860929902596696981790432684170085265220433221591825606458335289352174673734756675057525212105425611351074849139495583906037792026882910337374987975707945357487624183812002650948464205405818199765965899040531947356135390840375132397075569304433221414085735681978080393599904894794909394469658838175921115242905744438067782250448761993929459233674673565767198754590944823553969118255126490614630612273318325544644644926517991874112252031976966564650116822207231152604067516495234974868447908154956561454937872997145978861639699200316013154794950571224283572519004686115928911509492384831933964209251229161976584570829221901752529851582957145394479007502179167223835925055659086745220453449069274289056470789922427832061146222628115881216764127319350791569076193696444998374051265997194007670845618530802520448195500180174998292411892334523228401395535221271005673476539881164055208362154128700989919138919375806390075312334513106540096157733537482604939636423134181702084513683907158642643875373170791095854272280858590007918956213373044860871057244116066779283901296613601037611556987463340033022680502988764457458278388854655954193804474960355258344394210603261989716491377372907570664289866579055417924823986254493193211877728910081714273089747413440814113548926716657541280131536839950473028412427264295802783490321152895547341643557922804480502882148533583186144768871425587785265988170791939597673015960516394657386299838480111136501470960789787123869875223633073636234183417114977686198705029169753200777703700425015155365875186221455919596981403053687066201868695576986947573940240235131407974172875941496173308101175066162801750932823170708378074411927069698525982092248889485694076411658236754269494112265703507716150515277860261562321019509427989876852618460968860568461425899306075614814569300064402398761489063488141664460954620160725155878549828143358915987562823421521701901792401795113981434362498212326262421958531769218985410087545392486797964746054219140215489048733420108337645122765516143063294543086455497664320831802915131346637420738006878553915887725223223951169415945384300309163250664624882325741029087888379069029082589230769180887424791212396787843843566533407557416936093469764773047805334317105132681920940913619296292953606652349445960762981616830800276923816556401992388074524532040775761146459247774462553415883335303811011641329334156827105712619692501195475929522250531055034569277150942075013605487309438069372341003735855464000955602803159416674811442497007431587334147983607505009598452441688836708919108989358465891965531834930373146179386579984753559917509223248498291643531117546260103447853215841253268904657452850630652014548704571586032494943784121098017636769640114315950580620514300502215886103128529959749722175860632946981581283539760435922503729909091924213310095861593530678716839146283249906012690796459127800895118925753623155747340102770900536871216468401195371538985237713912347843074123158743904235650956854416554082087623979078374756974981418695198576654635551081859596451997129898726211903646531829235023652522537062208561179263415020068215203494463379606436985187996334732286870571196070938752063316671475569688183073241075214008240084967445127440149603927968733965874791269985488176991525444476756081442150879054274419657481633538332614360580457745972771167368100182677000377049116743746283169320563834429324919930612388942409157617503445804081806105341757750176249421175980601971302207392934226804830697928920852868349106039870456456799354889535357004238105856959506676913000912714156146707364139330048950301976684748227900381879401273824740951033851185785943980308211400396916972482724075618561957434085060033287566306569301360660912921554021102606554291149866211370678553551099736646660776767383559981342481669521025688104697362980286783072579987560282556453484357861441337757347385549787656877640978823159762211284682499199460166866557713738494466100531976472215088267829744270497295973494031445632220685217343133684273800118707214008095909698575072247648586050163665999026820238203702937827171296973367405613109132159042689106544975164679185387148278055185383342680785283082046271261903819565415324021704583577882044205251495673404422041655685861194385825803346611736015609662683976165462981995955901244074666986607907799274747282267617942439514882111036862566878448363085185501548932808778412963790183729891563837777761302916575828250557604277161369959610850743869608852156202322393379928275173887283984441307894353245925144325771081718237820050336199377347782176330213182325558087360738356809620581115343567379408319200489428022228840049440789440305155992521109620499531729863711024262741162723668025323245716462535097564387779719112185138182493410274908685000190347137330225907044638041540679787788227521635303711315804131196488337513212682849259519632607251144654908246693731331882386257494258929891891199649224117775936606591414170343435830405867962440240590503670665540215303553785703654842417975769551835545243509589399703205136613359547004288949276486585756151741596035952208632704179515634741367535440563170890591880820525032678569180553724794017403538656593242962792167602646831533965258898701435277098225150689252316752621042174179655016495278769680041301638624896751507341468297610121933373380596354423065788813831709000822111586241015893265693593825228024473433391067577689381327475911615218404467454801160245884541265878856420714046517742989958357250773488767180044009278635025094995953725006604490209506333352131082651080453433191059318075355096843941821372962399711151551096970329773117455918095251337233741198698903243270404966007197292422585897514071774502788086532751450916973604487027088571891471978610693558248395943364142627650818364191065494378299876951424880322321603265415260614181871158185181239878812515131090933323634462435430662079441865061306417298489583307368155413883068004086629251019697723182808090064801138142955108542275602950015915065937093584529299064708190250746353503325650268388942681924014498724571985254027301460865037641765803568751085598818808225783768926886852619613871533238583824710420775378201306885299652595288064196565640047629059134463042979072529908592685241884006094988208903152076308556627988279276088057559831592562256338975743599398408104236759354741805526330972852078432738374318344876207193106462202644051493054696741430332178122309708690720985231562203442767831906459601053582256424869335394694222401893161420994641312902051537285349549895793649047463712302265041507256495160020318496603600559568362207373591196286261619831233127670222364392832042019143552758327272162156147502341595811589391887203164412271293730559158695971069349583641241707304112217127876777315943369577588704195773053138480079700618675776685902316822269899024549741506578661634391441540022282385372189112553852964763198440599135718471352041969812829207834879576124095438892431045973533699101766194923311578743189811994472995350562400290661632938568391109903805944378139605660470357145532218836524087356504074203053251744752247394561184229793762286227711950397983208370154313075038332216297646407909841884486069260434271508087203605467668302255112794260722514743756905468686837298132586209609316650358710400244027873597211924919654356925612346498765743016109434968670230687052502034608358135299592753538125721085160290153333095521827447322297323479128508997993890940587778271104433778958231408879750492235825458964391955754009695583760774399968310976758504690267892820149770315601774899264363464418118426780195460158734658587888274494397292483411872814092226098421908714369173736389516799356235286727642581418564254470544632240736340773594818531302022855533362523382873756762954286891357096227465679801334538377708220639891695753986894033637812110170241621964580661019798872681755817808896175521769819935982304875764742900897731077238613982352855899865071269131022574214641615024407267285674595654642943192170042799762695681389851835951726115282032465628603654671055147554946961576563754812523128312472644491026208027622735724926171768050179571675106282988721485857680799596779033504917295112181077436738412558360301800817888623526868559348733735953351270801760524999984883943815676597381337817094498788584121016945464611210580524226764102049566474945082618214096602843777322740652765247795179211670651360102115730897856975534343442452385337417938248857916550111501535060293768630170394844313989863168093732429356127702858755518492949315656015267904898020680834783101186725140170569464345475272112853446263417744780153241981287910280927234335710361543794617561756062022632431958505880457053760350450411975983034808178214423344401602745828018825035531642832406122080822927228159208608010410148017383762938357566783701625110930692871056030208994614735462247023378174716209385583799559257549272285901844487624387553416119043152288599059386191058745975590702195839405172678351808182739999570129809676133899778124992900042201316868477682840369864896833780265063608501878157348615488343789231355141360383955145261339802184925480042101553923148217161580489274007096849471325591421931924710883278305435770501374405284865706311474181961210819811580607167132583954728982094901942487767204337450987720175594943689675572041728894986618288569241908910403954016545274533874754435622400957138000122708491208773566076334702876777743656411489502398724913594325782452823534383829729261141819968889477870106838659210798007166179039208764171957714129013921552831981692295612827129513992939771480784247278932945004774966828610741823548615176931172110538105639303646080776903365374442341549763833425315493119836006311364776295297649212480916545148391776538865426752588805681386684413783291937565453104448767944868466622543096478594157455411277593088705722390162044671771826717381641526729488242660226783429372648063766695420603826782981205011419806836937401424700738815341018658806223911194165352300930436315701376949489688954247585783117080858145784427949845240334775799486583561157817745415372812403050948348501080535666154048512170913585668402804746239400782034657513333648410337747548543331381030236207734736840181917567272190788340854265331862281545393506582197916719360224094728159421560543578068862642195687217414888212498880375069023304071496970610736759595837650495892289287858630938631627694785610385533158738286627951113187067410638583553662676010624912031539026795609114839765349894921957056350540410380548101246117171428144822382020302108334202477531458402213855369571376539267343770118617959026259350677243373192611877637403301845600631132723769538629195828669391944331460757390983751613108361750897154497158456218026725479824062328728830913059395663083608975125456243485104384714717413603420271377107936309396940656234315191438312694492664131127111557696090615630539764450928982139862332395935591853333688079405941835695791881644476989097789110802664610076074497236888408075283882418167022087375851509898964899568053124624340063794154041189059382472163911432301965445440839450850003454746730682364085887692076967635813903825086532266544593679872990488073065639838976123919207295175752935378538387160786423676496933486046655363411296496300205784906946240446460920099248354155414768077091390035019330182309587276642469672054755683343202108783541705355198969414072640680755468457548765605116844914535483487694179580266428392788997155192543606843808419183879295798536602380213317430780356248180495442190487501418097088302917154900962266260061272028923109637474419321006443903886666989147409670040730539778283646250886781873821249816029093854244434601457901288632599385878738105889726296477217484988814930992851140200678959977109800041418050815720056851255066612307337471642779283834925393291729142811703331953343550025982847761250384631969091626723715160106929343043705365788041189614300199119712602423888383290787558367950695093314274680239723931314708429116176207561143016957943740790508678356717836026295181554853327118675369084082983127596484214961589185232912572313973711880519344468269138647370065360950234903755408032852941126896145847038880174211737797476964282979751443817292231469861411837017967658689298774817061363456100450088610701614655057449552363577191397181792130446310916706861262669578024598785760777471917813398765468524101715818412014739062867234832682116997009445563875013915080964556344734657282405323294409541141891831096548611353484729177622050964325467659879308085058755737268460719721479757093668696233135629744857343276786013725146647008132055965019952144794215757865473125724028256107528776758299937775914264020753960767171382112497212116686971018261156242054011752120606306426189308362170257236412843610621261830172249561016552390465081129418600908580018975148177051080055418473263940616156535733604505959809757191305993421262818001342520989511468039128900908614360518677205628310754410777921115259647088254545332408203899685648681945220435170063572496304774442952364691400846985638925222934175237916904761610300574502272637503209763997817478954905179324310716028874799591641768079913282283290066456735142021322724709112814087254740902869303278345822597574021495375580338114014394838072949583427827211137964851992906078101037465290419673589751609499553185493622764778841624306848179031356354203524733229154637575401787019207308457389243803170492688207948001434391348632948661707110347421736116493153530972051396842625154834841095233224583991845724805329331848028267506162150566810540148062055329557917062409579802186142012062437630293077808000191369927641982062033590138538303175967420216636074029272096636036672178840009401721382626875110038202371591523324791301224459620893945857005626035701688885623555903810826850860607153047312738592945237958315418163005288438272761285382676545179354747008715819972706468085348897729221439233592658943558452866970912090196437011199691137940200733268704256252583225908256592558138485242692203296344128713193491247671128329761782003770583207633649161908106351383456723720147369459269890205548351376219145749068368020526656217273325332106803665560772550925642974735158936657998058184050279860015369087267296207712569749570887785021125635815361610370590375005148910035026384328270943482499891721136413150787520168684466543505998345291835229046957258379842108601062558336506200188895449931392999511542194389506893890543134773471534872417097618822608653617173562602461463641118256922395461624971506952668989153052911061512566078367191603086851041881906584075485560019655580411755270712161061650218190403713907781346097504628860811676135697479119150359775659777209809087781915174243146823973150598116151921155923495133484270480996265645304682173586841012952874830292765729356917900756990061800994494106596174705507578758150260944965502723072861983281300713199593022054629855626111811574564282008359560632070106506607437942890608246787306496749096029044802826649957921381132481587013683844324906729416974446514093827511563646894764005327348358406989636765810729653598422355086403463610818879121638448832469487824525222082150688461661364180021770663062436076836753652380729078939462704151487546422152179821472418558786838592579198236615960776818918255216720281317847050087147689918511215379561069071440854450375169577655113457402621345166768358189299936952282162816698708780702433939089964660067213959360033958385004503313153009932905392966617619098516011323808081485986599098422610410907288178069403760567995016194390078821530541497701451432059987942401822353540195054581757498054407228786624508900904433312598413121388298944381116148428657645711426386240608999313588108521251740776412592093709887087230923846163499256605494160508279303174687176938021600902278921391540129886312207502754377564999218487741153649014466575470150592001317442350845312604679780434714543747508192596306821216206555019411147812844328817609842686532838198206055721377197289389174404364117103272839593232804758140749457316202101027635676671265702547134061144673797128914184213866938044907376149647115834932677480607296413682305034572761727573603623819089006938951888347660654623114981734324967018137544985032333267055270005337944531090556499255301650021977565617991385219443470192670476805461156494504331588303614903480568306562569217566746971053659711476449816989134623409107533923093379632304508516410018405696997788794661100971346897176640635002758442726607612689293955602271558986259341700863754198683749952081453437343431057995841978292877506450377565122043167587860764380149053222196085104041718637345362614482377383380392363294472110406550499743567564108622395918970668475002651701516771634181396728537668147736382019647568734525910506769370539752737819305619983978866584864100683358672840270936389845179805543159652248154206969176293288140758365330240546161138991049580815441355386925792213907929414775300361739169841025470476613512135432995923282784111813803027212456188174672895436428294962787105012674492478310702773702495546949316198921215381848982686971833500583292602291467669763251497790374366678157691112468178605516614253134549998616422045834815485910158528329629739478244558100551533245891601348101674410927710646796794999719555712852007512426904161707637369641383950571160288293498250415303550747445370691404169955884274749845027903826398573059385293706137522761292873919482967704093346419524238037119161947060537495408969323806090112360355412306548160673867725992681909113759601061061795994089579780937691690241665440278972430216861844059529195841811131294822590716708228305405637748695683855853181061244384140683548100333233726663082184643449685466038258724377178661258636665962643413250101557859504845824199111420374340788552248372756267255455391861708276645165060709197820352377053668219976608823042775888036644844852605751313654617120222283535126952460010164698292969564839732780733303663028387583291396899203746568224416479093626386093233097958596363738959949467195643030258235470386384926053757018172092534174476893455280418596077277759762340535962115914805758578251174780656001724816392238258335257504448555501436645556013183631236211085403726984166151093142917329609716953940443000944997727427548065696101929691643239790624158109594665572302819809254457833878767128089110733404507515810814216612777611531403656204641190946774123453550365466880143793180223614143584185444616332173919147039495439728407155925364020422521808007100341925356079945058238728326445170308595174932975301841566380886662967041324977936390465846985427806016309012511095727886493090926030916739591643873949046903046049981921594783761462504242756751256236511768713243605936546317649019298398284269625597999020480633336703673324141102927579855104751254261605768013992292959704330682044338578454187048551889428740481538769662531536053991060004231809109482956118888239907195476718553355578918594009660684563090147628227827047648043313345286577627878229792924687708311981597559827289907400909593936408786776011697246996477392281137267105816887566552849524399010872484987843653855508350202307075002144811767579668868021300409535412879554507504052940387486287626252873265036750045860794313531041545563176059123270539827907134301330993206118803143478857480078124750438788276505516625204676175051259265251217689461423181626415870692224389458101009122135223579576714061125862804297982763139203029999365570100657318197900924656107763216818137539974374719553703806008706518548691281840536884439669090259795176631506881535742129941855563952507104703284522754924520444780125687772543446749657735380595586331251957763580729150580229989998388122746193212945662939618163234331531463923063682115693219387523575052860382779772794002983391381844946700774509224353278764332351021099882675430052365205862594280665710356653859927789095008330210795493442961494529035282564614875061059842410456591373016494708814625050595495424400680966470185143922704878800325696053267765624344481742918039494285749201249310470215360999313073322708994707470492778375778258699914456912432303002998848270193693115157103519674063410429555521495279840555507788239405022675570104787637448184141233605098475999740277279151504042175627696834116252145604343538029666296847944494370219840166879132028317908308733582612098999049028145648261328396594986414842478097590890584291359842272917946459432799838512613633063106347884518093101886270537536419970973369807141217598803852794647422045604331530505457111843025845875011346273480382444581069454176194146942944548883459339576564537547018592709637333170500138360602102535167727553558126843751283367359322134343767692833017685623758734179730646275489764318648305173485687995042155827205306864816179366213552290900785288097065626722292685821928325407960262405189869217254083009496917774460377220939550729085306801180429788900623878684986227550745534092420618505764689840877392792706911840992564862121822200804047701724073922782160847651294520808423429499704406052302620799774484091635136932655801510427883886891882632845693830054492338328392509875933202179556742574947859690655743528621427562955455964607615684909793420467286459386952085441860348953543352612737452685081911466795301342867834007157718959378520921122214732737634323395510962529804156813009738184877283933808263276901413902695091582276625259013407452095028147314647715873846636611449408807169703876047566873906390597614091006927482067087474741365717107448227966828295062204994344238033899006815623377277762115183574941234119280856657923254521862649717417751627701379645559781157407179168542352637553094023433182510187124087297198014819627439178609815449318471836804342897207158849676667760815659990551867866720058093024037407699924121131863746292022436063166480392493724432226945281659863965725391566978109183498295201905279318024392150255524113982641861274124713491215979332942551256174867408116966261065220060716827525343894643635286838766082788354985041925945362883259972611152653522599692355541338290438017018332381813265766150036525899795316855452643171601594831930204271425094566409329712329253054228315590542521803356899103790616105205279401034456822380855588612583959214527528232644150213001689936992311916930367358451795788519006792255214334654852584871768622923286087113496942457097180137243306330126301989144082949426809252197176573286261857508961703110261146012827438184874366210410284189274965916820725876987482124952064822065109987624100368560476726786285084970342911402737963768005284644636635326462265466860967719625633100323382504928421071289412704499431231918917684085464311336158381976659325098815621269074985376074776622444667375245015334204368704604840240140121652689821208770305123822350737027335023728123820456933340779414048083351605734470534274646671087489193134078058766967528146280380560039058130925502901894029183954582370140626629398141161684925405513431115114002533512010306252475162121176981793316918662264235865089861300470868112330705576101861381591457693314600564183017533003157150441137978569010670970827154278725331827628933553999373823411991288753489336399651204198709438658010695518406422324516901788467368672835248588611308715463328846670731410610434859107438594554678745475205241450770048669180229656728284648333153887213045308868887704722834961281721845145904377342339308430441680258603890838617990961359679896699163087943385861452765038684182810437389351566044660076827127408721138338855869145777916702419030510031731756328521777654516254454144561387743459394137650148939288180350287788884226213798406559512911511056882640322175319734002076795711985318417009079037186612744552627421917526157791271483080854714303169369076043479286927170910767795050003724236085883893443608640497601435672965083235693309068434277228754942829931487259361786956205515671468822345240391355968508672605379522296814217335289842169324672540812735946850010508477879292038014938465441853676775325083877929030174991313342372403744896416297092512366852682180353981635608324324031369661208623069437862119402847469797687199634073151193908707323143620146889413744801498254129625319599326405925555190048117564444703493909161588982316513985960213686752229070082507384344475437321480655142836238338808181825295795710605833393495101740061842424903090654389013724020224236884844831805692500262603015519440969329812996635403792438544660186375218112606757118004533180887961553512122876209273541335112821038434674204611727359001240102622703688227009365973771554948326131379924182916247945372453638238986341676701102894117557244769882957098310883582027693699014124559758340314114829266360116982525823965611897593400405584235840881030115068379154941262667693184767438515708778456778778020547491568125419540024570045002089756964656835114899146870964324542622555185194817113868184000397315645222902295558599540580546243900237785582080569037020310849986856678293949411605206529870090523556179860385685686875938653034160498840671979754028127601286163874061858300104688959871017369629873540233992191327570564687735160395777473331648343370084453590702327525549426764720500671220573963959185386818882459010400280940396877663740119393062699508501198671813719993930525675549551610515697883857646297405034782042793729258350196206256606870451818185042694854218237678308469149349695424912098331020493480365329721742527527902050620512679508870082577953289249069226216070315248037284156578785827723522063860317121270400871450371938600705386915637365789559313445137425307728238064726307039787458120739848236720360495127597271635960211315869317692648104207240848090321862277331095809027134657078846116695422000988965956430097905027580085451361492811395585409519951489499205559720181596019310702304675697161958269545588157139229153589450238343620493408875561245717355785841976861726210320286624106210528033496651751627691924032942657960294946108158405059088444856727250793243011775851451068381485585219935305840137842548972560945506741302279732549668758167132735607817477309255672973160249207108682696569198114974492911530500457648550324226967547507194267648882126037175338764360293048730644485927077907541090717280342748786871338984560953770727310470603601723544294719022697486993761481162594661498521534747148220147596318645929939483270977595211985182094605004121512452747721231276605402970777815985525457504769062670079822595828933396143290730930500546333725633007104588446572496560161151114540950725805094921545677996187676874356771176583805953195679694674713036910118146609510311619501771493215977661776065583548635282471869915752306203478724347243321696681235297428240243865014281878762941412475309181378356117598524583933924195233683084677266329414039020644176923810540379155846255794216503028226363109545871468561018844788715423237060175134727155635396183394425490188057223672917072508651032474548911720930010076475951134142146740510144620065717048030133915963509281602026796504838108374122125367639114206699724696589185308918145147452271465145858296094976759987169488530356284007081263343553874169296920952957555269549414605891381085230126683182400258843344197853724553716901499170926256332737571565416422245630161629333111491675317584965496710759114333566775223254184882452659271842357450923270607449344246306112442402687595445171552413048765650603022404166878615653150694487539886142202637791821259695980345402994273891898080649863492265742855890561717879319193879062032347984834948872604535534507075274520975726383410483640521998048542538059368472078205554984951794860175102686939119134698950122429457592283559092470226507033006905466305247779118080448249168507537768044295315463901918684829209678388468609108181549397524086538968320746124781890027185008707497785116192669307776156311459116729774701585408739903213285555224909604960632796123623524853912808556010761022175382956403882459309799318112237791083660522778241637860852953163545240965542353140084846918305643121667283076189491565851338996478428291513290988460930714880110284387588572463212746216303629460161798041359600999652878055352236588613215219811505929861634380617215746545686996094293332633445873613829387036241449425456511819006951216549495232594857501825818151099828753480721156545297344472140911388274827942579414956139047878719827282476907754436854492166552458319939367427199212578227656462743440742223089235795252392755836230490378058442702758158987864349090229631722785767098296654981908551022328676552682714176542476379588082184539654431466830394258724894814628776351130926578817627396198889224061916668850433192118241791711778368732243385257223168738470749996429600813157690908622366582698217046142463475098669194626142809693958667332564971131089182575844685218215577487516819774193829071099268412312345159459093439279205645240444653553294065600918654389949934217312684664321551153875975939728335446772579031254414049140762442331407658199216543414895951376256463702773805052096197732648540726295360758939912713555800768174606419435796245668843837366203297871018842413763886135992958153967942835773206377083155451728999238726454736243605171030821150263017629472164179908046944324008422015309161915015994923275523832484861585625773176170038715706864419555175737826981132080077754976557930052810191808309613743921726422858587828536594041885975823655117983040770986623911899326418581365446533620575297861679855743599398039058358593778232103277907651458774641830947762797565259961033564810736112858090820782373642848202497739243094960189502633761773328736568504260678458306969767297175263597033663413945310019093240036545603240274746517904691137491314379118390034889309363731369179602060353977769839915421769615040076366428863970025170545600439848125299737481107408103978055613312868459039595310520615000730374182485810725517250528757142387745877764154344574032104596467750710819646252736911768887401012845292948235619053945713901251424880147621378606378233396686155106694208917522075141348002515791615441642641421456338034846625444170785747234975386376408248499348122983403988847846325867860995282458073849088031284619659720186513886378860238980154593002793142754190394604059985293422508088383173212080661145460072656527993783189013930531335853467936742556979182043385971135774584141751901143433550455834383992854085255272708927977335905997031287596990382304608818632409676161165411674020247296801726317078395613233034941818391656127224329599095052139211843890283693446007075386466375340631569289925706647268864868009059593711572958950343154699083262086370316008151936607263783605263338387433333072981926373791096585515979442876398671149833861886278921967202288669914986122878548005571171573533474917143645802963554409107747263460144315396726587551816268950664619674124042859060992782713847743083672628395545370906315327603191205710953208605903003629840421441042493813396593837583131007567525504308313013354774323051499342362243452689163436923590262192544693739753840617930298914191157762807632151012324917574108236017782520122516934105578019645937662404270242120641478799609996232004926870614629742441888511877236861789735428364807554206963558229953888884489372770083715575198916036918630750543027114011476632260902221475338109927645787302509277147861116613768817641867800395512803026161935576291622558920131573059218199542751683288581131437948207416316929917937806275917424818800371212328587580867221408606845082603828641084929714766986266601851393775534307613492889318368453537115105882292043474658732176567073246072627713894055761676509091073786529846450543372485727362135765063340525488384491141354316867057602805823222630037398905900061041625026548754501661026221404711030344632066287643635573226190873552114071156381654245585785012201488781162107767720125093531302702770453742875626535745394943202091022240070244571201387904462119170652332935099839760530814548074562937662231204024104507673160011065565732678796870348833991273701452557151574979638983741536264739579755412658340939912973299751779996144476513249479759620945724106253165317029538610625232876563712156731451366889628639946120096195595792083674879741347579904332092989585790137408803519950222760060156618096882942989799515125525172235497408487781532700640398961466366602186749209446633575746613390277125425519963051551748875806950281575203453434779478832511844467267763133016396744040136652128146525640781393422489507044326033215153962811917742617159869486042786783203261925904762803028366408874698830206717029752026194889187271841520607980146601549692505568770870321624136120907728021012541341532823637804366994839328145183532903276792187806973910177849560774265073281723278914790013553587069426689424380787997196735202984117057140735229313359716949660598740637918559520649523358776470927065413466045759849019078664142207659992728290911326543141219363839884058552758541701929179250364104997211412006731239420975163996150787632349305439642022878261981602947578334903870940606899178815394618127889327221839849280562174772163119639634821438701814467013166036952892740488997415767152965503592320743327149274291732440165556340405141444217108222934208094333395546458423870960068309219959391779573452858977334666867988598106466858255724605565484331077380493106952064352955288839010145666109250319142154217584897404154691207550788013337756090118767229946422509626772678912087062539626418871738554483647255971926828580753728860958757233894114742990573286177960264453186555429476011565536089521966703550571173425290791100084478502961730649028102218242748089246292374396097383434897715740033349649212727973260766657163388908279856072225440550664001009539743475472725088742957975194619614908960716514880139624496618993192565229634276041736146679045711684540610917452243753588345824555588199471132252528351005636497401467697877292883336051065931885374031294474540225679727842291789708459874439759132285629768080443831772251104678018354613661720607954427519255054560939875077442087362269660120786176431322453022880562922445096756923397077524044297203203319152543923093141149000168378113217157252858358706443096071661904910164483190012678132082674465346855324003351005834529433661566351429092029596234449659237261746801241525782402498991413512248014429958951636441616604848271080376676695143940461432121325682081544777215614712654313605091935985778870683016023766901631242624403496303161905648644520495861989807984119209199254531910346645633949376961414928749371706252778753016224621235291463113303104642149393340039369188705014366910456792498440574786201548540439950874652125323063128181267337087172119773497914566764749399186108009870148677926902325214875119349623902415016495199223679399763553254894406863488768399982306374963732028767364151680823204813847148186105839250116365806012978176505397522254363705965593943269062935601317370611673241399886350685787503650912420363434136562114828715357207205902112469468142635441280574827559832858614427721006431405170325780522072726192265974110995040199145844972805078619089526602460944839963995152221673142292468354854063617556685823589754145652112112598514537936792469503035322741076562564444361765149534242081615529330178598361355848765261744612239918124191556256983852348613810688000088480266554131021802927878298314407306553099047468330332157586776925844588611638297744660354236885777496857851490515282870440025964552610157214867470041738420284443398720302974266379686543898203922666833953271525817656036409962382988795581872069364236038963032780690101039955919132553966296533074621253070755271548013079421278901804460051359991162492008119759973814070503528344592038920983785959226333408687490643323671223819802032795268027143623723472371845035495239857877520333682000595619281544437527017137103145504166018230022326612010357527868325065010925066709519096297169256301083209543784186285697928765552677607275723580610211859279280706238341354110482442888809401697269092152276775268296240466439502714945922934755691562898032659428633071521548998704025074617357658887155391442986861347947289948166823512093535088571101278875043248827418724697711807675568914897731675749149341427510578704394180447236028660084244290809043990158042484401281150812226363124080983243071194932953911382567630215119338195934544345743761215483187679556069453916620934660595112871857069797404346459100997648823149992709797188455871472832087019756517447533027144920037727698821005277922121050885506766673726441395759624245624077535321435031617369524894158389702670014240807194290502789468691306704959445948810301261271924429137902149590062862935688806535863276168754601498320215812998900741248092683131935833866784198625348958636809565670949276826591149237391832934943721959420381219511185140532940802853482201646354870232263516386366829785612799909430777333689254002664722870642629213476054758442414086635156348199507146480189328370097251630873125988851736301145493430562019332055759973618811821312306853984159301945338987464819466806802013525924043828971671512802301130950553396515086656989701664139709291333496782711463566200905401417517964212340682206630497709331143424095440560467532366395893250955021401774154309287128813922939029140403913056297393378078399226338625335310213693881644216478949902823782764059864157557186487743158765053632673963690464397092542993260387608007267885397974356827617586000320923275071762053091245200293238781463297065857013085154532579062872381952414204755914609862049593051702778312631343504341467405667198298161999787066060177333763638301044180712524035373275946224120961258758127028878865197474419607950665778832445962726018754684462761305924950880212210232152799168641842879377409140731222190799299565683666139190416155116620708441268325733494927205567584180773697309956763305796833069366382012696714944160919991938793469859128376567765527172021517649455700082195683060896244343308501387426400559757405695373775111348416789342496888642908765941649932114623356994549130458490997614410159406318928973727647644141999160948857343796679363765642697317940152722712716424715767493522323856959873230569623124415582019429365809945120376271893115336626988522680793165776004588324435210206616798219057324911500178457984917446144934183358652236540007683834717916976768958349982718938137872142633822079032329887968107470931729817887269975887446008232226039249796237462377264082563131253003601972928837272711349658653867799108777854753517173140213736667100959203103414287225026537423436210125907275419756619729779597615370382873378027549260025755332408718699643351587669239054291686980985391731916036175662844878685526401669054717297761923449829599185977270865064777008749408072107353112966928627856457959971647459942365490123645114959370859373661079250984682213815691058970200828391545623394420974802156379053331932937935265696349377619721186261179476144610618650199319667995908055891063956081159035047575741912058270621454001535175594219679802302533888418886080191901562631888845792787479245206427852488097958738733882132451251647284822207759473764824323062727349004167830434304457373950701566706787247735062981374442338487574626053304081103258824178642462019669022830248602118003456069017164263920455633498532923881242620336452391605527657932602031841040235063457313848968471089274386234880948522970648405413326212090222200744285933553241919250926672141714745326352249150754953740736703150082159984104246472148626831395365361100761274300363252796880932024812203291321561339502436769757454957651223567554551415776553230343142648358440537577330511712681352288574701875742127363581767979178555972206493263635467189753698582827642706695844067102743628367798899178192330756882061424171319865899139735930269536708708474717927139142137671732558135565146502992720418400611277861423170084616416811429252784267355671488463456510790285482535522018511429635402538994171359215091302877367538503614347433469564269903170419578548878529437095753376715328807635006922609541216046975051123557520325538918476410804421753103352358834780731267694832307038255223669450091880142926986814553249706868312158476521714662853774053652513817407893368512318538911593919540593854412680634987955390471120354044829378657514267949448929798180334438062710967666111515836383117966857659940146531932841709369893812383154798965163583192095008359371683173303333235267449289532446180614081734329005088588730380557742444345006973682874195616157356311688153003811498296202477596952333663806365057517350563723477013122516660581792313512960354167020004613016886630268592444238945736580600953736036752947112082547922862683928987156774069887181144246303080006053993261883665571415807305191103562506211223231177344505428220497353460189201998460409253015047425645538630823214190690845264869367535136671520269125067196665349487973407907640653035134126814534722658227121733095485866578966415674630364462243788677972612655505473560979982155857443980257850150826999201347053053080577228861693613777821453885769174494067262545465550021728713926706803662197246758094959793896460546355535411208706815415165711879385594021867482332980466757908558767867914134818198519178741892358777559919508834457499531377879731769719569690511534307341585914794989026162451396472409934091404829529310557066904472133974113156563734752306402762719861182991808870133981463280841095929175986550041034679330343056881873891405352579457686706802979873985540984375663765649581229194187077794840609164182316599160211398928931329033516346951114889536997406635555043579694790803897841960980614523536379293540955567707798518859356106518586109389958840277220583965636699853665800182203994990714395550406120991084167752131390351219212095430375816103613253700335801314877877854473567330162307975878433499149370379256439457851469676470045286717188704514863615511113721779232038616454674821209943833939379368447969042250764637568003587570776156555123433070463888102479280463849426064118428740943727718917039457888721590881910656226820892900205664758373331138181872462540859458105602350416079786872126248155970760588909331866830471564163333414747458724517593343268475206502697087499101791540446559206155801417708044489535245241558162838957278838088165626542998269976974605893008344955878710377495171125416856316808658343293965904706912309002994589645549604807145450493142143628396106253844183435378637325199559846826068357095018609744608755941922783251021102848004008817003971664072984752638155073654676299975730119281245959688262915763402724569338318113268590656105918603582726901964959769157310411390255644883347712754263374053174107912908460956600395599394373300787813276725467912074128422293972893760486574571541495984839757191382299616312596581591649170488112801569037125194284722376665907208580447739435183251138716746892580688089422550337288569655397004677765640096980876250667589337124547534832716281553045982954543170822084613858441292484924908128040022703530647811577346958923486492556149578560254033692868940760472094239923027033803774341422904140614239782656335930030090134963798365565727217698861037284608880726258771046106591911104596125333878435683579703964585999927422235025031104609350998164423452689950720173702862492972266244524837402416228992229874915034073014626068445821149733298735966336135499680057529013950516380511564292220881809286569242919129623947394074002092624422506149671803428704859575619123456655600075778135310099248767958198260885775830903556650439151359549644594451858732503700863992993485067446059312997020590571366560815011647128344137237216901657192114425333028405663762154834533156251935653747429391504749225676823559594058649718780627809417083353758229249648794516879589923438429228199787152003351577184669117255166154659120155530795714132681048949523226568488172212437160532877774873273114020911184524747586577306416082654888554997875882610304920320929082654213707365938930117052226638803482406791541468403491041221834639722932601298484244496831283257246756376163515313082851518863983353446498709159764951694470251785833841781357195449360819486996089218478866427062431020235286247989987541698903136748448009809388260939739879079874556439031483127608006913100177592276184379561346631230246238028559346573327062265885734014890874087019988830847133517930440530486386698261601535942615087271402846546552467425553994159966317881116852745271867371367017738436707524588371215231682208506174345520509647883597066300949819982734065289657877808735071062312581133260786433432779302548078963824207556339628357523702975215329540397296908307040024153907637520872845790752516605279606494103968144251525614132961053665782036105987314158951374403165341873602473270893038454506540422144004767472054094970946923825693028776949389211645563054729325359712307910629136752537633433561442289128088084804737544786610322970420892335174993508053625799566182413539119715631552762655303004267698249429033641999764768197015966658311706870938881743039608477493700803464139161124202192310158011005085356141746983972363983108302653229829560662838511999389141147554269594531281103563265153413115131816392200727577447798302799476723728002992829457866288984664725505217842548401697170219014468173743295632387100836307345934078476918428503148111872878870039067406741711372277305733073466850122030378293718835749050945678234670363349051997813322738139492228244970915972360987775828624787034836374740662558157154411869843488564073399997600495030964287094022938721164514428417482932855399143620072874377619019755697984247760518605748786606914550509000498807234498170351173184142934613783730948266192665559437127161472879409157407972581497490792680511150567278644890984833210957654308622957166316952067826744762646300407351097622295401770484720919478729499814078653633269358927604711381684497864401167765287488740274739955315916727933526744422443505923177381030431483550331350286237780457365382921672420904256599566188213912272259881393865623374430898097973173795248257877309177864773058586729181309032368343583956121171320905443410039745585681278349726085301223749797127039443469335238942991158927120932645019023753403039151247557433846960529418961179233030516518875509724559327074986067427925287254791588605150832753167710299937818296968090398246197485830374118962497598384206958512923860093467029200700033209688777694250294271987042961380551452075947433113771515660953321444916873765617313237805133465018563198263020730135872658263754717162981394584260958801480337462674402037154248867275421958080249053521338952523632382608417499833380293128349362498759603535740216513058041571013804044452728171604305522154787129926942291249315595217525545157330546362207839929557846946007830009412489532451823228839255064012535741643773061607355308844442690476799764340261231952404803065547035487902561147959665321431223261991289097479092445834741489387995266739424701906661560697884449532213683374814442235848572640557140940755473416639945805158068702706976173176097087805154228566434963027272716341710681394986704283351578139250154136788202245933719734258879209371424870027976747292135051082902111621586349573213204470239754743955269899200418825507791157314752167740504322613937311144520674857886440987863422800202829597729894308462607384595730141746390600870097246315170847320044222650508101582292696928958586756208143069298083284375789582341989641637275650370033372258224576893011229385679184959544040920642230759159625228450826744206568643467884422707324648252285027280660674168992330212804206745582707922698713264475941556407839343557989170764448641266894906488473124608451878457878803850666718043357318905940297749856132723250319139879932055156340114976054062065917576364100203316230464286302419349381810715029352797188372586188454150094416977908189084724870565605070354683774860437627137417437959656793422914552177693273277638955791782987962128868693763741297852942821043592027558509529193438826556968944254792788088065944099815565252766231317634810022351335435112027184685516508579665398654242721077515451283288126386788707597288885801335128285342721207101984305961576612930882011182531047281603238152648561294433917443764063116392468739640311142297963250748342962192519748951945319674324956164071599784104786902350591189243091159823816448661113784925666212385053641792657002562413084290330025748910588594248311609475999565323151942029863399267847128633618841021247112116266896520133004705182345429318387685712755010661091727250333644839605898673827574256108114464617353304371844840529084058455878466724154196113607804624999374764210361621248068737858083701311474863376711552332669956795119173621344189244632390126316707165268168199590173544338960588864067327619614473405225479078277396460333878607772824827475201225945730226468784222230211325714486410658081891794464215701061920595020265290437300869035264987941850197649773270878609108640689095287203698064978450190844179666535346914439016754929123823323675498864279953458955875239752322771570589853816608622875079935464058692857312059548620351144178830901787044302669850642337330421617835447603561244796549070526615217249716574596539479705217399348251322708923302383290280387620627209072120409022243972803889712917538844144596453401161728202451655441325193018301401776900544672214462793234779705189417544323524773734552120206738552629702485190179200667479045416031288264262320671249360687635971369552417175881210497809150205373564316405887019618895205985756489823026394997556497417479610092828891063691086237240732110012459351061415233925758752478589389690729331720415005572399358308456476135718134056534237107581392094656457317490977037985792194389690793982771475362102660750528658072078690140807382132536027981266974219807262525860394843720375386415956543250986809574614640356134871357745487380320353896184574312529267036277896426409016412642022706755347679473521241950566076644176892151610603932198661707530614418189202493899850788763300224942422804225861768851248459571406035909247395206574948207407743497414304855554325588984365596542074019488311652084622678883103754603584830046071798140673128013709675249760509654340142718323791950530019695880273325509201476093408524049209334305984435729199090687839660989239881482038484523151683869341888486851516557635840089965392134534181849049671245171204167483618676227921009391547318090856564090080723559815788001243941119918032726323307963853151939709171258470940733317621176815873261677950596951686693906808496651172181663141195881279430938210672298879533801287022334154486442320310413298859531855668277425630854036425499014237057850808458779781548103497278766414005512288415808702314494515696998033517515489681959481930944236179475815217882767681072255527019008067814698696313328283009960360880538734456161486516703458290039383172823026840230047295252135594630033674296295348310187690493261540755305762819561494235291538974332390375886472354856994291519705956332711363258111560183777425537841436580228295688459855038329084052669801913262187349824987363199625136486716210150419907517150918902144723455406323209197592648496031317564652670936366367447379637849317955297580077296591372699733626119294435532025133655762118555894616447019184629238684107065280899987515383211707648693568706944310520790131710134068780600845114919603758633985600663907065662450894017370348659494585278776723695965462436762947093362269326974452805094677627233927863513559693816854920793490008248110483741292314365552822728653191263352933169333183352571020236752188695099223625408528771418584545507541732009507576592750156498265279272050027969542277845701242311482643754623114952833584892605414377338573110843724860396969627050492850188046753716497927053054548110130390433409279209565623066012732736855378715359281141814495215128528918924875582155894850033423081257598930100039102282791052700653780033328018861036057080176055141205374970334167453052036403608287127460992520672892525382210181274710492832798966750457154689382070834909447428887401685473946109212705959747509790023935202828324394752919971542050819497274697094289385732537547097165073189599858855900274835962970827717613619881723727378405627955500842341205581285779494336543936916701420435062619516515131785249574594668668468543638054904328629656331920277916800690576759984415682349924691698317489120787256500609650024339144892545774318565237231574935878141955872505442773854171649555105629005288220966342417516508965236281396745799059222826052238682612229479596103771081257735224270362158786145919900109563761149237883055418303460561965391924557195218661613930808157727194145312100357242526783940043307459896134661687551601173396949220787413124466239192989618797311794403602854383781288455578887196123755673790730426635631358697489917550100172382614666574410888331140068331581563741547729065139935008990828234122705962226597507694460409633149809262583975386035684436448799306173319574000086913059040790369946719294284242738911410490944391033967080991829358831109080044262115179510159094634838966728294624200550205920061843408878425778486736237018062717353223172039039872778698297881829876413127612666179453818594357595571800913014233824904413891359590873893830181788388182719758159573799412728431102210026879130259480968651814877827368535134526816492974227985199586827535781431605903273375155702862398418469963557526974158687849998884194007055241864313364082407834224666656902477960418235916232875081778412292423122494145411446407831137652906486117988914673761459111496289726579010590250825805971770692816915710027680549939615936791196950614593293547756545378354980449557052547687237536045234991261627251124126263932725638013866294552997925247588822200997335028388156078558650894479743218675346175273924449883522970149326442149636081913939708633094472834310148139366263941759336122961627378940675843727284010212718072353172120957852143946024665180887444583686607346630320417301083281476274716498376493992307829048815914110294101387933499824229138295092659235348843470986888808732393331098477791777443138977418074755514013474146451923593922788399525356937852267116778995599486121366229648324700357535875583385348412978401298843004983281770625646341819603995723100268686354854679685122441708407390511490119135015095332201877947721911895463262089527983648426000761751596880493786557113527269036322357157259540206416944888406399685508470084242508695572749197026521435130629646248000545726482340757486207404499476854936360859885171195827626092760220902552593847717805217312704348453273858796015789762523994836981653995806588454922870164263866456277683407513962964034806230293022693700568697918188050166148713222009116994291069141947309427457685056559648600839594985890727026907007084230011042645594840545045028433238612636358536907537581311321529716681613238378825282090756615370282199934871429960887249550683670942203481221386324469839500673877738340942580600531138930410167932331075266547548772184943253911826589246339587383017902574935160348911530271139406467633617305951584474368801339433112108885418135426975299403766430305594294982642425247185528871441966344584947870557828981226380983911393078275874692433113546555536241378483135598052415413652644414712300969893967947793717173423815081338503521400532750814559564297913173315639065181216102829877046740491558645315368574409644985679533719491640133529173074864401777264073986416252334172963580294081307768486179191881969579567847375705959140352351883318966833144918971582757952091835813996527621769457692664204170917195628357043298906022973486687236809502705442945088031354616304163043365498237811017676329338003404921695901194221417286482301964170200752275770092547917395307120343429878921420520097080823471338780043435554076494574334472539164506389192048365935561263118916789390750206419806045481167404258464361019954085991441306648906714441583296801794472106696713769277378592247066326773627573619145191156779396873441788499618976595778358639540253778243266009756393849087974326658867979242784142468990304654802238463277065349490144502090591107734867975888431238723966717299307026223161958339708081300275166341306880724394265006442103201089578279523174366447062312204056391811464256435751311241592198380024669386430144060918406941178080601126349622480012953048166299944646332455337684216969869698832704331011166315552224064344031558049031174875164526347997659378676395665170638199211978004330396666915202155647721390508508028887809022693872275557919369182301112927895043252087055045703137296329457211933324281971039255907269245996832657046346839929854120780432038262616074647964397789364467596875142284556607039631901583853824146922094013510343366222285343675047056785090616410202257915743290846468473971232599463616526655311737399091029503111784024248962071541505490627193825230777469696970160527609334474254987139756117160584747715194105583376338323042728708318863203998092353484686552586002832237339608867039754206859961918192843497822418108702525927083139531981474477632611988512711345120032485031462132771102910407812887485352869718808220388983558003838189138893595446464273447188851890519509500273907050786819076530782500878432615950894433152744109121857348481217711911160841082908819052513476747339458608344270555094780979661748019053614131944437065591219232170608410809858504699344630434260633666446518460301316328567371363318496054574466735475779633378500070948969099245323753546093536304923587889117854810257740366160921988119875327382351718254234412093029933797690133068857070840461074071501113052336805536530721321777751764871209557913789936821290212242688042076296807735922775875606622908338749057219831730642797915428211404761052227734058518043424745451364956815903616157859336877977468525120566078136038888555314221463725252061108836757263960194957884191141337987797046856429723618422744932993819749437557435933634864148322913276751356828266935454221269654568571719908928103302360325767866111816044335277227107331711577030147954111862239247601316894048556473392536156019013033595590818535770088205575897223097814242841493582901716954018809638668195481195000612795953329832484884549175912252190736633460047090946972531869159415040980964873496735635648463238776725389432932498604056736036765956708581292112137456622655713476822303218286085179414406528305953690679893832740726338985712875210040611132277480743071083446814868773002642886876921550206862171804496807844748136630345669202006519489038029502548889966365733137380452383319613011364750896639887413332909003357641572388455394855483815007754097119109408932956704404195242208582028333066511809505158715082483412255211988441194345794321409569303731193005167211751056008856016573332244752291984498248205022110042190440471633529740494236486932403795132990116994573648200277259394038520022979324810703960339865782586150138167456048092261012216530114395232501845831583892910339028142881917380008480036120555105161674301063091981120185346170302429087665069241945820029028711397768591275220161381560337046304105820061832507636850158674663124639408004355858274691180268494341858326770207676982773196576214546955880225749406687136468909135217729544053163431484581243539503906391765505896006622909746911809873583376986941856366036985321284405107151466533083175922986899520391340895396314133295597747042199852970426207390690773712804146570233407302494125574587965024258631970758336931347666582572504412956988579840668381569789521895750383384174865295588494492525312997998920734627379790165032200307303185531463014228012769280567843691957472223665897506222186313720805945159282373201709421296599732247446586295478059519468178052061857636104092202456239884347552739086416582069936083849456842931727603203820667874191982344785369614642892275859242482566203612948074057565690440506927699287661638881555365514104872366885087326411356816779906003918569494463611263233785856418954395904462222903292708080343244769154234947622044778764413675195860098209170086599623081785542854674091744964239411815384499052126234212857990166174964939488171474424959623436576872831166303029209003694607219698578442404398539263835065204780722887150898196335861223579654032696589843420318273367432426569712625236872679608050827604069599578434074013650778735502170240513791618194225134140247801625251537020956662043562800881727143536369650700905480733459413711450367929926171259338729186357264663490870457120423667403684496873253593082690689069508846743558027384235761990398737660073081900765763011287149708524407771149782123645854177170161465189145628571091517415651695584469933099659343960893103779399797940817333509520001772835749240951879734222835401725863166916116249169818786752022744602642601036944096706971209994730323441692941742991506641488544246193188144293116764622928898491355812553051528694141528435766643119209946735669192886885876817095658966687931751526654014158653748945428062263367597478661350828755625763765640795706903011661404955142395329229295605958922803090172915104869490895622552720681344311263393579510261271887177353214107228753786391987495733943679580652020796200930654878448199009985649540325015572811104756081305333191765643293730328882983045756770286356154115771803464163355717824229402474838112055224437895435188091207155235945291137271556753891639495813873561306912092573004947396698132849573808683089488751820368621735482336613656308960705367808291987329459556345705128008431621008814265794289807252451317550400463764539187978812228350216367203500935576191831206972238266652415643555607574703706775605183387060818619460978295908756509773442370637361541097477342146479758595303943142193301871838353195566301829544219458746405961873537831201329394364919900780835987394866047330214365461867302466880542041626003705716355083192596061661774659212738462907986982982347678880114121494827946685529524228381533245327430767875309907502596403043860292397091077745340615678888610335030823638957951271094482495040827520305809388405959423647788161933215214196360874194538084528867155128808326270226565613988902113235507674230279546439314585293654377184161792585609756910957583320544500423811370079985103455939780490224485326073681661424003970750569185009932973717936100474456797654783265152211228216411277313218064982019939882976332615021097930892444583784468547363673337500851921970045721669962878992992469392274590443644263312901610985759714822588976622753554800619306120863280663265741379171300277413371329568398052939467500964666634977722705029101553571687145473409110183014277713246583544178025258117003842168699586033861278643025091113689385811298333547322047838924440716811193741862043186479477528093022754730775511206685460182323468319708629966718229260804674182777218093321558802190868123113475775245849178362507391661835432412174954207327959663805473566427020917555660723688399818098434065140720899628063541781826388277281130263752924740125079587943743836030685446159276765587814120916846652438791974565540209596969107647686414888577223247054148294182057122829175250338120953604418883978443333321612750703750464786620947372997551787726658995638332961114594673359567387077396428855095162481530735832677505282943124509449141592365011160198417537733739546504370136245810954154572357299721701379805464443798483498198802254450384450356706341016405057456721698054065574173329115483572676417674181393506423198000665821057799764894112876004361358756252192345902064954779255641432609887923263421034077075708665134595548774949845835421957053514459330965455032730974966656081511240670674177958268185518824860549962799810587976550465260431576382573430537082335548380205143604162009688230728045807114374967665054169912316962115192372931954686983732560193724581058786678062543921654125656220099633675637686332782547583468469586751398593700049082824949748276830733180103257251060289971214435780006914295380253757240857355482003958743712598312682374980884076696830878248838128990536565627359340251164480356867448933125025714754132414254378472609018005633211349277860284734057259093958112013835961506110153925509214277158478802829751873172085257994464615531017915228898731633632104736843966447097182646903324537862225578136551839517996225077199885001081788658508733767341280593849790196431093893334718812119792424130282425676781427462940790533061395448025384271526882095711485874068064578477782115239235459778349301546939939494722000734158512350075977217758383414544852861350856022220191708819626373995724578787764359846572440789842615726559471811388437037687856440805486246041417223062084974361815277016708852607728920381154264820120417800989241750960597376306626168746154981516480978629074432783298412112841057545088873959737315603502105059774341540809073509043819713463892506916506113037693432092609661511286068730071134400580208129631232506331620140326909132976531408555812340771134791457430941973175889792561970934190957779611099996920372256425282610618698136315376189261030998271060841778405302115694262102982132748606148920626208387913662611394718382424488688791864012043836450970839816807377589748882179770299143836749088405097498522996685831184943010341293899717346165543129218398004769773773458338948690377979004418528098872245567181111312284071372108490718223885056038319540102367426906151447976724158726410499334976320625282854853129781979847842393368595692241124021047328509431472526202792223109591690024997571780142019667664397696978947928854795870317061466042089879819052154224189049158133062404711890907476202441832019744846754967587015671977052410215060698327171593520059791517194617398418388433677945290489404193566719032264779027728847877624398283499543398004954723951060972423403588355064570920155498689597388944562682351915028157230461792001867895966952228397446065471832732435491786498081116869927435697064498120842216385491793772373639150724943281754348360672832025557018293559748024597814286395641021586373663366581719955707291553079817171940556045206898512709861606183932037625283122857581436660456148569117400677526490985788927962636900244873840486288141487514884701715904997373603541412869961702318957651765146488513313610967295014275729435102721610310775261827453823361920965556675631769088194552328863003456843368508661390330014938200842134272703395239105249611465920543002964687981825584004314709805555050947142582102714442203666466289407564435262077201526850261657527512321630232233808516592744212155702719019148202735203866693010649726789681555847814270980547753773245363232770980552476874061561370800811775053260059126655701464476639596871576160101906247073459106277365551482781958172760115648795428844649877704502984615855893636950982583894383025590113051234274266510273531618839778903840117234965262914896287291225338512209032768941024557578120939797353141787936132161287192013363952674653512098298671260467380533836697864050862198574087298350092844442879676086963089905445706343536068038487400040200563684447559820754400896131709675266937086700479772362795875385039598471678099577924544568734818361437892505205109848344818482536566305272227885808576649891993534540986446480736333728367817504857805646666706900787005993612834997913321693994971694173825176579904529288766188518847250089201111480270748638845762149210903274389089406996472435494857339472439209296529555706512339140268613974399178698021986285275411427554213404287444456095563773820620889330403520645684088226272567717128077620271982492727059846073165067327803792704549950794977375821365117880920888281316171905388967596907232973068501700936497958251882574393226862266135712277222761344059725926822257286660785592033498622898363778104614601630751383973954326621009620598289943956078866311053429248955640195668938838609859650587372715794914262526659976403583498585698188239774366100422905597489897844344094115537858690399815966916274631817786947057731034193144094508768887700791922579753362198733947024765032833745929193905134074549337135920327747884531049245454034582373695346994235931593358238715421464629675599529078353282521822147326185909798919661144681059042657967334364664139163872707651212764823144783286816456478217454419371269765433071836597086715013418648831753344063459031864899065170775300161124892493055372606683610002856619248043152376803724524447276697869241164077510430957607109306911531207080809376776642384183756795142006992784035626827815687448164809516726191271408930525361225385527893334270683464352981452291971105351715376694347483507890426812811980878750112799456451930642269436302721793908409379479363678876016309357776769473604328803417875271842931034831273561750048877574795451218350424494214912747740351231428765515852909481342525332180707391538936305300777433202292079538626108648589070936972623852075492922557148066780027025559503763499648404000457672114232168556943102384933074271602226867098555457005321065999521684711295795163955783430625579904762947085073982824402252563185938621734311242081787200280906451807356297436100393772446027916922877922805980817530282809865820765956748249478566189923832286117409297919564795293452145741946818568333908622958584913950785926526682468791122376860673340642948412219501036788182079953650596616191602303774967264070710113845207587205072243377472570504080721777152268410623905041367172402174131668972469886425750722601827132994830275029991429320626132420738267010336944835801247454631496009651555183153864468387934223177566089261454890805960117481694481107540517820821954592804757900543176801396406448505353548096581245102004074793925899132406404290000868318045732765639343432440282279329375346183546843057696786743348355581501443806345424968614540733620992788532464775608661661032595740814160108282810527529225503385438158500756888445741087531217115488467421767226347513103238610868341888397719754421610520981466615762298318205522112677233790176119482630874576222568653245526204231815209052459546145299382131394025363408187988925185539217186721570414612516437836134450262192706914197406021684400509233718122492730082288381853084927067771187841983409364078367015049915289078809543488726463519793855232969505299658318302570591452391625247284742880261206540564921980235010165462573212496438358737599444869789217348537020484748477010883586875760826815008568205584460075595359316176045430322280093053277128909146782793691006783844330255465711700044424034465710622178826849850789887001018611381366472896677044236453027588099798894849211236908412232558735694001214833180375599956461675197969378529231814162636289952648187269698156841858174602067111454674513370097255760276611752378382200474278716150481623717687207945173705370253567689241612911361469405868957830181850195214632083850007401553621048700837158486015892691154343580235069966060272650687750500813081992278938513781397648521216848006908835166824579347380905753000802003418788093874725923499303138396699175111714518356436737752755145767590424632607704492238463517607332809704138980113614355239563976655348836460779821999479726343830201886556316926087191301291394644508794032208341444592849087477540208333357029606485007190077987506716599276882516157517964909560814939929402490783928473941884555554650369504833590974010821866129632414829843876670332352979021124744874597972842423205683531808583973305726196156414149899873398162051904407696788536150782128166474876958808977290376887832853810535714477136493529139367231326258073324043950556272651259864809216704189795140247184494541587616219200578756616091538801002271561476216732335090947796243313181176684430928760124114697882961427166273484832875374375904450782710724281526259581761734933358313542023166367677383337907255974276485555817636778818392354365171106444561098052587503247466571279739005912388921954060730980412180903183629933840204592650951929753115724425743198539334454715736646338195247735021431033112170663972769725278408388611731261505051334198061940502804547679870505715494487461387043973767971565045708552121865741945884957070370944047403226654062359664621210732187824501268411437016333128626493116560625603927472806917342405939426745233860085007147035559314525172350436995193578483098257135300701091653428236066141001275914733099176359739789941016224803873384797599205352091947956880967228451246242470739011395076463464350722674257302687489647295289089733924787381072243864663377550493198828697979906259166813862153305401762001424997048158782962503160673292349869375412647362229882226832061032609412153132144831483828111634713501264539603783535243928201274779766271923587143818013391530786076949861318745214452123352792359957027089907227316619658710400171491814907392726734976351871568334243013823413895949007741526465219142706480454200749295280586620179182251938241040401520594325345418123656389510737582173099750629849253745232290086058423189413855538106466504347140058417742963404217661341761148939413277440619219483634410747852002258810744841809506141307741498582718496739372206060143282925162826824123893195305898001766656720482219706353933892797469124570326150494357707761418925716005866576354831178645068757256486890449853958694362061701800851568790320890608888555421074406528295555018336931589283359000284269169919536958102195579050414628835618624847711049312247701988027253354190290740494272410037916399445570678964477235733303059299299518586025004528669300533507800831136738871968167393453129084548204904456807613763404435248830162113408479816148662548944249704128327951940898653354646626876244706320024284668988923574639816501652554254046109734917752848232815843698543983443299886970470219535182430085550547092312658565545471009215623727112988886533094708934929671452016492133392226646492534241115113806195083788182594421039412857839854994173743846133898878401255849222190968868712970796289960770743577604051914139635200270245553092357815894037523439824011013206954490166041456184302235129269651441229124233359683153262711223424288783027119950578718797983644949934427627670414780523072131135982715381255846427849760905630888723414638470025217325097905993812792953591379936170584654312336633835816419880725709283966741928621737586629500340354954179024276108181726712435705873793638964760173562160770606093370795485505815011321261279387069960455972239665241094283793782037172707078565245361572960466888636508247444730404828548796709486767679295339140363953684763973045765623376006154072504721421788410535691892955081384196090470765114179682446980352523794909492811425164369924134988810660088475220425592841092781834512974789821985599525472781163549631257093255656764920052914875943448541893900146133025121834772369600501674519974222979801247165991321723724251966315424833797133507352631212904629979453162933504819548563154577417989260578888579505050559771219472754128794513240319023298701483969859539759435284818022916455719480260814462936931503226321708694220249824366264465837334455671223671697433095504664349833059648195391818307633174922858058770619336726046395259410507085070105036645892545775426840660851143475350679614282196399171513279779156244218468206156845761999349765258681839799019569049129192708604294774695373899998306995308239798747680814223608667429702332261479672680405200359879376857413233139305544381375142002480452877882748103315423416429835289529736313176107759813373112182435360498690883887902162800358899715206535355000537568928393644735305388110824515033472102673817936618576811572154989308081882588427527580677283555108433906118392277187823099398966489550545523069951492852365491599198465603754607892199988811252354780795419113279248511698199922670724830143341020107414660788050562089593308560185163232699934405022702724527100908223537780468518127442674404097286205911097615578030525065868722053009773803014321892636950082278088899940901542686431757007105419714108186020602981060973946030384009978228563265303314102952239308853445936217447186355609695576757483698058582313943651086880667497791852391331138112112057315097871158597284630713113593964051886206762174176716248880873058300398958820385534946787594094040787187935547962946163673409994989184442079920124193080445515547814844967467928508844758730812892396699542662617513145233033769435880412998656792275593933950790084571364481844322811824140394809535303282413735901908606602509040065409883973351513314358237245803412864043324625945338550088757696157450759355243857284005407659322538435796722268103904570016105772036908686590007687916337141462795458298219606402962985386841806896445796718579756210314232408702883085996786139146207372972852613229173780574480339323871801758455871220506443193860866410452971091047635305075016602235391620325199178315019612980153033379901777114254731778099191143916456039580942895024327728719015835356831618657212711455993410822844496077433556824720842910853970549820251540960376327515648803707591342235922947816018537216220605734653259352236053969456553599668803737912647625923181034668521503062696934147005577357021414880265161845994733523335487804258872501291492168647412826678856082499164469442576920579581321928705761567029965503031954858323753434987424405650510717657303999890492279055278679585578503587875903242859443913503871132156885027434441844064080419977154584846735087483049677795950619724681750988553270235355793295204993366201656663502355204976345153454691465937164858260379219824402894050420140548701649793802214953756273208963481466419829676264010895619397806890708844023787935656075099896325805066597547062618293319554730202617336106670880828790052289495660959216896242815493746845221341900307743783619256483435473238416234989634317763954823557963382494462668077690129947476446790373288618031986567950821515792942439784148844447712920844047697822965534963843037470673261241751181390047329220934755135050397353559929237494688000377538790400134452911171845396196689888917448486705808515220800365653571745914180536175227887392188658685075800895691870381463201228460166328133674611424496728701071046474165975749813333670257808549058867370473500254746294500801521631093441262868938528391466034527724627407782378882496050447120696436821043859469586227098931484731267909187645131088372029053486694535276970776930927677975978066923672228344780026985812350000315408503767398403199662571820927951443180128295727609938296944600762179525988291429607718236985277380572021420332169929485246206017506929590338197601294087054415196584443327831452894405049013122910864062219457330914217073384491203947846729662205741393564130742231907812870842808277814529028398367563765870892195796671407227169622635785112986509512709242415305198296474749336730528237884443085875955393867816267834003678150233679262262226595509318613360549240881017656878583078512322143245313730929559980343321197278084374887899132240326125773213067877007119390613163633565015023450077312075114947926468172180087964933496554372754994999313976633676355560206282781434249610554856453257368199747151508017655118534067029211443101209187089122088929021170820511717948617612016342753703929878313876658212158969792532032343446411931039415550776122574558416927294160868560547530208560673398658319050056670670172213260650259086985334460794411532157008389414496741065832008438728378189893266966190123562393191923094106494718204262545035678469591335126180563241549895712893268434473705533379149252854136643572552385736529224529694932553363479322637393061788137538318031869368680424143878381665447808451412599267721798736794541773094125605857030076937998089676177777821279106710825776644469997832031161208768813122809844384616249290145295723634076249448334743745076555341956279157883120505635662303554225630801573787869139321803199075541332167371102005530911711916591966848920982345256874763987653136659145016543915209268440099559095208120822519999903983679518582498999168646698078119814630654304894788903645747169225335509024571350742626997598504069491344534870337895379124127866052912520523766077889164626039734507819320058714087526423015343187828749766558316384904003576794188927575642199632589076180928892727826250844302515334107644157991180278429968480529559729111295491833636306356437909622690950750813011175258704248604828864643853409838763560464224253141749941054904822771659614119907201487795253610330106992565518115489418859059790228367435134667562596104463842507277368182891316606277636566947824137169391210995859274835903294605907728725868681832493799384239402752177559001723404054954986362536243865337990702294457429878581601010418743564145599961904652203317047144631197742590877231780002078957712169922765506625452478044113727545917655863917245893933287290469354657172421145798398388239216178074382347170845864817582237171784922824292739238690482389235698446755028259668591106688493203791651255683599244364342974768370514206207064468868095888338920178694128287583868842269389689239092028557918111304079771241712274842270996132143702020949373143128797890504230025886775704559897856779283931854940505640822544254988063683039745145723509211813229275847314060469228949405368304335145787121406303322358817328277925938778209512910458167089942694067508019163057638636925087406712554066814217078340950020363568486887037974863708350341730393408709844165690401627915924022838265439776530728798048938176893286188257272726682416773411903619149588633867970779057374192348150048633995198972848905035532107876666089665025661647685922516711684868714394239561207491555976917975633296897990954560302027565857135633577777330567740115474190602079188077529667385600435247530956145009790021946180501808460131763862586326380292453613199731688525238928144812684495173069511672807658519525911016749474644966593723593391506314143506098168602101512982974258701431495212806886974945945999681536705183467613017888836870288081274927550252485981564123142853984402328302693272556762837408869240889045201074188901806938706589024460802185406782965032185974300455997634353848301717528816146095927587136452945416797195897905660757952234230502071500378840515756637682580402049256429561999711057689933750825433874740425956162590071110654375610259567989052492730378096703790417227345334562601082602856904779030252942448884892618969701082001082713194515214587047585051525576261972339926612282335596769478856385086724039122646912646859303028464222445745324761776083311127666350443051237765890505874122246585715362480755199732325232831145628391751054245990075736105899578064844308029975763623252318234776192295768434281565057398837431641748653170658881066226204632449994779906700987872785693800007280386660442945725306006163835371825408404671104018236506958907055761371382835024887219798578774169854214377795150051388510621177345953374615543288521671835884055703452794020534749171366929627807357571550527739704438918741886714198659643208032255271066503486641401876646674726602426807208809683987103320208256418039705486574944100889367738285756790907543777946222498766659535661591174682683479890552234689739746935127021768886319301346576633025541594044014458278490773917058377019436411749186821748130338129164961177117729597255852083140573119247166552468860780820692132311929754686782753708332149598113837719572798280156089983131210824017645463959933267264591718499743940182384206496265048706402133147676508671551093598178851995313685221711191260964305479155619421980428719483996473037814728265540209565360111159300682055724384119591595313172581238986697111580258967983449731398464458776806356235059425794455713445602921779981595706929689108224688790318942129438022319316648528475155689247072604629728174834059440998765877685522900601457504301838515246935944844923295872831638900271800187663899268582595454047961946431765064371412831365164679577943992837179603967094301308350271290902558884625193748953337921721963205357314820269589753799004174721670557878379761362926046397203395523183562728305723999236296407749393996155833023563228975163632295909481236445816917463421250400391540234005711425271378518404611798657742164679556463141325515692393815385177818524763387338253182578819524503054145534904570344608083171214710925683776465061161730544241232572263008903045062521560596083662266376948198037573167464482856014157711996274230542253295049945671424002893943866501491222314775235367593715143114791772161037195101044999628455735400862524406661398147726842379797403353881315530608777427062144518669384559314419540631367352535428936751980676823872602578163091234584209500537625965047063445926894431298693741456625437072958729293588516844444745717492135032411309462981827488313915216003300038542777506970853321384580861685291545555532441527530555161677617227405765891378773521170535054892610626758000356635428403890564891527090804138339382967866559110839206346241442177249552352021998838511250210987183350696596376179567629645016643862184697673132459885141513042876499236654350760045181191969933968003164119452931549050315804345189582939414456447096381039109258739620794741788255140061707163574069393732286734907635915957862105551548477181459894068687326622208981078042913883502937801056518841950562001570474069331314477318899284642181720032192114183679888853082477556706050016477170138475234559185390148631177427853375891091342459724263629443726756171584968381414735195360784850744494872722989372090265022762985325273071557041024055326312320160205991464473761545288352925421067500016102267623889466904664892278598760225504163340856298918862932174007317967002645594899334044771575042261639807196579283072806729459276042783719367002568800932526730362279984422983812126583736936507639733046335561995883937798799892999383503701971112380620860801459826382544949490213178172256303322930618644747100929962053247589010782517450253322493551505496515543944883212434287455319977860848310651879522381439388608107131659804970226566510837826382686244798652592256298693099308445604442086762991097200217234904852754040633451558595621020036618556619822962122628924629714578971181137843692823966820506523989656699842000969774886497362732780257020114519155799071230556299571813466864791550657696023756703621882520262775079032317222434058015550071940256806752846702153694657802058920555869604650166762712261993083529250758672233098288319014758996416260480875702316748240469628156257576770953287117001129491096602360612142568972228799053493825175358649650382354984708270619215528242515243557230559751576822048101955035916344763743981378161614395542780755804765048392862495105302003190607960122826694774763197501859761045131837412711409825775505500698665369209874147027383422128979556729440169747610715869334975922890325326993627493524693732680035294952950034073003465466807739359445615455887250534175262693047895613337669019772238189013393267544645507390256532141728250410780140575816656143756442602574327497994347921761624035804029419859211265982612932855351801917489696067508679777738683316699469650627237957038481325375248882527553365819207933691479193445474228977697110878675117537664951339104865807805427233764821923897713711979044644942688614061272985033394377409156320723392555836737100361973328243467971635500007671245555617006900953333166685992221862882854363410709427928714446028630010282566123682292602658101405636490502619951449364098594375220269918230481435862806933891555290089703475327464771490022931875742019317762502873902809936895147339691170664137877241980566111581237843002753346263381310922374762848451926539551310233814931154002111036955658880641059826233458036751688146161814234393058528198916697751668559335729836439633609000184914232327031583077729660542836302779279570901730845174560666893931607549767097823626435491130222003844970319945930770630702467522354688440116541581017777915791228068633675411720764717114311109947481107022403488878843779299962576303447260848588145020444121361589549849083234909321683886871022476418920588187014773523900477251692628851561421216979339319370178476493767039897245684955859686400487659472749029970724889994807187525959499763401871579961847041752952786338708730610218620547444573961548101120771766289777386455458589575419046000579786266459482979540645384939122247059085846544435070647080791083610923072960243305020999224851964108545532909560879926987157207701460282031828241827964170124545759087852517078712079997476784464791419350944307587491864982350624660816245396873828391010693276860394921437816516163885821989742874081298710325882879729034380408633828876409491207169149478797417931600166726752436759367381261108737092211010594036719242781143255342772361537504909471599689169672784972035577592292250265180256514672790391347415281914312729973912952817601380509536337429590150533745573198719039241021806556110938591147530564873154820962144804962870489595709224896553663488030291465235290096623807701201937442514773834998459152662159153240589431745438420743312950438181357155281991146201182405397790047027079667664798371658427148010892196437063429095302125740580164498834068367910823208777548062195703470233529659868979468590816282036474068895883838815988935777900922620984886049583268593206793888993613256215019535106873987657375631268612009942918015003612324300379177355763502601740016032594413600705642454916258065870030639731035441558307606753668160804327355567571054613983743778532614091823903860733725385077101920131617381430906398482312774511311184754565940224986042668579615604941063346456156191144638059557615156564288168046868690517437718872300681138104690694699935961375148002898854002802669643153381299590305452404937128441226420590470416372373867795052201808673911830409170694001108848926685197653486891746665324288352943248577221467304676637772350180104397314870636600844095168598766579758406763249780465460035811582931614106617733598295880955935326152971081726146964803512458333102763624830886795851152987879117290653407267584765633662107469842931788541041453199555564776412711763939853296988070903479107709367036563625304995638974321917961958566423949975047586833890911528078024142635466503083762493290237409190246528680449789075032970500426012101454345847039913424793806553420873905691542978553793866609019067663474301674508057631460015790123622764144915423997854426243364688787084708519286981214719292176227548465540129560478587321970709643828747518018940704529880296891312323349793294762409370498789014295606900587224041491548713836565454114232723486178008707103328242309797654409548091636109089842179910230617780626472658342822933770522501662347756907878413287502215347560385333097027433075729622818598580813795413710752519581269374867126617511092152892121911006858542440312571479646902276313477473562061375691658638042039296615940511756487672696186909558031262728314722772278973946234785586285941153810819948098357844130418339654350454211957924171784549032015029833460441795277456502210084993436573657121512759883218964119962875002050362800723594002421283869037889333125144150856496939317045279396488156619620714548481463049061401995362540023787382580268984821163955633088145745650678614510970924765433356424402323646826988398350500078036657200656906977719481198156318995601251110335856431788673238337279347171945511507466841638449209646781734451019312608360178086948565014407195744509551973689363352210597820402036287814774988773050395967059634383534385094873321097551952458703118101723110148273101571783333376436309451853467917762987017769148674126838491541876369817243664574010164734006747532799031360053513506706590281448815737782578949510862026679060666925030127282215763530586208199907888657950337725700153290465901291124522244692911339177355240538621681320475192179907082458748237900836040648646879790941572209203503636015964983594910992049417344586597177794723769488669129639544905748947375836814191876998693783875271065056919779797652635732855241338501951136358496857699784763188191743459300433334889355112553118731926416161145890096966716727455365811088701551087921618378055649136120547575919775547451592174459213165154243220110163365484717471809172903845492692502246789070774600811057174036163734869410074256937137137147899331363137319533783200637599503848590519666086495662695335285572364125025376395023871958481472839974136258033231209444631103481585594018303070368583762439055204160638607782602086418277217372773354393413452593651746066243773703687310063402402930596133927162625992642559970797650559599326249324118648216120987357949699366831435302963153481006411624558676972367656939234798916704412174225306491725538836266415234211597648613238290991736417761961698725212671426454271700815061257803722771366510960882877506155468019211357724763174534751104230769195636745992359178624962512063298978252578988410802779521738156544984268290357338600255539846833432558013613231475090755671725650152255242663357585359469400532774094323450886459948152056775417526695868172658761698766131384993836747494963273883800127394976846488300961459797289329972358196266995764510986188862986210026794674493013140183787930495010328973312242830923438780734481822933003716279075072198984666063963492387789502929667065578331506004501309351565829424310723251201853073644211699831588123500612773464561021769128355657676875319482392238527971573601776160073971681236455580378535787037438993605735947435001022628700786719576634680254697491963678725240539886231290674956924525453750552418888444824983725035112251077571024561519637770061945013483248839604868443219328543063648625391885414153769544791114503578543890786457775309487211887539528636010759779327514366846977586705491792363732937019566576315263885746008426525884213226989793122168123056487802982908841097152504289325725154626324066358898741001659737101057786979918838659725310049764773801294152853682083626819177985389338675214149370537879707593661350289079472097159513474698067518829826715945481241152183080837988095779142739373359444758211497206103462971975307773701583080719290054441870383911210926763143774368674013262891831854941148025884976686660723759304290355839569883968497470576719042391655659442175797845614339180510065654253077505758912010453511446148459196553625196401971225389926272151451934028411548569950798800254899122222380060037602533619892328790094801418366101727322949573709630367141085701135662651879994778850440532086208425955757957189022038020459191641541003772781565642910202966067183118560029501254794873482202898657567792107709278818188975004196381022289023395771659541348798933336552314363692501429436699529552162499465325484369543343106329055593793500424757465809291492884886924757841460161430542053536475300933644614696529842693416763373855180414921454407287757506743861193929588813413687577382570452125135159396232926876929176777596522608899620977716315651622808087589699760983547856484528157797867399741448800651584357854031548715711530123422849027410094198602821439564954863310277352751936893562126301664140261475145854191760156775747943203004489959893611275429139756180701972907395816891475458194805240101282294582695423121346467161214216556443428516053826462109636724382911249022599989475515090051006389637137214471344146415286733561431302591694913949236509246894253469366068153913144146666133102426702394282217328373409576537449736804601735629179985131635456022588567654895849497911232785686233876646011444904260339732514870449314853870013827985664514193857312481539381771861711265131826295999826019689919278291042588089958263913080836132325920791386409594247892514277814016637471766300773838647758371989574133396448812252082508480247684632000862107889950051687859316272910785488349114966683955269763589423987781420333275424696631889331623287317236063626166730711553774255469494597376646144934807604217387771718471657866897584189933250378124421975297668463705774851674729957579721176499852110838650813962589787301784646601044523153005111146352960415343491182046569456231965906716220861176330703422555525645777024852186086085084635711281700765114546092327584825380911772291479794842863086388564299744664621902684303261494592487129295084461501248368077274046380625278943474193155059393973320264896342062520982887320682570723336400668952322014951231308002134109558795224796389045286641178695327169070379891167117638781138805346582003156224164006708917344004876477201583998791665471677248901347081701789692337775849098083743171748986351874087506505338583030026409797901865899600781248575987144679053353853390387827784667562317155847896113909516777507701512756615923238795583836029538474492750672970326673826404859477560213158878146668828845320414497000230611080480648981646195716651747885541418404813128651602463899349502860107259105809065283392906110598029775287966973476464336046422319946861396950753192663739470223372309654694960877005205554960962196322239660845754448008459484652925205979480425119869391066779874034229181495934094014271604441793064421482519624239358620831914724434073149234371439268321365642679717786940158061951920878039118963227148470494175490649043228801010108340682142424755829102626493310399898423333484397863038463883761593393054532447872707029142878117217272320303979872747266166890172562322207533172368711054377170970705656314132902213975989476675709733316557427399149369676534367688928586907435591955289844889344243996164734009686175996572239182302258064264576295743032115445835556651973460188831410959118790577614123710705248192094527499493853082854243644372001632427770942301804536379316085433525855043329660282688387146960474730328397695406673219645259784094091453333418422124804959624123711576923874821439327742797534024894943467210354425953303663290710237525977293550926713591467570480323559827063599056926664855309089185119672458789251027500207153133194600356091352237957565535430218419169342585582639908115311963356023825009288296740683384753743379728137563685857192931180181661683875291447217477229554334487045400596391146897657050592502123268807131389058259764634620020124586811180749296079918700005716791706446697242509746114456435113384223005796508438706520508932872783164751411359485845808555095651156655699352719531864860203420221903984691551821803088116457653210085659721117606095757979626275484987176705135925687822242104560931315326802238796162666617382086284695656338782623986274416282913493295573059562359555521102971206396566678729197300652944336384092089015069920965356200969372938399666806964800978250002840089608895842928766424976290545779817668188213139727356707547944096292347185543958044965681738228679057722871473192337291883262781434372916162400323524909374775754279666061887781915115539702692114964161336898771268369496396224876427636857794654624949195247728697555009316787762837043320670187770411225723205592180201925606025968927205801498108761621739008217628573194139157223384793118970075515680637441492423137392606070421683463948603595928413275292456542505488482834541777235220818305894135316961834131075118897831265365758826169551993928691592771771274215626223856492107933300610693757190064124001208783950900250343812547849888251354705774271651880988242684246629679247306933957713101999282860281151949559446425392707193946539792485893165661425342708399063242638615927521643792864876749001537651901009241427201986521403467076443970863805953335102422534412568818150917566745081808241008097954828182531059041430021513524268030366752721574150679239732973640529188847953603262519858098683673537968024217641949367457999946303333938490063926296643777538922267671419016108289910120288028537335381336738188183650464083698564337624807143154996859656876316861355720013490452570872309630337105330345293153988975079181004903781245749399440977669772138760391298675706292306207432707121110814253438474667313247777975047096842747469110858271971586077491297517613251639637133893452386319422442287555977007929210929165869732108850033740350705395013306198041827956793283604112048319456327815261927853805348828202935323321682478883606426688882331272904658041955572858854671324788234150994324832133130552722577375759529551690608881229536272355962635265223498799287988253790836871292117950500863699115684790199914572177443252344886604540778955485123771197357059219682202490599082261882648527530411544831568563856142236034443311944910422170227897790641354471978614067101355833685187083520919918462328256028370598807003541674453554191303763038111980107689958837671409957713830344922962830209312443690929723879302590702455178791213473311582748424620605296652687548454501729246724507599063347091583546504710734683943848526500143295996820743297713536525462408997972194648758582066655541896644465468209424544573746718451327623807418577253486402576533456966580457990965287508844391622603932523376950478307147020799527448675284491959926547243000961271316826941306435484594638175078153117684387781607018640492387616048676687537868587800407642948117130332824881314643301071677219376248474435676395005751353234110222934772271630678851844842255437490947682830778995453794288333216802570367722247467451210987512549988939644238558319139351222327780387580427958175888049747802461536534705011904788095761468432163505849149870829052485168315269137054679644417194401241867438117434504275191601212001745254090878070940065555190475390428932828124717181577069639615792293602493596601266223165009470969318515900956952924731367790209441174379874498417824937395646903008632299841295038246043784126435694419129385447545477152257224731664341180326704516659551893192257974127188046769947781307908695982939922245093889841208902256431443550526102168163918561500641936106708193556424348585815356935441625734120170681653354980552505414342062714441036739563287076639623565023642065898268787007632355211516551205201092165076698940340893984075122587657556540125284751596566318333039705902593379824985050620285305844716621954344736898192727870040946781034445752269367661384064013385484962035262726303081523893427904579250719385175950215107736781196774477989735496100747080196146559812002300134915451277410342056241635513100989908504560814907099060177564956944163338258441674339523999689980454386453265960582596251496539378426107001845614287311032244986355855097212547708175747349793145952143114591034172387626290569716624052508809638241502320722936679419795758085976513235893916714978936748989634386817401918538520419176402454648773039885252101101466586183749131467082498631758550956300451688252754329043093742270669963053786243250489550546275635431753096615101544202177973664139447630253500451396922319059113931242340662022606126298225266922359721302192864574591617420177605042623682344382236133814767310091395092979888006293898779469537056110681330600130624019225885814887201735087761711656735914372969226640610323055095211156179574971014475140274925135372608793485789731632625238807856416097001943905720042399923035512628776641507252934119612256345123673911696722387136844323680455964003085524870882221881430272234475893529845878880253328747485923658029935119577444795008895642310089411641127899191314692644918841741044929930034378332886998326921813947163941827297240258681972365986305651961052142179980231116091340670663432308490464190720302569489450231645149734311689377644051623301156013774337652588156147642231444404408980726513833268163929704376512359542981728140834400606126491625213085814473809868660507038749749946687767421702149662071605275727294321015227735910463865570943246135827331478102658430977194292448513641691226270428940327303140756819483370688772808860962025115627074084250188991581484489003625552898815385332412193784331012656945412629225840181319297268188249904844304292531610846024571852857921045202110607594542367666159262473183632282390859088572653737745615015456658873470555841752965532952730488687705573689162989083778103212397419613235589723727056201885306215188862061881420567663129265873161174926648591882047781604751920530184055204209519400976440495206127668425401584755109642466903693029332815641238420787426293236309077493780108815590950001519349842069857165179663188464425312837834185514326503164553737115857017039739723757105153011561123865992520955949826575694099170795434739877724334098894577425851166609474783626153258892936690508622032164154761222199605309368190348471245666346790107832453234926599324612952984893815787856954936464882202962759317425680760022567238053423736784945474327803962384952356460821188352548314748837666096580294211804121606601641612857639732939142242147954072023169713995033181789080526021539018101740649396641849643962163049127249477921773724189428820014967475609915961533272157884516576989327153614423300698257948560122790235231549035058844449568323835755600969522770414054924288447674301136885338233230869223114406063054523566839174291351121659065300201062692162899833284421200192814289840636859966870527711794280587410510724101942044771339107752380402375357286046634346900382825651082311687754842989745456199591656749643454451825545053952238055578224403920895653099911918854670270156175436019830653259913418362681636105414652181042643974241781773551339732809319112826990635088066538197527153462601838560596212874972075455059519580154911534030789612952957801942082057611919493177559250297006768132770156672144946844745333162372637553144692777832280931111958843848828834552507069074114321581999328552698119623201301045187178144796775398542124490479652486056051346443624095839749260033948786199151596683460913424178765150781611177668054637451052160123882501799056297867805042450562610354305778657931277360608762290996112599291064774694691538635181447067399769479409459003033281735361513939742003238120953634878916190749745184896452956163374494248018723877357743436673446475034424507674148962855972218263022206202218873508459225990738627689229218524731226714221412650112729806987208339833829750352832955079226699221570603110864864503943056547115621973342147202959696711654838947313682327124773574231370715150500766285444706919017101053827086328448510680560819135693632132745305348537558298249073583266183044538809750340065235075679146290169407864817665591409533529840802182235103305492950182156469240735688074069812391157153727227186598083363481114443832081128426422901881828354326043103639562944397514625246572668828956901056049296375973202847298492595657723320997313958959482336982596712238774892237879440476118935676666007368539350965620888909029467694344126514996641165424355229702575927614769013878698210853205628124485896804701326809181009885130856550926073098148743966376324827182554228228199834933180314154327256511315554351378947911074564552864094188736924395431332558731358473186977251982718574086465135927574491963852771114333338758600753474519907488697233777826499848614646036988779834891405104962015886587035681657470342227009316359382017190066881800800974818354122325918009470580528748318565812705455575322208334058892228062418028212793797388774805762772599397548448198708538939024600545593425835710446629713585477833391626590535267216958191753469772726341422299742340083790175404253323932123954438334015593324478630280363689956360660789787904820523131103301180161249963662395169585054475989901231059694298615393545406137038628621219979989494884578213127333487262223261318058254147162051034047823304003245972662239951969511899547256618982865702193963158932246875243878603078662290930000412617905347350614960751605235276342455036770401063100168407713271606250783569444310912093584748093590098351099718738471970942325052370370223153727978668212787991906138508161661607027382010266795358556963858445340418546088440640703807563382788683520017589724261190990479333447113282200470747263203127813378663417027021337636775415523862253313841566984607226657323114306893091250757632464084955410650073769511106963514534445645335798493418593199399759369202986627267223921109055599886906174408841967132620453325228644105154637408455206540929492716083185455369910122373503623082875612408948108571093063626675142454304830512017154634131778884708725436016728216387666971765817052858955532856456483592546829709529664469646852486526199329233116624461744037576303830207071460590702016891403893482568645283518488549162773437095639717766471855080678440365675964129905124411948370258730407262610655260674432541279861073814411329221829128929111014077651615486399442823323227110277039779458111029031648760836712530840971784367897581078953505073561746188553915816966079414184472798665410024218595834515006433738584412419594634398757858770943256976734809017218460435984839055707035680832615929732459601365303662330399306378838541108459866024999439946800723123737057954807319931552864101126909982271964769680870347207085233023097527809333617885351231508861964807909495245316064881317891502203656157916055391400099926665304527990680205031966510307468300465922422139578826610766107558789316943443726678595985912409337654467618950876207307034152328953554776126417726818833689456574016523768240520256665121817121192022669679003172513508419697819794441191387358348374891501784245659370374041977382695532746240070725714292940435184277145007660866316609984597029451713912173608366886562039163792303749789813096548358379502792693753881061699884443315971122964685290689915664067872775727861078315338844329975759100479055392410739357538765731792303536456014947770411615073898833897924365839399827815455841438146141227165822192298405401272035832361140656059173438496070428577929882241761232468783838857841668075376397274300747508793809654824473169437124248615009513258479457210742533005477969679657762717360102437568269143987410322479845572406941761649357725431637376793845337135726888725291544899636679276277128623603261428064974628972423533913016969404119689008565715250871952733442076362924284340964919220437725371966652314729350388238711980748351386173155075279346743164734305480619462717995219835224260309221447855664494362100267011854169693604830146175488631412475936998649446843086188445338834427811765162296690404145034260885256654042362158987354813837174639437984464394084375025441345380416448918023327922670299438341553769508351593586026499738673849648902992707088803327788528450040772044498545608935740957105534807348752363524482087399242083048582767645029129245437719441299835184545661210589772593295838109686149162641035983746173578610777131158852564655898255336926347455198511810562217207457856043287755034424611260010304729280119437273430011549379879875510741556675363746274062998615072292757313400908899173935362058356739303822299395540762470703966897782831220478386691421648399964403866082876318390360154483323644270245132471422531271972044265810969843416848834550546472417586825727933166068327191334571752827596512894992888339599179556848144628361536546356872909043411650119803020659869163254394899833240208854649143976184720224501541328989141774081445875422590586172175484480156634244706114173764820895039738725988538429686428349429245994681956610479493040315512443709404533201261002075552097136543857397435341294507522842724616826056722962667932072125925665010840205442072704872102065383456804628503699840053935494257685648511161923840235678116662983654115246937002524604275167642895374365473561482006815738259661388960813070862413506879066931257819537391773424752929932315676308684315543045475255464599644331651724052028514291942495045202246444897008930626175541073909328703257157746155691942791683619082129478429634384471238152963837912657034343619701312827167898072219282241497289413922372573765316156545380032739519078685766606208581675868270920872102186190649896325233147263591525093665666034021531075147195438446644271683795869589880952845279665858551221693508276916250584208323389999490794520490972987604791850969906019932703229569522500922947498484951325072156396949046719191306234449420764407403997989008434855195424863456404126636838065324088653679416069101495521578226618333121405404307347406183355706041754794792826815677898588882422603502730005124397714945280776220972875029627309934510967290779028797753615751958208458094616676572872627337730389484502127732788424137922582281705408160517108008235690473138220731796809334387869429906281068923201685585904333952728542149812202566401039327048059010671986247365153886189901586738133681895209368747286378525024149939057811718871192855232504979772931185358756474093899718372314054780293876370738269478069036647538808317709286725774965348236236120092865965981745975529379673246449366929913536274609628254050384886344167229472765653917488648219096306162115101765757360315106442453479478085420170710372502308272562238971315210934496745463540417369183897135600586942866940134496356799403639292325410963247418448636932439833753287591459829812127087402031273312273867918198467340564640378349406966291296831695639085024244258098951103607752987036966329901203461410694831612575212748019890644449380660222257837661573929131496843369357483661888532011614246194327211459038940106455758692287780900356215304529584440752638524313074267289721552962915555242443698201339544111950791702453440650211223119749901840978338586891884007042610546246982454758651723331462736505327282413876015413684772686813178202046732460785608757751961225793795836560576246507625670431851342423902092644190379605261586884980229187808680792039779502390033815621879638742514226734684658528155099557215114160752287517617006592533689017484451167925324848407058709858607574339490681522196311478555188716195730211849817117162719947060581170799279634581131024159714678909546181238389575930410022159546249632515534325631973683179706648136012773833586161457036284249212778191319668603888660504389186485060365150378083356158792282332864910540057603933418059406759498350017818781198177005856605021375890376714676772852668634695657269208194388364033124217226464699847626841979394455280781975531474915073763029515071963549609002345258815522053575479483492229089543921654025224557260568858695486473979599555503735126993710179134577405369491628297687453282865127829052973559018839716704760438253621209675447167157140084419787007763864861904313257184404283055346641839917526840162772640361286898045867337866635614299001204677847439455635446693908990733008359778766383779095063991884947803623530989818254151595402294869994321573207640677585527674058180573736541781510651303720783244379493202241693530096819090639800256187250953092143258106795654770749794910285728096147775684062945664922321376402795365551380487442519004303968471018216835368876132187846664021260928488648176394016424457713753980533693291630357757729422279233744026245569485072067730172415205103228281251220043846805089743909962583732077920119459918318941521658972878192987722608058828857466154664066235035152187619594046534312229625937305359970983542164170803484628908980448728113342793957831660812863079085956348579988667300233475189071020808532371157834702743316030209416411884461385811856956515139329014339226656348566146917459941451644179408519077083596396690576828834557794653201378773023285670901935501017721829798013035831892140938731347376779156340104820597734128763504501901912907302658919497424622575217283071757794241339318116591679925402910327217303881932783737917418633173175623983395175012190929906076510386248934199616097071818898508935772765673033059136940838353725561386185787548117900383806989913268705834306971052332397641895359919777913642851245961623019527464763504420555911110440758611920174940925819044446468246271343289614598740187737513600580720715920848864712334063249600512624787536834559562535071049959670107545305135649297373211840514680100090936160398009448810866008470293805089618101860542742810252571306738044588138609752348574749818391429379611536888691878571731961020467757820583820436006741673334290240276200833829003281532945153961637524434397894233600427675601608620022747084389481031409166020805732933466465876314313295908430843203158372236796203943492720573109986922266979309924192178214172854320247485712745331409669361848253908567384400004696030898821273017729084968642799093361388155637675955894987365352272918842011036852625376751544674836275999605951146585411818983482632055413172543879363716104517324680310807937675792970177194626547540838922506412793477109925926395554766057171592843714478193777835155371581177976366739147148210627559830165390817809559616716351912504780619528853573128356441157094959371218651424473742546023173853595745466144884734609226660360012814392185993523313140194339996063268179376013032068502179282958141673455096433265629816148868690169935421365063876773117477693235610312010242416239118648797413921861680805274109688402806758210506171728046418790269558404577869146130679490971393953135550225353856216438634351959287509707726178751537147230222822753104931326904614060658815051593795309278096051526599071771082719890186440792629003828888802418721836395819919285787423462641999798911279620965258100634570459241304589821741652936516174496727616872444142363609192957424115502293545070601889192910101641484896633119388475768694364605703481424078181379605796776077909317112981564361483025065134647782345701830660923926362224168636485138307873868301623600145919569149186180818732353671240226337571359414211179174788403263398185333886979879903933448793593291353674653162405325552862690602461767951884618235533270085193976684552753787734700693312133745561729779865771345390531010308204560075119633043228902799362425082333990974233305206258912738275098683461144042041337147374875412635823395923211116565519984682690937752931483573510691727175454183602520612226798624636317985197424602383766956461944481319827005255044589463349290723455750616851777789844012958051069439906506451559622736239382297902697415214026073008448844935377123200967591443415911179299618895711015446460424514566541965692861279232086321352000892399196159263430727739129836149964076742996155411462507918046851190351767136823937923088625149775166754474646244707752603705147057581349784478569843114101404594404972191521476292612251368997818356651511655346070013799140141781977935185121853633034702136371169414775264102719666978256240570980001511659873568505744443891897916333480760170447328017372177054277380079788427243643910686780520286258383992050819886615227312409638416623275812454216956139045417029210712838229426986406712975406997517216576984947388417561203559131487193926046943234182389300772258411616584409753749101676781440031973675509691225116415847435938852090715804903426350594779523191907886135573823193742015115197467929657863167448990161634606021199111408015790760354988939423781163532066781586422854842195337512734811322805576719217198746594956504581055542817033930761582436676238155226686505482101338860873498525566289587399362453242105728215556112491470769208698238596514185366779275002769500138702299742123477811452428434904509409315091995331402658681494769176308179270841843427900481712725551831410232914224810579672399058987439413167106028310148813368971459268928156523902444033660529997563425073401063686920514860385708363849988241019658317729668133435505455255359744406099190677957112278201857649466238606036448655340088006731603909344445790054961343260352856921789936340858026961045160584229670089727617330253202930467512915269227275519749367122856095184002311917181226260432384005698625630759012015778478536454223182769550581585400411978319054314199796972611694095800804330226922293430213479605431918504534348678810083412602789856591373264128887022585918846608018275547519979809675728440176763836481870091711048679983960090046341420436197055778918860054904090127116933927689974446999352390490389754588997277657448331522326465045179104455183793828856388255495682150115103735424646485762364239164873952550091007250548150571672619174750587046009692231438548357520531037823335946743825088295903888953951349609088169261475547473169943829444279738945454983211754830650048100584405741446995872775185476344560419526283574254613294022530738212773369409204745304472221751636556738260378433308924398349636630037746573656493134092685372435529337187022599091276625682019188074185134906481496689708031651579230226264653674465668966663443949850711192847526740355725559859755184812079437356366155725268898502531662215221714316702267250466641932829281672822254700529526238246518441754657624712791379421733120498816488152981450356349764958748151705667157695218786443258320757334481944348514442174621343392513403203123911306714626696250401131045472954346471125005611959995076820556278660467266752495874748069757084373362838442477724255882775489399035378879077930520135629523602987669597319213617545171363604653213861585620158714775536630837813460107389138077211477351984726837590883620200951518391432555234836973646529654045323231690859001573650318330909456632653199742466729609608393005912163235404951019391958452377988238831906514074992342075591327163764281311596424048856769712398933121943045432676267687268556759322476716892720950740307507555014371098276583871498198604364404518954599977012950101501239714861332977977582680539944516864861423900756075040888977106659668069913645502420079315470838814017123867667552807280204206841240430054346951918400435327678042867098273248869381940648860046564977595009940224907392239118385581975421560383564199878527549667430318558759085610743820934203175419452831383027348585726594184397456765731469860824616348372875704489968186511911319003751488728586036240264952432380041853321412195564659147100873936007450110717051368693069691859967412183306562790621507341905105458038330128156095889666206985708137436135270352670028353043888248287548643303707461609939301530347141433598085770425768416218973415367903851953284981644872890847359239242608332202660334862053296829126351604705861840807344611571297891703669618863476271115469519204668281694134231912451230643098859934059467582088060995035846250190224182859252174402555166484784529163489632583307669060696786780772311032401045541452009386570817408796761690185345738908386575246547163369984885258901088847205418671515759068939997964087706391330454698272975664274573399466275527589369764213996611683161549567912549149394379116816420827733583549642687930364831041705169819683183375843633184106273101308048045733650047342702229344832194972758532579018754597280071712968352548309243973949994270745437970507145664283915350951532942626706241357972317963586882000091645204626447369448673239633941078027284278463426236848021976392397390977345594696592520475947941668149860690619366072223293962316935154998069971530211313465540743951032596218622916483480724631109032382625023159126508584245724054144051560318947686827100718217761522849106956746307290069284113322221734940225084364158388114442932479520612063348500889542866740309218491066785240467022047850663401693181681800075442236754749140467207609150056767000954815283874778522219069616227052188011368735795488120898915317505692976808913530011045249139858346655183363459346331288371584579134624675198877360671229176617529611432689126528618014063851833180319805295767657388595009011855553039413271941604027887056945706561009102322333190039473333601941643339053159895974382557861266149991422392329962685605989753463010590148621504924146775787051033622532187381798249318645901955783066571130633431758640708308879001874694770991815027061815128284168877041606766470372441413630064371140674625488730972494708266186434800924142657610183225922273731718621381239259965119577094216838599265838847759684788400006610876086661971222992605345294409242167949438924504342067718580985036438533976844014637627769134001114576459098797599851257072628010572590151179689440454308013999705809665718671496236546682368451935248179490678121808428538129177450983345159175944001956336874039238270238561971531311927878583875703533421683170028404330315952840446057822971986862768752757044532767701977547358142136257513098197973206716080408373159046860018146526272076259152864227170553832834334506485494622348656111387519695888743091626878417487877332885307376237113148480509824715526845027591389630360757490829748826422378494917792718601710609566663376109565359252101722205171808855677296607177350601132292254768631475489304348875614664026566887634601320607076507634906586935206382640420628842781973065764246172872121080439192338365372557756148920654167835312728305842169563905517139357371854783235999325734572710952100085494897331405243651936077598676006230022917605052442237201819593361061233210095982585065843198289240746792437161428953871939675293653125183781658748075444662204694081839267234025556638641279290249619414506334784692575431516275140148876361503232188217147866731246846559119868539895454287514907082805952697411570676969256448908058627726873120304553463102072763170676815507847390888476997686927346909438988654023762306786624438914050499046351604018000676136505940774467461034049266629206255406802704651134297684531570083204191454056698895363875963264583517487459323602862525457136992763549991691757699797308325165678803827060873124002388176456649933729541954072375837521726296891295722485503965413287155487653315562537828126504372411317743270605223020390023535022824693357146168839836670451221701813273639325624798097829797586504319106674440540967990201655848485369745629942951662484989833465105525924036401533269908367807178154981972432969767411577062471184104216557441900359141925064719966262455648288535772051645941200366958490101092283432692754592963124863696641194653525158292991769147502576421358075106119435318542282975564630361666526032702081636839902550078457044407816391091363401845915794210121436170052146082878953057509428160400947480704379922171243922664865169986109958025827948113436400955030145623562761037487209353870715193285089610841107217406048740836904397267816416080753117284515933968757543861108732263794966702119498518766760520277857537904666115219405335249712067909442474852645203864684202989385246352547507087398959944866328578424344557006924906730401130285322812792858215393210108228359120386038417538311000283396944265393900548520779195566068321739148715545752447853518935074470775098489436630726382371732034218887110724356479974175891605562901651895018914492600558130334153736724864163384362410262029607867406185277775496883082381622351917581613196027878609578584114341969621858583436379005761395000801851587712583222988093728000138915820862010339392984164762365928259089784428801971654322692369026343532966028997102591384783662299756979811897551739067192430146055457892807662601569082042020172401302228434090405175790684104765107294531318835788016856044734303191684020376803619799145623150790684519146564962343225590146909525363796047384881816769953248552701893403702841117836609076132296193912782175193062055126437700234428892185048892738020754286754034690880124371732385768062888653872503621343121940031434269894214994921700679255347179439981016352850900332960479013016499490751646891199430258772396145126144171535263337247807413185182020951285619054966585785196601050193999740243116662850674279639958670113340995112488326167212477169786163175738558919568686374773780663825585820423345305756755172692819896169321516212286515082844674233922390678520617750969423269850853613816410890337676277431049465817364805397010066436690207922967804890822133849876027641259885358482446745233527557524934590375091643592122873225999890876281870369744369969304619463809917800855092924907710931168769872630277203106600353454594811010914837922055788630256673271024923540895760716242074249068586195434211627020008260550395911325460404110835534051225247550951467673107390419744164755909139965515582096483480733068390506773663908240947342469202988274978475439751758603989994498036691881860964758607992891614791119033220879787851081878813747985517694969049255394537177241985374473823470126422759962493328743565313850714195398509127141587374390491027872762087480453547834404760040809090488587307957052638779766342871305138302273511619951000480030662717091703382613503718422461302621309297329709659812020151359261391208850046095821912051574943523145751143196552745784275143373521898073432591866498980883497055355070748759538391111754334972282410030035437268147069923154924633258854365600051623246251893929263680192157639865724100625693841613710352410317791578313819639673597144900628948277264066678787535159787441888957285598244132905725917633449298076213945831167894445070833828846579055427279038192923992239332987524137656299192121931274951836831535555443258408749056223693606657737725680779891869659583834370734489253831337998561059909439804562301554863782004340215158313470745184771254772248904678164314229556265169104163195346968787223815509118400599984538801963526045588508252416363355656452568955263559703631314370816859351905615662007533601517188377063565495803730212849624750620609741210693727069493686580128699090602738854847381822316081468422050482658250229132176078809898906880306741771802784370907119253190041829873186770271245814274907436874818966798708318152825299709298982641464188586597059205046354547631460933616315294619771371166326375154270591499741960536868622613792241888610392859541928271643390353011678341413624834968631365784741585413274775208586188303535865799851870810340557750728748661895694911746973284852099039759635393931707117194374136151486932464402532340196321099380423678895962096425370107145198464310877876396203224196191015560582524174621778728356244627101805211229464253398458432980833196255275619521687873221049018718362277540481362341588740338222783000292445720424011716648127599097408245187958594537155000289889818766539073657409998636369516723707096325422001210527314509030503833701714862588509370388562479140503857282347032098152122130673551396046005504326377863242767044718843492816253151024838539732547666413420570739507094466581419688108052535766281873551849290855000836268444616167919023843570910846420449503590027927100476521230365762134800321875333022318115512629181707089487907690462903960752709766346224554325424658946038032849205667368132328857418405261564878367000940082027678447174877551664906837573009903691368256000524605953152558587298449704954545827101351276038415942379972465161288675659993460775179495589799569029747960889075468863839479658785098256548473277623234919827635707804284319216883510657109359901713354805840832893420516297560323089205492627806540520669794196239557172301268726383943478446210220263454115509556443558242068772944454786261249868565213329310833128084003212174777311207959681817165129487014564526981985687392983748968577822503394301408065075238018877246968506714136048419110028765221993049319577870610615952459866986898371663424424568771169744648359209758683849506433814726404605803445058513603300302996008979729743840947664638857684508717443951018721956973465204795613937860797931023002188368439850525523257173752233502673073669015484854908895417284327172966219816784138270912523618552795142586575017594767832850427880762934194525022692986725754583895565195016998760339882206499998965765139631091977973261144109492795206477091540963134999797205337660913232630479858850225039117769458238557495005045471570253163156596516759015816211295074236495665314824370137811864875953634847240475220439443676135610244884520543607954190149550791385090944113821794466428229013441537800354026255390268681673898175540030454309406971804084339208697261912679899433249891142026446441591552205752695092045988299701342855691673979668013921946818977207269003028245387983912887696932215488598482631617271967081484430362207257502623105431891109686390978250707864736172188913313851415864198979130529580781718268059334186854491930591604197177507830215712737387913581798233919011691099460065167101507670999008239922685076013107790357226685807056447246970507084250010707042544016624594561119301386263810978883867397933980619450048974020160817669272473362776564805471748945115442437596865739903152997843993467418782227867491567068775611237145322229554017925761887320499650636315726270776393527857294710802875068726190772814276513395195747435001798750497902559839628244917047102573238220598670595929460354481684395897542503842701285108487318147935191261429358340364788891047291828177276124289978907716406089862313197342700206158605596578697842096212618685977463236454009698190899988719726835307476925517595712608936768291407196295602945606438210384748300757182597730540104045233286080177365442096429626310640332344947882057871315678163096348464284876489280852384274060996199267735569084439128003711324360847660760672357081255282789596943754848435056500363659393033877136498556080255944152614022389985363388045496978837217443433177277092870129838043546808293145779703923310821760533788270298730395852959659299564476107105260793014482686928926710885581861321028765412315139166632729454542092014270757423218310808252663705308156538329350138676576257475712126180141939218466005236925514508338177654988042834160200595851321429546680434898910499775538328837860951122714002441621241265548001159277754075229222093873617983997949478792154867122313700517056604546457700685592967179921307295029231243951596324565381123957773486096041938975884007363536948741800401466987256677976847597887584311324025176240274614637039464475918310336083943611889272143842339398891322303887584864800609201270854764956752202279160238411113910940950124636793602931986471943343640297047686808437892525147911278825308669216585688507536836265359582122666722701909588869229541800157324479500448853171394358919891026935875947443642690659634658789764281317075536409228873079696524135120859023877091936124428926279011626816995561935434410183921213296324612128408847302933400325446287455755664761561426284008680769335744835426238710182726039846447521808614222189344121414045572940413224100956867901589937710141126378036602397377190149832381068281453466484997481815272111224282908990866211688560105988860620155624698861551602962864421314239560914563185182182250374226436785042845889619222576567545950364534963557177519008207941591677196381516137196203075225906070944669243678666993174276464522714173279573989368412203979627545638121148464089753112884066912067582889855067601686537898476503478194916743153455308359989965911796713622852805868926333132498909951209146638697666203374512786153008069863081086163346036809530711905594575275203469865779489080035982682201472262517230352600651778896468871327385315739189098460884427542210727627952230143802065553205531309640448890896295135298502856291185250162000275083789995133833516947781035791790048620922962291331054127623187856853590362155185961680690454242272009303586153013483763311052784710016933463479230886761565489364543962850274147633317811385335720491638621956792142205813863089056558379552992631643850049029697888882009651275722270516995430087795318075529200046203417375225687477273435965068967411806485089432792635909847688145398228422556820953098365573757114891806451139679227083747637788252356067658307149735871277968371283117988571149918671948728797730365230550372545804010849751549608918873881700003561417740492341705079852747122639839150530756323004008425749350452131493128913195433476089228162914548028111539005360238785360398343533077871015429311928955593933244330717725918151568166271053025602863443398901039241210660987877439963390077133155295549960653147020456563849685394099700413578446316392156800677477450464228035176387818569169991206401382120068466899365520884283331858373197761993356247912712330612422056146593721433905833787555548821533261389154035859610272084536179963963078005286380903860463110275928779041605242065793104005377150230710337207308021028590919939012885471124069087406494503718605442174991366860407028173086840884633201508482692241376337530402711339812019288035205290990455466485559861090771427593684830566373260767572214974347370160812838145096351787156167012605890922682425339217759727175903271407507479290251292426057585432070164894918178469661046129503977156572184776546083995425074621379408992559216053301654597624383873762095370472315637652575787122619193983787627692862042652732638095769890113684923079877361049109512503603147250229051717218754133072514590170845867572087155143179587912357486074060672714737471415979213862887255680598406154491188481426774089570315976123723986599302145696130516693763625216617384943775064770930049863576712539613853710733451516273767964422776513684481630519324951606322006396085225690240650721643474554547542867941460937817059292511429773006883519367665998641539636040791980508758420201454621322749786844707481155108132082479787819712868267065372563346783697546303137945289027365627606365478498008656166639684438033329391439507528618587215513254641668254163858754797557546097161106880503169868034660788982561288133565028573046591725518105243817657461643013432040467216029619558762092587778561852767986538329207852367791831722800780309974958917072779037952681952272431108674456087360986929338736443016900101574189522539466070091644879520811599791799790976207855691142173134925168799520647019242124850366040846889747012609542620843927482617088770131669670200447933050737256892594667300749599900385020038351286521179344418876568275588112030425144344189081364203325316911572385457903849576322806029143746198877176853080122428384055272434331282530994822380579135766942473010973908660661656093201688074708138192596726364618834032224034502568029886711956012381495602446305837302373556681749711779299887466977783153196621799543891708445238568458026764901502076275022634666666894927580704488363522372899236571484908592922301553486179918394345861504431112301634528879105542377837291723597303373522121382237000441421774320018262290141629355682861641249594077501637526658455690798698015832986944065921968317197355076892682452756837389614629374278975713066979581137452791139954772843306754832162442527446552640486806701607612289341325421100556743415280111196846130322230764815778384292857657737481779779077319087944420110433134055148952053021904024674325283231184800014162652692162830825988457419627899125102239627604113104658293405099538239786642596037276658945157023308962416872377308901059169432268936632514246309116301324606288830410779410182372830203554781028273966328248358793682879645102513108020396740078604238917753932501565059816228539362957709989873606849543960256991859030586509745979347030508809465585804614857591794282538858818249985058684272901996156894627904659377474178808446386842279708179496290443800935629521979404111678377680663859394064572086614115401733014280546247076242912303876040732744972160599918109950163104253014395368693069091088077746208913763623334479774420485192168641421976905962187676409207445118530500347375211760695192622925261259345614309752280093999659353621030412063969731937336852844874791662717782073712831241951165163944969228162057838565412870171659843865057709780153312373041241854425515670249069181107583254248884742781307093806022881771273152252046087502333819541590160099397897334619340178969637361215073209751464294331222297881696238082246399508211965644172550560163466421848774333658970966073591442845532448333640886662003499179732780270531506602753153235911534559142854618424422730450451421081159935093917865331260051857975693536636629199713989745639571760461365399208907765265333156836443119313234079875237123372312625365669299536444941520104594153947230361937943935772968265910830069282432202474941511700547195386664884268228557464048554790266020062825149301509860268220308027031086761614831846569318148912391934734718288511623343739995109384986895385175624518960360315053336611308683600144693876600846322907493740392140183114328829136057379701925612634948662305573255721454102955931200821970008671187359589823086438901398174031172582701362833357658117959690172003815509815446248167654103472898412572469312082844389855933753142554139660693738829197784518606055967339971784489607606655614688011403696078039532641179828277272547774534533866954319967520051268214748972114802640153375564083906849393012912178961402858198825137915695232731168465284620986719435049322596046991540851134387781391156834426520753752771875228228317463989203178670914207474622364930978684244813216653403467634572748617886613327754248819088706082278814353676575640885509563914863771920570650494686791129460411694015137463329141137300064927525413935504990776171415233501382907910613207797741975644269903296841513150976208200011517038193789751882015139741174127742275546145547126843724307496422141055738428172346460343201989463695729614930020638816688916592127216241723622625845235719304431849310759454680788863333968182487826536971828361336716342715605150143011630961782796975225561426871038988660932744046626385098547904418739607114757528378838690278621646581371553621007936584357874586736624354168507015851057785523787479981782983685360941760648402020372995705793822231912395685368612010623077845610540352963179233151538706985296304854038990077246979193911352476296722661520214144339745298326909780431159956330946888835751462243456132380371539430530681174217156087951571607681760653337241459567483339863317579010278711018687818658496247493226343217604516320895411137642367904385379597982113034004727291619933089032529351957313931396564700989317099971226059070453276240129887867180486605254962138796453224700119787204321603798258064466805167906419158506422188980169263769328886398799035372243201592737414926581093276918055243518295897904665593468291237003725422745115250717880961289063409031943627925821032108022898171461361847268699495041779709927310601018442035071903010383980663345355122778161634491464329613695064431226219477152712427995226127265597919017657876888765300607196958615052250952155628538237355079006377840995356598675403483805242973033869926802115725608970049890152907844578124784416063413749888788180244287927206721634124375971590279325133906549494592995975693049199634651224677092909244400690757604735882158603505231453976840558255022619276874340438747743889939852166323324383788664489716676486849574980451394050320597163488567112197332914439140217942771097877473960579249502738613673385673295763929509309022323529073180695030702522034391865741352168172922760025672232979287968759056144329457365819069485787745915851582202703399482134298538569108139604473599674947543223296335890938707693869428352251708303377174134091365184821825329417268607202790919055063882531796300696966900722398130306045597688072615845058633656186422845972694712576870644800115229230160908242043299520770993643772782106029511026951350016550966157825628558624871265340378742485890858879969769561086164044290430073911557606650071411963403453273753876868320995005940928767386660412317740816950020087297481214437247699909021149572362156837888900202919947143320892902425305040540918845137840517703850499663343614689404336858662770442614699764194721300568523663429271951539978095569521941457447402311530065049168228545051015989243049688105328499200650976132926234639203481993948956218871577646714627603554548131040571581417005339052662308932955327976151528621744464837792548053001111526627310266213638595150949277997857781148208903313509410667349225994582463021315754218736982860499550746898177932915138522126003069213549009488130948551830151812832653484917016939021806728499309948918244721564370356230938513102093561118410904617613886525924355043049772344893919667175176826860113300452949701632093913863898550207055877922903365586779678362007412091138785388641629428074533928175634555784369241940965851332101537056395611215088104313668378471078085321082028214021074850371603580195088187906610226939127093236569962541638649602595902622593976979365868266275710249406030255709165219499240253618858172377835143453353766417408288876324349872791102188477354998085149208834215952047688784566627736400560560572365742748394874146119683922761118906398245590724658913873809526895026025439442405959614761456746922587730482293312015152526862440862096192798302975019939175760337345498277601682501947956640303303628915756379343446473671042269099739450673570457623513361601313254224791353129541568860087517381268581118692384710088636905492255477037126969463675260362618049439728848993225311122683301257872213728596873589997876533195160946002971054360101987128004541612668524062504138608319725675979009241753744500100529218948220389377221697294640282323711430735522555628428055544903094443198797562027743638325050794017662687924048729293003146954183981765705804539603113987224491737844886205411885201620268304518932404255259013082111559005116251559550418284431016769242913522752591265544077643590082811492605091124986712591130584813714942730395785607349633174803079517710181989629364450750558737463437852576385900138175381041758296385221993945602608918799747656514552479644435073898286978509234541623677348031418136410385616745517401001188371952624727596603376633739801376978557081748147116009925884245930052633622837713915047198026557928604218247669792338675788308651117103768178199003148095387788479961792930333579884005565444937222270841289735442719314499595879214235917739604518101072883339997489435588664426334886094717049364634920420382800093628368572539823058149567097345263696924338899202205603760625707229970027181750710432925905190909615746880941377493304110798406929248702541076539922615512365812600757877597103302961887089108153395497600947589503487960208023751095914893548858963996993354573876766472173318765572021932717382219360842635885769424256753191808939015465322501084531684957799701564251058616814395270374576154085446750962322803170619240387337235387930166594606098099902776573222385155506599886635191944042904971387868240499544588328399256000567104678208916526585313458414334427558133440520708091759901057067264886667909505125374054736084127752144995911599347329198413584194236212231458883712096119603250977516398216316615767849203310897050570344812168425697088345154346588658147877289952257882732982239160335653554840011297622993179239473515505437808982450221985072072308990178616674312950860871278417159728583190561695175701217791693247081896296352359761131140201994901702958361432441446573002213596867873341616721805933071052359534456214257079953691777776476088050640288848714264258951612854947436882373037131452824857137574412387535052696047980623549580950616404513107580015282453992914044826902981686426719052646215440060048044906262353598055677400589131685327669058989127356364731161660457576341755208891289423560376493997076555414391489072934014924310873690374990241274914830907300021691044158147979993678502320224921470258061060856530802672869693830664690311614810782337314200248270575890990087841043423209425321356943397440358431722138267112206215507627473039759439512413147851019920636069687649763126367810557930191188711073878470444509821246413340743146458516545707773976731748813721461916305628889490061036165123572778917540052540062452444187311180896929169687253289424158081303809803292845826488226379810204510527349867522354127488098440235258337387176366054614548231458397320107085234940100346610239080101137729857344739011970595556650483006736762272188433308205704805411370238935367313964789620753114832966724211724439443323452789860166844257725676829896402373061309989927850713382833744287219123127203007560903507759931626651230295807673571596973988190378659882441272719051234461833600835201175798126842663347740403147001741072160122171300617952945164723242723136607814037030597123125735254269175147303264549446634937928191287253635004192581445756525614363009163647457380085092644684108248346219445287685370921765542057885485459837618845719430482307817332301336703385530250505925814218015620012253440390118602297407650267265772547178146144393877169863638018642719270722720396914532391726775321074170097411224787415110653422489375833706264280343295581700023364532947991159166054821105960284668948956706114780036582142400009075050931762219036750495278321321456816045619771757074978584669548626759665828479559471424311357098773179421471899458042736152070702437872520022821434085678461810161752593561775606848832945474147652929019157576151159543789530493239060401730953517314820623689466857492889254325244712971546190230867616392783858564020332927540187217328631404613630141789173239864094774654835610276880917455679355968757325671315956734226625208922717918467540886778912653490096164878501969947098423004851441247916287227875160253662622882073161607909752450041449897693913193533366930103429696726801127669801962368849330478589692507817301260968676243014935147919887183173937338193497781945990342853167605861124892374789269557680125108944109881832589683475293838096693191436702289336512722347907552072239110424659352110753130905221989010826474453757837945696153323437569343117278205350876570095422422314912189582960406216746426315111483367418451835818279232696555438182501034561908084758084024472295210008227325356365547652333858605072618118069526243533981513929348631090248995572319556953064965833022859129237069272070096719856337701539931228846426636125521966672045005833440443627878214213193734858350182178547017781483796148087015333833516409019182919487152661869463210155092915788189748094221429856333550931577312116389481824626186881242661834661235238536029090428519842058487011386160922363852892754102563360221479347035563090017759260656836665557662667333708109723493035059410811275312440538616123425168115718849381070365132520327169439899981886779968207111412946967300329538006225538654471054796861887561179222174351547100925065924640837036807380200182982391843177684048183238634888618482358901398086242894774520593154227974860455924971161354290642194194426829512479094846077851035955799211484625163008106894090267488545870878650576754371079361460759528325215146055335661362214644577363309488302186633729693985210183058548886082581832084884329077454798938514023404165713040172859572766618206425241856461686163926688716946482909902815326746828943554893490974866000938095250129943955814505512509350275399214907849686624125109383730841776877381138553335666675987270248205125163924037776974495311063481734235495368644891141551353600428083783834660277920721685707857352920623841399669292872989991572068772567890157087197662374073011816445054582137044077476023788115799644518069595856900404790122432544090440894781842910750661590879736877319647781071742335699103858098475824760033045925551982590037197168849939547632922326040796796035517721274345796109372596643419083728773107028983524147280484988974947936008831051026894038669143093643003013473213209779256607940547111593676085633556062617378823352222661618081982644914402849952780785304627606475937038994213945786669280269804240700984864767748335734853019130813891566049470136474170234977207924336173294238701751958147110141582490251114303709349713582943427826062709333978010330983913125747732188070648210975683966239882846608814994490770058382741150048388581217942037616980619019961554968916425284873955081059288092763084552606134028727683431831048218103369064817972150517506884953917859674722525832039163806164401188285729274463897359925842187966567072628375473157227461774073530966701328885291452615615833265029827450303421619289820556520667157503786634903998565695600438679664791887898896356638171109144128331374559149043919019901779483080017656711163275730487026509267401029658832509871673281603755320822361202365711856020310978029440634220476711308797839055703523580501886764326970621531920340396333141763118937307397009864855479192807673068380228653824045049112139785307910382492120680825403910206641319348015863975542987259398177337103528649714697203924585282258079334252046637348896908609669053156674378287027596381981860310167386402113512469257827804974284365671607049270397175844317411585012482713453813407924732065649255630609114924712463018152653301842867258365591488998398902448712568109523098827009033457732327218592271041174240706866696144336094820946514119506858890864110294635623057635465719196415077211599042300134503843777270035303556596888560986388715563287040646722552235786087088571698109546418930828602031454505495867266657159724269681828327907373665084321967417100799854311581989772483440063752219232947122168538253262130703571440994803685971918315452362855361230820178894904119664480283250954562513155017806887954629927530892948446308668393818791765284530767757694066295356257262559224414228842359312000617160542186156629371727623834717582009088609576454679539623948207552490931487823910748787120443509963616755783944177672331591631037568794484148317843758782158840585598787706924157969449798888604298355765200330461799947945314840643602230248012387461994551242779180335295378281549117926347668873516705851821852409480651519656920163290499660086377179344789511120865266621896060596267924677200943105174439990447154268046937271107018436663920816368991658023702330020605603987507163913182290822107762073791970078116178632267741600236058947871912944957534716981603025645463415642645814161035949636997977065068926847347171932849639331738319634642191376883500991832856488316931164795328557251595610572403129047499888068690770262512317721960407609461586764084988901392013385208193321261754207212427819296743321255995794516964557320439942290463531711144303531042025869351651079711156823181518377754516932076075633642385691739633742093868616968454559080988928719466811439451731745456043877658422669367782816908897743380588824579211210731590754754822295173414137778634598101388047937327863642654147104712256275260568434871044755385847693610414242475263007509242108664164108881204862665416418995611716838068515245370574868306176226956753459594169848646685010910444780349935367240288461449871608314790586391207575961033296373940616050851914877975891928849288197265743182834907133783716034468754216588798262674686967485016255127855623193625503677331967719490449278940872621132886146118569670858660421684840180393900858593662893831139365008773171090122976255267988045986073297524420117614516917259995883665057127292318468489806371930248712761590964910612146155977899762654972084091791506384754778599784336946135415667251802193025214100856766399729221268249750039989618590285222656359249006485063930689512161700244266109258593599326359411235170924094600020880499249958180634574869415469558145555125244836103232704511716098586036770707385456758779379507765082639646336519932780619241324128885407199695971371850252296427365363443521856478621568438902326254116039918189173346089218774548798408339623768924420403287401171744679178827560878941429633143628278681357877670788552532909348140426608143052476144959450397894955902457513405047320533011269788924898568025630487423874187738975057827662680495577305905892710841748369980531035263596804812221442372151512423715631425700071706126689478200896627427154669310898042947201647168440649683943820054777891936728776936341926455743618087600304139007931572415714972979683180847289263250415799391315184485943066478098919182953001207368633319017506815065179809826642518145821306332814955828547435635547797372001676803799931191865357876807936995772016337865890130649711215299550575665820707060771752486131019031136761647471738513136504193105529245457599462599593099897438978698521578060615855753818038910755290412351774878600291390710192604032126818117558796060082723999794424877371752719922544797402760790582949170266104201122179228993034695284404162200037205641960469810986714339071197096695863452710952796044329769778346389347775303265559009907167793157569100265618476495036240088275400634716476547426613859216023085108762272224727658628503923711057534878953705926725554916291114332589892487815058511696431631237897427316703974708219844527318719975164976977109544242464924695238150354358376071399312517246905749607202834463083455954936178813216560992807116247105761630743704713311526811978818188040081449476641019204715369564585319350557438651247538308395138914581436027795634299303918378154885483737973932145566957946382825268777519562782800263002447875703393649176576298260965925615522639422378093030361036009036694085798288563339954410019701985121302415361973658303627784412600661281477203705345724762079058519736792678993365293939278807781474647600855810488011005520877671645611064230725971178030944295660639611424173955010837131160322922862397389297159151494165132683507706114188940218073063934254931159413638593175453591497555473927100072776656437797611936718757304322741945645710567092979848618318064581173365074739171273957006120531678976931777071804682376962311587571642504385978141561178944464507343280971121672442500482248342714750151328233751073796132227949166423990527932572753357002058125091708957009868352918582462600587671399283279029550209580893258728144966921167341535604106230235479692548567896141877012196244808712321697047618641902729453805867327174891012370359854473388297536470660058438831918979147134580509723540568500241829883116459065617099082535446987709667717579506675795254026347968233690284402971296449126623426517874487601519017077009906360890063381523650326897611026155924203129293094655596807446358939865410002001226739709994752495156454017096319230919631734172745580528601586301961122173919243916708447957098255931055344312148803957995040764372706898654580084275177688379629055852455308989780860639697431188037614477077926432750848027869507202709179519095111316587310906968499411714833163597703008605022785207423151170420899880502347181662972231219466544787752839659682894827200378106208955608980036419681296920494533441481500699356156192828132530142987372084902619925963845695432330834247714806289705908050877160636161395438238064577696585124959551419493236725677689396524185028096089813603212292624766013957936501326010864149395147404783603419028684911751902931473325444026027333525296653974391426633041136007807146422136103601029644656058833213102781959063022568036543873182440194087566286022376497591704967829868169646360860421852475956469105521179773137061739867277935101539734639635504427496170791966285224210465295367697010080670431554483641752188046564078289407962458957189921569050536288942724572464291042159382096898897747074820499016012723338692728121854891892881928590083236253310811219211184629857117085859339556680771423505022827458629071007050262653847602066385273309455331034338274650880230253276675055457672291142986316327967627485480190668353562672436803072174108877643242472385484066959625671705819239296372766431598113750493120655814212885287914740659718522026392752443897492899326578238805582257340262487003769118573607762487936203571346529261798519861521877141752965397534167057460035665097078080779630210748223770877877342236083590328418231917193448603198772540835994000821910370891880996712170033364484504001931868986906062909323991982469255700230432814196925958698361652399862685357090621835378338007521573670621788812712012026772567754587883390997117374779105896028857315034942554290035584773198147774321904968819483314332987970401099364324815839181691427769670073965129337402427425151996249573318468406416654913976501542266978512727072256311045750181679544147287132349691683037466845126442617039236788275844340153726646321540300290415160763106473528435408103002887796159220712974020698422226192182109765941173567958204605233581124032411116297385274189628388879205318402087626321157657046871743769152520871868426479408593263975935282615665431432542964338045328570954202448723327129432794010099829420696302254193128249647462595944397649942515261755256580182155805634076812025537184084457833720870056387775071438144918838404972081196139271124144777420874283302859435263125762648062212628734636162995902273047213162991244216659244754153793002141727766510220831414224682213359230897250948358994634353099868612586590149901699351009565395149506380757219704510907849478598769308257935387431966820389820190510337654944877025375973771391892446828394360533880759647395815533246484341723628003072811173453851451365252746138924009491088490141766354634798782003920688521178283967197168582425971196987952761203516958098903227759595462946759573202981519280433736102578095264066914553466674253485613500873748280011290110275153307665576046433899222667279669771404718392095890423002162141604381016158113972454795304369012989531702785376774609194756149488320423186530092111910067475857103471215783969636172369850031021814964385163409074140780663804793171603943862150454518069544107095976804856467734507147938791155938200884945787416464225387784629974432129023580883349839495668765308959253204489019693146363725166917314290386624215744769646698114332880602101133775332997166621722354907555717115246907175202482458357093452490412399620315323479981561642316696586034603529773664471232711687871582736460190041384995191014533375006452154861996023420401147930557167336933459553676892377600252522696168632284579632606358717424242467741364016651335003330629553885877967330942558293690146525712210075957262342233030229933736005831163100629855110825549037319203765447580035078448349040335633771208805620132318707424930867941061543994963474802994352277205282008220131641194312496017446020547162177313232682554285800357444319994741402135921535316922847346213687057535897500220524828643049282712190338828257678089252865747521170579641206046027760958007219478030177446462662977509862904790853941390201348105186031115913029949995354562963068340158687552903321151844998874418238200755425804075961101045914822683173667315852913866216079296966894577278973888235624906004553589885642809296767473427876308699010150047479110931168441088443380402037893836746619463555793000518411888502528431011213290147709049439256113993159226449516416707341092525899078148718451700236101725472605152353683918957414430373261002648652231342027364154855891914218899577597159576288335269046215613803342893087953191278551873052354482144508653130461640509728892177493853228266406688555135529748616284104363417931475735724909139974140531096277922552925819228010007100661126710266057284194329280099055747100598614741083331700131989031963925045678445895614264735735422010593041222589389608270202372021063841305732997544628569803662360169475453733880897183671445621915238004214986728758699264735984079028968038822282747502150834500881151430342691167104418587056036475385431314232092811541002069036831948401054189503489732866455598218335393917247794795111179309136549476197488482612841578591124300654833281141245933753742538771870595920113584461269217364845551770957766770222174123965206592431474730048424620217292565075142171635515366240319318275014848307335576867757753544511895493577019119198655411986403815702153383529757856453453431603045056124218062927908686575731892863932434074108391926257412260074839754132509785838540460669539485151527398095249118761244731084790200677285482125137083252798033983825045307725194489815257182264687482877926542652184879536936649721083045691111506771591259125796366457276311251399302911102487829007961968301995335233787143043582623355224123136221038301737730524931938798146289363643753788216842966864010537044765589160878509205444589224986873332673111215989125667959535768178342443275658716046161418403745335885825575514833514701909401482152595578368208776857664803498795543343667453754637361387952396394664352111477057181656839760472353793675139720335717559216116719265355483537781301647315183949367945354318360761757751208706935434791601979762441605385894680994535933737325943158994016461440159599753094325186673717198393540201790272098108325870191179844761666075417873984574786833350732869491410842935231535066933617100050765273733888196892675832789190222396811716396260494437034053596003621620057129203996399473069668791121645055744747034786937097242715125034267518406408395472536010094684588064300473302605444821663004737795046464139034269491035963759047581337867855257989887381893629254868330951418815761691724289991185013194951576019237214138582110865592506589115273196788086250425063502857986905313027147879919494668758200055059836024914741595455855136309939407446732330124599306419472119669734344097241031356874392971763427239288629340417987789279224933964155375705189051989790168988021897172028608956346654809001204199541095752515197354328023868265190949080604729835881343735640443979263477209139860748883663071293385682728153764553424369200619995776141299680767786784961018033476903863383846791369132405412355450817651444420689557528170904826437291622029048052651676982837197999031097814466699550647540244665824444502982125571943711882360049562366088239921826071726023050899349924145119803414744232193259930628773041511536044667464685453566448913661070487177705488938347587114478041711120882954183034217674438999379562897733159993043711745074255644128165257446279874462863989885296047200693967133534113961804023417971132973367399222436705160192192341641357243249713883113438651605184817587219500087244223158096749818729112181862193113606876405939546520185696046720592084997165974015260671920400998726569783196446174293279892566759766397784418999353883304198671801105663348004800451957854351536358631524493273905968730874599883797310225869685303953329400220490540141983541915891088561507223843191995688289730353486146222717657626560051559521092868436333792006030493845201478404510400069933020204480365758817178466283126648453061018612544150604627444920275866715650837228418503939520050983102294503734386381026729261042838058437862543418066978093587246793967483771725898287591530097316052245112662399986407446867788770567017924598907703235813704585125217137016691255133017661835409053830827486752139657299169806226455595759500566811046939006189791339339998558398573332607108855405367617154494981338399008932370650608554224685391416694438412296490840910595190032664671349536043847503832145595760755868838154594678089884034300751735083841066067562323939066451091564274834789914257378455392344341642177635834981698664866966688221744082386525549269203703738611262917718267737227494278288078894743517432203844906603746323573836891241325423465345571318163009047934675805782372509028208637528303887240045947479541000002015100715235435248986198181469518146345433339965976176013535715644658710136592938680721572007005132301675300874618048551764997059385281251180758561971963839403882449757882888098615345195052030540176490102202863898943880004581582457545342700828313431629162715532860433255958228684632944460095644880363534825515282661675242534172139340962560635515195583511852483199717378929199894915191372266712169114789892436281068906545278796116988715450866219070079857898698666790937153217420858221798713857346641145592612738465594751693223128509844721816541167650217504179964997631379677779369343564306086099252936004743248121562661692817033554804067645581929051439753148333437638869933365473057442955470266497136664108164058718431013472070158375541448604221665475967024264397251356211629793149658657170765392445166942094181863445507832363996268500564995470604492006938472360077556708307386501341275849179585462306527291541382664208276022042203189105033130600304762781720476015763387346258099756761128923138779509429381696453002691166845132556480767326959267402236073963083421001955527735689847727461713726104242767377251275445947939335541945560489625616752055641779142745930886943554743575547115224775414013355447878827629543501721765943534810347285446049008921960490823601488464079668069344016974913589101341864669109101540587170569377130374757542399299725119122934968410864269203195621580471035442068721072863980282701096507217512076023647272785353284576229691432996539946528164254278301021572689270121203391338837865739238851531346013691062482450850804711371668020664526977899544718273648491068142534599206922989668604403959593480837424464644994499003280057153880902443648153097608160843989308522016905157177677945485505159896954758246270258942333800386591461701012007374714332205451073351596474600021285994883054006152302050038697959049846352725437258721405530494215108692241828670211607766975950160195995980776134883666828775368988301553901149301552309000430007514094889941245109773506125139574387368883635232570024510756861341263783199777890208193873579120259930663661673729346509063928735297620758446865680354022719290676665948089479683124278147137507127042431145801194281583192930355436622998006907096107008057170013050207845518106832072662122349692016604288288881675555119947415334025237513097438847468479376333127214540081031129891490750325589461090119025787565939567551474891058868072433769256460210127982058352031531867125103189223038269856515089188070260563828166742306194440114877672554393624917825634247359208977354926524523770000698732851143732831463240561019200985107094261940367185528073270299210345872465687391731460946272662400257840675798397180429093231915095018837750459762781996514379223050263043174533067939461947162687858766419512378946224280795472681614727341683234841300399850606208247588968306233449531349441307351715151416143445797329596032820998302346614554116313580756235275888538005465167946987010660035046407811534484845244778046160281775717009653793434411975254118724952000115584209126164954744114058923392852558463791931806061420750122072711358456052324003630284124200531731887177531491478978195687256644221949745196163755676257210705845557773939791694072225556020596431327175716096034232644879655695700614146281134273249889793336948284290582466441782829901846944533417842866376784001963459879472734571840577273431857553089486351037818389199345903653567980508456417670015679635120918467310289010341611982376623689932765232380667968642494964912822533858888877050552142588529004725137906586437625427175588334928528001372422394802762222272413448641403514180293457780287585746247097758916616269333636936851876727232010173288770747054450610324734116156727762872652657151278015486030695959200585794627627336624635096494212583619408249714274733128723718207373308711982178675891047669931411717439363087287129532700438628146297711673971677823574474448910965848273460981149738990473143989538187556990802747567200062862577374962883489945588436414063843415709114556645131814725002857322387031217839797480456060507876503831225540256115431071371375615725499524550526402569028342319773794649447172216832734301516856642174122946700513817918409089569590400339791785995892453750409388635066666800362253233210092783639867870489581942989445915341456146456249278460565288777554247283963662678994628943105689520088577491867104177817565089890641671182502767688458766060776182092485806916945184433667965715297620848566437781356067752933663550435139403246661396773431538705137420985339510170291216364796335105105095361875889007350721468853899622462809395835713044903084394885853063597504390622783421079336519479289349155960594406603835863324867536545248412182692810226925146757702361657563576173004552823726532252965133214281692999636953207094940373985094010352102810582073132014943435037995342909874881222642649327820539558392047129611115545394599797152902491102386703658310866253863642368361712769361715241723963864545495245485326959577687215371752891177308955347692137875660092903039780025672986335470297135678381110376481756289271684997298318130450044615370533995842782522103043398635008210401107609977890433185517450613978193239656589699657864876655806917872520616841344347847966791296728761354493094766290341160883060331230655406678456055636427267212283662625604312150529782243514371930537736248658995465853408861497946505119221595498649472231000463152201257142202161792259890425158766226051602986187414610568533068349708665347026324868844187825566740554260015022796311382450438600471456906055833643503315792881735716559118093821443001037384447545715772032863389972123981734550944084114599323538327440170143120116776659924329915992084431458990053540943651761510350557128941955818506624027807029914205876640209548209361161619207165265632547693518104750372115764893875759669460777058322759514933655449770621884664423716119504335317540286834529458913807984772367249535003246386750582976554225503314485833769597067227609665308244396627130577787158318736091346490421010209335195714095830065338709861741249980715079660358307283796324022453865935459771183255188997800335996333516713810992179400674206869403855875569843786555049822975212750902175943622683861737036816271694122618201617854583413603455043082660919193257702467584313473210625075633866781701071100896790619332140738018945885384001288930173341947130913397480984441754546122119323985206313285010998257831090948076723067477025644344766810929488904907701989135984838778075626282692049036740077301357640919309210369373212530715146789544733650564626007762785890405152823904688811955259644497591117865574787553435035358997474489883894779494830348405517917691563414928046423546194609944357899920868525086128231710479300188107937562329640716902986331228090143102347642172265477891664339722533339970811832263014743880668256890827290718635576359673274424361822251078726138257274115975478620941453248757273663098945278474029020319202815365368055446521625239965845288740510891244659775759033905899244190119068010384080257310532726706958841946750547881587930259856033343415464310652580512053517692201833297487247854132283418740586116795556700878808714616873860583078295754820993620494017813681605903201489815356215540590475099852397476143867683079266439341242434108448022153254346790114303300410084604218126188931874012424181371911127605190596416363795539241528051822405260493287145471437222496167145763307234575800956136789126908609873852001190082976074031294722248076124086275224468071258639888552424822136823217732707979275685759040399533996881902083718639255974793941574268391735028654007612838332395445261818741785623557073876582046145704214395216879631356987295090047337947540922431096940026130460593769721096387870225611921503341433589780720346335545604603681306398028209341938621565875397883282644045896015538779993622118807978997847085007253499670756425725167056259393016585939776731817545161153271997396695860310820881480560257661440005149716956913999226796215844437378223015310933481432892144210926843739676782713208387028697019651025032486811662100419817773212782434631861458519468482584472031202244194876660093878758903391962686559255912070278850077410646397899524204153975851279183225109677866180013204751716420180263605346357765557545398008886760276945546193531734363666376178296215299244596488657011549901094580997225176843022246194300673942450651090909561770880186281314696727309214059129570597914780390505750609948735893518084597747775584402729346167185367621581983518951140168848820977888785385185969411885155798047569777476742567016728932905861013129598609304584119794907547500794379728636776828354342216335351144996223338245832688108616395626366312856630265877332012257464051240089794382632663190959260694996297993114111127060796693782738372785868271438646350325161451305892076902334035379420060942320362562182952741737184459124389101297703893062994789468068787598695529939376757317274478341410609192782715032979418527302857523615186761178831404180723392925744308954770898626431269153428102892494239495293443525801053047606208859667533621380895911018542669110214493274285492333988297186116757865981712476920435597516129390494963508253562141339919800998496276093117990477193420475861847350856886776664132648349338606788981194122023865947942810637432610353994576810737011231619244784583539121082751719670431963487112984811056353615991720021618781504000475907161971910029397519175050795061692490921038196930044043201886360111644444362811797369423158971469634082930589043802134292178999672974119919301742156258507345074886896474534998568999717099137868960791411758279708773909334148300189290378907116788239184907394787085084109570529418806334955810574120483842620020675469369582988907234201924013696857372224063494515388664968020191012233709323743066848462598050926533376792838352039793345374691016560657320256124907672754743218497344230643996202124608660797834951648539092390211842516364418425327734184679192604464960895572727917538065999449491442995168220582861383410849680597475035931671586410635547983036202906642190343038257019927853137612144313264674072618635643327124964242044330213871844507567027352184596007154398775648395569596129772198035139239615180155261521684314237969031517171324977006022588881745789529436886688352464808629285742478255270477804562916779226565043570336307893704805803966005011508631357842642616446644083561053502361691991245964873184003003610309509627079673456836847536372134294818034933660573103413833180012712589119049756415915564099908982014146513243299013353483268077832204029679090585683676828749211966913962903961111609564814055014576931187707062194480918266133570625083905106614435472944750079983430881058668290251837695031226462105042182755052593701435025930679203808002639726649999088712996238836743018416665431387462465163120689830825199736346806673808844139547770280651369724326197553603560298568679105202835925869380709357579262792987034789598164545284646756609162096369799041730749173768814215675475490060052502225767253052674789651538836687134178152100925328816704685246587851273430283594037326195394485964757630143839820709381167547758702313093733234795519848690479769445147499806585821910060577752921266670909017069986515026084628898136588988463737999227997505209084538694177670932413395470250789387357367926770066248075440383043399591968469612371772096030844590921038266484573981803064032030744153771969792062145329096002066758954413117847837900779475997774900110711149662326974569457286074691696074993731886632844024656419426296685595015285694005094380352614127058190342962742360455294321854837212506659661109898690955803931113934195277705779602030372744610543096992707393449948977877333238800099814242347549328242516497415159312298349460689508740775511060861108939879946862281237874080969191958366080608334346751156448740261516922961685072150263426422042555674693102151842869689710375021390885820195766342150780920486727420598668366160666549763908210101749778188118777223405430159056132968697582625505118801113741004073779414694145947039390876280560390040136860037084586388193630952584890113535962238416994109402262565201444703779421071586450592637159052010372546143653866384188651855983813176895068571983055382220838134718751476213543059080041638729736507941647011422414446589169671059138344500151993162326786607589433692099796970515095070748139255406824302183468749930664836462351803729478243092168608117967253150601460963625492893723520879527477980925261829690439366410181116466915541479428318114124218916966939451059457257604334915460484850031645606408529337831607786513893915731836156477158285969854696097099615546293357072347310844633046460816722585264710669069808874494308106899926705658832063300462437389484301322478121099737974797856755421548023420756509693551243585744254527162659266281596241335205043050217284492834916023155007645431851514597983786070370492173837486021290062616318741157238487445816839369284861177528306494895979136179091267952988325907339704991424085694000982417832011983903906237552860882703550077425851842595874389644689185622140983176546512381861740566932579856322027093517874198496879252619214614570318029215902598269091715350888749068445172075945979924601289927859878169442867680534312372013343815175901981166316592470859745574051077744512561913293707294226206521472480369929185968787401289479087822090194896238262012642953662976108078641740136575210856377480566518363570057446138594112453375859040540212696559096310227402860417474843656669593764748773249516446972390891112522356290693555971441007396711116780407531737867815188466433774186289300849548319187042549593143705251378232239928120122776369257665977546064911006096838121364209777055444879986722241247613617312096434342730963527371682000739662547433480568740262611671623684918158426210293530931898177486897121339374313921810271577782765192036410149919258875210144610701561514625704824305708146229578772591708767039723050942119708875702280977909604368143155912354173262436930516346950552425749285879494410919007270980254654131967302789568582398221209881220725038164062437431254461603694684380454296839983378041437738887432351839494221363279706901660399373466685191382482232475675256782888190761774911519432658688943522102891025169328515018203786872543625000246755145667375052144025766024386871945515167827585255935503033244653326764614780013240402106550542796503381888053621164858742881417009297930893706561223908721287521837494688731528006462005344715586904857588469840911465141296042906961864389486945526281802155597661400432328596165917572658039159013847664303984600788389217328360554097436124437756719064126694713581487111218342639093002431940474842671596390951065599172738638198772430896869155231811342614148821099933159781969023941977766787669547878256790214383505951278666923666409318090012761275883806972894985359898011161727782469107347722354427013290153377227609926274260053664381056338115126710527948547197280690618754543631039867099917196135655969043439383775932593602440191219752762694628498043946866117805052384368401144952678514906425345712726268847391857581473598960815128321818004766954298543090905494011560296866140774606596178760636974535867535928910582413050318052273123844974741375179507046950616219989511818886670015674839244853904236433776976687607879243706891353177853290621117423503542520010509323632766890454738954500689565567544954146978189495623268803660861445902995559718912754889716731244154151011463441189385627232870619035351763819343120464174325249849132484775564700878375722641512675377509076696885012070058019071015013019624718578629554755372012910713611727339276478937804074168770725467008540084133296520878341955280444936338303323272776864806269224334855236853431780854684349365439645406531519913916594359341975217388124115074129123061507004556741653778846704453424022229852086844376195382746593481204437305560122651227686728632912358906712372370613837199752422140584111492701764707674375513614630000679694229422468489583226182183621851367150833344571862807635691512051443559448992677697004138829517553637472908415194483867984728576019038410752273442001723953054152934524534905760208469987650776169400387959295510220942090173007933009925921247764014641377477564474407409910653610712225318669483754908819463292484604346610303980476608071533028814463336335120694756514537667915676362587040128168072837053878252155572010497724993186507820613883832984088555296959277394247560674667704986571988820908143441086365465468007913340360788705874788071816075033848833650002184662091432518872621055474457465949759686514508499700919869709043315194606703837917959994801855889060324336989755312091630873873658136819445694672234936475045403474627037902981812673847140649626460470292109583675207694794062641674378829366583130582262667167119900240697905176692355674779719852854745547314895719192718270701553425852505999788014694409692503240640085654203146762211733034011551308385357664219990378147962573411502568241183089394784839334440176048676175153524892429118380372813083300512132351692235768285029344285044972038641178928384105528237937075444499351781962296395682746268601271318032332792628475812524929585905882157507361268145247110200594815495845773644589783741158439279963428293750417049369687465743562649195979865446998458745559836331446094195683585089915776977193022012928835666045888855225838787908127520507108773439443715369160354585461543764069132267765017374461874016282993709468485334280572806744419886660845567477487114227561723984763740007733663359492353342519394049209694817216171340612259762207333273476967267039367071511634918703239767888397425721502008874143392480723698428275877319384384478945384587323072572140091690426205382287986254436774887778574329722411912208574846621862625299922850120388550471842357079489525351184346708837918994134581649052220228964176803381896400980160662412163578221580719675302148212061120198390934880071314293685462328218536685489911281550783173765621603067143910808866129934166325348884253727600034781853535997318881839767527128247556621162391468023474028197539428761646329640086275466836365022070679266944629224333925701741549453298867011050641274070848572624613430852199926671791485416812773702289292155487000986172677107474610370778416489627677276477962610971065960595661633271365450064282610630412446627847323961947347968878363413930615187712522474244982257876478875006007267697968514946199893247836414070498185591781591711267789941549451251873797672034547648716994370122667195486695628373046930628505535664996962936011731786155484134348987636858335459980499200063455416286680531725012370961372321069570247146281418691918936960260761005514552932099114276575113049216854612296792569565767607783573056948576027566395574771553828749588455748944870293116009380708590239464073407521390350069517481261630648391282053145563195331022159483522861729254390749997959297614872193718077918152026178393754480795779255270733399525726975027084597873884913075260376964224141291522614968821109710243234146898377172328742051092916228039164483691492842080605992118485588772398889547435493884401222972641366180806100708086963280474411886640484549212828625872218741529720721885003518570816245950368473438985095166223381080189080104199379768949588616354213474701357740894764093472571334875339157467286038591914110528340246566355625323892027179851162297015911461843370487016497480693801364228444304050612664452868987093451437470378629857265635558088022367575492208142667374508954432778002778355067424929618842251827695936649506773845230013974697698069753918780127029784888941355144165350629259642907865528380203424741699652296835545085703259004174056625509899239937753445149405585351277171955408917630433670029084564552926772137431206550300537154599598659348692266708074712742734527549453056675684584078107174513728243390769141646493926360223316820936882060357261186639704106671178775860724813718417602539104089856272445981771196418903096578314189631368349183801691734188563206201295099831472657281044113596953881586328401830357624969796681078335436955811450318983050687769473332501572560146108064100206101301709041123065439990461415062812124451691863686290241806793792980614875296237846088774624538188012608740661081988800323661134891497762165852650957035271162015566711725159961998333077552904132442717292953157844668399061074218324722428098891300379872980559429443047775255988245737470140947040578764312928929549151104416610374309808631077526963226207362457960840215722844337352070896702753655654455219590181680004503471007220420313388247525662304738253022759561961738216923222786649581590405304240534720120708057822957000923817324704233068609452283622484585144745630873011594818088474356451912087033456186848163521466773944576992690527044727311412070627666675643506714480779311106053015877164781627111294793798855810222005116109029293088525282344117371890895291680611822484866547673751131104545214275749389109737854399489652839757437180131454346221956582274486342278755890532343187440965940479898374565498398394942750969522732985596813269023985339545288111971350977032131169907895568749448860072121441273900307490513830848742321215788320549726374362986266029008726289812440864175536337042852960089725716759281812870299669982317335864080713506023274972412308053349065555707354660925055843617372094747723526550016149273921920178193197255662626461088938858487468525709944070278735355147248705999677028609222866323412399246525832549433997554859922421684042118307259387413650735397401814367243520289687065632727677637676653340302417361871599380112358928828245910855575206178114694337865450835815474798157396159672817326624504931258947468754092231054821429353155634718851149993187499791634890765822670581358402974440258479209595904425876360231221639057747025375878616002753404784562023038880289201498088016236189984378940754525261437160655850121985388225719816660306085253571489049919777049427912162084495876733646110258671219571725725723223877462158905380584939806977501529270701407225254584595865218278852783009957019404911625436232399857456521478567821072477336451763699590697530826007668046037478685655871733018123180970390393763811810244862666586843230101784132545796353747971460917190040117472081746983459349475914879651549687689146941553460986179439473590227326571011194478188007844556896297258662393579469951401046843448829084044663575480789892587263529686102612778634548360053087815452388763629332468896694211646367106956170143851055537572026499877672612334281500960447169101781295289384325690475810350126952117408577907628214161202733359997569050196520774264648720645005354860395877849781384726797927359996394049748429392396600941008411881689219049036328274319613926726240647020172176440270313607345599845622510383938177202806183659737486503909129719068338116050853565181391205960066130515930430562559442657943584788227797156272121003089153372991028338278397326859843571969295058301245148095531843961954030390835968095638054532406765091103982988010526646161355642455050138614468931883690170673064313705284299444255225471754320810572176446515033230937877992781056632205697274815184144002859415809611468852916953017004375551189942339977885778836799194744445079432149528402747349010995664386837161650472029802902374970189251796912183214746638841240426165220068048879017625729769328694146522493232304735279616638096297276932626137980492229865266353413344476801197251513739950081944631298193605084220978365698682407907788978947757916160965692234534988463264116866240238691183189035701574375402215949231074452663325217631870441429478192721683472818471456643750948441711645877374973733839169845755150703212543780521074592590569630563143679001606672968827171785664748999700603708025757783436479720486936200153089054585019618974308472206516138441731864200011254951356600115001100208675098886863649244605086884964637248059436658685265017464434632159544994861349162996758100944542749422067507943335450464027146706473318731238810510775122630247591971282684137306988334227311259280803971251556596965550883209488000746476325925213720789410762315463268642128674256726150462360967343509941945665559964113978358416506688797489033774310205106033761795497062068603689027408338560510375388025711833286930103546190340663866421977043615632833326673086434951965462927329968532083241614035671126767170072791523282959362283801937977412687136615251307343431175851739043403557924303301258283144966478606286875736188044166295976650497393870978568248198893230237433633007386874497020037656564997885215357724252996521244016981651752556485667989251640643354201984471335406559037101512638954032796576397862870668099743722074474200432462404201927857820458992351112941615092144252709165230378187141843384815737150351035285418256205257764031626062339908122094847455142404944814359974513600981085998447239841649053797323937988470363127085473889035098870445347595331174900614043019967114585681891858620684097018953537513073703018154118710404891147570943729624875717368828299479734532108012333808281688130044516222015783730733907876906306075451309811779597363613871474208501126114375427240756160360149415508909403681018150986654937085450110771041899399967164576895436753310559706502571207584400754851683561134122107624898063734716860088554203761854643511065062578891681422093190315023933189340750169076357763108267595465598490504045902967059821210210954533903634651799827725502236933101255529225019702466394377464252995779527070583814011562691937018103430701857461236952074546694464447137304610655690586611577602116432144291454103504183824442536467382275146398046490661698777585176406284193968881484009396075416974167239333920988160507222730672034423281657297919791772272037824242230874946784636025256572913478720087086459745317805494969572187339701050369803027568332592932533231161062352055289524489868001276727572294873240935087025235284820372430877128479509049797033399339188084293639707897164434380910150061453142139275193959443916715387848656390255022214806681457901292083740649334615277347205412210574982766132928961599947185804750373070681016584548222964551014019748937852932810338929201812674684058917205322422846132415197961715012286836722535057238283395544818444579847625914706266606634879886106016893932876589275635126150001323563268951729449726629897089064296587792362121338924066683183654048049258580648764754576083084804976273501393812054627776481675492050822294096364132388379711605633773943008701420949437837989754053565683882583620897085274706094566472780565502287424337548866175466603145928333666816673074471820337146229427501591782231794463906824620527785284782539860992485075988757432221299530638133895387885798421484458253284027938368627867646687391629928669406199465283204336968239359931146626594652927840277612607444919355706152341271280088843731456234363242539149319282825594396968182271664175138766816808726414026503649534879934375977246200084886523326975200626154439273331868573588314433906230298882126476978911404211239361651993354940231205910567984264738093039505927072950794308407172039047272195437549321561107106625517665240306622454440414805955253417776701065874123023247102317670324913616953590761402751428984136900065135492846705660489767612952679625814405818332394535427288479396941887975247159382049091367919226401424375506344520470126534149402579901377636042795567476603231778623634363980165973312324049499811345655843049247719222312569061175726689575493791038124703011965248532412331601593480844023791701347558798521026875158030962518049126902239266317254500791451814863820226695110299619617475492849117184614080049445142618988539771559841033502806898978649038723694286488806542855224577431633341273837219077581264157856515360700499652270730934393671319380337520439007364458306222621134541355556268121784195965593155416039798526161243975966711170998490157281984737133452694226505691330394890264283857570144989077962310716313430160906175765695807539743913446311424535931968264847055496414296486561337428361596245674142745284715290109706135791980605986019882335958182141652921835053315928306872085623509993193858592659504511700100060772441050288433815667251064855433813344596852318835669213734382694994825344204549976478558893475739891094587692755177445277423078275163065088448882293377748806797009800008603218670895634277899441082142410495457367803415735393203909762277169656738800375188747549008084416011812477757681499540693261780930407748978075857864700678271328773252401576963716596003693883747881140529180479048846229495305992452494436780996549777017360890812951819286774745516038044173198846023905832191049366025802192941906394679726897806644885264431497233874588133799705853563284557494994678659092103516994449202350199116646911434035042044876340794119853608722174028921945520936908107821472387330009869794895724509941040846881718261355076395470261861642870242205467917849051712371259305476364778172212543677548413812906243007160836265563495461260205340006311573053555566831177773242995003496288648904042762541288135972516676663372552700017539240108975051919999662363923153096601207186740594112239622960421275164295554940718445076005238099310691457573792097324546707735020435140888206198890968259792431411105866008751927737032210059574311465685984119023723597095760198768128079208830851798480170199959972975571990082578583726300999170450405599649207453387407009114064056540449802693739165479262250024448224188832549154081494780961268207290900036433263456316996170647776099468744004549942546841868583663215676891935581818836862801870240093586379531875334376470940003218375838468321564877490590556784571385778765543204057898827791983034542850037571429653788147339717044050008204317664156389357012990169711157609710689416672992048036318503148452565165404162019197817525732558001696129686450776059599824972058462137705930417082544394526995664579721391206180580334538806120657192781424221701040857333535298634119346928915060018821658103009832796417151196452136914996237486730936723698613789002611395297770917786014386396170037344095486985613130638451990706913018149917785658047717849917256520928116168691444890235766193104471020131037921830422310514063883201401336812726569354659858553729612038540784865180633968847824246896737567900162950503104372391101109469642135073490366147457220770679207546189073582865953556910151071217847342020716568040742369230773353817825433417923783165052107210873041735694265778990319981410277386277265431271697842829366114357030196535642974245410921105416230819148401440659105901636823035868462192714834064684658262686273831709058007333477753991616449952937459968972327319698373305226044452281489162138527874417869857462403782371984211808286565065692955247739571301012051911194151707586718454631664210678477206610094495856581252854942027361261756540877160804495513395885464606413353045763074824565159794846822529323381733893208846572795339315476891926647867145722329354601240473305778575930244464718296294137028480258035521444979367617004042656381116336167647916959793212699779843963912358987536886741803480148636645042194061505134216001349397304657989853700417068376737052912037343445740729444290646436001416799933413634619975478700143307531413651925711407925513370948281286113628117761288541440964553290123187727968511030463936493157965511333834061254521325457002417299810076241201822874069736399498229653212481169652756258398091923624593134315960352326478207130611907528675769225642748336292882369370236967144267770027037025628482459461909953756401786784364475105419564289850939441689677038068574523395105694819875486810163140230882914807433460140731910608896716172532597938950097672336291350458366557521967027980252941085571526621877025515824318453182807288192182188685820812753911126210438042559511418096242697056714654605139406213112782314566793913891312685649620645667349732525004294274305701771840844530294239574010217329915040336524687481620430792530869027794141988540170817033830970293989122558880005718613155928958540530581773889442332983600904182545568363990390067095100677554874961810024180691695468061305200177437938058533157788213273477509359392688310986467798807688077476700107294641815276458981847292204499669505611075922696547234552494727253070021447846085591306769557174179714901097854169989140569814807099519665653401201176362145034873588313297663875424335305176815276409317009482046745632877864225025452986073249919927014056301557672541913014802102179954653625417137337108244959363793851433421591626949373696818704969735438900476541716053710595357623751871558431210343951295134824759348001281686641533049256564518960189273625551089163735653939119731589271750568536823479104316858361857464274808128378140477820773733125080546005074302940232814093871818572513196022347441264516452251994543269920880959177365209354030599570380213900339325576977853805181027161406156350856624587128581516834553016024095876865062473178046741619928238837593650498598853494921423610836238103041348259889414190402151396592099148539443462633446397653518233645751367187919891954853315723647624311317905913731788181354296012081812033731854204153191017869102726708968349607869404636727442443820331428602053541427796965257436899808396953960948900242751471635099386621053702164858806106884907325489486304047158797876880383022505096392306697808316335205566057971098705587082091651778221708959932601120326039973213987560817824544888700780957225666254535119249241643706713813386655877326664580904062973298080337321891055994700956384699372548582313703373497768410656187976508530988502786727104679543464431905119592008111730751659567009248402755695850517705189175236644925151928391746466872837091785068063016908804131038045123414010143373969630049417688936113215106928293456262453031231424852386939960951808870162261115857106087304653046747613237576138370798372281425672155791134225051707205304291741781032383926844378319263674966247264844878147201231520369096919893652182628846166750906967507811726819044929944370231246130879549649790211651209412103035852214201187462959291868183303479902208251007860884102583270774135297426206365088487711698338347248505247149454622186709174020205244640796070729832607776241924668117079091718860009314016645643655015714233364925461593091118603242186779791843794522685778303209515005814731623205411591344717061897066446224041992611091565829162091739354498353022509386957094712512899871144086621759583744540023018718714338633652698800436743302700086177388399856319122811454332963035204116009529771399718289552312622863897165010994363352315836849510070095939252184558426170087842653829309367267686697955155083160770833608525846827025977767754608004428375942485959651742705268338973568584132249593985328706793247789867038450456403933985084031801621637779588893558806648370330785982930945727679582919623157724851637019438653756945116797565273777933111557119240522583185903500022761213048049557144768182668098714095803557686570128858551760259209216121362451681422974533799786974097407307477653986200549151072795445045222963934633626933910115499053999699392747750639253808021878011365253537242041731803854513863538803321007034603140947125625908288180725783873765898262394163638641355426078245944350561305792310123195677238446135815165125872435240769762214696895277153309911160462039747261961596042456411721626533052954891638545690398581736744945994671979440051496147269610885243222351569458780019925782211039278420323843901103545150153903097566112667170515200599759946832626750674959780786162072568552994002315702530746809855517607958665445670578017628729188859851423358203369896535681867704061893210346435439934532691487676312241752271737255240510606743537044328659373409591665115797322659108612545172883508714381441120525073172553259928236846139835686236362183049363078687983614372790205287718470390668327719376016678690021248860100028286761523456180133701945415604443749609075603107740329859846744023561221386547027634384673471732623882370416087124328480354467926257842020565853892659033250332311760329253560290623083873168906395578503183846209831315746858202850077066215902038834237482544452660328817214999893735916166603363708567638824212853282566059958916435426530874269393705514062820561373082395340395641591114538050931300778731972734053888249501040917635961711910448972513704172737939746488909028906249925922097162641686774602356179594509918397361071253253708374285353102108573332158529798145094221661380016894642354418841382491786357546041551361502407803543270137727539188226750725889612135936786337235106567343624919133032286920758228070492914495173402268298990836796007376449013006037684246471963032356034770093266660118391272083779967248562818455489240187559636614704986482576162543442272223631645558113160793208044749936072561719274740200936098419410295355051939082007187443056924407481853055723044893588425491780191922612902181778403638834604655219729276182053492315968754827120458319937134474443217873952299179633459753570063640457794488636087885554410833801691704617085303560055907629912306595881417082113116189122651378783192315403241045588697292488395963789760491076385776240035431135915797590337839287222604164235214261847557192010962975602966646281338847809612267525629033904575643256830814833345946192800056009353581707110562580392865772924612746257567022405513433030687001496899120485734964261556297041351742000575352941229644665979136215837547460741694395457429773924529073120986088951703458506781430325523851084108066809985620162501235473205128280962673655430591554100741861131688849532164364834145263122884291380034003851271383138734543003997043224916372842529046180862866990421976629086106090892328779401783330717494716372840408896929301773603980858743109832168036718019916940284104221494893983016113820496167152526022505844372966551903100008907898086425965930075642327692852963978087641849876855865524111594423697317501676003400684066180001305782471682341084404794118956834090947420572884866186279106363625008811512621800420096805470811166975860712822237275027837861102075977065115098599560274602909131663675938232578200093732854150659853082227359609142059663100809474710251163800889761207837371783612574648644842702277359782213312714872846899395777113445015864358390789319635249110813790172822145520067313155932929387382919237728375546218539991268226558958140812660584592846353475445270015808483971750718386436646589161748791561677715331333967816144322992233860510094719161973119488535440114645417126061815226736889608898658269094172008913284940645264825603459501779848903065098116777484206668724352059665073644203030572248447228301517773015843914047508475160555108762964159815467403982769482398643831350001221943436179128477572490612351984842638833572160143552903298357336572239434177206949116798624361394099425350900982402475941117067121385372763743674865026609404037065021178257997811258563559896200996580692890303958192422119109070781285832980057161105990377405199564632033285515024026153244770785619411245322680807114707462456842239441698743976480246303614987522651246185056479904920079879898477319976936104770001754870871695731905018277799877620924875946775719796673121571006348272705227182821806553136153120324359086363278220483560869325653801793505445285920307473704616901121102655670971316885146968763569092256181254164084840897935522601356492631276713805618418188647817980833077282090341216338444808440893431096651198928323659153630071985906118431291456275562152559467023468414746691910595598331869229572276469451592056382488543258894477131991659859181668284040857042549499474403796358701529905795420029075257674630488969532858307067641498686306111342158791355554737917631666458174391802704281142073012281631102254891224767277342518214337825093567696137402751398861954186244197876908101863366877419943036295208495344421766169173970496560499935681296030399099330511930229137107650555194521747924452303149940667739165311906535359918301132318106560273254526711344401537462071938297990962586973608314628446396717756931688629751387354081841168160183653590351335783390579932696306889840675506467590585623289050356067577261751489377485525843118175239016879929981570190914484282718233786534516165203894527315025718723407636281946629084874324029722052941396442599941810697140588710837645704983703726552810004248229076508999898421412376233672645429754590555405784257316385672865868483665081513481469165424520180321518696793334269357966641079181215841798099228753887401418192173001904107828749429344706064825666389569032854793750556630666576437911543906862122937598964309541869434609727925749028944392360928709340137365202314431991436404882114529031003761253341079807638932172464959280080992091994505911586359180977338364244641211362184507431399990219701290588980655868292422141871908900782313753365926584640780957599434698865147842303129537820765281778412808992389837673688878488065073752172264205901812068770473279071973943894464318748838765367478419628023291948362363925484582876051064084138552507857555040732858803590513188938633942661578588090372113258054803056584861451984278004657160261271551348505816668545291957419909471190638041850665897696778619139350488419897001797709097321343406215858285203495459001439792301322907606730587112279869572280302515137485988148690248186274962854065377080585882595228671680926214645347419836500987214701348304340776206826230665391504721492704111158323905607698077854598246910937495718708460875773193038569118548483673005304246677468943672431802829699213428004352861144254129364650023849971696837693249865522097292781957680381167450476162052550375511038756167894353109682435818723142919787682976289672276078953761714441879614236200978283737261722387535043670658204781316636523394327035094606901772460914648720685083465729657628090588133971393979262719780371566476997020520510734041505773792924760862558159196644058431965896083958210645451136329046710931489234550011389293136000795378457060583651649777679049049352697022306788181443757121520565229519210692536003817135588156735066742085708929620788360675901640497995989786740220600011927790016557349408199355441356834284783685649317654815894566237378592328708156744494671041443262234609799850494864909303422095695802806629076680553017299585282754905517521213736883772307577056536688938530003077233194414299993104582983546760884066584144391349419231419845616308453959877117513525945815868746230794857626579543649018205692540976806134259499069441674211530129752169566838623710741173275618504025311741567366110030124224252038762188541648676298320963381724010295104543498291473215168063764611951649205124148186364522011342515639979500032868679845998875583529276281022919431417512980773302293244223740878056892116957311055632078098846735257029215979101872380778316110674057033614690528023072454324437120057626262366220279491667569143844353207184746674918904995661305707333136812539353254534405124587738211050525586953150722101615778225456728726258300257065676758567505121160437641614657084787770949810721022970762230749799350628180364056492104100083886037476562703501125450627834422441000464543237060475523598772876435216302573960460838644927734265203859609263479555932925145181922571835499676205055182694748671974126265242956955574620848734850679265739564299163977764764468100154741840945232534969920062145131245964912627255262020243837246701155783633110219431361902563258860779654109490798297130859984101593079854189833683909543803859008596496371257436917737812720140558890887708078000548715230496956599216491799338749910872014644671128496832715984769886148531980925798420142519613621872150824904269365162120969277582401216909811063717447535021434738483611063923040254858147185854870816587077744217368996938796042666459774486755686684019484422050049026707870551154413878428251155634644537775093452196869384970002005737922307813542091027504147847979249065047813349075010447791265098991697659827894645896027168496256850143001796518703422253721592146540997736571729724149197370580150148060215194579981930354966927601613757117941840272247623325781574857359101536342880623572627891787203666249871723365948257000967419365738281597459974539648428298412354016923915203175676614658758766150966379808319409067559438741077653606456356947976932874969418594589761230355521794609479504073502549485087932925368902803604403501952116603155979653935782656333839419173128474982559498900019690688039716114506355400569756304483426445552125354230942612904588391667647617271222982340909620648320005902520807055135136318471269640579713248527406230441990414745966529568119925741773032680356215374499980617045039361122676569001038639908346094221579364619320505352756989778315573444842171912158014023751110905752186351839582839634378236688069374733365867245165692623362442127193067581781156600624090566209483277987990377124600678090127879465457028528886905032853314265722636388976590876135915244449722914141941878095346461091223046235603743126067998222111078952347065389515255932227013381498204728948550729131139206211022599330291644565023700139026720693766652448960148692003727462738490048053810754268031747833008484701685658228830224889925178607544532346622226612239075195549211047163717735915371240341484487136178741773820763365899079936738333772059610396480878537022883048195506623322727791730085047904603009847979206874676559584570825586702504455993470682496786832687220956809961978983077887403624884037431581150567710916743441533694122557766871547180042472466592714760118867596914584515043528908934026151084537961271550228891951444668506361785077490116494236780454587950902767415901560279357043830375844850800631095248304856137118309285538883990316392122893103748285573794714719850654320641564892719945484949575231232761001835646404486420639274714136244332286884296573553573083284127475702034582779000832606517589164389597214922688006609785714544563649997595872253035424231698959187697427174730716252967828883877837618780369535405432350214585093114087782140105457865349656027883429286849074707328177386385059452678731495958888474478392388077004186453446684310174920124780005822668176552738643813727759269759959888167157583286740746624088584506195700820264622229108033636736945554218077289427266286900171821869412956283657869136070711047522915054286558082508212896733263953356903271534985725066634954115708126398006547917723177340434745473937529850615103903771708743784677079288820643941168529017184993806595035855215468216369221192497364550405577393002409697151211393240779184211405170836994743825581190406608489753384282213719158321200575176156906601084033544862364262202725361500868269750796614378728604638505291546940908587719925561422887644639273836528067840195692671046065125130587413723959797563969843178475681996722104095248149758828043251446656601374760840696341812451561712277996011631086514083996386218725857577547043073450274259006105131768011241093301980978082233061214844498911236686105604444062103729177251919872589095670622226715061583377283276207234881860751500947696900242220364454321837406313223851146482865500856043354027327253022539123780605102814259787977208781818563702933569836100995505916376003692754307018166271133847239394266803005796002500361490396346509505013743338330361103740344433735362587210382908497264579417543619498522454440894375252162310828453388043847290171092534032535581497496824334930050910884381369394817755937921236903095255229956488217199240206992312076181451904297554683314061872691223348048641497769021636371948038414804225581066482131051668193272634741623483729448451807659268524221182667888888656885382318561382735620588046685757846687306501442785153617691209210961114004439965967189693743952636701167870043319148610351100403079092695483279723779252414503176457290654721338959248871933922148679916429903160368957492202879420488621264980464826990235159657377701385940335082615676134699134359547587094163142773600250149994249093075476775351328312267218465000679101826065104049233378959736531865041025656591066972377448818157919268197876556000053131691132757765459084909178619926882960457927650800287332890851668120929643135490603906383667694051264078919029697559585114009794064704602683632324798548173616409228717266694372191539870681184224545680047441496209189147701805490518330634645678784689582816497656618603060166612142560836025902081499114051846393825001916048347622209487005830211220828250143548311283766452952304892314243781195122489417384464421906703594429220209774023703948530821339190898255891545125240454047719014456397527959670613165817363082151376538364100309457779426770480295901975518313435465840008323815986060219152194554142242968094373212578771655232451788221262525430342049152964371233579152028349873119449949252981793904626763882349989374244715103788247535357444926124281016963962445034853017701063356917112375868901008577621815596315114847794624389099579571524597261651665130139860867395725217987653975960307471620311534058085582929865576933587398470108325099342620630222554786140272368751414990348001800701977757588455587227639171402092183682812945122568820036549268943258302769615286370763134396106305628594406261378469364893450933801076225291005583276158935978850185817111751749106340880742447508779126366426905697885309704072823118637684569355554496416291583247522070246445019261010281498048944521515848890623244207944255610537715737297008435758655455182417854745213544059092714337021625595540756948683403247958959114479868776130812389303768311388048265633551071662344147797402285401219824165791552954489092636644679808634723590034760377403901853289371787378478498232704360661069827978356493841749395323205000958834099147712424375158541443705175843186645681425331786129076805527151124592883143385295363486512051077101711208318198597645562444007832386332514804665594826239074859303540378321224180031255477114780692343115706943274810304733319725074380074444452690698712170342850830142255900384091539136977414703968067903234153715524315142663633232635306924760871667001534747282559960457175167908533705623119130311649692791115647807447017234592501011680268303698548949950255362140848744566308314285933006852005329712853739216999141810569184549413185673556264470064761900259862390974720103557642700658667762913050937643529436642844684807613934611448237364346464324198886800505406286353208469631089359282271841181613408768188408071650313456924819067518360003608381337163888495975934335792043800398646626999243426185074743408513998196964066997354040809196220925264447411082795708916499781897203289504522159963047451018424954607167684958805898610068923290405589203912895211522840475623655640603690578340468787580879786018323249794167026084805166390313533254785704790863039649019264550635964110512878562163376252665915092715604930332362239056519882363637903858309108162857408479522757670658616567171553437073924243099553824806250498790544611686083075847009986247280657424777803658108948394304963163616014771516476844088454660595994091607003095535039159384360470395053465486201507381205329721484869104054520935344067420101351461012784203900651924855373458292830882092539966190302361792486184760324199140888057652610077781146265881084507382392973470781195458332685735766341600416923798919148979789537673621786148076405521349180061014191246958660489717577731873538716079347476518642102639236311220787585295800929152373028892127417270342807631102632935485513866686789718464148930306672534054919490973437835788743243475698237008013106039088672073096578196597294235881826871308051127837554827650366950808724579858529721243309708968614447237735762441230588508146748414847418000514948599862571216552932692433891307740314571482675612838331597638617905200348529014849010025914402144892048779385234586657312787117552725280066873496968250642100693654928637789638895034245858617007865020458370969569083701136157079972198658032128911974381131751948641555308867713837283333799909469350397781996560214429067921863498936002364943385806479772552041395549838197187559074130278393927937610711086088448392798018681280170893632942712883229575519487951331634039945406981285395186123664483222229112715138041162507477107027506094159455701044043797509898499844848323573557916765241658490438262631018271196913998881093219851099626148160322535533471629396955172034327138334645326801088823486025794024884327089730836181358552254166688327911296565155819287178047485593527745787510194486153875286077054826372721155956070114296318293224918299499869995335900235918046942287269275169353447343125233719222386641792416942356803138769029535184766257218824253669952643734225013410885364708820514945148567768762258534642443205993056588093993236648989281193984675928386479426015361655496348871839665717517968941233694465011758688195387599702845141853145941563931266675388344769285951218004370894891421692027987931307115170018645827971007280169199263429915856318824052660690886181323806181285263902974184893077928970501270911725762161742799370807920397030109321873200039660812192717318570391431555276857414662051962768389824870370141677187108738459148722402947621374476783409856089491189577961793318562882873577642052392839779551731587920078280416084487578469677652160983837945706899961359924084522080177454711819242691654441386052485165186201577925942658396680785753019218181687228268055796554838258824466863395943165598838778145066518164089754336529136879998559194106709285163303109725563866126237996426194085000642929159023395011679792052540737843961913917051467744441764816256041094308160727353233879401445643200132181397941404980875743099657235653342106066009835785710145612386579412552929853029649056406507112034765479017152443354977582207560155450567240088483467136639025396033553916792748443585067482364755260533216646782271319779760196135377999976028528999180162082744784504631227338549369239374785778318169813859353139240954200961964872285370886002028965259145902067692873678121783312181950168844826759147899318215938390689976476415089873798794379980028890822433397418404055099613934234043843664432115336356538274159862614690391508734301002324079873692834968743249942206024330173613197264792757077356464093666915133455612351975543339191979399872359371362346802059359909362639125686100549159902289845156316824811778617440826060191655029324096715098411537164543322181173318137690190491431526318521027412419167143340802856891354261975728278265226702010553745499157394844755861518660486015143073962996533236116395476415901656926555517657302683666354899526238032284333713017466880167609767435423118939210038726891725936649969249695077353869027177203823108429910932426099368721840610918697059611345188458127803184748936708031175526633105102562907356092344831654482726032497446175531503007955304659018008777609465457098266555115792642361900517741821842601872677158964985379627905337767889214928835716123377197940521425585403367296874168128373946235433223922630566904316039890804505764978357310806969769260516472349702896502924075252148536627336239070444164626802532055612688580955876919709537257639489355050277513496035165711443801345527041460252443584967210224715118151765654546168680586970265939748847218830980009953457865609228999411180792601838237454793468061474338276770445041306102676288179642816463805191697493940649699082387206580509682806443990164884425494043942140005533863647428265206732698611641127792784839764280847809419164803618656791189720345802359270132619484906167298639572513660128476302527761023602395479257843001617798588354532385204031616240569768251021057377114681235728838190176301892158634981467272820383293690148722868879236027055502589643247670565732798979126739817283875544731608362570225839742665499454004344632744544445002255400458098477205789063062735594461543774459791166668955708418146026834494302927729789786854807551652134420643593720141363856835245630074427081968247107944940479047039926975717818801933295808148916916595255785595561604505947434746164850115271056042170326359110155841982521921337911184946407590234853448568803960514114960084903005940262278824357153583836045568084182477546457620184792376280889867751835266852362605631481025345412589933448950122276478921368512837879325461691243190782009197241818232872121733285171293794960982775518467992877878639122454883447606887891471098205066683400813502224054204766752022334076674906679262495798643415766354810341360301668930775687264646807327695849254492793760228939587625809505658362921499012397681896955200757705487926725666729273544785870667760224975661671743189972631456137250549923606198777073997492015751501909425321679089784344852742745656576830511194902562938989776909026895382696755104371024351686437394324686127420790373097884980109260887683270538893775732078902916959072606856620227767775753363240323794846120616738855886820095993305924642871939485320768032527396299070799420560713626116559561303089368407318728033089434603646966119712342284295122602916321142684589914454759512795017540326974077570294952644560299296289638367963792643310666814301327995207201365485763880939704409579434205576443718178431983726255989088752075053959572773600118027250460938113370901147382504079084879815426248303979939948763269753808863615419137187717668035186512082725084434675726147340347066695279768935717715492692755070059427295243777251450119047150019736574230798041883258711381374519871964643220813665074822318347001411389368497581655534313001280745459580631329476259590746138555643420482429179318329058760933706349951280715292832738338829445301452139525166907777392273070333408370103380441259067596066909281751559065406623268115024577624905228480451711853311429088147245888041927117317425895961850338416429828057572843374592143817427160526504377937689350869739750650578089693967118712700482199505116191922379870897055979656263625244821573300268297884147231988423637776946538238546040640452350451694417104549737054499882510083278779448134069058574623953965801967333588872058768763930680179738101034328956521783012998772585187215632199397114383352689871938425762021044323933775481082576945169979043195396281282436081564026754807494415753958182261956132996901193189453862057283219837534411456512622130265277632883303536480780395396651338259658782896304595119661662451357470472480100684695987384468008883312049283997516319840831375558748164658208436354105539281649130891634976458733250009596075363870337970549767509492626099578211596712191434991093596973814414674549991004384893330970908494399904180577382267950280003315248766352406377082299005121829093758239745701341383368048662171051871391526997746376676056646016607815171280600468499490962813849220235551441137574811257444177975290274341111869556676914594607919354387654484067689004523378729795666469328922584424549210082489853219189013234870934058875394140329924567328018984021425126650161785757942747729432621775236654728484666959449527345386179932161535955513061852948386192205340195630238632707771194029811924124113647968090949714816544271952181868697009674152308828689549446673298045356200682906474457411696329122687401312812409352869604275501010342080132824090585375528611053691745932749194057456862312365391015088054944469550534031664670779754577334557759552619812245759544805199142363485595243762443073395561998326485206720849619147054653617425890377496519510730675734878672430917455700134619172765646666413028526631589320725974402989466274503736839237836925431524161609907427034877814938271498130762712041261013258902149232073786859449993360943458741817778427041106388575524928141221266764725799233489352741744142955250053320723067690279309610930099799110750268897552999661015403063022533178582563883374414956287510469917945646637900745007094160937930213722416079166096781455537401925610517877943924959571481127421362801326912318889589506150674908479604393124886019082705849528085910367429396345824997130708909488895076113849208134217668888899884117742207714382474474296132502332417211072868507545028527006299587856835941836034042272921472535505491765740865117548864372000501933464546242859846868242101248851723707457406279990656356419070612678162842850701294352122615470980785894009231659789788966883871249400586991311763673325355585057655423076072451667655148809648109944842422016762144260440848532060876143527683296042390266320367949192764957792678390398476120460217818803973314990237092485722414353876131683160390499681101691331741602427008004690649223763091363722264357777775577474427599567623630116858984905926661579144870424533075583248576212600948953031259220666565597092617428521524738978532891026873729991929023702045961921841269660686505572196055395043028546712874224793448999273184996446575538766466966986785579762813460991069030098981691188871678590800589060322410508199287271080338253959918205016893052419692983739852382131308760379792864972893172165151715458520523591965474431521040625640353765091247501942741252964941887308451678038594337279822601539739431027271907349892273926292661263912631294602889965714621632996651263053685534928563327932192629630212469773161123024173630339628771786774984796531134857015155483143790132485136212698474789634989973731091459651373438164063100172437414283838788744215160952037550918484828841675635863951707000072153559893671262706992937335827615743835939654660652913477007190432422613406243628522287211949340896975687177898050987440540487036725183185970257218055216146845066974956601535674756560193242550664869677187770646813269303722398811395017212741112409245206916270197440118427851705128294537865525141751405777257533308026349556487417420869618677644740768229915395533280565660444968703234930781537514855641897252660565589912247491459812561976265207063556483619976996035849912494509702103570240653787442136802122022517132272137658030450574094865599987378451454391304296658951175516394461044197440897262244462531685299134943755830800792760063671172085084982872874431986297227004336138453403552742778434186202410550130259823025789359134005685019819797761242300490673604488255089605435987079722906579629402135330064371554182773044076155009752854485209762588058331365732253149843110125069574823119256297405178501600456587998374422896383388219411407324999309077754046283629802994171310954358695548042546337118767114269938144902753818473574597107722903357820538480577076011218536572841291655611346916650006530511788559942102594050743993918211739288849432297843420261820377405890312774954137876137221281218571329221186512055858561086366703671819918621741661192251090685117938491043310216340004445339446535646169750933883565987413207051369531982956692504971906863287762381446626301739635069079232836932790745682616559765134903447390948954371212404362836833763907716863092081264517369147451661123471738485220413784466067059921558465044662799159733862862676959715448107090434159543186282404529077365831162324357851174225714135833295590028116195515086625286764260566496205015044681027431665207113595531768972954858365111003192769811516386533785161720577741911630272404974789313082759276325212312337954162120845428374473155348029369625104712999839592011563233247901367752895509483261384594262442199561146054083586972428848871488550709208333613065121916292462427594218615128750656484459795482546597989088827807593392688045723819416517915741742991856393136547901644758332141678654532222395563915890573951335501953992238345173026515301560523796471819185738949976749665669213367268225597462918762899887527954565379508937684721262142779055885912804328673442555946788248634115986783139946416679001809768291253847275569142922010160178066666048920062506521016497720006354539243985822379721550738894298188692753726928213768605096795925125823570614756255067359186284977077550392575168678852804907263832750758990703916817662814757634285024326095558751525444727720591482348111173267943699778674305812776630019058605008254433336164845762735242075475368954543954256558960233728555553527716902701677376194930030508020067693095240218393090154758464742052222303879211471746275448623084730026908763532258088910928581260551406375136834868278232706581265508355360804452415565344252209287893666668081137564450942972495590745733742973114164930622360626052364131009489207302618052016267837052938948475426099880176192584536943910947945118526824813459782857703616788857185515128569240512745112941768455427288479579491112465794673047445620420620982627040814943397835548127596880075430047421522274965862564958903528380821771957863531132547989165438112309830721581074193362131301602253430933451450289987206252917732168849968934742211341353471474086384374181017071015975244405587799444657483327596630504633602422055137313728188196417733822156016666375487952293886149814660349489620279858040021426939211547658996437156525482430545953791648272341316507904635195989291003015734131117397914557234096385705063853382433528089037582812037843096442058722797109138488968168150659600654606683085979957884477132031750385245638348101338786166110723857756393693225877581024125076963759347062456446829222360766026391894468359763871272535961123708538197490585198092599793418072013342505749364008608768974636277423889676190728173342423304981831792750343513087524853877055510137584669999809378414234196943910162035141998406806479168918245858229319954414245644269232674964075301709960348610642591456218468081441772209541024865190115746463180084217866351290223408166850249942243263253396054570228739766330887858554360981357303648893273787230273828055272089434361079610462233467010655234911917525913648506201399457356093894618280165143725462623531643822061785368058218871937776986907188565146507518885030153125304184009087772397183800560063407612130940191978765079945934386216983630137704418672329108049472876921975295543259755354055863181431453783866079025533754420481215645760585197636824292871622109236413333059604515272108636367440947944631424462304828070792500866807969337857528406492224051972587955056898312889981931283647212608384068298641130398639552805671207491764294131411350427583932275851090423386998478109089141749647581520929135287992179634353282203091503446035891202502431999244354566461511902895264795059428036005562188550980790516793771959014883884622853056945369770682818812948417373253212259974599399348823995014873107851290104550474953100926686312055629640991510023072446572849313048200657304780736590188298923546783066125570194837022368764606662600920654880565955057304150033303017782091165459716369052299085702740286544492269553146948283780812611200585638480053195345747018168598852359232308879443854772693537012708239932609658922353808678268784029676265149408599567009624286747238516448363896978285797945566312229982444664069562568645737445218578334834049761167099334444264102556028927372668587452034082290643800540572160483060126141863642235965003964894699440540762657682931060071029962178467692816306260190099861351335993364067425589249786757840187792465291891014948182093121627577311242675012519522403774586696682088930816306817070803068155853645552647924625638185078454199689146714551790792566496742131537388930442956971465974086771429345046614049731334903506411254997840669229658871645517831081994711636764537841496201509502250585521161332138312496433777546527983917821877859515281965973595805160686879400539951947214557927341060367035651823574087027844980532995385877154574326778585121117500876220788636759772676918188239643093348776675814141914992834735825028474998614989541358352272338109834879662095401606505270131609375674387565778249019386882746080102968467388210313946760785757876720773870477803555140111618328315486332468796629401503201528122664397578047655018941854552779316659243811685147476262669986479683089616488262503241665080378299682315618770539334069922433939689979966577893459459129630026451962103077254209281812064057146370601624889450009297511110834713463441024984049040472091556160236545935865071218217707150056836501962552782614643549708553987635869022620333094470789618459394601078178071135642383773572292529291688256664683281023699891464652183556293958958821060013230800369525374721299629233300888955601766168566031145319035095010913617298932161109265657939548357924346179140920294045789694824907180084993930478954698154427386085976437373061886986714845081080926472044467774841882634613938274832894052484388918586417705623854077779705990469099050212779385990298495029894265043500132846471350541348012832061458941898185659152600299855156073903810842370866101780849056226759318973450322196975580301093175780967611879196046098876417513653516766552351503378756001726588059749644956936338341042982798013714836238856703203591213563492272483380365147893792362577236085869149517138089734237654401644978946818811474931996675954330757981529925651433856390811472563338256270899183272007902219103160097876220230175729130217174528658451031794529496762168639483335868409234635476546054723003431805677481116848798146313989040450355548552368970974213672105395720334557750964301362364714366889323205681431169371078963000967381327160130223281531201609941251432097800297188897894740000307561515676706003102896094510538297599285600387629386399082054018391410707853375059761021059327860787861689996797171043722065908542701209605583661784912752454754936292817165739600673877557697900410789308978139023612081384665997278767518254440461842662849959966692627530238644430682018398593973784731225519861990496494387597652134626730958897955224521354684801636077604671130133024378683731283358159960604233258763090515796000402519473317394309616128559503588871572408706906191552304156521475727234198290875059143595455873965252414444124409709469265646030680408195494318737468494345693174778707126531232456380139681068631646935231037975377718382209417910800743836810410025670969216317908672631311285069865846365244236049447119801760776224774673766401166418939797874892858620711235976465798085058165896367035733838054815256374943086259800385246018821472505989323416646234859009022286600966351633434130073661581378997640637666641995607900280821055516353681068927153798760484736752972665854963987110749874075038634165111420149535849692307852049313771137957013934381209633491848113042647292628768489704856997940520245098201076240651704210694865772033147518841873205349428354961474397460914396986532418385301631956720720729084708028514729908294137520011523863616007596800284056328832756815601410869552975585227939377770252098806872510123802015569699015099471335013048450178896513081717132675005466897898049028004044186111666279081480291955804873205286251708943943554491362804140370108416691199257878351391136427184540814724803893156316437593528182450756017229712272013025955377111935387110972707575371773786663650066357427678582111213020888627507507779624713560168696433677864100047067361322037279622776149396758295282307419992865819189776863287827841785034809388225364054340891673814135140889219704168255133804126623043012809566974996264193217144600985837558793710188810903211107424641022157718941571053709198475107430027929702564324156273674739097922169812360271730537006202899698165671644943791474295227945952809772137904996631240489193405745670061688919086692798189116202162078371092327026822695947853752395396528146842247299471845416189408759815238466188788087823700133311416609204968757100111292240616567731212930538166635462495356161129355971654916514237715955747446907675964981104529503422422516016913193657354588809810552979008742049234940934138264363663439233944272037293432622243360897677075305429787151827103126763031760303507656762582949853285067025008172935255236364874074481974608595151581639564446490216315911111775348427074713342510531111826391790823289681768825571762546627238210201753664965179528763889951687192417076724174559285664931192141970529074136375869090457936029128903884889548354932544922843093044476507576655907281494618398297159651732954249640501412755339434095892619150041447712864491959889514465118008642975036225104793111544385315076211016159386055702250556677859922090722894265132098654140671908738648178708268577626469381455430103528558946768664296705416231599369109313334432975199222135725653794016126584895882979923737735628757684033240401106878186372375561739901179860448618460972686668445177001285802785974364367961267333923977280369431978296102079830012394624149028310691431579763472052936340371073628529598436007950930953798855551064943688765548696934117090167788768804407581015003030925131014608166603104338540690321675234107490588623378357929729148471636022199092320113930685466523721289114595907975913440225578122079351153324135297558291088569903189871319038067083167836612360801688226647624802371423840348513699354813206462719812965786852762047670336801921667804902208948715132936372726330987431208604187972474773805846200517021091294269716399568249849200869867349676663641102093348416539949744546401570154356872450454184860078893702649123093415359650133106626387349633208673335857456184442029266210630181451387812621969908042272275122885391562809800764933421537898921850343543854167219981373480900407280527401977785382127484236290870804865069929256944885842371272567504435513658757522439168471312520031410225625155367193267443081188005525539846722808457513430315840524052080882961457379458261162098206976047541351147558788075516174936322701090842523068992287982940837905340465572830386470385957696691460789732522958269719273481475601655421069429368738144471654416715923887080190503198936113603929078581233707966693576502719203222506215066410137490739035953372805317514984839936025186817545477118262569613048933643576073943802481544052357470526921976760612776935673167558072435604531290099438664180181086877964238047185473789651051416820451943161469102037990502993092424936321423806376960687647950209608365794059303392596212596228051294827121677640442167189556602284106894771773413256322776584235170318548177002747017915778554595762618365283418342504512801852005739568233379165263625711048033490366985378229131347325613461102727106011461328425494465282367944445278464472288060441528389625887030160764858244762743122234661163058726374273881850009259916307177124922039450213581727176608637783657953155377636014849162348866304323197180305051700249500669346484276940855165551794701640447079702093147935898971084882175278177238326657955636026656552837036780595241334606487128101799873172295020747386674660392676628448642029578339220712964964932338701916378204783816725206733586346698224757720841081590416165862377103868665851832185212601528473788819523889022504618056363203446457468724164061007513524239153392400948169988741331165958693213071048080461798298512344804818750843791466596026595449616060983066024787013771294276672331759074023310789578728368642202562767471149200523805734044810464715193326446249003362277928738577922586498303776666422276061929729656867416630832394305854905603573994184921867857502803854573398131187002779974678521517611641007967510352119427252370409509629461515451171937042641953311618669690790220556254201792448785429327558599428594903348331156939388616047009547607021130321076558387350666412776624003825554834092737456171047356922956679592805399169714803032812560353199188182168133754625299124019855496309917109511877404509559797937772087733093614095666547275144286373012669742114358778206777630567463444971899908577244686245908888020124059933215258788929483871432143654421313563395230621208749046355591346184297633944912453915468724647152554650631068286333500482820971451842130076162679014101112196393159051573924556722973960431813020504869480449280928842772156510208868481801457213766220053469926302634145713505248138112791649522085005417847306416368139448093138394315476203496689278691043416753432321655260648937670713820973415739534773366023294088039300817485800900361522751867028555010664467516587219006443018943442653384977269598952931634169104511443042925063224826343920655904425981478129629448989427271023782704253101235122209057238035848315334354172211860547142104132998855438434831750692208880522044244470499853332362900156864911358456291209831976436034065980857900847841696494685221220682334902600265714171790778058913160600556572980070926787987604506821457882256161824949755898320228154741853595468842352326031497342014314874617206261542374313352741855634718576757196455736995319936595927615474398961488730997246537811541348533406714519161284205780750322830118042803550125701402319202532270611915558591626781607606230051144131874479961120995284979748060001812352712189646224169016943947287799100666449084185449131602981412737331024709501953035747253371947937230081649056699162251639845651665376475695320241555706245146444288066345776205678466569156141461466669830330836690542541322828683916521640818675340286682506617181181940398085586267569823873905204775374705818872806866739267585122681485961705630885034924194914240700720909814159846989073983984566725010368571107131716512535595814465655246954187953493734112280500272084610544499600244535104935313387411397067528375037645953363366251108572739141470885688545864258364258362113674886012731746023000261438459296477266133064474886573267996886504727501957140520763520508405796086722977812425208531021390000183802219018926586382646677356877165254009259664622755778158332579951048355564584530448566468003612722634839853156559242342943857120910369761152783937356777167605612291455489445547992071092572936887747788234015854394621686501334963527246600455628416199794028220774089103965123795340002583300206638934159838847985981601660216774273669346339006824556782392573900562178989581942399217697327351851550228966509464654244141365626412550585676150174352243733234241138785513138180993121001926574646719160537742400043338818768492472428393812401813200282142962198353424321894454893697778297990661625255791184727668792009225536473220375796535741159083870903514096306398396247706177376933131522007876052719152541043416997970559194225279984502602474354930559268598993549217789053476349543914099688659915386823178055652032951744046524281955989105841205290120974254060053310236152670157759454195516722992415985384042379614423496864100261617109771793092455443678266828191761261519295151542307839772673671497982355153309328512075205733561579236981898376065854171178821107200734517985609611081069089561575216216910457403940060437449685455812878616237578473345033220081444096929876217832881287801879798767565278003766572968114490243524946517779344911002199897178902931465447296384686318202037173992192361932167927743203727485728320193398423457753933196837885275994259962598374454342264297206036414497037352919810220910595616084000438699263498560123897885828480266456591400762342341379867431853999497237359858297905686615264842822136227748631152924844393199823661238350092061127840273712766824654570830755005853309139952046410188227246192884348968510399157673050168738582208589188315515409854663681843682245365883732462317749337457412278950077418222714038758747231606398530677724600759222539858719393177401671677084709883757397404501241635105858457804816696289594344800486301269677090310732857989973751781701973091268652158054203589259534235432727197998729155613925199914967245051438443882006853831439070243180239494734147599961602747003732716007522490374181223336954591924784005158360349751052021901912612316245399211554075390744981675977283809168443426305153771791819612069481398723324305875120036683171883647252015482218417930682518302831587152401978592672683168643011571251076595873826032993251186624267601473398584861304276512292438088538389547802896759322277398574490877219923106617181744836699785219769619188201550967849233964971983278086402099775413926638056349512670255172943591893938389809038321388713783991871242174506280872421107387033674035883662361056003529463198524156062817867698266376684550091639253214382917732557542817993761530818290713050793649886706645133906936727160802338095308209594246318778878245964819123133844141974819002914378465649368052077011970388101651438605159824980417234133612033950938216589115155889475861549882599099432701803250841157710958810294718066050913521311622062519075375765973254962747243351025762943120124368881378141192703818737890987232085255293749974336130622798994542315097351619855260882961691856656035931397059267924133044421580388036689883767187930807337414265055579653185379606223353790199300307758488809027059008461204567872191419921784464731101717556704862866506061821584351551204931367985934314687992290066610521147270743433011951189544258594198252830095419990233239843092921870346159487380349899012342536509758664052036435227439659375365354150654379032357335585831974379123707488675016544350810287599477704926981010121513215738263418680621249812701033345867909135370489496410238726518168859626141426649765255787669598442178245189407032719093056445919025203467612832431595387726255892018743304858940507764726783718790217285214329731038586346656726897814397425715514081175780126857331522363598987701723799117839927194903521453216796926676692987428780471651981890581242509328376072515719543009151031265069590220859271760862624855673732801474430081156145487719774406440975752056044428141556867656809693841732838794667266486793137684097313515303182076607699288651212176808053952495208109857826269644346714405845969796299923886477468015089502487082658937893895004536830244871551400550670972349294398240167216844369627731166524705160017169248341187978976963324216192578894285405610587233150466908873179643348078511937376922350531153948657284307324091315891934502437428642936578550762830362465258035983084190571037503725075436972393267434226329939284991606050066202829965674372620684968879462684235524601995291804378819840407730296609810258943236838170246997528761812197306846118251103714646700052149510711776983499372460288652951178589839469775689029636145051160740185409785662061170773495933178891075075277050475368744580872003965593293532602679031892813730823771682709736066798221241450610846100644922989314672381961855578523557239537805947807380583835104018232904977877578179348420332726140744783614788826806915996414786537633022565170293784090763744273752414649811864409742526678933696039233573121375878501146936249031330273802905867549637482155815741256253597906530555965834367480237670472025160064280288655492496879239378861813159099085718841094336174042334629485773891317272617435626031167727171373420421052979519581019602954286937717780156591337325368807963544516448763281811007136871698650202263453828514803128560274389229669782357281535519871975738147359720881193819734904948174320345842415026290306190755245631547273868262645893052305029416074352881971899533754299458564105798902504810929129423721371019247506228143508067981761285197471798905312423194156124823519706587709990899455090319206867349319334343906634620187504807709721124491986842636994871332944377687717055476908663767602455850602617332751148571233712251968119628667492951775579514476008701934057805990305430442181586231040366968386705807242894070414005443358397566035682109957392702632573675447507543009523960482164453964231330698905105567050990024396192616030376842549548260177739035887113476321845446819706722458007941148447896821766663778222883619563151472549867474925742686896634898446516519510196628010135669467175205209058680674529621350167255772681084565368039581184723015261880718959485936411784057457055850542880049542841965551105809050859355425694216520347512680534307774539309707785747026022660729081139203169230513052880557531092403217013370979686027601610929992255699444204248382410682704397369871464789009941522559868819316307663591095961478241378715241086150914692672717063443264033065464163430532309080489557687623253175761445328897534791756570848647155596351413502444419271944842127066875357849883715564732463242197721810507190559874738341082524039756209767563371824366896877019255286512495736134904229755471941480948023121303878559070766059123470250128953770281357810865934702110420906449536362454769899633264640577662552372052878374942399044207587995513828348558295561947081691560597795057049480837593336355441348838956851171652120632481226459588307365847611747375733426528140854241519257258306229483710771400792641370943168814335005982507079077248384530979225768917059859971934698796607396662679596786197132337247153072195486812899774573830785534038280842892977546945344648324873031876211607201586998196861071959330503891121346598075757553210128255609197250552740083918727109640493197026496057205952074932545669885774373770137567245327252066928905063816128384450293835037474443179265637807865761261163446076689128377104145070371113932561177119733152850882226573816727792479189770127992448057859730246863301857169504682699814829505128898012016509101222189701696574414517813910507272758478938325564117780850381126218365141111465678441815590014953835287058499186005495420458073924639598956465382634229456141199439169963887941829160530892501104121166526400829881853204921697007068131403165167311417700355673474945533009078074863670476410094325334743194770346836498574170350484784282457668839423404928632489111978560738222541838535814552550536142416520325419635363931580088264849226275891426170154360960370481395797255740022302430343929443954642024211026840570527696643960188158503409022827012516533577880788278088211765526652635904810143200175413481146404729834009833620892289425488009432807364017958152715020726059918205231056649076852133155397686647675811454655735853270199132043096398321052750824243804434554638313052899831484179987204286234052273995713079606171199567702162608600953575576287509464760819705262923741154033716492364647671791321366671856374428089188599664168303517297854840938223568774085417831943408809902077420307662248900521651975426264101063453432514144851791088909893947600409317234297668417047473953617293922628621376594378309012177266376110374090167462299467517141820048210533419796759733903506028043865459654047051812367107594355579660967584389572686546015762560387125148679821415567372901257665860655303574817998652065426224950710559445459068969567390763417427644610903947947902932707236318729296978337519530960712152340406540105751659347546175116039044407159302148151088836337934884886792095571530454502346683445862912124248496141361800120426873258330798008546094836751524058011973761176568105044579802222567107970376088587278409939608323146283824288756760435817391855144554214173441405077717776656177016441831832565513014082631731102860663771415808235740963678132895319365676456675261520892444072798360311223823685632211929132999711485657361254094746734920939190022318618573775549552480203180518665681525899816714803324858833091124070483509728669561874297215195487591662156136809260049061369488126739886606957602656762028030294326275668690172009292150610251728802088172085898010034176333422123227747619846392476238172541855497427475938021026488366765543735575113359342870908109856682674146009027465731523076584154134194118073329742990796490317910206124293441038830284891385143205893808375446316567766001692640790733653778514912686596076019647474100302388061603253178681323953546803715540433323504534902702527995886414980437277901586410777745668242306756576619800375245105708037981585157066870293393521731685333906465347104751181295861681209691294536284780577952281631791325908880847618529761912876003070673112828345025437165085827441368345897300053257052347764942676306666064953601157355652212992562064568891834644148317449780339798936100442924534968267978665944784846125177209605080868041501016405279697649756753143428653181209771108125331510569262543675890429727198645383219120737864316930400074060317490887741766856118712674520635140266626354092075751396024202019778158830562206939329127269166159188902525004782917691698577089833757642385051367688314747358717265238832211994422465262442018996984463715296995683284911970762473846738408983816260687117531883027579849308694569015476135844943685808525569656615767424232677838494390279371690197769372854218635678109195959602439924787930031745117864418874985119972186688486826948361750536844048525772684941976515247914697984272124105458968115746834766601343400792795014196315692397440666178241369636981704496464180754978863596721473724805654144102636810070064382701669018919113311812932684244497549640531144967470628112925640775635898625699885243054538874008393506426950458053006730472954092165658183732351305531753373857377704152954408265583509483838001503445632083561810119360316944670376769841855469266184712206485088391331871903814376233057898318637026157274424910956471877735065616363539183562471558184478489502511792999148151213852165577082318486751382092064516743807442585089531879972558729148463649765429487828346445499666706914752756512081331407791596919826220254674379676946008331613272534915809204435273132197694180037949510608404250520680354838129852645105765296268785803905176450458381516730958581353664841671515677078296852467900516519054797717139833377971427998759198258276277512140195920546712617419207928701591612562841157483628335683530645222534789661498664420558688190923833550814780674643835134160104693588160986699554570376375106509809173574032298457116735515504329490119520916419434299776638061021970317572544155524043338797118281469862133758471369090221189832675778911873932687001285699880333402776756106151940317245954478073751151830325663648742682835500334051480698198491581144947002783610173191248646802541108110200497075224692682609832122963033776673942184146100781762692249598637496932252445789403734078665029824058722962160543879537261705652136249584275440237859231826473028907724444608393496963499261239927300207096514109956740537021326175940386714505557280319732548618075183670622113104895343220556343077280710943446951625067534501274184238879839262047870141327459980147129343132262899669939878017744516670868198054406318366893814091747236939848006605134760384468991806212068201755626019706425026688354366690783039720353121063770424992967439015528657923433942030482665963392140701850168562998970094120818985134346868900434678289919895905222846251283212796327276739766598022858277213943002357537919959735485831064593138770983168695657948406401295221371479984565711851507670428140557591716454112706643193259374294147962060087449556873771549632713940947328219048105363572138236004964491582506021825551511762434518021408239442597714212341917573542656879996680258649958157195071599425171343366926700513600272246385799381044331158300174856434205577458357068018307244353729543960027413541376416354687694831014904772688305422866445882866878226208476842133590825660602348802593030425855096733118973485413873664915495479625261022253179330215029143848660264970120512603662318357157975720251733958078364598711075886950854234397090527820791940304036127045035640408542272544646868231431658616589021249984840755968590085394847101742116591281375340595671742450910266638029293717747338797725924529885165928038186485433793781987696487961315273258962355806339708264197934545100434904523628418504768891824375142851200571907377858491092603829195146757110819482645485575903096755088184734201578962593196509851633119072998185340054102225269349162819529681132488825611452370352056074600317141234649820838922832396868755608395552615197909627744178567127473002350585530611669473163433529117973051861785495784921615279912456644337220360066985338506519577128384677482052737610600425746668108598181947743081775707718633953215726377904305537795718523152716503468019970915122777305701137161856423300245224729825730217853715919679675490609113504369794044222390381610876209384474521599567875839037997389292935378313838730914888875545809083346542148128054089322352505150716377191056226765112482128756769632900282533078340986765617426452352861970733998110253941131374852238836451769075978156021488330069590273423820327357233693352902361462118647168206958710950614157654248807570103297185926844717641381611718370841323081098014334446756970817253325126559530526610935531819065394125286221637001584739535212111619017634408294892668394827848419136002877333124898797425585115101218762432786915663667665615203263314108254906927960272144762374909294581216946130853625685252258468286516382090847029227339835626873771685587543812626241170324208568985071519114705528986098284204081760073973607714203402030542126156739206756888747480770616258250446202688850694559213248687869741029942613292621764579626043401999592923199930734160623254360862273326836227928347504089322000057406311227835328038849620656048443721662123414077727810140732825104467470969736254178665642255065752735448872032689287369751283039319378673231125941521028798018270019797838849208374748617046284337805024012793864355661741117012718968915062770056955008743590696031366708945472215952850617833380051570046254901623656328221220196838660890378136406825588701903060029239029219738933491836039416827355062952575117726230324343956628283274400637774000782996235638950208508430159108298002597509822502420205671954515995869756476081391660053404320520277179692373513787147354405393289416979098375358801188235416652872576016538213134324994433147020038402511215462693973390565753471753375726463628330701600423417465250379793632428067455624504983525089113275377921138555761869247151276907840651654820300381414124676433162726464396652688915570578625755229552771414779721391836044142946443481622704997974214948484469481613659467453393636434476806499642613439896711544741621412693209778057146667358509412148463659960906149960251370162737359983048535539591992710101722633491490425826776112081309292401576158042349942732234481762687327462336743133924059357208653614162920992883211676049191757716257745996480109304788550249359990592544321674869865017711786797141464848513283906145214014028971612929196993940585167705671887018810925931419716092702053174971064830344442161368874741189951438269519870152612022592680652069540907334337521844294221073068276212586383963516062082979494119560715379640896728705124296632412426233268555368081516929930492589097278383532721598737313602093244497884076569831857632908236294433953630142771749504406967304058824027120152314362947751341750924814176889989232138339754291827419346722697417588019907426959150431310918699049787223085688411767692039326723372144226972194969764844794508462880749912757858080495539870874511562275191175471896332206608402274371755675744956462648199591151610655187088578339347137840545846761650409385033233248360885846020625585883260098972704185458103077644303440083651578766842017096196865488749744708578621071128444356292778229840792200954834484711323385702002677223425723640935061687536017462811258407878261146136603668961704122053374296866056254699070745996458388844183981529942972937010519304750088976877686712136752731025747768060810656064572861436664326443353482558322846612716161014468374988612321854807409088173930406059939854581282155369206949047066114116642242236916879470511395292218007530143001317927075682724157193148867355774818682647193120296599629582640294262376774537348579270673846771484568891942717661156823711623446723359063787170634704530407370574276076173859683643250954313926902122651715316698599689087943293258574920909036648184397497888696365092479586754916831887570592585517139272967232910956889737752219712379789221193886086178154667072320869342724791393713845699392987306614493857748548377625252917885023605119994905643171718311145186688885017410082831076024873826866947756534479656698922278284793247385578586960156761469940596678929984818476073935839713075290945290295500023194700372922930938570467721201362205412354807741060521176281057848831487280025804242395360596841705213830915804436260552411860614421679000236383919436900523661870042476502883397967312866822079726886167695215688787580847261896866712857852677319232747914805428512864658660732995424932309406369100558096329986919199313914058568418353113132886336309411326598464488448560027804325386233351694213776777459841007843499523165955885643998451708874271471021821255042106074004145235197486871917477367850382530734998129501145654930102797680595475006110524771453325669031674917484372079151760877278650805314279692752257607492356323441180303638054336830158957954810228994517720480793336049349056163423650245272789957923821909817013423058740016104919173848340402051060111144558868097455823506141987768695042312628353048725027040357747101397506399109316775381987517713252994493094901046879858960989444287462278788400602611093659364602004730985340947441302387302998552147290244276340141969674835956239947047241711141545180017566298848144651460870593748196572937807099771003026663144394223884352811342436831095300572708078192259469833484778772671693310734929689759797056918610116746832381283237594328372224639352967397270630378721997101161528624566760456637652065598879128263526913937846930852719763786867153153815140381803839797761779290872986020598420230930319939065945011958990994081151413319708437481135172798463709075224107317131645472191246656467027143528730660972561324547536666935824367148509694846111104387676971702074288395880164434923685865149615398857743568538673229322080505583762829487062989353127943321652421296678380865561230047878017570109147258578159884221150481553317098447266156298795914026930838938724203611493737374224245097441566120074130436312112163562690191174272107448166094621615140132742109388197286842435453109986495199953835753714600635149269447513341789563892238349394000027117858601859868066406819053423801742206618972842573516914860094005205049945403149466849381971081964270174210273982651003127007746633809015929950578468016414667177437303621982058796781427002342233066035283192331153860866076855565026275066387981262732498319185612016523608804852807346264311172335559280557823322222581307367919027605725558362588743928378518288080709446019032357615357132247116894760134223880016057429007088359447567910893056065975468754676897290001590064757850428206974167512884902843278622788374754042741509404665996123765199546101297735803952943792636236615833909576374787327166106555083310439946748765144475409279887810155549899099559838074716741506854311651001349923486794855624243686095270746985401132549581124065461755667574535166679204250198499080071543426231764003871763497500748013419292616682145060817373503201809251016786866459450323216954426733047564581020995504162200244448977298032798640403284332607605258136340127643744922035281195117877697333248507816866900044278970774322288969360948185421443369491276874728578537681318398187570172376742471185775049211365616842485952993582508518092602970353483126786218951157168730307851068778953878518539485225011766734595697089968941996999893113324082630118762407585808365129046166008948803764856943501383435838565088132844030806313747345014800233711479165086079261324203846754045395824655860150764855379366640456646797645347134137653205381422997410452751621963822583664158885688238709501109883696782034241528801749261620703160212881984803172030683643874760223126798910280850889226498261040999887785020283743039237354990938600729974845751470101779766837202394888459818984138431450019802138245963722757928712003443508101233083377927923754436121558763171401933255241652667131779935042109550736111823830025315007863566494218839325584842933908456522915986502118601209894026315560403480206338179450089965156931882485618561144790632557753941363410583862898543037349140887204472035433411986965936227069651800310092577725103230344654979268637079454878686879167466361828279816412456564744833091453297928768804600232904347387329758815658814290585148060211126740435087842666962322809312739635011784589180665073760758246716812943317787638357850502896341681281803656671288029360283806548380317603572879070938378064600097327717734139880687079159361169480729243816155690111899388055308415685446528775028192059793950968292626864771639075596809034312242436449349137849288519397766111708740037234493816778278254997012101974861177041316580559256323931907191474114553175498435103926382234238042499072471938985058676219054119399569809931273186763635281322921003296104590436031381049570215169214217015874032285085744968847512867055389248848938943279592178965013203788598365359231363351760365040185014856150779930665725443021658545886612007523413119962110352176055373001837682061306093859230408035879310943882072343825456732163691924454398664467245759448717683313379642134743890662887778117366900223454873744377377026767267165832926605398862296055213321094970439342559208840438956977745884650110056501291262725434648436983063666481033842328425548595911370685649269970600695324410561514717828416289750805372192034200701643018358868495234853364885093848233709291297768044177500045962466982120691713084162331290792064149712269635451590847502901235844869735727648853007479920158047745609916551531879544449259749412161796312378212257284413721152237207964415294234016262836086585630951720534809041914300483120028657776074051209113827099009717769775335848814757750419240495840061930497708097365394961651917600893354774585561021153131366145995289713039360566837735621494653936220322377110271625954605031264944429686987067593601807918763917991490256700052982394341494042513734264504807989583748661544243693489126160168913259736864610922826897186896657402088690988664189179105423470037813056443016208667154001083629674700708197287003604413871613303050817601205304952720549856914854721120225811358062198338709038396879574485313753197574804807945145599117155136499465395531676513862756698352738227176603819663387801733190194588567859043593328398401756140299235764510950895765687942080417836311799573643502354051807029841497450583636142811154062346316056118105201154348058098152925070820993812954899943205788058327912705195559087803492850038948985558061300666836740837243842529585580099455181279752506399976971537464650262117141062266538848446374008482339742717783381205476149774938669346097617218838519542425482758394266130326966085297332454390925984764627403780204281902027543624280704606318345391571739028276890548187794782095083624400378566772035452952278794180177096989349124732006796317685533989305003974799153998453775123942623676668663627133214594077076562767888622984683968529044569099539138438638436038363615826860768519618334001344239213296040125581164109303058880675298093752785118587086125838541360170670839518078012673779896437122805215950917336288138575931183852806878718020415031516469666045415149525883360423928199443706147845619696162521706826193039746011136674738359032014199006633601243408353417896198339071237993098193048432031542785448829608720640536695588746823770844815632817827633010731272371232999897962274585566893595217318811616883949146188557654165159808330705566805783938532639285352622388984337284529868912114633531097786188825435854963441930439892811937291713924686415127602002401783477522281031981854801007393353471471935730062907840957444504726421732469430283390399441855430219234979485615300539931137920973812759797941419163144463616444304979477535528895498800635166646092340765717154086969916452625038288182513850309208084466340672323635626206373596333537090971838947907585392502772647679445580448997051792676113696413336698623015966898572644870967398192599931982617738444736134225451640337168485296026959818554073996230810218381957246966837505542978138439539716450342195607454646247677619025821379489270168403314813473440059670531276570412287038422504295038400614467010954247326211731576214538737310253481571735036393305298091776020723640252191858160114433214261438067807079408485877075296931074581144356476577395965529741255974322711633764123049226423857000383922051454030145455394150971865970047927232531423916380539323195114027686959030132399916921171313519276650693177225688810469614235945573038817562024235499366122908097709860671871708971498658720670031152352731362888734535024720422151678453755127180299943556083023644121933276383139414522872102649938018561403780012565040738888503708680432988885002294454422830388341394789900024421684696154171437552068137319948960216722310148783253569734029787008462525075631031578915320718916578428211796736411575803139195953223362032365578746066906954947773300805142885169953010390399979799566286111314357659053914945005015372027863054933905225631439179206039063881776291072368909989172821433791573062534049837946063178921784097616315524465296450345391469835355085959702488137846773609732927115337481376706453090972586923877081117969749123802492106524650497666342612809206425146189188344893123128823731221200605802489529033431711388624458045045090523481667757184255822801145124952034328131111607382622985676984870418439554217637197554095057383781415719053997055988838416319592042173296239981264704624815277574843791016962599838558955814695631502470100593541447462920258130308119471380979834872360708213826249584455162430961361880086829045240231774743550905422226078127216579986622941502320259376775019684144995167738111377006112785692893518063585545169594790863723792823641712735460914319587103052279880682734042795755709371188791999349364676967709590829735822267567688192703161917104106769175189442434409365325560073939229091927388851827408251713236189759457737543839228860753505517431484412704913494463204501645088404915047961061641795248604814307833613862790775222224032852998177952478708239235175734239194276977900215013247888752657776327359024146225954802756196162806869849100848021038961958477255100060393405024140534091577718108960880720268311946377568601975726761311933831750581406670332623665719389536625348545118006172527370841405450977263782441884804261081843967688159805081865550941298542109995367134613547691861027491755891872031562389705830585198285815713589020340241256902510356800799956368671850676331932873036184213440615196248320784431839722873118793138611204378776431536863421225704576586035424811536009791657177178910145538798759392775236403990553287295028872657763311760788913940679155806501692761960009455165982152864617944669056455834278771254457734682731638590353883838577016100021614024827594609502731326037348552682582396482521870763254461110413422468255483659540335731906164436199559393510956290309070690471770429514845360263934756123886811937947057242318996227108918615866560678570483916171316346982109132750433429965513815324777453757800523117302515747876218101360560726483132268513770775752315584267500989498576122548841175777996757967765315509907981815857702352341385966379013650107565152539864863870415212659099375736745352700439209182687070700332330183717514294147529275388950728727333748735205575058685497287734584555554348908412804191167808880684943243903798177680683134271109131047304878573607150670432769923739029889747866488458242339625213405767941655060166473574920033521698200171581940841687005408601668198592663803534977130857716487085702496518724735102472289120343208680600565075042556462940495610180022164864233749669417579110570660959412768749987994717386838643763794939069660325136321432828399906039628110063511017431497554645097071370659264683286819873993378309564777214970030308699897591645072004785850023436142570857663325478634600100997232337390962737528782033915277362394397625479518736838271680290839741439643767198478770305970104542675017404631931527407654669001132649535433179771421307325329843364183713146591691618964846676601103021055732067738295893682657185559316255598180395216768601197780097389070626982461980275489995347257996963475244626947205595453047965177959881536021558580327328982608209716805782305088682210399775039439207323512436788152425304064397352898849776715761755775538464326022062849986134222104850456537761875487974319122795168858371220293808538072083714381028987891950701421545206057290473799162025161667978314380612827937153275396843472590180723776616779558314827778028673761016792704532925187683592413640504636094167896083150449279637821985282048815379329768111640023249381108288145239435463143358554902582835936180506647177879396396247867829503228917261227409683750271291254016807171059621616364799899871756079204938692132372019549014226849218839693666719368134821987646751767100658384597643101093996289043605150610253230241347339312215870675754365288570084618962265744977352530910695788200407078521839613534537803685100425255958458231370451374375500658150625324903343954783239773196847373452994987180645122357607239608003984480386953757269085821451863309941659326812791766609104243698779828718246540539261815697044641467348843668472432676724050202996367992431670529127796885196158626152085562992368957522673759157116139602893684241027797297092586019892940057895784139513031314623589656657536106781864089900403641306628368705673349023998992499761391069565416423941618527009979713886416397219662223525388993172491922681636963737447430336830346429801807380105101919337588072751010149253056157970035636531722654025518804582616936400319647965616835566490670629344313727568720137953506839032582265655375321537596111521660030367684359529164409618221857084765919134179520778613895870913984255336373668132579521122614103432204210333783874006484512103708894711254548232758373839712034612773332260976027290181184183450659426912706141863228267291393763989075059135271105621571993399305413444609922301912608105380364267977087841814058850345237796791011019856750458703686752002131210330976348654624861244913122606146489736189937915585427973680492361805495946598451370620532900873439534020191199812468816138193417436026003098860585914458851323320681035520428123353249609513055720316257801293046749151698162565195919901317596732002822992897069786960278458225924014364625170434097839515789681560526051725286147408627275727847538022640141932708808328313095471963633665985597008332154054023237448736971418107649742188086329129675652945785982864346156415247208098868248092065021809036744831627283999033486624056015682279696737250113916532971486947588073865802276470208592484084723279118785649932130351298665366032475191874665216138982740709829445335319454556351047708998767902984609341080133101224600237788799912354903620214445000291301746506783171578593374439552911010293748358956581728637666364396468022254559379630880501842633990507711171190149781816533407856601318670198218603713222812228156537299496955774943878524009775186310789902447703833754133719411140346088136419301110461698180775073211058008221883299679880374850230575386792069656254802179335366488563741211760768942742987318637983567163498764826043982245713683104697207523992284731521442656490235846441468613720220183541730175989684567181132855128594030965811557759188211489549577068751045792714086989172844198765676718202108923935210981711666017347058614140031543278484182483531879871191190404659224568425659980669574235748089859145575229093743548353649660257381358809411937547350232924409818613339370011348706595910968930551083968548102069152592473110637868739129514730792588559666324397874720212380858794210930582671131200431255797660108757250124465476631631338634309181986659298792531095102688955398635900456339727535442423899685379408086816732754461363728731323286832909735677623724751387000169230248549490615508963520932192672733022926100896034606901017561782922813258509863700877712431297915650544185962205981758335949628403712438988642642320874257250763651731588972433791142007259279466557272888397587135452939335585740395368780828126360275957204268454475550533309662276446675909542848799953241452935366291012691590037517806356899800767154404754396911798364846279366493311175731055560850016119321521468433918988096633280814098139587271779677898182028335750625306843599614822269534031261672416755266555216174892427939430176363823291861013635425993411415430598879883560809295017658681791717300702789180911035347459788701481106229518133510725579440983649731728245925160540658719135425832386917043872951288348783021532511268274184517154081910924832375733831528697058188652992899265946853616773119548852971730239280045380331542640476978969500007270279906686287458646954878570418138648027617583729703470962223765534088552839865075823613913278416004644883637995039930511775888170346495746386002435268606691022574248081978998460530145755228961483866895315490410260722626849016724489642100022891610184268887506853604331511194746577657278739453682415376468586582819823622882835010774944462697737448903704119472140608407079583788074421331449581732202296451794258782567046733663998957215654125335635138078784194216831514875052794195278686392664555957920180881414728087749354759902661740813179647659246154548840643263165886392459368873243218969806669493196644973595462430219221092926945269206113812524055793978334606924397372507943171074870923638362847588035661778867970417508680305952501521921854617610130080362641274931997441288860117227255157400115827307377250870835384805456143046577003407134529600206526958599958532074636458595060462640379038734550245623583112282193691065534011544791981077104397729053574088468497241923226020036942752450226072364439103001597824306503743764560182561273341144201587461387872296836235720364342340587882865667511258111010214476349896768455644693277588422349248937477158340667230727096961151520735778492087404269402178655959917106623893413840966487887294623039594629205621265248437609887951530092011514725472662095377867897393512001316620340075604993066470676890324666725299062774883450057784828693220931045545619523393858630268575294255831057639949959674074650257241711849365538450528935794164889646800047194393151970466093304849158952544708337331459003365685371428888374884222510396704109633531156092679105944054178068307763996785110541912006447462543821925896597221271727718044311671253702317810050812955553656604290542480050040403832920972930098480773783528029828907280608413071892043041971848698730484851103474618386321139682991456118439724931860553693862104519932047067138654736198408924979910693601750467946139535580432400528915592319595252661891068109948425827378131752969368204319704892265580410609703280143797528311610069084791413622308727690462322516680345606129771657440329774834899185257216417310874768274619659590658165270096114804747719234155603204999243016585871315620821788245913307094211052235414882917589433603512422250875029446417279575829999483826744514938991145586341555825310027057203662436657947866418533303596601831269362357764146542654153748828825606746883155764276680459329509878933678200885451971129647185158328454672515203848733040887951357483026912960751852249184579147289983917447427101722022513480699988351294081955565966472916187392848890293730210292441077162298999733350375065444168779232550935238491162061645163895282421064137953419980020539643243371727818123503341015628198475345229206897053108180358802137089852968536353223406582857811812183141300522049195031178094900954378631040715133516755523353573638342243928797512503998193239605369363642708655745529547517507043595928283158436613728995966745780393513804003653190274161236831373824550684817299684819141624089710883592723301535555361586387408145991374389670545676549668485496509138358402292362572321631169725577662936248306446006800785605350302246613519395696863351967274527112016063118896884347261989127414119906794266464929369274080649000946682998516765297601435685159208956667692829347605110007355030714211462555883470922620620271451325545044520502184828682759978879593321022227849183769554459582187495731758558474651607579684671643262561599612453722703758348486853291291609657887630997546525006863181468081922510371428495192804599676362126413654167890852707311963778359066044691012029777184872247372764666136660013400991897114512018928816408138573177047997723818214642186319533992017147609382903151489213282071672934675700956168867618184429163347128748983446979893974661415959081120056707267205446154536137828525252973056948094631812238038722325533566366448360525927607622326129413570185555794239368077992338526434494334108876071048613752843380029469923403156824155677582664586426261102064436520722105633094765490630059615900957022124722436106597217501865206971719347392074748077569972665996032713742166081546598088218102289944135276960230575723507948789025475623562994873374215100317026232974714806483484350549463074009054948117636172978296749416621359385671466756892692454819384654176015278218290597984570760874561454559912119364038204974785872948691514024664768460025635267450695757984749565104288625525304947206120664987390467601395299329411948036033021794862469280697792753486669823238358409133337952100677370171280427300890032520662257985336070182157061875757639019502375943443978440613128351229364260891249951689105451490849798230817617920174759992407516244935416584743582132903021999995169618499484208241223941979444386734265111620290428547777426619691138527458977136111791673479197956615839608017569567455311687510840224559687249987049587258776218376114732134390528416057832228075967359931357412693628012040016203840842080924532303688683533629979269403987105720587769193225348154159982893326999483795409378061132607208141497169865725236829769910814091097882228670281690016684676249798366606538582211563491092498252323749663415356614155821491950183478463521703978996369803331776971124269958904808259215171871967421344551877330913562204192489765275600551712761779743406646217212908843807643087455898542819966681825225812886129754272147712133261110249702930472409543556017775008478178514109956441398658158375513444234518088760113500919834915910974044905064317940344908649244447549102569960918804176118027583578298384271165793980455198457664409125518947764813960934500045435343985450387906103901164565446853339924982199305288096659097838592655243231851735444603702286369725420545646321520303631531608223435486785568845987495703653477165193386074095009444529099486570565814183543795919588708739046687508133692111634087436271825019834739978864563548088108676497301974567402100702870853741856327779967639003582933209195594547870169507397330505598933136309994577868718754454329865639841500813270169516798970063006364633115434049220858014950828171626053845284354856868761869578011759020013279566140034848477726437233634330599205791679993533138361806172115680111271817866215685809576651774202485726982785103864466731275513698177568473165206088083238881939829594784378269846707446382712933548071929718942967652555103243489536834482785467341990134666650593598817200947264856257330574136004525980262150223684463379313229148572389106591245988389374564311647315576267665298857327329295410146405667152945713954847642508150565512844633622055360430918362495052571246640381930706600638455479535923847773221131247030393890297854232103357677566699735064970621119172464964232594190122095454418614875040658080876694542000548635852802707041172068871999578835577929875789595431452621979503650791050441531340146794819754096925888869445139504731997565817561473796786127083793602449361217787665661438767298365939324115638234033993338975812813448307528164179547465945101336162781126912556933347303170309499921519382361623379708981267757964113844878059887899005146914967171493017066390936373445738297386007908778916476281870562588226938591968032879392689020571150051542765179674833093548335394645320501145254499551833668595166363234808357316786403657944650181800669472769685021830047148789756199985006011950528483777115402671373425913813587478945490742531371300978891992116435535017116113140710353256302003624775774213663034662490737372709384491847337526653190221394020755881698719717738382823848630631086117046170415727217839257359960254254330976732563766300661236725939939411420603242518759301412779686806143788354999105849025631586000339208508007312086370860466588569760768913029552228857556204097819808383496814847137088640417113516836122260704482445944663360513712023564346062748293105530166857556053172768135043778865411771419927069130784329629493274748281144508368033545957045610617558906525977891688611054284328710832064732673072922289149623632386941149627414934461887463991569603537634447479736775233168388172241122072154178097310544604919122347246395439780405502528915323107643342763960288891118485785508829860851190243444214340430041741842080288952086748277232726180468722270236736430018687887178750201934346562307379856121172451186844871350599133900489773365720466806617167642163942682297918255218802246047347417562109835089327078215034442782536077990605192769894346674339917351588812568181255467714867262560639874356519640092103449124932670197210429034924959009329289917307208593412728764193320407183088910245538532750457453675718139475806843037194099271345719802638702904331007495400569437655905471057447277613695045621952369721738185538561038666493505045824397371173823235528207966429036375719482376896185887067306086443626727578197553080251046646756156118050968695981727325277046557421896203348787977397380214203408836835753447333000155029764848801399350986943837506266486640664994831355689446512841550869762828303166406610149194820378904789933150032221408966213491556672003178861056711891648240866375852527248388348045382679953709084832566506130926622624230488682630755897646412326621699867761272940457555306046493476304059450500763633830562644232559731413231291367389061556077411050069274115192868497690413757958244467500832852904676176253886349357067939359906611549630288025064672379621921846185280108196885717895312124679709652975495773878910893031662083126510102478037397184121448503261364760482545166505537222072192536041510018955842291520818712493755438862163496688205320582487994641701868689462431413509643294859869774738990924825136964471223830117567474852308476733665296365434467310989184125960718224539657646116801287744357056474740771007165234338658235693496128725389904313477338603058704560767670368534301609544735253965378382076189389249565481557270437862946340768271234559550580157276636788657371813270819448188200413400121602581845093963169434372806629920663811999178135771757982655457342093254795754528027286512927371995665925149762345610695748088721673750076880871147092920688915916245441795608323157714148534704907539077969412826534563381587310399955261581549969117641977870855424467820316008805864018221821518389566091294489242323111668262191474611490815843797692507490034407059342288204911500446017515254990744261280687517629746199518700074654302142123826569429567940116419891461746148225377517361191908211624216016299855002455254515635190289540322728991011052415857193403280118190419060752053690633139214860457920765060619765116617312407551127229566447539675329486864504358503563255538820221671252720885098555832278947161964293404137896811616960629259940810405413813459168801604366955996078547481239201075476179817471217701307707819307940717028659492449883618418871788420078426293883764657039981998447840250554233427666128177206644318227431857496594684127157252087755027371284830352948090942091168327937169587149166942074136879291799245263000545618210904825906029035998523051670207964502579604865584955180471864333632344783313450574402067350388038477667420088062574983691606359618700954739237539402495836996148403884373773861432440607521286931155477113379910601250511999115760672941524419314374746941653672821791639533552702865483691413675013255716174295883229412573990969992093450375302771965667848128803041856922075205094139183788331930715372479533411596982740352979967807018644623612514516179666217963446703025659803822241852770652229056246760957976999378754115121436247332643320345191525912440347517139639902434537187275969341301912331373421755132216761895198757374764695184825991921435206993435892223386734049137819361563553161257685285042342984166146730842331522528761641661876763569306219128354535832521663230603970856172717200904688389321141998291526226995165424471446610351068799601462320210224653243462331045285003765674917640419544139654392395119593311096153551433693824410557858832770613610642110235452530514654339880812533219778945149097951556724282438985445213054590506436114602046832262626220504437692341933317638908701303818774913388681211250100548918191187331213785451295130970791004993594007513111462532440036253419787989110528581550850133047548996333563260941859977770596494702756454826813352469082166828217865801132903451292238165479304900338346507557596183461332927778771772608487704926631619286185974750695894840553833334900189347916348053760306893144304923551663565463268378731294185022666428794271468065800966957463415103654501081477151817257347116830308346151789983359116923375871522362318393253831011247029269083023751581263335065188686784768521561774388299862975905538128667634659347091364574038519683925206177496279369588716071271491190107608266153269869608622225862878021923788364840958256105369353014292032965581095975387297689810761311038531193198348486906372618066671095704365755817092051483142965454871252927676495349723000050022603016403235607668840217483669019074567492691481125645743240342585320363488713570677139607815988049629747296065696032244144844767324770791458960188369433336129755495011560538102516923866194895363996715292274090364128522935513861314614316206209299607535044577787984364859257115577829644698484049052500180652439066882939052832246435130267762510867095528447363308073588823163293147916920644649434595233038414366219628618612548673410998276671274029862560984915843069063807840727335859073756412557345564056825717083082562643392843418347606271094940435252925032371604216700864006722735228272531299089013017335449098473614903039569821373693929464669240392255608724537229052167651874709894128623147313098516683339700593350605209587223076098396869087403022628865109483842264175419166889311618101916972452933264877293398719183774831355366508407273987783769407167765071523319690257418020947926976475681398301954053533744020594626021292841820732086894145160299255023851820304917176912163931097726127654272282435880233754435494270340841711040866634088965039754403481105053458003316444215122901529115766785499665179397337477390295073039196277021663925543628073122030660094314776544627667757302789370306113722263362745415998779102473338727714727996925236636877846355880902372210992766445979897621877026511461641840334978048711749666442514999692755474486453181165180831582809740007042308893416876163791790567239622470499050830710737649499570746726752281890953416451402316888746819758957385823314872772529286318631423779799999958927627801052238366023829663407118007685269945528206987251389341178216743470518797758282149401823751640764906184171803874854642566454465741940935419055258946604292124189954102624072546118298233621062547088050881046733661517553743201708561809990902333077724030324307039057783038845000360690987864471777533281754671424893463087689624313179997687236476223532174835339859416577728602778684382011507129780408096489679076969595631476023393927330670653549677533462284861790111164869647096283933852979025233164830247450284420652560948119373918452487548405430797186837554581601521293755152916659092630840280461736588196843852688774022212579350165214434178970251851438241462968051777956892794658392272281744097801745757794263548862270376970797613501680435827771032990815266837492700174735786986494106481044386142879240318219532343245981636988177945106542106505748182486431564725910265351506992768258274185051098340436325418643617573606845308126602026743858655715665820047100816617394067039974182525180306954105020827484834287268243249068461161512091809489710595774363950809092082946751864409171395889355909094885844404074988782528662372794767319733362353401121758471219454607239897073351572379996776515446864573223025256514151565551578905936050217347560750633318056152886862066630138164577943671821910187304308804272761855209262803219523941964803970331666218342159334477246627280342481428936436308300364516677110761853272894740236610039435933993351431671275385016663169958360997799438456374479053818544473202193899360764350371109330156927948394088213502125743452161210091059826998890871651202487775420028188212447378648160822441545574350680943655540341620495966687645464973526781244634826814904892809028582696139960572362055483063647127812373809731267070640336557337797987319142566344521847404778586738635183034320192326894392200117860531280696550938802833795078388360804903963451268501196181095763651590007824573657326593351939240821389479194556225162670675547797058021890760939168203616804902876824019150720892801359005810027715055135256339842167326921400579830998848729954527951154268125208693613766890078411681267715266669048441064500250527774616748242874102408270717010637620258945848741457951715974674019622054417489389840161124959467047736027656101287172457673023525709671056052864502895136083817344129905443387801163428535325423875632361508842050646194103098085001325291283993725392926496882951186770665435346784056737388612782902785431297161451203570417133649036032654676392239512575046777725372558138496256414083421603597609456667844590203268116478955760011412514289202908134667703803429692266726841537012751019247536421908570684491946267479248167625284812551015371859036346976567490158564216534220221414753384651581419487684875788952417146375109963822228783710908916936764208427929995562544527571998639447352158301318087151882943826290964986346676097152683182862681028181233148498902344243800759343169134016027032588722764024342170265828429354499941609203104460066138250060699779097716988421186213412445723291386324785513307274956450740863906868582145514112384298507488803029749381479759354377199978253726983516358910414233940677195861376735130802244087175258092962222046692147654730110516349321448540641819821410635923164859713294674454585189567701234299687177522207604546951271198449026763795120623105407414316598479871960080650262911986111268022359544344582459833022103588165363200795775851953412026947237883552322730099231941717529129695882329432903269010536913492705681495119439522678592142718958503979433037438381121663936165569109644406996958163571676539296652056763249356271267387111857806781251423990648744318004397592580317943959635772140631982753396671964813483246856488891188478298541851301995819217346968620869080638886664409489056884831247964055070963182178641055614203828907195579163446468314503458094867354841127014092259646081734013991463232327813542990911787718049803577559809600705192253076999461437997268052707111699507488687251632116822634940575645392280744663438148694794177410479649208543814895968301018255591072533686232489743584258996996332143499807573690017920584761170102499933794061512736825394714232447896185455644883225924612807062119187156580237565943232021091963751481260098565708916847451168679812016419676856745430756507392712401503293696785169779393593405177279085206791104871016196603381670039146118621990619471534418831461256330608156698462038137873534448877646595159997040852255864564658629542736059463857988112678528399104641356274129251141389715562595720541242676319551255132082193815734204818328789413472341255744249619023892782297641247104331450157166343634108742463902776067732687572657847209749595641769276574669077255014086263181345996105308477913211449586863987339324342089718402575798939817367792896539625723135080775318378566775524900480940977396927264513930851779279212226748321876236151909555412763860543153145396141440194515457975448197943797604326862529449965400797622652539771514466262094450166644000839568194657073370560292873908980113427983168895502222327321719493908332805514055238980337931923620779641051081966836444823605395103691019411667636831858351226988902737344808668647827421339857397901937008275337910717413574001750842618070324596367797878527119778911563845794936556910969394304959630647476530157789399572715024418489318409955151763723791512347159716288513059427735717913455504435834909824853581150669511082687354283651231597978177634641069137528157159980958529523228608916702035377506263331714321109778400288530530036082055039663474915324163750136438325453420172289120124662251810602233359909157869650678625905893691140540464354805872874938216459108332645940746627638342308552489401972441465024344232113179127506677674874789197753069011376053180256619093922834249745251753562219799430268176514780309387496361644571220616042152339499196348225570503337291860790964151475334232326114085511245546951766317471872177997736764117068016927848953292451803856031797805630414443869338496696110301544685215549225471271492054214767157653444342444118508174243646946938848981017077297525953604076355285487743375474982204864241744281533676324650720724213837579722513956534316232989022013312232444496463739064739078992263672456828102040193951653186954499324504512755342817710553515988131400807317744630667378684208083567364400593973896339326111752700541239868971225843205553546007760333839826256686033146095344093866225128263172405340400058144853706346401143405615794938159253094481715410494091463472600270819230140999001516496260265065944289522509894743086745617990028056832187070276982324482677476205389316106466014396556508799164393048061936795281749442129614681121297875292934501106077930839009038222427640803485527934811325462277330372794277046968756934698425168810207401200533377828632744435768998247097404862616617753145393766368017202606531913896654728052094830341698139180702006070334888284692374771728790393029103654003410297013586215280105443148218998953555161697358216104369926637402868223759351751033047641218995795712507560551572998938966700165915481035815001959724806241492964680537079521937920828422374023109245953719662147771280142850872466080741366610121402216067310173327321558907126785083413391213266506650034685736449068342346895394109248672637363043558972181833655670900544424672483910198452476739449296182863782599113233666367612549152326510487750002584765714721341562909414288415058429606500541846189581089528838359973526022672929903335279074526421201503402305174724371226073265907889019708893862290844139001162709810516610948499277610104253462027299273941211902354620763289371824732799762039740560060031325320387851332033395642623764983457877871254039716214051646575029097544895445421773234294214249780144014090043747678967122818829759148197040751953233034166067146283543357780964097264363819851731460635192520909898606030897119829794091753350712541256943767010410288778696145352814142724704032444488309873073413905155769217303397471491822049497723494386243771789695653414342985733221175935525774876878331462823823408016322947760669651015409978609231343434577361945678635464262832007688099987862432482578482313157009323903200946612055956000225991549164299991479970038286086912404261721934702573522547749530096488904225175825980780252858701407520468904996121081393295592146681030217466694550928736782889840383875439412308158759882882925168784531261849450743642474910419841233510671757850385729292261649180215175940799967361143507408326884980143818767013681854995351601516216905336016329932490095027983043313020841230866038257228628615102899716859816190198031511349348154384307264020575179848898331287657426062961986368347485646174080360356778444566421324020129953867238804850889570265595101688431882615015994273025760909261736768810149903107020258613060327255982101280393917076420100239854292956810878033077125550779071914347677014019114904632900278585079118079007977266450415520780569222028822244938578756276422010846287569824619260476670751015831653209026675966794616674294433587075769908835825895466873627014896186937618919308861780388270036584220247216739294414280068866956191513399867891815477868871756961859583014616421952957628672566686869195267965136792812929019923959129895106118966536307319373388740651844445942578053097623966076423897373163599898526238402897955545440852308911937538266663933588647392578867231088560739587599261759063675624627754432034877463546866892897566290444336225655467048361637120704651512120843375708728654467807513922599816446253571945894421864701146488533496114709577664171470269393475077917806111866896633544116633748621315817288791008279264567823452339761902452259880728244166473953342476925558297866153098850185769429997167521679780531493614530800309241406407619162699707614346297181572734034467076838937949968710410474691767585263368087016926026357740883040428131968288921323431710525006659695964023236120115467754483778187918669861017115523161206109163937881185917930974877743374946691482093584968535892153548550912342013485103234937482519902731039243414465467503460688548670938553593414279662001111295882461117774873150211007938408330737698989599252074044794536177384476569413995013326113926608272309022862844618728749501185406576778879499830537197887805435650655052586803418331066096598153974161607228774026305756617338770044649612596042107073285879248757224499369368628863619070195692792080990931850355259477823045974769614062199679598705732886176508172296977423263483632640654700300719899240794275165783188123465482296653075833035062243389087000382325834064086576450937360600599932922250626556798506008130130946701259092492043936296845558871080159078157702158334158583442032130804102785783390547114813998348787500205481064220884357630729745252319094977117374631484892355990216514766102708215013353779288435781025680873902924805184619663282078406303374796097086419244782008543420761912973304223011886555432716373100522018560698203253575176169889917224930424630560944224295642930030010301037696272605303598001854448143101680672676614565458791827448268757828736454552911430101617534778650744764688437017608780571834243902834207316812945772586384778535625243237790205486621594610738337878471701215550248361858547974869432359257076778512984172723208057331676845280692809261557922849974895008813541357277078393990802151850182511386669932295502577628354601915345945562695039665014817818677874349511192465763494762029238047498397848552440001886833501627388853274683021778648792039138539264396085947794853258092218217104676919973164685193394147681429094996811246696572037542447984481055464556344395013372227516262085147147863690379651792055948241804221357850308032187739995752030010893864844480584881894132990159174249916137496330528414420875828645582059263315777453589627700448275516377035690336682701829446663096986870502351644390600494319753037500558260136312468762815542198787107624424529627720962738425353806459556706243215644552120126142102735195470210299483011820057996470101341929797248022263567710753273308797196222712284976495438860801528830374539012985447101410345429535300621340500594453459660663081209114123689733417377442549430092027096622455894767812029151226892624278414355589524415579157735042302615739830382191674536672882162264247132168752697369543053727144004431778405134389400711193294057564398520692135035175331355557933170011908850521832558615918900539974319456005882065147821521140425161893890393380795481220758971390591631383653099522253242650605763558256162970809751964800113646940694238596305045057240600749939554294344896180719563969451247657524639315495945147535535249988287696723571206038717152357054046530653403032427172827624001301160870982735985033699445031379989446485518069255855984690409745205119351403508514972465427030183231795149221356928615984636927773775077358611971241619728643515905643693358621660812382607312364868050953493656070652240359597715969415571997372661761180924542917927054745349143883158786444622151194314269422504143392450390404279457093230322472521726294524494505206581401252014216028479968779537332496291608544550149769910218681728570617386590681432869029619768966939974904616182426242088542584928185490478148706166750027051835323375163366313911580985926271373088893963056964605310114670036613204506603990522700435168900202519495897654811745858360870496330558614483795658277628364293125665404862521995860813033001141191320970815099955381310347754075935739733207745109473326463043821180764321472917444654799766880408571910433876577261429884593380604891009829577784232308766273111302820797469958952036394978287530126440617433467637259533151036573270479375625913694931297827214720102905871027752460615562423768752342358441199397346781153453429045092844320977440290024627791407250687493653841305421501109870938987119589820767952542155851089139385420673715029198396708959578195723122336351760614793052988290165747196855904827569956752774453376635754551249796163919871130165979248739804815806413647291644862105132944910831903217547895097439092182922453021774197885555537572923818835407237437285705428235855007671291489816455800682947670407228542699424027594720852900944591931840790604996624567492067417292834722208702362106185258252284982621273084062119673678286101638156090703252801406782549042909850026163835570077972356505718962871801628002987252626117783092439781947693138512164823046287358774346013187885272761508063540694242921183438873308936189046531869871004787465158815004756614402607264078189551774072453518856976207519468352635485612739096465608742629190922610536406362411045262546498602636081453825493939554008637262263981815749364365580219394463755237341576448119073371304607287758909416253123397412582620598429368001478047890997216884134712543734896944967857976068140974759473941654371759993087460030427614427273477174467376673600641624529954592165352652442428318729082679691247439270675842052124717663532507041171723643883112196829884012489012115640364626887573276431538063628636330796514332905059621962843437506019538520201423580762362847909694120600411337780189377508155001302682655709454464078898079437384129767539172386461026694301573916559482072077377735827856530787676242080610539801590038232679676116344689817632165675789854900270513453629277330801676731802865152664033269597181079279680079569808446651916455009538047773730397350584139228453130237877163412189111542790887544374472168419987533945915619369033546622882064578784441309910506288065398810208666727683577629784050142584743770010322005692319818482496583118730310985928588909596035003348685929452659950013875836096653570556799872972489846314962804788318862848662565283163081303524104997976277994350959792038476850379899626032209547676513830683093073143559720150850059486281520810654919703875968996167153873453308640835028646175978015125019237507295969546376408354730166340007477380229141283660092150139483726707598894513730946626912941211786518159548426557305723359818059489196091203762923094298532891862167357360464055934460176907443532091016408468064176590835152299573866688015864195613129467952132369287556913258775743048800251072719651736260244114291231067974361604970010578426019427635551323977038976143447236150309658452893004510331915510142724464099677146134707061236680214773998088225904216421036770794074699808506121666376122873131791378224656599411712681030850166547852882922960573207567760933036574156895744606207559791383192606942451336814426808693077174766355788918034949316002928937358538704402792546760373045572579024552366778588869076504077376270062486369842383224486406451621046178243290075742736729053626130932393854059206652758332336821981321575480474258893858297162890857745709710544106318572519413370356142006657566625555025321552628628924556982934773379724920018284590865995180120399299313585514531064333729253188703857927046375376622465126777772640168868490604611516147269769727644376382252572955185943139725092963567142438016298956801281474982457402046521610513346154741268662259726002291207155435708615964838948673797645175906761482704766825521295721906431444120946685458118945471270414574147524738004559708848574845709451932159685831292927709337960575484997655115802460287965953069554256839109665772820517780184328517336430400819658241845561943484078350483377830556513465401472895578860684618594012813267324945148410455060281657654606589462449771234382099456019572607458968014517398043663649339676848234802680455282509102231767035176813419114724238043302517535515339177277202613604160516547353021169837914041170991485906159581702007532243469902052372307891385839909227209477514896824940152867015865595863664824184343237564197562025036545684276762685007821677679005697679665515295804925961184488700866074748620279364997312803025568129284926234829186303363741572808304452269381972034280273937759373614197305392425900332378358049514944585578109843349147986107032407072108777344999685449674527476628062477705875606139147451361710795082933024309886991087555185771930418712831119723194647282510535017379652844060540816171024019515163348926925453336148085973658787887742839916603704715693337259102061371962395847774897931557714865174894735977793311964675533090807461726304756619319360628800939929678036299275337392703617822895071130522442997213005004696132013826468777456724428035394658034337722111798787459320057814850077488000164687098965844099656129616908837971920382529248197899426144464823119300387030205530501679810680132320929635475762454169934900183510858557162008289253776203589539766300023808865385346370537215144345020333190685025458187123714520821251279593257612396710117249659309119713592233462035825302157781267468346672383518395318353955843716303470281488105642613067854082041597808849504209671356725976042973776010046053245157839843242377087171497080462681792252292629006356538162439451727350533552606936515463435827054389172691489270186580256236152415938653027800312228183726246128534672503986118944455345113119999202265496398006755926753369369809871595458342485113057634220453393703966286903041687434477792656666621016422818576475090731926437263765815262901893054114641054799973928999117751463371841816323562081720576907240618705127189623510297512415377546728395301218440578770627862090089430944785054392476807262271094156776250736355368619975728586120302246583391112950044274938115452894092691673382049156158676099646207309507414870194314984771702678004172232085797112705192747096895245994423759973917584773691886034733007875321144410331952265420824678118619736920758386083005633430204031376343086034530019651235406960287360327121146309278526932079167894687860754527101427378915447305955498565952505379668728288564904742905465357428965721608917231562323846901264447403844783336109838442527360133662168609771348083127063657916595363882000331536901979216456225786617492096592507449624476751905515054581306428892361300056301844929830229522397562450529560146222953818300081425388239706742139291679828808294876897132772342127488587476856109379923922014754948679939687412343078316731720562745204600130630317490983944223995285692032532688008733600519403588916552742771983934374049631615910136832922883282882373828990723553178062225554152161724472611149414807665892107015835981100000430483180979032063034616942283858943901973575408179473280801703180145291969492220432936768536196197917692265246125152441428437244195490438387053600740177403853142926952040045322431648823958724329596447966187065916689240828000904897184152205526674370448022521832298503835379859675024912612351722701568458661056084858411263971646288550336997931331341065189950499222905576062696703786008182479406539472117898149910073470229284253921976722268167482535700218494551242437151543408760936732765474373152785174430389341630123216067731013833662104139818849476065317600355521763459870283183330753706574976213658653752019386821842950023015205509534200967138593871772078531202804458534249311200900023380549361073682264178871963720460437244722820890126920923594437960140972881086099101551901269994925489252646191015363972945715907507773495889817092938258147652080766779232899004513450312535123781412541674278058024984201019703437815056000132963544045275484874145920383392741217550611491226341577592142691591697653132382429153737808236142954288836398140119177901986858844433307027561748687494392659366316665370422154189473604927955370999652330319968359990295846631966962851119041313238684741316301273282389102424971019190785068499262558501776740478138548752575944997571310557460908800464701411457970474210742723159867359420909995347735902202192050740611368146736948930901922287994076062543000058298804736832328807479076412251545728275701554081224498184502578848095495362336065081405964428990864128069105632252950935396043076697288987918486641867371217631622381079383285263739306461372003034147465083486598590570662586142589166377919537844605456442025416082228299995370469888267585878651119619901484995479288698343938129930961219311340933194892928921388132687640322999367206811454724194474472202807546161004239849431086789920471892843927355389016940012638586334602373320341689746106522018372706523347907884904983937287266187987110824024301138727669067524992356019719874954213792281414988114458310260797085708827905284031488789838232513764399947161415799124969276817655283400461060194337190983051129286459042055193983865120258963152290238435498444973570025178759274767773322019305168915916713551016266778625090121031602253172947781629913706152525529981678282975221333145224654234939648106236001788369092750273434460242256919146944986276854262751882138015178963728483847195391975203807719022619197939091039506185683385879770648248485669147348407373958139459546887783390050451565460955366063470110978483635706858571563311317294960411689141361823900782156812791651028440716695871101643746434835792109830494660076250220218193459288698894564042302516308842890608339959226997713646143055358130628885253073972685886401447279773682914047432723008185472756058821798247809828500627576860699560642676813638259791144964111753740139369388133953679030962065893846615203386496229301480518002345101051629398267430691050500473907567377623443617217615599911602519658467465589999359088317188073648107030213434501833600337962015501435135289722286744159155650927388411957682157132448398439574945783198612913865705626524033512851319598310295290527813605118483270493981298771990927411731488174534342690715583978869408529983164962229557902948243559467461998271044794784014050946191795548526584307417835105572627595459931507396293807193467862804871439929688072708709058254112953978719140220131828905133264344117287106799160752113002076783058317093188064804584958309583835536604270702633872704716505699749051240653286016538311089259492946836670539633966917344564372911052680800467200604760375559270314202540805210671808479648177198290542510560140808262350409606853924203021482672225809005466350599122974099497931286865300224912171271908091280478102727077275034925492654035716416065203516716330876116963447941871873833491761629266583558959271713634731102153949847224665054551236429599481536993557237948413242644330832434664802106235823364915879772854031388264685941266844165606652083816923968010675220008863229152655376745426167136724995304646647928013893436615854690846141400430310912762277253981957352537602227261726051447756269837996811968771891300156521526409336920466313137384539921377001713567447575012024082066620943002656014085710749843730331909771051972701697647754290791673696534630457132807818180681717178588510227234327985039153451389098744470562609271985878841438010177513189565512813095529904241859595730591151196387518118893176759740980007575097679608667290315740829974842049061960002259711751707768122803273246661880991997596828617684986787884187835511092837321876554562587890559008282111004967065930220866711951088056868619166562801778735983155766051745971521902223436357103340338527975650590395221429548044751341660800375996204522947466897772741186943986104745138177302131326896630165961630109557220200574591955475624318404665335220821471941702129802280723194605602768886457437715558530249388523939836565937968179218438135474176611632886282316182147157722910353794422046987159334346532590050967979983562806407990978915822974559583992324802401681424308424792231866440265689720547982238348213288078291196041435364339238349699689837615122813627613983833064908482766171688239798482332769689844153867467179729861790097418779500383398897447391418485865077868851056646446159224308247835317892786253168258968683099490360605512901203750203597598832591120737190894726140057117354070630674106092610889904806518304655484113887754860520566034122373859331091839543482413967956602594820046621540159421636785346326797036628003467421191692761571569379728031116000848087859827159294280345178864432281167493595314071360380777983027611058326684449925173462783469836797253416456540430857345427578933187466192746551138830910835448002088825926219319485514962794376719112079150586054404949493440086898593493174692166967948159300265763114053116272402119796761282379329900049060297197603921497662386652132153916522395489054626882858534253642045954037108459429012382102109744837224124459750657875401772365682967394359049804831103772656942649106315753387239174363772037795673927090708421784339204908896159272195252047808961179826862493747450949666839628038098449726875165241572347364410898197869971497884443162798051818980981933988568026228624422072686050238241491240341111922137736026582878178251447767100170288066567022472118961891806379537864080658405901325770327325376292608804487446533206159209564188412739520747551329086292189708444144448817639910679423923205626438765788308370866531676502599399586035127608534087434128313710097597037964092238522170891456658612926238009033997421980719640394417454740916053262995255686087800834354679196271302230510969930585676861822888108990259548804134618856695160064030797929760292019360242617651136099096066005632333001004849117945677187485961435318950684620075716356359433194462793049470738521017994380607242683850809321203476067929890639870378438379584413164435808248644501860831746899592748519850951234818152230953107827447561646941796027321317202717800253237314067398557395952131211166114404549177206041009004844414803935952085880301579230170667895687124970549306781754721268126199326753507543688868783562692721856655886993762644275381925216700275423069690201901412017427017028777550892211645123972625881917905278746646969417684347308816232631944259862263068955982917973879170442158065369166954198641321918134826916195403354218750420053674893304854301136359758441661311765456422877019342345660470740945456681778208997640687039694632814375681103856836189829392017367676898600508205867555158109709622810721450928880037040884806263378910930830855377063345535010710257258838346804378164942063195719874564453942397330938231326763291904956113368318565424679461742294712060408773446494161188542925464455677566469080652658399589119292002457281470580358308627524018973757756093453998735529226073801867146492147556250070065820533636361762151809490118755662020956872429476962155922289507571299047485497280558099018967390021151492553456553515074701968937314430127885476786251471844772962570444179388124365390418009571309303932175426241241966352021444849899732500258381882485245298637273608149469312065328119238971686535287673222099922195450656190382035632635037261263174524533584817516743464134117102847658736513479817932732407337916447131967818839601614709134737936110156676853168121854086432206584827828278508711220129084334520014457098032393673496560006444512774766189719138019579978356744071275232871261565465056433594625274819909088921023363052931520607611813911383346761629132366101486812621874278379644056618557642698111391748967221794088079894906514770954952180061223577629636997279589287486201367386389934823779472446768876093135461193045923380016765087135560754801801851825085597824735393594833078446921248811069669803347195002018971592693182928351403991784199286165652274768354720241770114589245830372865810511583133959510183641288302360622722108715480890052414018776813895564667652712589381887773831085244023741266710598549551655364061362307309985719105445007344385521793428945069900575531222854339202079940150003314977090901745475649080278342946024803079286593440906327874605113210061372822083827010887404805244908977525872395287542012599512218969553608437525770107702715694430142066855307053319293190139277947612770221188503199185197043742531848850121351177374723573632984299315120712301497397515589017023486183794841908430784176806375734964127501692097235480449386449636550155671083264353177074735495860274839004861885190115743908928140557647711226466366006937198594984299819979470233922564552454159516265090200325147614640313019664177310521669426271900934822831591409215860364261564440364044864692781685982872894339734520593933014722850689045411977221615633562167401102852325434142391204514555032193671987878909728442318954000635963071092076884168597540635536715723380636911112082528747725443489507835982569523361774699911240672872988102781893579164356485958237311209274692089695358005912930473063203411023238313873698486990110111749240738554379402350926279025698917184256814728865828992324001429712293400331869487982507740794115164340329766330926387937054969953081999245431652883153596434768435149159611316800154602104987968593651707013017433219465191537119923953017852323940339254388167261833960380553504266001992532446760082825942258347986484709465523197314657533509424678985153449859177164128384400269935235080465969512995817293798377419109720086432695448254044276249347497723353391105866067444034254258371855827299726097682401336432139203369706230413838622601199781395020059890157707427179748553229422832474748928790451610876104919296074857370200168684731488561171454374944688327712930919850135461500102893776388131730213072926543458280583101015415969610783918614993897935902687452814993820794959757459144015271269197696010383757009261641218512249497959611088465521069708219629309476111347080433109408631122410843033273759751276552897337546119532025814416240156928377452642774916924327081905822433813276607174459932772921952966059497061651880719673654083996486212059153681234549754628742887525741299306638824773504166653036063135241963018995994907929316720721633514126922587540373078640832383033228203034810369095780168072693490216763679879126813859000943875587765504370917163605310607069462770405144590439825541659576610764386953603526884038470302028092168074664638024639934624287385072079840097479140360761471409574309626346974272460383458710325418234683022735388995116456317052249004598802634527625046168517908849061587795355253426860210612617759018643218366775873286446826256047979836598079504818778370475722037353725594555502728372955473057922758533150702300039942052182614340174971007704949029541321908306441715590261409901002535602425915275297461279329939498580711657956764339060737762858847928430756434380595014316528216726964593333624839336079967408007081108600889538866541892648520693155303048954276402910906305663213601411256789764283750578740261846114298912291439194198584674010486367824375575738347609329091606086223820513324080714659654614484165318638544185478733236043643266347848661585000191188146069880886916249395698711494479896889668349051122255064052527631071168404066091418132645841063876158416472653607944294768767096443103380733043235819786462172586769558441962860364717302727609352945350922183588853050392066959921745392691413208201127191730628345601035615193119084854018880145860769187242843082396556001909425809616854206396661246619031180137195937485814049110104089732056801540363297576182473583212971206090557155187932542441253526059706922330425176644969550158160014345802376121850135518683394663304001109229597324710389717233400484916729177003986893280746194572119134779974502770134928516628797863460768791885841948917436416935675357526006904429868166716676712278800463076000866630711665609752472438793975291197924820814210627219427095528561756212946119105062275214474828747333709727612608292481204504226327130619046206961773728261999306468709353888947269654618581254954812799259078104849644481417201939851431776482508239949950765052948340320303063982638968467042502253586533821892159902257957842700297765691492964764273106019583447967133544304740072214725350179035051499795770483942826893629353645792220225520312298315149526653089080598486374120092759894957727716840894502424076724480790499071800925617023013895484048384854626147954276887851723913977755826014776564507127571478157305390886405212538890677692476537236256030754052048975158574100615834897649762025956647291903745679226805489724598043327090423497347719483175877933010511942001908873734067585781874645942294148894967295124012514754221450121820480225223588861639644281031702076185604711496414432016451078326371594051701916306637633403570979739184952078295758881588532095415848680384950734152039259520670299938531294826256869780105613220551491716102569227257941790525783476663292298993390917102322803452590156643485848392995782011342520257580438346749060520540432197182607926593597471619575878467221632393663604983207775324079772511374807431028438773235189310489786562476671412765884085255105344977373483537213922402605781610355998116486457117332547364954426698612638739829140769957912076309998288645189999872615076360471779025434541557631647414126089577948673764588443175298021112580285731341763458182387636202180206874219768876917894842718046580994107947897846131387425494554509266037243824263530767627027134707856890847207225777270461476499979021011164693767411432061782014358401115070549274854540909863570885611746351123093582344276082859810384285784333287729012365628111235299267979037243391726420565068898409828110142361725792260154782354328638313645150900108071913926319178577331178050925987811941687794276906713197161414260089473713024687243568571748408902200880088170229893841549337783172583340491846361155665916043234502027951800625904502876918387176843088896321703534647321866580440533032645861797867535089271086042378702498501824307724703657623226510183502282713422653331953816872234773416715649359086973405887469753992523855569316896029244456665359353633357618177040295746447821427283262221683252825739228413001897613743954213560537904079505742362469434696157857135567769396715780374455101506857940198790997525036991843864424199028502539952386770491072378207493864454729315844263838658313226182621308816944917272701305980360451869382403749600821694926574978414181410366025361136145718091762453252806036348058705348589149540170792062903290874024359155294073755016649865864060835295556799615279690249070643062119619014348614522617717801689465254668137909554523460474560345986426677946600233849748816052008372897062923213088841475675403193413146759478924504133396462314607240909813764091403417140371225212675125208402723037609359564611296015190565864779217388467608760209405670803940435398549103156525177465132279504606011552951775711332516976712630236950930340588489240288705955672077377026113437165957024004810567690272040907742299695220477937728371710732956236575514660736965624666332720090838899871216719924611946799316144012968360999979550716795386626408398532454583188761307036398660125897336622441669003566605026380853389608715375648644255808545523257213596084638396625763934467278087282477631213018996778371774634932283968400114370215977099078974189256989473801406966768427255388332082897600265730167026136000852728160884975398487120243898275040304753831606643737658850449337519058424867624908844121015795003764496747835975625526780727204403658336486028776379088082825005637974753841157613375007217944488140606015203363367075832835362895144089205617331144012303601997392134214126511194100889698786073684480968679670681800798074247649630400499291687463782220104668727889129690943212158930133089418226135629004841576295294763851387378009093676496070321299778575588694359510112372246291947470000704713989131857010752960175806236665193432719662785328720122844625692905976646435223560974252953144359666148574456133960205764812965358444144672687231678903842409820903547050299927936411225507253813818964254458357552212047439133442663687085036936963166125865324079000649024717537463431510236690881797445875247970969160730874743843178474374788571331511051071124944696292323699982884985087182035437539994143245988726850511795975574881427575348711692618208790874306965210992714283792723243453218003324217621677554984973061331935911328573507014643110855019151230924171088753649505828398795696532892493598380158762974823447431735578335347013429032594306999622086522190473452535289263738777595622655045863218407758806089512647660181583140773172914264660633054494048968260402630289440678185877957317159832231631417002602463352350491646896728165821135574432704151464247494615577354444494534164326167795961952539850231653343727946204736156454305280315896713796587205003690777750724672022856303440888636652722047779195370046562118246747022796705889918744048459327728248633811309954182915282379972279567032555130812715832886275773014198636835462514782974056103137621227820204546098736102939671114807459931717401427127559578116006719389528397457911813823194872189980169182442419753028606139385412929173375338811318755394068757683490615608673816082442378593870882755237177417865506791702856822796271941092064064332524900311384359355288090022614441660779326570314148398306677665382123999226100767786547464025774524182420476104199429287475511240107452207452553461213645539192331156776667268673985186537615637956630695521829109022226638621933086413444018706564410774204530679383627482509526342186156235674250568189816606556764254621019512085245073603913262919983089637821363043231740759737020189323197865152808702249527652344959532587506879155756389250088978160553613709055127291423407380464054484014900399252282175139996798167064034531147861805980909655273850656063777267161070299892612545025645765481103956731714009934368001011052032432677445413501018455176346928824931786038942747662586387988866834839221215489438491448862024062714441792855677419357892793926515130443411204039939067174816411093054732598655152521245805135529428880061487483905251974969815873738010253121959882913576800570994997582186693011360151121513880675675546134524884308094795968862885472317222156900476179390546080948729981507019020795896107902590812192658962608579411222694675479094340874855559803936714134881513976503434623286725883950199899789918836629412060326639629412721167355873701396146084415503444721920860672573802479501314550755328263663876099343553472199773209747639866040792927513239007407381649770801328253379420546874100583482811719435065755823223731025234875420171706878223030483465256334833529287776003134005092659562551016837950342711148942799910740247402925356758887499412577269348044787972868042683153906890499592629704064842768634506058227735363460321906918042206787888806836287274828229944330229244339489055612620520155158424858399150308653234559579200979923685356988970734741789689092895144704643671544659686471542377534059984438711181043241308434493238215582316752604286902618862134211807414049290289953743465090060270187021814070083859634597511530399937361289495664305380881184923470038962785772974099843774652462742295929564380160601893024405505071911661014291685828872190240788344201207008291362439856892470241939879320065268200364680417156116829422049244285390837141867407639814801586641746142442215501022380289183282684148824828496027996572489084444332647820441071140916415240838606342072800323135946498841799683217158779213355213188686565319545782703733352003325797116698620203237255531218796826458395826369773384267178775584308426550263787334817912854072373694712666383147281578431618150390902374818889062772324282004961870548998329118244811886660487893412112758816507114212467475439168344429742463626335366607858246641456995823896718963572857634816537825427933619644005112784813267645873322332338963352372987840367431740130789703442895693928318603336877577948884085145422063991380746913310013314433681876384061573506580576409129406425230765624893908858666654496507957287847134289373475801103505851441687900214584273385559084621216302359754446930853518979674785291306523671671899785616460913277569785351899208208797229810311083434885452027882948564244432090033912239305443378105077054753456449166942428443540536752704612845428096903140277726124595376649216615428698070392030603961770659304645581528945410712455719578063324375655238393659417411193735799948222893660380948302340100192440065556215817752367094191403947111585709912381983021351078689054846870021967961281638767338793856298956005112928266509862526327080465870030963131419627000341246546604575162853292289521809559502688586528091336087511055373968808505352617492263811868631912001837880149277604467774222053093534979648108112975587396315498506709564896514746067680963395540311562798138782948773670127983822480211798318035997032598259659234833971640784882659534156499733430419164488214894066828132824991800395216656205326171852050474126262054428976964366426998074902148975712951837031466599162562289795709223990838782346790494766686269449954767292990545241676912065138735127511023188860389045000126081659246486893100900623175446740660416208770400560728457606794681053185888779620912604234988687941500748639594642320089277299867325223846685311645544239577725696649651903718223508877222913375184364189843527745305180115620029844112283017422485805394483847052857413186915156647840445669947182743606514011012218926924391614316639667958031139526827194721488535566494180171688586931441070143218005861793607862978499265345766930866115147727546777238634514155437341597154957030979953891973801265361297169966731952516250883082002285733649607579851520890418122983537083588648248829078806478491457742455574469915742733259104051861719748830928917144921795483229333421507699959547292847204797674415328608938594250759479205222398838531155688333884340946414892207102298491387416899962680537135370496586174576433160061083135458297269769841307858100215900354866091009201943576172742836325294830821992886014487077828344313765075511370534473724194800732771094024501703563293209229612880081944298006191182674205436429504775177906083318453499185791144770271356522767951702470684207662265996972208109609809336329688658467696180511247406695617784364633266556661375006465552248467346990467422296869336340141861308632180418480351764549938990702860601633875574685606009207814156594035996770463493375560659118698803247561425756463541348407865969754716863371243304901923497965782936676670091151979126912519221164102526453766827903410105630119921690607414124169038855031676476323539250760785045030820573818327829523272158498763232867260083581552775637713814131459798870107268189876536055077314486859085440966213351265687551842408261035761259594005288871642510363534834673637446387244493087759007347901425898626407639001651322822585970037566415069034984545797069941889951390111237565605436946248240254763312900398356718028085223033489526501385684638254599698912363347852434916324240104045127656706527300988249170151019224043827278471142445723342000948687130780442818059178486398155391818529085564960181432982265398034624667451197797771041744312862308972184009759101600344083782811948570058699876872790535166256570363189208689509169206387691249007836428253475047572441416809932124502536003733011686379723219629754775421407047728036391912910934487564354656725759044278179007522468272548274553134007970827036005824034864962340905657562915871519144291824464728643468267264166573494554647986633606200112263770490853847841000125193713586249903096642963940508523794380789259751616222900398881452076068394546831636563594896515693117308816308546474075226588407649444432939513239969479665529163034387145671757036316462759906428232758288462552286716764339073605010119146392555913397448851832600529260293720981408740102075111699235973770462964075111910963268920668488727223475504861896859948452629609702350521323142666183128861669240938361731416121389382260203744853418375506190372059923839216155143215820738570034803069292944375859114716355398043325534359212336406865562692498066767262072235781065640775703954904186444817151144165811798958273286626844736293926674974673175017875642010644980146159779973988263393414113200949909931239374156926108030752197103488895080866167666571070261106059431013295209287615844779573759266511617426899390655237101266888034125856837140626448319919505489960220362547713067532812968765973682975699743949531339958136496319726711654689930006110171146475347139504499163956300616477124587414183607344704718410189055586703768363241741176014564743849720168080089494427820672746349332641969903014484133246485503163033420697310327429350376156420132897038535713713583123968724763691454612509694167149939452768223714934132985217780804975597084661870657771339157979408454265470397961441486936843046121110867080414188022795500713262606336745589642078943135720106650561013607974916885691563869651248285499462565439024802662756098654646658453637883461905060229078067782106826382015154828740966372372993505932837556132709669674454185525334669875608315857943208812032060819417451865614654136331268841418368540181730662953150739479492081094498541560524253726578256747198918500662225536836834733980744458361836432759957549124166146247357203656166809885561926795429660372410367894760378949296082576220464590831412516781657564348892876271287978342840275331245232162647200120424696857766921287460322454016971505460415961583993777639741961079776072969666714709424933967000856712781399920546741576890733750057909365845671523191197350030293332243050903008345291368732884432380175570046939619093766029044678813253645446517962463530043326777728633996760907114877309919503532435057680901255332458435629763506208282239048684066858156853314742029360287015223839550684685978937870850196183563246127884461872643731418218128735795535184654471361822048178421491240754237949769708182552544455306422504886233875261719445086464601452763122591702488370316526407749930655748521349493920579901739890099053003542743243122997121745231923831384684275415439119733063109761115351066358158933045648534554452301521488490872255855516093222048033539605200818593832439900389552525284437068773880404998208371169366701579428430891471972726834175978434461823339205511554580730580906416093011977954625929695395698895399493909012073454301343946004919895276431972313061341637570732622577382857945517680271714907431502739343378842126106840697075880197291216961673547397819908482632735204331342609698612173957267349207046356842192636146459462844658300718502190542039467702277659995502491668664351106985561023716060168707842645625289512346587218246695785228891323075273068858141937235640715466049632466127976270764615701589028893977322053549711430320736044699473841509788694849032073923055300418241578199587510727466125317943199468625367226881907194314190514370503078271758599526190110250031479757669896375957407652010952726897928158901951467153599610678429979157269314536439241742476832858141346390423962431632721209981285071232687925084496371211539650053731362243539316555585465733057805826558404332683754054822326344981111735029326663558785859458605743339674396948083861906134422898543864151527508714324078702843104049598874678709510430724497987267079753916511348544549235578988611865799542160513789620508779972138146033999667494359662028507917445860048383421338718891358234138075220413519498059101771318833874300093256434045691758689051672763363786852525023531060728131972716251026005652695332507030378978239716588234642223016913390460232115596609468838829533027260738723364468499548558881174778696193847164647627546452283697452244657715897251272494952828289354638915261557286978389216676292780124552996250894502741703114009941760819564101451630031786443017384181545577300957191786175139440805407116810163559066926372149116088367521274812947968352225109028672995305713495608353275028000402583165774716252518753367040702698997902540090059585145227505127419925241331914427387200382620391793480375680073243582314346011015944849095587821589819109818620552068916907107305285794946594708954861114849114396948628495218521610882543963416874179031342490566109675906259943621022731753472992065887673183323900291058543299890089839762475382061499031384557991640112039878835802467902126838900567355818156720712471648207802669535539183980339231319391127753731938974109349338987861642047094163864862193620082160131289492985038341856768035541436654884569513976221580052161122494878592921913875905440589160114391337484497869763772840483141698343236939838973542725040628661973467885015954974878568335602749698156129108709350687979072249434838145985160457332895620371852673625489475262716333441741731211508289838799162993010179076988795258418392379223761945425684388021711856641039162869061618607779408580566763402919833162117247655170587740857498846339782419765851423110135673389510987407107232806046028549997674661307161397583367507152838038465984268657329585570800721949660015063763099428300539908098316487533561025371842156936979561985952528362817149231763033367496630002075865228914649110730287470782400058554684264636780799228587859511560674711820498906061036940170454219832002350493759040351614310581629080549412405571340636800557490736604693263729066660323309546461898804951370220956714678098579319820038092814844951061769944020438989888458605393227271451928895750398909001634040587079717876154044786121692263118168126521461957566317883143623818708760343622319611230972833126400415278813816493048733023196612385588524408149576797114579697783392440624311897564814837261442774140815498954053299189470848702317737528343667462958233100610688358586770499169330657164444150805142370598538836040999597596057830546894117445383439758602135466567558235774518098071816409654852167039517491545857393319780038737741350240342738190177634437530140089247418723095680567236422283907260862407532123791156433301376655727347719219011741084415101852547644221448843072544222671784034209008002695964439515163605821013931594237592840367251552862743045607952802122037520331125364964208091200903015978995633769552405294586810750102320220901958893420656491496267097834117681478160384225924167592344249758142072154203673721856419289325054418013269104671971561111625719576331898471448912940493679656866289273901790613800603129949688723274433249953079238592476260133850606161946061592851257092104355059625956379076748883063134330586186929194117815221052043366453370561745282733105373912238605995343981443710056370136175559011114192274208315901514686600857725684135952688447308055448100901402298869255343546895713735532653711923600995728460007831241096558882816884114394115697264947442362057508789604725861128609273893084781186851176119841116384590042576029542588461358199525049313720107470863934393955593394262642614991397821834012640065232157226696930027536379279688800752052148497287134534398399940670485175989604068887071494274249257104661612587115139426804520247251697867693564902711779517025053348439710892628617826616680676678790299496739964836130297768877642852330241485038072089431630637143059899091818054627947758141627889338873664064171258083270336504101122908085212992784189001986120387118940890230785876021917993103018054558217281209768570631879726977494865940733747642787470715405862698110720871958581011397710940448807636800636968706637288213992962395481502363681572855762571280546644681126781438889959706367365083412359061019936801324754785151532949109809977537515692942840912145508852485601332115870463735375512874920052105665700146898293988845755964536035504884700464019935544491693887273447552116245129413691153643249559582041910245580464150550823124005983686469144034392636914035997268390304250536834367859863845366205462653669712174962443875348476316900560620422860905145722543359187447966360637015057619957701831811118590565729946792594553932275961570245260790578456059386599373504287233707937831232786698371707155280489457454809830148535232150740154746153196246821396224780469905524638712400558408391541780614908772290821324557195382117513530028482017370325976136755899058371623597719407962196247177085339104705961834353983819613670341266200286250444514831303192457537379408127789902715110074902450616300172693772649686080627776737528634186704490468481023826413518037096308049876875206231442525346476361765197526568429378164051669501768054322977191731687053136619957839914425061918008523249219639855024693687134180878372158625169552609094516701445146421770878360885109734072264137851019898397872406649659371951773137746391949042981727977113924235991705905554379486269760161206039731000754403560799345917961155197261422574580863020325760519840689523210067284562239313663846478619708063097075029066989101358161388289014884876074554098143341791274604704561927661980907641169196426992657563549668399668237294968375907374804085235717153112523344239888021100175636282295771744639093167700637628223763608044204232033158460999957668228471796173253415850380858751163007081484642118696775300238228779101671010342095969913806422853384653676349202892183757317687844456539778538065597598910141819747759147840504595835314228370434421026119731894461686023248497850252088713391477011570781842731229336642794620071486428582499558269235419506070459968084781952243294191160729566957052264854215871180916333794639042672635832631574736525966951805870239115327301603972443475687302192541072553028070732300946168081115586317781708473051286647535765650864290600570138381618672648517050929802393404299669802976524915039614852497608442387928355172347391427682056848631769388187450869156022313964755829668972125193481476149982002882309477082833893048966984162234282620606737564442825730805120643695432997489388041716334159087112355032544795592451599817746540415537519956416734747150970085567674458951421426146685541249926551364900652313426555548021019173960310878355154101485184112591670290874363997103740887618745213450268320786676511521299884869324044117266197368608366144262285798840636905809169511892010286586331487595982794789630012801317286293208774252011650926655611773453197496699725935883956110650313652728377473848453673834747192497830687274831729997131712215958271095509059434382170874862564236148508743956251288965639854276920882361029176255008753385020802757201970924345489988279539058578757787048058836404127904985762791016172902762286612769758027633798323856540252598544250032715167638588530483713774893449683176472572931038711395606418941975682837991160048265384004453606838385647664800671759870977213951147830953460835702932475537305624030268109193563327797304090548220028956253299792335297527686891024174039035765664479225681113096289378445608413440698490765754955223850517546091566871611382651762498996473181478504469029258635896386393935883628360345573647039218169208357121645602942231022341148202026830273351832164730448606303137921789301582231595959298080550358371576041902280227980503683089016955052616344986111140385775037632566185669529807541141173269261271505786003233977711367564569035374887208809554259804327481990937663320007168389225566953086717017503892870859379209709245032909504382488166883865366942083752725585123887095919037958971345281623709478792453052122131257169387150016407491193984764470417267237146896535342515240237495102512616862037102325368599567985887590009715192705527738143711062256002547120002958230875913445454211533379285875731748072860400010900953963683102956440892047599575132473209125388740523371034974318012664208447491366419128944880827277856427100470791468984602499209824657859574867691171971807623886586775449770923952996468863620865299909935919570031916846687604178593467540827957394664540137064298150450985744658178826967683114830408415091782288233180855245026467642090998383048893400318195242912798906853624832586836928698993301823194362353403343085864604330075598563264777484269425814129921693657199050900896068375558247309573914383236420363561924093443366857081765842841645946084086225927190616071448442533614326786243127034922818728347861378052392148009646916319413986351628574352241759496927064238058831612480634721617569154960939574834215831195751763804105758292811218938073737584190250139990552586503024754901161959898386367186881116061239063958532969744793920345304782790549000621575722408587711682151971938277608180045658204225909340355182361418940624843513231750605382364789669808164302458098261498662224761372973416135896717905463014672574065454164719107851205032867124502039553596778766447224859062310979984334418609450003385024739995244834144670883010173911961623363132897200979343411861110503776884060940006828816163748669261420421028187266946349108993809569018313798567517941885551697215688497848088407566079753517585005516052556844441445499666141503933425932362208626766827134926930586207459415312839365764126462714323407435879831685728446072566205654367181954914953250338230168381519545652746384711100495016843075672997626675946853167438830242030773942195267901807351022246530108369379430411899189624184918627208797570706055834482130291016075342541354763084843004545799107369091038106138800824215004976689918245000772340111410331843645878372397284905410207109433611241627987742790160350691613378584614000270311696301094959820833793720659837211193365157518875909710509966569983305878340106334240111880382033175787415075648851662370210332567448185345389539471842606491184929952215286384806057414056061313376223417511013847692574016775425345266142638767075058458918698173974357704856743426833794224262533246432102709119556640052316633394117781970383025148544339478122553956125174435820232708463677768570880848515396851590381767482487251444410637674179198190319145997072041683479573673986189902416160534370978518640906599414492528592805115060369806724632919742584663062943809284380558458771106846925386131666429682996780311470177619768332901206869266662876964122213009290128775559116745383257897888378234896594213763980996754004121835312045907858567571800743861156964798645994100315907074037865995704918093888400213872700312058301621188073408185533096445599917910863720847383836278725046561678051899065649118046955943585103800363838896540193390920559662078341310864809088140838089957147416024705986013837516430089919157856416931635555878768134817946384668969320919730309867444321747072318778284211870807173199907991600100084211269516949655840018690520065607281778803475721055908899010120679592999208557129033788819498348403752603936817365242981129318569708520085966408011732408237011579704474503942167194212381801931640870676038152447401886193043843849480310397795167976791447189788926546837163945706265640496883208913357711909296980980633468935686533659553452353939436179901077677849939905443864397353119250855396834994500280340257364712496807749599855822918717297824813948395713168373587096075962802824496533738832333093305697093461901920548706509257451351747145116981596402165312513111813407293211987263252446967451954345183078116310100527065043127327487608518411673811679402025304846822569701254186847287994669535944827937748827197367437612169640631587664313543870436477451909251087134512715596171590607080754797995309209367056483435228259952261388288521310693507951016659398500491135459402324973994443339957845780334480680207768427048013719922142436634737213089612120478940722228921241388083267780727803605584787248270388646836307363264830782214646752280343721573093213585048563529363356312919824532667858669509710605075035778914253332281246148286079325770042694324600374854348858989199734102506877316291203474943318171333230498564939810910148312927766467931315208455351990925265721637018385271292881941579816160188974798476989219350844692276939260486224109683442952907270454204720602470728794824412384791429927146900106069802737531618720417693176636234757190819472307819882424124683558539172567410648744462780030230062222141505259134054218902943051779800017158889503613344366534777809742606144618687563905069917127846408153562332987401856606992499441962192840183985291650509396053795839150507255681185294262065342074159409780863754768523322164787717558509411989382238687330564344748977727643072346221132550558780630718694957428422358057106965295493352338827437242206804601489512258623128872655606380822287598962265427337238801674817069214468256478197137294066029605182590055745241064765164227910707867152403690998098390741121670669041956164450513569124756951864180067686924183920532845209268158425219044972743075950890673325226794381556670303251123801464033870926657225096350256631426074046186812604005268973556017364505958020850327532191731653408136023066281579984929120970636772970389503637190125466201091957094154639200406618002073038728342007035554507009473413630459182299836015895204420814711903936675094910473978246804330553411034163605051193251314690438881552305616952530506620204695436997861236895666500377791057089101628646290893090807916415526371579728919407676730145345431902544269093460633273115917404313548677139228075045960180243359856459376176945161948838555045554481744222332649906002393813682738106047403260293201422473969616624765405666126807167150797984160991306436318972108845733912510915071781159650716852890049048207313296549134736474756297958435650410170317092932109842614304161226141791996679634138948955016359941313971189310206002296991265132940271849512301192431804372742021890094749197629742417371602476199561787579810575162892361798578506561435827274503929990873726557187124516644748277156317724786437702851071397391839451356940582670427810969319754673834222306031155498458270031538019676020653971480171684203002999926353067900062887306190376694860630531003628784914188380949516848046119640688438531916255822834153309430412999318858008828792123873297847858886074508663990255805180181268276099574910799182842388341828597672754055353886373739340607758159227364970705292844288813861755804169663073249415807487329793044060182845331460721334143630434476973621548108560485372607271783601194413015875444271543887880449632111151695585570127381888578088703873861010438776626270365263537537071179859611054812306427865416905815526912734503872739435297576052144021727268908106546895941731178484582119127138917589953933545774830770027145756093230690354140014497040231808516336959501176946152849477751989725482276293664300076047867777100011528138599154907627616597221615326942527049823895090054538031728880652272135863848275829731429467605269966650747249146914976646190860966596626158100665922294788520306968768500101119459084076374943484718574864803640980277942885892131316879407110623247145345417019913922295930697868215893217271349857815102669671927138026039246553289512499380355130816168696548181525551006457934724111062763124535508192628845608184228341252624290993227572493624913471701977093621891492435433512961486932795240477362613502068483487111601521746168439242581208687598529450349417822035953919141799624787232304475233503888518602375415252183047117333385599401817980440022337810414530027890175408043085928590446762672175108558636160752909023919610624780333139322880886690310132545071205189773085516357499050807988118597227941450241630809574105976924711179505882245425549907484785192018278981541407002664775527842831157552878955568702727701706931367528249497073673421815132885513287633766543076236098174002838253609695804598523353562922152072552555542645807387869655991808237185833840548035817895659228368672356130054498012192674711960191323608391807185599031109580667119317734684327309636512212634365262681872056043926462252967943109309428740606747998382075378858812466990139015554900629089086513717105508722296610517650168635029059568215906243526592366815271164609652779854519779646515430305150625686890611523110528945498547668346866970764585889323045424586063571193134827526098234940304489783635446350182743575351466337494970797377616205996623762283345773319634009827552459307916941714216638809760566839909573401120185986657364356112955420777069391605901837220266979168901235094052833494186025846673030972180366859681302644963412957795291371475441899805453333070784299833519834553753387496309471536878765512914696288583581215578745031383165400838183095856701506557489927471536603810615195096300092917643104135413149829377434567787716513922021238524535405990031702725791909424516869578265026391047023181814984173827450579213299145271376749415143411852332995796215482830206708390740247900448661287059962495754242881264422075449640599653970814359795801860185413700282454730246509707441736723924347634134640298238594364986775390146603615638787869008706718409514264674283970569918164385401707272502005619421621189103684626328873905810628529239280575324078123862112753641400596268214152698109979150672082944621517421187827415059208241554720587989594456731878780111106994609173082668827163768344511835204486122939804898619549440575617211574532225511588280518706979462694104183195804930594090373482449357390548813229453101298793746962634854837686162082602220894680678212408992582096364123642343246267952069817099062234690131171399276403015054039058692356882875475311824922117003227951438991497723311196322773888154304969284263722349258759911955838405402494204085501223971463483665205424455268080605690270051392519202992683892886447190001359767659540860119096745623177314369562221206620348946773506633756008885625520341113276796494997478849220588019086031106320442838872256281405812543924884102963114293307392627723222912036118550914645260541954336472877233085165521616298950661741529531622983743575828451294811328041759751235936072539541051998269958934235730730445287090212641891350333718522069294136514028590276686954457047488865105877415697092653366440280522513237822510836871666242436594864542705866392305349311789202895040127496809986781090368582376460550250601320448777075838614402314715443661514422105014355309751074186550687241519974861169076285800382447115393319847089685695928631837755437698889741349007622867961773605953892077636989050425565003011947329472471950295097423396263904386528232462592171444108861753850337802733123825322709184834400638628175454273260040851563573305847331518512138561316238416587920224278329579663103906695462757658412878408499179353303457597757196228911748091739398100786354183915398023281096856456782444356185671545679031798843365854153652674188982053956082183832529206943303778480017660556647237241086300793699244381140094740254243923757609846422764915944643297093294980418127334857829777743519132490674621563280200125248862751817353112709649317584882341127605637732132286148115711400131908893043402171347871893871935799683688359498334478829248338549963979120292182339631833370787363206940125624672267535517596364823481198882866900782458075264789861475119229960083425405247208778125848002009173988030015884337399417657846652270399326605453872554674074805895808101819075230958425824841295004848394552951430422290727616517860662843645028161219386090220787646761876324590870746867509769612184311523783969417865512826384614916319108304359487015258509255012950805998071596922478437352886336347641077512382255290917187852376257036963100309995138742540531758927106384928283653907939421531864099952844920368984461511565960624781222134538490497886465002548474587470886159281699339366812689124157074678290382247438566263687738453414283051714197038889651811659560447631245614159314626552767041468295067810253518250101703231434558860348237941882089039441469447841994218288790670532574016964859254334782647242969871623111473158316787738802748720514187873095456789763591791102038385829724445489750252497898714280316015385017036809273087803077329107127431935439148741810624434227634813297392963357821601962826932398222195523877871950711407661370466057014546879528082265015892352600841470469099244613125565737867596075981485846006018448403331431359750058550381439472426280550909283914119074952768073140949625632414017037278542935982285454028164008094226862795911551045923660768203579302310276890510258178193334181726959396999761410442060430716026637271557931648970831658569735055103355453479201392435169167121555792908129724555008591483387942950792418080745089771553358488608847995116003157486080475224919153568450733691859096038465664057073776952864340451398167970479845999275017908481024638198373328470163017264077202361347694985261977794663856931493193296614028513483834810470897637197701403467136783214405364489188265355899575825260972933816978159752673797103812811307282786178651854336616777755795236191012805422762303723978754007354149334372052682292218579347925659140670971045545245075202201419778683253010260467648593589717145081234708543545363892986379075905502685928888580555054718475679106195180025359402760552367363426072345594484742828135945214787552433237103889764852564966755639163389250995159941861771359555094204735008377260058797608419281820436065390776687603604576068446779422733412113182873227726062544467954870315905586167879751150974897186004414981482622438308286979546359007998613280420121878520374189482596375564776930783012849740379536616655002659270761164895660676370802500166845469599455837267016046334737238808149954615515027366361402219770503831422751295604697803994669458645532667052360155163025136568975639410452994629732680585810184326202262267592472525802279678761292796420938555572000386497645595454639823978667418974324264357221602380813034394584763664301104462979535288139412658184040766877377664636523666694418532438661987062622546733957212918968933989441346417427800527761408792981739292868488505295985987039751298333802497048517685678424764976981587529577337498029676630393079817414592483629937872643573293328409684443442506899802850818472942118201166075583166684092146952670826175781273927982017205604446188587584970607374179528507578151389680832441442361664486609728410976287609791441799149224439932605682823013838338386008615566643719743645052156501617069036094675394371914061240129424411542813235760551393652433373975899011521531356701214163661882240178236484229019456867507229161208957154430676296856232501243824545059589686878960038749668787477106408247378791504386509531979457100958198781190916303860669887024917597402295179780591917882127566289892034060553120201177401590030344724753951114160684947900531276694130607489552118474597289635521628619880565537219284702240944273158006814239077437028804639612038244787016974621066248874637100585009952144792332644438495599429743606065640528899430800201395657756217704525472441368723375719888596852322807481573924802444665360977808558292632552461624379137895695628222149465492656772887066983194860755496153748673340713304486346442468656249803740054944035500161573126608667464869553294598628131901160452562286510182882816548709313132064033319574611211171494432757359138207256539811468938285609786739754362238864105954797156636111846556738894332491822194368269641329416979081630248259115640924042399661758555154525577743562156432772906393421202663827348448703255583845125169062971079288909591895473847110580379748021486939613725959307775206144964673875304074994596086491720686964396513619828633589261353199157213810193134926997047060582861613587439632107939512198751104002705871731436215878286558487787016706837939826049190134406364361770961708227609960787670826293204594569557725763757424312622715607590005761314019892917687904860669784771771120590027416913624857548704735003328035561885546920630301859081431259832630769592584332972407937402656072777993204468497683473481204577285219742371883880178030411350456119281925588628306381005832895404120134618833474909251837173041335646382594924235382079786126429038598769436511774513631209924462504193493676796626372227041431920724817302551588816410114680879795038724577348131751011809960464715400970929847589699202794511912209266607764334695699513661584827220775761388320135778054645139002029229979121616897366930190901058445133719092607665828335284533045017146684768983298262271075935407115776667532604458593346738958892893909350274340146842894760618980652993906555207006628727113014567820766835260056678960493484168288252200455956191474109282284998421007005943276246547633864761101633470621895696299186006764048479211229106936524143224666138322797208150628386747859526650614759707535586887024449336913497006927571871979192769667141715455398422603885755895679018120334796972527893204909888981436000326642783927547952909872444629940678721762126978113316462120507629619616600111727571316122742965065580893980652573948832610062958753361171431757866002879428865811805768063861279844994987693478369934394372396222777423933066998064359513736322263681426257970168417194224712097166404174912341359078358173807737695224197212977950567591855663220301380029377583072354680643104128938824059133545290851857048683651730658003009629365994926593277958566700531530061224738771120648325813431901313922174845834902034755553412656395738708639602703633620921430216148444501217779104873677971367609232594747173497560912156728165253826448003400036699858478927017010382588702275373395077488041627200195030070119377417483704956680140514025349015033101034322365914765426567904049232870104869370330255986586845622881937813096701205072761171984817723002946283077640408011197382679920436940062104196599061736550914786526801637678810791690500218070756451203596815243595021877967280427221685945103032047624162479318994700318637972006467572094204798136897588758414631556494142985778804827419649829097552349137111349902883576910816210559196363281482068243732236619978977681116898795444711586712130695941600385180366094306408579549888095623187956935421108678440436649377276518035437951077966378005125160446743026682036960014927124953344903185648316322857513839531205954599089031267771496329806620197178996286831440367391580571486817596608318504997182808975933205447884184279184321434114654875817104714516299053910474722268214005572676745359217440151785608650622825229762454731737826666005483110539731260302135767524053090220881666230245501011412882842141559001163340747536888753561992091537116904908667876341675268525176952821221579584493803729064831545164303793107683730827431096535971633463404075377285354536253079753934810418772110760588384679268051043602697353584636894919111776806641022914608304391439786651848153341195675263553305031911049240108655299760392208505210977513505166593755513379820761263060225185275405729309129773701074721351011124084748019924225745457684761372901364142170134405756815256150501481925529716551934538547845436447102396898319750617865503766309267571278377927181403624554086146340749635755786904198678595368449059466630711455850031309240053982026014756753824234699422040451813435587257406583768936627925709845416831116046263539822398255426207213098206550616768704323061732037326795392133321918407524752714598538727422180898760420417601291292644246001475781517683945212279748808601057706865156440175154671428012948825331532723901223324947548294440451887514419337291525274051913452126852843303665917755666037990495213319596400102251299238468710126404276353387439316976493653501018888317763348661551216609402396787660445250456046125598793181671381078329005402458156326194558081305331628213457355755794317100968436991915027040492021889991610532943180915862819341838163713400729049107570614856310591410304273861448745190126598935777585132987594160140473014143239076045422861388039039047494193573928236109471738813344806798227653381862740878552487842317590561694067093455965407971830767650762787291818567413012147203313847379986253091335398749171849520266728387571225411208316754188192979586165909499726032988070058224095088531915720452036494523881666076781122172841499319275648593972940583665027967130958440673823387911977478268084007205850905049263716196988781776068963100212239490241438307385731469092844596197659791271986821389037634311223690058285443760806411451600856283428759481664296796737564154725530484410324903399489635238153596243144282994905469553446992458479930366470848334290122303987511309562616971799012546047856616555781313359461082639918846798411280072054807238022218175218880171547974114102079686005556338382084426934710672978177581523185033957501902711915144868496756148065834111515849481376877702175470317190025997870673795224127955736118083234740375363678143434273107135034850679190037223804273925852333409960082163040181839896404672696372128570305955714041035902588714906422165874246884954962050281870704391984220210162993038634863241773756953857983728742474883687355449950153122173981880803627603954496071119912360506949381166068528673303566152292524849888367444576146302618200580010807655789354076476411420032050276388121731251237464713514715530699843741736115026151852425913723251062444298775649764147488115907283655573003239239001366058308678379014667062265144652908774341716734242595692711467088295625857219265122121745122483604909645730679255237540791316992328469277457429101372180881191019384977430324053905550302918627077958388520854691943645270570018846198710053338176176275848129090510327574556266760033562945171501006482614952150097495309621034686973210226948346265297638875057456227835102991493926049360163055845572491812299383297189122840510715068740180777543474937199494185509875005463550277664768195452325084406670454883023257485253437584623096797991096828192880344883089375854227346404855920275834635434218223087920667209235681582459179649329085141080906406839185317000994117076314273951057263243236532679886761394090922285395489241361486548151962162117917090199459707613641444007456791802684966194750043830911032162696345147868084023425901724634960645709552391451098724890083893311069131008123213106676993088138052231411845736736141770718005608708213333926042103197484486122297022775431222567317677679761039805802288890544633409696260176593686578840365377633724199248624700002264946944003690418964438827999488044827706489721481843639811705544784843765780455272204115299692979121965331052721048298573570885370499907964275862540486296890812034019526832779680222837867741355721634752374596563727612626261093811928509021854074628312181257332544473277385356384998659690381949406145870585460398819797936708906974005867449339504717292583518561778415828994080280748629087535222360969969399090970487163342260826644612454083204982001576594807943458147892869357426502560791270806322656834339115583181221998049179415085614481002349658270766094534660310422583824355772910771315872282948074664142430238492277450098124718626261547357851342470149981272641407962385548069549584739012440676033043842631196765053123306832857835332877087392088982480713690005754156489946988607382157259217745021817512703287306354719590156432815019548798837874915720215645862299638584913276593593178971645787088171762094998614531693553406182244827114200778316180785155752183834339670938815242234741217837162881706366320760261502847639988772100180196207274394307664739802292800666599639633689522845760556248575320875613145529942263406306810609200778140081320193953275773918822090480051303846649506795228901886032436474036809578232329250361010256680601966648594167278280046185404353382195225278533368335310864313482163214059071301918032708653153538716356723655196823204152750196557136419132415263281197905042047174170587562930695759764400406012256844827985186077906302894285750868643702370801843802242580386880654166052781511124154214987377931275886763769414218432556682212328084996103776894014699475810962446412648871384634478154326646260961232990728323726715224862876215586111186992210621365840309627086429700553359527013630398312692977096663198281961619170544751612413636921221076719709550612388141684076881628446500764993544032330972468437107102308078925483472057395757719347213848043811987964708542952225710981687804937237243638203815362567855289146760928036912642301823383237553715385566565600312190936164906034833399164828356297019955891676146016903164609149071272176911173860360360544856418671439651544854887047182618887343759048545932249911096700807827732945502484768055050125215639886903041555533179025243910289613989385981370406728335187778405206786350427851857530901387212340770042478316115910444047572733091640162909898740558653825798943129061735389612811652117381150973840041942589683469530570592145939653897252957751792524874216646555961850915552361321329152473536788575827524514217944073556865027199599476151506070809041764806055512706723984626343131787880824342369731058401053390449113343153825966309019653167395222052985167015542662168864687493492459933156538257872970130015737709025120165678146076193714235253923640070292995751016158248539148941800226893664330674017415705945861557855964868128390202395175865325839030062083845531757565192642895669787342852277533633582709485738966757644288867266805581013765801710192266225357255770841611834555807339830551741287164209252062474976720550684533223962478522938078678669209621138974629003026597860427462660593987995723641189439774729345699337594323299075255642630779550259925475902102379310200577478698115327027258849172215903509327684145067272100276829497732348484195526597854734866313107789684826278848260411441160352771170635513033342881283694067333758501012693705869530294915982353711086572208602810133962463776366140067227814955293496548557181302445607515312789950096418218495864984227967486018123286442284451206294857593034309250103648948951225586109282855639003291377405001108777708332583407094973489925490266831646326859448092124705085200655769570485570636682199977402082009213764900421649508934056152064433186433636719793948816000073039734060212915103133464851309631173076736753969714710992227132784889581698291627909683672923953435007554161587562110252534690513603558014256297049674176809231345079111394403436766910911402914618606680077120381222661278631435508744841419541890808786276138422611968388163569450004413076322880552861950097914000298278418028997063751426997814911453120327240981446692679922591395018737595322151896200943819459307664848538813454222374736482584684113002537899643004904581411582819597037774639957449734149956878190400180701532381428760593517889841886090831037453041368926864418414553271644259438258287859610078755174053382913090078076181245679356542761821995677305650761863192427301271189227712503804522192333247507086132006320212166820852088254130760304532605311698810443410526958515444923506656578519725324040492414357360594230182775260110959586873936296827377238640319938658500131305692217290266816257895902366339056653258391900249289834552160986525322621062392964179476377932762120709557558458910316106910652005920740219794797821356274087873602472091104570581239495456301249232151180104683730851930744784487645038021401409080406394875497226949688160140016061248805305425436852597951704362762448036395360663210952541953141824270004120033688801473395703778924546441702182411816307971938494482841523562699405900878995038260730708780312532980243913413316988145585980838281696707133257127481181853547715381566320670503387996814210005586402228039067813040852520146552286319765775665479712020849017107263597673439277748727412584988851370432645499471798865579972247918358091114313456440677156163078895968622812628909142818706002038614457357807945356580279583168365124932381549905666007403412838376783583239412275409095912408183945260079150691211709547970845087492038301699445296534595522306243661459180649892896179326467819357203602163542838648765869097558633474620366895390107263390595774133381189239990749709036864726671732885684806263822109600602817884146911591030209158301920922618050789646005776678323993300511336286488139980515233853700939923699780665766805329938280164174566942224785628127515706382027766077967920295032560207583988206786671341365233544051274147189921223373837366641946433785055657374028363673467224562376957995234906021991087340326004519202451238342250144801058240696127601008975343770722682390414390932331661564931901164353951444269951070070177459564820693673959486847722895262582414296402759791124781954648077589246551037952779804191530864835703667842752147882705746320558302775972705607559665708009891388771250569124344281795513652640360401984430258518549959988259903454304702782958279916902765993132446112948194566670021582381091844114310733596609616727914082945800840769870676252997322698579346037334137534743187628360427351530615347643111525050248307693859189547673884295424505129142771870055541915052268809671526969839123985002795551086455196561797263550338626805639088397902124245023919454320492264172307439142440070822011513953416753923169832039436049434765183281348376558250190058721426710269836481678848330158583363705436110221122283135021340648043196742947968926904019970662628341147595338648408356238621415042034317599858260727110014005478872536962315301144543307519098496042332522331026950007751635919950053857591216605474810161623976056011604743802128033793574995680937855546390684378705411113399549906008541653388813830812515581510500527011429967705148191096476913886329636799582532282281016883456878147410225507032856793224284129158315775519079202058817840653690172716996757976404609218180352890837444023274484158556511835283116113230095618685454349209119487056598568376964160114062918994149163219728171887424813104691145605194457870895837137691775852949778783899848088180640844105285529331159114641718767901546076257609913874794086683105298224104641269245012824158620363824258819366981944605732844711556612795981938812125293686975602220654507961022885444239125920553753148150121334891693215642351549777143685697918844966637850648655327622686722429047234807883242053059629199173061166852563108771708635698137454685621900791665005362959278953382614885062350753442684618292011335558159768552662760385217757276804123954073848545572362869061742903447904653824193923753746264211018388153151111969523621100848924642688759682752299836818632123771445771186805287764706090663160735142742451698785895391725203929740775301271455061517832763679486632070158051861235589684560548138601386209546812759651513794450415368782046795807388460104350818124174121859114765765840315629864337859629880760622505874951286146614999684346596643595609937002684979859949880709687604953109853057837074089159708686731946255607599488892773887117135432068350848458080706815019180174109049900621376558117777077867349741547537826896834194210893916621559653288158274854676617389523023281659095913421779156207774607280380694655695924026351055771056460245997492905857234915942228603931905808449846704277124842736930373130057340809922141260688845832268834782039500287516403829055519312810840539274110174737010686177881275672559921149299051014401001806853434391544411093412092528325111991050239984947124604390637408664321831688575831862347161216224550421758316035168170817526867723158821691481471879804165916735938637147599938126621132495402677740938169582453350808424551409504160854088847925068889477342722698909930185967446756732665438449503553253892106744043558804057964976172595596535360347090816382257234846617742688585556938007995383505922026357473483536376786252693085134114513008784220238301827723467897800376502581100584150056694852175538418333587187515819918169291064479639730668369081813596618940821373257004079202239286250356057885625290920057498736120253323664515999747029208014643409504192420134011553852183388047580546201284809052020421291460693208318062657916038431499145735169229688569853079765563472810372220287193171332914913530316118599135388599944884887795138975183250638885750703959683709374552999865938140097910201724849702223217371476187537071564768821990110559428537273568293500764443785816437975820990585507980173387214280462141946867075643346549808583672244032557227576662018243500514711153159696922598089768853830802664072654165659202344387731948810023200343707080930494116167894006387154495429746746044090127311168699466806622436248740115657981689720560581902816016522325241314013386707107349589183098618152535683385136152856888100726825204540426950312334878001583144702707685244315628320933957165109334975768092295835681072886987090148414329688759814478214732633109688980803622615611421912033816376819631591865233644986406923419211302957870877548149512324048325874893886011251486425303224648966064296008413497772616528365321687551459611777901870732188821959042454293179972703325032754438223387516852386570099646780448094800089099879050993171713869695657871132469956841780715869116312377917629654261397316339303741276580971719079362536015302716292132863327077919720429133700472631355020702497114632721235172954050548213810919387175830304734742909708131148943302086906730829579958612246912147937783064974673169898272615549396439995033346315135320056588659750371995353457605662622997758290123259949528999979804000201578619036662073159329252766776038036911515920628000618088795549134012145995536834397397313200754038259140423949262136727895805831170064708969489648738091281731978298877538892482096828046831168856598724222183786741826446627482995963295135147375000232789788465793018349414881804048643544206082718234148834553502457686874424727567882429182323279487220158361124575081770142546980070802070126993203740408676023609426596163022670287961092610117890046662899028941786583069730051014506431483147420560596358638745001756460232512546403849314474517073366802874650995431273003479594741084603710934058697254116645695498054663955914490871317761346941077025849024391351109799600786151317029279772833836680299353800666014459119766035808084359411819907534715288152188201724284102975742946779683011046154063992194691510221900941525015715896075917876271732518299999429496378743279277800850456055871631435816630593042850708587509510476390571248709474932567904080891519580981138840560822635906639872280655273814650317396553533155904607750348761169007863889193995845717878265839678970139131200467382112788117799851580625795630060927637917989939935187724620374555894413132334615730164460000710505122764502288525425494672090146832585057349030491401733026025127194188816001535578132273049613149605040056918766564236470407524957466504097190665954478014417537338934502613956275098596391279576562857569612121064517603718579195003883368927176902168598106862202270973720386819720308320908569077079402745233868523518980777101936388179352696752320340980482202756128016175427677818510371020969708194008484687706780042765114903332519488113054907362547041363424850725490178969805719002361584092360416481333493129814450115289267167421749879317096486282337648464149471529616693768431251459824333113750196320632743952690671103698068850510268587540968137818295465488659499883172553402838000054911501197632684092123544928268961451402881571672650755314931660862490671406096623183918656679043421547282459229079506912393903769582354679705317184230511165479740173529329178164947269135502567633508472914596055819845034534405363566263423251798470139947367000528069404012269714823171944867187432496119559276275939548304261021084343391879124849172607526091885570854494200810307803502974966213131401135039052850655439109585486302659159285604025020605093500678321142635010622400915660048810331961911245926407303572527576442446993042294900702250179394287356244608992341669631478243259425320116455451625829836692110106580048581211207544686429627672670379001041379670516583398101234017145838807599015367925900500796483442940262235929365818670133603423910351626209008688636971570615103212323132794058525366759012934613653270958142676438870352937883929414483337162660227814955582656076155648852619825028406951624752768717015785246694823618245400765534239494730315561736275271219322652000726448877564041715264924602876658142584673577624981639079474104297811415984077275837984107650455746576018579576518673486121187890479760776471619588789921451159156103888299630258155992047855941983001710644491121323172005806815430506865451581588550619938204832951729376051479610477508279981808210609895982535505891247534858281417271981914662762128433200974854915730029080581631780091451359093590355985775674817433617071205254398687649212301499448959045172840655982426497957811204778258586712010915897236278448767323440742243377675575455280330602261588191609667854024881742444787626006987616073206425403670368965058267915268210190849990552238214821031213130140893658019051024097623924525659524284208321000131471739156574825223796319976354474887967138221740455634772331771897012197886239479248372259433252258964299878113292515839975801470657714608333122755522706976744311306578409606972217849295510620558651048485229535639824294975096092479480552535966791731646072962207176685992557670404488898164042608171505407317037532382668004845809228003708193290123414958012941174189008862419393831524506726035510655025908093958155806675540724409788052843962315853321736250978369734225589216985197785538108037278343272001316501505353339087867006525019652858911123277921961818329005149277928454274938924329679401196897082316015232043748726820577957617288949795151136826246749350573965238391000273417595487445387074148499961822458249554903117673847370986180918122489243353809605479755054787220036253371379164099463220359732955209267474416575335772249058027062563190650610546537924528871481227317711610904445098450482385626262100034520640149170005166367603702764662071622625662491681846461985425061987317720664911431640902150449898493130191797353114424076934299249978720305179252283743336935539672621511258241036890157689651712651699524974114680722405518387115534579105253407695340087184586211931091396106528464167386578728417264788129633201197145928078313483922715615374455164519511883688996989353434691448080074192185671855697069936383555775578582636539352803117713716400683747370617587726315584382743638315733782985596943662359645247088557191016077562244142708060705549647829851329410315379634431271662068451201857560848855443751727787607993717987117739911665947949375227328883383914864160375289745017546329391438618098368761228956119981613839272751853070772156688008754196672032579173267741471458714099744450638854649378822861400582236361493622521320193362361437892879888202547294057463090335075076265454846610244841646741201190340989189249235475871389502676032504599399689278391295914332925967554965080911092147977720975641209603222090710535883188305490033756484257618767934909109221578883679177726375501064157980684454512000074228003333951159734497075878077886768429718314341610283091723091432045964919308648300286922682144688641455003862386838548042845328744230410335081647181998236904291315718352895189172505911052670463873114564765455696586219926655034141661143763586195706991471121071274914247796400044314279779486992125217814171266587145969706185219750309347812454751013242376797731540342936631403039501589448035129906391439994365725755563493532889637287010712942476462358782851211177773300842452662426473458150750979236884887415095399575992638484647160215566179478690360725869396267680512912780000942012786763632422406760820527192911470590003287707807462444260954641574375494189330915093821452108961429718824469339655174451327454831161145941671764467611553818390419649544264188955457966893427702285324143475206852994000635039579127338410527450729233504206264480814596444114044103435696196666262851679631806086404354109790372599482596355889751688787242649849629560860298582892096197329775051889419842848576681764160568883120193295595203623818725558954998358712571518597597555160032625372049841264655148541390011298893562327716000974961383132118513788209480484761539638035204460140176146160292049553551590069442053644269269760064492584021341451525902753244932270243181632733608471411296476329298341496139897907639488492864595564095926085646403211966525921524662907113926117770923990258796643985291124720871227749696402960947408121514314584625546161314072536824932329610371767228773399026278754442188061294625954332175396796117771968538295114039520774622017073728451134273648603198506437575796875066498797408182851685487687286721877930458238306585307193498348822566387885097519137744158233838845494887341262677715442064200224284373402354974713875859756321775291167351987830648353099503258484349952467957820179091022691500591454075006592489384495129219891683574061055703428096673920741793952433407085335628902915731893640581705788261601990626088706522230806828661910146285539668347188567335448546274995466053563705031419981161327881891026973318484370318688955315073071606048069242861202050287700527588960999826242488877301574081497151003230625018175940268096818784871769773550673738205704548956084068551114690961130190665626792950248168872657686221458198806357614104301028007699183817598807917379715566774020976765990497515607727609091611794478684534469148049142228411942602413396604224951936675595882315817814205765064266891839749707933722894108670028120666320458097329075171453791472975487836782821285582693151773422249313080317763578257271271076360867754647341453784018732910214972066498282166330056952141080684937983902414619814078780064975893052039513485668572681445581980769881571213089764733475010406157487455072385375344165425282806620830013695441579157537495108804040191069888303834829024003268909923027162712728283285552898966856359023582649452289445168635575030924781310100618744007130932013872948855175406039736714636145439967776005220618077132973754535555811285175961295081942732550505637199661106767990192884329185361528955067749663759200577488806353052670556105214467824563852267877137709501582266651900622847766747526786405426406017020380720155821314117074599119014662464220473860669811759192448291640991836550571593557156507256263314379453877810458731041921505166098966122106712028344714848607952817669084772259181128749720887700896559616841986243950999003996586068440564649491985504158495013685383732100729545620011442739807002410473584225557570307152085289879573086476109512205722191971854959068361484337649602936201831489833927927244908018415900545108890117038923578471538203756894168808783658981175021168529110480862192855380861648341769652156266552412073594815253933832020499163199435402691622866479589036063846389447448598068681940181830878502525594767346892663415287887664928188167063125053832473646772888649154544617658165365482071292391067204124032561112504129337696176527955296572933499481986956727376459655582661432969869199769105060665404227289767799369671242538712606532781434212973424490840051775089692423674004704089715560089775848871378262747143281650728981325184204262332932495151279131334063269446158421288516715976069991042454549411995365251336201659180612125897319201300420645470959209072813224229257091550121913493519314525014447234495814513303561672356918999767781777128336742907940092208824139782825959586862567019663490856549929131660568883338509467254785901555776952540391854477716644003553890130074773053292945585229353921029456031998337567918164643829056307997184250190823195400071948381357342022533681623114570188410225761119017797183744855077077362647237698036780321268851600156795895205405098813572450718013258001607981362970335361082143187032281889273917266875908070240656933365229522221551627646063301865670121013451690703887537697017447043466485520175659059029564614540830179186795804342521607114388853241717572742370657382542243777369502880577307233562043727701769077230691289976375166847474693893083131167186299941849170210693144797376231672987415103051188180560353352776011225998022370424227888492843071314053449220281535067768099491244840652669727115605804781798601537572578168612408206257543806924703953939143058094208227556909263538644415168397467777691617527980956768829854976542763361421923496604509444536979362975272106832696992918861673151488987825714187929010743269519736255320316670927077720485082584513414548075207655076815111688894100294068698970222603404200621193512073722922769568693343260112188806952993826182983400738442474795262445362792751633026826462875747325586070137268407242584607686796602709200315892031385522008591867410078414090210402163451422563036210497082777045296191755717655124121615403589146712024765806741146242118895250263689677818215702611249005993265294596002173654423777453899629669175540853574628176764855800245407960326204629398190088030523801839892965162132422073124220340206891830284612321053936224304246020973951038506836435726043631985116160025706600616754135756588100629451753032499134119259173822839965123471680887468674261360979667778950209576074837266561900790449247776834299674720745228198733679752877687151356530378376853376835901397616642149226437495796797136286836752564932148935535306534309391134675810746583985258943476110332508414617700856550691557424386921178833095373306987665372018387871844890954280646296246786130110980093786621759882052109450775476059990409135427426322716027099964725029084377170825534119362658018875343026890930635515167300001194485455989868887922729908891413488979015777015070321517111514814650607714755687418951136751092823378980882726265738317027088661945956504365022086854499304653011453914847220689466234109213983777812016537076561628913327013484652517620255832865294235463319000542054412265912329033044861213215056754268293463070607894576441025914014194164205721403856307252179471040848772514842584228529035105361746411602690665768166266578146605289442889356300734122721816268469816919393916746890210212604510537318249069744297866395551978698985320735647198096300574265799335068922316409536980208320929839739250174304158391719686302467855430307973789249395521610847779931148152607613001551848277253847769700058499076878809274150083355991216085639121060955746683520841051377001979482286187005381420851592456014386785021717105378860325526938415372168030107780359770979181349777307425719507858498143867237444947338552016635260522018246872248994565478884457882919808610727217918762235604435686256692988081220995119383050119165243765488225917625253298747249062481605842990681442152502650206886285025193289453068253409460349656352257537674596368092518073639688851671128770378782504930171063972840507449543486888702994306885752301356986361697114000687488969587467646196325085774125954085725383641958568713005523993629198118389641250423856687673327877904890174940108868221631083708895807044819939025079177367622031382837223398166127642260902854981648636725425410932723311191652133021943645734227455119441559502695230802128247107463246708370368298759887963484871472367834202253824806861484462769558231523949360198997530542477248999692709499847110727959478766080267177662995859569720112306269051868248416310494362998151404876589710871886008774830453743923784269115369894574618904156160394642650199033834002823527157543146318982716491428646493035470789313449044428441226944332889849210213371182564278119597208025526116450850185277713346115567681053841523377615378536323227905765212366656243270436428993144140465373569201306936564055116280352215227791259632617371668540395533671878261148387606408839698903094710314888621197267859260174257582001145437574425993766495856433710454810463629127019127187732668897189661686953898052988614826236846352783274835822559994494842370226144526136368844523175346092457348053814915095046921882566888549597151230437877901405800466489623460824047910191353477371485483046868220861100700166524543339342788964693458072695227992430686830471179434065070235729541316724486649609954049239821715959965433273654279980616383273645546621002372093162285908968735787653936670850065847019494937433026722588459261377296458595590908907568484548531849959508775800393361375313990954003514530758646786444161440111794992043184922962471783430019508487165095517169583835887690930625740161568371910141830955814898172565123853178061905860694628387576119923460445094857098037028813305498374894986479471174535736598293416366552605752850190436117139811746397625748905009256505726201243033497274641728305575400075549517807687036896264408551274873843219501301740946612154536691314546665245457492414216773897266250668644666699087425383974685478788727582199094405814660575339962805403444163187393694130341724262278465606225001991145752619760220449753328438143780452522107731966707610409969518357802418893834910240654919010812393359806920574169646846674436388480458383697971744446864326939177956314687262108991942390987236056185565331187521776949545354731836887922788824693787620516834619222388697610047702645848519487299263559092037510525840752764745249145463491231181992027324788158679966463987351544883649258505612082354520943534059332575324776864793803246155628417507135764680881926051521293184083177096364250890360377292189928056822343158610462382459227952506846226148112304410078291057624395814034035638192769686408347121510144099182325385723916898303215034032028453565055556235710105305475074500170211080138303414271017232602331002777460304357641746761004798031037597229386188009309595723214791669996265034066998936335979510752416829080441416389582730398839909576969264233558950424780260621542798799533708613566902114962005296478416454141881450883313845244163039012248829748734797288273049904214334962092768599278589506204335768773733787221390255976399295876300062097971400874660523279314083584281277691484321179967907731889975715785937183693577457276392228713426229902894474193701578547930925911923551672184396824051908100623987232222679802357727779330109978435234331582144850442458462456319435559471332860666007128179586214862193971090691994875637557583613751886406651721638553321096007137531891682748172562721466202012823581249528504227347614917141738804974240612512194428689300317787101902891485186820604706430970105800773632519219462006628486133860900110784867623237226856710259017711972038253579632681766128352618625310943478205922875989076862891905186278608513947724734307934448392349532144576074082408627431561023088120604738233822168435373324663126338431504821965034258115520857169252998547596476895756855687523104598905037071288377333232116880816674058187300835953632239942484448476813216650908180729286370117611539355199927392600198044011514916351598462006585515774796842287302809722190792646729585798726373494280906169325283757774026062094385736288160342886156023690865126762634172392025677430313500358818486488496359534479249623035454187942588767502631735908610839163784266135319819343057328062585842295057938458734528551240226300519507219336980189867736536459392189315817900938394766925372032045653190208702535152815805566239139192222142530533698249235346715213185355418876755601148614757159215572620199696364376702613251584889948658551574380424976417287330169414436710990782635676429539955202678723582433218266163065898751359814831387649349199063529017993663905683055153630071602359235689029060799444991269938744800922798637487241587497258756862117622035549131739666248829616895979835596091749038495958576139187722437999232464870631734522984520198856675819298915476962608628689938862497720922350748379483649880605250585561694657114558483777511772868269792989166194315884175582340769421397562456587313045102610683253303602421336486501088415845300528541636484797187353454891992859690629896555652178366617601745367255244864044390333215299644095418797051554817266958373614860860511431198756588660877163598196124546612815511106612685386212991724843416375811609067509725464701372015752674397186212769294742131571690954677803619663546059630049082735500186814429050659302903634972940134402349853997019727277180652765942604325465346786155660745392338233196970549755239415653389309965689448422334427601287589226072138348375983691749955652049853828611628827969001870137858310152496505784696479616357754112361904027885208443660018550267438187449332011423307324141537414993606342525789500922343773785534963483506677849862774254839793729693873655740047850113382252176655046906729210040768422094900301273597596039442655974216784012760078849158798266808698395979587813979084128017567723273175057700608045649444086307932064353297109783110398807501800911745569375379274555167214222852121710252212158026253949237114763372266049364498531491594447941590832064818850472294902843499655883086792256295278492957874636527997480821483406111674312844552514889974820794226580954231031575373985576203313354591204799687440201809011833437588196384997869835500628755912671783623629641346280880452025063421611653852282708066275875523252875714645647207197605292419741162030719915239349656370878602699297908310677753467724114668539681367762635160500089676112061175276184185376452891927783910964037242351316782157748502894188886471333885607997635489642135771291417565991283928958419115082742117427917374170776772245928131630325263021283788764498750061295513100371997599537509773510931104888147407205081840599196338903648753469214078188796757960484704820750084327133791548490700552255663554100367514142230861272281191882040333077580715740217453114958713907630034648066192767388593233820208750627619140980947437002327110309301516780782421889209830725248834984598411536130097298996422959960440578158528987320760232333010594406911375284986236710257393049847097171750737754181633233369627007345097385555939332959614427827490777971446055022794678219248698129411314064426097870001977573882022166217904845266753122618074966147383656362352694552587266717224015393307594859214114268189426047624199702868891708520143616442021237901872346772394466284534072927138734047007344175736259790270873388948711614728292423800002433810850755548019203883451601428333721536564556572889706068147302482274410521500385840485597486556063376081821142292135380643525997318324561369196694246901346896811054121455449106661685627069192448090119003593498202601546289841379061818430998109464320283437208931612613897118208461838543665427953029191128330386451998082766492803134447409954764624212837273330780621270743797621781268471354964843725787125391362647559678844232515715499833833920755697165716046121644168138639671118233610907586251972902090002104953660374584700046404665369340542499705197924092911862302890555141417577497325613410927553058835161555700019699713374374098909313510550914234248487376893523708971081674355493963403995454041483600982845894440178488234038639143105621572568272176092096902146895584879751974346428026402076803076399344899907460911787715834027801977600120643834017976171115162702940313679317641330300474935097754312185654814751721494570218740767703948720514175917672287517005499948453446885653220558295073964586564725631437131549549215181005466495246223063326999687914249210436229909421422775004035549154115091657797504937349962767424658558075865970823892345495421190276077858803213735094841254284717309633742392801363250917666659945634304696464938989480546867811950220697149564379607516888377878738907138244736022103512358279943453106844477720999207957154842257640982332848389004362389821264186480448208224954088261676762567823827127173931949180716131520340819008073246210584017638358732977167524373442515568097837077475242345764160274576695007844228567575394684449133285611467683579899514164898087825520170433864200253610356653869977743352320988197789565411303667126507239904745371079860135163154998361557606777397253361198545299167260906497262540120744288792679189703297778609431295375173636503881133001229464051912788181761725972343193347647226571525777040355776289732823577824436473078932827436721347658753919698942962726844443059857446644041828865926006863565722787046599500451480822289665284803875069988067775887763249183136352530975352075430938920132554627102244467738833773621452837498475131137328790743458039471390493291463390616205482886838486903211989441659073212509936030325979041043636515399781955281607944402192581821890471583304594819772851186110687162881024686773688878815553355180316706022607959975382439121060279193980643125482525319619904775565468433498436858558963072017073594154854546122755206012110002506928447812169080588735116272980021832292656319511460973653747033969187029045346296199070382527041813614989512144103156512323233519507108134638167997986153900760615915318209067063732494292721369905311977886420989994945582391461179134887708022429791519408887250952735170192012137363393842032004911518758129611858058203923104074862738100463722203052074243988807270170594114291922622446227144465406929602825909939367430805495552853293331304445640482089688439947293815484233017722547027600252852053528785020235294909200526524495498150085881759045080622485375781694733256137443274012779599550816856849068152498455355101364334572243939022326542333575554418633178584557014892416640895832529182186737717963502822955728676767844493925210110888222909787138773568119066104240178727310458972867196860332648845396182337512237866438639598741759439443196055652351460173740027137485674702183707570731564841547943518995716601099465989525509519685250321246242282768512257309710475754726040733830254112081680254671827519372978413972299643982962511003215976294644172480466113274265845156944663163425683984156418366054229675246386966719677971186239542889378654412467365823852126288099260397813767085653351382024427089049485508267354591001518545481684244604886056896597687263953951315353600352470782166256187802893734836965257364917166430637160992233644038441861474356013784220463400889632122578400971842388946684878992964310854540264971070803663719610261781288087169809436145012222859175574688190290999882915116591866366412481351461657157370109356011071010554098167407036078897515419274746952463020713868223953267302825770745995374663230324456268944028944740665752134428028655397089321970960222483609184869264706728196707518847872593832857556098143691121717634142470159774098184863723784146943395948857587783318707169593254479826802357948643403204076743322728944655803844560128506191480118649982758055958642384678625427707081438635150284877724052821891005948961676387093988984649853294522972674348190121088727168487783863999933887130188783588332344425732441522791891736324644207810411671018688360075875275116705213358896961997945284762242331685966660482913510246433656889491096489988070702865340513862831527861776225089298823111999700763821488322921943531872979008797246441615113535464548466837992926954659354166630212617522327818654754180091268180625862024553588823391398708365567847096461558146017905812541951262500158440875400062020903453015545434546872687974733890837254185108259403574514835296396195690363254300817090372089021596541583893733524162739921835222289421108348263808420662063556327840513545606294253159899785743504578218782208698696969103956551374100820722408650256065534036446930837397366743000591229899884063392403749198752754903063560786865257059956715418495593774312700178206784319806225845063827418979999167995222524393771556855197116282359784662413161843045629291778576940969233842959300341889358797430932036055608658364081261863813399923525773108162158885006673371806006703381786446416785236414820579121258397127788243178345023207590039065698693784722895223704816023764469580089702373086888883694884236248582804728710763434984399544825989389383244081200585443517379166233986670770667262212275093107912564895321479403295682844064634213706298822255826306599583966899999994961369080306900621815829602070579369665328739859398032679358833135944841991712343521435689240429806493586973030310211465653183584790511063512156933057488987367011324731325253240065498774214555422521559797392099368549738183605407601487196233098945966362904904718344675128268064397292268244063244098745708248780320996778830810125658946754101015914561258572322946441050343598724227277905707014684160671241415068462052974868376683451655028036960034753587878877080544089024777932682417786661753245601610113228934126438783694513483776621358253605325553760901047952910415130444091141259413266750975303134800156256333902897905392751190257475301552713046310235957876080295856431052482538631997724607319816713219103414761382401492803245037702614045593168843500511150160260541409656172936629074774373004366032242663620679357185913411244959598378977784516001885807457193788504927196746227267108527427035335173430407027988440657524782391881460387997293193943412161602958732275931712345882317672643822312075764908209489343804160541381246524121533738907185875804776836846086850095296212282278787541096697060802606313157668114445511292986632241261697347284890920984204349731809248572789686261956638222007677457462206591832277564861688117839386277816786016272904163782021547190093543297439910910450069762450245868297002152032189023048989149994363513724260635564404128622092692130924362680973488767773235886827443870561894071524242308799779795001460353551447368989200257275390763389176089897015373498670183680452426266942141856456054508131824978085361892521468862060433886131328070040594236321686717022043544461769743356874008437992851383375029790054767463272519323646984240721086660514120979872535320017723536577121346440703413514076886841182703915178040618732259403120942520320366344550542023258131360273566456673234550093619643717099888361124080628697006614827820683976679941358215401130492481550343186566942108672639135270361471411395197932375070326620874395805890540021196827172113101024790527864206523555408328578215924708848547477932973047510475830072336900826485640990356461656399915508001999872559269308296654720424836307059169946123047459621961548844386441371827153098989140718288587560418643269845013843526165639050352728903030296088066932335283668904732980782097225937032710169182755310784892483152721427060825867663159044766558587813294556515786131477148912640612934653184298319501536052657401546989263832981246357139029943290613776919989897550265398050042492148275398748474718561457093611754769908590643118876584581113301741695131003695249314054271497987082888674882215334518769621480598264974538960889079575255650404020092123273988287085626474528102646801613799332532527395498611109364041262285247393675899290325590431299929317068785086239010051965108375523159616360577945022026923249997726572671766800276961978907276101462570958999570944040584218788647489305754919452275919024828585637819601115167359290789445006334020557678217280347097448789644426795595185749960663770115148638907795785176856105033744781975945648616452953305338985815729464094203692438712150562993920050364761219061896584907225999831589745133298635406307558885185957470621550747430496733272371228573455658364428730234075735610467243773449227217373593196539522915009963424198433243335951270029156030737346563723066799610994355926846670474582139493985805915703061302295921185393416299086864137470327923616660565686121766602236879462835925536082112714806763140784369330579427742458035571060615500344265182007177710689906520438881041506752038771805340270976871910476257344455467510001332365345022860526019763565835581240683599699005606494490500335116823474539004660543351617408906869626609910483793032381899819394219658095615874923012366022901662175145646912766446155481895434111370159517815448217327560236442013168343383410688940623695824643966800539277670621211004891248519429455166073336570297648034451271642535844778855732207035786545775840400288910361262306411034543297868973987399650391501490203755828477817582068306557264759360700977453876116859392874601615792027949024647595767336570298570309996863417981786100669423466364407839093543004520917381153510267160085286840391999534709655439176206398803294299296323012384638271759768003716650146007764437345060350145993267090033744645795750335062449658556926455356234138292201507976547607482346010031105637108927844816329738207802721917359035066023936497012663637414787689608736422509371718453206559221213255248487735362285803432382106504621986088662702915687979019236662578953586838558487442900262133997614910681639926633872479359547063989353594470654164535509810827296500425430114108392258302131420172898379747866042442962901115694559351654469347428955693141666157053976779126859550328727686995638663604657867319685691252774904397388850066012312632441994316120483509168568913635627579177831598232208528363139819644494471059712459772306591891658665827875744605655996403106530062867069856130244236121795399365801128953290274670567078988729239517612782477179735377809325046243233290157169493635968153515781226471192605512992286188881111574134955727460883640408939581478306031015862567636392796333191474967129491502878790167259841646227706982842311194085921547492993688910998744743151138348559483685528297777484356717606063956978386467478554009252597928321673816551321284141706812248678820588941053563869034958671064267032030380764523060557553175256715255079385789593859296255302634340586135710380088659460893082035100748068177328597997854677143150474441736144673632612418274743042843130970559391500388339057598791018607218826561583310866112174071340639393055381575094778302892518687385317313126156943533089217752300647136872759215329015771270564065854890358958524676961169133905069375766053491605375242648367155386791059510604767219950944357252779941621293054703145849631313475821320194790589961338969349574949021549621292949761727066307914037957856102959677200086414718085504734454584698229914128503183992275264715012499659545025789257259934689074251469754912208998448311201056634702997341545249168178208123082407813368677230005458150376125332547300472897018810332308651019307341810651271621648279231254922707176272565448933268133452944334400296186563982003304721993167358373302177779464896282978580264944874755189977996727696269677656273990899695155423588986091782260289449658984994315661252300035263229659334097634686404659553401448466802813106502109274483986084957807961785710488533721790083483497374013355728734104254086550245549377507032186053374535876340861509058630077599794089826910086370949867487788925244628957393799899572149009346622353963834640804417114026253709685076628295504813214419877522796164758900618450749436051886856723793848813587865865746219148195294705980369653909998455633642106151136318003137119274517519983287627004366837106496822065659066051782003779426133623303182017897238648685813644818193846185359114991776584197288840764711318977946280828546392446643046205731026680039900462454109027094049996488030373170506802011696572735492239770968831413355722724808623442632551012757719803092459949824003726218211198469359354157105127569754476508513222100501699354667610706473247788088095721650538943630758534578321464262338235753187058959332648163607434693321155328800993823544224095848939828934922146684849357380887885530185070242472194994151005546265571284343743693401608098170896218410261934480559359413194830388253197460788398375420115038393949496300710654587391689142841256066421255879066520110681167319799689707298567404000532709786801784106999761492987410079585821934635614614062607233548625096129822145304652040633926745744069930870817487603871396921511931927164293202521587746382051079237181482534694781733835407536467959131631898519117939630186194910704232262055799725205764294973768006294657797233066389259996793510705622915663971434840295860602884511617165923809088405945230281121624321360830175585509113261204052246042061300185783723344395737891096870713129365697220062777636615863373421692394792217934112635982331649321936560414662650618947434268446960610510977812149253452334956350789806627911310547670483743981660400484367137669132296741364960292938801274291491309598280540950280223924762713325302421705533066664512033660610842918700440065219686100816357993415428315570677782452083279315618445547128366058443487165842061764475409818915922210590196570842845038334050976022365984981985083244037017174410800145833013148993833951085907697464777830828224262462888925147717980173123494716203568119757895360353925729942890145522875786162831977703026661985919439079157881218946115915005402544009035528601398962955555802965290313537806712093608097546221307147491985349085407126538613619960488799877437977966919787867448674701901299502173412269514203124685740517219566989983518946103944651263107715620952644611103736487853336227577962324128753877174535418725432211122702383519409705409358828322686349763246451062913500748580063932930746370802879393930162489896660834100020964196456709800760144901841625866972116979832131614013929957583650803380646533450222845529222500218937091854531589566155476183433185826299085634731586013126593695130962820391627139860341086535254791280657997100364438991491590560373763817185701429362612475313571907883606932877643203185143679871091766834504886923803913821944258085299921269929459858351755678869323038527539194776745421559292501044955485031880985071974444118162151986575366192885579347467323853581020100006541276792482961304092264274857937650577247186115039633451420966879800443867969845320396839291954601965567654442257902623694500727022900858294789297056817241645828944751243002785023215911389390064731582781279005064864334022690961416996550147184343229494020366554760913902322038172281391809398740796768128099504113737459209807615598257091869588679363520226753281531255835525247706299949892651170910643583751486516952443760869336766641615638975848887127195292606477862847301225455104121502761660940024115682654166927896711568456277708903625210397808180725485567461782324468724524864663204993623386497600021468284539105046819319315632737985508712344038002887753815138492815666699824602676535906772278026127763597492357951308343294742120336159728640155726322652851008873199858151946968261718892040734062850385346632248688735155480661346427535441060748337974087747869922525602865400141605131569009789029702087207264126655598485237815364938737395028661323382333523025923733048401618040054382518622165666389930664271615565740247071436851240973839106294643029550863333363646873654338050181711774907859057122208515306347809251999087627234488512417077108575631715241617376615121107317796673095907166326148459688490511091810624101290004471622881591579161376149884521765066644497629076973078853442373467895040287035687546668949291614082675649069464328066824643573783713499956230157196218120962692407545894320467461182440154068555432458808623792571428116979624524082338957709864497333071738382400622301888371537478953284826774250568731748755220305534506125946251988294759244471532333266956497989181672043703632446773548791732313900170584376364855536384842417663009799143973328249678229527604834810211968671903125985977937414630907946821479163715394532970290738217293534291910276145676437206426860472777561445986994430028072622189420193930298537625743307019886703147161491863434810993998955552713892037536143774623659627319572622185034306290173284039383369643907173645847257445230017626542464994378605991568824332585125518597294139282443000708430898374343660356738508986088018331010298789771894662032937567124908395235988612658300889050738720560889869584369234708338878547231208752549668757101813749143428000564362175843292218813206232894686626137112991313640869971530961910655605018458753039132455845401489597748440672940998787771386139897417626120190117827815175910391565671940616085249890098162944168291726451815020836411795009402136393128332121191254486854418154070386624985380901227964953675899731245060194155587967496917439876162069505264818245493714682572428555982612579126891726758055570159540545677072442441063609256092094837847094479596504419597756638216629268298189718411959606751821902073231541828269062965647283248695259458458142872292850678747904664963899927111835595422706060271366761503769432928444306853848280658564568269378178565798036708152860636282475120996250181686939828954488031234282240822669030576625714152380535512104063328501060469898557737717514891103625735248399169595264327244670622502633487753116353154893698952790312724079499376714317191521761581501664260461894932465307156547667208836124947856425236319480079064392513549084466316930126518486717786684696158179633799324047562633116177450596620898701430777214938498758824051569943900366007459231854079317796063323998146559867035762061211983445593400983290840570460850804509515631072385596073385285758868794251940379187988856928223683875191471151566792523591897913447888315874861137382441548379171652901451203755772515594338619193262467061717408640218846285201723451941317713840387095528774821642452041203249182892255224742350594527166891872698963106430711540798200995674112739156176116914176201729255038830197450644043133278114431454559595067648285182316975865192427885374742026013745397860878397247513730770070561081461900044505042466148476590365219829155260917844938445173951085210912980200575620388044421022932107116303673899842184471550952560798838400014717463855274340242755100944146585923375356249289830624937938559417377907930756142094452343628903008251802809212812248278739022169038590189894991794377956394592732250253720781866273669140025649309017068533833287982232250464626016141407722345301306368234734135010253781581662096468142772044816970377484530707183520555258829142956167402705081099716636192477041059433242467485671082404066635498377107348873258346011402867713970405616173117493930649825032858680466840837574148932646770350366674668637202660832335852562694118033414199444430272737896249638898509292657514215481197324790766719416486522781947625114221231901875267460186658708395591529713202891459347936531713385518537441281593658096330254318027404736724352153856771873671176003644259676685844194969613062582974679511169577198059145213482722109671729119546516639975024817973449390890947748013436504076682384559552007344277503337925968277799730131583894214836493563711536540420319186184079920501008626991114421000951781998600870089119890363215426766385119232307177590787678831452636536237747416310519756822713316884625864065210203300834459000109158723602401777291455600791048807129117319323939203334764385534132231137778561584497388477210335800388589501282690432257540932812871491227172290746560623454450862551571386366864080080745447825119258917149673146034206540407808697530210665980384612031942287097057061247255982937485763903359064605407885222735109443567116008578344398233779516777992807464039266210083333233487003448141127923745317651608124908572366799220463813198750077192344189149226531138761143393427889461259961127176006756349984064190591350703115828079553690095477540777197083829641772244433124501263416147377086094598033492171727720837882123807091585583979424403845930253350711363618694106606111045505624443466114243915004733092653947950660513987655751145861898185832906542814368755567317035307477797028469784929756858696428326143016779242931880486896977031876800872071692230818986733071625969684139359980354649178490169587221136571449624195788532869545043119686881701411393536635703831279798018136900816563914035096449957085006523638802472860179349812093042036939293730883279253952906936831772088950185965964950564100719252153386619015804696022267246292672839070407596899733824031316454332996036618375599238220851076577464738313887111737981604531439735201667076489346315402689147522370013558007098771920557340625893530091155107996233572237525840132740641204747820623887181246303174171237206469798007373360638040108080692638555353526136717564997779703628904665104708495061186570470094014208681234214679584639111910604642723202131877084566959589313214888614907600663795293415319161911140434760247769776310260982818499791065543743934721099010909523160419248943162412988038968200845723617744335353324818834928374343882794302286958068207291995098902411906128455908166845423912927407084130659456513632741894746092432834615359831870648233782829944465889821520035199551417725820202213903668446053791351520611098469382444941618744931830168637094345057214395487456137211930384956464322776688951594894840152829951913258677126109798499450426744739612710216195710277906384713451940991200224064683229459890904552831484038112646064077335059406416250551464307344072912755431518248478123697037106050236506352803685852878384011717658604434018014824361740981012986108284028639415742929751912637934763255415508947271091373369963566062757525177764115208116707280595584677940138590677735777759663918288972495529859200597954765664927125804531979756333280225425083970602376381862584089797392875889118414014047147039490584641101470046069695963242606446879746716674036581633856523141588270227325638060286092821877535566773802759683026438268554330423470777675462450438195446993853371660287932181015426059064726043179843144184615161407295573965346008630185539705106518314859391139953113985578085326034529923876870609207905197282610720364800730005379418447849877683566035706664754083067801896926119714776399498797383273577836510539710810997214606186821546357879260639189456014362611799881872617518732341461935980148301993753049176029249118707479279940079395008497030040993218202953417589663054759627393724011569311293182633808173703277833135755532932818339543137123967469759358667878495834210065529869391090817039663288137440997826098356608435163932792972699458424297776245795009924123522770052394195360358145924171784399066227023245731282406070361927571292687635529966920750481995163170286212818182413621833259914928305154157046732166313629098803757900210525320936542253242511691017024346291755730469453731208031448446891872401232249536973837157804300976346265331828094410517154145331470813089606708578135933777319363795428586799331232707209272364111722742787577791928353352948369832083785192116347066095972124918129059582286701855461478742401859877360680252209633926164532765017954839475293928087872904157121454468512961912805026655103315454535879746533896386145609404516636991835165377885297231339823412916190750084599555914613229827209180085161676726660312546695158926522113218538533299083868003316273981178478977800402293941724788896843609975629742835488784269339119389203786631598852717756430008575567117763473702397947639047952848405183362713710000443878489917042645780605764536879287372608664263818153233422652343084027653198840374276045421342377527456851621088939592771145269602937510016217848823886322952767115945526703662719326416966629839226534534025205309961272309638321737592967935620923293918581248744092179912652520399419960751269990882187563216975159831225575091039328761760544362967925207923982551586544109807192842250590018583868795896011681626312093978040652456540224336682084098311931621380518222228233164411818435294722095578271005000581483985719327486498056176301009219608630453285625873808113234444936078953437229225576537365734955433788453665760228594030392316288064914382278755242591502926737661116564938667887787159453174506456376563142812904264184808042314891683905432829375839754954832242904239626500385819582195973553384929778707972383730873041048423375300771632179140267670104117190333599457590811926213544072003130648101394615314092607007101550578304371796088041228785054632202115353766871223507765231379629112755706060675290602694549493308438767093412306918939486995007234364068032268363910931865133388858641356135459688984745753836739954967906521298643364454136951300711085381388889069273837335101062153212882389893888316276136745688874667529143311560912045196484957211212308798117181268071786278144641317629518058617244164687769057822790193440557148432640868829160669047772847900289302294456542339643224360697811115247581307126541903758189966693594321216482970087952127063666604542303762980900864428280239843293879921059010239532359147795878214629352516822363821347026868143237271928560447361256031262849169171895849702371270802270418918089363682792925259412086332268761476875477567793020931025088479831557732156895506418537397490203598699164769891560296375604786627582479281980416816778862089164274387864563556627371930589406267260596177526155678040842571428256707619240895838973350101789040475964630555064081851595379718204593865594146449448382295954688962439686570645924226575393911499090447035191559791850452576011477553671570241069301764363836564507460218321408550748805460658527844907743631541650214210148343820422150398691209033883742414830205990847114429972857697949880082154303549517015713099326400470386064425830214602489964098461610509425420645626325014052400615311513273691625611935645126207670813862998378044427876404294615258102799697807704781543767314860718567392489372011824322229595379580659738099296666520194504361722590832544235118544327855647892520801679999100766011807588164677960255521480562554257774230436622406425032397990388513758692387241312723839829154531616806123352773581692561363093188103828555514722829696538902670138807338261589149948814161079970085414401678374324852271391180234627250938819421357926615669677660099921558615972189833748602068967990759944086347156961876256275399780308408318602846836886305556658733158513372831194234641837658598314467906033607617497713283924324647441678906758484904341173767201001057931995657012973838358513017499684491952425043351689228999232758207085405705631006921562907568250438002957322563916597123874407769800271788126770470106073036833601586813157992336122984926164984588749807809332024958188701048770441659510972243962465715125203443675403008805918935287555582503339871355098238435159525946985746724663556120163143845122565844734352183112300794345712917727227500009724814707127876921398406188532741759146301737721829388207529761545007226300407465263656444034946859362042065763029447163833520592552791110006906271058863598953591198992260891965398667573676592227615285279751068603665075310523065312115571194473425609935498854120702426576874233130009702540491961989174688231597287636608063696231813232935963111263711120293065256823603754676916118495720456431029545281270921223280512024741516741697946650070198039879400360561640948254379873453994423957557612490227911196963940752890662898188996437746207184076595697827041503977276173651655112866249461965866543166028545455380157996919251869476793482460146779731010229109484561457594874388520962615702570375886450965601235165363051112848804350477716183875413388693705282402911610004991765356577007345602914643730097004993903043008378369270486965421799755901864690136653239602805425143912838174169725920640218122371650017831133381693331246928132747712966386944851914924760348751252339001696189132125438456506144192747680264661635706580006924097284682601703621227915209560557082191460205598809869271931513178729994476739861787677428305813640440521647469154333640620064549341439755455866143146880283289162044606401958592535029480248804241438229117531009754566239786630667072465609729186652424739426903634171888034310358454814930558111755673595857501852434921556836386057272759498998444520602879393643959116486513582972549299278362619941933083023395265349544187316270599016866243648831272950891609277744303073463566170661071735423419825802954722765268663778313337731482871894754603996134639960011961551835564874268584989457769328812996719344043529902817708578792709682438700319580664586382722770602815780344851567741976163468267632735523925955897886934009614759476578642157101478751480518537006346770180034711015568825591338172210321147887468568108598836418836826958267527798790231936503576905689424000790850950530353009397802311699130052157646669975707970547678938998625700299925905477623712440725843213887777389968386668213585580398456283444302591865003601417118303163987199801675378981362825942448709024705173346215130471322652858652191340079681845708742975564662842307007798465976987773443483411666839274798861164407084732928409003149518186343898122681789643095872352310749378994616929419054749153473358228678182052294155042762132255042176344894384115670704320889070416176013484101987315120838716795124232328204300000391363427275660026308706341623119340797438546817310868321722153785476481093720612188674448159045949607089868513062075438862791131185646168123074064106212372934860126259589906706506506936290205389237401463763912818068394266105095113866267773798467038842740757545999042213403095750668355616084291367324786974367167567339847836872289718981183495155360981560913562962703644872689561084590913142801701950641529743265436697187562412989392254859344078064839858270055467014091419184101218366817479704183288436733760382721981538272985187520870325584493603122935652292816110020478882288476479383116351934317335971830591646491081167203003125529306058600370321131793757930743739538459798863509882632212573414752527200150346171684253074415099558541705210172300812843557027920720163150301638708220808428699153557913704008038767934512955431508856378154779733573762711776102899164985547749641950247692194536852199722611930911332505661019323736583520376350877783577084536271572447784422036390178709946861858677028026659206790212604600491248840751764433602327542785815388147601606759228825409672806614866975717890384317457376004740360394060064950580677386143737932189626264641695878652873296835746296232587299668631506232160936478658710799514148567037626220736212645993331736109850931128326497103849579622041091015443787079656411379901547801575777202220552085863151834900690844867063836896166736214727285887214876870552392292596212343978198845054474146962602023907861639789024544571762614703807613502404626475065333493089256100520979005723874455419008739237743166908484554281993468923600942352307807164982708766944579245298261501173634590109401423199016148258326163667896027304999720013899762742235999226128253924295077825633004442198182952704850407813584681045940444305448084725725869952894422768305025652583351115484361170831484099264066217495374393881390641918744167230236891890873476775707328749302899199333203947037487662874388904950358663651676016442582918805548362505509942893754078842930186567111048058796979090005167605407149549561173240645273050793086693729572473632221078415488533676469503867962634412349983976556702664044099118681615084697640539646366752375108742569216427363804052032588896376207066192344178772253977846846205338479630167381801732183555396185012032851628546517103574131082973055772322604879214153832764003384431326434534508410219949669896881978409367537330442732661657497587369096915952896153114039231257096297301810344844430545379819679672897242081291434408270979590584832089432426552488261136147347118214945715171952207019417460574866793716462283952349065681382484850903714658989191328508448380591209361282621360177578473877782194250689676422473781238053972153141422563443896089594915176227100059670335268730580470563375081064813880392221264029852953432381058575424139291732719746327032914958903930065880761277090628417936234403383450908893834339109856614312561687072486396462656680611154008571568427942384897331083560621507988541161568476861225156287217572079411101362389735688264680483094385407824692503618866758772693273154114153381415989690325047660339115495178033820352498993311496925265354181789823840951968527598362550638535075177648521177751397640677752006541034034496237627388683517500887672170462486098128927634581256464661788482567510504244552492759292780241455546134790923706962080133204110520747480686126982556598954686396963408182108412596216834540524229125310577714072857321136316384707543167198495276451851961439461196697252083479234315997432662264499309493857871773190968942916852155682369355003151978975492037817106877583798894858493376090204609574892356144129338959942321827962498045357565500254841703841471116635081053355762437097231655260843319708506628234517254580001969519166568075074164937631174360176577853408701713846207316896609692403345978568889598629055596688693424467785181549495007925967205735138979536458756968297186962056848701138753429944283199385754617550226775297360909418978176424572666826209940787315762891579164836923624447625679743635627499613629884326580773329192942513763868087055950311690762858281619556524538450029387010933727766750094746074752970261660951025013805279509988552739494683569618585040580666641543979763233475782114703599306326336529513838110941270553210900751833538232817955218090460350420018346998393770395603428021701809338631510667644973969454667808357868790356356428612150358031362773445214244825686261436171387595000466541106748997174239007712879098320819107771054256244096404515090405999830913546338660394747696535251232618479583367200772792797827545016006069680048746560566578446835395012991914278491505335422551377639205877412580691859580853381925356104553096606451075845197205110577444687684600986436306277239760868703847048751269406657282205222255624354136503662520651256402472599314186339802827290582442098645343779878923335357045720960123831552668632673406717120654854277385673136798569905617620004807249606320765239943249481289492054756364286958005601308280409871887445009597973686113762709737987202440677896846023673165470481249940625839730672084797184922547998235678244617500187728789229965455546471046802692087632319734983779218033530675812818099425590687167286150009009170630105563128692687089110436990708471843063271423727924096433569303607471291541648761403219598834083291822210601923968859034252073712938177903611003688601978120289891221886879056729185828473019765062049552685650597067561093007542587827808270927161713419243449765999641706310856033372116116645418847920985293028623720917723791021936203425813328596452587261063152321968106102429123377732709581825673735294678335089597760509761971654753927623212862297057333558048842896429995262521726972888988816693492654737194223316569032534311199882662845202856373555565010836314953518911846591270463347935553194493665640214442067590985854113694352042390937584451229334165796011346887219977849919305261228888182187545559779580003318187858471109390962584759023047493272403723636443795602643493389903638901640666385943604158654512419926095931968430757745508458397043380705747747096245883761957952229761922513970906581258187659451966008607235823465115107496280002641172278028442329671602813814650313890406846380804848428172300615384661436931276915181523256032413357055131375736036158539407828511239571233709614605880493397810096866872447616285723137305732970191665135152120275323451548300376181896199294522070774700561519785581009481834198630996054629378233637065352163447119098770155299062200824806421431827744549019343960114277323082257854270720744415019713775113287560777307127076742416419660474322608028945200100973126923810105628033683896344222385418339296676124414785112198690586135895555333210195546661846305942715908596830268671894199219521023338276336584566103112820641411679629009571277781398955074245538002557437830428764794990309120640256891479362277887245103159757403009730689343621802746707078211585207151637877242924104976155940668760582907128511673533342792113638570339662570958613807093477546421621078117676764119644358837582708866666293648139058832375753566364726874978512092284697285668776002510637277525713098203325795071139227163017170989286698960606820653592892145251701092906547772036942682158149624378262833423086636836557268889553334883960281297549756599517427237378560252991691114402626612709773446319646131069875513499540209568976868153851490131278899122070421012963198481315355712857758155040581929290232849018717088268757406292872462978036447045784031001722278779602078027531218736902730160151400498899853347992271167685998611512224618199300538285835936941653960691724924841640844002204285246875631776038231919845224963246349544232500962294537804512538055716645776747334741985762790844276333623068283438288028667689599592273412026855076248468694798788600861159288830283293875965215036936878449665068680925635096970483685299337484264457961880004894179455600411728433344136007038589684028934882201187053222527414039627263279738161137213125442808900897377660959856805713666162085978302196014912038349817851045913635792435842858385114300625949122606710471830160200746455315797675353769467744754586312588404702419504548917693038983100066458963907257145902326604658436294337426278238582696042344552523912880672448016498456053860580456421993870677161728861800226030297024955601703304913307669757274933878455700219477574916991752366265726088877358022276877588790152715191926039512517239688920503991052385592245948891843770985948977978413252032718300182532835423735124554322469930708362251475743478683211846079454169631906189154259480071516130771923430580010236802058457869256129305508374581905883321789963374668877140039646161505066639852445616475928252565724433664099284520580877418022152739334896443134699094487320290636428629902994846383232826873980969868772242285253849492472859913051223717816395745757198047579250273034599073121434786453985137849056975863093931176324730691932841393620116352447600033160674303044354661640760916380509664622091379987096852360741195701746653972290935868354011811782801887690462300988176851504069341698079749765423000177553245652561095018760678075854094025595633311093304176517704858226311479393337994701860563844321835474597925117630003644643673147570372194611121921097806050021252950583748507059849214972757095161044459535311998571170286275012568383915396878271661998812631114995115430535103732735935774717435411745988026423852187325963446514365871023729638874174886927095401146992100139812029479563588053811702345884369648862908569810358463220132729777188317379915043393916056163589293276623817705925613690452743330423412863167678500603717256792654628908936536223533429585312020549633132406435352073427801870917225464463990235991454467309958985440712170622188118820043828344468020356220020095760390640448109006715868648346655886252132758564497021835666936084633539928590324123661645146685523824080674345981861053458286219815056353248751655038075327396504854294702609398075217907719274473807819020790219888482225213454849312322277974239591158750727239079770234980209123108958736650530078166293478484411976421881694485190659741063539517688708106408787332731347732522719671739708860480789142503569166380494077261765154483569753480518262222813793639417931446133783241902268125792694126465369753591993479624119052288031993749504672183642433802442516366368774528895761461364764543369575164037243231580131048486051738834291197287404855377340281018564505872347857681091986760269027575834451321718045513289826011712768749908846681938401502348442116575949702426358042898138207698971666086127626049349228119454204430626652313950142689723749124953684443420815286501146079449277560693395888238527390602775779576108260650606253367832449839322344120085849450262499254046078028653586919095441846678725094643956056001818759941782394756305754844542381237965684958986376193147581168945260169779642194515422244725507181501528022365448268812770130216976497035573443199199070160519114744684426607955690535959656175914611177838184607447643420855918255611926529122024146817221201925769893707972077841540003348277841168068889430053950559450197409166511338605254853380452506281541306654495990413102578460083970777820594688892379505610961142591197536864764798848666572947655024501323632408658287392096542835603778559828838186304860575435020177360450665646802958338283716218663745343296328790235884227305126927455653264729482903533374263025767812176061941834017921902604773397209448243753901904962612764430135459210403425358792266875637367202817268923280373572185207342398426252431282444910916462923580185584287392356526127017699787418730526092214278876909875624457612369256345924802714287082296880246746065578264207745289981626486782325304274250382587893668084034198941675539025570146266181738446515541504804271827241533516111408493316324110752467761000297903219251145673423327979003373938505105310757313895053293107194026835033444869298723907277830438398598740194953133497359689159485506371020753950148164757644495807680793690221530739735542352616676327966421350191373787245521847884491817543697393881694903315048275102661655974424847012956357117238312726869537805706691184696874425130480214894283066459480813372832879161882610001752018514622342120180515773220610877893715184154035012319075816725866600557515532892324477919201467046032450119704730639939231036502600291676817000597586267086218291440636657746011525029309168777990718217840349317421748174298802181248004641340994772915548973654154584356341524949783748569244628818243164240370929304090340642463605154791349267688748933731409031244801597550379869705032350188245636103692611097779473087654882475961616364493102396508257590448750826047000180968019854853148425826570946656600068400176436232195573366369295714703165956529852598724464815654786637533046393555252501815125180200392539702273192761962311501549638827375711198211848146454941923430788471314430604531475964532749202943241749198091243749390466760531130153793434544725245232247760287617095529801346246101928090002131958001124925052203533631936356169493447104036807803190734018828541804571128275445398476227102652623364761945028126256092806341582895594150388247054066489562380348867252178177849288621202244035834102171912108227298744134333928131330639160804899010720370015718772312431526090162688170705469698735110287846695845919628251120340527134443679209926221915625944218610695376971771428945671397657288305432450476676155898121637366934515068841655274969377622520256203446740837624129095458943668573685699738802334914597616931156539825776456507410762899673693554338846111764012289715140167866431109953267405422242542058799311257840608978579184723358689683652034717270047421143366190495273142869131816122027270631837694570977309522218315142679387047290297834582514805781083982342085981542205648441701204779544435685045062506438385796392933213041506471105091068173412453553715607873000424768863098144838116269164133166141900034649850600408264349227507624198310145331166345555728848497872715117658482677353334238617317746802318231025517176700473865688886990941776275823743761646059283725008908740875828234365060201130695820616407476553359308886303612723473406067180447053158954721321410922549333751468280130577250693909878430727004598533042458182885480409218508180019320789215888411351099304642087008281748418533420619091169492967455704407847476799646304159011693130914902740393672281817814706288464077191358605215990441179992859345467386302759526545938978314871382678911194430281261919746642377569702991814354276469026674007667155089362057179220029632952289820685018648689598960376100582217877957252873623980010105613423550744823353590072577709731347385873955346420615071849327399895147087262774632851706812976808702913655301134761009130008057307710086633832013820417782539290704509470458203512276174190831342239833183682202382558583929586846588686484703858054793896809683086875830235694261708642582775366965328820895844311371385351400865758300498358196679740490000695022837082946562794354368453984111089103200331541775721933005953830906437333896956810520095093412580184297817658976485771543797375498560865230592680566320593729490643830310856310785901025712373759800944256346069147803279187603569405557557486230432722506432382340815289389787380227561520666659009764512909802098575693290285006763461731825107563266069498773800186957538329977739232980448639032433515440424946220423156696182915660927167575182612130268127240436661114770166968301803081601945823299090553988650299510642063452929918004313315300609176076041439808448460094042221879222258519483169842100492375087480149182424495228989465716427966111958208556210571771420573763219927181701667864289047485862723453646823804317492988239544953910348740644927507327774243228992734209541482245544213853442521915438723185997647488931422242639516286817615336897491570820257935695979381309189375842020055825984709939168945927030301006670118871996987979218569295924920522520098352269050830523280230243104827202368561810194438332443908028430367712383958157706957993735179396324100049776925872467729223835130947246418011318521477737667723804571766446250153740949032041867036740754608626884505903180882809020540609576096437787111917510665951039869413702524697305170207420383924603129417746828756577919999467306220354748157293782819653704698128639424392176864292849136286162723118747951746011670535118155237121719341791642613012352586538021365369175686289748145134910209393829171275408386628207721760481578883377718973101240219825410172503212081194521341998433159816416382989724029911842794835049911112576735751394888516469512381401993536714853037790069998518749821674318529576172142164884091534438357676761224028734494886396859056906759889419021728573949608387113390957477254695790013448540056569967090707438726906854587986496641315704220204719488096987404576493794995139127884882266668669320415169617693217683006442701936614953299501617658572840379676906425428182793497005935776790172233201452765328426532614509422378050818412814052283482325875479854685446745513507788230124712048079090088042588517293657717814787205373356786108627529525883355791984755571766236323280176211796909570960911373174085192319320130516540626735955295121047396374459777299524855870852895816908140232380356704208018852458326331333744278399587452506669384001617924084602486837986717033829081844514412755989935074721004811446233109632408375429621180934013900042326565472256354233744458217458564748990633527281013933221660103808050751296603630497578500926859429414084174964763302183431771542807258843704401641848002788738293117545088197161107282011097693322075404731347396816125866218867680096796279640156104926268869193015809286799635463818912559570107208811058902789532277132975865856575924779978661791819694773595806268278953599753115684205424341667515762325212381938829860780698433746350409162905724461262551420424141860212900644339315769739023069175291173960475930612502720857150191036627197191801192856693289891089082633106389083125098271980079269169936467462025383446768827040548021254090285751845520070259908466107956871644160871027818308234264553418996079603084541399230383511452263918416823977210154184370686729267870363875775090426659851414030882872698261459259616121140311263718386480472734329387747628203026058325063117059625941045783894708308356910734924208004696680940225221676064153130709954496983448409743331412141010522910177406928762981908035233483080750744877367566070534960491857773663568890312047679414038528111635996067975364392136816783934366461448174337650759329763867061007307600417949827575752721715819311483040892447004731304770718304821447268142042278443212146245776358034915408711957550123994382707608541263701192940370773222410000835800138993470259624463321548579312739829475673467370221801086439203486585884313775110357337978428364201710127175425126558286439406903328143561288596945234681032210063159575959424381645702786853373713161428557127551783998318329090194981897589271610833538608864176986876087222771198913611605923804813598976800010284014170638895370123507540394839352589760218311288894011206518035297617504194649044158008250834234984663778183025715761712822327845710910369941765050506178678250708252443370751103800303444662945569552738352299471516669877679208333598537989668120961522035993687931560770820947497456960499320904124128600218582763007005668433397108305664231947464774731922122714961612780709137982447612008309807376655537151149082238413268982951289889034228191093274942754005657496343534281907953899685388085468076834095099231072052858577791162416708247569750969662053275359345420962364986417032865654153991089381768001372159062022374733189297684063613182395576111512906391850021538620205663691396742751617378776620880418172697921539206883137294975404075798508999353606230304484981614201017739838821019142186940673077462343670557921663699295105369561734333409228880858612564942357252665250631107229407577491451870319716957464650764947449216937018915285177279198871269308555874123409979407055762151126789815591063745847931212173192778160793440969059772522001534023967948318595956528500161141329167700070888767678376767514247148146975593568120436648929410540023241360848930182884551869972244299524032611789867786264969977225444711570033199667840205651309159498709543893891457489961732156773871205518135491217181604889064649066045244750049307445033938652539315120477949517294187973696378975454483630521099781816285939636105975998996403137980958215413375308712196973339356111356045443019033941107367447257718739363371493439228643298122586328346252773870833578267362192477078189640117189683325586223011833940254102770543339755703999343924653745914624470807570615917216575720534016616169302957855179141038487007006053137546581798419453110541388175428243196225327691410068966360682256826474276476333366376180447580777994512363877958483246900938928658972789874872129586443550210461234476861890061502124799665904918526387449506539408646005507892624021983314622752674092239956699868107927120630247305371928110270217477827996282424288785935200192313951068301434741645575461974161459881344872839088790386789608839971328143785275741049413063905369129086343806066520049566224195106279520285675195601803797155648594334481957801918605555735106744441919580539905818512638474327193369901610358421913560804773811030340357927673213913802283593275723809318040691569482891083980574265841332351266252039439062668868282041464255490185542636606593580097459265079092909709529876825742022871299676660080379663764518872845118245384491481563137652525241553497097356916570158775254911589218469827029885912741659891691043056674748152478229065122986787126973557000408843753301261088196718963520837934342288240310047424109506130583751131828137270101741977642177827770379253464417632762327500705295517770549481933069541241841812101674572436084457643401394373756651693845740843321411195517873003852038256959055444623121121550591654099897764096779620328073315466611816299061690267527732631069445419394386338407510249349710366275021855076076131962714063813396386472371236647891832203981845740570460510350996264091159743404104840770741106477378707298243518781489772017668819756988583218959781748646324442612017230366622329022348172711474607577806575647813890891585936536210332607317331198673749136837971405526343825508533550832292471833655413314337400139865351869636248698833858469837181123226710347437552412478587283895273402984453802909698976518502662322048357630919827613474668573687507761284914804317686138465343582567596641008871387573512034254902377318594090097643604536693396622566870346929637881830625057518577372456190760675209912623941744222528647985836576775594723067295457165992701327968750561608519463673400171665480227896648089721740786319890348095318419382701678157521604029559944747699037076717139355322468435974783581658751047638802018299600528947432724764111494019913824094180691665289287621138050117809069765494295392887415961253938169482776939083711902882022814407557403159782873873002810660710289333701066069547352844172541468819577806178428415235108719025362415614111654052788277976732009092107647267088173897951420225407278310506711392144294268541168402421957769474405882157270317662972071912528286052828840661338257722470075166592077956657798459848000021714545233500748911683779757539092351518126479718551909667354717870179362084461712201020652241242609946622552145678192643119741122669356636330691104392964474545646198607803092582555988947542668259866296939716810613948095660162626786157755549103973844248697581034889713600119568309588042187189255188340385036026263359570731003288373523914912465456438020646535087365288757603604780930969992079699184387825354363873355716972756727493774140586785930776519516064802326012237555296970786527999423198900814914164574833172112171289544589291123672181208104292777854659982690765124196926979427365203967422355394655442165541429714656080867977742556993822393922778209937711489024517073315839416376267647482258978983284801963673853251915556450526224125125090709583273659185450829838704255949227188343293221669821010286179847860625069449851413247746760806409918500709622538020556980868168318715258048757145457567875194123883892391766619050035229655249612916345762425852087523541760894127175175771805673639678492417562926814364160214512540926247529723697205153744428358426784980113857251262322101050088077815076463211329240462208001460392057592049116594939545380287150828419425497220688302385242185384317423845141809587818816393023800066602099757846966467749558696322946642499798113098663156207941283920120737886107933451346655524531934771166057892830300875197183710049872188520079321326181197917373184286035173389734329373552260256587531724889955163073340840378368683019931881157070100581517619925118388738155770336945391895151446573736134886628997083191067958241468007661552929483553896371066450368206058364185829404197502564440857409966751229511885723313463944606505920954047709313284123940930704229459163228206424388591483612068252952947113760794570795206690676153752079279515555395398541289040068192608470976848810795381983787423267526305082920288520752757495795691117968025400904914438700562958723634873138749743754134832848254194361492242604693943696003905453643123084577426804647783728641225543802594560065487123644908388369459867083899484246553041285776058223630277066838529899830731841446705281513081793342030488001855411626779307795904648640650120166762511896499899227935010541779932275649331921930416182405413485225910111143964199332085928439809161620990089684146600114301156140632916128172664808873499554214130797002406408165878969262041509739144914748850873297988868349730363749936551252417410809771754432955598186957724207306491152603576271159509898646641568124431878754379640039672740538342279158370619655677506452287911993988927498097836949059155308889031447289913906480716434796275703687013313664533928449632637702806029267483899923717653902998303823881322228576094668808693722240704035311212550265518468262875339784278905826929161716945899442906303665297415915401381162032203162400324382442907685065256764111462918773193256230117052740989529921944369825324485072621257297440220265988382399168423739429356545059721342602384154997065458626082057414054692117019116319454785201282768207292846413494583472869282456911101612846889941598803808775063747495016281864566726739668151043208328251762850103580299605445827333237102360337343279333751602970418188642239233990752507558781946184410762754942937751950686199142555513457735948217222334334806161847024442387953383808684813024137653084951670711145614379688918212914840631370325689688713658449146597184821881934172572131640018327152315120399081667621415964703642209666179475359788931673006076345811518894812264755470471839153686216454162440369847490951257257129853988219975259096389847383253090654512645505037356958265135853377024727380166853887331890008089606093605269805607010141239394695201805424264014387253018187488191902138063836812872579766245765248245325973542442629667078633651582751676179862043032950645752703397986142662393186389821967068067420499807379488570307850713316593650192330051292368100283518981392308810543716673438421639406361400857966518762071766283409001333107300244663005210087431446979371147163512918860299176728092487429387554949345124535717173618873624208179566566699086085346762113848898631761370418479845874623792109506608890358736867291011895070011858988183288062086358862019921303800610416602810362283588160711524238916424551362837384865344384741818076963271292066313208947395388566048995576401723028975252498382700615790076105742407071685184284338449045903982409193121461349291298476518403030760176687537665300565523625257044957251187862345289731411045245623696353559046506007321136431016676542521162072476048039615796972217440916590030462566617965745782128046641455877390599187373916348381246703309052657728202979554476906477952975316644384340764691160210853487044209909518318557704340417063116959140484809029945511560593982738405067558524288294624263372896634483723621873591634420117519059706672743456300340985602879544659258976759926519562957378778932246776428855323962993956334070939568839387356201142600770678193153751082141346472991087168726563332375088011193078761235422704672231877555119262442526399849636905598900218726868092734338837964461007572401875793446447323942809804672632570956494274214139755274852277628769948296335264649193082389011432007328750045928715752004888404256039292634947395336326301236639226095241901633246348744902712743042276068419557978573993655824160861032317028812020949994779722880920301620009786363209924651768338018820770381603189634481546266040904748320301374271664574156358471136552959945746128221018002089700360577999005420911286929719523022055423648234452211255185028000064386289845296924078852809509758109009424498894977835902093776774941005732283188562244422926514560173587989885257472082084654276448983281908042725065046767838048928632612146982718779170774863439378758645679273915091713503930218495510891947332376433297461783383861787295761673056765916430206522852961115717173494378037822013970733911729136752046419443396463256872924164121537994978235980255329087999496760657557069449430722116547896076021668752984132357293521098903536580999865075650238265803016864942913357764419009959391237097228412453684138364754576505647742727514071428120318925123316637671713936564474991903977963520086608174511508857439282914977669974929179398235664697927410563095488124811851087528026171964448867877253837117428613372056535659395237642983209594990276672711239036245107301644322480740529476350833957482984590500303176086781941122043882459762424740517486476343753484964446112424741083188086476561703504957902364295812686255962500674296046904951734805983389870496553725494469897525175097314667592251605765127316746262865301306095487822910331425487339107645120814177374215639775778988017460673027014769511664751714063138799123537681980850906617627805071163472637918725475773235230466325150491470298830000885203838140746318892861562162083853393367016284235988061191442400247802308180510760163399416611900801950527387885084120360040684489564188580159136114451381867703728745919685213616080790471914697019924723528912941519473918343655524557117294826659493459074973663649442606459200440250995271646272997115293112194969683756531320005517823388291021696640758728518762850774883867121117523388458021951061200276514967988087436423958714536751135627176488976631558513199167900041584121207255392932608790847856039663417817950137596384099002238258775214096884443059683846077126630398626757988600013332440354089392397166270024254861416478902674788367563325688986989503376565776857149712207102879781825386936104823943696295422938776662106115054143047144992328369952884120631741362058419768394446625817925083099613467476874168897067647386046558572422627198144141420887089539076475682474127025093017214232496420148278129530443848911978053538958440390350470621742500564331172032595145169006910960474029329325686002888642541972084544039334122429799429123765888257825649100613777651664947176531706061630723740312629149350024871473468098299416326203255806312000363704916846832614654884342446732164504349763575156460888063000082139471841328939980494738589617922602510559819915737218772563423340696301908497908238328937599619187035653136444586030469299247700939403850778889502634684439673153011846640603659065105796758035890887103272736682257692359623837655450725654141804892630239833144330339625527942729370405915838652578395152395826902903247640481352078647177890868355184958593229400288936571279373364767583545004414859084675038832792495416172260088000941413021077716856759048341930977322779926602179507658968889617515212415023044950806057574333311159857209269956872699555054446053340445172815504342327710372568791854364211003104066769980946497449101589425976862001897794057774619176460759732197615864262751124252693016045554449991644694262358355175801278116776517859912196874402698945900224652349270819752636484372419220302880808348975133694019727079615304532093618904612083897565727946104358484810065529137703622634505410172034513066896164937713817936816625990652158592373703860963072322115991376348000747593177089495387134485045818648448108136879248047790876904996422155894898452109995943935395208663017931046590988361761471288252174900437655652857177790424083143250606354612137447871813066749611499341417604475203025010435416775873565749073801993339829910476150818464329299583402816048018583617145578484717906637954385139309555901183840380619586970596339510340211834044345568619753812159272315467943976399074991120040428366078624589017416472574180599961649060647998741912134929714950935196476637161431994761018515866939954139964946158102213327986997920867315682182031517861055910229002774316448658677637157984522351771192419570835860808987292708208524135667659099549018389992458445850865163220710811110273468404492454265347045001789057460139738666150385059441320545336483700312462416178902207765956966637354338902477200826924442330414903728798082431363459950358296398263121715246793986077699519339863059837164381186039877825724800925822215438928468131379698916345903935056712003814853309672729147778627481962108487918388061797233786318919216123834450856284205178394909588758270082918699757477987188381860042873668273082474480507548326255172553301223300456335413301001052020772989723735594509009524326391664791890861898162603549726111719892487780815996779769559744261426561219633382643350256108760844385298110566859422354167555721553631680925514334917652802346076901808421044584154949145378250987011959939742589479706308076339355001461041337431117073986462150953846313533700665147430820381573004031024100785765509465915197561994630558451228093785522843356131442291892060992259275272091202348414745800355031799381475494507848612580969218602851690838480982843976902923884734343979368129398171305924607979292538463628519175815206917381628384825831882284671708201412920926004122671563109367846038294554450594696227383975269623148167375026985023327250803157767802529796105414431067165064247837982735606880009426692721984151193499214607085173226740562418610886478307082060881557111911909866910493846831816735322832040263306390434321095832790371903822422284874985238509879665265432761907542848304676429796436697062405870186580083503058070019663306387330489705290292312699036080567398331117252223484064400358400586955428186243707246044447145505751698483622176172836934496827190338469162739038394290874427109260933865085205149616228458178069663156161101334118153979943705365404771760611378430067913303992574784707939559862188665248291021641403839679613623235638951595861349237862344129777605612667233812574932287618991366733062439577606049272303226851391885849919904591405506619007020419519184640155460437639470984637349691679499337599651909365798716439204839494456404001044114194287787819904904122855190522864655335663469488490176419537010375779469729296852781172214936880013550101007943308536820995467649411541871286185071730403960272276281203183429973111604269556992572691988062069468349137305725520206738648833068132458838216282786460141369760714443091939555064195319661788892379447956945144628402652199311284600791054476455227601772175696478833675099180901264162737370903058421898210510158484079982813221937869422040813415862732482273613158025765268167993914700968539225348982628689742078957266689939577502037096419005745669612512147671145586173081725665331231579134338567354168966059196916965883142613831006990473038190844659470037754053852620153687024186668437374535290851518783995570358221334518068074917636582569439848721126288652501991073739043115245991995663636503278377841710226861521705602268753414516010941081806445688379608042159899048947728675978869174525870924958325632873228505444781772115361478559621306630542563598577936671388693322413413809380852835901849778731517941885213596994515003313580803091424085816854984507355532041799480386453154548641507830643673542269616730197384008877885617270522633291871735894526063958731281489093398803591864930089487246936768412473938572535853279838732994530050209116239351725994389908191019736844014202360809122173895311843936414672238946509912206386917533710653424352281711461124521241792785687463349316381720716296888847943460396032193654775173269876790330380108398560939718925796725110308647362450137169036674828371058108460229343094689343225228731928060549085470052108329887364566971121036046107523862654801942729097381569809277425607368859319850035362905280730840277357930398177496725300842277347373096312124289662490243830877344518847340439421924625960584499274827806967761903707919959300297370334897679282708563225346651315602021577893883681386018028157951633260803531931042231595177921084661422748977571020934242998852993638071855471066972510399237128909700358597965860451986759370596840827195161898236688768960140384149263920208428469441313940507874912145974994924218537541874857722501814864057867451983067286728178624017664046972584592810969283925294236580750216649594693981651856880793689183887364744911316381809290342817603893774990671460890847262548889140004949807680909542141313578326813443739872532605966002563476626831715975417145757872188114652071051487156052417983028164152097135579079521652234955507923840441437545991735551773877316108925068313335123315616981427164172283477762044789255375906058250935131148571957799078041906652549819865623550671261915888558017997024233204547390600130994562573559115074763887281187379782589603894624040988724536841173586986139229811241601199428121897763937739085305376773114055213422051069334364331006746180619581170696844133657146826961794959684928262582299262004024043558600037396791024231725148043715843957051929533805754270338209031373447258299940955376582885027410371918402069948767955910655039455976104241400773991919367795563424745567283661007433362442723446318900757238428801372801265772676492808828377426605472571752270090794277318775980761547263594480081693429702074547410747199287941213213228686191981604633401683492441473146959167155117082390316249561634426027416988390310839598650922494138494254717892687938914972268517974889384842071210552980674269419340929481897885399080021230298627417927726382088390322323025670642351831074160648339617326015858607609815546509243709306743883019353561816570023607438950257527443380914000489979624889810742696368217469855389993522843584563503776416410835432930264031970327366862963987537347869125206827648122685695665836718288997683664516294942885345487347304764671140246422453481751878725375229182344623000795090354971058301323931689915311469911091820129009024817753795738098467031194332850097597696816870215348243653008784386234073033750171329656097957720009516368602162358560294057072655123816173058247020040436165815785150631434197215594080504596225247431289592599634598748966898574412811516740483946144477828328274638468178043449408348539024674632024105213558726404051857715616170219914100744002274185240903260970324322343577902091876712167240937108630651341668468322445309871372852844799206340836599756772679293418349187181722915989777633093657759202923258030596709651571580899288493361606514001478483283295789401041394184215076429406714554145558715257169693734440560163254735055571770356152736260972389251702683866258581877284680056933373219926197631287521975574163476791175754639759340928197822208770219166232172497113309867381273196671045033672610252109069792514599073594364811845746486517195905598753960743659255289140563722371314670576894401771821812179722743422742495349831274234826478827102561504269095574210997310748036149866073595927335484997843827559028774431797385591303854966810626614785788199945802719040949778102625019102669530503661323661027749652065678298542522967691456740611754934105413672315713892860107061005819438895103674195970828358871087498636490686768527398443766297835944404959635703213462676790045633510387050231676845425729175617302898612363859200615773738706578846321076955868076843592941976186450083498191287710874399392974691889924637467720733731568651366654920699078319136250309330743096324309106013084975039690638982653434887142124084578660931158573828094968535175192167163248759073018563561643250833767738621104722367620610347359438587958692663986914805406665021971283835340363817719361439738476662446203564044444009732080566388351212015476661754103443355981431923156205885232614177661895516111415144185370056672781930689597889582601593385436495107596400156326578614261429579278761335435511145938142413543905540918421667097846628055471783081307340467042276541994192844961243271247262873247339533044880062028103985686200428091873598421297028275521023000324277560777770209664385944727272396028847592529278400009029261164834649728820322211005308647283852816256826146551113216855978616787902089346208326591876488599262807324266157732396868476818128497169200535096654362169128706639153931204342704126506040336609690986959411187239583889516553620259817997601703775868940641718427581827317242919637885502301999975044089161286713748449932590041360313811219683814423988957473021348706919473576897765578350545901316595947195822485454447123406866610164053897816037329919191731611278256962442133266972437693269797291688023974121013990682343572107903808713413642085938947038346777592375558200378671712592701357510428383438560309533623189651564456748310495156283212058738889702988328383706129716854186833992171517432148942910248432190823112441073745065162886658965347463289991202143452645374626954511421460726702262448763670490777553700005502023417600431886156908771803112678110552503473897219146853701655924466487979114148442288245252405980136122767441296571411536486279327606808616137267136019688508208418983644218851427678723380023451769576730629152375229347640554678339648346319448587216603456602477189870589680092234526372449030738482211733117496308781685974369110989235553756105292530219901502152539650072513867349710665915296804602701286034089427873233456091545321391518024858900570473854550333143489922853064019136590646060175826471647382902963195817027495490689199456233913249190613904500492474523431618391168645441492458883542395232445544140741915492505321677417965927304996847401016769753774013623846425629532113016910257995205541544189087877027979973959121579981551535203740005247136460570324912635554514808226237893780888903361820861806234133903024867867479855934637565169172450988135565317147915128199136637513389155859948070202255888722323753763006888155014930721553408741028320990531375926091229237607726278496357565018068997038833278071842265000107192585035634974352556251739627835673893431116161150748087842094294499237438742249349859670139943062508798698168516274074083061298105189516560642083586622306636708285887001753450190508280960115549707494128893341056928537695706707080341931363204293210059422767946544140631266756037210228883093931633761876809812134981681417797911942470492760593993335446182700181353085706542392049075848915357190218334338834571062704713856107185146439287859295662950300854978060894874372517416106739772242872973952075413454406018063748493925668573860765018427693187860850893966713442226559110901861304073316877521114883593204919316563567515136284780268649222456797022407068539810979827700852798853050305144100145729331064353666590034626640564017324270529626087408779561637363188104291622389967042144825028242606572529971645013445420686229300349816625650898779620280984479697390681695892124348128105718981065104998416826984748759018169636232636721229018336031048512644141511766455957239751118406449610880256784024678317960569687788448745474422557590202462779195989307330242853645794412900531195316896807897879302972056257890604231751535853148859565484213209960446298344862312489993457790478811448643650116367991367591666392978589482888535373984529631642757264376448038716709150738463240249203273503958444950461617608622362483519188319262799470550037559659609798025562822473791591755629779048946356557214897524955826155674490124563117646762635531103074417690687991871471150006393181327457044944911266263055579777789017290791183433609400639262381391984892869177573941930058347196400662539481720448373497090187080975430261734608278393494949366639834076624670010061604753719454322760140646323392476724885057042857933290933038840569875412757657306805552136185321999763895536843084965344533254858456853043549066336747714919908738800648936527345461042687212042385693223667847774574229595009802114992141597027695067890035434363042348983363459433798649266854262190444341684909846846695696164663128307170155783333892621204220555543535619766816703399144791317753993096408526388480733267437688308207054195016797596338525550681297564453643957972145435123366612314966224328147854417718721481523767235198826767563409998894463810843951799412309331080526247758607908508487606389886910922156062415467927751397953218915678868855775698618145497624089621536465186441141054516705517122350134158176722185831122924191324054520336898369109077574688963060066875867157893410523480955195785313613470092696008541989969202558129731481628009503980587253566738473052568573393504459492211331895524899267085330318066344472731732682778362448566380951772281166137596507310549181119186768961671894704324822030580831390280300374882399693306114933264580206048612916220622520672870937845341470435292965300890238513966172755191161705352908011867198720577638343346680694682407713096783015652958877114435334642957160106893856468928421428116215069152900388474583133269627519137631532596345498493635743718885946314029921989077923187747629048478309082775856609367768888943329658325601718098847082112066072017675991061450934026436282579022955937231119047182490639589414901096955859541957376238508093779595762192555172871965399174072288467411700473412164979307725053050466627594608761810384195702542444856767079629692438119517974445876299912009428506263518770972874147360869385379412392436281178130063489663110443065105976226364581505197104949274940132491917214278659085370722453898395623178977821384270111591210039714386797424412445062850993560030843357173804541487887650786933585565536274861431673537496003027250351076577869785932394483797998679060163610715863895996924518606600295264710314596447030420041232525541784205278252275390194519662297022231818547906867808472175845075641024768071506932217895258865108129930322786320814457897580638925838909050776835948386335184508707439161500841914465888472172144696344418157745551641324262501059161325041888591747505629508497976411928388364952057905999993595085631214498128260829197177933180204499936798874059773715878209361600700369747974743447300989155470612311159937235969753825724794439327563197720193275248683793625327985230195183419718008704876258438362346448083788450952999807391607490851525905690216206737762851615693736121901534804329653969464797181532018111480871997706254618756871812516565003490097607066486254115024817256362332912021975089016306506558829353672640687361922906972015216319758937213857490291908923164504481420105824716199989731114034675983515223100980934910386588868791890569620211106528064236991044760631731034638938929062811279863693107084156186596677604586973051971579881890934821119497219329646526361353605783809778348316414885486622336479285378398333918508855930233779375026862012808451342010691208986612926884660735746909468884869134592694321117682706637768954506100712986096400406470340895723006092142564515198335897960292921025251944991920133276069532001241323788141136447302595363279583759398846376111094149235693883612155002772266509327201447012343614915842124300459071819328464625721039192847630750217088783787943684805552285306610393057813336694671552760448209530590333354453062770758251524618716180896882446655917295727232000866093404674145709709783802658650818488676071030704527744877646101175527969220203221089089486815602638488285335273149381837697765893873462439809194306590553409433602329688532053384484134245846794870470997948780100723442967442175047499513425546766978335816192811776304227069432682380404009536807637774156528475241082773140385069824468818080177669328308864495302504133028080027103192609585378288998833633294979902018897843899225288052687222405092070846509877842350038012440785968096832539145894276798423904933799209140324750845731739449290360370434628103884608823195307226801837731167886585295353514491769418120941907741487221164813111042032453436582059567209249098184585259297385853619778795733924824264550863019784545595840034664083768340003029383708214876042612993941263823004215856137845995855529497346467996370140803697943551220023562186740815732073900478425875440793062478422351040894990974189885436642487532217542392959252296448746211021066272050983700276278584252491152525959247716843016566334945381413548546151725468832245335755938941576969838708858038797588198879382000328816026790554376327833281391645832781501297705967724024339900503979290961203375850019070053049819497798175270008340705390967094083723434558083562690402366363116803473625591185944157146205832527602556412771929181420841365883163349560344067381925124536194301159439410432467582331364354496088832626752239922378632308039555118678839495118538095080942057560789872029463644008310703468487252575431083345618260421266269985650967785205361245506567552512740687555557707041774256974531549458695455498247344854946893485658301588067808378254926733542214708114086665344293757291943499821212750525126813442663243144097549731479029014024441563309286044198977723839076229535430702842967446878384552803722596181988215425557407154071923932005479372614320714570317764912113327976903242468874018327420801879432583181704130834432250440717293182948065952750966885288161848068480342398200361593401482579776208014783494972512287474205592982661973324131569423980087065795560095900160552691670939144217167000210171020577367991266006202531539676275883340838665304631251158169184746579885891183211762969610036803580797666068002494571974058577495885204110909299619240626833978721761616737697676217922359546937453861019864073247528488802209117151436860036863201402451237542956100132517214205635902614324001757836420539404490887777744678369473025415777952457566823481331005793320160897107516670700023601045145707575037217245681583403837210557305130524667795142221758971962907276852691236360739475092379687555426672848792133553714993479194716187722931603739041038158582742153287944359713438418351115461259820715331771227979912198823289031738783259160574190985247211720275297171744857812024848570892585617495469467651398668117106714079622174998006970329885865755202819765983325051495479821505194177746435585489189777083323318026345840064066275794028765101191687417594535037198391718744473020227283128584961155093778477647837276091862860157012288958949154065726115816802167926080850071907648424493760754978261494975369818887794581870507517379698060904900866777263147405033786688716371609035612591849063448079107449739151799306716839690509973594714522507027221560150405212369017655268338529892721703790544470566209595183235701750091904502024792733691485108495054069209251912571508155058282074225661944450131640144872699235513938345580457528381259285672526370493498026829761306636325875432544632544690318303499768430596987353307820460401866897609702845678336392162454524406052561587706371147808520850129975819153948542150128480494997818816720397459217030008966426559102261435295386902219016217841602705749193485243789627332031260339654775845466267581684956082434708976367444337007724294442709653763872368059595578217580434553122814406297386615572593096649416935810404787351439047390033563184114382278712169686624872119449871781312949022772222389229030029897687942603851028255792665347651167221123908135003010129623942929036450878049819973207577161801690183566032403994716088580546537690816961102869730910160438280761566403950780290688550425991874799068703665325600136076995026202068791619871835976364395266135580732296319899171036893014227592270165455154770148923012408799349799491344845690201576777591960723371146478911348479674148707620062934975560797105230025759597028553441890701811325583094855646009435992106831919813493892967500768159042471094882870700748283434356584480912456714266856818202242807697665632774050367957180967733500969882662172529733198999810415868433194806922970530227918791232054225593855851978569826934721584767246181503252055189606138305507739301658318918317542255100816591825108640925830107208450300966437164086365845118054066113600388157287319681016223732894285615107826696245316804465678644699068424927864941868589867592564178642500050834523969533020453444271069936518318266118740825172471905107963271622018952739012559794380450776028146136036100823701605957796891018280664617890719158464957419126551359985565573819042808836454468916524160225771987834095022615519293401007650755700141117154698889121300785359930401569804300817394271860217822627956153740364626548059348575595716707154657057196404320123071849093278650970336107802521644794553102094264271149029023659156521571836394765205038056706599136887735100347212119024277630372641803378046766542289660939518417944903521461005069787729200775694822990073645723549831893706702709676748091320874292216885821736941722911798298483993148350431045311715813903317813261388802640611438373612919176506405414786367761243547914357208516403650620137633891784444371176363652505397270849944184507042901588501254498539872740537629555011471047190739213734721874837992342611794904272591498825281516466983091087740279420160664504647389247251849439142624094898585627015290997450271334386828119165446440407977076451972286956709227546356935897321678597381414624676045638486555798759299858936202481432149377059234808153586576649033654708809681671139974750399758285221958834331889107272794247226129623828800895637992958661988722229813580121447741417326990890223546189572351977984596411559516988956973191989779038125363541178479466747353562998706003189514899938761144128043304896042902520653802184772550631983879614098715833911163720332882116014491663512898439221312814796776416643733253338408731062246256418415151082323575838608384397328691001365590243663049773932872170951316262964081877701494335364968613353359979313152878800092230517992635834514101831450078138155396983860362708841923549586714652280581489413093704926157091358088692698771197547846414538703182756730405570257543898657544081896164030501133226732047877386583780269947910465822494080668985511841234679368454906037280825538354127737582769091295680772089593778725635320943255392325752380721207437612003091379548742128257189698892191984047998184728151654859030047796186863581972881492795259627606121590480923395438627329342051355737999879845751829716995186954463597950853720978339192177927414702333501959742168250568106902020430514752778617271121552120563785347417840866165151341267161614847997950017206612295699623108948644957279793103766494128903498987218041389232500174977736621345566373682862763268109084092045081070707425009009524565517554694919959897212715523036543425075571467923812415112138357452284975721312633175451510280086947116970281802404946905923732142296623366704980221794346754995486490408185018020565210688705419065774526096203892586510829363096673939882721720956611716727975210356200514536601411345025180984634459956789503621714202980207480906397186227677027727118957664755918050556307365833310934028456296814470997669625868974469963219060628785986651527724061130409585207571835740133500839526510042951017887114341493015002786690856755689565306005124252634921574765168167915230041000654562244920904057347926317331314509128261266931174239273224192762853343459676562561544790044072713970187409141174490390198949888822084899686101660042430220303052264573686720625195164947137115942749930216634388882832229171813202810649717736472378907133395032876810540328663214842784440928497372917618298005590937230158816714857428083970386092210402475789277198546603295575438228907509204295775532408175363361102823723570029120049335530323816878609474943120569658878746058358122143973648194653486642491309505582588662541582834428939685657233641559409336783677448029301550425566620905121647502760624750852101031286885294682980012518489201742915331709830284297232423173224911075878656527703095265352536504207038611290949784198507079036246465830917464192567452230115250649681145333138597373467639092118216749794904215765863516061151909082363530083083381068892514962367576751044098845670708094299840256726641385486680036498328930720485244755616600907261449513371922346669049739949528330761952823041426531026613321895493923331095865403825438009710079093776675366101014130742193944828302821689848939803509313281721818618759695397541564808626822374055745469699515941775683319744331217045435270483770956877052611759476544361033808483389377733594547341376654547744587762873475829048601633859053318149424378333849656175200791830369401851917109909661123158317086190400876405227031075334839445269664801389114392690569855877180866488199089167351162172486563690116030811984869874439602035696356184885623451855394161612641348996125063991365462536600260576564742665365473747279506470838421808111535362916503850390359067321171494229833350622185948001807638474044271666255470126677022903722899918272918880527808000624106776268056695107876332845660486196190735916130978173634280127693436441574372578031990314541966234306505530563347271143618785717739931621968535558889604705670318662046465180332045818943373661035863310290837383626602136853137137899906979409024417894529841917765285364766556723280450226855831611859420545103930805450417733362435458584797467646896582236228802936769703274799259503560531879969003864875394871854668518192051067033596712176944674540666190698371410354568789722436689800089511069690193660259023575544248845030593723859068015562273521023331691334544974158601415051661770961165865410331522446572370878239137659476417471738691747234500184257768897878255461462932432719821517469113262023387600484796340048312753123091140779439018546642924552066176461869321397332733232147172649046227889854233541315081296447294560735480370154390772481308562409414731063027637793692942893018699991392405186132413881592428639969003273831231691176679868247237359591128152877408084772530668686407195994809235717178444668274310274654939361900888240448077083634663507965211436191962272277880262765864216205822093119490759451343954305877556338088006268545617822288673073006878225568768398661087969883117109664576485644610324071749699549684841028663725314794587506216326540937976154891267294955573881145459446818174743451806671112716579832335930416364884915296513190169393246522475848123897827143684950702015602868575070946060573362675742378611583141037398618384692243758951981396173335560998003427879754365586004889968797362052706589450566337307937603131267710048647913740590746024075078689368083253640222683656676458106006309953108052443330376282203086848367108976017746578824849881981006889987549276607246800524039347440185266305302904162593835501192447675518837703417030653453012315880005201911316501195238812218357642739850661717082300850710204597300300538931418421905622491233920467538734214131271599813585228138981653054132461420373501111548933585152863386316481720824522865493030264297066263929125584550141037919609334024835703813063429472576908281141264194746248432074220710687609622371136018090888166307600187799284170655038777069958337292507717465136596591160089321053004800480319760522920037305950019117235200185511708604589723314026272166986282097914175372384667188931482203197570432740851980784026273725245673707769916834365882702346400569849770643332311345986465986068279517972958524120813529453833480084502585539364673237541212685576481025448899323746398092166665081713130339155165112352370931572546197138638917444389165235435488650299981834983260747059959615890218783424914463228860619922160856945052768169409080851316266899369810979142453809083238456000874910416068722154967939840242931526684222919081873908489607089692652537084469913708275424092113124968830690975654253198803412177031249320138116981135444495087107171421241053050437631016455800630197062575132327421263361686330279422790049484769291045973571004925802375290773371353577983331419341260978749495400026362543369465182693755417750011708099110859459592271824563480347358537794989106089474340046923641131145291187154712498884750624831950135185525185034151854036711516179758951789449052117285128900229413944677759176646087080988038233255040981506516722567467006916128893103511009303837480913388205172445127751388614095407655589461771290610924321267288536326846642284331266921893107244797680075765564976648939295390901151774367947917785390410422344935885393638896071538253040289905019642079170399037244384750965810269345627113876062762506276882400771192977390080937521306626788486735598700147633063687841728982468972430124312817101192885085903224660161190692037172993182821583105566269061916811727162699054904627353528609541691081048870495892718733459586360479540727053027435469066767187495050030622312813737442025189084907094218842213542210845372090831817493266680600268732333099214957437472375371214587314209343933212745529885850590289987655903867152443161506110991621801593280801401155241103625074947780684144571138305970157145354098840879244229218679928454611421015023469315462760072654828582992432693572941518869265548093395925168145932139050479037021802993297549694814429098798697496410451716158678257355635056357329206462034937778455729059460906970797263390583375706402933502618225034124546376871330021325920088077505400931038383361312521703161714287811308605976967372569513329003555500252977590079524107137884138423184579973917356739449728164333083367862737759577494895192884456626991333284869563624398582123234181073072458361127839234796045735647800139804020308011588578890938296645068427075181590749393762280970738458549123937285821956671186731640357770967553988527935922194900858006044398010763117598467236767735823627371398694270422466346706811693349806444302684369046194039536667055004136034372517529037503552197509976430118589541445367387867785134821518659966481433491901030056847904999205748624882266685078750918841293542061942467469121332221095794212352362416933979596519374280413783991026190632815958546800159923556799475759523239790768646470919538076315497635156304591265474824817485360400899003319520743196708481896651213882205483908484009115826384425046970526081873893586896060162218260265521161526112148712426650191759099186205031615651473287825397450437667979652251835530042150080639137623732227077380228585073787508646492481074462172951065461967355589951313471031558075070687955785334755541033187141225799100694277747969120089215829342766556274608951139102669561106820967792766789206225901183171236438816229419625511040735484726215866002710931342901961539195698950892230577390101030743170165971214019901693525469558626874131955350136184461240982303394283708144738471008086455797574036450112465682462792868363457961308167129539909770820127065403457833731661837720127158905779430932163298046864158315367414965291630731232541995348470973285323658404905863803224964809883057306983282310494696941293925127203528187079978563462426221662056635806202016807384118529344241132488049376636842066453837272297753162489032687846484918613466904134244653982634418856987602004005459991906148806801773011845346248581669365725140573908509170933396548771017366088940510105205791659791527415853559092414677874263411400071906160517136608860198080788556373712129474786362012818808048134841576083776160975967099736224347229551363659497932022577001178114852171915785626022905151923270182360205687620082349287627414877285153412303133409920127806652816701034091540493241857303156990009589674080140978926708489308851089440949339684276862941788566575983929043921405572681471357842628889772642959929712255629492365171695438052761615103009518316444701791010002040596669062885157587097477407845033606894183870556734495792409943061687741312267808208242679341742625793540350614544377461953148588641052894816484929141810220936326830895156820078679103292834643886902719386873774518451316197356631593118838609872450991829990137983372883661217411409032132502042630789503163614522324337707040191380196742126567914335886221465560575778069273814981521622533489634987435341042699135105585075199339056002693173437651949582280518920680761634770487684170270293172339470693576132465912826683347144782529663004676588400857630738547125038652817329746044469966508017512720309765277810441442093186870939658741029943235031417146327645698561667098178001598492912275084168787300842088991518743079027401217944192320745055962085471433024324513187018168395673575371240842863257023280682577735273524835007894913982491777181949918469641589711554240365292195391873158005000120286805112812471578580512670895035935302618714512096801770112601207867469431593012550859245091187728792896221595047373976180328185760877367544797452389155262473606556582384938759827998895648739461217367180484250933548614663060008281435565990821626629249631255328948693036810019487360669104023623509655725950770791620399391834796572287947049225811415640261919354609916324051772788118200005394017563604242148296316825024950027008007280843993348988028210702822858557153599521100924769991872888882960766044664172762448483386289895115543588496962379374646621693396688315440802195441752616458109072651901710636734970846921762589704503985694933566491787416550131290631149674770476745048369888869618201978330001217040656410728052830772243459173103288454860481196379706286616323078275025755886268878313561193175980773119647920170411833382128408667788105165535971170033418305495417130145861491093231109460016163798194880466617709738221638973365057362227166370722140062702123189911979323917961914660992715655023993093405063376765293889087932092239385648003084642324670653691551026744728744928141194975055461588974130658259359101638729202399653372487869710427033662151113190136574557071196060349472708554482258781345746035799545043583912434436910749519077300852112255021090501580785123998767675133782977243589138284322998275224005802746088312975088648278344997981089966476221342577825991190750353228451243495360296747775645856402131047478802624758997746270026493523312824774169427204914020752121886405569038779930792786046174712303899574495035398344741834899710676846582695301957602837612845266025515670765278935592218915890346742875705445681636944897746077548736757915748734049136326394488421118306261767267547316568169742288826148740472725400754555444393950887720404968986427502237026153674161850940862174391588050136117124222352185933100352863235503607872256282684236078689310841526544815168653217471812320317313538903567271841733166282949441800916383451270525644382003069167011396173820875585177075103073504312259469461589976268123893830415168308191101644250124852606097594147194616005619748579826978157506034211895384584511861444049151171650911731764687432567752881236452620312512548681539550398623487522999048658578309636198464492502934194580747316074219565258963460366331790009059509763911563735269022288026138358044963516091712080516302412180000959840970245976021699138534511914252146544393652861472464886194356651040116060492221817505097722595242414536745372150345645248150572569302613056286480814560966481584905044965891107508982819258030028746943461497393237582521955978973340928285635354699040915441816143775029388742565284995778699732820475500596256589016226139208224158880222895372873927222586110366914595113458762325221078840411771594876102228480985131536200826937042884976515610638143044162791235441347258239499791383330308229813023821715148197933745067368793083877808030115363162608179856550530642239704882906340030161332786108035316772021169597112754460020243073293520164013578295011647583722619310662248481270422178469291031987097034365653888958277147612134278960619703132515403175843290929366076465996292527692080104514659669475039257071504283100203986226110966178060067329712857308786859437782685163081493412841834604350828656141372447113063982902286316268315558776927511707754952722141493897642189691209761436203242551289081066946564920092507897204718048766461590140588829086912268626773848719356693296647656783418226825167707872245169612389929979785090478606493897581140425374632496686466514664636046624734993419773359669664074800752339570685492648721765526919971617176036009921360872798071319547938161746937979250737054955440684337828142484992442578683643953639369926189000311135646668976175860396528455777130101046907348520591719808344615456014453459397453167414416749913195544207781802896509750218632915013864143086100442793669767441539004655182459139035203467456560754097821874236407330020368201643692308505520974670740426325316097173722388791829837472780578095659645788537462275166101377237560063124741876364545601934299682610904356979544666124868093800468239486361723246155674522096063419966538663277387526403443836576180528624944583681575641726528344708206261994229179515979219488404420001896399344351781036704020529781171113529754784184219237830983074024039711781239929741714060959153645802264162565445835352576479000694516621648701808039800036059157656711038834043567186826633465084464762176067251245784374635457958864028822930353631936657620630033548939046243120979354995918068069667654853554648163166834474684842357159570807316668319657212028130178251977984107937860569940442428848739363277345277316316966587080818489007557604329381792737812247794041632859351186020312596136131829643830776101898053695829474470233743904854544039651484876603560018827258378861059415245125160866695497903665100817037253426505817376521855099541062605836232064011466059934149886061486178389592925036669539812225229687771698177036192108960867969983409789058861333187036640085478123953863027038452651094759769860993641447738376711992877758659772468055041456139376519744996682516966612610205816211047979808671139530959005806206231741356730131413750756635560251935005531948050108980963375883608600291239227706619891324839696369177521696388642343727734817515023879990550487915796689240342524154245798112919799556999922932604358127801293289667855611229996145219214870239226523111666958179443813263730876584755710309990360307739464540408017653962954252369965007491115389319241676215618450578992624321681416756970649116470984777573506969602572040096478419155521652764609530891049822570403499968488892043195295795315659533412735074963150738115172385230902067956863820190839176480571604402763667655527769702761979964127392693434379687182972035854902780502322883465541464013282838613943422546439211508731463817863766160759331892484277001960947529017843532330606055710418096088472572942353702033923538347853632756608590349284269623655806096051313132469941678527340679733597210304705593099377338287299769083177095664649932479785156317392307457188251685233364838771385552366329428565197522267885108557924939366098189354464113883584205314732503746127069404364231122890397932754052228562739558541755873457819956969460767122928350371937859483536944086016193172479026943310614379026884990302630833763132222135219437120776951648982881172715345949669898124466526795378915922550346122249387895620821762096740392450787330945556389070732935396109991469976192735731875384622856324249070750624734856625055361468286389703033645529116926539759278087919032652578873400358778437679617361919490859205363760315283280917334800625564532313449880324928132090964077621938717173887498284116304384721065604748741150204413643848455927833820567364343525711638039652452157038277679217445610143574481482389549494378587415218997811147917547695457204051099147924822847184572155570353727625384251758271024495731708110614901570584366697754851588700615916548877327867733587793786452743656450289852829684690181475005972638026672506661591353227029112159076199505591504242619515481217629122557122200302861875084976270367123519292558840459109295163094895412797402991290642528181953839199855679621059857807410948031853930084409400612663338946494022110485652821059500991615419318661134259084903944614074618773178873795753625003566710651770272060219370690216515971748577064460771682678041112281547353432191471166560246891801449673495448943338725192923608651339979892054337194939862500781841775779814384578699263500665767663688866654869742324770740883727885296858689813597706631871891032585288685243430532759944685434017673739334679681731430956986542481538923201901389610104011113666115602886360631949009817794813653054255919913340381206328531816824973510486218087626601017940396499926064595649118230611909808776213536909949491537422102647039039367770880910357120775112542140222938903080917417743527367120705680677120457450122639899919854894041808534150958897036207548084144132354773583649805124017389971856000496710136792902526328089518729088431101401230256513849902941325002594409128549308717659080383672842283206532187513445778082868624087968722812409912759972673291335376269274647830090262709946054602600206638231598280838860031410911895127539790785107543844517890392638387145925994509443754523532486636926922615010438511669163276057383900438807696104087557672545690105201944633939412749822958133007755885898990434456213750930484310048857837765577269447499757407911887688196325170442071070870024467445566526084628842260506774054900772728054449154472300366814076010867161865104362954452727523346123744510540678010566263788075064725298493895277792682913975544649434925961691755641208290506698416108803759671402773266340570452740706512778653286495139086445461769978239179785740971569320031209780835335755855211303450103842081429563607943762610713816090818687589296309662896496005325132742543431708099422955479401107773654707396748958005077884056940701736863220423535349591895363230502662936829481631471448480306487181891782382891677060772635220657383144371753534748180357869364133145603555606604006509868297766252381541926672656779173763125363674545197161856318495567433715036296213697141523168619622047387936107236679957821370722154651296756844903677652449144950353265853504196566759324987528144447585935844125500926981535109209932884269206369466869638180816960037693713719647089488501047555290489799851681092530702749929865177541276015626034170203375747856141025352608669789939970393114773786579455938848652269131344821991502450726857733486746373048046339112087378783448470894183917724043927117297586173219892015108850056752407792840085979533351746133523861647377523088955675943096431548246785525629673007702021407471680509632894590738928005478649873353926957015730129096545431286340504698842216393731572258740384256116736247730653866437008139685096111550014726582874521715842364988729397458929437641163696408626315430307036710738134068016043021715351697990446670218412590119381691007114231621123777227726218416408719968481380966513714762198525707513088515804119178120541637834134410524055103991236690028779210722120442613634931322718085300942347980540658425189948803502627408919347027376390181360867329406305599121614132006949811596249780910589480709907096801968666355405522309882568757078713780945008865127015862239325345213920618254595733960517407113038855487295931159779682474779364272819043119810834663605337632888976421554796410966334092641745740440800023523096054597503896409780400456310287224428176567690406897180824501738621111260867006957228267866644218391050405910113215572944213216587884358479092607054669867778086912867191611524760416616527158425039219075211023261554309103485274734861131175947242811072727051050514875864227323756179458953089625335819444221182167975044084875296494739961447853228437198620853372726418570487709734622839706776866031132502826626153513040736504575039294525509297206050698039004511590844733547317288898692980576109085695143330094348894348767028582078092346068078033140542838208918477586438825183507149467542207704457231785442075127449817477388009046378213144930191067395770958869221911790243368671668051121390597471440805136778403100869736781814210959824578661506311182349448263196312549739687413483271351303596837058689216909259661383468121359833246272668041514033846950864118848968242470033181575709295454924846270717329822213915886671799098825169516796561399142520936306428365064947334214652905299752123959940626905949728824100519982215903193958327389990348645873251757616359700300140133974230869772239375678162024694285351773442348987329987960909765301701397419133606220896039132726052375844313814933747251784655278324591475818255325736971716609057375156063531816157130594769795872728390412318993966151354069334375197616858616000543238123927016987247058473130220089757476124682810929325695497328219251895396650159393980647587414434112459613026284924118500239835508690999183260058144497501233970453932765538570960205831624791215415709492594045286243968676255902350409102148347222984614923576004462190414076305281748287783117069521835167840133415406002781380390838933886581952475837767866409172092800811958361148903850361305690824109336548898961396199201332409289994480698544647935524793714291194636381208857807614702394789373065067648940430323811521440085339110787812667754140153068740709074982083161120622086451456354008792603086920673500536901618899978977556057205725192685912278516283960212551397792947911280416856509112488438992152166308547431593672796471274943933287332995939258585390850191338206507889125642291771483015685689775491598870530709527625321278118225286638696839001186431360642896072268159739122757338261441024525601185226025413043811432876093952606295209349140276273319705608665355449675952617282687202400336155444093898328243313152729629503378521814683251619052949778345710115221190343602041466865405258698357226181658671685446928972341830518209014952178827223930206771657634467614116889203854980081243971714618334048224016832248209343326245187926868831011392288047719717080774967793272483216871824281885509750876664578015354722949079940853761620000607500726468742927087069657258833707404434869954013139417111625281935930309822458295344242144914604781388532244061534285548702719297059535613041928330258051991258335456005153831196090322997024627073571093205871385062735446391525569637365075507836193079335436432552666812873808833875937380170748583560685357041113587975824278196883232447755160896532227690130501442638615232189831300099781451954758121365074720735195997903271755927187958418888907409192539318104809349262019579934265389910786488169538969511608339926020511756351272846907308410064129537234069272578904533095547073768861289322861953215607981065123333189497248411363462826812170960183346901554474487694729442105168033215486820480432651184331789098428269430763718754820286018910537067673014329769304955883168112239529314753996521939725952084877957728332488285666111178483013923084786485820720980392393283510933099351432011845488193404498368100484144707516385444190939587889042544029463674107569827671423729761454965255682317533751049593009038072607507943926358545094895719047061987905592585887883627991375517037885515966343303430482555502326651236223619156143098253241666704073466648876944266727883551122011255804007689670078584014845785594768134384391469816489581917985484124588095910394859982144933761969345422746361532960883581018828370301242671972381676910476634580192852884478703888654983938537752046276023029038246240332798741295904236963926014411791220654127467380268904460904739094043721244709804307140424506888919643860914203024633069049936846183231637720927994983616707016065979254421854491033650441884962962777981225549389637797255232857717740255685818050472978727434585136412916089052207048792492616985929798173990615470618400905661651722468235632459247105624121224925430327300276632551005568016359221588749519187914082487737706601834420624306576981561531942360376851086241544145767762266315792365395264720944765653341880589962827376053336977768752452079989336671813035066539696752569103026226517668318251508218227924419018961440583424273983301545766225976971214288491699868679656889206911698248377500013904069411855933063972002495553098458177802384416332623455834060289404909083674399613642092712124493012753274506592439185703134247219173642814196809111785299402323574076988835244737008887397645070638080882116959623808770679022353071263171503889024440553006017867100437062548450825128735874051772942726652239230036529990505707977721796598903830652582518112511792231131195693099209655156974560008701971259790133781705198524799833257156152894446181002985382115490045802587892451838480324159162338922100553620256447321857181385980137208628803313665450868346018692027431068938738375445956025183869243306003476305052559836843106008345475912276006553463363515609725448345629945818447012905775102628478439772083892599737149006949491056450161392060226905326725783360618141034192764405155068648060711748816622360946622487803035762563661688653319571087494240020051701585119704642812318700633890181900453120358158460189663258149839780550554948381254423152203830121738482220848887291978363288396847824768180895427527315416714373323664965193618635216359974142986499631850414491233347835965808605501519016245396849717321389707618546151670956678934494268339527407639593390340263906721922148559035048271529488950655186128495343357615773870775644386360498049845122958280525001187161726049540316856282201069731052577718100168435441752615026866212257945032115849813298937138991240432800625622936958349218222462039366823639850527073903059669224003254140352167072094987137177238252022539675770803461500380514771478245218825287779930973208745782882577482527045397929698588595193205593370309345397607077942648275818831799995054972598766832249635014395856510877057547533782374989626936032702195503594600665753513380422292727134743588441515243955394352127517187412371678795848253422286080058864831352973390375126950884373864887342073133138700441758820301480920744651709623526030145375832138837016111788600808700303268964722005646529266364891054977025825597209467931791702520561006207708607227941612957354450926365665099017995320581141516366388732338422147883124226492453476258272933733674494263664228996534868459142643295484073855211698284463663834299250634111729132094499760503558273543920469719217354264485273513273325881790761926853681861627974985280841270101006103877190397082034048435273570188482634347218316066531936760524666984766563294727572775874891718195989014837093634159032369000252830205336027490992727227835036325592838366552869810636391054051019020924636709802749407391786542692902437617385665243072880186121817631805144775923966827911186943760926393703072465684055003134931464766558506868923186058270539705718916710194611456552321672477274850968616764827485130056883151474680228480362353486375956049962741928351105843966891702862587694757365094380955946447931098347801636380093490288248926170132850676814193930478118812200708667671424026912370334376840521013624221042911840256142437815748053249534613207931027407271746661358604258896519157932209639625283551611315679503883920348663044831120536642893069930606549905933239365736179381506534454772966900841594049049759440734213165669177062263336110653044077185426927147050304639319306891073883320931841810850465497274830380015241903493591274166078658486890400734025559331075362454687793900438482335869539629633445669785010033712679924465928739013041961224235502572084514156761802163331691208783993353056669028206705169604524952558191246569795503930347994000063893774993059675732166194533864795849509428971722103792094211154624238329953747195695577643504051508069510324149041131887610259852971801397553907115941236750488738620785436597147332302664735645378588003564498146820863852249390261451268725883253550015948886052389002643391020785061766504628127356101367658382228341161349004337280295808633948828263976487043471068038706582803707555211906129870490321435700931626860677501726317133725150186818965335770334565692321089642146887558883336084415647128615901655734259719828866960556356081051186649362764935916841226603933358498972222855198106354754744557122976419153040011622081624719378808530888677844204185333309690249530459560505042264572364444159196092083306492919647206970642927041091157086098502604360495261594319290630105074955099811241551995794221910412166382671658589829830697386161532838193242164940322293993574574453132908541531429263039855417853313101506675971852780021850529818722357296444874491228022574847958929210576032712708617222107256167455733948079067895219940440425564995583381844590777173168861064446792051720878166632853507319828047966064655773758879496618824540991080989551493574986616826550759992324484920861537995126380789254795163604447784093269456793162591287821563499437035658556350577528459591405677009139373034158174812106474807839127991204113867175249721680688931807136383952743208604213487538066599164692002571871068960346608123839753922132447726767468891180619366784329570208580273711425032876787441792614682410469004424125416974482046365407296056196448774270092224942040174215394596775453220459800778249497491251984628012117624059886329264829166880195203894436005639651300650608558243470398009581029944528980645442578057217163722084252929476732514355919799062969695241355797710568429071288003471149480496764782349445443516456196681495538076473149021641435383670112827755951126693160646244152461416021509976765701704029184839615134299107335591372210908572900895358123115620755847947957441528391830557539272912289524758905461166280636685295695423259395174042063351445039166819135204707660542619882031932255695313217171904123281057583815883557747187537560433998969711315639738902788253096257436636811485922604103892460867587164878726208553420439235496193358505521565820911737142708008045921076706404916085674130375263267594339425854433242043431135350880543503554756084830092171312143338185530390530252352130562703442227759077523951375982015988948603729327835666700235364434068236241497243671068827724167579858379006934248931067411712836619417466821310148392354436936301467851852239736899204524546032963268262301732082093706366339024430282817045147607145706452750702065783874495406529912445734458788795955326876650041114160642393081294938532666694760499192133070548287608431686203525734031462833431620937329107317602420393541134923825315871077312753061909245046301596203318412059974123601861001201925732631615942438282435270407700943255813391175197524263326080208725609425085943588420374677450933425754553708011300812442459401033210094288337570395749758754215280297082058911614099098746799428583781877176655807353396746142469853210720723840051657104588881635097260147354141700986676062471810834007546408186469160802742245331933000634987318195497080867470797457341920523802399585695577762132923006434255701203793320858214245748606592710445056978139095030829730981873864423209127732705358047031735633697270639288673448613086579220951418302077273956753432769893886656442316223047261062417056358425210046349251311137480935378092550845060219727676855790060817695083985110433062167966178154268630223563741949848530096998208051376625568746163892375513680177593837768580187718956150822650250293313432440926325710413595017863479864201970866291228403998127027646570165025610787341513156051346082598301519682627919058288334727966416738783857185515021868345803166026727889111577982993938552730746145896998024212109534153961036146162685936827013688972870685448012170029342479729261195405795443947175966386283297399023753449012711440150423360376329054823100171768751306381482799115678527820759834475012657150318496333768851460969134348056483576802763687635808935758469974775322948307368164024997809227415182898183845978321642206553282651409577129820988106515903552736560429166631519234174828361925349401043341378678268357553263127450449844651723386267551955721975939523919180568078028479304191231977358955953800393703798175671328964242847740504539429991066325268493285699589551307470549416895305814262652071935401689181828757363848233621411679718140300318377889253967571381049201303437475600150267955985118610153776931045715844564370433379680367962293800973319143330494479309170814014318839323188894033661987361848560825914370413771974238714296216503158264996100280701811865638891816439942546163099575391443133543764827709333849086439652008859094527752001771981508201797553978090878076327519285738579844376524175817119330240797418511156977255250216871007126026362142023211179979981346714375989199957203792051811115732865187137271228735640968196546433279129497092332133088448838754406414491044002498427800391288308833109083029214527887904598582724995716648851924869379961633642253909443269791023191675034864639332063439343705006541811641062419782259470115084339618811101399185367648609350559040207607190760675586821054750823765186813018321930989839537203160979013765497987238770445303420573294966087333425460083250809109414287766193516475828758717870539264897758399507790225875262838223824310474652063980227645776149545200831725121557936315673187860816163407594190263316245559341201041370709694812135471463605090038342752675768526396625997798907822714124673377244560284602827931447326837415571955358092227018198456893895250133563458748157722261709522660154594889565508157436251128594259112179303468505570403462892738378234212421236730108123162145030480410242160478701851533850016246398683289950078650579055004938612145281145208997580427288718233539960240141838666075062641578436457555081217398892364422190471578879563139708500622752252059660854912086152410115835256849316126237888628418595885427996098213580942167234574754715989512215413638181687327145229251811282817954937781296333105113995585962895333355557828466759857453793687469683091779692109359393088985508241121689238149910526468038126034244890625513417090943293388794456500693219059752524214353692268346889429664132789649401764411820930967872525049744181564037252842212847237346061168514313773943353726149616336837998309984105952616280764574282855173341568822136701911001224396757415845744119761505158908487336469936272150922649662676533492124126001146273361027592246377988699956590593796149049137516000703250332366925410808904828427093873711985673985522198764016077646325543245875829114535792975803629651591452509363595932706318255028789788500400128840842482482509952914219995761887295540744204333181991940651173358052172411694894774584352672868599077190278460321295281443986784683232992713456876605024587156276515549649927939394979534568586064363297971900412357882427736411602586869238926488839321863151541874264724272701623309734491435012804160433845835970119824680597717568444276412745998187235904584646090152340536876394123845587843470126564440431019307442180710859575464797672247293915645689048435530689816547718229351199745122050649167589633521549191301658507422321919885533298843171406013236969389794229479367611154440479837743639180011244914370260377230150102694573597380227039201580195306675524318766074239164861135636982481575911757850167909478779289057668500452350222433613651015532063975927121110913351651372660755947980944772175871409614121889604493212380305053702424195268235916119473870745482978580135740554172513846475448098315228541423472687453988168938689913541978369442550410719851691873112691393459634532953682998678530430955772070543606466379178386030854361981971721605087472070717981467039530814068093866397026289918284950911111439601869799637209474906020729270308048077102474208760654215528266422650855588930716251439383413800691149693035664679597645284492775526540146228366470336662334118669323048089736514079139482358328728520215920339932135237246546647673098817774175608243915808821635160441528099326617709471790116027615331739374067741333699584255431766931623072428308637937405994407901360975836192466438093726652015264431397572283144939325481055013434812284723275933361676544052405728906758274836983992370236517884536823061214123307263885734667692463197823655853304957308787128235015246416706101408550089613327505738850590975879807132844830986919434804263761204645484606541286609142388574686464963610823959133810148605414312368662359628026037592152034752056099219417159503307638730600680492587443772519879009383947449626787838517656895028587313099849315645990289908890119121935425849921816809882685217476829785398575598666189956377329205979918860802082482796171468118843166749411556867756813575561546806931884221175185474457624950379044140427040463852654373168764255740506672593791734548171646073455515666281628351013652809803389178251950761396128361316150122714098477548031328834948122005974356259491535574611532445443352466346260148341445430296739403566916409589532919249198776741443728961081507906667639811367165412891975643901486543560876781970786471044400333680847794021207757513222478168535479632648111869315004802135377184300250933525141752239163452630109713682535686058484009184009305699425458836462556184298979952716647908360091215216934011853413232820726316042710141341930633546039981111012328800835595937914733034593228786675419278009193670231302337878306005952148502346397593340922196434348319689928383903020884181393416743791381893675821209706923562071397780706076304102284704632894017429396074406747559059272341187916924286126971607019452175028770985018304205368101611824217634533803462086202212467189793158853711639771459261496081317834106978408263506425229595840925304843754464773130973094995737180121107704435853671040839525600465382337068753937341333175048562681752079359377990252940824672951910879162238051785934757075742155256191834094042413047435826980979972431185359127204169769642342953001406917089203644547158043861627998237181630133222278199712711393503690382246290911627129699261663300997523668857676895625142944045606908633992619752059407606933946444107181076391652942617861386227745741303557306821081678055919557980803989335202635303963361235058273569604781694551647935504317459665098439785948771585736889982345988524004263296855748247103029651190412290281629565258043223304399129017720507734080839574152568934188400184436040292726233599719235761715424895896923905063540652460851470244654740750861125712282382184708554679505726348612438394386419451333401203580486388202974632959220987177351754353410583073216365398537397584303403849906873936481501606934048908096673235018449600312248990745587438336134063902205346901177897633790758568169114784534791067963564338012021958486385691656758111369355611134478379744668409056619001295497429720655622688357225249170300862386600570186973089282225791691169820858742186639766433455128454234411944396923245369305254815226914209482853090129890990209320449420351380042992263629359983642055172455586348441129496506168787000363023026421339079710292847767144504838021571924550237090392421628852984165341638956434928743225370792781160335658452599759254908410149176824066280849848307819690928688275468279189446608417993493252502656672596942824423944273133428345221347444471721173952817455984049940722308907046542206511216703917480127657686618153545950582550864405357006916717391976994316206807706174969227379662371530217979037155910361379496086966882202963719130719763873686682105184973385506759161782389690453512703245418378714081188214467681515136248226696244022917393000330945908401625527503333829811691325983718349245810096971295203708581772179443516075852250345977204268995226154602839955961158864686545379890789895721875998359649055771539950172829311904107643452078772790991494080667223011786765869106097191836145071364978624488634791812203269153879579667702536298729092493507873692178730196910228228245365501259574433116388079268646060082631209388736354059825503467010435787368049773353075415341333011528487061805361931572854812970113583173004868939870711928803399730410086384994336978457596774327669909092422385022524539362616775822990144460576691101771933032762705782345489172283818265393537078075973856833351047388520967939691159517215675806789051104545466758913899678913857084285814730386926391369084770680844058044693904085511229662829981731221623220057479070945096619077837224088495389790622377638311765572285486949850347110970676542480175235555033391982232678106204636373794940712375475641090808576418346339898074987507551768020658469493877355282392386558076619832664985304312605624406277005526779909797322898337906977160384908470245991728272083144851543196338331329048354972676711785085060540648842470375529183961762563078262968050612571632260072649270038358067810798124958524199912835248647987842646658172213638427522960011562342695731561663244735598915460378886212709296760295086297036138511345916384478966144377098612641450970555650938928357677546059111071037171756766790781975932477033474227378105175677542361052303614822807129986342281597365289916769895425523657322964899573247246915929196734074970688550132024560261129971527464271510397911349782267638618271002058667177029813753356402339969121987139375792144965832665425930743021195647542068253265834125630425842424126596757501507755879941530165438371032670487431223301387717423341398754027762576719343603714750799950504330220614511751338139928533371654607053149547296034980288635057984919042767234700033804310672132529653061344593374202487875190386426997710737187766570491736860495614562451475687235793304104550838478108926527266122306713948584931993974172366134481132539530970856039125920462081575575937069503954465790135748533995176564536525456242255138248959397276940408777464377332110794939870992454630015983339174556033500820595779359884210936699637622639618842320098036738445915542402248390821816018318622808841621439808347868609061056382743428745560834826537879772242945838528802429637272198835866673154149624290766747984597303744285372798412236214505360943757163539048616847608083659448621913585251014713005821666756480396333673081215650168170813375375510198328823873687632879744185783879883494315893288956410627469254819712561946973732541117989614420867757643779121085233779544912242612780670777048906084118380782664030330673317780271383872355825276862815361788001949936884816345044791385758195229728453858454342464140591842058027959739710212553314703655015284964775766922130845129995820062274676620174770058455767507555274119534470156241250792546454792316053432913261818797770182351174925483932862793002984449949428217655265596861665657704966251987347704646980192985979511254561272751858595953409503072515170020586735343824488770782434528165938873327936355752601916343522434285927046330084378403856210141832593614450474234254022270223667584950523937053161595299121324985894885273614850323242569995474290873496914951308308682063035133339484583366390578494882430317720389225976670292268991876263245982497387698456160360576787018538866063489055878243688914792077261094783563286221889378268358300146852676514718428416329112929073370170185781566800233818411070623536449546546899348640611193424194604767269263546752052154841134063767562155281137018057142556082623445936348120255036419831713156598603279396219962357832797439288193782443206255829442868448022461971099165400143786611670572025007304342946542051445881713830707522450090744028203813527480126882143864357062398517596644795080930651371496897267050740725511453850587656844163486941274789224373931950131566217389094349363587227015203149368639817222755540519125128253180571859759194448750169680524603920021217894168159485169376974144175451389036520111819143151063233137377679172322441036738333299646402713178711883350828831635467454345429991583775299534069416775023469169516685497074597983534056567126794325528340928438999153355608828130809717020525618394328252952433895749874406072647975159627892214463263247310983859760778663143705931195221002019572965172190715842882130297236210129994209815089262981950515694668808082523032663385868662472981926153187964451733257208852850767304769073514371103308669949907544409017434378570145299000670223558873734693283470896177929656086712783183402233819647588135259887927042959131805944005508195711856450512346994213234257660456294203658588679806753490372038980587800826626419766768737598333099673236311246124000686749660119302436437071912157220315953709509349431181393143497387939238618658180767390320788766426515712139261724954920088082401125188750133075984732447457841168462635804880779839436023084867192938365748595503218651158323433816934142243503045905332954654556322138373695148596846580574913993655135481000205188750343510915155506557285562424556785209010030595461492609420838054867199071479570401235484100115149483033364628090775626820751060384690475273516305446741394903573989867518006579782073504115162081154550161040700429056026242259478213662010112552880022778881929267102876477097013083021858368242734719395409659977738134831179449284316270594738928956001687896705313328048739531391592564141568106208261502762607073735833622904640985576292488409386025640722011904223503882043920099533536861521445150877876588931309077644410979584968567171676001798605245647225519044666914727812293702414142665160134670815720397614583520156194578780824770131500587167123185920803668431886761316031684472798322963779673469210880197390981615002300091006520244741131767975876297097624774434197340781934626166529949201353899335776808414262995406157694610786413502962160519775439878515185204487974092096886161016613656162844328319111006792603425112910773492426352873775820321631945272846156641948501888987807039300466266097047733499077124332635907330064732292547279242694704988500097891159483007540517674104476148609869317705133567047759825258729737946869855305842726744897955552652213314892418212683470904067828555737880481199778898381897182444529129567827656108622623331855290244250410313982269978231006847118891499766660880114771349945763242773156654800725051851385325530687435891477311687217421141751053549149705901757284838624115562593052113566434314881927915330185562616508688960283433792350722699040406750974500361942098268583107874092597569437233834424091015480333462834688055953639050523143062908475716833192796530132388227369515934761111750723415430610479946121568447762600674631312896363531813803682059131196977097208433999768946267714028135345840315830688838719871539898416441087544839966355095965976852129238142376635321955837124015809132764553420098963461181062176200714511699134264295835140838128096645394512388707592195090355987444033080901685908867425215323548573926054242787360339562097956465439814025790643234167397531817527345606850265873036770725627717351353274468029950785936138377837501625339495336362221362459278094908501372523033541753632318359633611473143977567379612022331014747945179529531742455780227071866644093796069585407268483545287618735632839125366325725467380338806002936867649332253678702953006473225221659650398402005694014993224564289628704426311054385098891748727228228461512063957420879663949054716766664866630713947992223701270242824327319285648370027306848002380118061167431065774849449502941020920627286179618543334593073467644981203998346218590426234049462179297075232778938007327021690546933874911960782847684386136119270967246205383684645920036625961222025347769910341127916534304258054554705107890890251409121550009246768287097277871745206957282749900393195097352873866651109465414586760293631680190761168555276034538955862876611771170702716779384191126182592368572065601988203046481858169945642740245368078498264964940403346989960002123468318875649202562736925918798739035760624914798125895637997276550631770209397772382502024464331812632467824807575917715100957036722558121827919159503834390379325312239740171353205514679220834194961741715838468832628072805647192687698113592255329737962863283741871283763932795555307303758752493067478094880646438222016321021821793346632020096290868101163312397202319217180074744802032247013337957728567670203248750495973884979159159168016794621965023192368941744603173955228645314455985750009833889351407348935368203991183031886033966700689106076917821983391216246949141919825082367129894857834292733342980246354208343555330447624801678494073148910881580812000317476565246418447944049610836494734146166741481889449850191125198399813531246767465862516240236270426439637192980828203604826037404699735806544163051985888079946427021529409839554726586102362948527857175259269585585083345285680552912066089339886655247033307713792713184590694852853919180885842099811204371789247826821512097794667313691649700888414655269104231832095768499274928304779165100568543607874666438772147191103755079222989133617726616048412319250799057969331550522680117860094795764653821278977634345278823470759339516372723538134871603279047711903509193762713664382348204264471684413446453969769790328842476044559941803500528703233508860764834026197280609074055011978289176637220770025436437960833013833513784152935249605936399854424667904555321954806636502128252960010524956857334171129431139475184369771107127748590814779382212588965736150582484637531218786575750079644877299876515054545389331992155434864214774260157895910740303134973080104047787326778431470401868136481287156609941437831012761916459331467066004062291231376658693384782091850681972397283913509058705819459776638120483561891716700118196531917856049052009101520883984740858422174517701271863752811938942567747305450333907346086684102621676513896346231954628455696479604709070709457938340262297938363101642578209288689214809547494460676100225031949882098331512654998388595245711801325903259933051593317267360035927306141157338111134263976188039487209148447347664292984950404199090536692702196776167290206324946979726396605141936911357124056425661642282722444560790696419607257734709662531604231669279962426932778953140052701563861808801603150803869884718538840067439897106735095674242256765612104776163059672655523918922500932555072195583851958034264837269092786888049700399955443259691205774587104739394657580407144146870128948363544189797436819129647485582892107783975860700042302097522933940739465287304070001294132072344655019559431159942989961526412633682471366892983066596141276347291983060451506950809717202170335507851635805718409857601035321448891831579394336929431504639885360465314047340249735315001393329715489861950570515852559822287096337879180853747287118513594904346269976188312586552144456332349537984576436005054603223694168106884910490258111873638587241394880030543453043113474610039492070737216710384194981624125478297661528612613632671527201861462216214885559565360826747367577860361326708675861225768060894113872314052754957513845670547246480969663180701466466192787449890922768013021235883098998508191732436727491085929476235286253448743451644068058049719891481617623146529233821843447643110763081781715742785653143544930889049106590024121693393570183176615122246679412726060465135835047324243575094394848622805554720900840713213240322073143381007691207071880189293204248756476972024798607618591453476949157995798093761428024948628995346957948813317119497167749419456873225556095788323461298974749241121993275424494179444729526838635686956425538044483644722275122953264840729595757400000241512831717056508563733432192264994163489059925677107300678504684688289541780793872768448726039056980375449482452863170834259747683898464656163216475150478113887170417443168413990259364508968336016824030674825821128395363424122821849801891346752976758951196231052074135014754480827877497505568982792378383163758800946324951537270427105756421615568971177579780044972755431408370407738106967875281223488031009871531134545402669085572955801285708723688407942612521459111200567915407678686623064460774951954446743549597971260669998391620419921765291437916885201732377600595147877119168229943257113914369884294936835704812627146407969979385701381123862005858548139903193284392357071195461038282566617799103982703493728269547254143463632174704496990817774360137836366930532718608124501753367217925703583034472863491824878137178878340596363168895827047891439008528504776797230956657173964344361302726745706825256394176118068909985467981186283070913252625948569293785016035872801199506096634068463692978571380767126587556235137728181347919738374373804169411822082107293370842785118713608027393730856297655502914858984487980617255160390761962676729516194802711829386215205557254278104396052382364268771965487518204070904985178690904899351157981628454782900684599034693517463263563677943503404425342288568904293311951433436645906592974675111493712723042894226823502955150779637356599711048037330812126998002115932046243254828403509233310079796861883165606019497151651034920892614003284574674857517307125026520894454416371888566617360677043690709502288714874784653377182993753737544385728570507909871912052567276541348127154051970761005783937837114918072266664386158796156674716802227474297434417193545594871399166295515560009589930045854158769539881483757790365710159063222896499522219819290101475111233344887503290517292636836610276126093321945855953658046756786194107028308641546215260085776823643824278276169469180572965226802916770667221346288524558509234549931003360367386042143243714016362247978099309678705309452769725158087678934054421397685978836212592347856725380137894626891664956698367951521115524108008519026605030325916813385293708063481694496258786691319093893876888473312934639561160447783777927422594359453085356671185611761700180502740283663687158430581695161115565382211084944065483550524100508947925537863999765804755921479226311627323663170814739524329326567100098693463206211627637876397369809939732261428189299207353481121194640389888416969814756291328946925296336145153454293240479427189193897757184864688128199425397492158534614745938520890941686686715236481469899889969049676551796561529055355679185242870707031218746343711650273860837089542625612391101911359204278627264902661668702684453151057520810877282225743732380857923802084857284757781847443047683917919375969506555015597633901899323283667212774272027528252220795862102383082806371062897631837878227312727312094826073370851450310424624787727324745247762868110562864595723295457071579822496963872963133449985442883037285434119481633824558172159731966594421775876544743128068238180591270075517708017906453559058524783870622538956581327389211995674834735363634130505312267631420650292094989911953168496658194600826554217265269887285985257815823653515282916565702079864056611448479045100309643664332093328233479472380807823131352140281340887108613459387566254573023881463255458818799535960842240345866757226727393907234602446852894453071842242555029607685553717870430740587656879966588180774568639134132538264838868838683987212910247380645690661502020073795809832283074525827845759166643684851746501262455384942427660763834921196997419258638228710221325786321119987543324838911603422998154911818248299797204035716777677915606819208290914177085470668347535428161354227052964116553088036986615380300087520958489390005904950375890602977309374606848607341706516377868358521842044656043482931723808874263131751944386096494978384966066981786490528278717004191811306142340403645441257426729501441402381060417258343869638531306633980129911587003252922133262216350217420577346457124611119581429932558382979273479221542386914555261567238943357247871720523599873956546011357875875932236825794907423754978631635243548597347406516579923221561612574018527080129806412002496593679847784757066732911095334496738140358888435638781971849129855884583814800621203454200111205158894288721449157618372712760390344489223420984929921752578980984120147339468190402223394499379177500397157064858151536304020705594982964147462936054821286227128339465727290495830668568646852902609305591031239836352254506647141810153805364016268136256106224901957523607477997751240575455488003161378570021539015074018203562135860778769136215142387818757077195462627874444827055166419801168010953841099342656683389299202478556948917632516466553211842935496171281777363368477405477959005899433923373058533636298282488843168241272369806776211298022688888021445844708937506295237861816157808358441530744764105465174708586765330418999103557013544225115582108968561509023122352731534414864713751520704324661397882011564150335101843960988952659360517298058111011228693577556942635792845430377067489841365094420751563060717915459476615045027989955995294900221782327309247472581047374799114799958441877792967792114319556120798539849523001555808344345248445100277795972655402792133609308489648400845247510326639962041919994563470549007557295762675764324178401664257080763643462949762079920506410241237594661474579394912339959990079052336154251699982314926773147165595588322160834709039339164155878405364016020817928512797753669329734018790823819493593227005713480958234293983209952777739926741865742292160700268372723237063394184553529683945722532205261567926525108163145532115257251401097383184118539239723037275357957254581482722828886140733170892454126157365562701590483706733360192133288827901350330693035864407638915756533891013045968534775766018908604198519996963795111741362441556568218936868428432266164188661096406582319357680880011872704580053388893288559185076413201370915153958743783489440064321516163495696266961871326137047401042256007055332510135779222621408621162640244348854936790096586237803767497417449780989679823972096618695901704907676243777551610573570409397135862933693759781383999703208838802508989596950592483179802057030533226811518371739075459442262146691319637936683642068798874599986629441063763589686764852229385519153764022755873153487747736464972900149952892718719639411127676890076906680397460643055005321908242511300937080614434017412104727209856239093445910063447952132618372292403563497620379350039186390293580170913224685158394248358726625244560268860178883686689999368917128261827263004123520407136599205756749982204088452334994351410656087128267068606393052364636306931993802591005927497344704980168514208245405519066046933566114913353557525449352076473104530524898830885679272638451472480133561172207369550834644172585956489207869254344612753531465121782151907414012089508879692857563764166861253037801443022260135694778804685233863728436808289453126261244099191729660388284083633003846790912370879625002108720400056450443181842143396843473076417675095200005992873271012743920719026110555294700086766381018666549080664377139812172899215096097500910453797620854810893327246100290509819871337620301464324623896908668280800398192186127801094786603537415303923020332728393107259074142792908134266736621059975884822763510144100937732233136062887050319318359807857480336657939170688435459001625677099920892710445385764330258042760526492564013317775587850739487731117800461542776004449745833513675570150238738500918873465693800531356773397232643993281169692281414788661196701425086156700108076273413815586577683316665913908742535302753779357151690577609505307069849570332478275979262665547109036164243635245363740785985633783371189884348048431352665270676542660742966355330221685479360074611407224235509125098737678963925202455894472035489823142500499411552502042345106583627006771728617959726353793838213223754536425106988993360787978608310978933478344558411964776994253891469310695955351154911757978980642397044896614306977546701918108107148533601952103127691424958658702739674992560062154822362999493172672214898386040956715049452666507552143815100214019458408591979313421764733567626126108249041562964118759623128754351789356023267184471270200663908450325123085841981636425603474790665195704091704005559585752561305387074029603766791695544980079367010246345427791157829734706104446285852576206788919787959655546122334105216128687280687046809272681962440669037528161403186928739135884847684314955538072250507595599097155021530264674138282699304960597884227367746867405422377011821978395199911213794133559210372748899909343308959981034866910399616852406032217717911104889066617747850101222155549073592002911409538930051574093098309631051274998578748803517751181167693753955165692518074792674585046380352741192185604813843014783163085275898740140845172435804235811612923497514640862578950984613102637248344221987522906629348037193141846625732941620390871917947251473554427516971737562068970729382138852900919059960633443736150142662347478375470969746638644918920220386699647372666542728740846609799555783757677526451145667237295931175904057920340949843158131017659755860280998997936724838471372244433419548118662303200693896370342230725706180701767409142441288524326730350272990311436579123490104420300063887925709294058826058696151018500651035608449173054027570155667221768663946565936256977472295220194991561249653869853724975035270035988085629346140162322713742329580316037842759807576662766739799106033914009976196544075276938010309557366624166259036453488180199962628764584361511873886834218815863737515456845224685998787135673644907001694376834397165181944426534515685720362723976965375998707745571083812504642163252100933825910527028553183452943038212385987701958195932524001164618996830545692759515265840683424750499811673528269452466522174711974640584188683621084248810920031119322901128724439533475443411841496119093172324983849185058141665657182218003542906063812800268357959363469520459342257105879551686234871084173575719169059295324270650908767027071624731310279061494430104044357017390598351910838300336970564868504512562550062484465084817027428599750770156695123640641975695484481535614310503538233596192018895477105095589930448366727370090254166606635439590791484297374597851859577999541600453164491810173642214608038887608396452397742254857478146030531452281576145257913694257228835450860853139233508788046660234811417793700973949475050328103627529637055746025000380850888984696882758403870906430071336384513166767453192457120526125479151717933413343329558704938956045608641934027733778571862778248900037133775546036715927279892109214162985872690240620330633111990317004544205706128236354219995701475093246071288783049011135169343088845346925471427604840200030420511502075756328665126018561754231405501561730954214428612829049440056244295772544995186682062776879612725534020659577317844926659352603943837952343656356020151083150049713549339743785900376537313614894016319674485103888490079082521627908835082735881491996413410909885340505828796843409345232543425079430764241112872083682281413526557100079525916405677201662827505714651069420714813777986933039607612758786709484384580794029030162494337067629608116160212055647694667229077276200895819388632190630215974657948322830526086468715724643461010552029846591601363544507171670799800509243487905776302571471085798875201025140432298084692440104293283890985929522080542037713734465254658432383323143692066496598275141209556892149404761888075962609179808418588915428460680033225581778245124549891636489320649015592819028363512392793083773286656007058025606123681072779393359090220254110014369253383018825534776137840321777277511644543564357290490820869355291551135066747911848661209361087276073988271431861651196145515002706612740788653504821743637247991104941843125363372257856569212581498456655911453952397171963108622817252749961769764361169677920565752637874322241974355222192506129936860900626214468837342296871676391678390639397169482180324033325927466326871763077307468761152006962193629745618162559022350278704092786416665200945455151703982107712773324367782287777189081139293576048868533782709289953445912709302833275758550802303272522749689590953694663923591147841071586005416865841324802223812489399737575140478191227799594005398451539901738291448780326820046518578641014285479773288075093564704972821256232672763985561274576204835567814965444591703972498645479946609582861530872063797459907600635654205152025814677794021587841475671548728821067969597563388558385349729758059824164995849265968920498331641215015029029868854426836482623714300499364507698039396748958662831170105975504171490325387824325906424922431872464177788797755771771816709337971333200724978007789209065606322055832428901624545205087505646647364328710647506582878355495772616423772084903662801529419839271840104932170846544921268841030687680705188929421001878712745080038682318272389881921524377171918221964918547036814279604983470883721894411420870114783879207193425367591687674068206443411631944265852953317152954796578102062723339339511768147663557305293576071633416455316481304030986002339951836616418209168728629462360020148844857081348279007197624069523159201475522805080529925146376503718610766634858345885688004375444219868289195810146476029187278930085235363352562718299526864059252535148540190283769256808605881016103491473552245865238436151284563821132358586787156268124365410236657805407524930091210121838732877218742701994288740560230403101300054095392088663837180540555483535203423629313330257382944452281109238762239065296560572017766849863946768387604118606720378464841744077714087286009109727907169901654556363652286098463281090640620097062501605502677922478298092457442953861657286577880587688954729262874799893702200719673074232290958289087141020271892378587060668466631771088813818749021654867469580722410585247113084985481823052665614370831883258818651428118910355304435104896452175761338150852660454115176524242044538071993467591207158697371934692604015031104867404088789648310790367872390243778923003154502646462813388404988588616100509512985722539578108172272462859907614671079145782764918354815471652650229775171415459514792798678089395727325247847466530465430729154392985807915355812754045615849261563356522877490266280868739862115169661485753023400986504626717267577883962097015633532617232014048699655280606999002113530079435766726012992021561260260392813230507230953356919555306238526686121327305754587020848567590652473069308644755975753982372075076425555923389026407256764995251504910264164943050201175824441861260512955090018569965457508309360053105868906396131644309407743510424555079503590249096853275296889632929951289625639800788104109320579851834977348969610743077071255885735713013889621046480129723360410343490109221338173743394265369364113502698852710624151849618575265138993350831472452301193624708594314285563414533263425209383226406712986401709743480044733449569835189671903994716408845910451586213643456730633145621313933917455437228872652031618718695309262786154057745496459148458828149556894881099795071304694326099454293498903701756453237020297911041604643445884302322836831522350359062142150144996689425638684712595158423125097216657258494038204096177785867507108197645754033150769205880003461854897791946700427285258321742816380081064311443789120236232862723383816435412347399211501820435204043818080004652407512112606152108084539738656465260771302007341244704903130542725427968646892827690700598370386135364438795141343819800157880559398734233704722552431672112481901989826883939014609691605781044754696538387695954420020299962365863554627299596111010798434564086042821814031791512951902325938979888273161262677270951612958346774304620364818312161173922460230721000392365612793437821796526093016157504454081951384744523904075071914186417855267835072726777033135243094681763301564940263235308823400201175408147306524788679925789177208356870015663337791130741945977454924339906233879790174497699235442196146999033446873907993675482496890462740776919609488000816283577668031337752805265906857876184896048153358413866834544427178525042564964615474602037699197304827586228335299305510267400635107602121541113664246042882484942620888733536294402645180607261546697807850679575699390957583106777612913112380046037758022173803280715546283452637369065873694207555598907598641375872241132953209203339024241093884644278236384476738614733474682841818266058821862415908656230937340082776910230833288397396695331375040205174206459125293619453946977888633082109318987860554010950902967604449400949076438029902619293265601169309094441721258338072760065010970616858672526434731314700200356426546923719645882033112435670511220393557763310910323204214779851752557905776943096058009791255523096568624241129940827382360050383352314452282237899977222966328073055418579238720029567830595899803226998154008439623669217456950871996481024753284136167085614392840451104784585652835876405045895344193264280018585634554292250209868454884283525795345075278203958846945019377461346596168098904280685224254332886861651413691091863962611350430184993285364557425000924208635529713618644289482608563573255060957231069714578654860007880441067904695603446999366077768889611566077642219172327848690605831380337832804494421102718316814236017537778111648333646533138009980167399626544251959785160617109907979990657197336497886457461056624758641348003979203875739352779510290972380054096851049549056248036513480517630780318811395072030979930513966880226488540696720334965337177231613816358497559692084727815470723881724243347211063318963354315028839267691859981122468702696708093753113554482122233748482856052935657919489252626082274448670942271082433178753698433773452646512604525315369355283175866342995010909125955251675903806065229610505367817152574151841732999749968475322963379350847721809406738720457476493727264535685572894652522989557013200306815477282351587341020128906124359325935384508627151417952179177807544302494825229373291360965325201133657067838320513736094147552368670099201126646295402391777680042253300757191118004992552092690979271356497405209825498088620808049578791793401408850707879370541579556654858430268048478252517696323161502757978647838016588829879689724491367078278702996625219794016326030898550241057018172509706446830732143021210148797650267995319645476699089885150658874074804468585609374444667379161396348080023239654556388468719573785327874701465107398303135977762279613597056152378668651453266891116409890337738581451273177841483224101787693382713474680615367868836559254219976643686460760270445489715185149571247128843428878647886007755353789512782627502235702435212151886964207294282218899297741142936768644172870920946252048643046833191352165513566248680716573747263328771741662265267082549856658243861031096063750259114277419097762621953040580214668581921809795961518623578133285186142119202852385719542278720177508139739809346921735172106260256712509312103342609874461407180998531290523405379776772616003321572811253557525605403186609365293150716454404988675166545537039626317086749747764655390756989009329039647451293929694999636064827367649462301727433276498873051824926362204706229112048221848657483592098175183063142202904714656720837248856669099924973716636053323603830524523238375618324199799537716555557830047305474683390873465142292515041802454243127219911246909238174433468531748145827399783201166140184673248792336816258500505062344202040348315757494876060234963446768739025570361443662266798469133206282602237654611285600943186264079764210190544730660801761214242924832706946896321466454173875486537828407587573353598747618208290505335528241929590957714219177888474467893518130675639967240910159240174972589442456949190305782500193850016201247731715046087168276074694388662214814471540979924146878984620499840247101167821743262062890538251635721549653087233285902357483826783004883245297352691252821718375438189229327890273000797983691667937334565164250273614822619329410386464213369575147411489472782584811129483865422870520055881720932000836126753615708775857432247427392719747720879391505352417580889804621042164448311828881107020591130506725511018826770514169948012768050273720949510235670272441151919929128239891778208310896954210232975370448873485538184740199077073817433069542277359944266580438429675471874189594793891350086264005390956908982306284891609399008629718393192888400667393949985013509916848336400150751420353080433222334032616090448042422624511289223478912534989699564137506450471177322942276671647366950690123574801214989003368345624296997518781806553375097732001601746273847875430304380664027407167790422901984579360969326567535499149083865589950244548823567046581763112830816758100325438989390673919474711737080830404208348899599984535271711900638570496808594959082113230449230626389199418198939836736815406550684526046267234569882919893195527529718902682723751366533244275695912976451613025005706163015853147157720735253469095463930485222027509218736369338561659140463873200590778292421903350685666469576944249520949533013057007862102855785182816981311717375397201320809391312461188469914124614562432377517098391719685292378521851296445044152739481505511243570484163235819271547401641270201778132854369236606318193473597302268736689226166645547785213970453498114607445149818436252104539442994395607220695306442480599300241095483706186771842049525198940920717348866150412805230484965919446666955340812656457050409046181902670018860252043028415523159410802768717977978682981127351056950710424059977405502938142674837546079657863735936147308821323823368959055761577505537751078666646403159493270139757428549882894528003604567833276678726873950142848870430292808718348223636539235913670836479436940342104857196014525440949315272051207421614002929533308733753284790142016810202838795643472907684999564637054813884178370521657488215151381217835094393822714553627549776027423455152205711950724548509945060995446174381069341184223644665581330012739446323370999369523092925011302913528875837308401244725303596468318307225111018546058635328365189994972986809729824822731883127396736820795783905251444912938421475706880563040339912871745042466913891327826030992017798759881520994682046675897639914671122980404731696246904947140504654651873940281360685438648526646778365349774576190985457148834839552824892859155835103982914861492521134170343867930855459083578316007434178090282000112654611398205926223907100888201084323599695596835310390198785749367392721209797848970215688488303206100009841727407803191685614155491947091138761183380259416437337644684540511416378949976923597422103920917121007357671382354870321666552887272065943898923788791604634639236492288475325804522856342114757606755875350213220302914628855769626920447230069377938593832881781028945785335535666102719473366268846329940698760841232155452577181793663357434939296049477705850363070029452980384364729525636200967013875490975113129784343749754365972804051888460268153297431710009678667645084966838117694455977840953572358662087762504936582719784583966862878821055188729969595622329429097977254090046168938475337742001463860718337944559106561459741075720032088542533440292858609788279583135732163105675824680053931383333300346652580903387529378948485625862605802019572302985094128711681244119339240972430853170671454174017273924361352784304901862416458328843690110971755284634952795184800081189718483161605976900561036677584395696224189930239316678379177797001409307157074058006559470447367727099723854447482327393699437109847969456000522076136473525201545574049587236767580928712144005762215908127549752253653479244350403269839898637107381901033991820936098593874181686668242228851255295872486134420761618124694201689499676515520286456731365605041879284008932213027621468658651949673190036975482359463766875205775958728032662259549944619017896088004257170402339884516926378101459574087015954603090719158350418226247368562252055856824249448753275640749998074627761856903313247967256740431729867066369916572763653750370314485943176509890795566279919318439853990764794986192738858703018834007905027659898748563284741273759611764877074773358454575739783776681499047476851996242376107855500509486116724958451508213902741779973065560845224410378990065652225425717990866427303601308537549170891910523143405435904425354703806924008694811085912978109794172694217780214339063763228986150180635207194184754470497167871539486928635089782648099146632733899370190944066556766582650743400333007391775573955195090800810686179839829730319049513967484205176803872718262842501493298433165277671639220750363919531049050022768146015958672396074757839711897490126034811749335143221517862493234940413635887920421990547872412636107306300420988911259243679944267596263080939209330411104985942208022229003342774117959654612754437057761837278224392224537128033507770166569791501842623819987458789901702066092382060153059828603446652492224256001798109192449352509045489966849225903334239115872133130237152200813547792874321108848730163710851413840276888288052287907426860690440466020530882012781763927738367746951406715819542543535220304983472794247135614350050365570039739101086773059192211313511043247917409184842929338526145008490837889908971387951886465453628395931492463088241820584392767960228838860086835058035307652204599184306888372084547522767095253957601575696309377777485546601859710069502496278061897191173610661641002998529287687016132141991783584917910846674055829193349761925837596558560192322698795393695400916237687288031702748662747280058704981298686435600238367376285730283932102426802730893594612494463107857920220549072285406039695902468641982951386430897991321843774076542479554578710178974816283388763924089731373350656194596781677746881931806085279501463929129713598061444134400558847847150218287909724219114627377055714580934171082176702897920024060967129885652581515120265404755694803778765061933131278434565613073780268607117590202617576827807530465602340636162423998277872098168311033912184007967091245142872719989914875126869187875542433167087235258197655367676377958176628171932241781127985631571375425014099602093753140133993494263236016347748742604488445312322656652182874108725290812465456106683226591457550216065984519658902070034653112734943170291076613028307762989741766177645459035636069039520637373821585086426313928037444511114458893129223199179309460637027719403613479517141565448774454526339330815070219904847921027230899341776765985336624134839742023095246550179498007683407078532758053463776289519804306742550907144160259891881645593512987316256679365351500952989948567939579407432750170311827278899650493549344947432631693157893176339181582106604548357063726266709783224933609079669520691666024964399119004149973033804660482016572903359546389997155014751723291118275899911676899887062765861489907225664809767627620780028536493538982111685373896751785126232249849958227494685196008525279238461794964513806308037099005646701789761954256740155675408863309358337225699270043901647167809645810475108709994503126208335332828653390531450376882640620829935883159646416389842450461224865967907746522734789879686500091180217060082780947263095128271144918799946468945758489060850295703851539362999157578180474762172013447915746348125420011990473607991371239928149659050409056827398875985527841929619937943085030699252015505323107571010872211791523317911519975981950591490585930468559799997561536335009720176531491650221436446332853223786734539376787034999387610900018400336961158618374405847795409684492852886715632431486194288843306831973135668141598854008084587738475551746177208200310678614817209105963991771771257792314570029452035409400079922486258198119638079940333333266062135059401651932964624113963795004345962522453766646807617760469458787010658545262711579356539428989936354159444824382349740673729467484816531008141273713766536522641802754130640272629155409506561042863975203677822422896929360859407908518248800494545112145407321688038309473135451465820504333936905613305260468736255846290586259473453033124727246688305563237064178470795850180622724129830540278609246455096769915792289221816692808877851394208844514450267028319853081363627281988619394242922773180893152298309973761534972148601590568414976508099546412365007353026619785350002291789310220145386112035153394248931266439853576466815698525530437672616188384837496873275153454287319607037615045570112392758860186254976940565082216972440402053716828093721794399196195528001331676846731166406261310034487152972351814706029557090793184072781107262330556751209584151760529794216931142890768176707043662455695340445097763921535099882672506464778835932507116206058869572716428252097147898058865914197760033880339985390131020875560109913708458929204808290002509803486353607715051186750230073567943624397791017614690141974665893260878852409621993121924770366697536874597690459060353972085302873382310684042101482634285427854235339932496806279317199827025489313644066063904479142888916278445048325663291373001489501743220809642959495882845762847182033308485501569174832758967333328967852801655889137606369162576485406400140781667558246401606113052282437744247826733882228331584094477878900545046580589027914210889420224374740887755867655411960895685674415704730169107481815817499143442648468988299778786288667836811280075809191368699165260070806693339252459595428953537904889118924622753528683991148744790483126242110803273337471099946424749214380687084285876296415357750073828973181154572418446668980921286201420728976802593778151603669386492126395790105927341522825012485129737326564907507841334676936504921227925363107699415677498779148155442213050698390082762461519795137373614595654978441184338653454611722405498274813240456854739241879112895870385728118715447865567703903703708969935251641878451298598620779462100536908662514600513397387532824322206445584730884342255331358427394585029817550010715156664165018501515469874168633533589526768848009702372389236504107211918186675394588513213125166912475658246646837715644100755767029145582268080458371371658593963030562087340452824336033055716526080050551069494221563512720967267436246934210435158250109681800700895870483669169284286455676305968679189171131605188045240042049107752784490585871706284949611296413587150439688734356217379900872850899660373142781061431280293989145223534234943474969375999886223290826073438560345001250463510853459703532594692127184459600139474115854686791168906252778812907168334095589370761469220252094060410245198705769676812394925463508010144726754403372625333151549575346626637327875322049924176531281580733193398247822211752557143612316456480149410504557407117918356943438553941845201950112792743493331632159650105147416079835288959448778254516966696721211612516271697889158232940184873049323618250502311914057687659793625347383713539491452831356848350938045408924690093964878381299187495438027902440469302103129841103307304944427621772744283175178876220188207832366214953960610836177663452019602326252069521321514865490740387348867582768869628992721263881591911957260255447598785509397164366713583613470116906948012899412177683674068733588121191804520006864886954175020767328832411394334089642691379231646184186415810251028868845626581633799471602348912976057331347974699733532019011830226058695829811495769998292292588129828860925876682119856990232766872229948330677802123254445954612349610181587243628346962046910162363984240842507870884899508246300921721037272232845170830535491842002556193405734993175224302159622697917783480426290668414459973186745333926031788933317394108537545078818720369077221654415047199558763186377503354722459437177227763288647449257507972443598793164082794235173469020945664198104724636849982946728825648240242639640165886428871677241071893397181439694815559215951582991832482016152996892709896914202002842513068084331235604855083885481049468495918222467296109155805497805886490146470986603600517338628880707756057391645449815781482354233827061598645830304060456517774652651336655210467063628803649725995484984594826179997993478723660331780750484714791344536633948072141844587770064951079441050984141465725581439017297587918620968501633505452227253471705061604850363229870261088950981556549842403689896905222398006291502961541885481623492891950634456057760517484512777373345484930340594623017961428225343349555479940035252836809994193029455580594912416773351019979759182413264373467981567885179175194080962605356640261929477878276431540020042826752179045304178429785429472073222451029158228550329241203262499625240841318201402416196558673018171142519597374798103174046086797835105344402235220745020031946929210622700774930339691154029107890547155676405686689917044644431670778867861718596491831007957333449229294003804016668418768878699383787511351171610603791333507264677265691158889722114015462809609911916231067914536726724295116950873342193711964061585306641575022610431202225158443348780536431893146632609611161901332124675434811757945717131561689609413448433444754474619509060639984076560703454591196209731830230764554040804858396788237453790953792090695114764097680413136911768134711832964034192146654736763241737502463900030341257749657284472675454810687802746608358161718291308075082793837120303979879296454845141589441903772623079713293626664599960747404242279268619953092382175882387813558450791495439120782315744458045898232029210230686641697756368874122537294121900724563770223748357646536122953558045994309193182488995052298851843207908540137819193841412335241219571433328217574791764808925879534212775215068537199183826603556807939954709984340870396787645250003222569891717972079659555710677689162284892440452914224069009135413825620683696943741310006475772875282924168650551786983254475133740651645972658513527489275176081046831472527879811987799446628834737060415544591266644904754558754598212882055468100157483857510857770433513004155365179629048774572928113448388290739695355317132134286075466620756720825001473817406737304206409510094543247082818804085870353775677511587952503835424657989292277270175299756740767534374816769871963485591036374659502471873240581512762049821969935092589528184668626939553418642898309110613506591204195640311965201309688368674190768966121447811452932419236834775427390781094001032640235115537354318564520992950526984128797333773162533299706393828006909358753532706017867103678436836469171722766389548753929010545170984730830914070512135805300774289402259161019686981107743812345649403574245689535496791428070477206451104214066252814919912617138233867816642018036225738126376162514802822251555823726606207715174713688952558478532340166797632977449587073093572773415750850489671016741758012364774638888224941921562560815658486456485991588426696188820912874977102233533072538415458230306055616447034732451804331122753575241421986428146076504205460433437153384321131436171256657176857558675495829098200339562740961492884728571546067527727070297832776792440601919363410300924688991094634144340411667659061501459768723177676059111871982508018531502364836009099508212508951814973782165595444786173581357226960834597922048396215832018107673268555841150603255276221586006682793935860033962668198306667267118094032341169190741361828508665862295408426061157545288841918843998976451534102268319077783112117982242491146259182063610996185521041644978170215737194822569210014058415719095463836065548724779218535125571370638747256070892398531253216227675291166982007083938710544435196102225364011436291567750424220931755195696748223971008823090638540821540962412841210651098046999293465988541927135238504356133342675431117441403354129192291281298770925406737649155699635628570302121955510522913491035841605305918405948849660706648656043040125714035158517268941029154861142325617910497850296554500831098088453546524471495339737369809738077592303669464529666797860741944792041335088531108826546682131630899768782797558618974379845046308105620649428424997279051126803039385341775377889462683723173969891612954162476595345010359063339634224880198170074268539803878440901217816669158512007006499404182926149511109184939661075848852403629337783114646864087695053820691404924438414869848003789730262625011836577759531641024849029750314571969343518369336065250111255607610914727390407964190521952888264161605535692570098667383973493645606427382963357612806497129816009446931250019749024184637728972770220373811178681798236889197420513749338153727713744114310153021081793296992950381893831573516084755184052410951119491968823508570270526049146145329373915284227218175402027945586895488146087833325038358699197764610569008987382793561586023387313621903309827510148277807955550104110489729800339394189460343980459173661184222252197281990631884375996838758749420522041180514071422889303450509174370993306620527419314473415968097427045944891894658067019570159548410635203451536535641159956547572539586845882579540671070103797814588107162334014166723017023408132386357437831959036326472699692858017028898865998897351194303829124258842802955377006483213646921799074725567732493082240125317571208356006166818827940044702569851135024840491096534707256459523327524779557871046317152735211716033919824423867583057098280191659930900935829248937476411878042111001883596306487941547098062786122854156891215345277188136772348685368344653846157890084276928131146361108084384552175564792647935134207503690257816908038626952911762039825565657653153692983933233286576709484459476599605174350241083811553251129240861061999047417655406918417244634238455176269719023756210850029837332005555691064712051782144441081810523682461682579139748544528487180620733016583842526906540898331899202195899867563535343802484451221034059387160738636570136177740788227762609394778817466442813479334612526430594252959387266841113731947527594621251604081419267876993296058800116316498813833583383475860340997216003746539647832385746192396153736985022540000278257338366946700880349160199816251382929162600301668442660355239538888365867906257618162442202816547405143101067222340224619465958073772081692578898588257446755405772213841405065708442149832764041465980173367072784439105336054249344298973039972704741616495558907577241245478089396478612660983337950875422573555481570950572695014166968814474300428916693328795483239074653994960032590013552016959729590648868480250828418553757299092915385825167523523592613913443362073549025361734799462334433051149301249351234232715474000409662346533134646374914378225228357315892123397378667525548136626365568382759531843532291059947460235679242814783460898914788787734745786803740333131075463623364242365241571712566971697366119571229631954372994086128963074480824269389109537828786037874384166359840604745876013481564830167541247485148003651644636156178067627024190403976161756603803067524101875437502404622844809317861819337812617417665417643440338249708519832903596859214094422693985157517680023112286910823083807921346851636807610291101939243666541980328497241114286154346056988327708364580833800280523211010821745931618946360214415475149676829631079539325341205011504236446511892521885832938074773525033213824838280364694334234986055547830087781085401793356275042861233755942021841827610456448948563606420894696478271905281200870776124196613024879658922544092663020020635114369422354299759106013830510563590905526273075232069318351506779920064234562221183009868752836824929285655683198001400709098235473615258600847561238929318865126819752796340515713955953424015121901266889211641203752751775907893818351963312759878818803611691548011840247364986541899813565952676699949336894469371440282975732381745080976069386489598152855687464932507791183864168728111129287549822865267105798856870042785974762471151839508371730096724613251549620403079970850050730901610214693394934566280610098408796553352444473834576178414619959726462882579453293216851809545705691170593048480472457880899439639872821880395293620123726023383222107184769095647998474648819646167444970526601294236305350402776202598347781454116209527713015874516584876759588822069656481342438208304994978496100805200335989574812874930249956702954332181624319265244760623286405081523829208449692082250552273844649927765065118972550591537035030699344898328671828794387169420939930136643440524174009212890976358832369704800527302419893648722632518618159387299637385502982612402144846158710438361107059265847085913794820059234932175632177728740164406266622694400282823571420015483656216715263276856767501328573108065911835985669068852733429092575845928892401150888130673188848727224764953816213667813439973057972631114366840390104180501227857850049600822361470115097650270013225863914776327771955556437397097999900729386250854379346509945365298973182466340570542158482208873685843888340130578904383576635641534897582579705871443284636225472194754962417007045211121269632591241405863502475509674954986905557988775577601463214610775015803774128604950592536200290697925251791788248112931613426933304436880110186577573953916394694941139805630891186427013263141930016635221983969062794508438917581618554084391128204776731630125945207626847996161666318135111811438078173857727977760769700531948417738242889767996356116932928493721074222342990672621372919593118006614872604263001121135929613202257575503768698144472908004517810725727500063616500669422051818781034840817808984777796030347037472196457091330983206775409338173972284410400143650672693490722968744355620808195194447047468609881297322170496450775102343735238330659803115123588729783392105033033614577965571635332140574208908783850882067771534874667221956824584526710505326551817110838101529933185315633435259516300993837606381253638952307503124173550041704476203610568843236298392818076762779930171475266208554599975441193328955666619452313446148226799953271208536080310880041581700748105161782252523532685298374746234385402155564561496432735121275875292677087322172688111005280806482192425062249269140398781729431911528897756043912536338095315777769110130826872941308002187480564843799970506503666889948193961676403153899595524522190689152584557414380713324479154884653802533005322298573119155295704736125314131224820481539514116621541726686423581811807180145087540988035891729592007262393558413681591841308032575786895859554774581106331747178605533356175052441399271780704057411080307892753298778196092668805652818098257354616880382882426223534060963642739727699961794890368537254576866512263766941036748780170631498469645531594169029036214994347790342464956126612446744364398777476816090016546944941878093226847390671775849282116861025616544183616815708283722681004884909174483261437330084530078004810812767223341528512227708734770744838351199062684706106627234750952902142805976966249717602600099660879222861683310713828221562348626946693207668018402883494543430320246865912174984645373385171668841478176904548850304117739605524037710899450848437507647947427678071245111774850609214094673120980799671100370259125120247324055143755844490925361605433618735583878462322786929322477767671729310509223114975349840430564605271937919565944474208968999537453392956233290483471333847081573912532203637068939196839960851706158557922872446722638300742488868358733126899991258918593645940691540974265801813672807342954270315921751340611549244769383183675809200106683217220571189779901055835592138361262341418344053506043415104520558117213885852920047121087965016753390904468289058639775546577694802796095810006590602218326490355376712154906225680982710472918549075541884499171683408944476657723760978783354890158799593438219704892459021447252345186610372485344874802126462456815838136568980209597007373849297172262014761162502563093529566882795784320015711761556830834386065041142010037830183033565014410571776146076880024202446351082091534613600901711761031111361712859952665495356981972781451062790561634536236220793267595671067052829413493962623499227410147763853405807943453494243175820526845940219520280983978153868900481059950649623729949106977626527555487240857239433130120651450783067142827422920827354772092948989836213408980678427859625771836971652826629803573860074590255055376001092829150302877979398110509295594897352907665768284359084166934401565794948428384686850530549107736040402144693570871692131185161884903963394945972385974503528270468778107639306985334039575301863054405843445744552991002761552902376322298714758137455108578030153444143797360102166837195777742037869925968936569385752898945465571241536207763752081073700598027784137591108383533974039930790879440880618973307126663256955023017933753582889389730084809220173598542321137807910754145160391103813787439806860912646629448955683405544385348889383294990042367340945521640085086171794090589442089348391259191805896075815327857268729355063705689866877492079384196576889983368973798376649158830751224932137257796719050770675524313116815325324448729534646136180035734772980479628081802790261687431159381192058106689789489926954930145300307733043997810406075545844008154169967861074022483449745806883494732520764747512783130413158136308542932853744068949051762740294897408316854579307163477464045382952709577729873601335286686807153593414250956128421848350206163365718929069682284388762872334592646477831826803026888368882519316151989844080846640422449624352118554765919898783561211184390159367555986500487537684342445413681355800430795006588292424986220839932674471590554589828652165033712951217961793256627729114084477252498134662794314713925041872092427335868941223883741422527990447869436039217305624415557402798466335372066667207268133195809689610339336972063691502580003036381450923849590974523486943403676999624881500188788187022232691783470131808408397812673102484826676203553533423394161090466253058232589891717114753536705602657964322440700266049040262060117557197402534779488924898246876764028440534812318888700333587385302774345631846022586309592632135448433851892805081817546793384920995038576639416639953697365821267846934256223530236610353643245450866393853598339100310768734936883058216127322994475227056036380968988363943583229220454308087931610051795956911263460175997369630265186926476860536351229448606182902748950780189558190659231559775896086671765474692789650827270804743520121656747290227590160755471646804931460143593420413490677399886004167720028169161886151632455055811928801526690862982381027494406232047290824424897007021090119852138625443479081195882740386619337507648467515435140009006263331187878904808672104405548043103861732206018861480933955979783273446668189808174892374080929695796041957616364685157733320862272474082363007604678222157916877618654725328027454776262166622071190399068841660631333388558697644940754370440459988282956835224370695496983676696086209355482106315595018888179169186679977374106482570644082705876397670953293543109176868201915272919472699227721413544467842629281149117405533452799383404960414903211479260231911038879488463313657222599008823042042942481101154560964559182812636571365165140719501244763475319896237120008257428421530241771880247951786704535913488477642348194018836658485142950675941766338522750990638890139167005637445376582075287375095824497185665741128860915723253767514650174627948169764681713025897897221107025819658796562510044635545163857625907344789219557798897726871383474867652886769939140312010639406451098336464795859403535284822013401969480546386178552571176154071308126891407123657891186104884938276270013343860536087900397562059808507649511855260980506137819270586868392901101572153896932081454010254552113594418118922395526292248032089953695138448416053853021015834973641166824619790233890477102580029932510304714263066755231103935803083312791523661301794394151020662068217346589288738347405004991587479482800138473346072986113820198454362348579167773191165501176726040417318552381963938074197044212969248943888764732174341067695358711849465391485619994376779843856506928842335222672437670652790736496095590627301367590879636810020385376382279709909113137334596271482995732874960232230419590927430414336152381210609271649787376664952071600700027605257627614720651640907716359976826065723237553397479505974946458024005739885004817003459757211863928823687658759807179372924299546270631995711114033378894838340766138255883820843440575738898966513888820256879462796795021501928703320242473754511354119152562844963100801327514300879924788018159857099358161634796030223560345950185617865392461355979481568328948209938436488624381243042935918449265315104614748251112387887898614772580979390121960824674141410804128887061769030279458091291970167724209526354072495854471135280718273543653885486592102883481288025347138167264356770200953982957422774352578824993910926543415823573963493246048839177662528784055906951979561515847489696637954139785826341532637905937313028350170204590673654692723681669494622185071148802324756831603446635864473017158485712773769863989078694497895909953133081158446271431900940586664173720658972451350625753963580833367063045124832530135415500197590517176182391229218929017239694155785765629707002233574862410516340831477110865735131316918433937362899210534511427357907227740265804754414041173368387290056373178149697165038082454490547463752945914862278120194982035456840909761826898629053656833207649804812546173352267551346341235559362428887147407881073408374202436928141548305034615709938124943942246046543723874524037551053420582336970468436021315229601212161310520105634633123536089049041909975314152954700091235440930139464407564466498406061598893414526480767299835775776107145022924886347176962057080769766479162804377966448355925286956417553438696981024968109582759552572432737889573720421522571141599783056219175634869673010158126703265940584996894976548265578629517595674936952251468301258184962464301158651313236366349909473063513757724601360898982370810102622278148922969946381198197462124911464428513692116396672351669007400208054126320831514553188849921659165051119752355088088924541402172168761100095386221078909305799397718558006183637476846895367014834424035347026466922693067853198452901523238167001198416756518433943121511157802115113112522134601590704338389185850678255323380528092230501785748571091337806450742372539975438171789452012067647067101914681918101664398214895258436239601863066968572347144818939871172813485269815964140290083681767545952810712793800503872233311325291006578955981879088665786646650559198414923902208689911194171544675315325797767779774336786491056597295317636418838844670705984811682602667076888355621040631290361422258395783350061056215361500083161681580518655845354436577308689583737819740518557685953498308319895607649421032649898410852795004448382068640763344899079488527146534340694128958027876266307986702083675758765860930897158340040403026529758787280956072933603551271423776070851390066764836784365969573888686199034999309501971064209705860754488645770102959374671393905914482348275387862740102012453750643930481842061202808175918704883872012933801062542259635117540895836152853231327088801034367990580703771407325334375584319062681558747046633374840057625664146483595476765649657234747551511716654753416824497169333768588751952330696200937054930283262171017825872359276840048532315778198807473319432692395660126411301799516912537703865523879095364236066087598209709095232116558521851206927539429150296084668836676196478535690487795714721292188166996946875555820078641716532623390028683438800307773883096879123095879163867898568032371121084279879959661907793394870700831342824873432477326211836869913230613095816039833009278382736514713530590706427771830149574531756904234812843966638035653227922016530394754350275995022351099583718647145730322783905832138086770624389034146780324162603289956849467951908018823677766596403553614197615229582258442511090444801139159564384428764281562709125689294873641572568294359466912874806792303151351117271582844599849479772148599574388148115049727077349475493820925323613895360563844538593125613993303603332224047133748721625766541338130693408522549885886716418311138633400711482730986723721696782034864428287529572124447319194543070219689402458873549454411833352779451466406119938937191545073546578866242258377718358922148441639627412404837830943757660274500685880214677926447018886848504633560581635515902001267759852942377870281398731359181531765444198724957573174035869747785738893090291676411549859434399514252547563486438949941377957334453831331682120012260554826725276512470143530475691259828037682555607549632165206496925620272344595984023061609210490689984628611089948907698949018626356235533935983806261555008691488357966847149821950410300360783229312999008614714772157307156700811629989738070781492484632743055992306445589694464900451364201616356955674901055101957284874625777931432085192284531417419655121851520355207206863236708142136715590936261255986665176856133131823700458561055588719101542653758871269422578828458140004952329306005545686483922545294244592755130477653951832215850938929110661105233696478777675429423337027367256340241496778450998680288912665749787611054340655231944396268036628418183807888793863502827160538533679549772126799767926293398873940429585144136879333934228566099284417805542826857190706032511656051813122571862607457446781321140875408584077967694568919872061937918638541094213093799667951425087188924728665070535145177478484861899386652857255765563964247024287115893443510721887009915926407960600856707938577622250979022963910322051801075693561987924370712826196345559593226889876709773139719377254188907053390385132018224554299858862498668541467694886464580250991138528234389878692401028876787372758677299223652959023917715387468849356606727200504526736754507229200520283761889786139962892540297852507947556846006891704915132624265267164019824024863105915325723298007243738142631603748721640868103672041549381629966604749029260557874401549244909883575318768464798619850432476288257839828557484519278144135038849113080763551785942355271406790760838816965545057119352761932282822841524421823232907556602768289177512859530886974648388755152905704761367904892538769123234142007531768225176238110615268508852496374440852365426710613442764577011680366568556796534288875300446002160250622790865551516910809851011822011656349997103399374169203222429515098400574044828124614136612301498795905010735778812321354786819148597459475159771234208429641892176280939032044415115160741875598430543715810089637131025638963757755711014363793623992551564264482032608611505717585006846611569688855405833390681381822585495733718740496222171330159529730023330309515735194030789913159822494426166013204913281035828921521778844529441310311518125675073900535306443670234381089504207824566240455902572266912192861370566829172801338930834622235452462694391526155305558328254520308380184125561690757050857652089233715103569022079836480361221207179905500194406066221703100600179678097756305067150952360810291853473681208536298329415513237302901862004022353546257796455417990547899402556049209480489101209221344037101442534451317428653427787640226031102339954992749117825589899191579148356502200837256528603892108368747474704913005214043628101970663053801292117020702577151397764906353013206794316154129343530603174601085540031141582920913623016110502846563241848003157194879779367427300471871838048102017895926310424471234587952258388113190603612291947158440995889925503414195169285972771360460383538273476985376893317985594156908201946218858130614458241012930266552470353167438373547924243705788772195948808039975203461531097844092877213333280333263651060564925358300316984240020186704506831195046455718072242843283018544719469215988456688158974801368567841103079612426453704106559428091636604191731799695715281786408897127058725767339975634339555666872269768031060930774664945362808413264332649074294526034909200900871811402788625800100710867718208345036403818158987936718611870116214189298537430639278657668437132957742109608462404101504942355834255925268704311198465979242719874921976994739091620870759176367009008013599675303291825220081553213870134810128836817817922795293861118113504981589096151213094368400390479733011586317950052297478562587782483287460183054877351176949746170215607610616996426334949336766279559194778121692037898083114367805580361942906348435751072275745554501774873071619838141178967188343071666506212335539115848142130410704392982519707143684416197620778239008458955772714053124278553522138682919865716222072878290769608984366550494836332638385022605763923915975421532345122658924147242393372137628229475811070844579633653027140627986697489349705010398766098628304519489563263905853950484301353056154820809226639853568064592559681842541953962791223435145413808454432853944020787074184213276227553074851525054224994623939712737179135446093736077958056378356409575642104865007482410073456201442893705962708318007006418341427131348059121407441693820736939577959562081232126141688291619266241172004174163878387215511231967508777180559006040680038137513079890184720113173874915912637574148323787741971352793762160620430537357610181434235510999876602339476044339328028196934580280801483779297070995825818053391992599422053237243884653117777955351258604127400091348636675410642035266363753371606061306135162086164712960284940393408373534284736050487163650627167564428331967263522308808851305989006034424930848537015831380809496318481418233255734706167871447782772948606533179792383117037731177673363296692376649959969026846360472494341818112470446888681401212679175970037776612876360246249454895277894350266847776350617218281449380107261620657739263358127342167245673614008011466511358431474988808982867400453527261321869739599226838418817309497377080484090718905439125749590517081807212024936672250234588968601298220597977177009436381421183599743867956230026286390429398783373014010549503009430035013285149814897616519632546645490394704989764616197252510198060973702841295040412115190280735885937428668387947691848603188748930610213257621096799273449823134941413288261488203298577085371802867971320344506660479842565125060131037858829413656086585373759083816898737464072457921521393639914001377895969360118570267253905215392373183358259743056767270966104075353277345142576468606359624617607331497283112078476470349271905022196495169487863847705382646856214399716251474392586802343481069736476697734838594077572213404722722734753097027048986021997449930281625308293397768706202955064529830576668660640818173610523039091139152287361343592392850329810978347214796619065729947259900655168502057553292205606176887339839956544890458634306635039791775874712933126252936602371433044139790281436655828094627948733314964310389933511877818846125979253078935531886176752973609230907508173327828123024361885914194522983865042201050598285771186362964110558286261385295068131404322539101548928062770008842865800213670286595494712430931095572959928950018973215708491978942846142886980895972501855647764614539925802279134015564106599615239367215171039406905541767760384006577463271109826198601855366128825169224560192399406276809375442432219268926161281635324128687018357759599552513067264438682980987354777493178627843780088006346160355892646073652266440761301515494185331686765487942210530700625185163663629435014774800255424933074665168498855366183820795927015818729307657464867818868361898041637713357264136770481231547709579834944837278816189029489707206481380404236769970462976468525581793918990406134842883042019129114551913919952226965173959975069231244760284539834961470666457664890515397057623742669532335532282899132964177955010791603582131098334219309825739875045870757933546880486712388439743008114168617031964815602257023838551677813348326077686972382946020113116106939981196430008766188116697686647898953709429783802026100101393624335062535880044071585491064250992140298102791946278874428299441723949472562069860179907062410126016522267470121147677071648856298892386774549198441436292530289900841378703666743616920183774140823615308271433251026564344646276194384030647010588614995899209343887780896079954403893807525677209998832930226573047198573240661945779131965946916682677852563884537768892673778079267721812015251474655212103013214049077104257776065556752750070322520848920724766718644565377660294330611372517395054884004173828778498346728907344922200598695088916558253558123264232014909386530393124619889369694502677443637097345176157644200547417935960321151108464159391302938336613438995424687550530078380007816038281401291136473972247399368195553155395248381576225837492396272870992699953111672891506930458462000277684216043423683963085253631732019396637991303560259499718515965965288968970997267214576616861062390302820842758769588857474580889797907998854869958972124830925009589334570090924028276392292978870813581170495506616787916387237064250839656824336250693741826577648607587966467379961494075940123659286344453201117657680356452607635730151209349526897426773225414575172147148383169452096700735347055008261758950316780571721445916480081982985584077750858013271298432753238512209315559938273717420449581768245567647455715538603917271195733507907194780941759310912482739684544330892262941210349981563400079691742907320086844724085191089936318295540313314373342454546364052712648265181460476944299649480100268271730306004838265109276564954656061942447682719204625868747799268504512888906792624830848927297351203483553193597695941686695426370480718391843820644625329858969815005205931650876369325726084399466050200245101530398995991267160468979620140926141481000031711318585360717205026134102801701578423963712959229303989755826348497740244275640287065686983969500571806809763559682783113162810474761614357840303730117642765930450917380386801264646255800824836446795136675116340731263400698950489716381168301914899909210214908502189042595593431290830273218477560251600532022210329959337156227912209278577094698732183643832211527232307006281694224103249473813869693083927764935461574305069022824070892647831429034489683116379662750423742874021662261080672160024251719045076278941549577860134408573887472529159967670025711544214273829733800612521887646255445591162141078348344441848815634678834068540189352023034196866121713446961401346825205023992995430228134117211055911945278953471001108384815784327913845899774898792986951078743843270816377788515588757036675447832182264587177579577098311555489515545996105555838275013454298856738609319656341088877956414225160876285434465224467068862768902706198699003497395226662667678220393479548664713579140593528607277662653390944882399559654381651651050271809186047249636482963205957353765622379110629083381964434607061062677857497392299547921659275305443640475255281527310949768357103919822500146028343052201116662842160917682619163168666779394132011584767718163974413888656693368668172750225769493675971728413600868510355705315319959096134569055881619835198426083975869012507146810883137262337299731765098621555658388447575344596573333729640395094935793967642940872367150209838525851341604473478324537849223738500184024637103624629382385748052358977789484664244274692959235555104985556557623005679600133352916912237782391485483118329407333014969302113586847188340814154192044166008611568852662619845316645510653909124469203092230036025298787095569859829985445871506034571593653529416345813116916158659320910453349919220938885885742139993311740685500754476764223739864279071453424997883356246750215841725290908366372082777770271974596590141320858251023269665812067143798316502533898694106164030447718737323903614565060043300701489736522908003974063754310655000370608535468339184165006057414542488299186527110164304934821353803996095450973924163959694505642996917658924424444573504852490283575920911429410986186738721325206685564560951298144427173525393737812426651536580290141100124744856513457046329163640344157703319850898413179154035527046856536304266700799898306025619178870167571522026662925539385137075666722409582122930528119966850473121790557143955446133474669296653121727915439110198989010977676323457726803784276988734570323109863404847324067919941311130276233374551514256136684897408067712326820033948089052602219322959991634055841609103401992395937199067597997701029363060855495030525632374743895384214048984540249368242957485568398874718540568666352545050866609250142483562681728671733406645333919832516844099166954256965408830876722755921579263098338124347052126331763787159371066322641120846275836082334582743385234559771027897510191196435411670126775971797851157043089417286817324784815440260647866819700656851686273744425060281772758572308080855486709652815929933471970197140571248789772471989195854552599861892739034704313441433790855259988775704978449221699651020470397647607968473204514223748989015476530558484077857092401007488562480054022132607114649058202950596806170393707967198858628733747516294175981643695453205890569604475035837858152701017512464687553319009508014613654149322774506252663921685535128613975663367454848485922113570760019115858977974797010601981394704807824829286804924631990400526578580084981730769463204904070897534589582451953836019211829312021922446845639503205997084851476233239190183502941475809102619316687883335781985199076485817441421758157259089627238599681142912185150787975076142009132228248999613886094670831248746262011314499729669987288206970372924128936868887051909341193586119560533201341134038138877124965041639147381841952351877822734624087715902030462341405619582319463983833886059779425426526523569767476869384624111051236020088878521124652435077276741684221306077480395430045991676315511910151305349841962914233474829801720949567386161891796708769216855272961122794009042783404098517972978553745309565169369348537862925462020615355974168032013828857505663935120438432934118879603478524891767222689842072311768630631072472359933609836212951532800271055391648883943237491902302035268375101004194628337040183954151346284664243354623368741329918177189894198718616183619807849272336516745386636482422485490118427830712444704056038643932553459440937050397281159880541540539113471550146631930009114712848737622096693379064094339184802524032234038326655425745011160970597646873091655788034219009284419177851570012577944137230307392464413498347939441624908713900369938651079070365169187480114698475077363491943712435807442337848866639874529910483935131595126943407559674034421643584214035088174683748429750041828194263090631036708840853390648619966327683304942105181723876129487677891008239833572287856962932486872332689134694336188376417239212868934172523018927380743551171010590118673303283325577098510003541014010781927448635617723490780916366207619948159049863159209170851897824225350588070564572749047283457647672090884311188055430163708795345972849279001452896555316116670124034503870119539971609292647737210696859564035576809164557564949306937231851702665026398371409153304417145606402707519859585960468015731351792693555318499687082404507242262993786361731416446574410176365390458643403478876958151659373577293610543208335177563632068001221212973362563735282159175913748359916807272346104111074834515803086431285773573580944343540725767221743898122356609716313054518743460408904015366539061231028781535507308217513523603374721699015278668733895020655619863656446117485425564600157503014674117238091007532024691234448678731279272574420711287499350475282160612929498590560833915057012951119396650024502282233577301423713677511331794766761119409225734405506898050468640456096415953053911786675693248371503134889670602875603806939205485154430254903364396812301457512273424414079077031618031814816283392339186184745545754548895872093883958413905838070074768281983320642237364312643885409612259544701698245748057045580430569537142165781225018028462592941981247925337667627427587115736587094169360644028864750379450801188226243363554942111841093066623708638996442773150742358212502603106871161978771917227074892671071516330226717513388646290731812640718008259023921476936524257284097116996515956295843913672439870528334931457408961706978813248008256138931401316719760849128744022547305388657249853540935137439473830443487770633739219673416431707195874607274139040921487965311749798095241422627382903081961637118107178513543918956998508334363986679306111862101339164107949444583250938128681057128792227499751422776171833580513484640693316096609788164009301837012339527410500164326609430917098535566235156653869261458173544591313549561829994309355289412110701124994143162183396885699889196229078198622647877851274498520395093106182249443905645172618982630815379985477937552727285413431615612016872668507722583016731144028631774330758573142647584319398364149586438334762139875494096081325413124848163122412802329682754895748641713343987906388593548278473246124455215481801444071846509930802639175352003844809877632896365404200337020625071484544509899723619064545491396249637639278547251462144389368053751271065524441691065002551238265736258117087211423676185744553368082511547281711145816749937385297180373959724836228393038648826259372198733627215271477066012460227839585677601669370604282721808780178322443035074651316279129405000640747223030651009586059369811164391912443939333926366586348800948390488029892872572851855912321725169556954146573935480247049187834668314405960941572534954067571946510654822072346748735416878569882753418111444908758017814708040132607461334041516251216932210920175867485537227797964152209921948122816038801105560612773760121400859241454830992465767283419940519941860893848023400762130154557130083861510614070115246514875291460288265538848328160009172526383426064432611443463239651873842273110616295426235282926836108183535967906341853438943945806700293198169519492482228363150298065313794100873834576622665235770270707761072881125934078425508237913231771969882495558574634068481360095180486707791644725212709832878331235325485441873473278440344302478845903664105169905639592702208938432925082833073240511415199028311849048681140291143515371047570701021409845800897495511712156196562795393513505726017151691944689087454679756415604166705965039350921147519867139481326618452670415577788305656485758720365537625374465804667312557628501009793919129476732973991534407107278604677030766175467190228191522439407362118781784675379040983567387222445076144130608615019458612169718000673080627168274267105932719308680467280768475120512178874785838200738518002709867581155400733576470240260787611616417153811961290851129026977457991513988419777647450569921191706357834089240532755505540009955762406276268962513945465969387192684163556258978537224816014393489203535024473142343520583355224258624457223126738636677881154092336507746542319312754235845260850556843024784626311833410529024869356956228122438953967047427882530767276827103911723513145367946497003791919786203189382690868388270336266874945006401764127799380755902192342094110292604183987732449726234128405495699716357712600159771063510904269187480949643039733557231468991057363045685083672478571145066144945586529481936397267891431172946950677759333881628047769633054557551043831702401402815935546128760312257915547273802509871594064444942184407787370874138677554765335535343379801429388547767420931757376957519028929535719064261129418971406999764564408845364202573225836366275219515502505730499551251462240835818807430523760281899811118624183624895320039516697437821887854996117529373698262826205733520262958733141421481663823807751029346035908415062312622094076896971689323836813572555862296146609825958853081385663504070426712738480683580568141037809032410830976669764491916732153658786707055071102568667171878308383425850017554757219621935925658024637863693281439152000109696178741350350278239507379796761038192817960713747161628939958540872915959509542952494384557181936118049370543496163625000476360905058342971790076925406172374719468174227252479858918643049399245051496145624428548612470421319909520629004120295429047395251975282967844575285950078870958577177787267521824490181037207924073151640188413862989480068755585746156355415044092572632579586361070557278340335627669498170837209775053584318145602536327425303207284202695202306298104897616929954421270567399356355672248300084665776487264812171596165628470707532344147453565080184802259768065868817117772158651068852419782146596139931264465930867715638716637123804497000317606275669954655700355960965875673053923053872200084038332283430892874886434688509697942434600806401204576654990108266560101298347780646016456627281929110512607442600668202443648904099277849464418983452138063747745213220483480539724513349470691065171822164435178390682402637649687517827266789788628431936009113017063886774529584084061489097448160245698561849149565122483890143661586051980836117871210987988231500250217760649544236025452314331797322813924014343294047777462466713709460522739321136560113567320999798776892458080330234541717463856089943501673146090619228779527757465528298904339545169039736887126191772142577097670323282558900444915054375767098909405411228811270169928430074814484874487326569652088241568282132376559541875061544214519145766145660720489421964012323953197802823956893867802054482366102173084010493776523456124058709580179479754186416799157270622950845474365645489343988170444372392359919009512441640660413336209228421739547476319355775818780108210809779797856241433494488291959076838286712490513490237582758471997284639010116902429503715968735058216445156256366784329160275534518909232843319983362228139504230932464622663738371611096332977060991184432618642439084936580526183882539444908997398071098222305425326010473173982816065905379308425650240048782263939856206968353593248912811344460498292800397590524882995662124103293076720045112081458366051978174224233001297193798901839178506733536552866487918223642005050023734275186921048869385101159205869022736272501716698765261962485726215927654183720717176292459321692876173147392908186801352591818135026714529688998329343446551755348095990067982498537789478678877606113962976173811490721213890228708726484584446571733614956178016209105326876644521764725117015897445717674273741529401118519860189188122192550663500718663552188248689251887921211407559103561748290476356976166877485532400529371647011558595202139885206250339246574787312246306927793877740196371386761118657510013586692491406853958797647646998710225620682796796406070673203054854206876120534567963906097708175617895734908486884963725856719102342166775603998462055355180531640341936870432790170115938658685443287493614628791453216437584131405578210970971189476116597577301848600966786830534156271898828041694402651533604252483428089673793348945206848036380499028650190084217573684930676573100473685670856929040661502558987143641005898494682191503254392177882201454019152835508898793660830742668186991688352782051281434798646559020646809304751326719898631451870036762376598906324921251621352624977565451772426156559934571251643245784561919866619957368098441836403598034625645116758451696481523844637143861733487564693556962667310178577615988090364193325468580218090787824368550685374484551437533975901569384318382302058412283739689781064651286547911506509663040177510278342637890242663637613777142518272667476661464282594891245594515565202156588217563850367575040999424431441228186775943073315754368222792617871496292963786943770070854798356344146909026198503997818496193562268236834166772848749213070194583378421073992896707859171678074429135562519725956775216719383464682450086543388283784820541122233390356169000548326209919686894635527664641290365432502089353417649965397682396413264682701387406399807353754381773831888789599327291587094651183642312450538491234519110714739111215937803278420881663171837465423195904853995352458996629407386710079850754933855783894932566545487077334852938460878410329228638482112037391031480567886449268009446144282216084130329710275743076749084347364056535416921131538915737664628368183984140312440252766651135867067074656323040593582384565215768096741089115926738324946316847339592723522553762176195820317577235780865717318239960488005362291475751900468550290059304249010294843149248930305146652336642212651782474747075987154766447349641045267647068081490285615059145170509797058063400012134100256411937621510778221365132908742950996773221142557942780731897410840065479017444730714931563011540553762700580663662540766688295081048001523615804581427416949008326060360025527837949040066779855589597463569252529240010069571952475056048995308681122002779632890282373426815975861216824493550142090209965834858774589033439511001764153846375775142765876193798376090061869126536593129026240853687828071628729820116320016735615961410761991747201879805982414007300228447246583447104035122574739081533662223608592508308292559985199595959343762325422557603987115307167646123629895386656634474920155593489082582788813379070156563243412943656409603019056447129913361987576766735681882413555417822261760231181138763358234368488750325017697339473390402070781347867279703255688529530667162189439742208155276704958809494224411677625383083343411152994242086084661957191334238231208877415295655896709457962584261064309940414322457918735446578386906617625985785339545713872669738504421929033816915333087097989622081064375056663558011165327134590840544959392797960553737317530826801940755984492225101725885172168637911904117595967175964162527212546757257957315328122364169085577153541880005629602520862442116446777785726464241957262978487931702122676496810342279076089876609815250756920504674281210360099296059782043312770931238634563573695729538894586049524630562619052199245002680958581528641721924797947110113310327710511493824320286379592906167889394024922101485075214426267337213908244577492600681930992423573411620717304176771588956897235020970049975730478329832788009142374875928408551591944991887790556777818935784490520762641513402579101281524053214169847015547575232611193885064150298668087371500358582918180789368514068092848959725689601581955508311059992650555800907537925551028010180284748212854513325995358457266374879795654448648534218643990875230798215829266836884115036608782170601972420392777843780667255183622086577423149766599746767996925678080705307368856805940762165979787749565095652662382942088297887457328095945053663013716777126939942102778192021473229180646879962436874853971046943537486416952994778715308127067134215651470192877867386595807787091700819505475767069872876750154900313966268153804889997217123369095907939832043319001869345504322027432141211081070503916564282241827239734002563285068517688747281651047811914202855846315016563864255219366719292257313536493884558113532574197794342843012674984440199251388782890472788823828166956393329203604717582823873024903180403486682232468220919644230351181011069406045172481936712513215352795472980118967059114176713749504509859889533563730445137939015989343625713071044651839027424870038490662761084694789701881207358590154711894989220966894377837428870540293565247801314947699594894511828317454134649019566487463058442161338016085173087112163092960761872963311692595720667522218016979070194393783416366132811727465933869775420035538250585442624950988257172463713140301714692377948002081525854639504141124055123946421427072467051347251529683295729094856177383087469919518302655220987479848146159838549663584630778700391185225458084963715183703457583810327387716340546789040624545429884009553637967536514136439348801679048295519571157329502366327925264545530122752535516463771089110629457026735078248717629235847973953340242343744298611900001319051549213588517250439726451527478819756194756077538696684077721161973476507293184296439089197620483899078194395433022659612908040812839618055308209741557920240063661919434121681080885426161944632887283594150407887266340077968047359973097304604123015777817150696486359723813920665746571513091251598840478034764513449737648331644144736227131750790333084369706669558909204668371891228677712622642062982621716652178007014119850709928822013878323045076133749268193760096607499713838716222203568683572447028300087670110856100746871831683452320589673705552903303306046234531970272056661624238708239438663161287957023826981849043913089244864307204674510193624238675678464582037226500609818120176303911661722041902582201192470384572115737997329305445095535306977654512772713089556702934918081022100146361615284659913678520738283192037053883606113363406638856714868225267655294198504308360722127022207733369912980245769263600448756316413136482445886273873430068580514956008054066684366090136268204689004045949151628893900162626282542536337361795252351793371465149469310920798326449944546141034615698340011672145787788550290158296651479798202041486357961575786412230147292517109148836033922816502258456252453702279657688895060619034302650732465279633131566662630294866096982832981267594734630297326612725952613117275610157040044613170295007187694815516936353293885508893291364646849897522778885124289862836197999311125092937174664388416259844463600232299158234551742606049988483149137377080186593418028620064172195198595851784400084117663040326474035321801122766597447789019829332294549952393228996488580783658123420543214792022890714337906113680758058687229755765045029200148918218517920460089444211083787816822745715873808607917244010039827105998203070758316711183445771021201640983379726647369522193905748019494461109070999559441798918109787043711435035725095215020873267075993640552597124378422135978499066082403269243146712061862182234277493019783963214699953063577956180768498526590976009313380685091057077337518846268912009645395056778020252477799754584179581381009841609860888232333637622167731321257942220220862295175216525683890732528128130403585337686754593393375563101681187866808464518620790174773895334630312253221028536455739593226157232176572858374810579050234909259263431672042429587938510729771019503608385901496040030642596083268741195528394187103133497091728076498088026010548340740474691933453756476540945187106443805163596470218370003332266857431612220489319445770605781082501026424015759053670317977926086815759061102938633044432280850044883647480527837010483029829051602110594638747225876018204866334506587280119430730310284680913707681090489797961437734216391344891051832336680757426859854880963835988354949795769754457737167394449857968285626114164765601560654136773486096453597379064630224122276258652284872169993375661547262267237071009150529453505908196348957047004785528613399776639106167795017440073799995823593663995287853787779652127842975340315302804613666823875358842721194019084950747990609591563840245396326875352586642901855110607010178929186810551686579490987935123129668820943413668435213362625195493540965371707109795810039115782678423181519383612981317246787158002475736927664492774971540150067030565916293719886037141969017625963205988748110993139738941814766847021976328872508072567607491326434708707553013425495036980330622555473139334231717490622394138208174037361837650464319343913713605820985123142290949954678065593846524806365947097910735954200116522097421471229099779084098801091187317618285794880349844250194429817563406045126310995649436724839245449432866987973085268870805074763126508184349425565545339991635292056471260531685749336261068536572726694031542451347739210478561120810285935308125503302654085142280359399355123677581441003364212685841498474977155871732912261315795421322278820280129997170331484043399691956786322890971281288989078915505487772711904939168490093970178733126460286606858243386114058161247423409467895129210668680648615500551465418347346886765417168299122210197180007077286981105207419946843835275278680233082833161204629225877794144940489948774817612684128130346186689107398121591838559347048002966513548089244359777320945207804541494810948710668129589098727983823872269042216561173813685189845196051654989303887839988019168031478304469161211109511163337087261039329110668510335765909807960266942671163771848889241400527684488103629058979474146857874881409280972257089475707057690242121705657574216691421644546441375157618169973529736522134408470146747655570374913406854845681185509047076315325929604204597034416730005843945707127741997378122751955740213710993399938331598642122644051750337202293623205452808694320082365614621123265159916205989768825458042467721922450934610059732697904974092105105953431647346196926722592717721819354124591814419741407440570489841497524103674477345892447093950661023805269881520291357380533746847097367781154759040741931115083221256983444810973058101781344515477286514209236183009273941644375437728256018575263183403893815095814157076482901638002302191653870780918064672457022730911827901222340519406132143214531756914298992103893773315857478386245765431492708356230937449825809564968279504457431447300528475542635615208834159194044574794536316134855373261339465366289239170853047016076640722773102760332549231689506033181793116047805959742509196159999744604562804678170332000795504710561019093983847822139236101649111064971748413010126560433986667227939741644840697438488817369902043617905146663181679825896319841834219549417466423022187045942196713520980401953855654989805926196118055158775821309609940543543086364405365638078331092395008819147159817982734128728278627180267645774430617409977701320705472001703121478588582571441168288940925590143906937824171785314403188559987899808790342954064062385685672127188557670919941769442442063508459450359255614399568330064076450931658159929572625488246346386714811226781779759725286660985903602653143550592030235173518884989479934110650116679265217011406506146970482519572945734627824477948513747822312953645448672483358455334780385478465109630469586751964150593543894500693760017007500144238451040600957533067076628515302854405786651040205652572523767010734223720780396140950062781264465539852008945064445449318606734964410732756310179415632264844966058230409481513904799684284375940500354277932651320040266807941188613787227845992447602090931410175292694123484094013381403383845982419802793789509344484319281832409908684504063918838739516833978603418841395688905244545739107545529788359493001604802822733747328974061742987278083541354937502166728116413784748912720925115575448538588636468069395562473201363813465222616224981821080307743728893667155464722544773299817749079541145363249531809919897255153156036975098801432771909993137391019949486266302242999073804415535073739067544205822329546526143384201976917987196941847948378239748468588004843152807807313108554484290996721539330683022744341900989357642208594279212195676491601267231535712539988898490538406759060412360871367217749688149405168098167372939777273241189703768956185622838212303991103678924256108601167087079244151787486320171706034646128132471288027516364863948837643333267687367427688640609819539330396406260660021180042816174410114984972130894641367940449394605190468353558493965489374811797463480475190185770797879293891602882302569018390861001677314691553775749981512987550416263972177882297960836675231339373558710817126580449909545321302548679437034635293599241799849130206794018651458485645641063564414898491508276672458013989165760973575511895352964166469473881223726531332917922676751085622941941606095114786656925314463815270098823343957127736474909328669186836505552237641846364848527562574600468337843954025468449557685003780857073091131130267197507260389069708433426759055555045686064575466677341194618964811130799401457973895719458504901987642045702088893116647283846973005838853832365475153143741028104064869814466983421839759051398333853032674557541369201164566374237238442482051323595330130141790465854301860318105529785515672222541920237892046875341683214972346828843858017504275388535969254254422410079129248969027309793630047735965712285887637946998028588676112784007582454418895721708352662289227074107457663451026785005301947374019323124997276505091955738544896412382663008885850089475935319439854163720616849188508134042705434140340726954149026322580638199081766741246485534834756491793367314930034779576408898366128615217311599418010126363814135079948643684494780799500161020098388093236829207350452658868026129115523734210862467327066774009439469316340972733562756666256023738824854263328285548831577413977125339994143498079724848349765720988526528103629377796057436721885028741746694245968527404065586253410040177601475355496690541632993850127152687467643378063954391178735571251209271528594939630492389749153427518491266219344770228448186912419899821615098397859727371530197215441665271753903036354808681207239101245929319586916360776072773443285908043640482895062479456293854184891791175575163439001278867537720944463451805047154458501141559403893102957084771942187245126139390107411080962221699740008371875984885176104489511641671596079064677743544277612986582908276514963168799673722436771523345619048380539367066078168873672084377684266829781548764382723068484505889495905517314009428883233462662276112843676958457332060578631267526049758821497988920788223109664830913726653979605523905824688967924964162567692094279155575627327114975945348178545797044181938692607492306448827347777121320308616591080779242708959078316242317676555154972790329238858163618722858917714624386033620208374976780539127091711125932780492449833312301870378144523598551067403954464394961306655546579881259929643216860933321461705156349158998173280622649751168005442150058291701686050469984162266082528786309490907584571266253334254535402598246896148839762788603745535753941647578876858968299796042344235190709732127510442166589561054697026723337170152889726499708060691153969446330880406340903024601350667018906542812451620245091366305679738557761507622861178578719142487889851891270806588122532281347424783764276142525201288487772256120510676247804031679314268025678395948827056685263523845111610766822341059281192728372096497870864022122316551581325648418465470563676806849669106820651004354615597759309771939254494723333512852987712311235351428392979794493654491772291022676661363066781311520727236702116093201557689181796506777061376954141471532458158270812989860440132321829707985654512668256620258672465533785290312196279966093973428214862218949709858797502863885935206287382789293565682463780004166338548383656539519850277445640098551059020950581352939434387004552979645321422697049774950343896544933747853326569249081261263702472542735343562246287847635929230398849746303876991515982847630930301944578446559507885752684961715010710532800729526488114270824250916815351102605637504176952525271132637267994670224760867769399917667703018228603268324963046029463919540852043113309055010861952400109982595305304985821769450505195567976271608907550321557729479345182433142553019286635442953573721025110827553630437739393811016843975596628387422578331168762908229694741184269366859194077382178094356668194128462974375622723954562547026537502916482789644417281665876531025751269305751136527233737205077146518493303984278251484483610106238709025350937959259870731086545648678059729217069982679902841003687908616096638956879065577585160177275846863027761634509865539125644367298090810392918065503373050585502254985884189152682898219592748528944489120046312220024004360912277319920336595801716456822742503981861403081629710247512552521612050859862435255916023698616288826140363357798393340709418165403956278902340433931809392728996339282377425871562271333486489299055597105100332015030103329102796173967811490644495579249247792386676195783234337370485069608661994459498993366375719529845738347268696861235916345736983215412015024938854215778543310913876655814027032769881457409214487719449578043674233386930150734371623390103327099966227246381179302494897490437790152548749271068470190827038767333688020390968508888928251897203073309389154901814237690917369975291610156291187238194777168724553933867180575272220785402463579817363868919256233310011834504340467791988746359361002994475821139044551149303108184076031411111145129737838903085687603347447003841022473163281479148668146243381139650405355652463511107056292843439894456888644685325118035198415713130174676768738947692508679233588928856909993390075346201136742020177903644502118823985061913949123057113299940524905100830895895209815878282764310681019123640267674709300792723496261790101809235808116324476676374268245440114875110988917635509471594299930147268792998420554840607706666680431459315557979111577618663888367190949819962475680995754438005272669099280003000514398776377683040369657088452514589068857355000054631540340177153816789972063706872678079154718376552369887449771685255773577286380988643677670883627495178784704174751457220048956423341081766139897437595194133194973876054256494470428355170070511868812316975035361736321658631503718505472676566283772994380790072296177263377241592633402394743639088863185722993833255436627927590321335785152840018573987021571133207268857900209819536388429057409005562605527544179690799887712177170713473497103482682720436820570387076338285793762938816302779931691449608687759116148755510949733438815405735074507339329620744903293880378660869774085361703755631815222289344943407024007608886412605061448313530978282248538936704554643177795942556753245190425333833819357333084980667599562854028809942232024400871331609105702317170988865766828393397034277501206994528547692678884786730719634656104336656126315036238825830027609597244001108782975404006475783555559137598914624551769698659394554085850724989904392894123739201654441706487877868151039881280245620314113254210001814550647956307740098435808256991007804703576475620735710118058856751776604063341878370083871734722369327254049761008019750567462222686299063837052699000393438701536948674393590600662492686216707371817527922161790005686450742093682947009276858006035827143289169188113210083676873843705936945651832892612146813013057327363249338446748889745793700780540765935589907914296567814819750773744247690853481176029648011974112316071453390589305594746110762135587196695982615317969355481498327134147710260867783279531589402010530751173195479726616895849080107549256508327922067739013316559622912767638311332702404078444797029585594116584720305868237597823304660498655638932065603771037275369437586382408938668996227784275526363565233762392545304071091879148578826744101756842455801055838285845412549006551433391901913599863413608082367307437722473665189564221998194951197520678003191915567281574135464901700261661063753408393394672705123124235952467500844076514224062205156808168813236161677517169585154445520302610209781057019518070649917392448797134234596790473223691793000643601625363197077909248822358123971099914993039862181013633913499975748587852059902422866718657122906180642988231199741750612015450707684622304524742932221152192732692329245547417796210526021860136974833051504942456579270266523227186774196654444307290745192002587305004523476081439844418365637562237320157979261996157179273884837153404537379248503518662627050526840171836431095910782983991835305928745430891055320003006332671012026847872055083096090041862507819111526884829811233237641561603282038429874328551446391909579909691892069686931803712976410463467369984751034122569520177713513896410089954744036195927473353722192877303689309004428872871086641812132395970522872033939920103100484837532335611070710026298956504018857046653675986931151905634603481688458244301015069481222722003235854080536153371831032532711773900352782046943759178023066589839899262437309692218638072674367888243878469645738350978347302386360150822874688865967839917631015024758388324788292619493745430425932043450969165252144374820132717802072357921438927419310970997346682161640540942153541155867793166957738568627895798508789885924943413877143475771842535772711969300075141231020747641347557685382801413538747833461411120582732350693456842284272009598359677737295764532062725267490598535740265625225172487252915119537451879646790777080876122710566002158325161964847436384660152336719802953808439482943903457780815703216795184681315004117189818963839499339349958948314434704379014506813196079857707098466556474417875078923361558998101538671550004691768292010375371700947503038674897236511204355070144272716037526247393301213898560825071502735320287897995306634852974652894975921859424191308020666221912973372246371622436716151190118279906388775631882660111705174465473593717478689076304854748251365938672322206550852644985684372197677502893835135818126722100564869553221821783863392099647170626956851871196601199429234685131358408799192131737484792242585559591598696897552119309589133836851946801775799081198884949577584510968919325953784327238005016927864168009780608955920516419127315039661262108201029871481242222542722012853425301783539516495551172344305126068998809882345622527755424199979781071006760092126722361062632401654589555191592453178346616312648555302417645835824537857955452212527645685143731933446300735363901966412210025902459104277854988745379670332533925387871036226288354348227912740162939757559871642656051063735112737878424004362836997032756721853845201654385650943488371523364911667282741080536523228905522677070801625235744948532146606282765039307608840553273666558647228047390029573085835480084594659213579784430441816925324017435982640695039934837750978035336920455816355567824193845570910338666525369210942377580711325257528764249150846199792820610021691197665798012141785043613175539188048969801764030363720945466630804642470077466471207089286558571706800391764049298923456840848852076637668165912628688587853945355311905458732642348298671190391745864069858029083103703824609802591439215801581824393072240779152052322816546466597250826901798622065458525628472150040386263047123217001300754929825367664474941748465337615954970839822131116948035228484719738016737977900015899130053126199565479653492374870235680946841719709136077575779307855819583293318164661156823591488916821034826396421220950000114361291431985585611987518662209132135004767147456674542954674267518032017709439511837058165884728164865987621493235188354554700862376795366339728628357861869363213434108720303639141073229699239675658058089696332197400092655367204284340796148557176308056784139727488403420164856296243790292346764403298946466113608491604718331445017025288443765306196074989723874000145222047541047220809682511020350346539257637110451411827445501990568124833549413581690486209393412206874195197065043445076793885794089937968530910006148583790810966063193466685932851660480804818419416543275977719138486731289379176251554437123569743782309530817266525444925975483537069384004849228078433313773805803535860871726147733780713858609086500786188473630407107875162667319750608549412252454233897488716848366790617494873081070841095275615151640315918408280930082717295899613397310791535313191908974655748509329111632893880932861527135999821075478037105584533692851246967725793609214921769344041551113613945118110102712860811246568136319919297938062370128370879709665653978170118214717197479646654099402820619849046141799528675751030411760943969610700909784963795381965012047489883033478670231014809929781228808881222950774122029477431259349558813697277597439468256583526925522143508840368598757378187983271776798065308975993183183150147212291828247332732690245978341667926334505699836793845301929573236322201933650151698462271031004352400360283479124616183453235178198870440297724911170078974640845265288665071705736989227395045062510815481391584645743200642428259139602832313845809214803505971561328878490969411474048470842352009286829490297497783912585205003874836397780901639699538481320856545709456688480478661237594877892237538764327413823588810563503001640764938746270779971064683231408443811257711245976230235089633843807774407928462323422176376398418200667584643638045773955609176522048387164480233961216816489569855673295861903311733015572069618184005446836048572238796126553830405009880940768536323374566964972108819759532620470239271232109161418918474467253920705185232852795364160742525446559024770732903937338616487459572278208573403329256452559529665794275723708290209447349917776095514450894572320789961124147375399387496588015920334722702330498543818066170610379103444018664463789745861241605236087589212064477961613015619338772766085110387915680573003311294393580028255148417247590208664501769370251668022030098873599464163730699912230573798807830343805637483161457424828645838680052363280964809108448096119267300354806597783586991753011479018389126962637833538681404062613305003868500071470220247562079621915424834270991107078235875753540372362549164255994000479252685832171388310836023081844657183631379436846336561116840351345770325151189039002708157151183835686189359143115895718346582476674865653308153927409161336877035874365594362896950753901835402764894001725134004311595350049919733838495952731557280097581323158932421464858387211962314273766080111347289725130518838813876906837871709000438391470433140032193090973875271126208305733402794866100294383024977450687478559549197715211465516037052675363845439094743448946976213054004914053110689017126425400028113415539069829262299196932129486226284052046028811464662122636438593921295356816022182155685390687133122588508711612586034555304407097994790973207619551285821246936926589474440585245408797984109150901651354464142004846686696351496605536304983028546214261920808050568052106050063698336825770554050825509486780253036741580903976601134401429427791945339984385481533689830799204743996801489226111738546078122776094064372998770836248850961942537960157677334807698277302311641426207731833344609863432503219065386217651095945855199312945643709843560205505787080689162317349635890315661912632466680557940211894405730690795809681314852443342650797104418483678598992496736410304839296548320970858560488099542554508198352393200583609406600138043666730794962322530601620316344462879760661760343504652549822928287284516360531414865670840180229204767586199479767046262281309005668760434186274949670356531117104117419424125639175004048645181065877005893247363134030328749549161980167479446645300645586258192303476053875931378835939881865903016855319665322629257577349676363816382087914255639768983393236117193641359203415705918495050295783916618522647709791546530329744036898451395906447593040958028432133624862213188394451986043473950356061282349484697383247229146330086298652014531673782575834164940636164039607738619591784177764393152331825410478259385852859834288602576232186296601928487363565747427818928707627469848315345485223655499770808045971653613012202265117773409267007767163642996305551139123954946959566881871869105476284018603057463124148851856375998396639375939263741292770702819349132180040690311455809076445972594628312937937178076323092679588608720193540412027359068341243799277102380312584472940905840469345695554612407170148501062263404276655103958224189175810960279378849807535715303034096254658817671626598155976198773445123999885039436762438066037112844891467591443181378692313674300572566502300184138669398281551437327944005919294971680464354339390806423170474825373867538483018904243068311115748935935668157050675250235375626369890617738379979343245672342438385027919357010954816315191697701879465056521040591425646898295284929524074972034702883611957395532422073702182781652560086129521490609702266824124580322982031544156920903425968495261996829804235347213098207623847778501774383038107300186782629770345172990017723399927644953421261746234778418031008642424079168271157785573324870252755372082079320575333467314711004927886739621165815658123773198708863258409488744071487872608266401939736256346172812092557890026563431745531814865023638242817059658947551018500727324789223963269863187959839463001742405394750241838112846163950958794238997279946613086206130948962702199869836259580772093777736794937340748117853845567553839890276735238518476618156818546089969833988662017518923044496288551943088109410533393274997068139391850259722251108737086231675686920477704904774747792704425156057542104277889640244712348135518721466906973105147233862621955034650472002562942597179553493166656505157161460353838397467585601936797222061967730925886884839015862111351897319171329298756509250255306837106159421863639555732952725685213336193410376370861651958435020649193567801589969087531843333479601804653292525234235833494528404843634515140062703845857472231277509836146129655554636504080381803009596066938244623832201608525573977589358448559032376947899716799589492178911343340393556855771401530107717680409101999006848621112231907423551101805872458933357325801589338506603694229077315264323140779770461485709583609276137292133027708912845871312201999988415130724540162082322752437911695904683112058715131464187057075276761167389377996103211522838405215105736407061832086845505605303635497284543061979016147021342833315719481026659165101945314983348220486763139118685318206478104316640078749922385164396036150420588071346060745097886628308247029855915713241061964531026952426450467575144191085760792943710236111646960386494894732443139227758873940969226642494502857259161246773315444078690830864863299077879965079502855841512499525688094956016358978895524797482741758772720517194591271660446121632035624031471538052832945791285484439672826851503228580929732629377407114236882261647125733171772884111163538284745903093030378169085107676239690985600813432105648421983876633119875795101876513060883727868024281806601182422464305164735074544731349784918713756159229561954889464630187995311759656825678938973330650884557713265163683502002493365798416074202371043826802564344469099928849058311221827266861290544497081049052116778194831315280887977178834834992377025965012778433340006642469803008048885558620448493776083607599981837451788079990549522056217927604226729888063912418975244776082631035227158080771343427819061052635372376662311921729379346055367903089699497104539371628919545413340211872898891340934548120083206322834786704425591066237311421199923832816484163896426846980475694901798352966438587507981636462030423987594628489470019487057298448062649750508758850731151653074258100475107211613716569604255285953710987766440639696500423746176899278602682877019656063670675118500491698710957201083175318646889765368368774780786077582860272326408663124918084372709336899243160071869071817819014982529092738953153120265501859459391925394345413156800913456867680146210490443317380618525697161888777778117168084944800249929259611747320311073947471911740249946322252757032785446772971425550506013053015273347317383794509450560488622459221484437988266920779634265914104684542920778230110454465313252399358283501593967685173805035770928011281741076689603421017584953723365325057488416948112542503247447534050245613337482321202903593052211423124576284686408142036838640730155122833630015605049902411663028471753487410701885639715832844949814665670110184667136121783606655114796015563053409015506630893912518639849313841202401572114290603247662218723079656241170710428815746463013850640777681403990514165599085397764095259274699506190602444810284652927953363566470026241232723721332841191527396399698200111045558341400102396316625639393629198431149297978151340610555443382729388518969862338553392800078318906913576096820629706638051015884398830351998615256958423184685124476763135620974788320448365591116268762396493605931165616375454599915003155631366634295355470208413858684951746529276108042269443905676254876657999676239159632046287569596757078949990972030653938687404629609950275553365213539399359619220934516308240292866561300100580885080969291801214943890561002818730498378930712740166179201415507512883075644905873467711223407233855792869938786209769320569176496467620245923171355824148772086336856339968485527651714407193590060253027298015184554328984022246744295257813457761401600028729718482967033253022210575058847266861554400785290102390947299269920583345485908380496473813328453480924223417420707685538444644642722534148197094420794014267497822750074487561846556538100567116582936262920916651290401753850791960191842206460256781773539571836850337883177950358330277907131246819592611940086451843789927296059174032109754157096513754932663795932028575742431364999192335475207523841296646220552764364186116947928468049120765657250900087252902699365403995080179965311431386918151062164660831978340715870559414018827559449410749722307568467248700233376235152536958080502414146226406708186776961050335767025200813539358405776753892443971496334278825088372685843944630842468734911579597443722718215103388107181322302911663697162566829110734384132452881548726942213937123999927971495745164687725737087131303943825346607061968003258206463544180088012521518060821852887076546944248683565637759027886538837063248426841211263662516705587151638463477037329407329870044631432612082755485026925660649627853465206099046276973368569529046390546521105363539557390347508041907298896907934079830444391141225336194375373919063911915780743225098929290413573558032774018081301615383371365188839567837614236406637498456154716259034703487838380259646192664606712420969171015444842626740131335666218738782999475165779570110170646966509193560634105632091857013375878134260584838432941522164425998070413838332723885444029411752006668779418582257270697094155680046158661143044502659080042584553398096993757663661453924293038993470366433242783739226085323620284242865654983842875643446943502283281287248969847307365828396872211109964820339697671847338565608972796754016007425007985852547981411053552322160944903839162137065144304371282367991125938272617394570425812411937629545556350077714532306420293069491863891841165181377161706289182230051726014181276584210701491287182750487549582020312785277680610182003464717177086302108843421358696090059516421399574635306990176943614287741765403015662377951208432581581841380733592969105267689217689578863099807825563651310781560812934566416941264954463964739997131820525122391498938436615528621382510349046172485282195433009867444301955482458294941169295154999038129083935081535635303463569267077438421291523830741552531108349256674921460353226289530456608129713648735484725611138893451653598993942228085864946430503440518901352236722085882721388721409192826130613633388995517900731307391086141215284941761490804435835779208591792875599537655807089299642644906586107119697889122274623645750333640438853880815279583197843324636201333290320868137275197968502598108040371315010873736727594976783244402586789983065435296458484927212068753788669505008239191031774070455724268671620925462687839811931316915102868898064771768018005650398066679257453570010467341339547069539124204506821541023596840863169702720244144321089922639942219555373653863338769825515949778574387505085124749606434999902726291787918732087451375478498989333619660543271886286457785041234786903128535599622764064671229116360875949485951448232156578536421623255667971716341847044590954477976320905771479609579136824878048439552241505917767551269467043435615334400111264230528539967960121251431316743946044665398464113903602744349810137138336780804054538801546584582061325512461129601006582196441737961970516472227100258965059709962242571447104486015850214909798819178797392596198630698982579770713161896090514786314358458561660486768648627066092535978987242415827987090525496363336631904192546559354905093565169380731365603822490437184045049961884118468129392205853213549917189984559991231286326459306430459070461025183723136349075352172311906773560472751734118384747157134338654764238035146219721962170113025987057086901178471180631721431478859951317891117030673487631571108004008565452932381700417167953675883931385895170115334047728646677895219593864758931722108889720780105655379522038606351031851032167629361567260053249375203104151890383436341358931782151617598036862103828311539153811230176318128033792440402869697763016912316753698609564954857661718463930933188713657807169836655586845097561895370031894259578394413676198047339380333808120937350453261148451078904880559411351073558825510401624149054997429206380516581874454307968798321548653717352706405093149508197312851397932462130578955931597054789836582543627782412416876657773498657079191851164006476761986012219605707188119857771997632728289582520362558330688014608645916349747734565886951185462798421285881218902015345637714648073497166398732888382468493559207273044512578220262446482827005847591110488819202480308827000933728372447346978912815693694521930082555158871848888533545227590757459555636351264983618981102555033484127439530413794586536431328841430366547664703420651340604220579416759465896966376908443114200355363478446745595802467980876081622615748733363510818698168000176362531824113602050568370468814174240776643167592324341037371636676460295155598205537677687299951455890609272847553345011136133268167342269347722563720153639962760001559287298877677342673949463091884942195141110351698071642710024697567174012508668881134855776840258572474365050227931961701638242830156022989699830799579071192747295287872142287155414468461455505677935478925632517802127371608039023674234973388479152248057953951792665047036575484169153322422117094834556976214260001701116063055401317339940184144013740252474637202098381584545674540951448223136734952939778189771275669190386135351408842880188208929673464591577949114122798927349768626250041510313597599417441716661330240708360226265884295382958732268870570593860740056523429627550240156098616128717733344367830273605999062875574641095348621406947327061174619811019469284259425317545086006983256322367390867834252315455712993884089626050663441373853788409740379654486103241281008570868731425210917257846956523839791036698235821115978695923604689532078703752824510919019698451005006808213072981064579750827690124593013887075759761529880914169093593583358473327959807335770977992444918978402344127765707547581280211664165790834056628606607686907941158419945182484000989746255152651445552983151779612878680413537804570407052478534089947644620275722202947409306700710695550581425056051679029758957329905512777792804562490026213354627391427960058474652730299167890710357274513948389658147609759277118625950216306587204828327082566115041973990522777775537217349180630592511678643063557632509011839261732656513331637159517466767939984848319724209996977242883635857896792651134025892081282102213858459381957812938316968758508912699354821315730024164355992278575438221873147555159853729227116950522508709955382290108419333706533079238677028449779038372633177783753239079773363520805077899219610226642195029372125143583064585861693535717689241432805503233882599851224975096021929374224163254569286692830768059784108752793608566577871057737601610815396882521311241142095139386197066752304965771194574699117198713609241031734705602579524554475082892533961434719738747298158844559563706976967790944790165268650122897255307426215647702275787490023151527962264812858351834857164149615617523238953055442560904656579739153348745181660078965004663036158591393431655005177963613463941903625575807391710662079433903594014280963327745809111214323261666049651843673808537294879451036744369534367934666035895932412986964457717953704765057104798207441612876617232669306529631036466025581916573040409079694473340683191064201015009783098976345187672744015820790756246545620510959575641583128770444003132314110169991435667286721085445310029226926579401513338684377526653861282860348785403091292773699719893893224425269553902921741010478409362603769499377639470533919714560203992558712868435436942955352345674456549017354626459967262736921005630226694685856490293056080019790597030196981567012268173025948013162105417257086704007718854543161210856474378853161500905728667147910289145818610437283403891005823881346074422953690996846932345025589303280458339205394420943022048110191420013550834342697343176397566613704276781054406241443468299259612986359194025517827305484398071107333725800600359315345416597443858335942865411095059085908652044281672306547133084318562668892691664930461748081669477376210097939077788292724300133266257906123087144057289674438430837829542084742572489685018111643251594729552777556562678940858380101337738205936830378869538667795551235261205755663315184164784937531018711253872854464832218381105621981895604880911899736151682255100597042879850356265756688267174183304346709030891402900953314595627007462022290618993692696394567027072752490254556866818121724792208768942748206474080431028229873162260212588530706226318418555948328580527645415045741701776066599337512667515257331059913824807056859653257821327316633856312639177690860698376754807086901076441980638610406825066319552000307530105679843490572376445327337272074320418742545590397997852078397996714320765345313973934186287194442675437306756520082191727147522272140098060181043875304444350570396454420292426043147205053276455883970252788574830903095651215839238706549563079596263005063323744928744323740631598676986096586950485765985106229347891672930468144797085306881826656460003617256110309090124694657656063430144022497778227062884305964724480080262115285858806039844042757644558575889502153283135496840670212608145021121008150347810895062603052315669839673329510831535722446351163549787795048672302162429967052887922918544363711831187208724032444004319571821920606551146917803921688974601676760137593906544953052991558803295975063349407026621207125590846611234115003437999642023361128045116056507848485796703200706102139312782492071952990889009127803079480444856714750863638972680225195621974059330052982659579516909918932678035534516263962665709416328239123320442169819954805937933751523551015966843028242818318867630138099829432517326614982223967903747494815357067783954360938692135266196621649757688231436832540460828194189080268412230607571370598554680375372410982186640421152066470932016465125614372379957487627331441383517920412930009437256132314945986352381443681258280615275745716421356629963961958512168323920646611185249961021014703972348010311387078679290636544715172727263260124935472921491031310422822326420781491888344901279872974398270931849573997582866560271270166750535610172230346240975921401438836071824746293956567058062834497267169921187137244415768027653292408549906376148069727643338159232933819976063897513707358239864105508903355693245374916179200246004587757234564349460404289287503430180131869445913374982190237703581521341023395724692715397104146761892947696687035103389099399308065555232913812776363525175535499097589910006989053361364557547463513174486492604377282133052434223884534408112950272379653880218404841699680636295974384061975087480924596889845673137762442659983301914027802003282882335369224438075370728318614880954388275368184285181265707750915747809217796187201855112192774626581294557836971320841874232386468147458693963987085025815086091710886015196490498026869468795692413804952563153735381786700591540170475785344107611275989105643664825363810137820132638635731639115751040364477811430227449928520034524276600019162143364949586730756179293073084067305938657913069490776776097784762784500399866887144661590552621161755238560398177384462276478632933235497288505049273487089734758760280422202125779917616802662285824412588747327543629882157363032810393815451454969642112662685610344192224022164499105718474554947048615720074791462713470639547608412322242757826274794020627189249596342739299715616139795480529855265744291809263467095068942436778759857333112823493676218865597674997612722185856206924222695267441400657587760250593770359192885999755948641052118964574650506313332068293355041535743717909682758158763893906067920515089782649648524465630433492126451500009901795709705641337030645245356238781686868541070710758394664682948617789962307564856111525398025646781947398127094546028588362677650939508461280721346470463286972218718231281966523295246614730014083365555779630427023019836371883716189652800012007177493440663340816349707853981481572369546427921843667031927627095323467699573916167118123085224442747439450110651142683469540206454659538953659475917704839640367231848237845250056867703256876882634102799496703989349326285993531979807023230894333274127181558187589869201786276485013037286800069353265914254681887382753407955151555854124866438602328809908799031835517442186851684789584394803026721274720793480337876772542458063147674702863880083779444031402755685331654446290311800296153967208906526923016547203486946711128974026148005217574691552736728447687656169347481435744502820480706973955339931560341368702963148339082104857391801314287563629989807674653845414437710842746784768356328470338739265713965800402450659561742974889455218217603136567008624711354695478524711158195633791147570748954066027156733012431848599216619775622470668565959740190586013575024344520187935646895918340964314266601134908098734512476513194703608444978989516038035236528706153265399146482583047807422817729495276006377340488835302370764110731369752117951149580517023114038595676188537708989439336274473360169582933084859716200124890924081634325463805989773887923735447963977345222570726177761727276499525538324867785607064552272934810979016830747672876098383751792080497014112673963031958784619980980523164708862009822839321147604017872079701704474405465745030357630755563277682938970990089513856536272778891700561790242365547802897121692252625720524006757311230345111616141940963866680428883783920001487558215918405942721031180005097398390245707543770108669010868682542135102049824366969415399874887603351858463447591363788002490817923559071934262949044285813301292169972357226348021249738919722044921112091702347758771346876987520841400281088918293201372737558710360193763356117984526184612861361838059598613921828637966260196636503682083763426131541987047160801465318056089281906643043225912748494539935329016413324300762674536372309747363427278594546512892695234983030149554099040165694642575533650757199441472169260419966860278805976140022551609548782549925674439925327993675840597090075871473690029151113211959324751352820853440709503558556090965922532800862435484577155875419560544248313646074108839211926761566860588074110278618859160077634966069610561249280971340152025841758910981674347697884840477671319037924909514647830538422563030819825759830114967242565408036579319451594390949116019490091697426003927165911477761357792302830618985634290956063499267078397926396167740188580423813280498734422921741078656505780456365397771422556016659750114441185311475846912235849731394789202514694178326636414085924479478438134126567254042292765478655742135886782973295685718425363626350041586089535260352416157365059963307911104914459199176760842456042631020549863373828961831316180823576949620031039187827818269527366978530077308377291401910475101285615478349926798914109335710720541988375322183985976954244744284718635708375183291594411085760925303494144309630890038042235181072756700211203468873274569336018124711544780083862002147030143633575628171792084134472854870833329001024400117389698032862514252711372101202958175228555002845930721310497911884024471971970029845975659311825865815210633915993717871299057011514704786233401932326455819275391675346851087118668280971055461259401268607745369783148804920762384320532497910315703817587980312658465891067319497737061882318877960542093336795817927728016038170730674495396501859641744843562741878191725322356096298479653624976976754301498997153333668718233212094672894652409170142701557027590522244326513969419570600220561588923040904872367008297943982810527302762816540487767098569246642501552953651697772247921753331242705625130052246659623677859967162620607466983277092209822283571897206242500158093057013845593834019962075571155422057525041176501703435597067900713757406156536172246201743888392031616597184971399008440208419459251541095221685980050978191343910888989569515230750268368677458425816431844046894959182583991297830382877560607646254263873227731867597763589812600289246512650543284054097464318952052083285872527211720687540874358115127791067652902080760180674627737801270336477946805283983479651648060113116263841125425479730419743592967262036569081619955409981847832271066984501890660650172156536758142854845453676195780650479968513872511879405419049515528139949305471463353364060521313837902942829009013382023368177985128928942260689192256735978476829769148218493741503094172678083721294472765442768991828242873720777184761385415070390779247500008743117237030068823246706822761171709888690877742140992158285211013939500867726133278776608492192657372052409313632493019781412792779771515865127381179182032291092814604693449480342954390075403583633657024683004883149810313948392062729654313688254277423858196342745312518971992206121618623973478999406877664673713498145513768795354148440345140271804543748456301175516117739806118512206320469894233246164632147297444556596219976215030907507617625746790592012239938206403979116154229510442451813997086545276987660165760450928349812986299088702455773402906724771527432107588121114555261334118867997050727574560139626695039832491301158620492215421009023760555918175628052819754020551697861592369998411787620830070508634338427523372363645880990164467643851205544560107307372939733544690954647392609922639358453191999517605673291061646847947807628529813623294356669036121808620488870180245118603996963079219035598344686086971420087281206346546915175862660833816882246835297396865159564190795591712897110126897652652378837700155843348775576225016092286381671803228955133495671031726789884124717538138543273865356740612849295459319857731131873714106484427920294028609197444680449378698534007192376124198079565608657789032259361639828854470472050796946679513820011680417028506898305119754831601313707987276364678299157468433950214536742132192100019001742221866459675144061533939616731625040775701700297753244188070173428452203709750037677786687396226148908185511483949319426807635108566394329410089754639887486710656208311625642869015287524510291659103201788659316812493362877924868191944347075938565748569798373076583953869183920287422860120826046831800317878289099068472937987967620480352230599870314004723853238798604306711106270124778697066710662455117416286518661043789688978207401337135177108799589964302988120677732861595856470352670243587648130115239074599301358137019924158153835462188181770332743141414758839047072163136742850682094389227085239791505024060476802344014287823402956922845151918172529485136690775079729985940546077618946850515855067001037485453383470161596670064393500416446131275018881855667972855295708447694812578524776114621447030835307341214537918794282405293606198896041045036199228294929453856278417547475417304400980218201934281914057337047080540500419826020810191819750590313460486148447791836503970445556614677106381251335294302137998599230723661054033703519576423601536415269414550416353993967187979731000526409344782971191998177022181672042868778385000610637211246956922210849421935478989336040476726326033116056144758431897225181404288770300762819024157612096471743639637762440077326005124858355591516545466327808530122000363750821550981460733234810207349566373926887120644596720760411818433057043280206867852749868046099600405399366472819240797702269050038302610141774845964932788731272532075177039073433241088350018709773084256175806159920851821763776343182067870811393005309795102970770615697530394544919238801100521587412255752786868322684344270593554954523367971869070535095524481738409912910412335561352378702151827880298957304774887904595119514799676055776489205391118653694952470800064207844576210614496667431092701888023826511726590196711253125233205623378879039175214424997069677357270127078332778451698615030670737317315349848863375537730016254829001222331953373268115682398786675142210065316936176175800340810755013170674858063259480193354283731380300742359285892867409468193373705805073312937928642775766323494686038697262879158736361480079121770136159921996782394560272606741253990667939340063708914278552976258542463227491882804701900408855264197911442032434500109883895875955017666135646627033183607223099996947901929435426808256113776966136973805397574340909457956089517729903865690019154369839022873334715262035683083126162492423616005234037665714004026432226464500907738195238849350859268798352703203755916016099666440073492113363768825862071235136043926847861374242238287114251788644822918142792834750211126759738942954866610669092652908867430888819459867864807931051375315287508176939616001564672460836823552369954976653300709390237234412342325583630717913767720188401351495753558830311190243888946942134108076004273248783401920231501961302656743224157628913938108943088278361846877456223512026892204414460829237835851067570486557995281982822850538560322756092539113176121055612156273458194886355152985239168302298000997245542374804807354461713082804097461328635004196646503431006831963852702295359886692944079062289872611949612710193265740933403321034428292988635330371556918862275002445337246246051368447456546044464214668158891086439671406145527689771695819442912764987560007374983561821799905843070895086484394353760969600748674380817430194941328874084160674550867561064371566480618699423533815413521888018322101230198453821264036419390524265349954692798420163364145812472051029983406472767891223896693133005591964700964267130536690711157934462687259989442807519226899605724700541544093049421236535712416653329387127416716548055309022545914873737212313769748294658277395610586328194813035387768068531979833153695821979768028305376802669563446161562137997194627158525994017808201894312331285397442552737625846511926391909376512649683801165241422055518272028368913420295284011074083492802711380127757481145393379265840549558032201735283895592861545566791181506270755536086157257025431661351213234790580122153990474007409872608250369505406274530471518416962764787913110044249562416082530024749224395740019848074401482361381181501307816026621419171378078211271888645790224097065660956399840624972210181527165346971795254461903451296182771996527770041578941920960956873461193767745286556271331535576513480862723918944697939089188993821066507991580249409988986588709179765977826738397064012706490854402600808702104883934295353770207377259739547966489578848075831292901072900503315124547068190947782231651862685070101727075286508908508578286690671962577390262976229617903356281601193282492281496084101951215555820444813619124522704788111831442482638278560821616568321324343569067991475353728154730684150923089657340753319771973196845245553993843474174316724867894224660187699118039984329501478799924572886635389022500032642515870708986209621764449553768990576062552384003200736267410640736861854745616473270097626499064264660150341271509302978919254175331743596361777192152512453085716217558945719760846131361382675757034426389435539494037105136589232003288694554867129847239681516053305885368637556899146126439711112333599222053145888963450771921721104580121041762977039511456315195614545596109369736998582903050588673673308500139357750603546234219314774884938128735560972948466477365683556246664842995571857200873452000348828278852913867846857955419340182919139737409852529369176155764834435547074712860760046477327808989873460189936593677287948134310376556738042800281764033434072818711590897610306216912909900997034860531488491802257998548772805383865258210539352192601057522079613201758640784618694367781131341143236009283155319565977014642843731070683346043306103418746779636562460938068635004660543838211166587155764245584930815449154808110181222506036544917664397462725896126130175528157429203524633540610031252697856734509981483573775504427030375247679666700022064824641849189356403806338550706680336207633056816691080283985535343116438701302598992677020590262450443911173758193191915669745319547303922053643935824688403280394407704048407823159090158693889972458334249475851837948115684985235255970994967120302462575160719651697850090747360367120571857843087678548790487165388894420696332519719266909330424322714922123357047463452604230409864718194327376063938173427532989287087903055238608859218822775799462458414985922393972911682547768339629054137811658654254255952304323075836435548403098352278513599706782849087904682167217744299933126307149886104881925265732724836320772325903741241921857901695187202098950835654813128979725546062284257252375833382783220310351976663925560793054996683129838600425362426915723096367440493961043241741331119406208277575369424959443074064946492672415383726687817154255450195344390657158293881279344186631872196210831897202532354558357111074905526092561657987901828637412887301682256608357239222084495915645178973699407528863399724203522013124441599375792166745358595585908794733199877434958135639643695897026696484593527616590553915982935132141509779198427048144051184355983717657680447814765905112071473175402935914460203826481768295733664206738083945399655591048225668402615746987266941291586340243959394951126739584947456308428452747239678225771887643767452195700202715955123782631662598963408289069719563074677701993351185876566914942814222062625034639837666357391302750932764461724675685894145084108305778059518092988578584143981030822951548490672638803318718738041841202209662651555666664576158687315033910336048678446005270191657297071166677704920146445948896318643483036966794919195605331516571788276432470118560698574219705448395780994175124805178169953893217978533807933573585793596271482881727723027539559853162531833442237746666008611558181959775626702027258060345255600067169837408570430427733947526707215918901005467097227832680558320323794011880251614057929156828497151280625243296346122445424490135855598189804616175375637743382757273571795565320262291095819408224923113410097715562976397213801420350342711900927289222985760010304624205201121032862922747477443331431284120038287592133767528517398752992209522785339613682823297227440972896631520948819980642410751377283386976287521330419061843733603719049365807870491784656114277014618864305363126514798205571017686775008135085773303275234686670130873613596043188709372079196620169109333061428200075579519260696958558946581867813798240842982961029134473713376662704124857953699149540733883188062620685035397737358187150259964791835473427082859875941838352900153602373997720899600175465019241221029908576508810969434285030448956810377852157229538688545526302706965455233986221872805619009539077261105484640362748957805169231167566478017528807169150204121668559837871633025370023993705104577059828727202454039545045521787793017654263372720094397511866772303439133304895755212361216446301649864461363426049808411514331289219640897504632760848243606913730768209488215356938336432365508055733668764683220266056113505845267069245345685612970716918078111595682043377241341499791535672596455917288469823804756795963072344267512476536026536975499563918160020495794985734799631472752104383783181416754544299742114757901496469587863026030710239083367298952126575782139583914803300734725897450766505495082354638646760870469234735924434036723084013170190953189311823286087702776624611305328609683079068355753461407822082761175287597330807792735142325887882861632372245895726447191325224252852288820168143519317985754128549914215156087322129581274132678872316432231845471204812174351935422493526878853579328502003199591678288212591337617698801414342830894131904207281027961752240711275513746082847149703686369447323292115904905831616982869141638228732846551520079010999067567048182153465942633632071622196824978176894020770045433676720577435410191527595424443532137410103719657224390301474932830713878543746351786517367403732546508722240096586745046854154524179489069016080417703099522596417499538962910424356469343375615551002522299436349172657073538992513428667612516297284999916073875868609502274837983581469866476206523588262382398549924847216433800843725659326229000783981162061106812519495892680613593083457844650495849368347451867808265329266008908457286015451171033500368189133511175451376288894725883111865806313040336498396676868080347644683584661088541929845560053144773420502728355045718326418453174815992628829928936065256218312896041724422837228326695969689099538754851469078606726147224314377139030628195041139872515001362031363096908018430993072162799284587476287782161803546204610099576683435419474335540716747749826910819323772761156995929511961169904907043775478507648071348979530599257739305917992770861377910044631958437767259133621254856986452863929943267191495468507845479765800732845919010052446020405257752147178511965196371409932835024693465135396125037287559913011047310109661027767526392213986230400501300649937406622967227713039244234808484426644848540749341114774182317867291470572688444505929357699097944973709298262955063784053261030419009998628218899420117407723054686000693714949418347664046712115282491471936892950968937443323652995536923464557849170354995205640882992538354003690244082483331339204363353513529022531181248213540943690422784081481713763284780752049706950696842726744982234172830168315234909649266607409376626148433284046583590214361442226073393996293797982119507709448328851073028435770171286438250678339589612731817941905688217893175417153373954012855991543335787229975811659568581037935986004772118650288580917075302606796117682227288668188883265676796128497641431079451034314966991143379422721894026946403680398545410751825345946017045442155239404558236110916999723296233691533429630091818244928272710361278846330405951367152945750490456634194517648368827352730746889293472949920340700866759904801162611253017905946277683862489068876355168698626154070116628927067758724546412615250667940785321129973477593528669640617180813630110214770683551011612757177637673924052314877304778252750877029466343072102038365262789259850837993249799734295381949780764266012347112550937479122316744699674941256058677369255727360362793465694783807131199778503976940334963195857691499777511093567862220950573782166689414796828210011216142817933837198523860797987502587292678119664710520059035217711469049068980236628184793148564581682209895736063460242047909753178622895011964620706895483633253904154237887051272791709836011293581268812617744281419698164874728337908724856202196861582094875156013242084064454814862526177726593206618498181419012703959711584442272886905461502825748699099975898121885915068578606902213119861135902371632988236867070381209612968972738713335193813978868093865523786868380504196221001649783648953233560497994973679545720559279122836255214620681800207366299398512133624429988405115316358000056558425281396530110425210174353387943341320751376551657374480768872786936031518672192754155358344915889627391081440003903154383610231954669829873607134646344539514181820258392844053664669539609740610170691745722500720683081527853024731471766671792946798353170783334086308048905115390816051649836993068885895326254024271826170476374532946143727627020159972920222031381255992590539230373431295266592354568451421267170961988238449771946500925838241348416095616357069882115942490487588644668058232924423291369019395270008610671418284004724950666769421397948814524134229267945762006605900048519092868173722159400912114903522315736426991071089194156452832249585121923462247471939819157333006167024515234677429772400064539825436814974244918240464166242685504892291761781569160131385732630433480151095253327492521544511027665794995249436456909557854031607667847594556907550856802370582648275942942458188021549731736454895710753666047648123707435304522706348760460413662526661652171032978944612547619063514302546248963981222342749182737429964435691173454222724469032200208557994107947581128858578240031351940386046195028957281939395623975326399690669666356256755409845144500859998386889594336352459242797967508418012879026293584498997132896898861552371574022482840815431664876152597388930107110280887755352459196114776865894231934798863258919055227097828583474838452567325169710273661878686532391062189315411872985175448648801643182725990444684079765646288552945660779949948417375240737262885811106456373880159523805448757841363095279163329861607943945702566556362486729531445926025826972543932817590832314978614357469936229653228548997824427020065921865281124728645006642160594186509633246176670082775770951501122896463379741420796611954331538319585416779432213874755302014359966907761839184452599639204638596365498939575945444696588174316900892927832155625487426179190981141328715238058834202935042229550480637770891617782391651137504173708578704075341061703999670033434011659675556499640940723764395737295774906666398529618449372284019261888564759726804408712375592150712526982195949420123954185297421147021995119298992161515372792840986736691160477879734669410035230552892977029049665269023897196289916211540560851818830306465630372481235353001741043166023336722928395808986290411597632416010254735760378295183431009686551118110573876183381724637920531048509752794970863395655118735309022705748426990725012489573042427261654415539566349031657151898684331283718071162944217350426549775923323952374313269635204029936574265013944227436293965353852515662215251929036867890619136686349880748185337409435530340937207323469961214857559915043483065452810116280349769191953542567037919470267470541399519859884638516413487373359588528742935162213439822168285916749749520672898553035642147936444412368086772806660831932294386502952426710088520238881969703425100662233954959506834721257201004826057066923348698844594787043119441882437961242138509086768761370709972820478725194046123748916023819130276742253516070415299203759101447420588496321589787377880593613419828555692276225843994797271781315476090574882884196016004197825962977402902344608994915294045207965275399678437726946953489855357143653697882762674670358856056109564249406074070075092561595513404807745136324149918635012259794890248149897591504146347922827107368635052905875506462751034537478512362876550568177969475842677607189490492770856307834217565791774619355923190689040737943517200468966259383502292904895790236779757829074471247693089232431576861396658003776656733634681270710943256393953302537672330883629101038874143697402829771392701036885201829837820641293761793819648830890346479895720908354107956200532602716495697255203494343161097277615226538896421789515563384975773959672589480391729795770345327512648366930445951757471720088169579399987219841630099029281558665812144942401112953691862144070666420009760439094421458593240478571824913966552582765239533786310697858924441252580755805245134159624558259735455631986020904542553196952458707081018031670799813853463839722055898545892351241241747368423198254581491584586203236570718329394604228295239292116395777297735076840256574591685967915825072653558988097133741064221441972509893351006108981221308890427323348240661085195402779584458742369062780676334637810502791610684740376770133116570747291376603829148819043125649570649554774550673851347308740543992054824977548540007298471033307141151852903944689072071090107481366041323943899064606129393035890219960710560732235072360264703604500277708688785940012421581893486877659153875283478862002975642046716577090709760389583329130443836421008629281003100505950100108812119063495151316534621911614728929594258701833549247630965753658824828368933044769751108172522366045027348958870495990487343649359629127305768744559092167683653345954079631111201491034926265094428574196153077063210844113737941516554489380121102608757562319533758565344814132719326090822521588045703998323579152791342110064311501774388599855513069967537151067314642593211014484099183511409019754702077564729797028686733082165421274181404791057489663104164129036231999515831187869718631271272278749598045911004400206876110156125795732628268620729238876395509971381353864577682457371528679029630032536102693254824639610800424558942469190773968751093859814611150152789179175158782898120115915974069934394026712734525804180677914712853637292826703718450221833896292038223132090301650948969413485379221303236522792419054781357585036122622412181795280438434328329088443528197381962605113592382603734749793051779998355050755300176309024386675048492771242395714640548053112454157853687354717483895719506231444934179762041586079525461292722333510806734810170639362174247263992491411335992768353796922428821765524963846590124990823853734197525976796421113449586201045369971723672226551214153018045359484161164374411699987531616288216206344632074710372423978493816348690308909945030925726922123822379009401426698195668460072396297536607825710721733889834043563060225060060627850706003554894919349657444957578396057698364593163082477674982801460716048150811354115536853472241334485340189757237241736474766559455305395250512786440652271417387698002283154929195833479249082966438193236680478355165312944817659468635597006896645122436339939739719420652724361387953971273942606242023744026851758745870084503806972895640744248934122439513167649093538229094882557584638367912257073291349069356211872029223034922926150375783150979319231007458071157156097330941222394952904958069782652125551734454380342659920413861840383966149316504933767747405050505620386351105538461414157993467131565032141208403243144392385988081808941929169037285739358964764180737975778793251885577324913322806537257917887357938684998991860413021504524120158176546429250144904380041372589812845785866972810484041941046953813575720576860171460688965858597970830128271095948959244517921973405288355644974885071737798200319912242668239904940570260871132880601296269458680619316384521352738065103997663183486571325462544054055904488044217198469141972641326222024999659096063528169881393931573588213529297631660632180152925640920513233645100171514597974157435179652331821796679867584932353585859854912151098422222626901187047024944440413029534257060135870794247221823968501233650021272801855706083517183684667541816072090770243736674139230229582601183732264907040711257667313578232624601595755184410085112010926943454807467136545781449561771819141641663971795703941621021005739569303131114546560854356125436236965135062137718240240518361837504669365111668656395415228518498991496939510005221208443941986344831117248154273960403726018142978629724441002133037727599922865578693508297088418424557831691512237264808761574535266254584703736891902906112175184158574664027227951749325348058040827970448939856906952094346104947621821546443023968267605288722805417409014822649071174279825013525412715480654993519682927146474692542841172331665122462439558215005754983678365639075528548013350982106918296816328143419310077887949534247841354532084434926132670056743545879431458477871563785642290439659432369539233515200048979781094708837329086402794528413089180668145761911471684476153255696286762480798239070349176737862344549188583434459263545448103775321127290372266718645284638875486906622766939843084635503612488799680539415937842240029300122971398606596328257675287153185000934452111903366262529905820587752491022409429728259343576711333809814301936061552705437865954590850822888244785393184857774736967514067161000317449098480103190157842728555337034488073641442992428171113960484911437849319327500801625794245621929921487786121745476972408292457646480237786966685473822397633405349667337628679156518414188665608149184025588727214587943881418781066824801733022611670000865410727034096163861333368577275078519607421699469076039465710754446786968398355371711327932863765153491336565597135001059728961875436544831873300441334531789293377112647336398189797148532557863186863554252158060521964441133373757645165243280500650223016711294995292166818099765545948635082909254636004649356273071903453029279527484214039266035836138339491327356860538440618662040951240494155543262467197782002780114740468804938807636395353268518581216277294284551467192729799818510845183664609557548483218456790053833566792797455382690864351405548600574271194212918971599401869225086446908881328413692929425340442957499066594266473449535044541384555646371979897202942935635789353844548984430870820499975814834828707561491426100816678995545379430537696988965875892533665370757873178128938228888093107072395131978545885413118987724322164138283756194813419003056426376633519205380525179339985583046653431682389682441790864271922045538849472741095884658824245266690996921693844885622415554990696116954303817287976891499192829021755582127621096411729019854209493487277505039053822929520533357205645631021681256379395823464040037255347219868269856509560034135870217110272345955547284290108846082330638806249776106297754820827890819018243345281154127181507228675367430730383932075186977056326616582664505964814699398643555040792803438378303513412576904153126121404632911330440531919529955912377499981262660984630781046453070272730224777622794058118909217720484393104497243562618640879895891318932348331630610949092357875352759135871664427833180079212561891305534568878822531336686102027282397542932541039341742759884564043285666974223605894521325515606927277619034645540177608409373275584351034428163103098215006003949330762174381150287626376413800469063411889859634107058621018952716933555686016387408443153804417968905137310486335531933023458480748551933120185048547512747020968635937647304508115060245962841835332522997877599597642040062573743973102425437117213181402213150308413193947446985917646495028232108159678198636694973163474998172696273117140445511939568906673920118945715848060942488955615645065592339447162995904396327476760962197326499553427042205296554791935507972975840771998459633074220022307476622620770496837381824566035212730618776350391831184583160346067358806864481581637265489196693663362791345213130323304163959014439872414177017835146355849590672115505581868357613854342172687873498745901709452201577088221659898331780435206932789892401769764327648879407227098235187139559718268510433829882545325289791177146180956417966571452016438799014517667569402255366738194990074369077689207003583505005907156219629003937081001459377984237198358845239808314592055207548347640828775972014608787031332095366262412658719197980662529776009139423216391023223267926079023931454182378720736470847177859771067068773779915783925887490351082206424380559750600951918950273495094277834344992276379700860990655472868036434164246304617950093687457215255620413848482985806925680765622609242847574634379464691681069351244321640038120182206553137754079447853025513654003578524459815091131385778050094805283380626919828638075325979796311568345572873415522630221344604118546567763650328479146125887544323774951721686957005145882867795427132575197937367828673806636455882964907973083396479709457273319976490024074611163821150127507985394173865024503852852918469850936179724165306032197425495224964470637808367377727200059945020440272643002777118695529347413550468339044730821975907161658039996466333307802253675002696916485982701990256432134632883612779899470572911629197158302012219452874599333814576966733607344957402031972867197680233290971144357952629628018457672268441609408832039596313469585385354304851321280903045607452689536266988167914672791148947815580266041971420697118031293400730848079039385464748347596089249800703990436231802085980422512668891484936470996527455798249441111966921142494730467674380989914568402126782430630683755094412560276966456409100515808957459816564731135322727504455056059403722170104964338554774395266308849834988957053373346214296282220370752535716321055990266586852910730142068142573265463086802567693534717431846582504414073453561494535157077130217658879006909331854337361466442485893293111878230844172032141779947290712118358274864049048681931739325181635427260521925023474021962126403541300297265778260810093686320001924491973249863677589838645272207809008103134086912475583182594113526939050362281907563412439758155081629766490301022833728761030359857476632428667412315943268736165861531830352758152696080464011408436423584388304732394997722105469332845989436074366741800652304102563453615384539749529992542884570643706559465043031470672700361520188652268254411247275246910644504294099128945341117794155002881624549051048034797610938450772657713052700360257201383756160612350230642511427858864867814124820969245007054488644829812375385866799391782035604276447284261353178258354773249260389359788036320976182833654965122816315023223038717717452109544401346428686580838471875163069453779073985539827565778851608316159760072375872869278061819021407718923374710540011371450276150876135720687059731587832841056508087830748584849323998819413340380407973181513843103518266175585548108765969569635308752577715971713416803596866388881966473867907567642296312426022465125768242675216626496872039788361468859693579849128167650846895498425910720600272364975213878579259425713127168861888405251713510040883536326026641644085587712990049928814832104172189078601058142224387910031437622230591307814904426749400507542226354066844556076110812912219318048924987410636213437344937133636401837298258456037647940028539507193520625464935107956443343826448539480600298229269363460397520908209516916002497092624196521771000184680510421136637867750161434007405695974010676478891327279505663418478282382272156844487974369835728470037545948981540345583774511116170719077210164017456171910783964283242032097031280512810572583283419138659189065174256557192322591618395374763974960420646014522160086956334782907007717008818689599162356041354626727545135771958198589653170175150679055807871006778699306807014742570136395928506161763846807167891882373073858274610274454858027606965963584570440355264089296828534656688370104845157901641786756511390076822392784154278888071310790172242748164028748333614681300419995148623891114063422979539267545089476182091927458454474922387578255294963898088214746067858971393001699439794055925077658573742190212437500519951283374710822229611733447959450938051770324703966184067617066814167412087072251846931825723076636415874424082977722080206576831396702753612639093516018403411799886218842362073337363472862348115538636252488327916212999175797284504771301146782217855297051153868032892267996586758884908488132541817850086900985676819060335259082667345054690161704483864471105740845026150386475596181843554766195698373391011257400681240663804514566426195225612428427578698541869965943795050056920078121093364549850477217295861358912701280725712104716972908791626913253849879000560368436835390446948887303638612553573798674709994065068640653544781880269164445571653126090073912568034133289099430287917573870615988623184370312248328086523952163385033279932173182999251754194753784547316136013876498897542958602394745021746795530490627107071841151807078523384051862702436807394366219022828501736864309088900765230266249403413620568825861334571789774774957555466151177275947808219015383980747682583223517315621323410515781257962842234405435958256824848172854635362112183666654287776047383316457049469566922800040522466276473538132439852187833633381780536848819803805826274209415560607191855475687471438804617537395528948660848277556048968584794853424056516249706545824370807617712647409587073637414719289199460995779840275572682130814588713157757564296470910120293268674677516595865381835173460568005251757620100976462162881792231233777572054425586791397961816571674663860435402420699516893032500510666611866483084702031169925364020758425490940938044746233609030538443996211996686212503535139990210548465674080306486300146272413678619653472234611113433657643318191048780356843782179860890089506630844660860608508980702652045429692314901159726575406380073301380262501791469423467877800709565132279402973722548716595664562879278121310590519137536102955421702257943442570438262283692433246910887397071701827864879064786254895408464575641316745966682734285465159251722762927264851613667734030902642750189962360790396289982226199045756603454416167342028591238949403647083789567773441614781647433474401140209111317105273707404721414088275708564714276734175297927169753450536851111327490052388547967262375660500750437087534467027335510153284360054080644173909516272571962540309860480212742712575854121705556336820700286238623789109253680649744661914829736874749562558499563416814691143845568628166865549280188184270770190905093142978650515432295853029402833648958962816032764458322543824374927859605757789616992961239938438853215225904837159339551633900130640327467094234644299137798715981716411829101094720794827116438209707635174566363459473520634879150672615922757311840426117946227019952007585840034188904421090312936022555590506222798633124087011681025216525692799631776462449705050648934255799912409957275851707999589463484798048736509727422704728880462738243103814515552069427717386630233208486648659011234104665980052057557170756258772058161623709250798700110169418699557774998058646249908293074731355258438527391010766771686455789412915731485222144567639366147535504408666887384128466184316741391227627397368955412520079097068197870150349890856342151913570852676597338656259416102868761902269055457999142973808583596702549718938767962453021923325968342642081032193562797499729264972571560406872684844145732548907567611825952410238005156723704246855594198898603199851739210014070099726023220642577253202589810418540408808140198582570659029345105593453670847872894791371321253721854209194330455472626273029345284738120923843767383914804441775247699579557742331701703502657714292411516259206296391434593451354822161800036006645613980299568262224594434040812003545243598458659565684889660394497127493866790070436113326716699297153105662034948143053098292677465275019870239355088828747881970438109457718036544035433852351905520968573722708499626988061272272583125624112454919588217438215907516058770234100477893162456660058797102034139583456161738588151435082152538257122523147326051751431462786695602524198326402644991584608742841763805968402910926101783768169083895235921882400957622331428914090997456587011502293611399210324568875007937216454192474554695548755999548803071612380100402659338106907252939770775958637512078903986897752037898937495313501837536643591441467839050594669481223714234669917653311219071479614030721589987079356618144785898770181621079838726745793265310403959901727049937743535785809709664979071351759669332286546703867223211230121771915319775249118960313307351874249283462335579687751209276650700555751471985728474496690829468214434120979507522781355356513942074602379961101237143559879567544720833848955620309116616845266237902966153714845264781605193700900461988550716247572882190758962515756607050298734834275182577847559774823068187551910358751881724432555054358815319023810052508681270789972258546541773811386043471294950843441275120678663671543414994245941452670463906831346377870655763205499147479468156514510407133218070058948971193098900384177993795976264625013270651575962076591043274093637273863210541255227095932758121400758243857153204056088016405142474856689179920608270601171733316823248903926365261163778049467575740029389511248433498798178818424464050529721831374303709955788272729573731328115859841385433985139595093628045949058751321645897117585472281250039672564023460325392468614193452559339705899677177797820744140507525082577572112109273321020429607459483836896920071209883804668938106956160606879091593539632375177487953942036289669617699805549627441673991391636680902966134864541004214061349245890259527125416519829101110761134709303914493511354407405482282505446100561735124152226292596253667250399626246047004921612774790940463005758818236102196161899915635032344572875005643690478811329398283859793268620031999779231849161157265142256823909263104939511037041455802055787308853714902727347280131896591386679902727213025615486934569185452827375321641105276327178983846168212839607794273392063510395153017073865142680371177201625003861317396823323145593499979567414489500306074040904219503919754591129159366644557601573640963561754376746595992698417867564792287383582185596765951332649225477973062306574772598174927783905966285117781292526250301253075576857644013103072266570914745096380716226666428862107132013344906171433337428465873969472368322123084543027174922160313526711586263832824860310439169202083999403171115161113973347361715817923562211570512844937895257396394311802134415948649113894837385332013083931488171713587013750701109347896855798145683682697239472377272841960646170435784633441193436250694400783445053388312039389050509716882076766253042086471809659982733496323950364821695860072043894773577036752524580745666357309595328464064279019080152131532421212835916614552114276380517066662368296604365001931830343706856344431387991130140236653181588193258963484267186623351140858973665998712324843426981922914240751786254572461857892271658339527090310589575196857684879077771967853286845688933602626503601887961157022565279420075214441048572703591121101161761747550539260451963221647106334870224778267636411786582309187138604428749453497461383375705663461115563945115376342210543432243809209855239280789302203981907407448453438371668823154932106184728133141540095995515716780346521051652548735197286983042125444969092014413902321804075386200534523855477500441031474916516625619931453298048319162881228222283597249054721061101471152166869558330061703707094810046919300713140747611063844386709934449167213925828899468108481577685721119234886668212410511363657870664467629777085719832906753981109789171205270647832394285409993058104760360359891676484067353148569876285064072892596217471392836255199737123484756298437633361600751384894261892282532274878370374644119150442559864644482453609426728311919799531262584105557672499609341584346061795852941433074928690799161527395632011589461828664267390754865964871842315435900074280966676151286446847284380235442100624696272338669115436118643970678962716407064268438860542495237599913057448990633513043212635393413590486053963982813348299401976562741525156985482094969136963285071052670929989769554575047967397761665460722633127600803247205892732781962305791220466915531734798439110684491933268549382531525325279862177117281454691005060533611741526734223346965715760187801870082414457509828404087997845057861819563718618205799654330006362690671809746187965661351984706889303272893297693537675676392419679652005539391538359457816193388131677625089811110227572072451832616984382495300860146128068019606872740881697323015676922720573375795426093498344490621377406371849359127912755880310135662854058570826327577559250390483953434239012463963354032139065541418954774561283676898444195561748509244632707483575615093454840363126149847842971639358109189497208875286010878255139281132012449601251349361636186168856125387865807298388326951421370394440004157816798823681107776377389776376712782943925617987241757475987920366935959811751849547935475065840683590305212696293135601013216372890556682123203568241621678730321690266783093630050930746299977838182658594777260805782476956776260208461195678478896094914807841139330035905626511555503927361147971582538818812164093775230709648708507628357255781924369077043178125535732509028525167779952617174501764440836029168347141643430509429034791460472974864363484620462112721414221156350476898927948811258881546843683757131094323667887464135645756552665093866878361326860939917783017617963729189844651715083607605302023074755386379047815262113021048250550423856633815467196310346659452408556854261496517820581002172125133878150712943595940390459191908620743807365557353661517955497860424298198686680877538565181673199804532265584831309338465963086384867110231964484822212905970854204002676856503710119091005639178406976187491912818620175809608050421821227129742303138438242844681634524667364509740827062748600514660157099084019707201693640528491814585425332365626258537924133015422701424984794979035347686082492682995245688885005340258617450214513758800879776228586460722047875503079010412347382443920875487187677210099560424292938799838409095371458201609809357878971390684336872118013783217863406765347602331073176736237355982797663755090235449057010312097054873204645308634470543000951699867915386114558424762240312390893280740310001603101836650213534454557999497317147894959148558713863482746396871133205321854530065460665960628551127154372960006618344093751592176298012928020959819377751424328098594087455080082777794370998324688546275909836169655694154172369658980645961206584816451655003326417074886850896232127298722799026209158743188818971901726766958704317293841197894477214243337051370114907461233613499757500939189661601269298346971465048546544987796194086265163475076284331845630274482716330277459801108151008132230786057731938136945569784822996836698218535662022359063969188111899540976079570464787805985085696473829162493163979510666662766661539332608861138861986579699513700299066828997052943535870861781222506791500329931669744434538781101358147775090149384793596660965850388861823932018028941241687041914142563015374933807432779109795434240420041081820717174473871666741111038221087068021257842401298358221728469285733627561789928810374202094323279187044451720520844153003487566038236857926311376993320439734941115874961853420230762954672113855735696893295562609247427771661857608963733787093677918004922370251609550747984563535635442043035247833667643355381223796108566668025691973659242488331779676387799147545567250313282183219918254645500200215201929889722637857364157126133197161252563490866532330107113565872661495630473453119101414241957071293423603482396133984265609655884625457339255373564709917806912051219725440631154350720061842861480041052117322894508468125683202507965890248950547850000302209174689458320724909215938427889473927914210619339518949027185530170966877903231926294168617243987013114071204582116800238812670013559140547003323356631835760258020973591896670709530688262609923281783768950781866712761642216716420730644910640081744281092247296751006096510595015260371441995095503236314017452199992471768973990280895189241631759715242848072261104142043095654330209870281647658793792792370499000819435920459795977154031822528103818261955947091087687355359431967606938104908777415356565977499975383100793324393990153084527121345973440030706380500281588643921006257686778691051399896434121473237937295768465135536227700901931005518974482635767630868051640789784083387620536235047717138811385433560937492807732728311287934037383145112819022889109524575530042049893076457789473428868938977977004393069455522400966736374501590639144637315624808033678914480301728141171860710505438644194192942002245392705531870576232312794346226763341749072245687191098477162298014100396214612659055260846077350679010807311347741308226877947978328815038149517005563345246135009896242522487500833778734893304712479543825816583961288325187403592774591175455199955391560379209534484896494572925353294330380558106819798054583184487042613557242466638953558205737508876567856628500889796674556932018953210898789246079402394227839965865026883356931325629211924086851842301693834756520857251188563932799227010597050304032894703006977042004144993625022668460508770077222997519963315571273780821553092112542056227526399292475690040872314489902138391825487655212391939640791415503537647184549218062257072366611854689198818061865761587343875850345315301546302680223286873443102701093435978936684756476023627048853740665137962182076560369205757910863945054803633872774732107312708363157938757778290739723317094533736630079417634708640575033192107192171997410783169677346134053129878857103512520417691143151554013268550745460306386038919612059035431898644878905550119575230208322667555172246693860370133909613927986424696999857736575413015361793250223070756626625954584595089834483643221540457133577467196882958234266650543601254647723173553557374498144357242744416650692286315145178363885718355028257517770668331378217823125524244713565919765860888052808578432625422505394256101992157611850398751506528074882321457883283346868450318950678827490105150040201094662001838682966916297593684824022987753161877177267016290051359910892099771524700897815054409392133127877060261236626622607555677971247756564439031061566292734318981011284971318156996470749559205927285177545884278513836489494324656348148809831154566117374970248323023293448896239780214154749324037802537162575082845307093299829327827468360163800989710748469923840318700907838361205508827016373560864303319927882189710236862285127271236515130360478373292889797649964509849573024552157384198742839055584698780864164284338292494796487958266174755707759775259919273945256849978865203513313037424611125607108080268697866340692819139875131668955981534309489591296939001332241622627789555229814513637164906686112353759295046204452472881307044164745677610631487348363890855701081160635908530613454110720716722403782138706413961704075876411930234198722979950634666210580183908882814064846805643288948407769707272234251935014726339757940531803298574426162832711486842957226220077328525331043610553244508337588585627306537796144603436715285447427861430376523536256810720655760516721361544522807499088747067926621553936277448138833227115089388732124887700674073542602810672743907769008387311294104123669523533524057522447199304845727356655687646449476268425526918537147688194689486392421744572871244571777828612453189814136517040506997488851196117213311599954358596599840677851120968564033045834605810384211829588076511766873597258868119832883151542172606248583991478097990403451358485291919570686616374074719864564485915595420137882111324018877640416634769049707939387469861800227424359794698309940099706285001993039091877503139935216393039680595310477587233137849004000327361090559055265487869924058859793101298821808055925793610869668332323544598914658566319827740496241890553159201198103692153982132995472157662784942271740290271895796145957080063719846105694118763156861551418773425389263145420361980869543220836980717953705439526004737641662813707090954888870915313540317404637514206928842981899666586225657190201688885108555285188470335889799113142149534378684592431110471749203240608077999898063339921344444866093947914006887386558139497145781934114291107347163974168117503135102000804585951025220158781953445921740110979681545534026253284421106838734526278648886233000182118062072906240054417655977803185463566071597705438193920684254111541981718448304136991373934765810295871472418617104070389364038871104774764858222414676203043162877598602311559597218792441411498646276233664472867943309577660065568342650959956971328668603716473171639213959212536835160347528238763722186937728475956305097893347738937286475040065468134612490852792268006086107331251307285690511322877749671180390537370648793177448006728742613007097777385181747135146763919095196839494325057164287582362130050131454138212516042994316515426992443754160385534304420162504029383470028479852649360205673742715070830068474122965129138842084674454979353763086089091357423390194719316257598819146156113319427585078688200932500256136987468356531861395192498492239419495361863333547526748781987065789704165819508164581549795051672355655874660601021784306190253668928272314733450654528767066918211993196608973527727074777552332211880139253852939041245921247332867763313729682318408274833728682153924578545318244661795825052204474149013126141342618627914078667050849491077461851870630282202108494445475014424154830487555072234099935938728937852001096478198703596035952876267165506600232522152517150423996477109889836294998167504206083663977434514891512108172663964666311565435727230081664955350870146010585493198392601670778440255141354595223617258968298699071749967021918661503381012772512646703281131437044540441683628634437418317808413160647254391511420079803964174873363432266435300216046490715102354969122641057650407307884113216407479444842785113976030197780408977908950642941369617623550425964348337684650809684530886100426986144782338513475063127320156464461077569842454718100691631630489459947661569657346524209336396555143822188790213862701543248587516741635889211745441433546793303784618250730599468892436758155878975036046694334972918335290051513837790325062623636710772400044916086243488330173183180089945544050012328242630399626984997475234984892097090297726775758710584485064788539266146629490607294305870390881675768651237055068636394902594567547462127173215656013601431753324514670190449671019021990102239856185585131868448278259297804288155144657616604281839529654480858293600611040021536335421749096053055914502617620695907254353207055524895874199543730222934061043458522963157565373647353045621722397552020848142982259153712405360153681348990409531087050064167153132987148932046780510987712112292321793845432506815157571718631474339133793318992140952570797471663946895394112699471971964894111712101758041284110001892498124243827172746940770554658122322521147334536949645691048268457435998017201402785814721004287177626075101633277976957210261141919741519746538273773322300342974495381052780750424822518815244163886167621738353200110977347765846144724039350906867991956327261024013107977382040081886941583892979596867469505099896883338170135955936151710712383909491103878392457434955201857201537839422675007936158726456019146558330848548383748944534502832727355869200697401316588683472809280229206020594757174274414524013464152913497541386485162867924993676213875281478521986743464234332699403350311874640653659040175410102129956810004347116723420708538770172248414375976900335016260998628533833853664111025499363025887706690729816538372866410032898817284789907744659883671873056255602518089530131438135410938709721478473078065572381515811368041166372132037231978975307500250124607713644217661057509243556877071686300579954664226601749416815398236244296393509109976121376081076443375045397343739093914792781546337444646612653775943448094404549811273126741621483916844044427700121839994605399848187082592643074531683242503447675657283414222559689405781557353159655672019967766468153334028359906681004181793469184665460239178974063965526906038815410838034433608416389358576350278826368140021857912632478467781376386580522683008321503794559322524674765777706645111469502794250992877429598464644844935294533153871711298525821094184143431664574696175823190843234182405921785424076586940813778312804514179783662588214266844788611400828918829218864568458813081233055776266343814811593461462712445323976392266481683210213119574784549924686620902831170894436306216894542404224340925549574884081445407739270418163258201277552537159609761547537282669593704874227930932609912168772870074349035314643798701967479298606221593448754268437307855813552046109011612295226143789158369335524881691451439695562643989619454827149993081387542902788595237313649752599339914044481033781327739353817713621965171192292718885205200352391096794579655167698509971720388388107567481151530239024418966073102014288011207403593788147278905604585386165591959075445417801391699891428854256172940160387117640893805052754015580156358140571194053433519004376590431687614098918121029950178039014748288758694591356863344962921350807387350435496486721607005107748211511742413349097232723618003745585429570363331891286768605281416677265404739444276362020857604942081960288642291018072960396946118508846904974803855936566132888659614602318488160807896409053318847051097731414498196586907594990170017440998312037953459277980524617345888948170793683495361402995267393609800990407021167393247720503562187115512859936206020872842481216635139084473691545913572182491675073519322171039549276695155515445388780364709168599549095670689329370923675037536497879994142928326545446887042137294766996825014559507142783301221367057825593488032203807264286154927177273724272118820747526789790848393685272773061713855316013143504358062479761753323949749725385296003299481677039499785506634858494778426933088198660963936957022345689129839160543694649816622906571459410301608937462712142099602111892360955101225384266988275522926134961736322538738065146743146708173401264730056232793098629900344392757773172180209787586755740629908338339164582540314507058219122220881767782906734865323033218388099230595479874800175444969146183621872323253370794262461190959897637107547896439068283433179370801514936518996248839481589047379928934995404621228560828895890169644591215261324407978251850054285221767940938937293424479613357958024296216510080830413642071389990359757904262472997744263389172104990722306406263636475111052361527100055601169013920582852729364133842072929848229704159933854688466103507997682829415974549145076161683834783490958477724393593119131049960270095309552081339490952744796038825995061322832004237729752318102729280830767281578519623899069405844047109216149879994299529248698408305267046604405475248659240474155516857803081390599332612498469141298485002573778841171630568452437411921356702447550980591223100817364936743964929296085462473089078304041865096691325740091084019370470208793637094112440799023259592300757072254681314534564769470404462753328984571624906639117772982013120433035456086454166854266059939214831262989271160509237843737712392206513609054806015493484740933419457507079566480870676885836724585386631611393893782267045549453889963723987465243057815738482336482110432620300830816513716490349896177774386630789725233968033021330361266744730603299755106245948886960044106613301030821223209996231291725770254946558757263776822848365330119467907172597047901710617527652566753901168011035374758319590210286994958100533710325943642960532244927796386741565101921836898274049442252442614355676110445730912307094025427076496367760925023294005373217590300709732996514306231503976531053669900880919119953804286689027751206723170874719667257113382987427158673411122679349875689647938397020776972743513612603855118459772039285762017970973775352917912581335437285746938169146521803502191589809854470858244775956424611245847197096613377262371845617900273028117930476457620109830415357460177156153536767660850822785257369341509148653111492654381796805402722956804707190431658101988938357488675701649633421491550535880643316258725474881371560024192937864644889861212373036349515824653556252961395996135459697656695636199443851646448483209464961072844451000504213941057435417386164750080746814639176177918365075459753173009047199369638990415862163160229581226856724398820182156091459798365632865202835594975894932021077045938080816672109967104385445342781813471834921873778222579692715239556812122552022910492740420027543949432886497676281744238973012223300287049224791671110758620270181524923143783142966079230924038657758993068768626614490079865759529624022912967849517361840236835510678713904734823881847247755672295777273225571851489813794280679658183149651342902183968592279792577811611149876514694723243814766001678519181104953830710369699927340645922194175639909090022414231698069432413920930250526967365647859785533652057210961333407244359055658620601113905064153863736802718135007854319481091323930325266055512990695790033836290359940670095814534921314690334836482729025921001809870650709552319941149391328024277493235428770636123398634200754590639088323054264323784025461536529497622869149089221873248379385126615287828486978656706985812244406680187435866311969872188735277318503997253546619415157518445546600761125696534370789973955667815501591949874562194560701853655594291645980735887927584005568439414586097628376283413041511763123979944344634422838165580226833715019529425262350574761790712045362602555021357691806673769666180549567691665274613658290122810914534450592041215571478450058277770123857676154498427077026115217610783398257018131073287988153091230894430445931157874607902646843448158513154204795643404857968432592963119958351212437601687155257181220385782626555305981097432325022865831745097347680423791578059575620246741394233261237679365186266466656698120278050375334530500029319701261890995091066248251994370336811180853305060916308478807714762124540836726197762495180883817668526854855705186670856812134534942785506628612249079470568516250740979439108668388379675957385566905645415094017941385930165319866319350641232699495774788253289077143187930001535568026662618636635231467746272806256654515596958966517068705332071632369837128859595907929383218613266849774816727708101021438286364334240659716122727382833656838187319634247532757338643054711618825483941620556635065801678491769502293441439736262507016503414146677640362945626612830176091114819253701770897094234505308594615269367801149824846475561060334002093438408449980527704345218347899912608815530290765172763266023939554188545489151624019337337514188977531324438000980619388632163369782615015328466087610075062304037197590871205512373375824594182890884194601513505225342893732843749648068248766738814995432508072892277094378484409811934919590577227849587765275287021012387673344936904253724258101975019714243579385459278007163505289419230167808006977239984618571607221418744148438819753024204638024145398563584222501408624171500749108823301608963768023310746458089212907894205748752099831315979055167634242480328453213851898584222436835878111817654708953071824300222682659819389814915021867640064310940273898148571284201583960833692016303334465598052137589667271873872767470058680333675389876438105067794515023806806134410166886030783996543080576454164728847460475550879527106775646016923473442369910902529216265072983953272977292548364571362858105037418021455444092061449758324562900341065119759535568711458048448115430783121459300887025548579587726520925513306291914970873012038217137361228177755291844682050752536926935647025258992342528957709318567460738053198889901603655644223640331713408305694521223850103985085854335256742679594917724994157720649672826588183045179555713966397580804419190298908883501512899259568408859565591610720195754669068205698120830991192822691790650053312945789314742879672824160123999232468983803567547292603826651859675050218668616972127031599982230061225836969202110024912293658938611450361886638028124276016451989268778168844228897101039660355159187095340576311266416981763861560637447216962759788245713323477473916456951131253950509127306341581848243365262812573252110238482354064277833457821158495302041358830332776198183062609655301210572896103520445792011698253147821380175782380392202182950755988159529954023581213385735673169111943848575049199882703305004916054317634843372519370463191714662784767551410052584761504624905790211399510302263730139484396970369536743090007779508640283604894017939794530279099348399566932858845646788891798824613402210060033457984760582596603356147641404251631436299509035494125007662637239828409792182041570664352133757574949701682895329481301779657709397370403787243420792756983087425965422941059681980324985247507195507713024910709621580256180960648306502169494301378558637142405905521151916001366449207898651732189505913951040540061898235746361482467268411722306329181346360362196225021254179457512854009903345728040554259559562657709288760561289629406841656396946833672990262793113329124767879320209626916234191963552892814914905496036207457383436043431910174769294470250148102052004202500545854820636380429272132722387909135323407736766257174279251327475513599583532367828417969794110391769766064474864339063718189447572008815861295532412913352895134385127744443341119215232657185653737146850223280017814756526301031461142765652747622389694226738706785201395726647969506833325645119205355872895861698387093610474642623137303796895483065453375486954242850022979154769928568213608009201136943634363495603615600348237991823852230023453996894498450164901823758123077374168438241995556918062719495007549030535808952119726511271595197373982427799666997848626497771580022345243484489114220673121017060740979385202009107373622843319375975311711262287960434828937688617451503043002635269027112467667048285612779479684598931033169246235539872028813005918057763021955487584065866051252291968439761404516588396766628778414843745028827188211429655214248998355662337274700065123768098983081999792712148535582030315031550493543584600600990902736125331744469455699758138614553614352658558039551192849638522835521074658622673255473035223910676365448800519337772986095634842308330905186868333924395053192861875057069981317107231209226413749711495415262143951912776966839508254048637890061509625424773515792847193196878974349896183791586850796179030202042263804514157888979226433957598304008963232657937495543287323890485724032205276883909485248064734370724878717079900559728455220600511102051552931843703820151673963560101497664158548162359004809297527951651679728393828859973995998180672202982371261843404445678016502677819000343127838980517656049337354421158050925235562599909762354270472899469164045320065796304923783681074069962383974582538081165274020705124416708030384765980752532506285454234097750228925335598054315715974175861467750422113721063902311509903552571222887982465320675325070729948083063744219231482231092042650592447116586206703621930732361698534390427729300293324144691949832693615524633368574104796885727541671269085902206955011403417937223090557558339743322106418045192842795252349318997226223895637137624999729214652899077335996351481088977223001823292578822877338749521258965854109667108778369100386598637941223496721309281908069820152532296374470605814855800486230229896230737744792595400808723518782230554298730482052431089473587902927197930540949599165593655131278507042352903582182938251446596447763125040081098095005455600675428284274610810148282822942623935446390412628284478206995318949997608166847131881512306598821174100029599391389548072472400441745970152787528007292572933913022387873946516611776697353945598829606251856167160799406055698733891157472268218369324393725347747367073446353357281210808258697270452576662444736259936166854542473683480444793391345103506749222908733141680453223976164512433524531033747891495969688577472418444526293838885220014178012295323791408892586220629933871837207847835228256739614539908486170487896122891578142094859139145206966270097557151518377063532471426044364767553763048692111962216165798241436720696091793448837045257807617457038810744779949682104581838109981583906271166482636858160509481743191861746601010385393542623001051296300585212229228029815389098003471816312631391956000463275620013769287716853488937224878595379329230963649162067402797958538246853059012470637842779943567386857308776387578579125745425325908311699622881667255435642353016746977659801425328023778052280702279181713525423135775707882670798128971893536921064076524534665845675275428839899323223978796161246345585831310211650054431105565671298449958600835187627582103327798994841268578267841625077842858245393865788710768542801958426640399631559046488063129999559687320709966036784734150300485971827644177110360597686935388782686263683823355666673508606325142900172569255322176567166980882820643953452454877072726032203708723555163069976178791772574292448812973794801247071288781486983769832904962399671216584444409617569825673318556282765667324582441295117459220445977589841800984233382933293799454105075751741950493122438438704467093462080219585792886243051936744803375053560562693603770476901028931986857465911428810203031014131675084532922622866251798902043473014064879582162911685191727228952871145025173035835900472467640155166130253377348422411572424922422156427774288781532936834535839198112373867876051964398547531630108472637537891175661701608784855176911797394503857726762860421480199510471076406877895360942383941664682554138155492273432748001519036432519196045091423936424075166042487758182187497086695709721889440473597728094066685874279652153193332550681872354135163645628442169078518654791960296523646228146724776136063267577471123219754817761545370139570997809031691525357906918908499212384899482753699588093876532327702981553199027501773843625357348877528138189544116557687537654991261774274809724131825149268177008774512848895393546345337795008296580370577718851559989764436024647528067203548284186867868071902315413525354726972091598797188992657429581854257005052345241429662300443520138233930337820918995424334127949129952122209709023837973192271473458975264927807183566551629316653021017237715363257213150661474345511430421328495494791880434207504569973305595818438926172011454246519294482202899947972874479234564628910604507719066722790030501038756929226243896949526259707125564326063021568108862596815680853851765566303174048861685840662664974777012472324303918109218938858367087462781833243797760689060374399010572164758915901444715562695005700880516591406174827065878987015399505482278511379998178910243200253793533932347252875294957249040987582105449906707005414108979949106480299834649117705792990417976236466914283080735907709422525873664803706789993466640186701476922262811823547958163979995943430414310236363632081435251912780824348427979028136507323609612616028010110537306949992580945671240260789747753201739312067185843866256316951929519180309994263899442163255103714882610235354418143250323059725805329256501796471512867910904168573598707455110981845702035308694753865222246560761538449425040111190646279921856975231839973884461160902856170745606932573902865352206585770028249990770516714916126679384582633827665691806666002079953381851862034689338383446348377195028660535419250007061033215819148833088710769740261708698505676048232469391236127090849721866885099328139735393043419860615374356320901031544355832185030345912777987035604046546409613669096205094751534567330548894940918285541499244226406841347890660587125997185904132137627142256282835727468065743229534362108283130408765519995811532733130058929203351902308161743014363882671408940313585633288149551251690438364543639060739015753032509501265353939874144578480507453791847199628361051500249562082668071922177577525861584118659285875022026759983948411540167250562047112830973708957870797500761411576762294085954403109363709213471808302215839500808494601778591706681228615680918366068104945488192712072802046607084556304631342327017155905191270762289590898536637116459347978372940514633180724131080041382901280807381257180186266487944569129319233936150605070666890163886926887585553038109322615221544505833868731187795268242744603778881832280458204863257306551798587787749622126632459651433461296587986109559714724963372423509264543347229664904243209398978867380426825764879124637137749838552803446807554941941339200760011142213508140972189603588995065727547610163269060516438184478507508011605246105031828004892524622882298004681381933160443274485717833870066778997240877303832866236321986898286442060260884950658906994723056849146337462593784890215042276669207670516717757838429599257914167571517523659315402495906500207371435574554334747075167929091143456589654461530997884492597070547291346093891863820203907979643325580562968231700421020795986618286212757397092881401180612203770913668715891864747532144791363799597926038469971069131808545670719738276189631428420221689731799717403809775878407306927675437669597682573081765363145316951556288070341662960155558837195021586950245601841092464500016499826494051911354208835402631638120466848318730173180634146007930799892102621814213794650274878898898466352903827129730846200139861762130341810039005087380807630337329919230339379788825512722388470132270530614868392809600002738594533995814324859037593185699111604488232745865955516866030994956611359677496105463318639368117283972860009704108594073889311441416019412165259435906783201127723518722807437559831647844940300204574104491883256520435432462173692370896709091825530448053415033347892526092052098850630850862295330702451409265580737786717020497628242690902570294069651833260236273782966615674291654043860829354622603524034126187032588828620155423370751651189907273806032887160210402285594172361685370847305908590272460616825397298792863990440598944392884295183203406173781785076718091602815609206156479582571075459290273420896245056789239124127070939088454374660669163336710476922776657109508210992056595328596786839336869662059721089645143243099025123869972178363169984730945652666053366397213825382157822155585506355128186782266281239920300768206600513379953352909469598315926281488286100323828161964497608296061871893073815829570680164586588253644917523008143972267785739738267133180630214593548582134952169943863512844154835649476809646226415958604907192594767916256902850423942045316014825028013899335131399132452574255833878685970358286636501913432896044496202332792108645692850407094626389575463262535359867755357333898321251758613335060476313352259099822438340999466650683356936278664904747785671112011891988659384150546055572648503607355597295964768300146767333175316671800033560321537290794254249509287752714763981706285265827537274600265385568591281270780103498449266396156303891798079616426687676900728585056553710426675786407639023629714807300355602332056335287966688612358551198148106590240064476548559041214853068512698011606062229417224288171905633686952322329222485829774385421192299120927213767114797310591765189181212978491976972862729159492398888293396615666536019049731274237645471155418932014581125825232607625378264777768990947074510553841755621537352712749316947226159850284861573865170721162053795447136282615888428922312399462013565670842467322942329295331800634323566010174863221095298352653466745237870224503632136241100386021291845220298166302570176244132359323825347535734616380280760220478226564100562244729849351564418744877809585485942608821994008340573761261887226497167613404522583542205176868198396590595266973632504069976035511210148415235255174664279816630160663600500550159924743505871832862925787389586150434976728514807301587228639326926082893060338293666483899373136292478117169218701093529557994153654624220384545185090429048192088945311307134534396302273399289155993041989353617910264059559885802938129307107826101554705021935960586672514335796426014269846575576033571622239101205595423242664341562994249991877610686711461718638844025673154878600362425029954243222090977643488426815002899227149381343756877298721696939319351083543569874419951857282838058003074173059800248504266719234117564455641517412995886592514750234073879741984772663748542142203625008577121130433064184949014425842068466519598604672061284883629491731212653576032095009426809006365968274838284759605772286529945031711928329322625675920438502814613377160191288875460480997573059287318751339497349501632005964490067720505287738181812903961758965061417964397060538427226965991737637901984480656461674038204865041914757811625084895427670101361598013114664560378484471638170960046196698083108599784516260540294751180032507769987945804763727885831980010772737098532670296448222578936941485639919876400868842611752334455999092180997574423382220279811638399106245939275562506108982658597599659772480023845953126278585856261331183189697244257786680062051734332259865320280171279920625626207736656711469538903846915089288045827248387783052948727363854867202621126762587768777842001469985773141493782564119717821369243788114622582129659895341396846332047312319550935048575504932438041120536914080289322598670317727980354006859686068020867783656834120653403378739280087545163411063671970329143956076182610734116827963734036331312779023626781956491070917408363620084523586507750523772600415379392956338602634044792039444686955431900762614185618691722188468584339277027840813850622209203965654688912816574787447901608964236931545973624061998844860682344683537952886104609169571940207887084488481719058922997033680298859246727232880290218712206140822554454994797479118153453049723738626803632528913376472213226730829611077290747025566577748771653461944651241213237432720011051753082479153258442900350219917704894610648312007754818463753540499626254347636818047540822893872445924038470773679388324814681744079876526007594633350326534973686138721363714810867287800494494451454106310767764763987396591768158896197686431747924517267997349126161370624780027295809315713606003883078046097416631400961121507680907483158310308281124182919290052570591973777621177363601746792965314525861004628189030577906021094505150412731467518943954328438479912181164295689868441282599838778586032996575884792468422659271325134681149423619869138335377463853541039907228269829952342195231569909172139095042824911582132382436336906804198856075687100386705370113604987553216329709850904986724680908286020506982350442502965486533557176609616430919654359096840961529525206938034690558829170747992723996433482099671809766285848399506363902396417320647201985440857562531950269957140016913310942904859749531669546741743637539721764574767373151853020525615066896043871752143762660518713983072514345041177741668593935688527497277166618868203383058104303308374612585297783773454597751953366211416171607625949161293777227748561246817955389518979905357236052598846967856990238042543277788095498868483090537707080327094049173696647338743983757491105534750266587105153591697431314317273040449245606303048994596013339915424935273042787463740205609334329807069580788199492125336081261597395806938552270866472337827235147665921183288388722398574953374457823502532653518372632872577507975309499207754378055878025311702657449640181379315541016596618020831634605819163196003377492757907080953651389414670147409913413049488715466413389333387079003210745673616647871133906669436472680463081178288176128879984439809593967370015093243383179325180201609691086511327915093701839599522388850511683892038785950069721778754625992360199355436762658278855572064894586370304915269238454073017836628125049030889303273119457039467076698972448312481053246494172751226335613489665767003044441051395394309016485110909656043906616487641685315294524463631824670918726283376833811349407837740574246887103181810513260750208680737929010115671934274496647648618751698161048899664193738548920277005972857272669451232459577433025521898286104576692752710326485488597944124098064802118941257436980733128148359063837606447840937819163492939354881764521258788678121088296031609784156586979336806633666064716169102713710124110484933339985672899213195979599831297636410583524798012740322478473143906648288728679052860173438746703887693487575378537328579702458511854652238688405681704234533410541166951700694973286133031247777811504793487195795707941068323582424695502595235031266365921972440494317776285283227471769701070411554185991874901369739141053417702140623647000365624609751396704300431586223353792796656518626234867786188059526567829939366356374985596677825478411142098691134882744294152232639640508006987419349063501470003167622700740659508722610495005384771360787450414159830052944757981664486089270092529553420453501971062520584078344766477178386647662399690352186634427732063253547023199287323567127671739511188221371459173957074815235842321051548196696344355843903352502475345760396270787451436946810298385274795767345827262463850407410212811961552503796339069937006993654549988301317512500169245001847006653197992657144769881219487274715490492387791746588912781754814148084184315148007032803221775913957287676582104705928137918677190599593489012849349949139870730893303760529755272474108123848287656450822649362338593960312651283603666057497289258151949382316254861876155246228851941832062570007666862869528584631577163786285515589454428347912778689621851532439413278416809651701485947095248750687961500357242549355154614520475323075284900007336699816870403391344546586789355024757170814363819604278239239987629341818880527401555493665500227486730615956951107387117157803240127358905807983288938216366578042452757689671384244364074876029794775682618897299664068979609594874904097451849668650228357901035363188373875080195553579275766841602838899226347980768059187737173437770072878811891631259928051965368602299093649116752173170681645418219708306357372806193082335233034322813740457625387671730203381551934080753494989633397649020110784417092816013470117756930149878159145698366293072190607195388266665229584409039086383313815144649749863862361845970234220269421442699956924206847591728886417331469938267190936285904671492596614051914873441810926613458228164310240173848660437576423664814074389913731404338446658050315438433438659010372358813160131340260791717571580452792009509098742636068981519846239950318965500262194981657106898411535278374425592118067150679382684996967557416866687961884671892237479765821786183129997216780428105253103592906949331935131584225619098549648901597612074320845568292048742459949377350776980809057261530512505834758175812318299832714278806171212389169164454980951424703520642635209478262690178908411551820171025234657801499803631514005530722778890392049195018213635416203148541789321337913436953392243089962390127025198290356020993472204279272327400094706307164872200157428740954203125263313256849569767486576667999814856156177172875198831307563567066529925848838615463006089843190766941714662535838363403586325027612717289644139168081483439510375529117201502479235207462410354795481429003436367854471623037145523232710521772887941962836132989275198935157992812191861739358889087396030882517911206319507651812124782159255816177409151127862136291438999531873623937271897963929743665617231872085562759853928019641190701229113359414542121295235074087806475213716992928400913445228002444731204871496809326361830013407676415260652206154839474218627631934049070797190462919045325157779408984157075939132546527559353810783752670871744578160859674330898716717408831584659165345673776506634395551130861993535837941570579787159671866886036343015965654073848837675432390690215164506346705292156906327038454418399566846656669755398544828696769397201358596361332625408292050475403165491439958956066232294791331198366522174276115804143889115160603007910329993202608109035531747131685126603441542034994525553739837948157909678730330042901188572590265105802275142816435986578931319041271698454152052173293586886374707197999975762969723363015631895065552492251683912468489414131796719212503270430178351281215951852886908928555881567232075377710727855255434043466863259205555642396731095098607934780348021765225230849264814661421596232030206585559321114807344140323591465063520036404075482533841795598183980223631659033820717097465038220286895991603221627515495916199735779142273990296412087927487335626803656895040576394735425723822873615229575961450667455858295495933667795690520994686827314635546291312293379694147432794212079090547548896221752906618307563920439939106187776711947535444534225541586625809171093960232452141001328153793119296043529933054935998652410933892908344102891870079561091495209264840079532887180239898415651216847887370349061925805172927524633030348183392115098681147171519992756979569061539235104904452479871617528282196233734611993882758717078600464224373884200545292175004565017033364759808930934845453674792881244771104425088023171907660277155954616218214260849532303044548429918098831013434455800472684635638713846546365358213107991578815049543034718732735256728011526116115909776572824616908645704667250222580867042856181717467326190682099619925485139777257721962385199536670912355474150155802152437057146036634166742205763457192634580366976879947754263441484102903177281980192823647612738486497251603030662342622139216970167827006772850455700284260910108327959009720225460157541439541299621309992346951871800862292283289683484554779148964221945241739409893777956435771500547200252182619824054109175913487541763467770171346826019812608351092629313486780119146968810311975047590887283847575331528052615704424487460392121696566830436611033697222055416441933453443397189360604237046879170789334515884489710981582969870193494963712220595525790303736971025087109465487068875617291006788747440001083810975583331842114503958533480563752236371142404431097060310577148063545592074096365937886505165788460792588685183738974388602110229936794480113729365168416091978038993715272088226824071995709302272643503186097008398151153178229710398609576790468437307064965651914279995671560682512297445253001123188719412407499017180101370565105029220238448464166478132559235611854637920304186646214292191378100132968905094650824351986997412319278985829994450271465155445020488452609282334747359211711868333123992948073405360014006716591477411886761743395889321730537594179392441914184123773938332324407294177335951727810050984976573974957119219952528986955851304832961144074364612688251883818316781831262947922083962352959800148012925960149243982786741320835978594471724390603419660819818860193107648277738640778821303013884974286449919825947325181778395847051678640988400909543050225577198508176279398566442337859626117344457993011043736238498161593606076562424925174330431009691946624345970286918467299129877182824174868602069406867884247712470508220183717914813574283940632889358104861711286735002576218583377639322267810391140996012847738520007694203148300656890660980971086635125703584540352643036139034846282542998170849457581022363447259466033002743024925188663786962491749568005213740078087918760909738024498313408756431400565116914354387345838115633531227694185739716762327474385116601992068721693570530654034053902833411977300826066574445365919812704592269387705919495189055902288562265013031742832663654990904911299686124380587248709421483220091463501005814498908473400285115666181361937777956473071256179373056430442638901416841588180577687862295349944441454583279449875702684535294789727115776528240832166777704851593123811676434466549899692158367344765945123052496514042690957820391339315983166076240343779530954383528906729365013154643454944482651850385525625747112569289365545877324854068824741288806440936940603478674581797010207462582768604172643283454954724441722256614905943025899352149690788166425718094469517082663779081337250327887454422884929456562800441330941392726014146547576019563268454932185794458815079672414361243259068405492380991408117057472215688982952707130580824889174242764927145333638962929254072480181001357700592416233108722500886702110601660119461563787223545692284242979172178332184372028410352579903801847957278391919483116969928004521087779533230347745575085348447155823520954665813434973084185889382776731803959039662683922581740052897912921913043215165980378685740694944861484280597637223821731894736503605804093624327364705802524517630250871459178276789068903420587925135149602512525971343920364663545535035209953216113343414138784669079530495734453013989087149583543279144250545080369906996425675350779057397194979412593698957256605176090841418147852107376679365260640956341720720273838364667621002210107226905208537641950517416718788484909064631209384593896075175136370395695990527137440895043442733727584500060985890661338071361229226762152305626350522599763841579341203508044326210459753541995638200407253552505763173489013992191398928660859376023506751384307036325524257608178156308683899410971559877317641569590731661705782288747250017671468784349968382033531594407340067961948249100486468882642615582602251029873809760585360332340766394903666632192486456242442606059009668566154309571422950019927050494731979821098135522365652854091961023516994658899485748079307795002052366547471779254894351313640634758486698332794211981178584261534876792804596756186423510619669754265097476329735175202051397881380103183713458252897542364616697030134165644255037365301148067699652410203828729558055094118516075496277204012668671708138683070147680595661780447908442484910142927004293246001915477852557142493316284887833488325910500903201502911185739588118472481053252868392544236970249278623748215429490273202229993761464797415221376031513295335627204657423259591837494771077710235829777969282141374735153596017490787403644101202656313122102019149769673023378596855195066086362816162720554565061373773566821446763976822116084654919288547162575603865189891623308865956850022134703682117506644690648250521802366881531850370293249940084534096740375819457194965723222416635551443621926813566541114743354569681046457595873927335720090184584661587239956221673754234328743045377366602990613206289486097887151365225558886340400491972891712528384063198898889195849137313071668655900951591911693662883558892254953814638330288733943781061490308911871942074078338046945309317124387924045145352639883575542027685508109478042268757452454533594167970652986442726308535460109025589132028225708839726166939573983178972605107348961135026122238055873709152398737540886239587873752974032433743975642342673608211881966951098132787367342037240003794309585346310902223469643654109224518406105054058948408779848885521424778861940792143684152803359609072728240085196533450784315104006855709513228437830486795631210584293897031668349886259816946448227605333966135197193302051417496406753663342694369375062441435078884313686547120664686560924155776285049215068717631265700723954686589339288447542616732449873952303507031970337213682354327771202622724107399359650012665512137580166086994449950286282616319393833908462276808112485282064146142677717611155089109838008280022914404979355078048769699834815541847279362502925748837660019116015656352303636166713137396617398604247100867158540186183532994109175487142886798470082431382166685997982240400008171046115053741936833837017403018161545036607291021755211925530809689021558322137004191044929056220744566394957633228702151789110469731743248477197352824149766746559538843465841692178692607562933814960493664665677445747147456717839591534101958912375598112925922800665729993341090268357133269364796975988467899711688422803605792949632933516228369757980059980179076422306998814272664247155735849218524919984741076621496148363740173922963894467655800029935042162909032950915361058223270296218007798386966499577179884568000281360628548859813177470438775039253829013594663194463262839351241362573982671433405459166297506648551875593128183378307052137559175213691848303080669909206732803845340424434900562289036470695245856081057966226586009528151176060951203439802501954257580909770449960553794043709035690615941320254980985750306957688664546194731805885956883191658706216183446060206253758547649674367919674199919167154016916625490164845923325250389543802144994016853911978843787383413818483607209225629472447609102680550797935489491558839122941960951236437987692942019363871642877928785159158896389009925931261100163634113514841097508253012519748939567488679447065362646605479061901648591161628966941057673338017096930708198346957834284287025926275404405976611559462766377804018953766378725005215511928614560314040888161562416733133455963181943826829795761864584013156793706599349567606260511344486724647828765296554375498282094291702161565186722166954836080644800317797958772663310085475645419029984881043284365183207283121597751310257928450466278449533309893152851894696818602879287483115025578867669361094913851199782265627564425441552331307468784159193526473433267716170333805406012695818003373009195868267639709259413727975176806567864547936960297668324823083449458275048069822053882155888833600604764576482819275414829865127541959430492617357515458979417317881017980837974750270047613529484706188268438738186266794811529454996676200019693502620530490016699561295313082143173407689597455978086589729342105367366041669745372858579833097502592912147330699071412434675319302299080804760739847834276365229946508227224290051375612200488395991625154817229981073101535372848463553912582452441792417134313748756559645099015257767034183132545626667963838756714986316417930822746452852196724737544569125944317694374262934752550441441674153949038313932973201563661360204371307613469928511105094117469730538449358571940902884928998616643918587146597185438602819363573751740661437172258160600465030179236281660332821428319242052914713985885800612075759669838776058409743549629540992482518377886428608680555841861554605529552231125924596268824413615257675590244018309047201042266867364409339871429168313569000159520467385260315969253296943454309217089694788212100299877215899769420934306200032207345495905144724616804673913117614316076891257798804953136399943994654703199145929099272425939555812513340790310104505025322163260649766416524771083417197281477045172123486946000458308624755085184867623231868905950782788628003823806057980068540901688664767960849475754623738288840765212641504689696043396608237444550422170080679103120799818954697655445318920832839342286095878007512289729916725676268028350404664755444771393255355874279300683676374839324222145995018901649737588581855759453027284169999308009806839952120326174170909360334405169192579429940827708860317482534834460046862496909924864880857013669195646886303332028090511230264136630268140250111668815268298424337408339130967474319692821800840906728134538200996710260196820969186761742547567502562866731135619679700433410438160856516160210158504744135091900140775933107041770983458717283043538634662018674944633603978878960155457900182694816394347674895099894499425305635089013182920749418616762633869140400264815014955329394528469203384485542908328796431088225000253891921866942404497203517479417388468531245323210181724286811009837807521902111003012366225664629470111314361725026993543109864106796058789234089803466921828696564925291148426392787057781824218936031645054530474517346197937752224641557147053356765837227477676580398591516000365401814432209618203504793545672566142215528253642186101048613990610971020706879456896764258731557078155019167353883403196678839443254111213013033478967774121253984261048350234753229993077678133898695619366281810928837331503272293948224366563786922952404012335572008848874369011873335738352003616901082776913277751983980509006743465192045600994481427101067571068254389314824082324433379066075781586472727955743225631301023239982990387856037986330433974793445394905082106314685534057328772879532084582595446448773339575889613873942558736508679504413062176907284696223163356036435981962144289891692324742560846255012471403893950250924022696409890257087483138766778716757373932405372870553495491963411039556616428982445375551191279758632723917711543461125887162695276816160338473302825299435007742466492728297855453735796459691656002459998369818770660216146445971789242813322172306217710649961098389353078278115187344130723700638786511710759743989542230174700955195683521383418020738584000899603912846538397275263852475539122501982737715368416352564490196175129073329757974245891480300732757794947594473410861212214178706508186791000843769307708639919102548808555206967071958146367699670537665361164969532289674123749552021116020279862931208698155912366062312830898683772561653362789133933215267199211593409033278524596988928446599260969527199504365346429310453365555073594738105070191483441348974046281947469865644896634488459881912616940360115672881862028061724630193520180343035874914442206919119725270167686598864772134780271407240067493658409273595046253301098344803199430983435893276943971749459586311959337295119618291634267496217489773410380077822565491486027837071358888798250750201601344766570332814289514479324326567051246162547271963080499938448161508214506676223591447367586264330980255714513107779565480220328098727908194315885566098516958102050937451707362660647803980324665776161013644170772924627088909092999370529988591461762976490333860218556869259487289504902158141302533245365290458308222642791155671875633784395212489550891178193871434031390022310438312470914273300197470022140831556197116144674761436680322402173462042651224863771512367096284651802885704932343144564632909412011515927657215030361531828024231206187928613643277186380162481655984801546065838023091892194087166871521433972923652831310454438311301414376353947401313513975148165075630568164594920448490445759747674648714581386846500401738876250534088183164919740514121238056856484355582561970611610356266866865514669258901333327635495441348075135694111217419897599041962576844503837266162444709451560225089431949668660669312258261979249298481180724293276610980669587979767507583581460632872561222833416984885271357322461880245136209802286518045850274290941803225554568719370442657014071742454023574738744802242025371342605855117544959555471603205400591931049411538594841197552876853003468482930733076839998201968875298275947948443880138135138311397410368360484054960036417508507053522497785347977049024686834968972663118109509621710208003111643291233120420658559218468790260950500350317983679339955736132744653478438846729714868527852300112070123835356247988422792035088995007535578465748860989236996890180009560795097039980324130348430126102729554611630700654050424821158021625264016153570238376216182713196148911412482099529030072463447086463494454148673584019776951987201277880407654049235989827582912418958348861824308570083759783930339397124671928593548153646453539005764494564887176948363102806565982135948220519793731040307202214522110325173875382493182260285489444401859595224686126015820467031414696731197711773817520536272286396998492868495701650887588143909120335946183163196161532579260901308611627222385377656511258838492070225333181275261105795409357559292731073790585781339502735881269881472678704581021828712542688801852536395172371375033089694260885966596577598836313828125811475515583385766704347049841238383667794181779801292172699506923725815301913893387961326429656246603209347158563067640180546758057123556088161947905852718001493034606995899480994432579324182535499729529833689526082810797816745192454655230960841880792956902622185855560549728433884022765961118570191930800140510090900207044933848808545511187558679617705723790337806541167015067439618586080833378397019235801865771610828223461037062813009536323756123201870211935339513257447960752695176160655925220080130749510608777610977204958748819587201775025605136369338691121188938369125371621633020054369392294743439887558605141765283954550851038133510022561471324811901534152234065968386540171692324008657733147840487985810591452444415016151893820721665779425055405031424145442142275205565310463091148099894731996677233883108239593558749755933070166311898523952226297896723105906114686404528639987697013139087776740361722965527574504158858264386126957286120017076483611029540585868771417087556999514125956593059134675395122554906923737341377380368649555280490854781653566253712038415992835761824537759902740062275937601561993360387099079021221795424932116336189620838570539698987763126482123463595372174994919514018292570603326238980539504513208313879175668015614298689937508071843930077564578173429588690661685244823120045852840440995465586720919599098913513839841925316838039872332036777590647045881262568905834687210229396538608071145137125751180460474846488867208542971875629436752705509146054744620018368848343140127999086318243307853631284730827553564133009305320281555582939366938041004807578713188914026824987682690157026470240386238788317734122879084063452426477280228447643391090975259725715619487446120472298675334994678802720348309279987635688058532177516919928254676285984556997791716440438106210785378533762402296681987978475269659969157526218427858476043684328498611579675071382838811381969009505888433567571149039279851567432183171969423901128686920475937558480998618586823877334529215749204976846917169673213110440702292709735010019399420155071142056535363546403752605956867260493979751860373063807590645261883208269962817106383092405593494450407092705383249930405023057498780945983081111232267000974056372090819041859701482761207456939384946142524123357898275068683016929770472667999834455169599157685071460155246904601170640312877556474966004314562732520458085423433893422528646436611858458820656369336965519889213958040056548265869846085578084617213141114965720664490914277659790034534895755636756280378347958935253819419344794647590454136219029093122030262994456271869896900291714494890863619051902332443776768673159605134224980133836984430035569493308790979716160069978233243092171140487080639400941997188969937965378563879119858680645370075766221566572943707259736256945525139908427418937080519376738271822924540147111886893345633401254000756717819952025225510413854330793211026248430256207431181710187164859458103122974261315215548692418523361210419588373508567311878662726358564441840814726050662536323550886349683453342429286646728469752597514587831293359921824297570743091905194516025460415012264623285481247665007678652867699454021402445504271012196648114794901196827244012579928919312878270943714822152176044828008943091706676515002765794478568986734684748675085199664782970940513585052620898967145251043273563736660529156295305456552708965780373327250527836203264876182452351402864826643237422831508797279292671813119159334034918397805263013879961102695275562044879837589852338485789647509292516448244091265234259309963699529455882586145270416014406579770553677866161440874228712456719600656175603680569442391680932136204658833132838976932264161595767068605552063123464519685070773406152440809006599061525111480791087666856929557558222944732331218468623635969061628038898932607622833496596478813103094452632730709990779177584953200870908566118354053438848348584627670025293001182455302962688013234167523478860022285311486286662647268208831579726753909178606645337222957780746233796380507473207858744604767357777984891114979425679520778564339348921608256540234975611958987174039816865525828214427149320980721040356528186380222361441716476221850495498241643942562009271993877357311901563287961365240532900946135933347305494923185269899502251073135325653758625746556365959348160979435895176665418875957839324910207742205588949951280265485336881225328406461037685044809162708895093396266965563065084558982851393565009593852617372936997162466435922214784794856898673638125979742832048724396228264918822715831926355952324344936509464322928925443016301754250228533923521902134138909531451395892814747901754335494551472548546543418407724416230030671537659432435644986413986838219113516225608573085237897871092008854497190199119940963660502881027588910513237528744814238539979107920073382255587905163781255842373926820797255289837747974116477287099686147728332781265995760801136765334511811035934240332137788816988562206911401708794669389001826736749865238910849634244918374479362585774626965934477476439244637926207443549989082372069789825422227879396271689054798357070814494985507261771353100596096135911134488554459309958160595355353768641249121613408359408609877940653215734880078458441072221182128925260201940283895006233803725642309746810584125755791840528559493852631175914593141310432311588695928118288079045598710295854655237560926416256101698700122139763370598445230448958894530779360017454931486268113184981410571446539813535250085462934647119737917370573591284839463782423993638555915486230906647463592201750303200161161809009146450996684637695103956873050287690381731825988680794858146763019889828180030887527839606296140462067525275306193560192578316870281080999959933018686665793676385204910202854244841398154041159766207311118458759854341310729890423573824273851654254371603221738704288109185665018819365212678392189987345242854391689038810356894147857096270985793167006246582534750124237241844191080132394005336403943352401994821281936361037562853561904445228351471644114782917616945785714041795117821780306985914097376918446155901300313878938703006766740407786416329341227842063494132265930494183405211461266664008260599106935158251131438400685548977112354135170644438001427727029612572069483957042505155402281612118576205062514396710291858611483798404901742826432846435968757936313684276789748282470604646905174415941485623487895886965041945452926604978873672330228567045184086781935555671812222742464632355563597332616881222519514986652050949630135842725073525449126737680907106312903477404456798723040740126248394024063490702897189664798252158648088214611126057553190077882098607886066080172410504012785890602495036549446169454079458358599347156922376995317797273513215405391304561746825298530141093149171952825606192687102792540707482529286383706399460951315785300299696108909642669699917509559127928654359271743841878742075361527483544574189868519030548382654953507014407607843792437266385426476123309018667868413281321711947338776421826670510055867694360858751406446450707200364736363081949823627183064841217815184987933910652882305063867080320567483172743315732479850503595229594884166129316497287146642366791917193758165353917955363651166908749871982459430668357831991759010045736389084104457568986114298592487610418054494637165172364085724553182637618823625504263229515235136351670206012980401599010582878711502274363231855850680786025784313467267243701891400052862890733554370736184901825860300074644530300726154300109072522844973772292174746283084926527266780020510465616095135727071978019668544705939089010766354531339540740414745835830068798678763305108416952949192285947185445645186177747640697009954536938841384475981855121326571496011169202685061234821764564656141245681550754055092834093415206765198259703217632202470580044362474051538190683378904497384995171306083518120223772756092703533359204616965899946138932200651140560155216324877367759228054261078213912707322295532747032592628601228912850585775573579628456608830440668068704051644741370063726683150825279816117762976688024048481868807691069502704928751889001095944304595080316623111327927526862688010867053845574896145465780011246528960472484149449426041938015498732527229908991751591383565400029366365804297970622199385303786258388253576963651977927469628869003560751277779694461528610336338523886024546116815737082017707786347829006969911781775230960043174593502716153721234514897318923302806392711420945480652290010403679600920559507403731818825467710212617526292245176906301200454835156144192900408547992047936170786402922451287260208563061883545866193792450499929938555411762729024129880708355418006834071318213031965636582767461334566599838091022906483997213834113007364092811747383742417099974162975345735375412229728287535107452240014683136560031625332688763879900996847658225928828622948602115013981407888697082327202809969559432758960050434031362255700090258370208381589808340065448352074133711549932776008854430219034035498117592537378760946028220230708875411473282893739274841743481839641659355074331244462558843318541722987141261009576110696631822237520893053506222218723609615799668910190803947231495848570934858864531164922442123279687585360796033007345444194333843669552406541436901667414547199044040825355647248748555697479729044272002088272317165847747143609599460704229340575387078113025002996803091677311702485612886827545000835920188672314336183620718037907684711153221477228157678677308804782887533274629802711604733369260854729280981491086775248041020992777761168423200294962635980309148248310284510274399951908121093800459027514033183031036551471684801193347970192472741290124313441417483770243905066517892608796994494943430578209957132881108153627798817091616530988163073512883894449532736770928122146622300361121863545986130102934100958314910062290001235719685809517671602704894646875506868403561155386950775874683013996661561416856628752576135631292088412881405047474088832473456364323158405669341995613569697683551408318784150791413138725644861934282303373951778157976653635331416649455553535773000043774396137091899567247402593919201003708778711144334301991020876133447116177843400250164428447871260471360518555711901008350254487264471088639608043587399370106968044570319274478618764536863656244732832104616462793290982086931709941917132211228494343965918032201786854402240031909645724175995587393084617034623732071273694888014078243956239372797066811142970829287929836620380525722079831863685321584499743683629603112340768192893111203350187102986455417364730751242511974356475568940154426038878060985989744684349508938144240517855660035915686115422943257958120849032993587737931199327931562994657814242676404757979640705016875269985805163843640912249740973699094677375578802532645028382878024647997690075769234285353790605532949153671383703012946287503576366216079534178472261220580684313735339921594397938399007343934314043409670250682816480119855907180478158762925300399115343899918406304676291232691417540123431657985615115224639550522611933980351877758694206282665973580129873170859378316380841586699172469051208570497183302540693164696403724636999917732345060159767228219208858129902697644147986975247349442871363300869123344509992407102543517569338599239499125967628470776360607196125804203999312451371175873075704226993013363193382565824466810859877853665010384483144805946483692604685532277705429751576663196900533306169324205627699008097490444761534957843620516879539259941541063932480219503914540533613967263660161613082924079203807682636317551011792034887142608930876569095479029417104910680551478376446981285221241585934777718915993417841475670486680667320054551254875807161207153243945911340443394926986249728772380194501132048760765003932791854727608115234299174629460912484120332291507196005617787874752179236108778814566446125311490922004297831277909408579960225850678247869131856435622499834564871915162564649271832827328591074498723533324813033729947133907828435749882683773417749542219494569913554900050552875180370174799031839807723598087231592339624250942735370397025167614251710916885467071837445535629683195028356410653680478138860231968392732440205588812633720522397495686299494438650358515458258944480057040380396071319922828012043843518373050677056228450602046305735657709698543101109909199242777539294220141388454759716180348965133695127762176258931122260847229678676390029966708041713816707938412439816767498036095926658416615630034482976589160210926050905593789921362138867095262201316097940162865392352312627893523592806623654221222472665699534322319247694187756958994122375671150553375616597836804617720359504004798376369670425855171111742162311987375417972751139856696093461797917977611732644867820514260096386424808535858052106573477380698556902526724404521613540417075046091397957561231868182278140195081254101452383503194975956732094238239295931003088808587041214272382494938231302612657648936926494865788140251444610115233445508036042172622124008967874167523671520462171883925244755568626569914881255053113621658532053028138353537090747116591444708072139999352964499776537845251858567998843958573609934263817153344082100050815361187120753142684955796254135774517839351893134109255824820781857245314393862970811742567475285944334745551682920424369945107870675333320877329130767387070940771180495148705274190845536213227376298279586999320976142503340278095714725167533297028217316883573785961219979344692023642218357187034892290958969932116947680491203160570092540794685093010267308831255554971554132888803678887214371736601026874694083564793748087375056083493905483634559955963584373350701155890581382059854360149065402887792644379066697575512834366804429924409060067139169281024633366364726247108833051006812394033193174532409283068679981431480402038782366325061445976862661143729368478418934072865713222203045161994592160824599020227209616103189756931104677002850188291698292386717725084204846750739474446838117255325832100232299554369336978553856949045517852660946530505240883099041864411093707133128640842604647434445363651260196523541348272646134868227363121533221027181611678109237134096188586456944777712196458707041062583290860716394219692758094911754649651211240421577167741882884952644685207275744158738966578844067448284102276686362359902001591520901684690813265825050995813259203871682143771355769406284703033935627519940374186906358126526929910139675517288742097340541047585284682972151354533865032692263735006003935506051064581923579717063026031639160577030162214649034979189420837945886631176100661525815615702092501696413535388581137476120371592490877524099261327635336408394299598321324436081255938140673286394823307082327791883267681415734385332647837738858097507892176072532584011873919111423341303634626479533864092762176045034605638498868214078020720038799857465093663884169130489794115028895929614868281018895655005611945641529938669327930116360939392044404584576027814818913426965949486776462230669257432526122927058996702150972598062255970131713586918654778483306035414847860883268959009883884202891355261733893157921902505862930341743534569912215238799215474392881280683981681880576448699525470747705158257151020756271379001870931521249570386264434394827812248816458965850533777696831393981001040718262617499650798513643278769264724301064020645796894944701297847882723072841195615119659762711229251736251477621068582585602890421597511047885448468083780964873737825579223097770618338467805537855803926019533102658968390818839568087148743936382401640651832886093666238463752830976419373370038254567514235169184951684723344876842770958255371767870542987552538773019959742188999189531617451458550953394749569235373862202599978745622592217321610694215789040632418453537492230992263426699767921723152796636107544261474648556623219691353083188272199247782979748194987335466209307508365374751142810639218579040236890224940927994782406761342602613220716157629251534142113359662235040239131051967591658267314921558748563349987326238242152882576317356388238118974431888261254725391105298108736346454599709818907080453867920485487007826554429664863168621615488634117241156313330448679745718680613310896625329300441682758213081196730163231742510283246394037410650448957123521448661523833827599026552860618821033489487968510467691900998348681061977859034578818969684137085170846841375230091785580274661688613231909385249317463680482879734264019386623296288696406816052023370318610415731755837245096518679594101896920365335491156064416726978581437589366395972904019110341805282927217617711751688285761354418744931895328169520117676807172436628025122187892051293926497196483222917616696439001895725318543528185943999351404246575705639242704859207230434219731983570920035144601630742971894285100859203799845962869377375489041697561462006246016269000382500612100995365528783931173285934528404069073361354653623821794686533213279248638346500393725856635430618029692817109014705045423572632595271574098213420133504581457374759181623537186902552789122193442951471097042889999047670512292609267999867597393243544875559338494214088834239448339704953434279938021830061654325289891867982158986384006730389737175722063902581685441764765017772359899228860500823484662354282978506988395275411431712646520073670287839954063044762462617548417484805098598735712316951262642728124002805860824543330377507848834152265071984787727653036219936977665785604272732568655353440878084336229575826915916147226906691754161026092348205540353527223527257907157314288855626838678538799453575554809497544297593080314834028293832112396725714810001440060099001868799530466986843627390271309763070607431849223817186899933737171099033698537479672110734294186115758749779018525749629416066155683123677485419514492855521641748294900640252309359246444777699272353759305182805311364212678817285226986152716570021364045240173663737418316838790522946660472742774730817103633289174150785770197775466797644075805868448792715412437130917648465054153505471842988329658696216245084623840392633041783053923564972821574280567380655125622389518707324414521724409471857428606829410871449259891513350291765412146365126123956896932648570245892350454104799185755001003749733112813196332540718300308846960896129783138802321540247866453287032626154705937136066071561298218639835356638596719839004488415920905745410240036960940998367093587413427812133071435602795243196643110609040469630520507854491667552121180143750570485834134187178899345764857263651365509388579749988002711945272794307824364268100810498726180990837278600501948159350439806289377452916720763166094457681561808195535995056893848821661960765264554048827196040072445199899587875510261114827124268402568833068731897903646592774777473680034031313858488737426852097028388159831724477956595810977995515409791436763752065272003855948626826557134203818432955842956232483033238204811039672613191488517280660140095387396822936330462038107622253468537268681161069696402547890909683452488832844845350928953045142884051886081633170950183231604052800368364244374577100888120054956171732163533393865917622714156000793694474657802717510517495852816982275582434759732824459659086923583773609229900839623479680878112413495308088170181435651872869602635796010830067344529107562090877090123572237640139323127625345578342421786360661208261785313449465650131010334972897428935657670055202713201352592062362064961502524518587446349767225767175533279412648636502865310719310431071089941351117865287579160391619421414649589301443642276137784810712157897813112980420283843067691955340249800006720876148790439713049030210502057687822033779067942225708223604180993948714504606498365549315987262374795814650386210907120952837890159027797891742478035106191714701168363119257194200494790584396887711111389052502357982712910736239828972484264831322679710267873111165078569663674520484292630030458397340035385917217847386097985421967443956664711861351483554193883640199223071695859456066242039044849021894615459183074447422474117894031524157607090934665414780256012929422141982863449386896475955602896235905936005629980787297614415550985771415760541073474292182270070659392592227776388520933178705411725758382039613955790976754453162793663402390427070822745180306604873742352717491814325131051917550838362195298204363144435638656228888161730320258487740241657795222361459948265033487649036438743039320902101093922304002615160655500132753827349185637639680317090684519339818946727750711855967245727842583505191862796795036381039842813244579301591954483044627429714368898694279568492853379259906969327577947546093034452762033668688939097212517256647016095238342373196606350706823602730965027167183600576150391156587098250420385999194775805996853498256882785897078655269358619071201776943726897537980737703916686136684357688737054205890900187149714078114519833571210406103628394706915231577823261251543494169200257460803629378193513405177083000647131741728060670845433526813269099075200777669266309090862389963313488305794717608263349170827690955932637285814074763380525730801405189165344553578072507767618633309322680293379525778018669005239009447321103898425822292425528879898723094115303219614936390854041520457752509269488757516103973516698109500909141134606577534919825119986663484426142493113664126592840525451483589380455877593005192644775479809620320894678534791583018015610605158669911544824877771929636592556722163124929075342248638869388762329932097810507516590764079960713981044207561946366951890793181680130196882862208535844723520368629641485175239418669899093155687026046421250833498548998976851773813905547772547469800038057285019338086708270018396346241049717770432302087173208815451498630675623959448376613109761545712647095885409078779079586017087367359701535982591109564108349071598784958266946091600960454152652242468173179239724337871753227304790591618966661498110538608602097546949877062771909811734720212241545768123370107689387327917251835601099344714697559703987343179320528669375556401338435717702415493261729550428504369310073647306596027051982454981179052299058528741309686321300827525232468289455819899233715147895765053931608053935488782609806411794562160107525285853776728340281711939946979484173920356816039650921191315928980353609119660863956362086329775927828879204271512332030667549906909718093281088532117375814989930719473452128092847619731236892740658827342796143700864741257028179276893457644133850935150375079575755231421894974196174085454866480972795359214032525193612324120801993927018595576066468241455404976356673378253574055166996604058914772658120391441778423119292103065138825710868388053534474400065325125676597199860204385610908655247254819674377200719737864429774157460091098903375449532325252100919085657048456140571408464706054514430851345969886931099354400070257321797707417733062765473429709566327340918783859599937259790017070529501147220885871169170771139388160473767042919250417247634633354640004526386712134425099721148991167976978590552325594580252060971926948747535817555439156246715839285879984620315479620522832383810413821358259690189990904607671728840740701214067854624479684062615816655504090484847509378364214037301991841573786686571330115754540872764029136266682360969216097120933350747408569084939809130773250323282032775161772964769796615320349404386068364335890237242441837984290198283436401421499772307730321052445934611641855123408128779244417650218173492562659149695923194996891974215894884372313492596827330596912443186768411384464667481619433935620109459891498060991324458941134031213790786324064168189389880525877842065114188096047060095779521966395987964282547294663862879372811295708384517975597775935831069697375791201747631057025311672451616453788632765267460903267374433389745352780838952661992522223028822437994561949842548905732295145200864807508019481758386087337070742807829284998616649610773599012222130996895592305229961280673144650516838589985360342934656650698292154996533020249304070288719825215037647543266160870530710625021556831494136286562486066947331378894120202953150427084378382047869897364465262159233329685066460975324672929009548232094815012147251223246304790849026945270041767256479669269603675606794677299781414999110484651318387619670044850939827088904136838506626568420214770755268460190731178587452409225146602977833477125443932320427513870351014647684470499229476851977639802344974494238339937748918671631225912095796259592968973629303805625426893707242103833087668654470322923838365533168762065034461325804827351102536093755510922859647142660707294215334522989333954278331344584620133937803294102752934987323101290058750633670862036773904856239633743730059785545983868907229117988642828757358171942674665007727446799295153800090250937699624743329717328182225646114315577498526014592510058602719568867065605631931292756727255561024251795518929389841923193627518515007337784437480167197478801864667340999725897811695148593360027585294660985895195099649610652231720525898815142678723026363500813911019728084810238644143546472496742623069811328449409591660737712582098546256499791896476773254813159294686344570511273992353637527935126678146410021704968006880646479017143497973031885347642086775446030820326332819984933310538761491567604266254460734779535964754573152290455056035566147244759740472669315025731508809454864912640249488092235674210519583185889670615004140854297040130391101515583651342090494169674995358157320423910911329767985783916307101790025904051189500467986631302461527934458994373138665029402697557574472111968697892545660998770983635858563928522095029387369693489890467979751912904053140476115424184275516391658196477034475124774735114951434084582003736576866483151036209292076384474486305466742662684638175101448561675007334827531636549033828166696274007380690293025089088676595687929305154449051211523165682885752327205914930168797022701921002949201403918573047488658298139232703147819780905898098350854082905113769895170261477964622995064404788239219609825649645869052727982728872004748889045886456296290766725933285791906685908086618112692776953576894449616788972839725072914174678073721015225108067047297944382952316458402944901040030742082021955352730366925985087461292293043363490659127211917001733954532404734550296139515249031066263128844653041754497058132330777085545868396959864370369168096523859409583548379370236461170468728495504689408411895513158598801030032054387324999415118197663780146849646207149680819385295437031265272921825168356263164722227340510576457730815794603031540556289139268162859361731491864976631823437691653346212398046243835467354284903435212598500140621675331533077074205326876753921825535612036514425171080885081128391715846855663732448853486349578606625575078132621706536184060499395648493679764942110351423386259494626366905393335831694806517828379963684501773079532866654061330289779287167856685876610111431810829564071990455379882417955069232269984237504247671225406492599201445448235405431012841968458541797050842034396551517396886871103066820908766261687943808758793162587857669433092671524500040449281926559649857673290831429828102738046401256546622058542803946970437336266590448613054394705494203241888503824563853348804932351035065565067693605343521328294667675519371881505880776378199123417244962064443540895477877693513046187382557877478916181703830352767988974397282362017910516943168621815997154955200398849752642306783648924421384409630192343572268240313812246091566094878878486156506992262824253734249787088664565829909578436107350993864358387814659480584625750973483141636314725792899626099708186374185878668967486819566989652999556867391367272222320063193162677305645809590954543947602486412959076615254256282049900537098533566117626028996585684668330581357968731483402173620323100877228507566413789503035668376019321808598539028295870525695104011165922192042387238189050134741419799617342655659934672807420597599117315816589350134266687151882970051182129255046375995270062016584905279788185087145543071877676310030796437251702950231287546092563028021961587552629971394481000849364135831150571955986101040672014319057582896470368213963187957205455933481381806367387363510637767200724626205817976484090977082607351770263603269483904096222076457537478727204231531340928507972927655363356259117571748701598690387292926974932931223113758550519913454090156909862221367601905953351305911832565446955638542279657236238355784230362482876783242617008124195368466292056832522341633365013003049093523320337043540772887855132404898162774036604469683358311089248789478150741510122479698846730228999965151639371218123160484680414770131385988845308535710079914489745870654796483614623466071828164611855439730998659840904285535456628976052060972176927717777508926368260448113215894621199181086816338904412899085378278388303833823934016068585353375095313839193792440021301465323213570668145183340836443878617667640098522487807923437860230155967201480783874139491476766808962001023547746531967062840860345829367975068291872661457253643824307158840388420917797580362407001263708120294212030337767058773092158206988086264865759139894740576566854617032736927399498860964951899836514617118630739736947679964556557770988203027143235053843161378552900074772703091199907377729856229235686940203666016703711278286597066105420788905605248336990334832634419161900654624435075706138925043860911743354191732208481004920732505762413325873052804744778482730371966538466333112085816192196065798418918898736340312609880448913402407165902740957799093552597545238151387302526450531448078097361552088019742271085915158628412424424058477113267915995410679364328130423034942767943871330226342331201645631655658201196948258955324064130022765100899897420442968543406956793319801860849586336103145362041465059537621693274782523176651581783053052411287967926823542807780791639823543420252036332164754616646556852428368507080432185694317585034600902115422871559261200342068785589279688375799797496788553707640899155609488232654742282390579070742931186809209468393467384812718002452706098584100697114166817973172095389651914226252872584285305745251457390209309401356768604430547699888132024815590582033578502108923994142205614366670630462824061735144754669120117322315651095596194169677369911688378985466485254696554270670113930058945350813638963870772492529224944308537065483174232333954854808738668000878547074599283514269736211960850677068907201340663955465582160873868300447723212946128680078330848326774143991244549901267660954153457122195029152056056244509480823809179335343723595464329837395209892340577990903045982888000085769220930151396407865652870853313144207392299257805011909160554823621736025101623898696027773440323306152898121311731139963075501259372911010639263991661813328174473412916938310470048137620691677033386193717517476716777079051737907283453270757125866411632615123915249097249453054633840012529350249557924902888436187657766507916429675030485998817370446736455558528322496624905332596697928783068308469906321851340327958375346483492699212839770891801187382090847832183727788437234953362321401997721194930287175039981231176831552050290352153468308176588520287088263194581214287071889478699255570639876957154952150901937809241855162479659519260994501390951825891939306430870761325901249131675427322166815760797139637030843075715362669733562862512200556470032335476625293440517521509598792987465233894272308217662361563233892583241107761201686911968430572476300143196028658041741097688126987619566708313117894445187371932847745411311321122851814570821937499658178770787305538914377659235863098522269617470159604758436185190942379396087825836473409992868921831419891015234409078107707603125520897312722914418782344214514075907553913729193173968164855063732224457535757410295178988107315508242957534192690542525919522403494430144148547699865645326881868163000432448890180569881091737753754404998964367925232160522552244321918942767398110467098656341648536939364269214590166644932894395515095658194257357995420903863514487355237256501611647590022965218028669368296562347265438801368511959643888785550035548160833618339006970435151568091941690884551666492820408866728675915256851942769283843994462014043834104235366104440174176190558805252496416821140207149214481774109439679835409207101915854752389329054549392705930666508211154867122626637722655940897884343500489451672772878529430253714039339762389057422783447549105613105470982648971090903923985815892034329878603293417731437577316555082639745515156329925334576238259994163652342993277549368482339573946532033400858068969188499578852389650798416225830813904504195786337862868184279774144105657813139095690024104853738991933713382691004021553025799942998806844806755700257889868585021201197408838962266933710200713285037499555735272590321568983388932600639609559406921487617069650727421882455505220454336816837426531836998051422991816711685384745811120014504437062657780789058287831308496693482766912508869456604503535236206008635136775858082088027373778059054197989851805667872008858729993272410221350839257190121709736290924885111438331862274891344144532143179648583644433146885842579575314052797486108590917387167184916068920201071803414275581125756911651279184462830066622718680612296303961330705369545870154376909583466403171888442394692242015286529521313989503986549781466802607309130736029016202851815815997907948244668731390764227645344043327698201144451221053352352281851238681909778076018513598801167099643252486534992117638950255318890629776151761205879157089257609690662807007654922983719802549419966466541591931177480157828174879495299646691776491153700339664938325508857245184817827082728968220392353005965816860519426294604651272548358215371864982210303297617740408753851417436400990882433741440780679475272229428018962891904099990246227054422925731953563610562123959781033365436480439751522207043984880736320722570845140527479600310382229394186753295411780273473492967421175595613243666372837148568542381638366968042258319583511826735031257315639113645374140830594522014063120696768344976569977481243343478265527270324970421111514728351636429228890442581069820279480689899816232966820208841046120631930362887669813702420284453109568131137206745892476683398577408649787231044512687589119315015125817346810371958663985098491728624498813412306525954681569678891526117424967192044099364720309386048827091495387974445954293582313581595543822981862709705861268745511613033817107293196897777399566723790011307217615420300019283184446718933922845671504276996227106706923186268505698172425024608209183393505936747424641764378081160343569401285666768486132413626559737836521114994612838394794766142324475528182087408719452603292026371355171225537106822518594237539892321357801941661832297679250229216939641176155904636911461668588061495533595024529162119742661264853095791681131699656174028416633383080978209482807545215043801108092948915773649814495176436416752362179635441829554107577980837510416709436941566879772635338548655501996817322888092081660616615027037020702703707172177026124784657852585507889462943330893965038669842968380251144076916782424719135694619584769748837326627031168548289214683471546963063065422031553788448022662557025982127331686723646119827658741574568392456140683892485016041623292517742201898185672803220322589957118194778184579658561604107684837178890909684973720428216041590713821097527834931620204383369251439187020487561734969442011359528169813157148258144921639713387269879869464213773035709050422748676558028593538865589585858070417777492943177504916825807340847564112769242030814543157545661270862094967197697363116521272012156940611620444387383495687906422222339589591249256413941633850019550131553973794237914820934959373763043087514126794685955204873332051219826608574500865320338428406893204159245756036072244584197530371260396134564133068828937741642828311881063111777869428886904238529287044177712299706880089220396263367027311716000587814347311671472432085587922703318816980697838207100099001146893661170224208883431199162336427779189629700085468218875184193347244696543087788292915586786329074120290073425246574160632227755551688774802880399328981463375340745223124659267178404563245136967416889276613896214619609166090868309086618073779985614610126505901990210454570128935817123076560002228486160691671007065665018602379929491793468434651437013147133467160909015154524577826225997390838304308225782422570266102720540029612362111523656091473110458670542720837716476604544718929027452432298565452639641401960482552030669066852411347959710154456234445439056213328270901147647101037919643313372714488951404466772217786099800809597212739814469620352485620983348208327326014069650451086770266826842559141423327486244389391622047309467099513332497773637850228633231608751910682256572186529138941683442632175448960336618345639551165541107104735960874534784908026252337809793692530603012679808287604698612430510592797049368439560940562117182958208061798298120487203414344140026009597250963975027709044193950639405027193645542674489708559276574501119807250479360545970872760181947681655086987654410967176428050997243928385494684996506983254350619460295763948836437371926225165087382106677868362188050400546898253319055502514506077318313371867144452177842041207479364034501596227625893863782843842021036194074242341506741345041894870677971225761102728088035451545877156546770197130374522278752987772968918310391598673512350122055487398899132780001735310267427420789400500017924684081217525717412500323537571968739220931491856946429562570387185306018890620195844725255405599890571339510156171947725161648262854794276843782252487456881937947588477545277842953975491580792530840920699324379610687134037560173876001841839283738333974487649227642926923405972884962650619799927513987812284478890691999932967490745618732857974348177106372438634367189827847770766286485654924078661187657858971616943474798899576988946136074379205582724985078767216347468903456734226139806725348555386742941284878866972577074077154047575459439086295743979103012754031408111444194528973445394377676846692227805408855141081639035377684510616212478644881029479321713363292050418512101824456897135535322703985517824772383969576505902881232236649352508191813820419077361217358965726821334958432692089056972345552675149449650264144504521662816329313583907524537830033999865544643892557085601801726509474013530736830078085861433807192915565712922359467125422654744907594474279015577985024448782458769427473963936765083815241349809062733279881219138368376982036283058433433964000114423340001815227319664234047557845928232462308563521786964380794697582409491037394611160054788190424095027291097118143103664030163928489033055955449837884177191068052035230424094758489194681275854783740080490186836186628400786551100545338002642510733250133569865035405924642285687255397044588904418746366043519766756022363133235561507848039840909103726923529954604192693978364799148346787179908273400162279748798090142163659085567527906256551713126765254869985071990935989634495867317365942676182518055043529898163919997715391087668759614587811270529466248948827986332529133240031012490663087157431344087730314077731520305754788737455262949528722948396418135478293655944506752843164796632059517600846844537534613057463402524068175605914966357359977030101072082338082345340213537653609547880326746175163272956416298725543479046683052598827275474283331098463819774220168214769627717873916771742308927738273114791504856008231524804617507571621618349656547717105779275700958607016887569091011222145682014307716191674612785591630330468066291388135670131151891120514268827028562733165405292278275388407162461633015150900724455552539749003679105939771373859206098107372716333730868679349051750303336235090245985940450884306200335741323681861385152806595233277604835956540659764799838951039089693521727709626689925306162449537724435090527862317956595994791841503132632480036489992291527150841039210710064696048490420753855179301902187041071685445415675272569959882254969347921658892969871858927688385636943755761421846326462210715245224997784635753789242833431810245430003942048557667023737169195871292376978782560245550060587383507260831011927258171117660632634317738466402297237945094071251054795562242330265088311393698986232824340937296535542518383243564096249286839406079183623987174121242188119255235485820402950187752609129806611327649070715118002144999917659032489797187775400125801690652906706826962119370854729194181269186670102172913751401066946459476762802915975380163676750075000560199140167134857190409083718725017060319626036250392871354634495755775577543918868576466209821835112067887462773953481603203959049284828377409462571097770688235738502573520521086749747451361315632400256935353922148741281754499460211296904552216359062819611080972595983819282370375452447497502708193014658295859350736779892153722145415980964150097271923190561353554625178699219409135573003539256944533916832183278535972584828988858604756080607926679843327616947479964589063926017106067171718856806252339788545645992574907431484112461283451088243423577803643540706079132006148329246899667332659142556822037703645234713105816332564531621805571643896779386341161553407671641814026142687783468299680801285858500034672629613136198446092428957352925263597078759606880822579611100171672144448541528538690982621773055251706475585856988793064443190550744375691935102568932870527358153770064379556330217835236383333670276945895476423830756024372914688843369944877520553798784571075348211759537271677514406397317116554806565867383073554196029981324764206658072844861842682319548478522777622718103963068527538441747397606768296657153018743613643797269087533799981484429161689998669317602441030755424903626548372674536938081923856384292238501668908781485401489162838966641200099355370402087648538468702453412454403938586925776626638646061897097504875808322060103701092232087316375578582405564500660598339103090487351208832269186636073814347426366633106271880196247189620111101641872920795967470420186068891002227810247477448188016865708293031348694763214442030938047483126995960889115634911637909036408208457919533853498792908467063659587290956220991572931666369621485066860302673261548621268462427586396653412005585606459990067018222110794547729230941234827143169050667313231399289380142189191157516583108554560472129639718467187896720882357005575203669506929191205766061761209152360416865419518576570989327967347509219730966699456596956165587668547180409407354442774194312321849814334706409994886949344742296345124281694279013560761302532826499454143039493549943507625058104156379206445695430776509717830803173942673870982761490729326928927279923175341637898220526145823945610311069835884688002157947941605080736837230285644747006235112426152464127768015797435757567662350440837310219066232101588840887183696071712610305091552374392644813218610319712629796606760168653658775459083038392390835204562509308640533123172495643528008732064179351632440335778202461588196403251509079594806482248127475894910132523229148795242005560077168446541183125997908259639828440785721603177806566605816571135175400126217673515129203971744008628843121334948277081400545578826955013947838055297863261334282608647339101682204007504873034018823846444460860681968003655658091201143461666347092329916316185278832171592562768183922084226541396868681479837201033496280878334432060381972656942628980145356908210004886731857335760717579170399213937571872096567233578064805963825261443513738281798662149624148032497464217495097002151674337836430303141282825298613863951906367238750212128171118737767984936273699937565905503213704359902488386789046034510671689396639811016970830329351376085111470783509662427324289967563922966764275505584208716972125497261492432343783229795124019068320976286604106631528609914338268830293575389078174717842862651570602163093634251575603439759002349354220129388137389752198558128745502394422165138014578808147073156082171603837622868861064258701051662094256376448802311015119314706667314808081897446363053260699844102650559871408815000411834850060910416347558716201513396660875698507152378049406333157247896597687189167711668380334180463906714481548448648488544441350810698531480571888598554782873615269811673062454530665146873359553105994340239139414270848639428718836792829319587496657642712096200888332328966957898579232171766372453147581009300015819312936106768454940340221341206303849046849310596542833347974807900499180626131810031985391771455089802261554320974163911935619867792590985715904676576638925318104040916137749879855360344830585123111079926171322865663939310214928354596656394543468228533275435409012782576161699499770593712093099667400183967844493084723881159361804317820027210250069500431943136769088007306323702662175196406684604415639139954647615288391847086344836775848533483499454941528302941961141132969586686872176060573617803484088388049059891996720068108236169737122474859000885237976246354233791539284368821067788555278681064273889340286587785226823743381669774822067422815273268420967500535218828450582305871449503074127202441934424430797601053701196977426641510820983542355123259754406194430239813158243866151395799355925720219714436611043317639640166174972045926316441661290032814537115494493376906700232044028702382565068935469856361939093096461012208036012422423394001202461763923726744145855495122622700802687724545461746899542374260407796668126070269002713884033511410560330116105203259351321387662718534908039808240398053306193925740127904433994829645560970655735984187258637272808475937689826274105329006878350290604120177854097075535845500124498743387053047381003859143949615196283376008491813204213061020657191321829935727492570812466993086004534804692373244171931175816710142519205513048924570846392199040616879312051503444091508961945831860267747402884405413297077566908065838949227331763516261325290945063724936008638577949384391460624516235620997407084783299372373573965698967983221319483603971946515727205464672662409693528125602116610059770224463167286681317574701610499593940707322400831432254742411621641164763058036308573304466202573311804460390886147469136676923180915790055121949204788073087211056110027474303160717094587710958803781099935678818681200063655103804304692870124681761885798641145569672112655004181218276079689872818404402213161242688260196721398724290169123233701754778099492947518367086628909870814192236955107252756283245587987354411408613443655133324568150222854765250177601319569826425794687391007094342345021707842886504840313549410575422380147613667170460048974033459714849004985710276548984197600011978406852936506773236833829258323728336564769765142891811311212890035262900702773518230077513586478499807008125686534170664655233495446980707811255753412046350220391274302425629628360596655423657127051172524991760620246792127125562650612434399447512680172001155504046642471520824889975083352282134653140514138946239953652704335028239852067304073008517948715792716155861879757167444882748828898473377475036708657402738065774013521160075346339290154680055501396032480871511528507866660959029200931525254494262693557563922188715529462494488499906786219616750458469457071924334642916716800075952324844385347644191865391080611914856256460711048659939656377286441788368433068223994147073636643439208607181564024082144111570760737923293531298001345391326380052125048208146069469930280038810021143969017461698629916162931303907185020638758601452339681411164760643761417053315032053354701713990334465357009643170508955056567084511034071966925136629582661245493817653489306013229270219226358815637062907200438366284264412201960949034547019289675425583311995841222016122619318639737609054233183142704216024723599784759784084089841421792872112652036249651710196763707413559442837957495275272973000781445037176566388423763970614888155867094682862493703579159867495142774181427012139480350962534773286958250651834850666654306546477418834232942219030196228948234806769729473354092889069566007324212466110389532087618829296382771121559467299214037174624056539829817815679031275965602277945386499476381975819927065903991933260309623303658910623398234774688978934298554496603149465088977169142763227504313167291643306965029634546955861780149569665953346250869490201652500878678914845682859899188132415184583481879057080613200564709597022378806453978883878775043626489168529529521315277583270160545880531202025306719776329563831385682693322842676789566914295843654674193362712875464993716519092929065803754728002512770954239480588466613704748584436318455556735379707981435455058619664372734941539211939137303383854441245664322569187493741593633458765264454870384294483015089288418281131873781436606389789442691969819182970556120693116490945822132938739170733400616689901779351012827877516134597796630430994933326847358162346769472716542197760395793507531574782822195915026292302223336090252092029408148390280590171284798536171865377681886080236357935295482191338281453875587090239865698516381701372254622912263633058818622827843738873632469831633983171118981216708250211153723590701194847864143328681141615390590562594819251988454667294768927408250257549231661697593756892466670143809654523369460987165478503652722004986076187560932528409451083455212961119820772920534035750504568832477385412911558144789617344850823399803231493401101131751943818448714303077802183531297751112008377504214822975582078618728544352284899496390560931878373187906341660254358310478729925634952334260977121264179154294241958956856637489849926275847112388380858816845802289778676863290970745918941487230720971007554985196916868262380596934792171429400053623120664234372401942458754308401061506568416840848948656337588024917096272919035360048723460593517649159282836200359642075959708230799922085003011401025122513987199615487685397503389397512932500291786682318170792738298666507669754186196343931243981894369825351156617079240858654348794836788668054684830004340165553304519206940706954097924084822156801276347669521850601612471469021605329284606454085156548089007216426752501281524959583408543644275079801637601899138232854361561793232183071682984982577330933497216565417342251866009631159204522027789966803091927647239787173392953377394699383536521097406620772919201802984676209416094867606878712282141172420419781229465672137516390375702517150737971871408984818774774454247270163703063244271245194330674070318532969042411146005550166517402659843198471633388989243543960394012221604414980455035317104531971282501878922335133057803790360758693755366460508650466614126276969864211785183762311942029845353788197869283402650783936600932886146708029094963362191553530892495780433270046389412563439160855445439031756880078666434169271277705925236748718306318601688952706108088182621124495511142798719399965963356135710360503813658493554016044081569866509778886498502111870266196027223332056311873175391557105993952500584554258297940701595416145106159324115449382641404955359132880719475438248153640567472805230581777289303955703108160385698398691841210322742761040377573923775522383608578062432124051606956575167243090481285165155020734909867291829787920769880720916933343213382322358555921975698579682106402905516693064377839321989112259448249051683919190408923336935524878334140063163710834772776056322893209267881215001638800633191590336015512484221616587938918200128684342429995890531859535275503562162561914918570592479019623307241002691900354528011063939283006934626447187440344940067410882488775934503576464885745197887685120460532764681568316335954273024256452006145345000508348828700959627477116446304528235202137172796377340123750316961680779258987635621425213162821510753499920641609605961913846696891396759597155064924894018639363237987927100141935382044828143629500277583848805342164727839773430936609061863755203869942067428391734938369703751020370136096191668056912070133808209685669843100630558491122788424043660192092774825468868027414372366676939205861365232449375032866280998747934182559586457706382642117862526270969061781797322446736213490352754960076103525760751559393855560203310740607411195165101544317792002639228180285808584472078984590586870819763495364603706367513666140429264621887906183020780147244898880710795718439613184923799948570866448942203228823552686034735654864554720283012119216615378719770268295988000840826947838051212121316851851572053685695296552146293218749321591445222992371074445192822555459383790250118109562215610471620692789817427761173533982541928131834080305910995640695096053496359815497936368245395094815616613902819998778059295086133734438331057502864848470453492977139598216712101497786863352010030996376501084856750743992236125622794906925971738857140227178453932365861845890097343812328814073445660188819357041241662369516651531530185587739983321506379207203444584186544282344819039312632821426478434780234478004566596011808522250239651835410789089114104284570568485698582378077568600349304564105676692201944717874906377592800756432564556936064545251903406091561963363252249138370650526962139343699864994511283238200964136209699617449968858728261065317659387559320042654928455117861283440185122565267972848090697574797254082752475077795604774226602280700068902686663349200879570486156460199045027256124679050837834724906386921169885912386529988599108530762747427144935121575882828980998845173678659242307270476305992236065506593758544374218035853048638764969586183412777419538042773309452849087379098255231688794041372974132398443389790429161335186195539352401374879802279450225601544002776225101095490966719387408531822633021192355373886295007760100187459161174113231954238990265749590787247799294171515893746977112161679400934317905535951535943946277067821424054547053280814276157627804134892868250335110782944724828376387602513878512922104404578819685593835324625386996262589323484871114752183559413848777754163415984488682157419906775831488529430702968473723262114533659254717615161222900108685244535952063973648466093470759202828891199081270721487663320622211644425660057863491840509798859955247895908231408885436251512799113840422793465940922501603506480393060286561998278417815843195352041510565445664586583062876598007311652609524069069910131748338659976451315973630815255728945593416771758484631954314100790210731194435406104952889669810470676926964407089215247168788985478433151922842674713624593594105364439563798470252051657935138806973607577618081306246081963275888601688199207888331471765561774219644806625592020932102861358065500808713180802425806780402780417662661157443905587007076535907147826152545716081265398199179048816792468728697222000188792381258539601443052175541966760409086773824266064393345418370755686517575957182613994798510091155621657140277308684922895214311055413078150629956544488891525221254193630550937677250576355300956913412793042875907907894856543474004688571214205488859721416008486169964820523750513438420541551722698074218246666116543693365205859877770266387765682500428279348264507909514589025641538520406276729818915735168472140376620599770144060561668329163747257107689199687226159814641782623939326119246394803889243188688409267002330396346040500591982287513550361607178620065878103284609237052650805345643121917281298707682022484552450119116720138524785329974465232217521764143793316891986714911861969415179397825026681328833461378917428424179708455137265704267603633367651583148442848437105301247201667429585268631924401783840406844471579649387754549308865365302142952618220506200825864645648937927509826186267787164781047517689253777602593959982522926930286757055513079967805257473035136784421771086179274355957929121762465700430256786348429527551080884057630896864722995185045309678372894930739075857523284357024780983160375009120332275618475358841328245206265459324506290154488113349682002506091766352879765778389230205964881585054752658058697716672331713186804057501911585296644383570410012720275489642064816809554480193331216653781438442382985202597673971636248084197038204378556479704841741359675427982136326486899779291977640672327126843778762497104453768857756738319190071760260124500746567973897586866695924646517233943937637281570371397033644124576957081336247076403777180356014422947325517888892143232917166161992508944671045836175638304588582621652474036402116638370708057705783054266963398328189537253622717043477343304515747247051652788248477863990870648426314572450726404654103376060959002034662074324009825369451500543341606108540207330816177846325225940595683888310221143265754597225752790435258056966885886596413364598452282858987184356620648979633610091980397659459721638209244488698092542574979834320502034816489339485374694665642731102260179884536094463397136394172670613796203222498610189358117047001754734367268158403723615239512600753552075523032322570898192904083143313537160689879867555525540739470170402366755048837338507620436360895123321265272586443720049237694630648563835911842341119959099209761754713625841000323256120424995884926558311490507077155651755650710591605965187135731529415742967564458651190709609281506716049858764660476862523052831256990971069350932563606439017753054875958681206570048065269531601664235518632240546228062424388936987530151798032037116571783414473624492234558702893855612687868050263570199914055343906821460137698480869240457665269207937606436903324740234403235458095737316363315624647281756172850695379843255858186029048848935514666845843366364747948904132773761848854062241200421189428577595765895481952458142240534267561118174996712714105999922194457822379734340284069068347424358836671287766474720290385069797318165734069927293656360124875813717559806366045577402598808726636440380482064797492144579060535972032987074273404793514609366828966700808589994303627158870628505003791798867331816418111933318250377784376604033514383533816289260259165786285513530149497307727520678290830182047516133161677006800500322916767265351089583650459035921301882374958432791874782569884779291592711662119032701515599233177045747293270629922305078055008849002107370693410889629346274188688049494106794036618714235503864119318647196976787321027400729464894621112293755846852818750671034301882880710168987054145567697842893814070930500659174622893486268046612313382560549601231112317184478207958409267171270121797763024654380629886466023225304112172070569560643560266435548165557152415918357476516939931135331411537758594481142769843437683216406450991698402444707781745620325811534537055665465642654365841369370142624371346642107433178768221626054519395561620385390952234522469255138356851826991418613165383578895407043525733779439941905884362603492604995794331983419530720565076445269026008916442846734826145661968547573647750560289515110330122791890895133944511949383494124762580037275415626328465256148865939951933901317318107077552131158564283053397364027646244945298618967617405369611572655473843397527935145780691305212040602341895569551888977673534288406251743282218737116718552943499345246213354972542601836796229194618095289000271716201134197151619947003707012529251248694986806268353561006231109804203791332255460528778587493925930065937921648335031002421993373426305227787351279339305880483622432480073950685894109432040462084729069141131882866390664360670778281448562051669472003643898695032265843240419244624411561466873643543464241376217797771846887768899865211130620115406153154283472960810558480381175181975518128503231655373188854245855839639270497459029953708777793139796494346432983209323485516720145735224727538471108523905811446225259046529702691929775168240256325519337672078744210250055890528997637256605338925695914447074084094690903860193833478370768896262184648853065873864911457043183349947684892694516295740822401002901674036667503917159939106208523842585964247285899635028227810782627454362816482757312501026383555682862907289432450828624457845332492186925583205667286282981716710443458328275729145519825035178738993813192115850662795776257104056232705510047195354948379742338025769405245301717988401681983446288416689263280290622040166340614641622189555249345974838863982277799545641064276580331973712634481124064876029509423821883798467889150255422024626283470183967405119098724189934252531709423324860637067706100329858167713676483823286558325048966521685795151603431006444876199156551375472694645961339170240197420168748593704149751594957847841348785402228435472511156707832463604235127250787992655892601632848635242681288497257577395714689286217699619496059632722286659712782186583517023632145344947265659413200817469837566359081156666935766386394280844369500822099767367924804287723624237741916366483664303281965002380422616079063321932319164123176442110946903172986007414120780607466722907485918887726440381661716300385647958632164289407058308897422633615281708804679784806759621027038175639103026525335102469970091289517209973362851031842096036723465618215159693420690231452653880950139095904910046021025201536890525507479412460209976465424691327343549354130562261455197467515849806274189931795097190210692207666299035961489243982374963819638719590052882571301575052922166438863974837584863583857730311146529289832778137644123089799283103026627466691875660599824962172153403086132073173255398982945726507948384557590923014220507470031786359496796936763782514540776661594411154570619868080938022067622070125291065554052687952427217416998214945625608925902825677119153809407665194215486365932991124883124207200916251705872861380576148121724667716185222029757407759403841650681523460785745354834566403437753299398160254656719216287781002143425302385671480933873531636374454282005771039539901536783996564019046645847875865940556883938397377526461934195063741982865748131571364141385399959863569658654756884924526974774350114618592841548024971451312260717883284957168484561976457794710686105821745892857901842587735567870735097559065651981448570332956658337607181761317608352618986814657526890914954964744472649279672279755473125535080140294924104183225716904814885168772122567746120807588401287172201848991180628897566836027545071152040544075537415800503993933617759406407418252767576027302872129517005548495598917085443797265784906697909489866802757001802094071290138178637160630025542530554256049543073501782620115928845150779903241878687644625355522134775532918072216750718112348339427601472439936644956140060983232676382495795673205306638800825507463875619768101366434738978556840102677630103567208142293668663042272991308342394944503165446733364607314213644058579381135080882114879259509749444843552048047518622423952346965607019291244133333610338866934292874667350282087811523116016843860674245650208619526494723066489072287667128304183825880321057831088079152268632559522936882229200045031364677040501769503401978763050360990559113467742012245915044498575894401229633274705243877347654315601472876428647604350046305474271213957806820258351487769580607234328464606410618690101928678969717077957401731216899640008325321750321821861587730162090173315377790752968378457156852441823775521689491344576265619348887939845112071113457638077784998745137470732803280533281565177550097161771310340653893803191803177801403595110125294569631759042236801157977853635943453900083169449721399515475083001206490520393654587008313493615954208243098159267872987294789703914637331572831601627855866605725483981024207811011147261689615241256616065283084069760706425310946122891084795090140664378163325779971386368682479637032076929175879012865277505734891026047298034278744241912658913229734716238082431077687547594745957594944276365028094951520350964383848976102571029195012054152278718130565138544670018842023963508508761813893170901389289878373506252806948511989196361105747729612248842504353852912970993289808279246987263508992956366876536324092813530438665668956894227074985536597560254883092296401256259706781812039677581384532702009099895846301788154492971233679175817455482718085798450890710619846681492661905350341270343435534118549488728197810336825532066906305149376210329810813528751069193231330259618619234585898338354886991315590345302577450910123033970255935220721140947276526910736365752320356933398868598653824124754196163987665348547269434585793502748867068368139854874000775542510380742904633273789596867218400703217512989757976381134195608652398354060321499205843052662985382405367638454802445418967666009083633359293677495638906138316003393110904439685211468668898881700193448834614090098115234650455239577647802200590582363869731845561106330982347237020112341925049326230718464527638969776261040674311560692478358622498696011006604298416341433470980577880180183622837067782118239822644161421973548549125605635408514652703699658431303099180500846985105296792350409729383619329371480505550710784113408850936669228414320269332427115561683215823691227010236154873277766788310925433467914252934903212484385055347622299111685167228483792760068662015357894570500205975796456375322766373499998318923905507990163614043266214866744618909428599165158260172020054097443001908616111351928877238155338003855951523469234665781559681557245574723305214229632659330022334825557163119319655449877772779090080412046446019929119587992724884118330930392033952190652923418318119230173609539981989726733584023246374751321446277811015970597921292734289236901750944125637121355501176702904578182669789701926553155526226057216505328581837445341000249599203190945931709966807406375380439182111741211537409328294962669878845672978893750276227815572101475916861220611567309440148093119999437570123925472686496908645810320764594907500341098136705494238776795867198736025195936001799145014110273440127617516089689650625322358912577135063759681284434501147004588221446531568272535851404598876364032392407523099773969812296019473166813426074602806512848214322648711421628555209336954921625610650869917065073435646185738225640528055321818576266835094422957899464435913747825403055007407082695926171784215557501785886126887846892371664534203124391289209315912054385738720677827729021842805320575553413488244097264613219621226859515870469953078184218785410272888646708222242191224699280524177837641784046943750191148149906796387878877934752809104568356185438794819495111356029062904218054664814410030622312551410662881146715022417922054650240334992052832640329827520445012341071053260437503937417364250437842259649456265924495241894111491238632714207296029110812688875665890344782623753163888420234421834264264217970502676968291059492203950957918260298632025336339743157585099881676919970147787789436015716292062968633797803627965131202789788829344699706136928904808726738206988491053911558802252335062361755400272466266223747945131748767634242572323303729483555296326756171351014152205302995768046198433112012610601914379609506169144973908619919868627617955991996616503721014650630610975913814906889922891967533215173499013168902132273678931660198978827139813560001541576396335484651872409999016293529593045285125245795096736229555843163589900186277938567847815402439504292914710386189678633111959275171475479199565125476678650650367450845447454287798444657475568028150626782815043031227269483171794885270389554637291029391242953030406905200430003484477141886382428502603343098246616274346454072906922377633677796734413743427040474317452227558258884869529535189154253212672455303191704669583375476146083024297224833864202584576922388845367684468518736632763261674168743264584108626714083670520833331285556369343889728199990753943199318415781325514495534672460555809298697627129899872652390960023086001621070186189571329621949659349232558290161978616502547913726525381779903797638568831463065435176410973194461360961907395832610071719841015943547949545724265590271149499998705071407617741045162447467531045797971404878078076963596384951855462659424451829023079529844926949722077667962309446592824863636838920314106743380838510082537473815246156651560712173582964756109203618390973861531165223687367873807916214991937163248140026242071148585407427908103535608861845293187803167378047096127706081697380053556197266615923896559988902486040200529255957351537395960145998611845780378340918382258930983730111840090501315891639222976588930848600373390136523779442292722986466877680009037552634925017260300159811764195725124916791559236609301351501142746366662778216362579351653585101560843704672233808283651706499935158690348533359000042862106773815199219134011393240160421670737915030962338466299691951862677313201036296283167202006984516319989319122271624885440220837168269911275469985850451140574269854805654751939963596278602754204448356528594937614156421468052434253655234736811229405194261661123933034401010620648421089068896332395867037342201416039012348191779545950188746384687755072159913842638342496015858856146054839444735585633168434120926490242588250502887554899532375468067819104533336393385834582850992324531628395803601104473724056256875049203176148419154841073406713856190005846734617049598135367902672297227807389575124162529026977107911900803882488882688529279874819913118791363727419029905155134457790383491515144511425483188166056340752327572741372772590159474063656108476393646901114419524608222460952634529832519385293825026223076536874315058906941323205030729102374305664885234205572258699525912370070574778979176423384005060123599936681292302152081640371568754913100567262781240005014287460363318376066773844404357704105386192370575213035060205513424638767161420308971385001387516598270001743267870019969041908691974031045706351022009788447565445587866609078488572870913078474332570123423919936140091976514683155455117011247795043049310238226498614654859148314515034368506746705270603682869358404026927688306901369498492861817905329908069890739192711430847672781287683573567523691446627330809360752630143102942838160223163774560543122124498757556667530471437624082371401050288612694986757332955744904717859419771526345370751114561611283913662359821452500279074193868437098680678883642668757736781525744435768569978188785778150042945133106373307630395978409728833745072171850670892883010343181147489763356940026404629595372529225465606486089223396623038383286053314784384662359895313342357414138483081847568907919970843830681622548887061663012408247832789928757768551260052464594559607058965723852421603062324516341539823754618402617254916202094358269279638061581853838166514800434352533540845870097691507739142045123639896887350046996556011930547633556800719757352960441381115116633426254197550717521162666713364381891552908502166002529575737941970595140918540870041622853870796339085450139071469226934205736849733836220587982340205648625025361439486911287273976727469023398482089234384831682608684076840949079777439176965257108645784699084919998571601331428465470154627281593908309050926900462701123056857292846641455429692431786891636674356140384370432191279880701161886192855521672357087598198081116193819270097726382157173402389526874029831130999286160259632831122559038964041836306123304229094051854264196520298046801998207326035638537198798506037698292202757577282483961777641105212355278111222379381082694866634371125858031523595265392274485069636233060905135753517441516867711515868940165595971823769184724387268012937151679103156737349161126422697692687809880921030054248411063355570155750461674345966365383725516771988118247094447994942378645160037092981744898979071403523924245111807966960457542579333385165455964492348291916852061816852300046148931459443026410678244710016026643590738483511429283805999809724128355650754878565455812899897919058371290386028645667834073975346133483497956718975584782072917382434423788868755865072390021336488002524924850717860385752417479351548153285794604516901910216193697401600396342178925185626038301429418207976604749313859924980320705865637013615496296439778076206935730096749386323616999814850705046049824542628290390551228604589993486558212477803969392609065397428573974541679167030878534983263662935329092958203737167902131799858486604534762494466519532770551256659912774636809737453341833819241681271276452846674672920460128945178351210113126359211227360589870724942572913208398339236624542425812902239510212053817622997315422429859918763566632729390857581272884385608661668391372470982516177684099383766165029849200000165909026350673949524600232514040038743875219749095082525554230964409483853923070697471751388406788196585138452447980950935822086042976202762107338165096815673205576366810317259818915208374698329686135407434327060409675529473901071361234262987952351872452787330583062010528691733840680612101404376879894003963500418204761825376849211292329620675603594602079458606703808977571537060614349502244578226409285960825601769337941197712397727122449604239061304036606450728035634474252522711394701813683040141291285408647245847840872060347552654114942762343743743669147775891056312090576461932256775690072599890770993667979809734453328426208947323561998433632216972719143930999958834707860869123040983192178201854453293914459432320271880386705538258923564240076549101651978131647953590409625982428204821584266676828276911055737793298590963289235668298405996660688939512662720525761220623316784215900984968371636871103026628282057279675553848909141189835371070948808112707372972998372037954950312613483725636611102980037956646110374847156554760456978051771608952954346852835629362640589327286257398261014463663874591342805603302911198319512439506431132357498959891391603135170102201461591868556945651526893113935115307243058056738227377328916708200397624525766975732021356626402680318867735003980537083826328456515703039154200907778015104231793442114234437819327531494482512353112373788874016453846307160630777612625434543344613236877531708565037737467450100591905806454291809977801220236778903260292228986714920943076544075521253692381835705803482544273722862620536465800404908182764411367171421850379454824224907820715525230366772298818077082839471974552247786938383515875672287464287808984857776969081914103010392675919935556684576706877046342947411393033898490953207746123302201574482413385824935860725296769463525206911996006847566165470480661959932961569742804736571876836692390572445088060551440138588667706098805541068768014374503831510051831709238730496526995946202035167938708391209052532479675237464457950542038787736905892517716084962623126995995501111274852040218231849743536068702695925251527687812226912942655888951828414990215919752636728283439504746088880319921859204892553532941731068025720228187049060701376274101538649337514935014660359543552116713159857881711888409463034172739251354094237641252636463237531359622766213594620539220890435363887330946612552128587430583286642450637734294156422183786709456182565390338575818964150114932704467262459854961284135681453513867782119879490774249798838146900453793407699462312820315674020716863247757827313244711410942640371808519574633959639494641631053761954950529234365869414367077736241000331224165634655100750086979773798674951146701170005381622520093513888591949545562708868259836265672316777321047755414866937872982734856539347613254153379255541637804397594175589631183415673354593654199069303394342516622775273305379958777527450574209825558722535901010789627219253989578135466348592532400701159899007692597094856084037649689010656776631699057826201674524249216410617776804757231603970291864333834021652870890051956859484768585339076815798111572486079517540115254806259084632292021545914364474609586416666910486557491252724974412775095156788030598451858494539099237940150560242951322819736000256440436537272098838645594471373354303878057934581376667413208442796449746387357714096910244835953179093733094417221316996550908065977084470927528327431914276046843711643911270752159696977037192707547707920811096073918216372606334356225799048935558897953260655312022891446037050778635920905526494599900131616083671215222538622229781930819756643528377042220134334493112826330697442308372655479456520992493199757871822175635170182342707783222860080688157132408465720803092567410824209432745654296535987856927199321555097820894147626441893517504094148705613278087101539571181175300701959000322128544692631336114961910682286118009612461901351038745118180648734342371263605594974361983649910507083117856632126977169828587640514830346361196912192354775780588213381442991956254848393487668709605672126451118624407997570437334644380618898314238071790604185853336374197252532503570978306819031775665524723277855104757885748190129749496032221133344622868120587331403055084225976821247380451412817988518814388415048702048255482558611611483631290719909085232231921546706579490218369331058143840313794590162664834072206237275779077825965102050619345443689903211464141776647381613646675155996553273811205506185740080401144486266443763958461466571523474465692994910789918572712166026227240262015068056334461669822693794730157196492200851822069278519513429502900732018765485344115765189025452491176904219115507809217413510021845056289786405637704974803378319463316162899685871546484351406122319621417737276989085736778604347585588130151127893075394583104717580451120354870575024127218372029053490752396344283095733902971129111592020860520387174911426996707243335983894120252387917511268252881822482625379148566829268590885278077387512444097651104416552780434435433182037714424591401025554180793096247567827093492402729560820082607228814609858545596633354223389662405664164005678632590683676884208329216646097154115860737288744403281813396670344467193934358420789383217457546630304028794324941086325083142271647777732743332867742893696325320736607476462567636828343105799412045174854267774285102175845155399192830285756012424273657628684544025878530312721176403806766105548712732443576318754456653505021224241428440364489326382595272230401280674676076543832781005335262514792887588324863140592953393698388474400570492635031167153256243466243487523697243656970497813874040518002594579784751121466812881235448124899246418578404070468038367920960544154494392679853290299618518685055701601057824398402934203972895549774805678253114332950636926536948316162571777024738007187137383470190584066312717526438493794644080165578908918813066953878508618544677190849265624488180035100658115010615211270128171086997420751214898281636405923625725404571634920057794071098662145770402673084167334513473683852975801893410263110521836693563614022475986988685487023018730337355410486768735572184138076612628040015197727292419286781469455939018702656287335580942528545695172738931567159757106867994466563007164598634980296220162042167747988379918124342855228892926299209960599690561617868135791766327757420845593810576530357204937476505930907381661967144117043675018737596912965347738882342147005088823792214876902616345784784152357490721876458320110408121954711049427122910404451991268130929594648591458151945160765724478884794379320995793881095366780895742942000496953653431175956871508640430821815687372434804271269377568286212830684880262269053814978285598433093250974158255446400220907070877751381002919757036818354496205296388357435532874320254879513116149751742127939427409380728949727866010738672831659001109475583359144755368385453156819116731816445486122747200264083913970495527356702361896361545712478432613055668903312956945948824628303236515528481972185581859847847267045549337330680276756931908953568944353546943745770303711889076443277609496438189069775201069535233408649669879628609330665297400625523298622215912287086114452610191731192425858404477254567075848052094071987162348069640050940266282251339676467488832676670243788021775071510689487812644721238186304926316139709826244058316942732104071474909275490361159266713195692865415155234442274336029975924128880013642791172723040971668685351447230051934821728125841164006995882711204758250654444827280368507088454614916738873193603290193785136364573383878249074638048536673790235302669771988387887262384856851415343582538611253513035773473124438908971673579426139684440133195887195823274352029113397889677722834833197468413624549741813962812053719948738959393614964028066812992804475185978045176010215153816642428482548548306526848340797981069300620841512644800436525658462265736983892519777815074281776900551519001251111380851087957395718505790291183592401825754623139982890418945233649771106902268870406412631094523335493559312904812011686664535586285693988793507502343019584248212434810556552886907273477649860555752097949975440467574638085621845697142305042236610567345053281926567915553909320143239211166772646465420570168793703814578947959743807834667043755147772969785045763266902241661065533893146084794840198317062931724680147720205070526002159027403048958287906744850538673792333099252513670393882284155901820520317802351438104020182600179702400985175179059464439166077611021672224857966454500076239138139369134591835151764787864309842485877300893397914105482756275612875592495469246443120446434266465580959191845497966402935636117657906409352159871684790295954555171342094071792329405423206323450512176845700463670128544701573306107756923883515929286676711080744480937264767323626848086985943123465394710109555434136816195674650348006797405224114554493560305266617317856871410117443840962860568542078115241196039445844004673446261561460424873747613829152404548679479662099998451691087876484458600600634723146075550021003926084516255753634530657816074894055178284030283054611974538840248233637288358006015244314344237666076253826023792772692077028845492034437316829907694994925011189946174117737210334172140385259380101759985506492421775457243798640636032901240843007716473312378169889137123393390478758823267386798730798968710095518661012753216742338508067469065435386013148754246028359473847157738506762186975991264725693053059733512208968952304465001048065784582282539364863585857833660367517158582665289905625644652292781351413727813879870960526230051050602345619965790802499262665755425764349021255217786312048742148212455242073706797726740616437024574726937564623617088400271651949674440293528439296092491744336776000276396052088447864575321749127650954934608097958846480851484878822299987970964752795483947043938399551268485561569240869121078613565726536837523530131975231182141080913549780125609256695365640639002301981836716333177660365458240013666223725910591291164453590991408356638981831903806731878155287020437540108225889346468649168558760824664684072345003583483751513405154484288661621506970608300287438447538708684682549414478893795768016357780269507541773520351945396164201658392861776517384249299526067143207018301884776906324973810461779487937961950288401451072457392386870862022568833932405447222244591030002068219723283990664277947753540215505539572663558091587570640721496629077350764336817340207912865744803704932826361428758392613211331677546566812842338396892492020227164468336979047846823776087779119250590772181866208196564388744238904071673465885525301748835167885394375616312947457589953337550508784455721850065642079030474633222489597254647862389174788273236407179806645964129129311642926402359090711782933606381151416014190924604769340829815637928236727964300031502520200279694497651585459011052613339769468980659353100913724054841482392992010790081753136185126720927666278721301844825333984614182206276237371996759746094941014728123260612822998061314982393317703243265918452270191987345339676028536399145874516826089122750165122905069828593090089603339866322165888577241093282481573044548248763791638117278019480564270418365724401262448555695547682768646779109998043938539771859950069230770552611116936427347017592369365622778188928003491254833072605315677811208786885703227935365423575116508992766116616249621618304245346704261839194047326599437708979552630991020072280592276688683570727231215171518223002229652069322586234123047659573710530924926127288471700186888965603240498820735193295372377658454854687538548821352179033651092607591181784510737089305525244978694466068877180380053529126904373094582525232004385640262531613556829537682928943500018097348924765551788487547715045198701889629684436374255047979178503162211521252530281667249334995768876503421694217926249255075637203224426019132092267838783686918453245233877887419340104655777321696199896281823981495854586525835519663291512408413871933438047410427133850692070086925257639967603806937681211258992861972187348946304431219921612128947774614698713351539311763181892422366067798492679678689001110506715999156918751693134023690141631769496832356605305257160051964416989976625335978768222793124452147021982963669929092748910069099614147876320110255538518914582187015250838732085273352007165110549874412791043021237176810813468591018383935515463584031923447814875454053203121183809487785351395092714874295813629844932259997553025814753901761997371618294280318569109550128855366915563207593658842285918848211894771302778362233636456893561452341139716406846894480820781031129316470862033922913085225829385594320898569125680924582824315578524226912172629460649382469129425575797943901893551463601815687459849988658084593536178099621798390719270547250159966787131660900158378680064669363917884370732559953995901436798898709064574639573403623738162781882394583357783139527792712819506367653880748145617785921883524621876274274093763243380358405101617866381696491777607066622705492234135195183096839057859277339122309599272226741627965014272960342235320218541949944976156445307476168104610227567636615458642664359557136176219938421026259390408020769308829460075724916884906682525318483549068090747207519363916896014836664823172601279893955258247911461384036508650770472949830165300528317312009587535911336948864559722659224425344277360227455862960050877606134143657419854500965236751721302360752970046935442938651486431274021994939266061421445464849865804634022317936080433204718928132678669868262577199432251458810293205442790924509686732324045006924804749967956519597107744576068764170915869946695811847870305418575664840652639519602671049936200067481790078319962473431727028929637831598441146296336729571982762318709063793621805066852757305860275190065975580490520915683795619994581658845691245294715890798413149067625475317171442766097821614530570321211930071540296908286164936320624813729471796659190509214151007843030304980899494668455735990142180793391208380676466873297442735572246974288098318817327766564395184564265985812868449865699543402393546626411179680088218536226622782047285248067835513267724078260282819379697584508570673568320883111853820652012455894797496457030033216359494066021372243802609774259520873396906864954206213580655722619114207329440231831228435889394370097366628450929266546170484282127209909971783130146259444477830540772928130853021442288777799139944450225542495524736922200717556528360816881269080318262240206569595049102664052616836476086212922705078593450824340177900733527545197834756042471697007681718353187907808494982029464296089438243722506260187086554557122626770524738673819018501370732594148519266570245790477091241021185723145276504088192152146046401633685438616874621289955478154818515182087567798991366434419664217010276151439023245699966259708501372293843748180987301367235733918105733147982943868378788608660811150247793173672100276918749723373316253750240252514009194516597710257043623572437609390055787254551955473055456089700920346135551003982958980007479974669784043294018143938180896961293387690722087672807126053674797061168656156124163544147427664644224728460658561463754399208906300503459431029755127869883523158636526340835272367207112058790181811882024755167150431599251831354889830323796635118697381351573553136747669319730790744058743326943950493993256484103378459335353916639777043702003496395778991933709111925392280358754534166674633168760006288589665143937976849999690619361239795837498740050737275884176315787951386347851650388274920785919664636382543074275446040374780638817195405647572476178177645858919985614326974772545308700789426913107378779368996177451535596951255938049597672374748913009634927119412319168435192382240862317377098812556857853347709574710719828373382456945153348795445463497430860241691663009990332452410878410977021948319905518237672081000762986613253823573445435891107703722148457209143320407249927432114622307192102027459606587117426793357233839750151991756848109037391606199895754037461539638159757291984024277577464031859732196196501196236637902924523515043242747332750527145117337367615376597888729563689753948308489220856298532048038858306393854754080910237951216014541908379122181151298630322837504302976184262262177385723390650245121035916783054277244142293917171621486530303750214104321583044489039129900220944538262606988572971227479158650005092971428540658179189109671702256790033115479331229955616405627682041695124130571484013068156952270642734469909474130553385872019289744386961905719105709530391154004433996828708408313815924040414164242309533205678134358083979192120160742691331758624267168087616856850523600971401059073097705703373105612957502972924642302300661923566672886279317255321209811839182329108789931527209813183443105227387701258462347991653251159567371369614426790276363198627653068030854968945910773319726337751084840187139863852549590312083741531590142891909811866191847047950320678986667511640985389297000002061429082620809604622863039458451770058068126937980790011672826598478895798720348352313724927381394316648683012244426719226035741977221429825194497680220335657125564687982799522110053771147466402797757905643307761521423322649614921592431587664743237433904213513133499453663342822381877571351448241388820115565048377929080868855289303977218992708544350589896235142587529035133534029160577491573559089096719267048039624489873876506876677798749844509602981246139099294211781614116129647244966779513805794162846297990825555675856234573394327184320325096892029854810442906998467420112768768491604841866841312468009067025533280575121509438339447724161901346297242131490903562386335474990943146931743178709604996875716988796617473994206422225662104789998006992927097905880545009552124503227274254494984020077860590961602627459192000703495119081194726888275845498520000738156551440570285184009310322835284921870559559678020139215404462537732990230016482648107091730663012573340054452674669905772566825620237963197993451630082272407744474911539642128788041565685764323545512776482820372082922975624275425692895870076420659903441208862629702969628279015699314517921595301544599343118259812154465162694629240863334523113816393618434005421035291977363765383242275882244935759571343647510604095466114700286270955359471736502794297118610998674301819735357295059057765666094412843134411079659730143090292948393192070817424338629534069100644829276950854293301812803110198087049595337336832253548651354561599202780869097592522768085750525857569515750492930442472973182544544839213065816066801270536941790646997014596286879006682374963723020418696922203605230685148739499164124507464669270180603902911714269037067240745908345145368423924591640317743163034920141836413238442359820386854262078798452895000642508488024232274507822279409818360477246728773431924534325216616719493149690922505693166846366138703587895800790710524204377213813426882169506382523119125364564960705952295685165045310210552709053986736699229737764748158267940479880019504835830474821918791551348411112997627499334899289066103992905967892348633894396118560363446097617620656367283786302464294484994541632131462142280558571926911141022486915309375246368965163023998408082635128125100546045524151102069178456375539323387055727000248964785091115287006190702900336873130264189731995305349395091390173744684504147096258842239140008205649826460352706482853878847257778343935306915806179912273817000914856652541464377502860224097277094822647913808304369862990053130729590023797257114250497464443248719789684255691166140789349615458124552103013044950802139136553231433172130197253127790887182028428692627578165258602460118993153709038788125690788827951051545557956329224676579636093862990364420062569224930555059124485941638050548380326930139322722147341026850482497618446441172245854777074072896143919535981592209670977532863901385434006006369050240296717123685647461815377419333553176388093276860616267697180869438338679129411760562047766886754957950876167055866101171159899589225942101178041979300565219972771600760164294203823001832724480280982055402803897808841741307035615140989878994253455495703119047980752007703891220132604590023690221489978356174079704563711336757257654486454932926032303118113525557964667187892523336670535814323640732921062436386052531901684624467043834794960402937932097015517264340906463924082367656706513199510251995723926245714382692952081776218718265861382569101220707307541018386488095527045481959446122010204868965644148466359067868515901765361349713857192764895698034001402130014293951063651503268143278415417004090206409561729598667084391660630335906434107482622608718599291778191713691415619474686666298541950147251534838600544014244587745074336483859090399156457261529038450555138286960833357155194019685405623899809387522216424527117682592014987811548143053577932295220895613519915467903926636665428423837875914876090833804892343795545364161458041848388347990446596618538556855056890228902576225046458755905017703079661577359992714939173360777029399051505111699922986074623431591294833826228497834037403663174870965447260384510726392257561082750870741891068988720087984258960773510088401830628797665109626750212730564926580358377652939565808936318221330433531697750970142384907277062821881068676105994013655739503302662602324864153477327751842026130114493467182081400843187990621182151641598348757327364444748558894277904146433744955135863886462738171432134253053947701599934501382981320786769394880888342422904548591263556185602970999295179031492081914736999816257723889278414092750043801274315653923118272075942795309918902124671336766854395136227005218925168041994132907579418005228324638572826570574985302513099410166863722145642237790572029066900404211706094863893101128877479133776007952414236486546539417824373799644106463208950363045330201497578836197276401608758389370645557656543446459149647141265708313316386059346113520204490546476404846321995988710254384340589962305674656221449767720249161801463924732496311870566700882744201369164096832103155712167357363265308585991411121501569674724211566443297676118929844147450184566513522526901520012293305714570278435354232449837437067244815233126034756337491328765935345703215769762500774864483288082849622889583466985087261756559632864504055241970828957818896858885353996007953451466158044821869046616935064501091126008880721936664869015989966020816629059589524688807361852229504749908150636315350905208549123420939519557332588513970161561440243754552898812978068796419296992147516265690729811490687378272593812690061885883243722813514274337834325208485589515100149119478384790357848998652574507746796512628626033066274915499551328216486072177332200447500906338878951597890219363260265365103330051278670247470247491430289656777747409302345804874310078439699429543242914957148678991992332538921575864462217252927261618530739895800452630635898906331598184159796964844706613229628326666366701555536800659929886793901345436990148923849426172809603293075516073707515534151717541191844162528555692342987435309170903759521507396177797476031466723516042433814404119682482655621934706583892486826864103516190829208207970356970610217345313304723474723473763502517245388020953526325380647586637433106741035808215275817979111796528001163506128078639424510610338383851854649487258686406174411936107187894636262891341246327211955757864479414154598193067633524670864866865144794170300201069658452286661057050073132201182018862662794705392674892124488504651929044433408644290737087214430029834947695667907357901454697102153773570298383090128695284552891160495122153335837551360413592992509415595027425713443068792239558174033197220644125187680618878776713353356513072699521128067046981530087823211724295748149215683765222560216455236531126505669804173014539280468211995093168779985240154412853112563000693948763455637268304424529917237146864002815571784169913408673043022021826505627609354161243746032411421535241569231689428251332578890437558140981828729304531823469527577641571883485499961785346024768256030541762063155525283532937479584127789481781399321494901459393481482089589795980077762025768126989594249346519732872835944238317517953271803070096145288469105689098046634156417354626531595641251366480883487376714275557356140033790854347373935070150953683987019765772041601472156132728975060589105255554578679136841012430079801610143557584148490985410869366098658095959762350367351030715458010443705671239064256190550108935067938080670069840286006677551735143697864287768786038694139696495601999573826728194919970803455747365842600844727031827464664338467194828497183646466868223303935685655075885746637571815096499231763052992215035461242912485915616808520967889365547598702836202577050155730609800066645067812468166984923147942874985572514956296455014568479808026246348437321484098756155068276476000327543004700935143627131604494195071149824628550095537207305265981528088671042196463355673938631639126199151667587840790534235414483320326215714510151870691045752731581401386791148536434230582175000505333036901403154278492869301173410558292776479409543675544305115949738380188818842360558785257428359045960626580973446040113110703678948990502337109172781657849455172952062157685353760290918205104729411485046143402238728570984233652635854520134705742882592154064600107079876538963448297169034938207939641300014840618094863737614542354404080050053270101751599716941474289287708349162321788486485479499799193625535542465750635261260703994009875713064217026678458158113984820158548246328512054312173717772826812204714262764028290150957049755421004263749627932419210370450129077127357260088347166752544282203626784554639402646447245088674212265823581641080036986092890626389022274757045960588258461157451666996481114474646815924950028185117473125374647975940102514444817052236847559157456214313953107244184607352636217821437484537290932479803339781991187323824771284466192477265086645535698940742778909948998138695140125663115329885528970402345251103174162055321043105713007350462273547835718202268567412213514203125355186460559822543768238441168960884966542368413736079467254339476832931141760217141760023658290670893467683160815109443021457051038927369766983433538765788539797300110965935350834490491153250387691901246174796107556727038430474810674448918212524218350622669669074839765136523422878833332818415573978448461054957899665974381014898338146939000635045331756793295278724946490529082482346389136261874595517809555778843059424534980896300646908575388237577840639914864546851932454674545461915451005104795556839328798924762931165105898754618530803701264723536482093136709595711238018936647360418879638989875010384398601487093008561369975755111624953867780285863602226941569230024097685341723785973508685695818779837099578315129538381170859247073056333736058942926841306558897418877594651081884373864440864881272679481946310582508857642838430725895768577427446706710507893526976278630177697796952667764423123856712190910389444839133197620549506395707973505119037115829322149709262171139704938558966979499669835525255636624431436499988313145724458500248872262978463036472799819487174290095502854887608490992640828504735267252336306278758246044271383610933931851198716060823490810035071705265878592358108140518587537813671308630039501933451628301833748773149921164896632137420460461339474022003976607759704056760466650647701799260420181832081779147050108180416699832080266654412299594845608547525635822066622102088147363478334494564629262404319493419261278463316247725682123580240152259007093359669104610971062156991706692217178777792635246978823694526534626334815896574825379579994435900869769122852210471817587121468796040115865026878906222550925226353174552212450255555880269203551615789211843433435781928771786818119611608646785678691016130485834521958860594216629031974721521676669260672188909829732272946254473266977595024283862592698040515953883775990843508603804568592290361689161082807552994840198174479553008233624832917542170553174232306121779086608371999952982606397017788969202950532931361232433408354105533364432152828656471348787332156901436454770321208374454030751572645157966790137989628618145298387895543680304931101514267872784771826141116762927010785340417686701784807672949361618509607813932187187597317511076338667513277803044195546332963016055270302047108351292412239752911494403994085892886127401848654504879509472438714442036632629109166285968760083346897696300121165081664470232376106064619087189866321439621566118593764756407527267966816648226484709230721981794166304584150922844541555248164763291281060384475547388651960284756231028742876629343119575297813189794353243144409685857280772722008212340361024016971134022264050250318582383659166339061165081889086075441161833065258020643874151058832463676038775480978826919586620052333640467857666783005119873599472466045099800281124321330443185144229939917402612934147814057272491855335972410249828399365873205545353832680006678529809559822734637619698116519255024006274817671689263163758828575395732438617978803947181320367861927698353669772876929705185886277179557917136511089170321899719645654928426482695603030181621656367448091756939163325258191852629403027504560953488769492706152387306331970962915974043830247898648656480477779677132555420464037555706601839731538586433418114373470827605484848074751751565683487027513102699301489240082796185664079158482639542041089201830665652380154939342423237814263935247842310827723999116087825857886364060019015220606898659171065968520809250859622159265250262971729107939804438834811058077148375480962673405466523775881430888393406826742001046937869778992517503402629890821460199161438663636557565843585055585468532262900953056110343409192682699965836064000474067441865564657808576793955367502433070099089796996826630928962463258618753842631455938064700445777170040646491356043505113534949004087205814356818106043446350187361142278076157853165152007778609929925596500999682179897069433696127349269872873708225405440433460336775897595387257648208006412600300123621928314394918674725345721265976996560261251220253870097055334257363873779521898780556133625378873224330499062716269904339594075349264580858191861283147162144472319648937435766626112418285442953601874506599284726439644932268362507926156016669399997957989239183384451469216859707919117392314059080387970284367119772848883034378691853076247393491458820561251324361407091467924965020421138604046541430474407507015781012248502867701522553533935636140270346879157914281199688816670870793448958180368671534721263623388455887577094659159146220017011826859260240027456351876643065744751644010840523259495418428066024954940000900169336787667384295513222390785767885509500912079269126147467886476355014691103451211352351219887206754755134804658211000953615838098140746870092042169535340349852952285844794119904137549122608011063815631254025759891538517732993787708597946432575926883164678927806916253818547229035967693903649637443732418042192184757257756399614661617257935872341733759108669219312906984906286419782567522032530763884298786146743267551831838423045499528036553070818133154516398434484085259404968114490905164989812233313534061314574895902910863369070643729813460243755460026813012059400048563151499213993852418587903621732955383474722142636611464721551620815251076971910315996872940537426171592335833321656908670875977785809154571729436082514039433112977149139799843975318937616883003977587949704886577265674761175657903386104988185164958835679008388217297370371901710758485271855013160608740350836801541634398367139060187565198662991169735878309820693042837394086678588100984673795459324309305421636402356269974693200220512247889912364935687804813172833347665791265390891106844067940964876308592170446698743521864768565283918700568577934903725464255904264007426873631626473158231759632814350685373186521512361590911117887614263511368653030605410969256777556256195945740559108618474238396384044338202355931222403476328211319907071467641742965438942431522337875493046440402767721715914079056127531568025306984583554760468737873408099251411352610699913591170211795022574571737905272887606249484686087458806143744949339162042087868165103085802197371635277015972806863803168704215460710915364150814289014257218256269791761810197885049547809394543096754115379933822941322837088247873950462453864296270889611651461740938897262922944376696659481056916374967658248960053853426703107637394588801034918375084286888372523171224111628189151749474203096420355164551962219429231801149961173502201254885105135011141667066032014834776733420396591045083551206257912917054464464490545275459795433728916973024409801886866663201466441969599999435865283623509943512010477909918643749841040499251741087006135866290197835788112962091775072002621553502560080048376121800372245654185138808084651904741835186749145378730024328104032081089253806719817501432299845854082893118189840973925040279629132023460110764464290697909855840289969539409751765274338239161930526434863239459941969655414377219578754626056446031010002816289219574079628587443361566795396098970101749506534462895730034387463539235053608309243126017776686996819452417561491281632577427977592088908035057927888264514451236540269388873508312342743024092039986863645462583100472739506231948954101374540876236137363464603348858355430376736819921780971331445356341186523755480906676219227178825929073161795861074774879350602721536525825772551467606282124750626349693317390354183544608186656446647231015791981522170022063934896617118725765105199377043096570007000679195379225584992140909384463140043110476758886026371246953794495989277088778731814148542568919532753417049534506829889924344531897257898584113722033402435067393374940028572294770294353528254877526827085996760843959590528302627272818225305075347914509041582864072071915012430403744800485306578635090268984726673289470943802983901757148122369225698312106991359366973956185627426211806095620693579284623309203615419749601917596701473173605854097202449847781118903777868239233970551586322963671508620831098970108936688874346985869962483920020409360591163616175767235169720982358303305737992549481048433637277187077495378936419498659454196426109467991946265195170264665769806142323974573072915696397400737963480659431310531597986942962634295804430925734803847956595234458445602472961865324822570016767558429703538223450667767913758944917960099172179920726989623726013818706629850820167590007594528029504635225767256280781070573198285192281733344338178788348909382711609494557216058036854339742471030865435134289410635190790808100305562203818128211480974617293341040339036216945269902549033531829622151244362197202543928450191425321324538362544379470177510859047476234769166527633413124316309982876223767962131385842780815928505512929570038461711978227256953315558506795783149898267761354517152126228510962326362586885296237032214931718103349228804862187479159981380630060334102632860203710290845274109036162852202093350513672009856178761651170405779020483475725054351651964423601352844826035540357889320094645026355505502420830878450217640131204910626207201172066800564355263845372958521176679247592204912465403568138092101021239791109372220781733492456764462700956615951746097568705349679088401836881912539456286678349402247371419996917947587918700891362438647681858540497701088259711181380064612235353834175383571041956876540545441532881940491312775915108289243361714888385584604153900184064495924620888630144270365631988973231875288262354132653044086419980324514255592527173086619598229790032723300081932256818438978764664207958009960040574935552996369626725664918999739231758356984255942895153352760057007940767923193037182160963909635280853744865225189030634811329307917185555843223394272656677705123557853191536640389791041021747015203604550579700113880798246741972149436482958338074260107470189231298371224142337429256676201764359472085005619119100184650577397491396144665289117877944749182435776849891000842318358356763553473418133431704624159438158609902613812333839322481206388937917508754421923364962634199800865242297767641777316140615545724255385525628182651780416702477648024526166628378991240826395278415378908195409821499750086055793868741558777416120737319877008617883931703914933502189558909918154218832002481204263276852230183086372104637547916373696774290259351640148184535911296822202117491931847701226959499456108914285112741549122649766253610926283908300131072073728611878884211361322884836645974400847462892615534515005118284969059755275379129827233992725194462947577789925174456757977082103623477154929098018644751061480215725255432213117322300349685103791396469581108280785688118716566855270684502506097172760246963159155273605396375051090634260668223131085477810857504225517100968424550811000784507121441975953942628356693635063276261808880928495512222509499597821206906470581054972122043065582006674609517072232881530221950984842746148603921649673294442879623837395122501366067312533217297367833749251797528154100571298528882351360478375962533904991043540292164662066292086527509648556067734662261496231626227755630701254038030034758677428255395788921266963132041958762644543439630839421365574024099680017967227990596843519812902691115089336519865909418284911459710518917747107152701595931298026573130293323111891686225390439676312265833112820178240038591596386011156162863116824535573278827299037280790907794957089936407679242561622041047688667966568384834981108843571225267226394979088133739768645786940847273227071186001139210475208185849653581289503342027426778346567110486042748362773853361694765707941326830978209775867186529238568994110960747309660152509525498300655174706085259009884341055618446536764151071825185419289498254213209502966435942386012938677061687025803608769953078378463616968767844576207307182774318041835281052481950750087593802935333702752703909020891747962481858620579129074294603620765132275172027767920261968747968127030734229882238452552837415189139537605175852621095592899056851986140486326605314401775111478334960364806742167879127397912863325947937926398769245552131088316106266101541705276364337589648698364011570934263402461957528824051092473539613658318498073465545286793133131844894424148540506122774073581824286825328565236605950683706454302600121665676970802265054676399601007386993591073048763658432607238607282611889373827806801838789902731076075796719472711096549486200783748396780033188727212292173187642474931941498949093252848067287770569968525883599524971331387744341883882215198539056322481184941019426664236932216007292010168804858842926921683354600560189510053638730567777884320922967353172059721238602897279244986137474892921845033568750491000672642541814927030449615725723672706052027344064707244589805730381180438449877290584404512856624748315594478095604369257280210153501367939845726140813151850713620433650559132354617511902747115853716791787737714635486179439196878310685818536033930902705850324455942984304258374401941859491435117703435461831195375532366157451201013242707473224588508273715338719111946063818296992267222650169368144163995905044980545609377185800717857671085688459224612875192213444523309798234143775924065577453701264118800795245471106139977436841175596394703219185639156157274861301054732241336459149672610554523452546027651058867284502824230292321673919618205602728332007249688709785814338606046668751554712732424278233908479032272321588410174284935890198166292091166647138568476440799191918820417996358724472196755074770335722050710400052816666077558806941109731683906613764072195888965587059978749469182871333111833911361439925336028318503910129329133952236279924123715356159506934853493959332083784179030849588742747883626967290386884422303848792452484923901037995324199093586986774314441111012130360903394148526462842390387630525912475135945206016377051208666183254138452572024191931583136041623579027608050775475723152247593891212747550630378216945131319969293684690283232343494403414041664114668732773073495330898147916133086019779676796060796852803613587670846058252325888170501990813248946414026699094932222095676959421239811302448057962844722528763934917187404275181681534148747537631887000439598901540257789897631170392165994266240106298748812612483717378915751130669629958910981220399799915407878549264200935731003544597910190822881056056436355858822664343551615367089726553227371805705200224957529143347688777025318889206994541821265521466303166091986533752384514368802095407917579090536565144974038961591474928682409287197471462463640265890366219459191604972494538739729081639002141939705103353860590452773970677461639922937730917431686257103420192793070380321818020991338670864425966411511573156607659448607686831738626728152942492935850666833470072386581066532429557270263757932988022914724509640372482481039100187661591455270250854189253626557167108338327839712579786740727937253384141479369753385430831587465204539056238622827047988271207215506682075759905879041132721928501712798548518101628822971729587188112727001221391821110348975639452111884816042282505696176802953774854480827240851432085104071657645019944255826870168338438968835229611236416593247425963039544042956829920068293738748206396918056007404805159894185494029863817886534074584636479141906488051461031409024478673584184789299018106379377655770458262368659832962436187873188818419882115118126569860615210238128143713537478711196894011072444950305006517554765840511563666223255127028894674056090140477054442985369696306575594075716716280776438870676418195175622927400220814009285620058979373858190277153245296346287986952746773465959334742046569573357865487728199930583148151226858379486931735931121372975735624938738548822376651241411705806107915600124574529704923712759178083756767601604167589351194764492309737355359583628100346016523021720746845313986061769673125942343592039272277698945472205085803669582870889131232964250769171184460167274321145255619600393798232534315282895646898553203681658875836048456201464462593182042154348359943146656424009207730502799006940855593326573302598628268455078032775336335326592028675269290525857874539148034645933994996771886159062417236564738533693676698344594571795637798588302164602766301257503803098797930652013108941085331299611985731004535773406394155363798691640150849245913343878408379976693743601273112662954076615270944193570848062078462335932220594851661997897641453268314517591681469561032302259923881923099347921790031305191432614624502359920564306828195671307721123218075971010992128741124322373091955065058095610241556188886723040230038343679938259257055084516497815367191105422970192828480685621692753189986604098786904214748002607565274552195459445333592826236057288778089235769546373206793051084351472176106275627597881435676619974579477355279768690029837526669512781164550303320811326502464173614406036385986035113679094188467307962745596629421276328770058222950843985021861505882723796251844166295276199850645017817314568165714947612171577374920659386380564969487316673942787022962524700578259669129066279020798240844565301365743856310233456995844702290820879577113978523888792883629137616992401370663198360198225654265213899721296036216180969468363229261302948761248627293890685949556537640184211393624063909802871684747390682324066299684519743470033257355337549506935331401954281061670391354107429740517840046542170284579754073178125109631658363278872394772232419384167832137271484070360318561886903003319940698091499826181007178230993675977879122983552055386191599106706501624613986706640550119046574416152140378872284379599275361555191185628665914223340457139465183025649432368770409414390955964450541877704983476502182807502698002076336511059480290988363947153495217265899153763433144421297791641482222269161081752795083752804496400704081996872126742519033131810171008042165901045700254832914266095422597611883639634961858002781764775481888829428444983675697901684488989959197610997202357809488406026694344633662991723358343881422083120589635642793487494364837251632652012480890654792667900900834476657931356128220526240208483397923725298978914949856268443440360551070594708684644390280105397545847760751389963744773737854139411554353923262445212730440551149708013262154771964006755921035494266237128805159449309367988470317262223961992346731773820285894582524936785666534041116641362206159330387616550840773431334287724955095554651190732623594321386797092765576963507508443343358632794464927144878974545459493313221606784563058344664503290947385180486092941399660247741558760362012767811046915430480123950950913414457977305736235250493218929176562144917692533366084590793791477650732462579332815788127659139496051570669014855298403404885137956884288733302722890150684951532538617298482777385804009468965637559005796627778457882671986548996848624025968094152198454666703415849418733876552575048028992247073551641031688354623823272261887878541806467269960375477071875669610674081655014424241318711291220842522156614838850620078341467213258299223963732291524654564823362112544863518941154362182816455607596909642424521745526259426251551506180752839170656912451740956455506501053951174620205225819319209230982420589703271907194403116344229961364094740978372095788973607241060522091396527038039429119597860238555567770194487703114050464043166209216969198762402725806854466005031461850593513057766130719563845668721826493963380166312182377816646172024697783906331038059683601456796447821119046990820731946081289045081985852134269418413116023941631519839767840932290915544074048197373544232096273931662157047092008797045533620347213176922776751302838297703640527707315153581209161059919015506875526256725844799311430025759955207417753788008564207152475279561272873981136342410242775765161920310250700498257811133638725446661611839913173938701394168829155069068590584026531811817038029490789346587340809157741634471545903198359104756694588759522841187996914955010167272479521654733153935231905902460722525871941043613452348245614838873056631239182348298345955288774116482418286443831728654541851012372766679850033698092658044171297010557561540379514446875720013767751862608160091176163338886842385314375776501853855778005747656721347419045411120963754134667773828902212621281404773276675927370825878981720032636905020413874960217479248845044070514414756857656298263612159285389880362308313634235902496816700234695385028933056396190745886206805880097897415268536660660607950234444506250589634758664285244043339534496347274642132104414415601522969083900976950107267217377841742584502666951775879459997633593549472093352167165713935183538802255211718205681440289927888665573702100527796659125350897158632026710017980334379370289074337852605318628447906572510697083213788823891364170774654734574675082495665351669370799415019517519715163534844437569445604860894194201281401073294447912241756871969956234136835036340357466606608957263315246352212647006608841810450099687703297788161456150567940741433790834030885143894493590239989063390955775448256851491047578420174987523330663958699926971645066187130338720930669116785557970374794265028279243543568604534973035954533285123208876493206437369143145065778652196674939188136257106905292429156297939922360769388994956120650932664201015691618108761537221744860995290505904659836796933509226828908861495260345583714478386647359464733925875064491873750163634868443058518400893471628017604967195155193252839913756726509270701574093317473156272214124814235216311850816832010072187268595536313702900820006109078519123812638449382690915654831676479807228963299659049959448603618742094136594745882300962405376343628920892448124537926988039493106673632045128114893091866044739348559400284128481164074359961652722711983147868940934231891185297441161810180695513276808423422612326253940262592804115651690526324390463946678017192489833787789233502501047228630689718490643164376256184839594814418736648730422523012915120936264655540382217738916832988357677207054303175444448234295814625102217119374089070832019083649605472956054327874042476663423491731494877302731561781280741058802253393611196305113352154075257998927548641417874257043626024692443327760231542808933168096085708800331113637720948364556046978620631122742944334246014414437957575986900112266828142302458531322945436483434981085383937746791859059275729621667208598042989299427135048125506010097689269857414840781347358848778270220876474367407915464907997076952032857355857297508503779329038118104691066469463014590173514236914473306631534043232976493525075794987401983014895046466852353737058866753049021445568996016928112669715104729331988217186122539837528480222008880082320841402318615375080892997180571853578961270089291864876123081989228062231982266837167382037000816087796387797917653838536091909450292301245454432339731436591774185783240155068144494075214054385576665928628331055247989064643071576462915257876537262825044305407380435415830940971478896362812243254369648893113577276782712459437757727115732115968871962788081523102509424523849466118526115878275305873375757341873961623319745465955177033805493426120216204244152439080773812958741289126332493307372453516089417072247936095923790673284303674481359269413163824316795796740633520588384826986082303299683120130956773378538481392290072419582846390489876525390055821282300801159960529950212957825359237355227657908101064650191676493893016803561637157797851193404118651398197061309578026353585403120681624698075982613794614896164310290618523993713053571899186835569314640457398995495551806115099281364076633484558937654740585452503163158684348167886414009430262662792431024709504337570341283922499186174336467270577874081002381516936799266315227680754175962172064896301060530172970694895858610221290585127198683959756719636276543587176676762361201706325230467513667926174758052148672352776693843152040733034558667258278214659127415032203917436864087146801757554105326958265409229021490701724835490308647977335231942702092306203232529924871172249416441698099425316019809668290003013127214745081241103540654104895452933388533788378588584314044760132324896310207141137288935216744699779917281488690211813694099819966458383778720515592606423063457507443094186235483519271230629581459865529855135850330213908812737030572695394162925672081163880037633222239346926735768790728402150533220201160615099243354427113255763414768109315149289406814187516854049935285526995070906142139184570646414790739417787731163165133783943226823130457948002175410541623368766372389785438388755729787414759946261281292758101203240255319332621565410658718982993487589133662768113514864370701021589179786658506853294487028475742264955592223495898724194792454357327368513410339015247674928578476776342330053069859742834560056885824510530577025356399119905935953252266952880771945853606699428738745679505759910159830860911457294954774829273884638858415544481137245060524614659025725151970494670516080748094404602024643115256260085781586818943049681744951440309127086853695581575567712661405305442714920175603914369021225453202612915702281445455152060570116248703237112315769599630442040560681016404147327183111688347363934434137317987474323200997615683559178198217633675305998397547455864566737531740589126337369951563387649724327822596365371071422948420877725055247284126370759929980679555624342374162926550708334452330851370389492718520999828801322020390652061090873872298114005904966830515257196654126154155539114259007377048832959144396935999226543955454854155454668889189315077505268756130234090962419043051305321284125544887421946053926788345852958521210175792115493835363909275667508928582197886307357596650248963571656859604142091499856616731695054644550041232380708613528073765987997464758065173014076607391738488778153662459256751011089054939850094369640617098368022403798028446734393576366992407627822717585430746996810821279667234272494351775538151014459978691124789759624200268215823819998968727064695231736854990566334821988001138259008681496886744114482824371463062272936372830704649228669142620775446802269974183062751679966739289409698533784538309121909361757525377830532187301277619909621429125958540552275942362945192631604193583511372986602418061714474676254443032592190824717251340559433667258402143047518928409272562805137382153480765221747238381829574385708162526804388859911211293875574800442525153974302226205746728552015194191987497275208585057262538196386489638796675633403222992179613121471892992040258616308397369833904445476293304304170710902275498375109088854444937388624257911487877312921017326096096079970564484079457534421508860275889631279506424029411190506770795300770565180990969841384442519049480690536638095941007624813669804860822381761842728840101285212582242912748531598156802837691568749099032275297798930433632125349763921583215618831922056697105958527407679237015615448308158933529850674313375067873093476949103644698889504755917422908294442751880493049128172292919267180645835933012775928911199742532462295380200580126297527633080680195158330187220678241249289338427121507241179423576557640999280238291115021469518359225434238367739583137185142145904713004341745919959812145385170478667844880262727867387844652230401892583238312635879482632824682424017887860839714317097599385076725193768153916950577723249757006188009461050847366093359033236456104499034703534857611677107255404126834782793500836105449707807327304140854928465621624111118341335997117313552863171387618122463665473262163618886386375591031737039442760085102802553035777698734746778815614293007481857625279026322221375682527641260545720860449673903342428543798860053704996788894064338774245115752908187994710986800244698189786917793818958012546540895455353456571431702000862255701298105438846940255259419792356062470502224436727055069898198966062973555482690245382882371752148204534273300867838544469437673377903848859664225557950046575736781017289341312208762985077991555559939385534195233883277376240461723104067495097503338375991827491896852905863378892936673638923995185442604461577249217947377288607691069646995779310667237828367142034140768001097945736215532754633954658313961868774917054950404594805315907503570923068739720813200992615019484291686058622139246283651450748695492038601991522077450900683732617501223847460735659668594754771022329158009166808143091670036066552560616855423022208096085601831355868003423790488094387543040238361195954612693020050684432516931295516022973967235666191471702682129442600462834698327040367986853272939883390908635969143921119683351418749432089502693199453414471725447575257390301602904341855059925418296227830038515510457514229781893965166295185439874380902396521088033139312573647883284257968244083886692280208981692181861201534169851902869155518035355263057159715648661541094977164200348696670244293291019030226045657955986212878829331124395177049633905004749726905410636610418009204901963557764993542809343992945897349171992596000419723803156817489235553667932846795484304874246755352361448981760782937102387274069602692635160745712254325579585836813115751003167119268446814766781454998520377311292014193528550131860613492583122704342152697162561362705287012298725468020583775573389715178105177901049503145030191415604382570193543953003714630565498763084304019107914328968381289023748516601502374959741139453833566622449611161699789027863233756073553178450078087192636000021235002495989270716084905355143197813929764810796295277018001802482124400720620968375514759109426980961337212362056909270735068707813025806508438682886307751092265906861507677867687890650514375037564510212076907011027005581546348222920514370205876068079735176894869006424817533241449603854058482135640195823920718181563447779570739495341500121242648644078624389928897317248869492849108709254595424533026478490894541824174483935363922799891936944699891523073654600268449908422908360201764119820652690647740297120165632308401766383490938959377662579176441305598560891955910489861987805964976153291124819022632518601118141868218021707343928757739377072007923904470682957231079883585333878371058314365696483448069537108721068868768485886081509970432749335421524437487505423658844805194444271684468181505994640128046629655200669744789155742589171841773580413098360366679292476167140636563934692145568968631782047198339214732279729262000227414739101388971161771998732345035230228661257365079759560654380792234105734250096734993274532975581550529636677303849184851135500135422235384667829177103916804973051468293562009006833266883321284268169356215163613863332318237062668443133836087219290115675957306733537724195715000658138097122397720867047867417348126061376632305012348972083572592978648162260653343906929135881617894809811828856060225847615471417020832022877714734300290812091756602719292767459371818806694366393521552598830897545420697789094338826820400739194420072466174894173936486649028283880204075097157439920830699204092218592373647650772278930928950830643227461127182252279905208826091381558332371352673187265114906753615388373531300045892764687408061485161051681267977341380918933143910400467255660680587227304942044557614861223414088437537610925122518619541736999886030747206598659486540535496245112097170195950881768985960436688200974507604230100233777712099997441367015059610633641760093649221760987114684318013861702870467540102250618276373268732054392065928326596029717008604647351725677971718683260551288543891504479096756810936274625548540679375856047274109349057255523625401139098733999134288963012410290390320320048112521263473113269437877192458264442667057044506159942113575725118330139708630300776337118244350815324534540787074423699094834809872876279718470283469810334386338988155293862294017845872386589797420230227597315331999732722175486359063830954956932144108576867609574083442932531772585461317922251839916449937412919259525198002448274983921888538835101687696920970164677244202471287107397510805498723417496498000275123552716689492308807949935982002088558436412218672744621753331040984254840600649423861376255004358039956233879055745075669027734109725324669312168077616145182778157957196830266320010890535644671484932216751638298036153133414930612143516653807474349526551750450995621242502314766893418673771691322216790702544967172468478190311024206497981263910048899616487222232964361991718995615157901236848621471732308083813853036280647402412634512811736662087059295552024736967377019470877926936348470574979957218266060341191317099837588236073775832548862484191838074229181630430327299041973187511042356975019143960343617112092240680098363231003808839557644194484596440012677375679864983785424421433031174870668978553350247573850829406972161338816109597435571924782992460373831913699873978182417406209947600274301834603432806819139424122545887720819268425240454897136336741114269914571127431913123698892021069982046413813706973079999658615490398194753654681845948177447044018801716167936916907381392749459836906099278947288074955123922282755969433274976563609901988483896557514742443807542056506463707515500057140827840090760485330837624434184759387364103405211493715914298655152606925220647572939506725162509354076730074217878635922413714818174878134876070215400418786407130154321918065242667385891704383686273488407451310934581676677462656331449014151648093039257869920119566052481094233236290705639326201039197480984281574328519183916408386060505662868183391262286626402830579645764397396065263085522112292883590560132592638457386730595710044601949114335542517535245481948260525713094095217379058850767169484846750925213613941425492199904066278888951728442580414588141941241125168050725331751042841229974461228789131168006728141773042708821295104933916014427664381125589703811278290926977252186138519413127450248061008420855482915166461495358183666134749425175310754552861049214907582532761932854074243048843206213351776300121181373946015214019586549940202077282883717366959204719418089259099430871387231238531350534988374930688250562707086477537842487636874878314044465235797024182113063765110232149656274803676274146779811073367306185929021634198281878403898109190922108638213137335781526970410460653663249086966571406424669947493974298472434600306805710097677023115823965387666591673879767698482422124866798488533711448059645466915963587433199926300233312116318483099000000629755268355618777678212048369908955898396781574755430803498289502248769299276548108173857911634634024424460051457985865640386022936448562705217254131740340161096973283331195701266186905426818498503901390886722085934046899320459442236599084745159775382555338990871651410858172082631358988690117440151407252483445638032189157688749619683830808897157781141848767680145100779985022819095642392129215791505146103146193059443533506320353690886910109123545427346431315494943819516675097557584363623405392498549613982623417457987554087767469799285129752013932592616749216545774282706690836489417785163062237348092575068082243769375864082636234072353382450602304407118882416646222636426089277572269602961326151495144868025326194928834615148046866604833383172292807419342296083515691784328091591929735693983711479349477759157784043542155267161147241238043500139079070972917785422698995000145663267363910365805634926306738837621792687941356817607863022887819940346036845816223841476430317507536021503588813244056494721914347577372740615666041124378517032101040828644407865911140840621267510773239404965824385408649444481305725419802699868210407914288227506183445255897726969646872025873189463167946814137351592648034446588272897233419106429463839493678669743228031603871955710274473785220034226988610780723936575391541269465749345131975085933338459375656584290932511633107142191069645706762435289967086992680933674851623368443016516890492126025529264070064672709260801263449354684849156662872189492108130776769439860638233424492730299788844303532519543203542410385003670840314260929577822721162595496845003236548760913421807505063535627086459634380751005794969417195674361331188873851071368503846978286213982491174684333349519732527225914148797946698217202305884238431296772759529943549579769582809376338001891066785643881076481444769517257574488749221578201757981440804049866851889241721424987657623710141751501713583519518172595771977831451321732962861336684543756166868610430483314639825458971314018007076393998302832735839468642974420653158733467982779813968917607450837119031544699749670818029989929958924314790534781952334891535559637337185682774387966657122097727576496893285449417502801318891379091776841211562124084563356433043220003936191292099140221190580177240999361903306072398801487512489774407868684603338648253056988851912707029763700697228098741126405935208634283366886671014574094126300849322337121404371350669127859075880905579507556847691664965321380340499586113278115489397986295861609373654311921590839302841843777193815131635970401044886588041283440699041661234496580728739715679465646760216661212730147118986656491114274297375488685461288921017392879413787166234570937501442415801428362452204190696113919408030445780623794960350384982695987461458237328696304863075193657452298176372579872753645251236781003537681757756315513552549120682158599878789875907889219029933972809198644924059689146164402511822109137242887372362424417228238930928784171977356740405784425682412452566021164094350777792580879251563464386897904581481378146928573497751337288498540941059610682277952604375035980909140847883621454833825971724966580918349944299037481403707551911971007398752465426901827623549490139819716590323221763528604453458241586340844194163233484977482661418880529183544477888059586987627956279122174114645302032789930330755853259227478854527870698763765175111635561705821659529970243158178991485012684083544572361000253102312645506313173835453402743064866086543071863159645880682701142337536144945864507057398123728075110790186460490435408011335253908284083726060863275926672069422150716325609379501861043280290430204881488167636351375746114089297820557724964259771373214004700725866336894499029662188037529512852213789196400713478768416293875896463523371086502336349677793137101032256128997949630420678209967792661339913445647663399973606500563772828502062930704391633825698227037768724298805686752281382925257186082070802784620590634960667514416472246780753953188363548864068622690400458672201514616290852337294493489609284705264625272389299833921214415340842647475231483789587780852754696334674984897574714421574701515917443404983189799059796677750118502208678339603077189991524773946692124046693695322344904646036611941215796961564854695060943843255709965289930861869572781093029052502205728658092431412406095686263370332775019723281761283475390826476542577420556356917768580798360038221778436944371074344499267222141106955926306484247149046280873599398833970148112589038739630657322667761248151962444150786433381073720829748702734742952514318515917745441081867230141738912465631204316260451696460053654549249267624479178631438412374080027029528446232734130936837599230738088345494022644904726547903806920335683597460458051195115879759281372335664105397726469432344500651117146792160112473574945986352584074405199458353164504026431463542289839028734045448619604695990955338355010661433994672263557691424572253273754562386657841564782789975983515316410836571608123422786527375658344849556000965360953656633778844062630420940856925513306225040292252297629919283258391153488429596197946206597315227342478762542495494517548724695027503822550449853270392412354550101016502142150072383321051993404821390492069878476545487278628877269287327262374152839940707234279938774617257803104342414046471816188746131550951332935589207730463506145722695411370975996661018589750901595437524182677161238362087454373998724243031321276247213420255894267365320396901264819459038486187626454583974361378562479187668634696853184037893543605728022504052623346439199150063561590448738791251684769414496229644556779340157232789703318377355349688338505712777391149895766508488090614079207442391564185001484624790298863270131000094922058491634808697541125568724087341396848066214225440597783744678209912085094591047381902193355595515265784527731829525336831081443256226270577796599552603963381163515403190584449622709549996768543343871777217619256990289869261264407666984069110253620490523172468443301262644120416664600696245416623049043804036719367099930332438139625096977467246118628649786644547840594338005345362935048264123691549300401319571233317009408241917448332075681843508969437828431248776362341021743642574712340859279026401717227247708293434820238694948876095650773133792778039823173540977923615662442340368791101907979492988476076212534243077061024345127091900663587011421708725135913520884681239904406221288627940985995890811010829654270079298171765548042547168019586836279155650583953002565879227166432737420930291269051258886046084767180708007923433479857261249166067294282473517203615178784238071910245405678792177212309335131227575283608621432371135103448514018534659703735789125511054576830939431081879692448927097159358704524031069932198608931239170977942705083998083035736383321796764704745164990343354901195984438093458595099410476501377272366693539949408482573344265698701624125031724202449717557922554250833652795210765552695661604066858273147572239561398792707240104883457997440575894501948174041628255860198202672381572435141517415058040230337730441933382322646841168601909836950267697286828056970442239587401804579067762382889716261598299724972975060837063500363444094850623139849563748833950223355879156147904942287462436641212653945935072342047849880367339794203418406654759388555231031884990574989740887345750696464378692881002708873213590995303894189581202908616533957905232135546994809013696515341634384315211392464907428036373002723593055370134955246221410490986559536857302826222801851775787121985897263515984549994513739234597869359798433945333807253353653777265087523188362696810613098162971195136281204800553809560264914514761551995871225439431452044469155105935042710893048159327873896684205479018186810091806182964580050163617855832100565371021610663042479060366080855268013593428017918567486074296079233494844040197886494769608333144078981970663817437829020914494667987244198733513438619467118647180601836888415227696447520985480557429475731724825589053108782894017729827785401488639909860116165491139623482756670760276714305903658459609892278719655723744725025650050870243902926405618726562414160125234478767988008723397959974917142203038421181090038661331105282921502328457333730638474792555692786187726490806964188594812096148455604732257495022508751153744485726000882789966393296656529609625963278938060243913463265180933476971716184317769862664427885750644470588600332757282767419223285672613821677787342909647959882386059998064543426573870443649411902921614789372193829504047988910513402660879186942254338591899888773039753641568755030690742242346572370831313300704139919771230922893130830438252196151254108138624394812177568726187826373735611712398380351447098867989689982815361024891308906958153196464202430638294598280437009959512222177975339386123446312705938034006188097812830335417718674374139410774855067206730351190932811783359731968585961248176733980599788424398276932812106355264883644485186449980073276824238946964366263939622065740430237268652653682863838354948821406851593208899957930710833492996948533009702811721876598030459687990441843481547242688781937831155220081037234005824916281116428061617700647844443361065037511982304021961855927825292864957291063753722185291491120127217298223945907073051203869453693503436230482928779574047383096203729266410091553556481479099902962393360087208918534291560542401328674495954806466873908910179256514705553297811502540857470936900724442922852348622907854084749691271835579009555496503767260000544489666483273194396968597541741086635374252206310416691045690054309052630078743036379581270550923091153225060004413214698682547019735699835973930090645504777269906518253224857931160689711108018567679994628231181649720375188247015671522382997814581140153826803303299824690366319347557987129270619836406563486268063205143262969426762793672802510865691493611663410336948323097713140071838004582099744324558444594321343927585998316632064769788908270036733125232931450403486542335303919279060769708713494915010959663087821149740108894099586050666600785024824614338278567251250659041095701958415085622241853304289854527651029602918678521050418831110622646408979975844599114247478902376325522108320822597378645821149223038374404725274797195040543292205327167833698986062792418819459459956134870067207752947798888892748460220878150826027377695172030196775451778846501265878246405210776032380608224728545688421998945463722183681114297559355212640947416543715266895013996153650668467939496921497959914571780784682919851652367078346575427163541586800334766145973719125794922243157811349693699841383019798274653488030259406786316990618120251103246041533558853065535204454677586361754234273808412498997974651866680648281957548758395403398661663725680686602155893960346455899783701580664244974681494666200550148062144671338712982247902794447823515743895196890742107518632358637380666004596300317082175131725323385592009392662869627516131699524820346819140479304063299741765111115240312105067177872762417054131530247270917849167120753628837738968707534951491833481400910550733205678980351915975641021095000119753355528781880927872085780409452087704143938722821954051956109236488292090320149572854582054432995417197066148140068795480162489260241123052239487597173796520403364696365953761446642738031662113178248032630062134789040969390741765983072857157983222043744753756820924417395255204897170668801376540197178699543125320739066785145302497458782085040169778593152732867330958479086053005149176780731494848341956418194833870811884667592255671903854265567144947812589459335040767598523692396118335245090568494662298678580156224944558999786703213784431460012715275858192917634328775104710790839924055627545704521955621720588325017652331786081980611311236316720419110444490128687393465186944955778568549801542883924166719604034509055433337111487196663733918107369228804053250324482743632604288730180289810217275961092473945727498646746560066892917390240544556280028423560742095931760472113438151333374097376780572367899640965878970644120306048275861105615908390700713055748734741163008476305451520188954468918415600647960433773090343195701543586987200457198365641415836071006252206804648828837254983966657265070414616569532106856623996046844882855222612249607257633321872073426808142980772532180591224846907664777330292856807232855877783634206046534687036943243241995022625050216898405502995147413848333203061931674292070648573405239346149437174784214034877534658128299133592456118111293175283473693561488613782775177788434799719059428413385920330984687345315805125952382776071063953875061554408956747461621682046029434959717283605164323391770720348581921095440615716846766357906284292382433878984296851991113923797133854847603022731247895059301605953131340196355461095950445278040377300957056758227248025763983097336055717577063156579626743143478242790449633712899768106347115084689768138928663636191207270834078218619397979949842916119968402831099803729430697997269360135054075165724124500072492026213331113200450347088326795403618247228525478866061653253074423266571666628927664286154756580329603253009760811724996113371070240990387732111817879607860493351343951796080412322297702425209488366384419422670463460927850770190773943891095891554532277731823089170867091255831095671605382640805289499126839888077129423643496830559246083906548718087715852241410571458881994506762024235721042510461228784862956936542438283206336005581979739562327976437018873232307065162128496927200908965997450362373969478467137528216851202346563887482512976663999722481348233789899885149620523697494203475627193701039848588709020149908663251135908449380459381900360336525012414310884728262722938257748311931824990027729759012451112757474965579199582444404134323237323065291941028693586077171286058413017566216782934484447451401765819997508028113514862221810172956119153658075142375032751193175002873095316406182506753669083912423349484420032363560714979640792521263969634773443664816166304239476532267732209167015974915663270078350498603469713844187927988048956196246712560560696343719843794699899262296613362866796671532731569885523842131613705065751563135435849612416711890831551634545521995555900805578263131394323739451129090209365359751070649178325464779298081281242047011567665313552583852444048174237204131179003531063590075531236815875268042857894239819272883928534157867598451590695191524480876965809764702341250541979206719314662012953638811738761979470285846547784608650126349816240715288211519142694433053748510240631601854155213183800195920307172116435105693819396828613823369504849548877600361439863443175923704802110344098966348300794993417250949768642880014300408941705246130320803796244014934143920890681972642007411080359407241079537224179611511166676082196866530175601689459623683815178096531188039144172579518709444961345392769605953419175794434732794229383819026330919984835963198088973442472581091807406836638055898020299684947509577170345854167036054349064115235339955306844846844761381979685746232117840743355500511332370887376128423176112685693128940567100876311135461252036189864604889453084016857404447826628063952993875954523545867547938922162829645138029486027874477878679225097372453867404520106628648919885603877939625922883238377800088145496208661419823142116151188561577845763726416881051821508574142105021815468473127579094525726275174735195002498961862464793720876965350683403217767203349238713852565456770094318645642484390869424489705433075738675411633850223647450539774851074962984298535409949298142331712565088107773370342371630785682858987150216153427289934708224052397703636722799156991143828732626809093926057733668374691924168424336388725986429366423226055603902138347672055770498300879243079655150489597298362308570120615296207760611450720090927955299185617698432398315878532431663319167814059467956416624544921267496289002623882742778945425920245996566520307259636473910071474008974131442035010668490866386415167914092236474546937430849895049480397521064078907219020535645354364471077239798570013579581800405807395492722378062991756024569717498281804548212788073980898430429723360757094388410932320295976063924851169167300638167976220959088329398919483165139884852189174469695191276934842439846182200733747689839305360067659589515527207078082784339736309002484517087889907083125779293559179620303904521562502851507971306296340578018027011480682864524342125444946333786429915331605400673830781745085796443006949271790436980362645689011335471656075105429985835173023327915094016787409902270058683116593011321998171645012797327386143916342637690483712009124013878165265131288569668472207936323311744945520214953761234114621214609460715326770506634387181891850074594267992445155579367259364825189737365624278252507743282500188919701099802886540170040764840689618224474808222847994922757820242570319309585161568508507797627205768357120162119396742717755819551012706121371389883124073373527800874247922773769899414909151698343821080504835118999529498389363738629474162045216698326485015141519104791209341979482502465156435304387230076251843431670205104615594225167661444411647715276724739859879111500326439939481611462191520832474369799363859923008180757445304085332018876229644787132141873247761996394520041879364136137399299327149679444042827169078720931812553307717562359161912415562092542226512570680658400095347809085263891999848614579533780202735067851316686262404666828261977873855708292752204378408600148437780099276136428411863720876551127183894907804523392629020847280725845432682286056797497013537650312149348128777459322952971376196878210107792953165655619341082954649380233625996815965697330214167615313945094108913517002728822982605679305640445942952908428325764014753584375144569522218239463393316989884369286815729412452053929764737045606170128826896924712321779915613136798489332829069289081288308650175227380588206647954840926502793768672132124894193907979387838929738482125118301703559278301428949358090204273518565751665456959060019053319797654683415778633283211590286668824594238511594670097068276310316576857017229368299715134842174766230026221172544807692036535348105652642813982186892629344819345874695586800867014401629493674815352724714702322597295963181081725269434332769647772657299037459294116461033447630686833351939060175331366416072815420176861654191498588664686696946263611110168758082748613450914930696234916100457801461595924755316718942170243520234771919444960549875822064708827575260264811655498349829034853306113388249748080968592272089187034878037792717220645659765504480466131749559987283963791463437640287869571147762990860998613326447873950943998615084374847611564569471713375400552657499881549019787145094734278597644945995849332260483198484030823215178333759006621538636347731918044261837571394049439876875334468359328113656286354283127278757590583707255347562846161388600087056298899661355891510295163120563670716876005253654874467891408208443004117707802261457731753399972373171893376292603379270272851888864637284903806165467422346021251322533146524859122910047475869926590485330218096079956879843939532293207550310340186564763315670224352369448683332371101251426320022947132691601106193625740302551286029939874652720654333752446744767814415826264434475986581726476588808415952815578222417763685613589382322003889472819412843413391597462022906773870673321475596299240054082765262825148470647565536731496045898158162482095212030352603876533378744463843860422495852699870092301406976088717544179100618609582254952461049119184343429378204891825827196494320566493158912561598485088468027511996416971695289109328652432464120895489362791867793462987072086415322695716065566741478312017675327014063573518903378719237360692588384719366821361369890154839224469227923862559527321888462671727038481707117183887000680906543159949458902177334438534550122108698290911514426051034920868552105080305974636982153859671968191503148993676235013186243708540726861549569211834541871797484928675270435603499156286078308698381707250598012769839336640968972690810568166037670438957126985070792984786419953576377339003933039884825928411819483506147755014636016978319113813343441634358270882742031573935020629987366989984730697682861259069301070846594277741193543800076691960776588740458958557686133448847545609677427103180094809359982788542371302951949051772564896596721609578089178720586752100344972097438118605194218919756434888367016733270107981156186393075596672208731215860149319841122806373525411840745253988724988156804307648110739010071198386450728099928739658021217593093034309341480174346573241842177652878020149281661000810413730656111063320019481973957402659126094985483481626181432328564712285556991061517818982992990698734572962483624190729454946353981461519365800725916476141134484625332258603874514499728542296264022266344483059205846119360146988250241015572495504020944267200235234721263755996272490791214329004039550723743081133349163414523249775389694520524476473484489356233058136380747011903640136792765068851799820927103390241239989117167834473209827766529018476416051236215049408172995189070444061979616897773725763419935055508827299467051658865279648899838556569606328791984699815960418461909706120353291850781517919150807169636188370887816519752384402888471174554220070682889109539027591306508326517169490081071114236128075579720088314158437733480647100209543807551496800526013112338891984362204373338707291997872344280588938333902097157848093913371265707535751412957426617684224144066741384576911867366203926541230665470591451271371321297397410522289350216427854785902301887886610360675805502702002357435496451017342314492721862451079717217820584585149657278480149527883806632142672004907175523966434638413034542157952368716963026150558716220039569539840982418146279583990240724897777594904199011395840134739192129283857265103907058741235950634666589032751392670347792565384420064556828941292012588384797807989953310567010672114044352385551703747901922590080353162735445725132575782631152971055554595584305144391858952053642615693860456234041286834666768723256181386222206000340405525035602072333163064013762204659963546731681803516411817125870005971128563229034642496862486463803975751518062626363728165377504564363832715757844115727587155590096522872789875575735689669305844638692210570026377493729914635266075519000638315351613467670112956070848756433769912570128422661223212573942039268409033360589476213605433662945615932083489011061168293804856709784900548139154157805683175908971585687717208615560984429671239523613931252147605608320901248375063435851109762518169679658344425990576823713302720156722950853161050697050475079153454118966144778476075526198887590809915066618518279409805367605833166420330501850724210260328114148549760859878416855517517774224709150899712902537742020238472095339631435538432759161183241348808689492470457800825972255009171403803072095103206162464529769198278333450769288380143011118555352260932874262236779892811631929501538263764088613282772555730048358265055933138813753150654741428008839296298747235220581080480442942864671267043063295991071036582708269826692103372037078548098167817251242634057628929794220412320196795274795832532072719475790469444685470230086111530638081250743809356607924368213529248377317189126377923441060389597660364095443951527567708001519435944755067851431799032010440466845868753157077838284549923219926701467374384470450617997541188206621927660193494167533721951395488459758154893755107410609537823690256456627405196314764318203800789171335104943116590371865694145072220762104524078108561533623439084489728946405406236974186963635952618260592857902599548835950709690092607600765418488061832680970983821442876270673085325763682814972928489822802482184138743770712015663312614656588295219509110243528225386280521955747373510095926003374418702639733992175405928759966795446076828439449491588710038137326627272586666219241160993602601600665506505111044338322221815958673835258748782359517448685686737261332402695078830963451309128376357853365138231664235171545318058389231276776183430464031323350496622359072736387873504586385501469207730149017932522762619004804891593136426880612276767120106081847050059074916184586913328576299114289671653841172828955161149854588828784750945140279126201776191111036333655054258601341571179027865910497218550357376651254027299225715789270982104870899214914863921217647997539250969388912978105632212686215473607586255032096386418347010866533943146567165308680128469881837498081188679802237806740301007040973329464981271386644761783646516157071440934505939371218805447543268678138501176831891561066682742681855154582325156458155321187535685502553709253940509785356284082776213651029439500280163872080290261896567508531472717465858673809696272782853778852492986864428005590830342715251658594605342863612867131846915348905825227178950348557041351165093841358959038233074054575695713190439385730648130282700573497684587469007116105052366293813174814885380952624308102745409035373791144676109940275084671402441556241900631114465465334117556899994423573085209126412303468783475561444800937887969243725619932506959271960126994876449667221669671262675382984017598401939589172895593296678611793422729855418010470649820981371945729412078748528145058559475777203555185533493047565379404477204878822138291482007126874659709827680510062536046824198366540147057882161064460677358271150807122328124004830725654293262769468339930069646502530795336496046661852233618267240062619044338197993186561987191310428907368493748032737632884671993632838752731242368343753321654250314154602278949771125080171171133461637216617832591172692754218993886946996004041808867330714328267885095157634252948677166127605461813551925269140007947617622986644097318908447724940354868869253830424383256493806481905536914183850663385308510576595737891279519548425076465230727170366784577048132738736626176131753723199526674234608329731764242936257094065856378479097456797892274134969531585917748052930056771091104156978175473764723163186113503045029703373057046369220840287341119594415920398913040766843215291631123314016470928622454161284116898363999910942885501895872077544110892604620767450490970371991908961590975453582082034756393779724682336313872490549810136101755333248022229553986498485624196511899484185355478186802505726389556862925460299353369391037748845051454542750733515879103939261273308044662554027215060159377394687833185563875544197437006713348198534653392613482087184756686640858177678766885248801972250865604429173969208497247340973299839830516098400016620359819216842731524991259319301029238372103787656104624931691569318955157324196803661594148454196652198492582297083761127347878235478163326486641614543008651029005425213206746001291933732533105566209823854664395258744213572061920069269953208746293027470736859595132449650048884238895900936185491917523662377984584892184616475405811707070996133500469682956572040324526654444815271548352303370274831302494697111750846084181751245529590399505404781744714352902034532535641307378189788818732721002752488503694484860416664686496575993753175235068909767178505223997552992412153497503635294519798274910205858139728546437516601593359358300378338668314355333020696085210666073921000732590797042677482248992252038804491448418563921655626585943857140464307141421954725291602480633702083281575809806805126226531462377922352468576131539592925750393448944604807468314927767401645405271942475912442977418873878668542244671349946870651542776383594550217826440753823819837853550004863846354708348641611781778226489956998072015019990259060282617399487904427426252316181438607834301558969773414799445741342117629746168326964131445552347624535374683126322564137604059217175493280364374266897179529609754725331913490674710316601369282568836683216170983837478747535585043593985494924438139795846054787756948840296733499487848402017912545222711789667383640569402425822601707451177574378626698121859595459372088610744284741281143627857751652062350495386224691968439440002220544117585618429821292080513717183061815627609916212452547984646603478797679952248754593341931860557355046725994528846172505048221061534506020168070304643217166234576606714902572454743919485839999773953617634578658887278539818227310467088165593144981861358397880186509168472755547527707542994976528161972144894458715316765815190946721345813042126696290559737585787947962171394000680727239606089211847886597225962207464691900536246984926383760608826486080849223009375578435509402382610006886948453013465166696189509337540751329265149983090292797906660962669888409770224742025708839020669742175550093399461535250538509210933394067595330957552237838622222924534622735520691263194219724604521508886596365879241796352775940363140548580702228974507691971306737111820059870361716636174431387751774910289858561902494537153500470811064201697894911797153896366934967923199383597160382530693765193941233956368878835698724410242407773893519469575389865868709938791376206567063062719280432699269732593731614274649844738687702168061575865183867148909006369794320945820003753575793224835897677736894815585261846060252757763816928213700122085011637845031764048892350730051065059781933848793063255455105032202055954726017492045110619628042083417642931946286703589881805882194420006919950724078455127131064869199245220437193623543431581930255243560552869741555562242386212043196203862061132458947553464413107740642267873864243252964229639767137263263976770263951608070504679266165127957298388859109340277246089800038516906120525685712691314979331030811365354455588052672416678576108428517206756073321443121044975988419652152467757486274241378676562489927287398027916036983589223891624147667107927105602656179621150522655521941539439912233796738423017830806117613951390660561991844606761172788840122309899630058191099239982952936652743331002175056304545492759966920973120731478173861818338357070748576138907638000125049933876015119036475481079314847489845305397128549408100582369931563471846576857930966113767201112542289517405726053607157856054554100165713117852136165336643454618291283613661118404811732651279801128975097719111504033698222406843494790741210960045672705274469014338798744551467467512279690018187887775162807659460070988139652639237392686261539890932141474689341795737930424077069460604009263165839394230973043455716414110372734695568120934305457264924336598114438799462962626031100403036807206750754774259926728695071319683480120310424816169633427566867386509956506695001196259591990136364279363837480772585923912302746062773353492598524013399634107669028517581280859564979032280484051323611330482229808736595184838597977857401674379631091635045624921421348278271260175906629008149465398557775715246016030482067135744405599771618889580067783595215861991696587175561002655988508549116754568760426345349462267332747411669401576941677369573693223841501799372727275766061840242118551765748736780839708556283038035509305413554701803850205942491174251035076285829795122336439449237150566753004388547047996715307523719579499891409368066349950456347548730586844592510135208013450830042024102136248525849418491221642627922961847481940322334983332498684317952652111437198183620027197545298811677156004155130441324350941018877933390443632584006393655547337347350667115658210078867891551571697115825451521025164095631362522617872249070419700949088696659659286056984108781308408069416828296993947129332013113360132033705826110382534387989512492840584688087549159126666040018932956138100860148494942317848824057154259343133306001587580889153440670928505350472562869532438327166577787783800050614961245141531156048975652364332993704371341082564778682175486200818595913326151661888171411922636459574321426822066858324173862058516364501952280214719295462244581807782384201067755004035427088640674965697761714069119398984316031858122529905250020915358599961572373274813838633603300190996078424001494108215454544174506081537082896340241107581180586425498817628900902611681452173548583777361391618366563454220719845700730973506530984475905082464311657749447044537937363702014045422860824093303448277268685202384454341338828238012065537066902259753140076272673179876390598581630210084513250951056057054759427259741493029079893018293682142270833449311957508814236846507559310956988607001373335652231546927952449472843217546545720877820579287747121750734334055591703460674634770725258903191891088741425128596765737103668737627057109143750020436472208369884895140179979046894239597825351665904019312978234210462792307420283923363383972955933871306694953817338876031076452676053599603837704642597952531295792229636042127128215761858369200202482845646833092969284366890167604797954296601545019604175599083823882356226941216403125154379223086002772095817042665063463129394080180520589543935564458474853516953322413282352606581400388486474929320527601772300485284353996966266251875171936315294908911038641733170763407265220705098241608084151241072215856094352902092265016874702064933682761785561402339109721156008434398219283882798074495682355969433115351155012701229628885802071268017207067235592142370951736109228854052924945034298535544879080445494095147459597676739047907276199068252184521656267461267610782983806958447417582287911586491069907666715740302919146304683349425569240327159125102816168877935342319498783408292822255787704807377001468037238349681640241356734503417214761285200165732234388356435419280078292991339091104385431516517679378348356152577186370713646002257748521544694476897447172245589935718293465143606627171677892914236572966424072919167613001657521049802152649661634993917879173144665285715739531238494640714283253834560212472680656182434522807129343358171998659268913400072230491595054422172859132555372901510717645185605687111407130574408614280019497397682425591814193512955172048773109032583608960372151004192993900983067894835933976995234997290534658696841723886475081289762365938041336404893420491887653240077400568984100212885739917677117340504169596877346343368694585014471489488970684871671508042633425243082994940221544626579147456956245680281205245569363169212837501670338471623348677231299092829104528357193600380070462011389139633927752152345108156982757084437314651133165043351907556465369713797487078237487792772543602506164438291135600941163570176807432850846917812139931450574977917906983149745552180890619451449692077488278002465516677143252793629868049564975087790964833215962191108111834865201023208134525562490855902830540943229907746826142099885277710044545582072650130209322511016314417845213238932651832186409046045960926990596249699810181596997826642122901054630589822026779610040024338663972195828027254740042959313057060407495678580090790652874426420853864132876733884707678392736264446410350208898096186099681634451819119994850561074264428407273554920399964549605052956956916208927538098779824328623160600202034541596294055172962783704304184477118812306843930497010773941641244275045974782189270689776468674988438519886971859634800584849758294208584447830973349003198133281510167091179825255654382566232348832678159400792985885785208015130861927050043608332621574942070948608703116411117235959810747428563719527731839948144991126198181317564148486642982625894807820434784211928504382418601136107503147474725571965172320700095341438630083066485139571294765150741623261557784060859773395710872011803598406171311572578030113073741704803433202746638881856224732490049815755111629706970570040866563707244049516217190953758343181987972687944961874537831146503069065066541700482129950611865936845005823736927752515515962074562068292453502730383993888776966554169632113646042992212894702335996341266999658400093528077228592122513034568500686503816568663095283880510139871197439131156591449651303484764956843325509747371082171032568805151979880509462323934104290246534836421058753896485961496942115584715263626348269173322074129826893194214049512144329650972189074792398799731467314791164167464169955629727467906676895795071145473176289164539917234434865747668085608941201922988352760444579981088565147880967991784487344472458758961903849647589246087231521495580584709140946858570405128666069111719950079874787081144925222464943291734739656572629663669892155487488161366820188139049785708706853710782643879207974386906274298864309841889633357282719319617062943936958689033972349270518603955920662422373243109651248677138318791488753288285803149738715159147156739675110221456973421636640868235329910415940306158500754679688011337264394260651034341136495003726289358414848491372510982832685924460255642797653639828873592148734046862376419042496570956886854690081495911407033710871577151297162059071088611621858074043295339903292997333794840759914623114590542286437744527072185005137235464658029635896834299543997249911157709663960943001840627306355026447971721247834424176887421189428914427166882690932391932684733180766185039766464129317589666734932726927200164162562110162751283408495753548244736507276765374413304402676306314382302613554107727653234023898337321718692920257895451289356349638594532954901285867224603070979299936767386948492381071291730102177637006739091604759982831626135298484452694846300585109052567804785401529214770988510028983154676883649753831193964351375595530092620070423890870162254775184563183791696998153917902896635786764828420020291725873466404938066852576294728300983596420606885525984834304331931115172709794349347129195049638137515954909261243673012384750562767460187391995886657848738111208133900110001113958638022308527418293174653731570042151433670673217490204005469335299259151820056556162763318584839652460340507171367554162766938128127923494409244414403550290768502251104053046502945664464562458385208329816215934767339898270565859932579249878586296297019247671404756258245453555842900989930099111508275416279343707359393959611056038528889481408006146558623085607556380416413890426956937670481383843468121491971321211503334746578858692571958377616575408858857448305717741640160309506468531370861471026030453727466629347048140622748855314801727285682241039281294115003439797740705374072167922871684865297921118179424155433980047732938454994580960125545012243423183628027904459754378333533376393926458164623966510213097893172409554786978512374399666865240643503744578268701462430877502217556804204936402288155036064287841149924632125379700330061619543742595978533663959042779083352436899926873646946354905605563160196501534245827826826987456935161614724801269949154967294065608011806814031164643515007216267809112699067667118570052935217833700848183756667053504581748765795615350656931504302979123536995656851972056774283526915663670895994567864115117472423735532522301095730647441216098612855614265633468621272550953890368296982799061603331798601895911264312737297866841927978271604827511617696059197912773665986449881311222512952102164431806994463608468496245486055439475489564893282154075296709107121870909015101595634885542346306980359603075806432529378929451171322779717083537951621032512112353614501959826220585068737596847334117441306664203079998486787017020001184577614908326849137728470435404168248525080896869507940911544339645009316523094279872018774209146254220602170548439831806170088373563288761226239317088869173525301434122675593695900090936332923062726660617635023154587193320529194119278224555870361196219446769790642472497304922134817777183709242849782061077768664787797347604528619332037725624106472052711794437127239805897482330651954889563090756472753259260762096748135311103756076714645625850869894589072291219631676658433416086478310831639843282242374765984875188913319953905663064413977334266676947382714082762101975826918725028740787074791143307400387997410750843990243568711579834187545844387326499571647748163175863914028508360742163481494650925894622441202428408009699346650635351206580374412005356004337205894656298406185702281472441915978669662288642685524337571323405111016500006112670935307520698397867882861272193721961119580131633018826852605525244788877648157840658523603265699145174834032463225900161871188056480231170099826695214687384083244431469596145412441253498813196250030694766275036164304154458541447206339202159767084057177524176505472252264015558739336353413354794819379492098917363741358174723713228419829616879770022927253588065727203578411156528169655485840595008442103342401174734364680081970493823302139054970891886888247603292283532300528907264072067283625588058052291378795506868569212469550707497049548264703032221643912447568478443930576233230247769748863526718486545404611331523005777512600590461985226765399956191695324687158329444320028712227409795554007275369472084352639917268465877534641942092596732902548532075187320035519235014409519146976303765630930275390705946446320642787899965034599387784100665649721536065422605806022974076365393372539495840963640283757386649421669207061358886846499382714004584206286013939881457463896576770633612717785532673787829814048783806174088604985766284397301510342517564474718085812746189856214290465609295498307509868332738960485948583992503898382662503640945448832798435975754281447085016642636056255164738528862159868181617447982121958826440925644917570218424397985797542018275616842776124185636910026629909918150048769975939390956699822538595530952987528581712881346497394520448455191832273001452620897006223451790280888370112847106245281850888521276285902786412446616707125791208801809758346475030419477612549929634776037238905354597444842901899829719330319094775664462312543077804675577877714731545511387043955223296665634876553487904224499180644261729482545150840313540861170480349048759920795436067349960207225271600854694257127333042082080656432959601937624190788361058964460622986025475149476028703741091304976358565558699566363291649048823310930970434216786642876496619200434419493986486936195084046506343560885569645406574242213845981130197043621995864613017557494306711163472024839159413457453888837726056495145276707258631786206216650194614002308929618444049504623396515819692190781440803919116811466251459598388751580812285584246801907950470080660583212460055809371960705189485589799315886785836706054843071503628621530426392382094939343831486196403806198091892833616928908283790885270081453431614933523306812398687987293835774256863298589321095525998573484370487396648965394809584559505255322331949331069186635508127316645586562247805664092771787763317002754369042005947900855548084422864612312140416983380098311261946606536722550626335746628233344660165459338915414403765403121436969881147087850886417396617257740266010640240954787210502219425774538573409709705498058753170819827636770530634334248826065953229502658405903341246085025859378728806111493927453987478478560692274896347437005185602462473131465671264984283731359424776959125329226491925344771571443866327516461762441007530210478269651183232117454498696111548284121973830061575775377251385324601257104014296228257018033500760893490810646643823988933310876788763291288037524557182657380031669802551893474713653241501708640112360466255422232014242401017299338537037466307112218663512940501270705161339694932738851258355555997332638774483397156631471724481299319924058326982976330127913013635375718188989727187992211053081245917199762834089214733996381936290778441609696139330255489611412703444876469356049272037188508221539540643534656270839508513281195717780268360082969105868400809353394703257429335313979514887574585717832471282334638252973196004813119224738631060816546404293678152907408153048349445184456384742937656659811699666564451305351267483576064174833957437652748269819027509689608068748449855781927175177491643592764901166826368404909032677757841909118930045411342583258550401831814451334523446484421650127344778590966225879861514435974574307960685682047562386577892388289161979143699082585944428765662064274852970856819347210995333489156725343190148863551552857626756019444392382743662761259156279389411362955391867518530643132133798295185897314306081714480639284318701985192782519498655689029254283426987395427682650749484928034814537727537326696368052760691986634040229539118193205704251411704385982872287727797815761959378170264271330732678399364444262619529388354688386316869014860087195894877216157953876096003721923880583226869878723805493050692430482357805299053356604107916854031324067076450753414941696818571102712285067835639851184083589889400694513259696134177695163052670917761286332080409358383376327524138111844208222389356813111984484542324532371807319226612976820094330108012716125421778217312749995072198086231264120016543123782964424154849891292055373067490905080779762326996478473191756231566650839134939089693891777489782806501004381366796174598295235968365480213593221745535660583495116562602959535873589132180489422991408818111791312266932211243000551275267064226217019045835434483666401335422929300868462690329860605677856461712018671357391963646841658875573140911870254477198416133599884730414624487741251106691175179531242754438501127368858389176729522687679189485215795375666885099151358138747527014388509266733437043851552653823777699753484457358452135681053713070315791439268118222114476217468068205159694955468139354400391259030571196354980661964007259255140410982568025778861572901468523731380657357339481300597207388780352124444343814192879447431719464403354829539099498378289406272752488760160247116448620724917664974265761918173926351481763992434013310256610303267787230129117322242052939766684664431739022733170750328751024679452704553178013601719487737849921556503341473441831034551146592729097723944147042801045608543408051302689757001216042714811571851084151481057675922982407813057119212717258970245472181235836575237527768775977691838557478465547665047866600120793750795017464694763872383923793071898129183174819010959057958655371258775263634461149946203228056854791229347781298964021045400914555736093508040549644879036514308166096682877172478364431377618476595149642209298470322108786437635502838502956854591400789979936084661288765071028964440594221047995904685773060489841293295124010352902383478959143050013640388443151249838999576381410049382028685495325421028268239673309814176584362509115025257267723201819813785990481328255036803375052481453620182856632053743595850790542433283529373953229446103189075161893284356844314072513951970159358132241148057226428143541217674332209458838976268263809143991205973053799833603424856558337683928614936648551491378608360754796443682427531725351773565181435280511216440648850987431890028534960527862914880532977697415967996804837674331284069732863576956209312970055477797671005148224792238689377582764652516130331718720114613237200283726291170297362164120276303418986649022273703938633597234988838324953273795443467935204669185589751921453629717148334280700470254529472112940040061711612231355247218522225050179209435023507149635496480497996755019505523471794539434325800888703993026736857593797772496076155144602121834399693355837302175530920782436629364213914819676733426436237298948993723556055585734190846345850727035061459497518609467145372489708413328522699245590453088477688704824470623179165969852741567922037379400797148866723012855052450949305654260550299339427662187386663436247305122509984091218394904852788291278751922410051463401566138830645377513387143468063343358324781807739754831485604656986394704886104877555754057939310063554011773362183892962089687924741063486372342011068464407507876668803267758932674413841634404857741143925834456342708369452510802329950564770673780649386592751691226451411417297052346592999857963793183149969822418803045499657506773755451207580120077141865730413053812985265616317906503773270775017369165964563857499887515931711252835291208701690242256159482323774290680705448912585510025732497227811233568455677154788713527126583207297524521186869335053468076195998578254566879916106349978340537578644855157573859064579571407800732007220107823179373927315263677949506221549814517657543113971196308962525341824074754044108934253370142337447107912004866927623698710279722028144637691521095904288314887760406460724795765290652872882571286911466094015295902280124909370264860095664389710162636371168408625017060653170048121651794331718924408626862965893831420015598532275821314948482608798255020844249926784386196897337998363761639291458349790495990623523596329595770809487869942930335577891822105130240888403699980153488066293298443416466222670870397021380398792921503878625174685721228520371131825373296353986879517160565677729585057059672996103884642514796821804127030260484358491528538953995438021607559461258320708502687586856653850023628979069927669962258526981844952836899065036502174058362547617556507769391842502940804780839463125561642046821503197000969342421710964981743165496224069715902617162931862712915696186058475972302823078645800568249561331170066761759666201386988115508130571398296156180537050511578985488651078640768167642136114299847573820953462134551271285570140667112852375981359860896028239096546735350272191492185268124581611701421723556141044908946564899718342790752953156466475722011155011077428030904525837505834253509373534675919870397678550796941452906811649207962451285270874346676037000999913068778781762670967412341847449137496542325990025047630266954918519760459220466492619004317614966301228491438705284151668594868807549161777449633902852858349821448333717866042226997781667123364811449444286038503535346672896690938079721641135617661978955890166062085031627369859636229838903197876828460982876479011693345579205912983512382835607150136641768474589376121263596366407794491566958237812543902261921295197519310643164319079360343865593552349380266775275039857749486078403227579965557123138009143688113840625067656548014862999996470899887699888668715485304114723588319675163493344495271006281245393481040628927341078416090969965458621755256918523519422992948506607359590349876268274614534723572953514851224102614855650705246195604037604509656146058247487515641323575047362023006534808677589145323367304538390904865644943134917195807422002850612400145098948785961803711837153354727876360359592173071121575924858631779721153860214187274318698624377191819292246123583752886224007632793632028050831569840837334324527332599037215690026430139122535622175842885264439762994885130545559398377727977271061947355616156627745970298891051930782491249200356461490210322002014679399640654152909533686019698303608931167926055256567253368600269322503034925962274197768900801359928334486576647952958584570902613566672042271516874965795810546175815626653938474808403154132566930375500532238596846935663103823570493353990833749980522862830679570877596254953676261262519220115139677669240805623160966918158528513042807710690795659901002334636914329493058363437782836903062073939085987431063069509507017842760082473824049602119759024780216298951123815688890520526789752469548646430551967321421819539166701661009723873388060498865576806037334556670143729938871876385847935409764450854258631141152539617255171053905123050113968174100471578491387958045315429938159975455530593020713538974327092599265757300188778661688875078493186455447442670768424774635261832654946563016506643232149537860573482089350106886306036553783867485112281172574437767780479505395499303264101372355740005955880497492232791510789870400886099997589415206076897879061939511003903533648767474547138642948481941275866578658363031540134796352804714141555375126504766442110157115532673963241297111575361281511705938980063590896032096396039345285194631992295490849894393421943713771471560251491628913064343569960284836382715051859502727393717300233247547683350644975627655653758292323689338328942566203336044204350978919707120140043220379803459716024289308049106147707851279406854120534375450418704059426532216667907920127754365861319259593871441687502685808661237477154171959139753809476784020149368710374310325761348820816260596536364879131228911312307484775156405488317166378727092694131509524187656025031736575420276645724482083125073822650175767171522145422130909920603429065508394704134951201853282318606469293388737196269198382911701590771388333057992033583609687755611876886774135417065693839042793915844395451575968776443263027911770011328508279550843883130686538605934581283441154890367133634053427812119563379146198921504045797706179939875448212626456795082528742769677946693249392610898604439410988033715625519277144543829584275122581169474801742349259722036095449576113154816427359055727648898285758226293566016358734631911350557441654272230745132755458143760424873046720234063949037974512534836090310041335169291061301115544628340516851934692785573822701269116688166856821957301371070263363404826343847602433380737089623455437918863319239198766377884762570666314198141699828899296620039836289905642219558587774172048324060728443799408928131505243385764676324643711254077532750569210350706801316395376074517959114612300965273932230394597973545562266246447633583055941299234266166819884680909527781483650364790747692227335560928361370791964597536744464614135402593359193716297438158451345752121747384026051156242485709050626479963854254628980307283946674891306515054694330403562870368391904012546823315925269342209372095931846366629031480637110516789036232026028814622710864952586609810329369499587447512953944204388804464412341356616095205224990855889824974983352100884303974636155532959084071400466247349677316902642715560870765486260098576919225303991987951447298471981142024465947806093687781614345805189446810624552101868317738896442482609201886645893755468573707033051225367688004830126080242668846495411591828790486355484681622248230199162897875373654068483817626669753805976725974958012557934444547916640387279267897212328926505687663171353009420325041148976539360959286619654952318182079997963389939234462636055364998350675072606306750597322433389067266757096599446609134582023329508537245286024366848352395077641557757331244944007657523796193346901552923815322669103015264289193960873821585117607097303280296658601632752142611777961086041817917425693057265818956506445375812982325226512726734766083633240993344728651576886155167106013899541185131813818455154196326842377025349482142288783887876496642143511886406225346546885694515069189898750733608079339444942746908636786428174348492213350919083050808876968106014793045493334038447301496772948194625785488453408315601279665824366586121390668692143619193633941131054249903007769514957312546014663208742999166259609948895122078438410857150980627090838366528843807836575862718174966923785181330974204469238152668970758786657760153387954996453569203451955222960072855723328878210258204600905075561240213718972032596666875559122482492016738237049247667428013998726763579188940646144342769510692168376818984472735477051302537153894466632056199365225972990012594742846603620224115525141627319019034031018554768532208585960589577607483261037891775834719468286219341815882878742651373094640202481400101464025678828951964087197630474438018367340407736865578968961760093473698896772228558215669391323495872444811772007416869298338610219516682909589007840635368681446960032065232147081264972411801496369694570620541715729815472099143138539272867452738566635724739433451198401337683252689292037655602010972115458822045660561853086402292351589331502229705625951495761115757156765162853887167122155131466063444511780544080961040516474231781532114481020409114312103861877689360928190832549016008610732418817511524075148334292276382650665276507102771456974432260423238965266235025093703348241497528361386877482034583189716464421099297792290905139945484836503437685940440865527922175446673371337143292395757159774327977852110546230227813565206389065704058103769539907989048261592804943274193235898561526233850813215450880099676536049432670726600043578250300689310626792380723706831298494946918341637948926692136011540689514244859428213826089762641105836155528805278864878662872183474899699505696388305975764645481491380790079234472507207131227407069172021545741135336440719072916212215117557875413782287140733606829561812927852689339706136739354626702299963432067192484354449391308692862651802895437770361576017322926060074628665750746520667727632962052788157788806074040380349878865058601616971585458545159467350104559035379211891662469232293200426967871583519375441033215377264088685674489284322058587417732134892430530101087527703980553646580995682570660598766194654138429280801030393217844803384566224579114584925314228207949782207812127012736300704530229789743548118065542645748823985481703919528447004235732650376935597507060228909999431594715869756508452531913668357727984065061385800413643437274483699068128460821230845930308120134931251873739588097950902444783300913741737780991140741836080784334461502029994211675935954228605423134949107684124735480401465864312572338921477401598039551683606024062280210058455417582360990600825104165491609785383275680898870505150232156463964196759656655687146498856599169698247085434836111944350111710803337601658040531386253188139504912532513006140641284449017259776452765030871441111591458400729788349558322562288690679391097906319672749481740116061319300271819231638563780965056305491740509521141049445789429288425220514699811166591260809107617304557233101296680492056124578623177978551592741300310349323815405554114311608169825713561879908390561246541120838690154775753441093470814419465413925972341151321015927465606956363333812956920760802918286481231672265682227067903987529542677515544250143556085526724390390684478726720824064850914990076440776093067866476977554056576350151496516890580762502232779601294684462215437854170600128939407644461574083893875645947996587263079082046986023170206211315641157135539144714028410443608941357121378807478047631294541358755023940004552320621917465950196527808635051087745987358545890729817499745322976991997208881144302583770625387892526190292272775042650003733934552909813362358603421400786264872856906676223696599911441356287405725089514795776168140313789459229651637679969871000725990819444014652179254866040939965779827998310518857340885238765803144440563135876306552250743098351597984700484621496420195228367736997389355064726959045897787960253226990158917166602580450353040161320320501392121090944930425422064111266973284057812908009206486961879897514497859489223599149299649407787138616970038861100818012815720889900644188555361250089086976897787899748736901699092798925898619824327311235056751054993968735697532460438355962795824533903928497564463205439795077629641868769748955201987498584104834794615437980385686642017415959057782094938830420146900791975697789452521184073157424138791576003522942409797198713665599862014840530152659906230182412929930124700969456272423736870798549851486521748476211616652777262199554862351528350659612313369096403010476877133545809758539027747360500750316457951833981338798416364360995107643930155838017489826818594375256407262381961228692612777033928392668728376112655020529673907841293019780082710093956602337457980206712257875520647592111600690169098529494542588861853333450456690074939233637632513634088258471567791482945804089870565536105422614344622039427900473375618827253289831376985179235955730570987522088175127090656010296624700125806750132449942417643764464491248349727048317605632019304989628171475513745142099453183492136904248640605053020858109059527792185513580026508110622021747028275149940954455564383727415371268444795918165433324441232952152374803094433581708380683116973801162570989286287177351248625722364669544655164683012849039090559398905309540159138740409186862988892197828652032945087672157440865264203911441930249525317133042667132465320102917443653549033232654625763597124578623542332160132529508343597998423896439271729193433911004660557721005402905391231193906350863125515757714098226979564051456983702587015132037763063305122610047734656714608441983960496768236400907200677766868512616807406779522029722125448947516694731725404160813107733595054266937959133885796118871225591226880645431259092944738043849876644786223460952703551865703708714552233140031069572968697818073183771328675780212966238032438078177420204054416715211280822555016140701646071349914888450338354590465541963298022597797576749016988863786892862586434515727917509395868990894034372272868925901193230296429386018913142917605010839154647917559341711136501895641536779983083123948505556253711747154998659410247869674510544443561310220873943645180684462877129128542821052154853256301801368065867456917189440506599992716994456720932316375763349711204412933328250390539333482163951047486444298784793493258973340676304269209758808873668594312628722799907255885156026794310110714026230081593428486881765789312394622336848067482716649437471905716742022565545032786717924551309777919414129058946466499478521593930455236975276675136475857378595074932481971519588561541323335728186092994539829059034771431265775046474311782358986665226575917261702077628705333120442054474918193576738301638172115776795682945270595965039927425875000478420188741561140849056004335370556171569954554637962486680557308299066061262193301062503188777539981244523562204342416306490399254035350059308832619684616223096692249522214006318688708253533380360054534096494246924892197050600613727564000493790518122015114371961226208186340525780813061250242613354880995618453440100733591369548525088946325605095066484996925896222470218771918025906862833125254892115593015216923740023970092311114042678421150862767679586803143234103607115494656434379304948436008989824675890274384902672970144603211545184370203309483921614383065864805679739745575601943653752239206881308085231754348854987625844628879753852328791728584031891240538028041470644063389513830053773880284929700751448695612175372532853668472016565924877391558855656017601560122313728633869398392832589820442583844130541274058336189558303920869098095900033891233691007576984725135017031674280581831370837529854031615798364810532274106708985612477627094464510788443415856946369155635437733099031988915987843952629362743705095694598789794916275623829379193660957404771260304388595185062815544097737102790431601210314956131091502828129360134624275946820254579035680202352140967319678859337552816035193221749890327068967592340246838438638582055744978931137307496954704799423771739116253826602140111500778848808597322831658445967450074992766377240715901280832385785166508042014826071260214892358652128978183916969911201618846333273082923374516475277514670786331256942526276585891337432816023224747048171453456661515854349784751890652046109704999887887611610984545715130863858922165638463526569144568452712622055763444195811380728974995148595878232725940547570960698615292925408014223453981597519676006557183433113330425594809335651820774735471206260801530886915076543138485947047578714244930990592717296445935580547626507225458290794648205796865575374028707168428132062903932621172134691314129230014023490542099871942607593491024763669380054281733609898621664844220610564055944642162197086161408861465982568699657931292497769250545431455462315025840761432554808647403439229540669619442549985413621580677451912663335518467129220782973526379480518412450875164028004786198156007926144506879568050451798826454136933569899860416508370768214175278061946394164659775457183361035868410927745495210258657400137230844639874867658964288692653072686279074590185975617703675696888361556286013250606035994667875423479518258460181009868356031293040807264747121444381591275270555699906742544125183275743319918171227215779909827127302334398113610936793707211821452889804744529346003968629850651654331349166362340309341661493367935197681874128615742339528899592109208292408732229184788124035622248975175646543589641029314962631031167309726174283688520449819368075012985173321193560058350807309297594797671723250586333746389650943553955607151600631040094131803807154863440165558745782842843626799732776316891048374421629621962233731185057604753204312457601856564202271728703364121106018846966024964651181255903013640243399237029328606619121415289142175869660785538525898030920399089731762021073090648665777217770170538872853157714947581996879550190334780534640176309564623975508890928599726787566953414058613047625913235418794534870051493085147112461675291977142367988914774144251911413237480531038958527921062587583034532960039624662629772330588398575546579018235143225394504374747226056285507072697813433016425862724512159523377004859508970614095091016164596528346411173179851805609563831646945200565767672781689990905669526351692793442798024206357743308388735004576223634602974384692612801976552734251634406819255199090937102833699981840677440016593489522433717106090566509038295884416065753561865518764490941364964861525281308557365243303406147400763397244874085218517870673711122895237266227870252800673983499668476754852404247384999219668050074345879224857478540964094219174296061461558400962766919831223735708507965887778588218401254330047616032377072443896495205342790482441029763796936714673506113749539537724201205004263415268887684252121376113918776025856340756358280219724032232004517801123350872155714383559575592025546916182331316103948725270473526513818070518908911156463660258247178524788039471236101825011183038315130793390102509593591130946912063645215574212975401811009695197460601116283139774404057738315178879863608224466557713975913315676085443967455148238419521702710481167221983694278556974396754879566596846322163025105831434051614941125348136205133833877900517056331023858542613526393673376380567199577184158241972670101760855