# Biggers (RSA encryption , Crypto chall)### Given parameter :```pyn = 6390741255703716012739584024292184168393392203049690884439170668463096406706884680481315118776793203061484425908996750664788574427701522510037445324123858107194450666888416521092839674505100321427433641471632082867986522076512438717743857226746792350109955282617238949971560842633351711796425747049297679145850550656885702023307960695957734370752388231928185621260182781312796421082323274799253917133463201131053855548309043425184100747108607341675244816387802757006377231210362912131232063125232550611572677493157213551405808503098498872188758442592020147960292449776520321665000223099988488565068440589427881557463808717427509363963640908606600765840972956642216360566137198451942967459635825342997431084091761662128144338648994617758420089924414386226599133068954886499684445410313222922245549271197523742711142334130875968916361588081171026646878982893064052530725294829607473957561835364276855017907413497939632363955073967304444787727178368254101673110420438904821822284566233621359802627405486067626428173589482260603098737266985400085020132487707126152830621149312238835824042725314389554966028374780189579981019530563564558665645009693713628002576189145789459268734778712429303432343377356225699435580074336834626904580978651134895634963224539945788057390764578882418483781361135438298995256709436756173145658024987954673074218827360635988822307773633180246418478287591886967340078611825512279694220897619539299918657482819597802884348015532051392704116898524770137559941557498621782476633028504816302347938272650035544070617734128612064961605942488796185452612949579049558553079555933518015971356557084074687592279580659012829223341711629003170488263480969463027684714088995194241242412379954439379111733001382140014639191272155329259909971269768896455953652928701703487782890378064201351190157175041229726147922708898699933979029272723843396137704261064061212504471182526721303316837037957966150211139161353310424185051859203407040558460506900970915139044721901389095154498263010429091154424062558308838306928730567992821517362114569416759246538756462957516518112232307584904156327271944495050718519868848193439122738454970081099494476971276383819399799007623901636410685720854456681377788369650002374268177323874248599852060903303768268595132517702837480555150567753503552904489646993851474852440442568501922519580326788516124886862962865443262628024801694036291959727334555622621105220372695047339201770909437224559973745119944509403789221875933272107374192017697039084081897168900359647611578685866578610207950079647374119084679413405335260258486653382830199887341600055866605072118267136659953214955355853538039591829850583926592521934825001476580987944706396536008210502400817956063323663174596636403308918766456810850204587742313652367356435465483828247556013818077112877265530718870599667595290621574434916644883031302378911812470525353568969081594535461489799433475153300224903272298645877946798365028718425693926389362074923157305883857061448952272699068648488233286034469030582461772510759331763226930664315403332841458671882778869106838139372086121054414205305179811796569366517245814700991559099643817210931058511103393014612038083342231852212350856132498117900604078289612923782511848122806541142974194384871305950618317641289654592222471464343990147342384972753121399594596607985673410471589473203704132346326742509649208647711835585901349375736649571997574388620218661006237554326174454509153415676584893488954307808138605962291130536723027633071986264349323721639902973251533801316182118830116887677772580103028437862069354137045440504496952443105994202469545798879194067937955899327757299149145991124867506137615276739226127122195506588582388427978460705289251137276602193397411064402998721158018487633315538659898200121060725564512786810398085183217132826078880866731850867893545901263641185259944538749884607427036396889304525164547192731776445339846186342787530544000752653188676132602311559848236746655203167006767675213267277071402128747447039820987866074504119473052924503119141291577374518589233029940222096237650314518884566272114637016110749182660383087637410279610973763666897832481769023217980536392465699703165914917353975382341249883340695231145253808175421334852635996403520739226064722709852076746741975921628086601338994277710698753045654774546034942562829518188784620595091897727254057916852550760101855252337329338702071384341262919579616381462551158665871135113720214110628148268395211616070411111696095013046986290556103746317583011845902947163642983887913480854688215724838115628259492151651425778332235299375640640406437156185674233966243799206387778389489343344687280885848133139396636573539732212583042493955624241502852605279422025909510802855088416675736389654206206213981388055272918599223394438818058388608246058816329081207875618260241312638333930878301881947042513375008276897740620618175550070237099725259620543612825470445451531078283778352035614817664964506898192652024614537535537983900880701124156922700538112746664855705480813181969682781811934911833186790363907331203672743278940066636125102534280950532008261192421212756196097593214048477685120862446754447207015461137925749127062680675280532382301431620690443486397105066088161736206213984689982889423166637196045167440362487382381724469503863034963081846932229953808189798025614964824447276966824142658404228718306918693602354496179117344107949122609179177672362234828845848202000112843511639896346972918582056991776485810359707323499324218858446915217948283298428298256768260623647644210506796584853187613295182506534717220044511667297441697304001803465832359991469510571356554321212409819850803274159126815991821393138816399015419799762922714897287279457118796405784321271716132874195762344772060106140888137310497370144970568434187882123360289636505995964340012755321988347920288610405008368189233605021137341412754656708618731360759975659288231271913995353599964268992283507316111272942141886936290807860224310869781940194865524830162087780582970262707307375700663670236972410810555375349716629443275784449808193461184458516593417193009126571669340616077134567422144422930141290710311197648943568734183035271792684500849695121310460707829255409681820325049977950326144663014256823715246779948909882555963831212450495904883108646030173067672211737359409887597756510369863673625564778013630517378018658091560545405523855843970971986680859748821003824281064322775347871267935262826461431903710622864625958118717033269952526765175948587825084275872955221373762116781330579931258115050902250099159985692338265818558698460348464167134889024775658299976452977507270473013167151501135684940667698624068055343422575272491416019525657866421513676389561654441134644552887684812500706443563194547999355760336511061779760819268993473272168099502196361845597026178467508383644441799021939397823458775011004930742538915245698760229644690821328096588788907812263210805658557166979906948532880639549738806726163024399299748115533495877946524695024390873764419011749652827366249916901997239615257563614320133465170498095223026981509347423050300844335716013007943821655315067515942954492360885220042805052569234556957387697538810882456502675080049088503457394987017215405763906398589848065872622078749319879717120296288478620241771567916060075917764345658990917599626196189917425742052942587022265327368972102339773029787326383063261295411964410070972488272164603901387716005862235297719649371116359387477789260471735639171272074379819798193697200498603970246934483740011048869145542354496018036874901809147149635776183860527713588602474018016875889232841630024215986174616390311931842807025756849004605764087520462587735985176392965005233806494248683168416155056813961512575076878311123803207014897087814983838152658649575658701882719712272738787196676755783832804471322670603802871598248027682784210776272327831030892910721744173083146857985657048812273532393398469487803309263494635097281588399097677873030475394613629245969609854932310332500493690736015268240954861690381870437014042276953390251874905462494362276165778350554505255379444407535917688681521034833389355965073850955631202689616069113176111782382069329623552137552447635426846031190194470911023876536964051634531893768868211556403376619776217408115685006943618385205355024155197364567906946783803631095411140887874378056808575462045819497843659741050154824175384082808297270215011200697961736510999729603995517880728590831281493100279392426275663290810390082406462101782854239156583701294711467695965536639876680863534317058430393249748698475293124513797190915641790546717156263034084362370235440789444581923509515812768806388024693711766415310481577844070948419471072079309938605055471350982236228466691184371090158778386540260402964104930396844100390940213420154510825959407095074700978816707176872733618346449296980905571322981332453435173384894566893198341589220086325973275791488915766346432664830343336780652612885724821943779802200017341210423592631817220581009641687419580799182619637733189086442372691036769574346569754236422536878947316755879371566740901443302277528750728516716685531119508642848260821529217385285306314911060402233730463736060967996022368546786882301485126557906586972272450594449006947234590702717107786772074404154315816313311802809564247947395619792935025776980882851898260330104779872869491264062243978422465519533058388547079544652239320902750117843654004077276468288226701658768654781866611366686326386205774077786576160272139099053057622593401488819672581114106668426667953381162345237542435577379297438030319363496898548500644945582308956277174640157207727671441481780023889790189088749177598887497385727966799250976439977681001272380501603270064639390561694598773675535142551715989199534903334771574051770244841727460303486412675507194443532383861377782238690474915777145289916459861325596130766855472617735921975109795042150522752505453517977441283000168749112950931704048583435025128395898227495745168160039974304188147116112051235596985484020516060899912521112187951018710795835607178312685622761328698914061447065744345497688161892938809941560192415125814845960087859640518862498077948566406774211097812888478092072650934100625488741592504331958507516364787103865822297075681403204637375446110670289338257319725594689344009362474255077664158781990861896536304557048867993673800308451817637594198696140742972464571041088762369943759325669516737962767137272894207714512861314630805886588719514805667623396243863713341119044405247444505218878727740110355199493168237730006721436542094595724257436805180647848525495830848085112041746612892090934547695525769428086679087820292059203516112568241172578544580366896243440726360679071656052064136740182876573883256475475870942969390764945023848790871545165894910270241001065954104259756433087507799355852353539244664358902560001468983343080428949974219555225465785010877934695268617455903366262011984431958864290838183006931173463912184435256425580418844049081480215134999962205875345864893016427421570154072106928476509653091221890816426039855585236784481583782347178505904883727129050669774603332260000494985086014676279969372392597652173907641254439305594816542938510044794763690980857630001745928217495894602295014490078443140748276843826082370320731674087959903896062346815895916934238498322092796191334005519849800580631247620619360198273645910264911303549771184443924771800572755451270460806355502922247481280483423520150730327776255991320415088702642132652158756163902122111833323288978183176557225943266255954521739978046312112960052335307416685079041396087215507440376093736834869630394695472356624482474272486886598878346405131004038909235737393387205486328763644958527178892428806805969786682990016925808222794498917104785877831708090547606200917474334840339722834635887505906311845487292919008777736010725839559814289257316928336703842645015652511257078030317676943816264749266655786868574240156820252855184544428349015366388298861554717135650473653717136920260875923004322685250149561947386575983021211426867283922614189685038119177565388738904500771331622758424779228220712341467591261406909703978447202922299761682155392329643644367084115624125919316998616976337109749746133801136049880452192260875864490108302995711253695931249182470428935935324066314426879067054506649310899981830879129885384773795110242186317687705270704692597814367185600881083917651304005818670461364414441289853937055230116046896645427349802937570374125366466631847915182592811079384105163413403195280409001667975454655044883648112363213888749190661536988724307846972646791122349779531167690243581909385618773750196932988840772329476607549841898065078432930361341458489632100485106896271077956151723614033175719794281678960684289260970697258198797660593468278037820107679356955718312501606719318936934795261917230712328672939986897861253829513063050403941032042290520134703537859866519674017349183005722710271303431821461395802590270574632452666750498874918239927925592455789978317841207500187093373097742617244698312065580542137564701018413667240176439444712130682699465264596656266075821357405210187219875535259219847579084472974622133894157440017059658565370997025279568432832314977122997912654754089323617480175606099438452417331871034050997926034468795370444324450053523889921248848156350825141916304271985814872721071778935493211101013927083790875740337369148170609324246720858499365081355049662952781926919422466723511296945785142885419008430223508295611522520256299875402279392078587870675200246781128341349886465215764353032908814197146033533959417427309963337861019112098245584736533817708887533434940719929417504171767617332514748548330089933304719335972557997006008786996227632528165061165489483842205573205614822820149919027847048287240633419288298464776508410523808666554629441921080043143652374241545657686438580461827083574681075533627415054265769193096029946800705367218897878286693326026613394168763692292559096381840615551172655016145890630511512398929553989560868536765819026714747715529314943237867968216271721344199089024126778504801520339578746879595176886708543554508400346537215173083018200909485148453149771617696105834225048750712907227992094604248192537109348910893671286899550077588171248007710762214602610559429893229861221861218557710856661989371627145203354839465739824609737477176136894621040898931834653540847741391391845979106778584090952566577070725065904788224387020260672953563931683588325572630534887305124797110326688714910840798387676637029311497913952499983673637320673354095701061206606628643422885909633144713072909721641106262833975133896894254084951821587885934745157476389772555252831088108070384522842396480225228999114386663748719033129202495000080101453102484684595651014141771485437685125165393768131071260107288335824760866328988421998149832915345428460938109464973459951672842250493956113168667890914110701185284230068634784461514658392160550266730107792235025575116380713551399915370853016262655807320458892796995715001181771657861320610453393876051713727545150005787300368804348740306957800140052361536453677864886967195007929377329543136691987342503119212830816044007682175959758473936566259538336847662428042781041356282235066476450450639782039819595743247429929306519690296658768709705667668710619827297939426583382349358561116767818998278800499327320445738595457645248481478809661577990717853987557719772992047328879864120440732091823403605071439611997771922437231240599535809616250629913543455372859878482599223852900206207174002448792228520498780072889375128925314749373992634067524188925910048372766960257613631179892278810729843458529176284631306573246031380120377775298795657455526510393618972231611157578107370461963795617586849187510834150262870223409322286988982247013711308667959599552388651663543265470592990728990582210091685794425306706615714357176648682520295676547327579068261846584286265433841016587474502426697393308481477796017235378152061516995820424707347937214275714627898326391277435658974130075948197248929808245197244715266883074703132928873417670151953398838018654057098249194226678647417721957250558836560526736829624091058005822050387619282397829330579966927039195970379661268390016277579579223559727881382836638460787627901059970549655481226017979144278858797314561300540675839420841910395042635282120040671746804803018418316577027373918093889885216447508175128540513429810062951005686757348671128520354386575851381312116915669133238279537686299242160612432862714767346456679936153944866611012426491062042767924143627881758645474780440112550501945556479506350630527749408246790204176713609292352716987906324088858107871198292682731570926183426890042574329449572779771944278691667097463140071804869351204545798350893324303245123645966361250995780925251404313074994287158273043146210990851618845179749051566136516990277544325028389421099771063166583688239392111907960170505120602843614303917477237192099397963841465665804241046346337531162370826573566651693925546650317904889486981778822808771708581694774873170894492789229115347686720592924232638213516708216317933487576243867632066068881892930849923726317265098159042908665060175880485602056713950358313760986882975876599277244174783815415042896077034476267323191221902506290443453706219596427691333620360244837782314659872534456755185634332554644836571033083174623519284336541953749959375119808317662097141950471745226691029124572052257084972970701534010885420059551605435772924399586630516375851091215107351029553813004037460819938036537715462701443090104830058568781729581221226664933712116769219991663979625322914651165314952449281827254760970989973294934199267104986160517905680009324447804899220259795262863858402278285947526479306648288387541280419248470488796220020846701567620406237498147807735898097141334332842141422014631665635756956583828432251208338827751247727785975539857366950727502735819827610941861369815012888919812981958914061223830299295982165574732611297077204120351845433702692558165482106307569547654554363176907713531535612141687145118645259989011162336781336926358863648069660194557760374119993820923118293254352193465862560705166195055078057305914829684879883342719766629976467040251967618367428638385245279519187928123707336091478689274604388154546613714251611833336315431177530697342834377713756341128026893994803424135341390411656682727525064420544530364834899027122471406322755110846566365111106989108110388165484035624546308614564810477778313300693045561399084705511714526725748925377368137237577826805300890926231383879025588197905525486581485714223186613169422370539742060560628258714268088702108528891274492565926368512290437771192651604476164569915077961509347954527778747437022433050621882324123033755640707729119241213907815778105186730216837980395006564432357035808472471879910081899523379057665625443120404107638011307506487565167842670908281186824357441720057524476579906214581131625756820679704148227865079295416686879882086007246340315469625187735317315301373794017421460024142000644739820094098275614829057632042083400660413983537563769986626939227774352941976739890481679210455015958422728190551769956215653257990572091684883675328718233013309456921509532418314159245726090502369555215501340883348476936516691286699917650657404316800076066596398197100883563666950301736066952698355009037280093834862466630599112973379021280551866405261808774334416484404655434232347401407080689758246418751624915994477216869344000213391894430121311224745806281559929875722265257537854070564582534339383792327710079013639995370446769981531376742083700388549600425577550759245219247863723540339791920066902540684127374106656926326274008024138117744597411107353300590368656461591647337505787773244419632193397655860075870280911577087255037795532393560228398234711988052879360100304174114302092899959607544084078394426216674749960398770122660130586697849687284373809861876206408199501133122568897596278821349154414451541758082536450514790732438720328487754429688984370473357605109396734987224080019098600103875922789094110078896346174638527064477343099271660124468545605165442025012279706595367579265346644181478412959128470372531334891383567447075914429219798570798136515511231883889057100193427740635299732732711396636666936363231854743741331963948668817083174630998691749689519215351545470771942250537313104830974278524454800180412590762530253115035724120456837022979656466315281174736840141089297313874400389032876896210074654262775867332395746672494602076472805693961629695201049949258286034042170654647463737107986696649450583086172640413085632651109849213897477360798094437876986986956414028159718836659009876443152393811052969663469113574125752135213788621651215490041579847920492008888585340059132592033659576143405867700714369132995959863860539076948014338164935752599985322895893269058927168842033767636794334072811892392701600236471706621463427576628695376854230597640467861055268769575648650980998322754690893563348991243853779418279290062702497001809296323658049445258724081742482614642169031261362226217822224755756207141075725436440230262900935510164999396322600781469194854543642543794941040767935848341915611132093463651292721787455983373488554785542775183937709736601034927080259021159280306709161349799143058844244721679807770883310184271184357760022650722648666727210789356800301164983614409585929357009154650946784952328375409237913792795412220821465746091364140099394917557287087608058140078728718000611716179148060186259708124806907163659148575346568584775154536564215422217249125625049202596040250843116409867390525302713712400884207463674673766758252696846547237343612066396726271672913717338476971329747214636674451393392497320665696251261957830492334101247752483279181109930039242002005156987223697533334570161566754591395777716965383262496463272344040200175046815161875973637672289677703990209260909421421404515804396890135846461819316858106571365449848099228826421296198792467385345396171777813220325447379998782982220701261984175278050315778267109568568522756585782828069198102117899466102528753151090072415496085778367956762611020460523377870986899569594715513500837697673254937295890118395189018346257944769380783671118684294933694727307868470526135700647817963549844124599699686302646138449143475738910607480852438654751954536894138480566064402093741596208435879033662776038937160579004831940958960180841872706968312072403840708605065876460246903999042160887464096402122681683795283526385279138043694694143100202986255059614927497751466091532382387945666577846508470598545324834438102591157053372638608529662693525996310417321961105571682410229938501500708618644435583458661476889335589419814347212935922309344972596146040726132795762130076823515027224838600861892324265429156733797950954902095695497031549964752278491028371883309695684610010098136435174224088523528042054831735769847060968156276362175431265148300198403536136196750446300042295515840924512636230984448889452052987053316024036018924677402053413829633171316275255118297208836540335345031711059746463510960507414040058030117239956041875982035492674936501069630571265051719154349626462748671209053760144877851695047673715160481643921790191858927460545905507970328676509226177288301704647509403998423479367276232781432555167318347181823162709522741911695972556691130404458994313122830701178185482782892922296304696429743617798167047764521061727327505174572626520742157143078717123737025205256585454372314072649797981845519566359298061277796297569684657526615891081193456804587410154955042955706177302379700902901243022614996180882285682954649530642141261343900505154016443907641208487381265370398640621501752661481693306659348005307002698826543727040714188185105330471392203712634770698805071548889394880182069047667237149320233782622525414871526049201823542266444665504285459661715889435693256610962968135464476783161572348446085636763022038221347124648439885232807765670286127368278072926059430344718526522024811073921098507614733510756435299326916117498973841760193298281632439284302009137683623146867440284589059519639787800766265007110130201233632200335395072341907791569475209457747901384799295936960378555594576335932362010348298934438951911257513700396957774002166315016722115719481652252311976402023520391428551944936287589361910550008563614513261850261860952986528040069849205771217294980906164157935264099354862008309885967225701230402237324886816004366960266588229137675522121215217656913386403401321447455157435279162756793819304449519287489619422876169511077967230063954146227461364656900307994779576443545403818379292113563943215092549569806962758339634537153247782062281155526668395901401252105747131167884895856092201579884056286478086629019731131074224993980842387500983099233577148503938119860712099091951664646057011238207508544960502193182137204391812878261320290366886626738902934458520330954648973647356935899747720787274294801654359099556924919314460188354387547052393112518413982342302623734619999117828158972730000833816583994642650645147223962877381061685812299144535507709417418976298296717593278657613405403301217784083512524630739066400131034176730200635396867070333891011880267897954806909302441579096413108425505639007380829450688283909116264603071722122150528678435518467261059857189028014114591339578217369922857046382270392356152814850901623980616954736514941734057727512528339374739725499323027766308904634262784826548113150400853937198011962348508545715678378233193511357619133522162480176101024194280148486631582650806242974845263666586170744422907063088604464139556224601518052216694015494369714957496186730291486991476242326555438151791372690242842635044214947941842348003720295476204776465390455557251907219803241112458117612977272510650862855586485225874853306102243571772470604167658616540133482726932510796041115613869795475848850641008556384495917771288401014175047011110770025674824962255728339099514397536262551660249133024565794160755370200103503576399495898528384705247323276281738522459635380238527453864467779562327637672190970048691072154338091365187479499665582125486261774364192277213182275130676338211094381028991348835301148958471271240343696950480225277915026022261033378497739293958576333093403843263518231932427923403019539551674401474097082913713280516779188305495133706808585512609674873659684589040257304747759965541642712125200262437589038848963425125185003010160018887670720697376956759385604769209056102239256970847172906874611830858767350847715895343078090506443919199601391826104866105154481406189854878993504995123121279469917771216817854203802768401304060192917732868617720445073430712934334144905124025033651319127695415844925800327211596090345580352977142687164143861947978961385924714141291456325973043217409266402166999263420063062611733462767570988465063470631229295207512060183792448645860405042200067310837874971281044080422022268050360646847435458625774858219698743603658588008892859144311474693322170490914623303823021972154584800627727284896210651254106979789293006849907618617980177526509750598396427373466647781684097086083473227421479426220540148726511740517751972348196362877917691735132092741735676052197339161420067538489799658888471023231287293109262683616090956410428542410087447601953901522016062091268573568347750327257816186017278986725843509344423447370371022326617699211789053719421041130128860833032638355988100101012825627822811933945065667664635127202733852640336539950931827979315108231617749563992121906382072395827667387413835446274186904264362432465533435413346073464922807305929170263018581560946117381428687104342937313060142105624539012589548264664032024154657266027407906475321798793456271976925103522255026416868861164785502383456279476954106092265738578795822482591774256021987547534967504207903870926582289247311492973518048777672507856943769710805440440852754542331585788387323982463823280660906059175675009714121734733390757698561536368276258145068124212141968486130924907474841048431012029999547995203900471071233487976333969954904047907885052506071685689552225819214449319478536750253530987923655348226796556631983756369148975651368305605365754170787564067701875245027475872860137454973701675813804789720359486770206456646127952906815370278153899263225067742975373825879506197933618649829626836507343923355556025454253157659295251109832547815617232711183678094570184418242396463051041453207882834027840689573060682781206833853829723389331153100167511648578460363053582666842358485615563664024024729622777794960882507027210908366143833982058947402960192509492283331484008212793400043638277459484645894834220783428121674944161727368853568633312491271451117186438418470939723828908415771925599300695598115856584715671925083716650168522290158148044496192833896968777766766585554526099006108806743886116239106692967707601219533292001708186999231597186026452536715654562236618218702740660042589907428139200909336245932501840160078456359524811395514278869240060298709848183198416257786689790201322005240589777478531303517801610442344764766607146047142997147260169431887501301392976848080200957956091109273068655848493720870298149047276698798750815093202417516060027317062952506297834220389175216175645640782308287939152761459790284007507831689396733513893881391942366174541219897887293735749912073758290725832979574508169243743825667577009661698410100636094858926226373983066567603088056071780178285111242043794309201257267687778552686499693270930525698624229339812235768448463310277856117183575143382429910360984770973939872075966611484991030975630618509397773711988723674070750715344464411470419175041924676336697913929286191858205159655356099433220716055313863132422666283827165340613310938553698630899250721256303309430238960076819755188691642902817617178290505920862858194566956101147161951524510438100319677160088434763552827900346288781875544895254985964955242325522958924684894858573574795936596190569654823774353870908159425552549152824751654744025049070026778176314981851169665699949001895420019222874322491730292425212996487551413982368438243283676001896488531257070352221660258566588349582344099752515564907454909253720166882041509437356278377273348031322753098201466072745603720747838200160171769819985178146462389180420213294594246231639866901356532715319598088916451220675123359991086521122983342525461509261282389278768200308303769187184515838538803691511512591974189785409325880704093841409540741089625523814563879889943521255694589958541952246853667185682256833046865620134335943682009470196241644557733425523523870059974842823884341270957984627094962317627446663287659321162931247033209076481611673660713239115419805431942356158114867676212813275374572174610430030571771725125142304118357068178164562046952357178814756738759813804097718692507018894732708669416917093413998495148313119529434830401190664306869173927331922341878518270362603538223510563210859095407105546699579512662149551456199285472380815014581140224798847436374654613451601193959208499652589295510438624739384666722153008168688561892160394321691614334291049723466911381099158042389382527183951833876150192528270070942772970323728538617763006563439069218877594617795300983265077915325020191428815795317576091232534028708704435270311918412210626772285629842186111975909630405042202053310653210661700713706404383095335213160429944131558245252377697095058265780195343896814754352053891241575801787050257734532091130974145627921552536791315320560516692131911500290627102257571719240247717905969879459504843897973068893266341787079596875291120340892642936812053390491570832708121839284220424539499148228490535771080560445145760579966484399193892135447631998040050109997141362679778115196258164455161993544476535408931253219870041222104267534900789108092435343321339331109602439078372435302944581218326253009767819841089791295762890792746324884067162280828608181110914814663152519444470151578464592250187107044603194512625810215356162670297841249924800759702297025435857426660494934386397545339171933969897466444716824180873168052645032023468646076815082135440095914610754064024838241424181148918827130942466349936555443829252882773963466232331649495458576695338243074288806665462386230093243732251002972659645373778163712643839841520652001895216906644387492433621255814153075990381208809205697527889455330824891711418302203719961191994258546093033749331353512890506688437368144342283822486847121611977174972803172621641773821839129222189742076526294013149768298114933426197492598911464087283322742657677168396443631723507736918698697427605242743107662517428715460395670933366002170864600432296841631201853502260009980179011789082988323125932405329326571435886583701888324523486690010562199823915266221894735009083432772854199434859450708689847308347481677885523137704460967935608711077181603953675342072617478806999597947218014746747645211225306186946718663563767239863522180294852690793229104863825993683011580350109683522200761629208057665581691760304884043157537560196579978662046509762841365668510628238033371431962481717449224041624482745757718328649612423982045034986215065713173341572163475850236089482139648471445748083440694537266418746200306872051137957888708127325192285025953278577823057388660523231625620133149907914807966565458879880061704334725068341383145146377203820676601686321545395355552655561675327714425221523846166872228803427354661491902454570000736562916686659689982770282686320492119911097493740995877902671932033197028125034095451303589375588227894310387999709030104065199717213264832919546715800030952760290949194465113225192594740166613294957443833126247942477695683045406930525952507686374600206698444393190399922546378667706763859480505246499375487956519369080270652689895792857668750147729397914632061270073963065310456670603076331448188462101122292708808458457758150658349732635468200483873479808486740417063988919357510754205760911743369094332470774075946366166051690932381760680928534618701603079940530267633990131284693907115428712725732758334220265496027211270690470802227419341832111493323065367085517169075011520745400161026990402574742303212144411184348000358740136959991956557866742815245406838189533576976890108315519534733876757681565748125202919203016263082282194387413929837622507563951778483745140258096616799441851403113902693564349323545372062424885054965376143177701508740133329641738563674006456314454010643608412899666390781864353395351675080728887764747430336667321049783285156313094436929914490527807804018883262068478402879098699486869360727269156240952767555202163342934680113304097072026441131126320847476282840485540471559856606575246742045204169758534628389155984580802634705018629470040753089363003243322044974948101483700791428047756452613342497165142941544561891238137447012241304482597243323200527653657711471488504907102661017095633619798242292601588918123134869923336891558789611043286277892878298132532963020254123004039280743764954125233438482330945823977823217482983057656863343949752313106616253582047417875956927374394664978927778201960493908334677459277161199488703621541092249935936832827596733589014229656131882144016093927679457191363775144819202852976952556141526050542045583439580147598934105511154416702610010436094601611384515619199342706549187768644319890106547737468915370139042865442173165482488159351439188832875513643916222237919464632502085431208967402926151467949398074688440069549295875771149680310131948759978126808937803551856101697670660200811090881761623307982511697143230075311887099222557519624634232839209576957976376344917257358375143334548503302794008520858388562443476502852388414651012652247613602026057954289169641400981170254031360466001077856126216567193302209670488105711776909541500239692804377329127338494045252882195684515661593768890550580342486046446670970461778293577022093968605657772380028564953024647382384051653650898882232143659044060303927234652777328232946171847602981617814010090202051159409459904369359339543978751050648299552310730012599823685169473486383127864973836132169184063616627696622998265818023723710955839923335642794178350412656786995069609661783664977913291133560232610553622763911259440433738531016070817455691254226052440134172054158404300139939487080264371156621011443405340617059653478293277690484678117793328724629973815164079468529995716781387958653690946724379941445250283939591480680293495662515106213885385357827756171413008750995071899704954478590011675066460361148378179252838190593158108261024230357906829578357426979283427191200357983423588873613132978573576447052543663668854824344661618482632190897333326437078512389599699570221602597746428620298890730727954009017423024693556147556124320553033925648134143928179647117886918408658302664917944372506112042493873487641630745433238867671714629918054833188386308603212876519340653444944463958242451986487250708317851904439648234902661661147475005650382619264288831738391532835369330413743873570301806331544901951532023323621258333378537291293068588706366898318323581563103639062104589238298524679266522007525635713855269595869319936987219758787048360745149125722310991609911919899664043549020776402273838960462533125918067993067401008107404476521163535155388609563057082314737031845723322294717913630969338916880912138173832159583622753729826925836813586361366246172263965951364449190350618393325659063435520221204459436714946533196446059730163943558650626042159064178981430751196710936108631913757048123970415805729024544332421421829562808149731270002775060949039065503941629698707967752151615390713548965054143614278627670540870559112988358941519573454825396346729015923118738544067819088077023082566616206009355853053370282691542195871778293668786335840430419426286974626105360881105330341783317377004373878534806165907702680791159296198522537883979580163533994703382145366022115456405194693567537767172316582258326120570263490200939134179616025622887167454477686903122374634028325314399773057941244623785245635148409685927224437184689533582029653799980194648033933639794433049823001756880365108009826195277455821137301751794542585228078071954954711118928164518094919912992235833316790328244305655408916443255612749978056516584573978048102369130983383167309386491047123623826761626920625880706644515053829952404896086611099901247820540879441515719612404403390412904173999975155640787186407735898954579793614366184792633169954823210319109167643240604375048312929573030459506001063578160010395193831507497639306248638699181357235833442785253760721360145405036862718829848970724749910576023394996005537580643721994728315046670686742793895590344831010837205547036773294181950585739602040961936290342223569298454154366025258344880501596669536345308403933736468250120520425026041293248975685830523246721986189555772958065471332748587757505776518536068972288255855659352611119963625382315129263137151989495451894117638366882160338357644705878811168280599149252918415212648277649423572862022841118135103667658999691251270452669991078290044730911066483200435666804529882683845613222246710794471532703953699324449023641915842283614991556170591519246110810048346568939923232929986193806306559488294806463457429924508106756121163536989604770986645777698022033294083162415865592541447056852786497745888991303897481095492608066718829294068196301722414042973414781486837360287897646367748378701731807840129796507772638774781832245059774793619855276764179967064068163454800078828913217053888976826406721977445543388429938207184118178618985615703381134166276350919258491678723041939264987577218000051990275073636230931691630989945460187569868021642881504448314623077709259666555169547889858991648433029415188926889256993993767992219535787377202864290089013890516620086100023236254419888890319142605974924547640032066562878635256786096405643230733356092666287395438678978716878083885930630002690632565824998689367668031042753534188704188456942218537366197849063830256982917676730339856521378522145288511276604147363808420556435945216842019756244099057800363963303567248438401962014694573248831162498872341769873266847367938952418690131187294841087249366167389028455594649868355891588030069459448792393636627249742567195107653316466664045778540035437409170771769924202700063455705465002903494623328343568370863867741581201680886233909198321310861700999966311831789758251659126405380821850700399335325552764214779610337785834802090472420066640885809418056213715227938602076234446460986390004101377965475805084465439962373896968953587864426920162697897805483389472595394320590086687210373273448908346352479753221856411014546621123172848973569166293589152286235882127358943180848485538799600505482312742008032063906159218384952018913542109388363360968522190643096090480795302844624981092091486876751041868158321439399860763840853134939537744681001557846294264700270279889330267770490015709978195469577168625012588619543734070517903608895468733616185105290275504465628108985123041943118448315909908756667100246832634794726171536444165182264550606810595792316863580889342486842100608434878856806784562883463726844960739268334830038836105622062090364361414170394967994830437879988764791886135736780744582722868088266041772119104466513338396982836688509340350121019807361639682261621316601007450090656621269864585365632488754585336897726462681797895516856926262779366710483169773466190680089956843375866585071784599586583704963839933055023048586306527893001815584421783080603496472698017515670238656263398356282620715426508635300364463032620445211111477844708017193188166026702542332631285037255963441493363435333880063315711994196986331130851041522460792119047415102866296365264494020053688581668313988093229875763251767072989159161378618636716395756842540145427125885022965696537069961324337874180270235282441778870708328897444628338917171065460181572899249247798436813779656610008556719209975658155451603636365813581043176600043271208596400340893834725554415031180460242566685624304810327359267292866538688002866972296381168117922353089322379481452112419920877236170129798668961418558041049264932736148983186966347177499876503987341205064381979327191659551712485404503223377790515015483350320726607340868824338140135828522059899300285984869436196691818171447155743583782157213598552251311657169463444897718739051989345073823786798337793045849504571775046758750350255713598090772562079556188955644196274279507557766647872730198089765918534120584639045973588930101497990165084828413090922190627705254287931823482110565717087427516922597028439103415002257933611561048136091002667702358741866180649014546840165848021439411096259391283457119574576601730319056110429238643408435805809213598279382486465556856334430978161144025696716952129445362667404779793363950631328250203795655826234677640042498583347187328097895243217371460402348730786093589174476886725087543179337279994109236003900634817286979017661442373228923807132113759590363575978756763320795215421017464401611727801742769786561243455080786043813019936273828045770320878676883268488162459936465218477210933525369979053592961400193299840438938956390179243725729649600235116270412650091560005938188403572898276992731074138468943479241976119492515765134244586946777404192101570127833455367784156695599501828065944686796695159908243374584315652074666795744121168404530272106531240207532193645230465841323444485574210799897038624633150228470036454862901479101063300003194168603222804680474052870447160584466683824174248196581112178222768127427091159783276137209035077748868921271911597085335593516706915149202786433881308408029549853298444709848049490676295498844730942656695275993122029862431476754440616598868695577267233830763688900257682479123886018408768163112184405354382814712742669914587760616764174357502624622909970220699695929494942243227880084764664606832850706807952272513449322983562873148392307023487982334741629074925136565003574440986417360474843943749817202573331279402982728669797457959707048275080183618639347873604157435435305120262982545473606970119611893252376641150765817764143868800882781290028777808437165776152713965322350910766161290517148076903541102372562046720395861886425295751438896556706542686581131528550919780260645888442498463109373062339416111060392889367129661693621079114207648364472639250010241599485544157955615814387328188728574342361389969026753691370711807419969936206990263810425705954539008824936120426480697824957182152699621665505145720504362759689466086841151100992216939354543277878754262482776759852201853420862918468286725184779019941754397950578243920870037811432415323673984997373272934914370096824724195405668541784584213202056744262571519551628161582681204223415987283909954171571512838970639868039118296198896634251224982020209870393924638894783439983385173031766067946304112666550683706370557792165767543327141792031357724210241725720997643952622893013188900380080809039897497724250139857834904698323323278257701105506390789460844157406258796121429841913676378185257699047920575227157201623821726759571553536108503066199207308517876697339054376505785521812964927072455013211023268853398057142041771869665249285020768518085228279592616358151113714556205875624062239731606323889179858042442650140912486746944354171647936415214861220851103943331022061072472377795142752408746086102728283369986201189603072660082473972437818759476673581003964607730577274605116053556373751498279366565392414090017348368446315243011197272210139355848317684232044460680417374173718048551080507455852296158532987791137245691293724168285292974132377955559733349047069881695015419666107506916637176829385931005497044337053681629663127454184288944020226561794432805221590867837588305663357284815875553662861744111671157414820716305148867702194004162345822331407492004093508305355940639362291174966478525975603538932712555628385027451611394928266025058600786072262110237493342253494696600526485869448954493162872339862505318562177025739298321855569253476060981712673454826868670168843000861264747223570024837172027643186842895468032154537290872335024368525370077672430642852566085979545453160278049012699700799212196336574979863215207849848651374250152755832116751338966146945000100687622724311736078748889316147538239387504525083556422063791593579115742530439671762679446698517003364024413639557706961489032124118946209797284307772214036842219861707459860845241674395375799005291443407067320367607756647228055994709065585549164714681643985615981838074899855930919481533799608751664388938434691831362728118961632570286455910488416283400735876702359318745822987498403784570144232916721061729397191629927103792787428907734555317426191347386331990161452742836335182183695237605317338750404048451702736638661011512304557880449006265870798039555928426344188737094596236340610088174732115876688109139978344282949587243988387083827603535118955906063762806921304003549162027722416910134915045829582519658969408944081637817194418153089856755936546577482288184095470152276538448263039276373546949872393133807234090052500126324381765131401402617400054485056912596198944974992474307662271623909019208164942500682695676367749628100318343336723055210886553265263339930403287185530283757376922980437533174594792135753977370309150849719620368245204992015437479239122838519090253041637469138343828260484601396309745938437475277748881448217456574104011915209594304903566969222959447488175101542146412924868370527689644989704901597115135450893790571493519344055366686225356422548897344300141295534345677963618576612789105338566405067227589498333660255633026158099280155809418102241127105994866515880630210460282553408993747724706088524429746536662741382824382417938021214792899715353781732232008350163071836362683829502180770712364632227653771022931606877193325940951002142927104839125962916195394587477092033117917428652003569299758241435923287307317202726099802245271968170722337056685202393299344205144014286286970429063639100080808055609778004570906923085305411780202319114023107498142196813836091873688623452279698207183968272395041260458221066709079193199156135883642390120002042885195802910791994111793483168870612405858073776861784345835040153525127160148245523004212665894409414631618971382954008026097849587723223021042096927011211343451154269970797268986296205156416174610212066204779146716224454154049250771260491284506283948408112496602624885455876552788655892655239464224654071505938903262132038492502701797358158741760900918402205677726296923167550267538690327235692507562905842163905383074412556275089669907256288241968116720791937303250233249672712917327875900887268464918626839146550687402892773519906321489820747585559142124160631647071539058358684784154850454569243428099287132507825250845385798320720558235708185999226110135524844729390067706712265895711029810807554167974639405051884357494465117636591163975835064299619468869213970744197944914615980635469981240993097791484522569044198575409376624923334902509968394502910818925454510876797128295892997170694468666805986373898585738812962860973149790862099128192886172606851615134820657186637201775451128053167296145332588645947315858729669727515000319517744765077117032856793187406754089555263158402795904907727898690744358590434410639312495085803455294056839085295477279865025755386497721831994944238525205804751050685205964420297586545073650491182589191414244267123418208617350289213356820020219730117347144553581333035432468869604588347909636205491630323778494136148924089737283553716203981899253866978339228761000687621489013347935178252643528170699973339966964275619927259945436858644046609980794809643515209926420594314795419298436036024373189861376247492809786435585501028265991872859793706185189467129214031312094213724270437736391490425619261363668368855911907827585106573366772575626833234808230625722712321444223042256301580085769537442015397609186981850321030237199113589685342435020594663005871794180631427408295530310520509780368153855465970802989897054273995333196025140532864009680786389509867334621164094564214828799627044819540038091374220674552388185207048771088509202585756863000046231932656727119040994808956664221083606062007532590147486380811754634215922725519788028239052204005817139770624304169087196280813434495385926545871381634990186972243226806836135065316726597889921752383103856123404018556475107108470992545531854763671728582025390898117143890475193920975777419058026198611947117942140123757102806551435155630002957474490897642643617000828704779459579875584921593643580566423321178248658670273473447498703366851566245004194184787222258617777575606816784672583195691886021923603338792427306350520000580325671209875115445467034286267933909741371599948620528818253731162958622652116623290317756480463706706942725795571917781634836892540634718655245377378980160700138503071038975155957533111292175119161743863423545054728673743666959136618587005936247445506119135826010643574644060811182611879131670419715232470907284019977156670123891317485110137020168053204675684004517726306337645392815086530742186642805810669950293734521077994620015655874326412886014650015428517335872954993867596249964236315853334071754290987013082577748031587721234752437287826777743149991824559113163352424512817423052729258884038659867903229434604227988018379083452455331380903382667858860001105961430682516047083153961752826481853974190901254593264412244415849172464620736351825619015601890756291264885638192438098964666093767174732217744342898589410814734547368982098604085393765531340900120174357157117455690417883609539075072179596657484416720641632236204720193150464960605653447279850358960703314102828432251606288641753832234866016719970990988699544711606998008571170516555847026427924166777802380824159125707502543006652678207472585053874588908937795374706770044885370732082266360695838011834400519890497923869101323200453516881346917108887292962020442320768038371155117166010406403209096416908537688536031795404688221177337559234940103461097596012378919060485643578245016123324576712234675244460376994762387198840817376343573822773921136989929376854990951310798485046235887814483860733218511717787636835507646874057175450430677125425416943529926486144550070668662061237525303725241423857458016112155477560012968297940697815430567869863164464524315091884312462278133694216187538911945293458251504763423577599629163734267697344528611452238698736619247820441087629372216011271314444003072509004611662087185967794004926097031144193211848010884192822093507567763153749035365231134617274580661933820996042592650469301018250303800054541962097548965592460432926744955821306560353117263224712346443411330726998938181724981366165564473512284606038094097539783061410119495370939993512893012344652459087492856728448498247023388074924058156345254498535962820855659011733298570583553529635309184753215311572125442852347991628093469697744765854629366723100365644815995177102216003292923637640661573654137003580387456120995423988551565552712080589037430430985101147542434584227506814931135266064747073321539151023690281648881836934871647615366042196856802739550062088496689008944990567742386010792537867720120670894820733182215297399083671986746392603057062264030870931529639200629676027602202819941181564803101386953834014310003342943112953186667041503303613763020562180450530646966564910230515317885523540927136403954394596698406117842660880960501364016768654242684785915237877249234488744452990459495964465864054122934020609749992220447972871086653507159105104046647502359573317661148449388863344258187457244915358401556174933467587440453247814962253504032523651072959813405903248350372554006132692404633867691255303569279206879994641660160829938124929422175638942710945154830239720642707546970069303839262541339663001939274222024163242111041864600528875534894031963996829872734139417465671699157494761481787314925379569327443927997332277276860629089809997090167355549700639899260024359177834112794021132177617620146489081342511832372395654039109083096582462393366484731673466219798018161058217934493297734251999875227088765937207459689866021808036916953304241655135560553880260219539379352232796540165496168291763609272086318771604195420352486442652652447205474427362709012063879750132174369482405742917387542575087564657065256415662828826567282021753212837329852900967607265795822607380190816138134991056516790150435939617587319704567371855633296635985267415277813359625777260344142621230765202096610898466402525943316076490903831985369905520510664749486101974641002598035235491715100171507596932422170439619194563796392195965851205151887422167175138492241252460602676884547217997262110458629685784941574539753020975582328708778955466018448718671967837725765137096229282682139190214993139973519445480972558427384471122665480711750131942287588962206254294709042694580308079146292996627078246608425693202289455054307665026183862491919832182276525495788698404785016041173059542655579939387458519961942791852758630584065447990122240309520840637273071316308684589185222677825720792410093295922776839320375568483203566919086384869760759293785247288373366786813752701564738512982895629165871947519966199073952340200220355400601641012520671767135356905312208112621558846082106392858347127159672445795222434770471281996328540191667674232702803720339526357244903829684089304201298333865461873664631612333188047890105557674132645934674820701084579243069476740013195934813811043015915591248152857800988511677508177665779275676644644588674353203837844358197913981228566124651224235115507700097782475591649402272055183642748959478012868194116295500720613272963958649046579806516485144333601684688367901463943344555308317443035073472838717304239221062398987522915822919631234755919099795308639064455225741471221932754584236296305072971390912645351635424167411743696521645831133217022116988085830578910094037710511434811240888065141222296305916943145659634969722036345234338704141662398598963956771970858307454370211792772991038966011419848769940164504960810568813521922239600576882974085693066471860311997507798350720362320191800332204157811357212405245677165314191587568577449627362858008958509912053469536702388701607573783326226857362298840339645856190670808788469066797779933598459949268751542874958325770461513773063008823516175444058250490638848644503729192134326580055524902851482840128024799126380013610307095337910611336922903396229393246481526313207317245294712055743743853298272166745680995528776546922792093221973041284193101572976284436689694871044880758060341933785311576123711333087230445916820146726550560637093361340655487893877644220296637970168506992526645629607670985482923931356118189836155017753851843003094919289436491171817863506598601142403078461250037357049130910571366683251908406709993229249530031714150484831545117144576576110640275663295620482015830165267365492729664248084097148373650268105219211689745133101924619947508003880222453124575920921725151437058051150897561389308774140154182336453818001298106113018630777136017246259792145806382052501308947671735554575507181427788537795042854145398789416373965117578667760194775609405391049203483829076293879329356300941489095789441201068804599892873579466068783309592497186653830592748427757381050632041499145149683613235857207096245867161749944436820787113914491371542479209325133615701111352092687032755397613875752216107781939021723226286065869683932210327561612607583959510693145896601667030698525078056110844708057032205183578383759120144356745979405844995346050788324570392960880636766846736470157365044197347652584950680052375641414552536342221319103095705485419187457900459592900158986836869008886912492741790828018473764828515492103609464924308569859278925572340798090882343763287620286006277393526787213092911949976931716201890113340507101919465417442926892576267507482576638703616232753064615906073760173773782554749271869675999359655546347758285782417674803293135109005837038346432451085922508294718297784365007864938555376767768341194679703064946022381953280019203957364589420859535867926649146415090233350233128503279851459776643309696701816361368041776185340111088898857343687186504702043482024119332212207517752503088072167418019113263981874888926276424934331291957329530593100004616612214028551604111759795664919952880694109330365376724372518459054402221354269558972018006836435584401804479478086147886076104762458119549503691147040260058820454839259715880135898721159812763924857126207729707741323891086204559818156880288860680001890142532346995332358351187760459154212379825150557933996746856561059132468823969460013921900029891986996852384022684120228768227582961641630292355043158525193742614788992382357774090487613971995342137177026167816345646951653609072461151542327969535037257176798872491236629740112731377004570112066736215246515892210240507401252232648191805863280160061255219886711442808065852941118911515112484067419624854404726475611404861120358640073176508630225020171446488810632229471852386707318782406863216019951432072551750996126400520445522940019529470842505414870904109710960978441046758399785801005827361541640483525726869713539462085144754490758033496036785814337574742842098232398713556457057409453940624098450015477345164379880309886739783354015214028431605487673380921644539269168891781394290764942684688137194012449478703285592892916785629854228026063559274364480992578702740933900411328338683937283727089427862498333203393147807148814133476014650625686949496093384800662953155091048129618462966321368936950337456620964144753007011997408370991021374212724850203440521237795871062405297216468611163832173130559166222146940694361936444195939989475044500188896792570142138663442298114809950738955576442108705348069061513112167203762316807056956038365252203381665299471106967621655123921113507117305683404384182729323401408473350482412603545534752278391328037379359761570202152673030700870483864839624148947145407094535113546452051059025618559015772062494405552209727219835024518697321697026619797191419289370527013911832928493827016126660968789934680027702080912544546865343573502233953575084534931634706320517593824127817857047869143293664182335455894751715428718526592004074855397907214209637653680197319500183282872970792888089049213557139977649726108044356598009197525232637310650492491257008875529888927199254219693841267547344325641446334640358870204083403692319308101564848549464970993474716252625493698655244257870017113117603607880393692922952994288554178918432420790673486815311297141757392467945381472008183910364961791001201531549907100121075577892282450830749819620216286014020134171690933287701034674948320499858046843039740177118886105290314721646129140342627536178924905941256874204050894724761620651701514769973508240528120780763284587085786748792732697380287185123417207226972773453332646207478124708621129801154262177878714299813596430890093023720154800996170655557004489704691419466387168976120377720865466440800510829424880855092822889853079477688282880089052569501810761914545875630890286942961485645832159227118522875198480754328878437300777506047020891431929539345650113856717757054028270747388768165035256184852128719476760298188189239728075602436495432345667245555900871576989006299113616096097034632846352394838826003874001796012926224118039754026532417340605758857178485199837790794234711835498904320759750911921294719433997662183571278734621334510678835505274152670020899778345605890874789553353287485099200921675045785882386098557877097477885742737510808266331427751913479175094180789397102383947729320553134592386672319855707901200700260294802976925944273275380949075381933687834183318163656960802495281605918181400622573804989924674699595998056900122149775487419307064076147012538944348357525131665710175342262861105444487351598497698879011686904507954218628266263545035830781181695683333247909316240876407826159922849979449013090717278976796087161732036214940885036427722069106500111789033075357798719740265539571813636273884776720208014859432242971408616641252237979078570140075193151518503868182113251033803217897809963675979349113506106545260210605009513153639142624071335297095301929235001778018472663795194531233576580351007453984466496055475030856187395631837334480961791235423402665584533716114670275236567703081810620608128803420060432412322849525624458697798409861306680950603048624671067582910514870879392024526646148724016300369653383398227688933239809587282160599020280586505471375709974752941466237774028941658543032329540512518244986838014749138774503011225029395643878503375951298713348977552444849378304835406669969044404989849723777820684421857082050390233351604154156764235379785292526880054768619425971003478722687810330577654371679328077569518222631657720644885179328572213315801315154711321950904039118897244234011329117292272690793618710818429733815851335440489825568781493735159462180235444193727308509144868218511426438258916287876960351582713642929937856176326299374308872405571818021294534972203300873594236435217664667207839957014576523064915367786301329671856579173631475495545789430938514068792843876505764844439639795912016495656249713162596887124784135328976539257911222414032330120736627431558690868589961456172832785752835256837642809916177687025681329420357288288503480436604145543674796254134817061195349519194238234161994989946998139918592114182159171111303601066702614591987635308282632987261246919470264323283569537939142094456844966292532597861829810270913746632657156759497516766646222336281721325240818830219646191430622884853865816203165541880140775410024020288738099951624631558084357676624266515378030731164038177047751139662741741220282082711073026440215567877979407090177913918313872869224040517655126378092015154214278367777919000680480749806470048905062769097395098809224587557285616828867683846149038623476259995437984986086573341966437568395869365025391635462311291847285980774515768418570378267361877875681238580981585907887492429507074164527173611034726853781780332983703859193483146046492101401195065931434147031395140473644410688993558603902224750031633675763601007909409747405526716164186678597894874641726203198798457277596339206757702355097719316250789878661063118795670669305689240671138532872363488745249860796853634947990313583836224033103244772966391413075533465055761508771672357630850073686866151066541225013267213241205943618180718427081778357704080036470980151339924651244038514748583971054686836370616942359480069043795912511535141998927643991536580503185408020049087057544121694992278476762759818574124521882048431615091497674894652240931735812275529953986832673553917976456185068839709193966735253275083321844190586871075059400282530366023802885871589474685269605988848374044936163794290688539360524287642813281518681680933743876363115197591296026846967753664666540009752770745048701638967416254170167213175336265854645933461938490752829448902552467212060288654492674112107893140257638147217659912846940678911668096335213397042503002491584045009922732398885832794884218485698590174571698316214423311136448054782976385108849161860588288246025704769601479528576531572291524459416094897599567710278204582254967507551602485480132082213154897968307248747361792635000557839446670094689084900325411233633481283469271419464727448425351279543736979619892595630873814758014167468589552842346727173470934057005581468543031892747777457373223709718166763093346934560079902783812828303363169349492589193754106978277584543638471329763863985712261762613844171695843493115539780860909068002959050639199149842798093189077249375679860754262015806481148458379079414957431695188237619639948740131824128991939332300092052143798825139361515332384654286081293383954721786769251251680009312190270660641380463558335865193339659787094182453470871405356199206743033925209789204376521097620039291627307937704101523311264587935307511133784503029429243336720505407210704611445393948889480228243332891867900225694137587336391799326639462916685637985987803985800911487278436110422640539773044759479382393288906191567848412122652416783981182516076930481733241272539296483831731334031406323311240348403562843992459836323525434815382937094798951433594047681081693112219576504530972434937051532130488038913391234525353366871353012594131461796656092887712714476459933376369981440079261783854181787438168451564705728444175955054640581564183698005290616527325306713505884438857434214405999302310554387502447141818743942823322537575631174841584704325109423569573312222075746036938750425519212675024644851178675815222083737604898415196380016384694691581795414761506705198425171831519164245787817338393729970045187040360183483105903115312062491806215984569709336958057234892056798486200171116678622140150278703296087663607116638846396289424691030020440782888420326133174138022041418541895492872410278568773326237510125107051736256079131511915495751442596768915030727249046066521310658345259262822146574478734198132774737467169047330073766012746590665928771129021177935306401787283092328246264038097426640684157702705739791959302713548877130567091760247228785136865645546373114078894788081183319890872001651822396409424876520517040161657535391751929970162887060407720034381628228693173811323940545822319395620966275310172764941137503737680343364151187290636232446774959172210123497615661014955069074628503990539198186907357640258080443227533528199361998964642959601455506284604415908380076503900745158290350221374603615537684512037899034701114790313635065593292061873582145805421040120522793278585432414480789654674944308189883994836968065856887452715502196038996361187708148570685608424041944851468801994501374140392938498685053148671574922486680571851795759317510370944084334582927003807743797448492736651687850055348682795098089290232316872785640796114402024100661818934319213484845316037633998307836849545920457936760506511411506082831807066935729723999851384552162571815979269762973190796214825488310294541755545528547843868418190300082933712969844083374857933069214667131915373855252548039100883681522721831662085790470538535669488569647641713263739832530560500333747011761125527341609531828680426478512820660544411683175033112252451416114362559763707894191621785638862315783324964970980366059604192556517106325964088756500563193041520552718470458191094402817670587634909939985462849315739050323924080653096086956766464069683015451654403975391688767700643310138476281587502525397283051830302080140162825464950112640479104377723013465941409247357430295873088758573834305792359659139713115942417154103477480706262544417380554787074645385554046140779825268604236840711460894474811569246661742801437148973046082320818184536449640540873677000300299064833486210172392252486205834127395857373923835927362313602977001321708290313032300005797663567110637464424242825226764574830839513551829577762309330998744434416099409207042832465951354520367435343709617211954693817377551277659914734926918484050212354835975951041422406852433611190125470810211945195600872424795574859198136917776772152259496969401661656004539204962572940337665595647288033214101976201252488389005584157383213412581746742151282283500005431389017844609131757967892185394286828699641654179450996589908814304142569399573788971180332876302676662099211301723378086524540030520254370287211440515637891469391164817838370866722754251765329383341525759063102392646984115614201314892244381425326572734216164287056291488488477549837577840541545914399657291796369726347078855522510402923760264871367351269714033003866587861785697084825066245349944171449650373718267212903448480822577787026482066919431668637568410557214929692559088135627557998083609874349557059948622114315697258167415668609692188211901056336140415602045015347990495533993255930680252597242604738931470450653958309430852384591635807590697089261444792318483049600002263619909649000619029943601419772401075884582570982698627825839856591277986398298225832127247160773576325386183173937366142867334694894741359133479045066712948495006284435117438550386739509628039225687092770417554886065811617502451460992582847360019682959048673103578311103169265012154301972726045777322791406669289124009134079608047037670787224141588379742253099393696317542694991457967654137634426919822460206540013600910325768596030148289490905865310651720418426327950566182098848297374546422931920986236808237972916209805801409626133441131146641774199846256727169049028612640442198389986856155542575867261932437802705633600209593706013546246151546682647370436921131406483059143395637633999886350776552048548149900957230159721748148470287225487721048472649568597219326987213740104781075420499440137372697533038444424855961772753711980783594557408025530883410177071891216321375781472242879107060686414586111805045045123373691646818958913449701336871028292824503890869947845211329412499071849025612789223652945970258274890720134723193363566099038605476854957340936877375556174495941045563427526066231432424175341711355780124211459581857459613282488350460089671137568551708274365329144034359909250721263094108636400415999120988488914878111137493139350345378669013381071977379706604290017424166260140246427389714651858319741171472455466309702604193685272084092174419727586562904416395053826077881572445900786577452081308650033836203726044749500193917059331346628647405817388874402488777563219680835486973579580602326306972328906557408002283077446876848396860104438531747938690795921689323858879194942911047589690771324539379404144050364337583381601678657350796179114627800175636503603580425694245136970805319438913590715577281944621611002889210072248407193041760716290537944427140786403169613452678767809865727600836681922329754397100496276125510472161873816652033647251394956714746750975091724138958758772595808162378136393779523790832548504294513114663329128539119528043294792449318499574954294463603948361858496575393062573258624433003375082631680558724383686280663191387948920838905674402620975777883638772085592879306241706827582945198373866668671441533174740239342993366074390698356094590783152335222438121121022156189555225191562826415764393638390732830167200026248541482280879769537030219669877625164174520009321735377521188834652538278656063354423700966387054299358278791115751568243624302703626720944652669479125940952680675695105483128601270623605548590378263789644071493497337997038266088273648720626785612310128751200217466311033055741405807834835025669320836818822955572221729840360615519320961911718843902883109101619674267469886032733983085085617108533180911124903477261706203630587765568446036458078734773951415654051220112235574351871723857565859797358600703354232517368583957445930474957968893625585703044732304452480774007979765295439695942414672194984778322298864783166390421810254927295169538740888344327593303580289954894706513103731405612312155148936602007948002723821441302845753269203279382319792202328170227242427870320161087725344265279104962457819458903416989582945712854431333404755886770828572350813714904897376824560085722931759717971149596875619243490216832035669985754188435158813239110546529808791874337738930393674764171435033842675614547028323171848614868546694501893179387109769525559000225261662769403594587286959336577439202692731792003806952624875060773664184880107010240169929424904634335645158408809816905578253229438798531139684196468010086693051410238341445024597441314581971684427020437898312873228427777980490535232822811973321709589448405397149014334177910351428208871766804985358047217247023871486780556426955243384135380807473901769637623150843087124093199745577515834490317359684628318984236232969863167481403891068891029162250109143211678762368375933319294482488146230364647419770285323952484921480512067433735549061398931731751912246475035774411986153626381187510734152394007366537389498252574020458524348448449646402568698973704959913942110461409590825429601999912035171577289576743703793800205971293931769243651519887814066776022213777770626523330766384010962297013140885256267200467555022625081717023449496764116621770911391263657004957066873010478194672224241176954664689166362824847673983000719197970869568778072700326105709650625078790465050875452867118430584621272962692649222078982882688044452633293382570361361245634934548085703337152296910960385914904522879362726979874425985224948300108065474270374510850667977743330073346075804794327297755561922127455353476337847292262104200120384528404125868706705826304089822384178417264367536551639772464080354622254069125462570511818116990878555276992022733896149730026639375882010080680704567693200855684270303225264895173105050291993046614711010162178828810255359836671002510541336295650949488149088960802150388541101722737076998820022953865692387695720163332465607291629528891335658235958759922044885068368614200830220764886095415016634943158744400518539031634421288058334589534660855210375978681143537887856835290983328831956964262893891990233675905887738780841910929824502595849411044720624309318842250067527799923582202764189411155745525573605852284583714058309876164498593627688918837797849674251863706889693632824111636392808383435245118627662156792517940780176973923768943736233378117924007994482235018067843452414611055915524566535991148558869276648023765249687674320742746950009220553511063250277640571041154394004846099489879774780798945025293510827833057534027761598807719148304027090486080632132720756131984785090727813798252337609844393968407556906923155557813873459690463409076957819400937257401028246207680240380188361047933227561155961417879777953556183973904515645481199747308878466969489429541994801488287155862758214853142311505113680701459385373647009162030661260262040697977159762947282570317652586334584438310506078439297477159930424423982210405898135661911856982364718164172570548580181161133492725091911407016655332013171376870003574737498443572335992617462374577572437554027990029638824954211532336402719983623732954448885676787810788070671405973896687346708247672454997169040507454106823018407140140977121565009779136337871939492498687074548415878926602184099032999295173032612100068808203013655565082981288999712768691542007184450206855541224630770645970334685240020793156980871914055730919840640351959658798909426260959077277434577644317694955645301847873721964522094775517607673556798142778604247830169947332465819016343110394872191043949649845604475107386208623406190659862025142704914652623474598298841656953939243393198032554038214600475023230937681016674879191261167451617716209035524287232830694418048834443306228684692745430627451591637950960100700291806738385588024226388800336435122601643330891686143255760853828501035314179105733547048868915506220490011838427016335810915528289993470405151233854897373388660870573923692213545652444703769017022932187461214289008829576308893230215105791191517248945172920053432669424703936406081689028377103150784924572183541667485288938183836650892416263805370803109565151429150342552325797559073369880245488446638088008355651320409447879377355418449785136853549916141298477970814985664764411534422232427307938156167286486704980200827543317437421163652067927602681309189647736650301106222756638757799649564508642866886005139131212235341429817583102401463974091142186408213382224585388201620718143743252115836423218189355407029455416561278263176038501421701098157326247590153795036215770175253190768286530795739241501670410293035731072779527131787499612935354699558333026355870035714780851931645744264701449878654589034500713008435494320414078061919108194505286407576956111779316950694667431082209479260963826894957837352123713027543397782591800617343916821589293588989098711391572324868494571476616547172663222178025079982119033003911665374625427888009548270756597355569009998878232973679695180925341290504415993228194225324535448061054495932356708464884089321406102177783135184663501900795210604576860701223215005163876466955198981821952792188164477355770268810976414238445817510401488266928325011169431483595753632491109604046202034060680238551903404462046909688672000504445303328830900855845851796685133237124666177250760621922974203369223805669121726502721370910835827138422747589707784220069864476084979158353232039213271464604443641542313471228219107629327154594773958106617401398269454549050355115361484662185316794887916308514131386436584082815901963257966286449316213572578622853165299445658091591106750495075526171998780956625184339217474476603338045230359608298795241049801489058036631934203274292074027907457956443499351304945480506012157573462080249714092179533711227576131522789833274850236146243988445059489653603537039249891389427183687462371115289653486706970900713102340623244830419183533780380709960155538842808189436600126738618009967016338526791841112235000831947460195581432689909623850752486234685147775813721755409380647241285474151494973096040741979329058935130777464167730717527736420983960883123271655669721192637963069895030058528746712627401973649073165761522709616771958504868743222920608225833067576999832551730064296272736166214639941865007384147816085517616791287153732897409011926857637702061889716608765194652180271249142175695760808254510780858395503361749930580961279684911855018796562192506529248851222692801755843474693708079802264299444056533846208941698688546457541343498650144450335991781454260170650236187061279516118595019309297547657703733091498338048628142064463619391063565265960478105814140844549861503009012191409656255760799680836276047964672048743896012778296243459368043026793436344842180090455079675824620424188657231038328842787521907355467681023595716605494265491287475720609378665775729024763135105993186444888141545358724268700956651539024691560979494891266747628002102713817106960941661295933325800385827507307832411446888145960537119108069253191428338195053096688914059610247184177203585484684730617111248110259671952504600139612135040744715651408820951852234096525471884885470423707337497901717210035256000257678563664891101730896696756383968985057945258719258736272267708250029377358374014379003095553469928898349141273683004234641825849074585040909969624378950909758226513764647414585250227568863835256006561777983891647909702735759290498192793660717093077401248310587085099790337612541062546322371054017629630132876416161350480397362746189498068644974171096499955632485139325455519218726428011363041277388323589558021810680905129243139301145480979592749452500747113786557912950296745120404825435500442636909399434624685224094004658012728914629401452228370740011755104882318433278407423168638610937121534655920027299226702283611822502908616800077172802825103629363479030753258038585257981101008937438558636847283258454520010100887670510717617373705738084850848790906677383563214843871153866459200005563229535059555404278289333641263308823097282829005357663763707714908183678568565758280710935289885883595724245510708776146561650985350975134429264536129103928414946920073673020246757575437363411695074551279779839719217499104100246399306250222127319323094948070092807565545897306488011854146925761387850673896040831004186930006901062218156506347147669362269897050320645875672830943632169212704748402724713474379756762105602262283072472467463459850154301164328185130343372537556575426171776940759466560711750653165233293794988441160091167450365116907119611773082834447063070635172362325041468418467205446242060247682269506199941352164720643807578653515600607684022728190428275181188056999704694382448382722301086876457823450913119514683733909150059924750798682091263122993406618442963245136069820994335548898927466951221119115457616319703490801485100316253229985010390938950999571548278591030835746908489036081620224928981262517797640920651967639418459417327777603702437737273613173623126784740346780308054425490922498148109835535540526614279657147121945495640837177863452376172146314747153574704910734602922528267223059562555814668477416457601445212773750111882315812487919164546655255194574590571628565089871195830374484598441957763714051575916883736974347814907833294907155769351877887980772110691720920678429046662132574744910306795146426164452824434143822233599089089280816031070250828136520080676909016375044060623354635064022768895582469272333017187145318184753046603647968117895744856504657919697263195938511990406822199072382575337496859576480957531205638489226584810865239201384908545267675293034767826066693943625930703697330970251029818279171971305204833779397941863613120207226788884698437205571299214414319482154295787691990588200530806075805507259199391959647701841681884876915631433089356446746960484733156248446095400305122134958166068028286121226681426395698709990613523215486604452181879665132522388828683150686564894275416887807176639030972936860980338251096122384519853542745849298490513625008141422049272298197469110937032768887933871078601604653828907331607980280183720375953751210510117358161325383117977990741059211169525701430239674477546089588923769925009568188587648587294856268604007272227487549589359157352783785519276379050088753875027358365552530017109900466722646501553875501421680182662300916742646260812045371743399796869096827307553163173144452801024699690262917948617410545698569636253182548672986464160450731807793992230483626193011943716677638770873685803671052383265399518245235297254665386764339207097210959530573444516694944635118274279128610039686526677655842483997540671540349059374976219235214109630547796992307009965411028756709861955710453389646180084457178867379614955797389808272805978223579384274867060458909871686689389101833050298546191729006982684161337063568430363412981771773218815891645044616964517754620139599033788255690582555652547982037528995269053728962277459644742675420471497766599640713107213921100355951700145611925045351950852692348635714573960465975680875624221499269975984510948378746536914777381984381029898871684317750143293322561873354286512788154918317275640705515430547225577298986692318589054809513441762671219785981549156925763974784656635166617206112145193129943371661884430995017381396502700295827647258588080916735866271041839496896450364024705763904528633247316407753390569819599068781218886549061237926891273923029586953227635025867495670152089446926948286160274289759192078861813430011530596872757842540232779077626889630805626388793677191761307860994044865270137337074182714086075181710553709941402600595419247875897789609642270058140617078185088001913404241395531445106933632881808337022059680230780150134327957013291145392768509203414098750222847344252047855466098081253987783876152185060289209603013094885509136411750756809187900886743895273839387063367529039834972260677549859174253070637981872660055055589525609269009276390341001014664510957620557847615710197140777313952565036577430512085001798882084710162563981850497642356473517375713993957979490646003294138098490533606159557690308645479698077582734843679225781914920540318325182064066997482379243590710404834713379001933640598193424588123827723135591011974818074694509868109977492688459409281992260815757698709063371312115161878725048086157241425084089790324281317251279222406788438249811599408520682798647451510226483208754115552523312450206096149148530451915503283825820863144335015270088745884868732796190917410020982430991347276416274274397660774539465783119398151785637253653866805758959040233417699732133338480943810825375272325228579517505064845088605854423062709331261149196960230621213477499996212420827899512627261597033130059468386723867995369467130208545013158168575659903095161187525825616304439496494884467829393657354845927622068131730566161822047955125560631902646016008426338048605839567862712386063159610510404845245641520940948846356772811477619909489257492633494014477572061986296556528725830464498889842505529174809938249839007605859526607132050882435273460333970484777582675373311101977348480391549637786521489455218761076277849629287752536613913610237739555791945517632854188512815323357872376754458739136845559218460200246909066239825394846028766754920299943200576932677828359353857734403965621369422203362169790365962928656904356268338840219384181569834474142573043848081750393980982297468344189091427750878430408848700364063488244172769587784191307151637474562005695853545196333701547578036697382195853416649330496513613367212100596803986979790937071860035509366143551373896089333611882666072806183349568659076536517209038459380485721383795885950817148178139475191786414892359031994887566191093820124784281402172002712659854652088489003036285044258288505003432482854303671128712649996969973553058041883643382485845553329165974414657068525931798755316945578620517077194029185724568419918190972764868274900583541764682434523945916849107763190616460228661270030292519224127247554516364504897698071924510757627669741073348371561095372214163521517418711262364106446415147771872945549591611333007679686282534027752801514249605755569987929731808884795411040702502542372239064567050295713375823086369827362252205774244484120207563305830082357973874412658931206935357370166632000211827979017193226135566607132380887007809885897858277461139340636598606156309320107879033980143205225054739017441920008433833734230302707557678449022325582233662083713142575119275453735286002427547252608168864321554319476661484135504131613848998646232230763641001363436950191393006500103858636384877369983195532977615601126865936349195109717488167773358810317222220204278805209097109481045196804248218729712159922048467341013957964412253267890843260004452317649395122399419726202888992463492698406178583163167286824291128983211984770548800426719381197974183794381178197532865325664560562374203110081817760945813747786369794443431766487200533670526814148241225508578260986950012748716637051529548885492817066282692553856718551623170528371000299969584405538550705064270038321718138306626082641093216865614374218926021508558177995338062317373062190854817434407157306136520151119575177201968785920347935789692643228751208334257983696238058551365393856301573432318795689915263337974989768210894433763526370789647796398625108292327915348736234258995841009884090161661379877245493095897603814588236307434352705677730598317082802878200824286531513726315033190845150109652815850189571578268566208349745173107913045674421612300182341051927895697933858301983911879438238575739939936146497666597124939548369945850102771964344716712334685456265184201197050938388236846987406255410245670691526709316799516073017224676745768926265930745378767364003140826097691894542263655935433436366056083257494392948017136155783448862359415519993336337120207574818242494161138147790661465555385023631931736821201510064555336737523003678525522922517699707722340384454907446736546633262544444298645405534590127131656088206793148087539779813229585646464645857196727780803739866037677955851843606487592496139909812468745491402176376877091938969242947751313974810291639923010017699410125367364200874142081151714164762291016867485355790922529624680231812727088805892921555035137080057547111594859558724376508113371860287043074391237323460450428892072375365329507786573611481325544854016984458511798596529054095074098453938194373286449491157441842304826999636423146867986400870735406441781555277500343955843920000268821331872174146087365455053012220542294960305951680821869099229187579882611099737308348603135947560065285676395314452805295702823851963638086981158101117131336447914587236555858287110255368774940666582052503737746686808386429259016086649588565596372506906045458543861925622091530123629821693111801586928176502258098006389409407088297142068232363902474032902886548220573456034481774517210759278929388350236780735932113252586806267205600362019916310070882585901965387838522438466086240373820379807135561725672455856189708305535495067594725863243545404875105891732208627183896933002284882286885506073204970547398088920559452381220442969141882148978170323279456972279698586492514630664134354141485270222795570827189705958068692835750763936132078196688118246698694984054309113583953938937389666397434254618902790050957567437538849837127557751164342424623285734767414599265872504057466402940013484855421445359464707026124590711222656082104161212717543308797397097320781568940829423250237358943713928484179538906442147310758838901085524131039509825869334094481936509076175701356755915211625826750369245765140569051671300718980814330739534173952264958176907349765814507978779687494518793069001787234737348908987147326109199246495380976587416131429830695715880858864147820311706350455443307685989792686416009856141216627749548479746396613417885274979513698387866218866817162902300626514535069528005435267984330959908791860202311495085811519548728473653118483466536822216604411856929186324381221186252396623336515710339438168814412047152991902075922618991108215789992877149978635839981548109923165868169297155775543809550782863913354869785171781429640868838279056123729696232456535024378311652569917420921184713102850824461954559475267392791941715069635211935681675884217127321997722830731711699709990347704277391331382036715171574646977006464313653832880350259426558703726717183677730991784240217542406976147866041188283451604448712464871272095164807434087840854859194215069032418202302264801951963189574882311120263021999809934405729277986999165517250580014982916203596632530153978094148702449973652133166853120570017124164877988767879059310493599978480160361836446632391925795906615163960734318247737418328894119992123764345860796757225407635245197430340332492852033612128043540963850984854952000921865588590886993475883516009667532713634862602514141894875575472748902076382372959868134661086426024039373987280713803506153173906336149052337465750388223039318700386110209123151068315759484583970594716313763164000980852367597572699780171927785704763383326588524196867266436745395254855434312232851308650092337123137485441487148600068538469480014309070901471484026054664128862730875100070566631702395051571596956062251365112257191760885949795216466020878576942826582378485134865889416790972827232639663323216522739553059013190346141007159750430990673024848705588009300678672902926406879826203138453764383752539636082975560795741507997099471468459633703333480470385990577934615282308830358147877066391960840539382492524556663816077973167916148289699212015265066012528859137026788743012419531578831507488145989560844096366220461129715103748967601987313606824883102749707445417532097146377564939724988137895713487749884174424079003781049465566663445116697825258638324950302357209609910400503444065071601914173988168023073136435093562351885800841087769777720128756401465186710808415169804251651870692623616317471810883897808549933250651450914663230176936380323377429959910768906264352979767713531132476769293887044944568773847523441252453755518924923578149286718935544850066139655383220490170290046547283880149001504680486791941874968064247684146323391966515328642500497623599833749431344166333878471958545832362196812101703210192131511105472757672870538629652317383300478504718153654186567495456226353578321437834517012940143391625103764156205672686298070760095132836510135596726962137220607593864094551826077476703636927537391114515967592406021584596038857736727620672931661158069143019386887188244784578196890930670641093514370563168770287088511027095070957837822108341320032750973853724813972797761422798062976812446386178075197044268119013831363880510336793925773988599639910478470582258335736738331845272521279705658623899925740629843045157351861771846396193492584901228807345254252005715374419076150084789657817098384889649445096143373643957702658154360696846559295611392093534701958980995963305581597026466594299264549275910406223624932153744630788763127018421850944669344521492676414250680827659326752298338909125754721563748592026755340713087564383027953994969973995915108866427991543399558488119204423216184921090500216347026509889626927820083761861866143036905368532048535561574232155083508384629416849714044359250209446652168070218505808240904399104805617299917023721712204308079029306373803489638444717494628501038210130278048398977751500690522308908174260953993912553532843475794895633633845681796602673108158868167117101810740111228076381140082076508987733352560118630035297129819176841554713591454466823916878709547739372104720173752235087430507957005397860978194475388003718929404433351927705995878230140622156200738515138837092594141752163691175125627150386186670087444378608731268652630053082207059261316211054679333156332750961660933224277394894178424185502622802487837681650236558269867694793571903390480775576510181322031640710855368521412688711111409404997548603127839626990262597784284287224655101490633983683989182291799673064014937365844629721973447199134867803236690984445331363323997975499771872801557138310158810088383850432789070905375727999027713713292912504046870135773810614065644705090073747424065757218649049003713355213263050025924039390926104792276487289484603847792239865993821736704091913534183574812048364793863296923107119644231119193935103362446376276804915400019758661957859206926374925693609816454406067238641759601897768295083385290306748886818244655434429290931618021829712753853096317862784042718803893111932955142666831548765270105725809269285367810130676580213514337530724469569492964280322536463493535580209063446821740034956980998040654099051998796283567898350193005746356490124637602361126469510700272561597690419660734063312245657140066710873124781264126110186852704120653730121708818715017352649231176845858259342433027685958821500963676493970621503013920875223257022107283980994471489495780088034217054118748837672058448818935605482389340736158529018709348322368431491610008552988539322735029175640709592909922577157757227856903520245681885962132791732887364311265548299030840564946821231597080151393345517135328740639469584217019409360069425961799008756003533175117113617942474543565892651299614027185299590357767519740920811365532704652945476868251514079801684848307023587827479536327859147195979024303357751810069886771659608210489540698901863935677995191207929325697656337048037043906111681568551619667332561238106527840254001627555508655186804244879068952303235639331154887716793419619703560782961307936903418834425065254917114784797179898455966369182188015784306218799929795996639126536165104350905495340813991458264453492543847211629241375586547325893318000086920805299370905102803535470068584056737745148623191395608292477169580027907207464337255443158315705943776109506970182909621026149935195155471948521943473474575109584366998069541187872973122994423395306255904252181927634666612501667545852490956793366439937741159449192100918298652991966806958550059745298527994456796453202033358091962401877891426106152285197829130554291494776735011423914118327420903688640714355161002965917861281833980145154081240362317150445306522928717434622368958919233369867699905760113572652673764028905678007739384149635252944637747146588462681779701300155669284723424854471660613439252204379586709436617542007968746828032328292136755992721301088648536398508833328909735537014608917928470899167110650411389357885692678515765773928554593525170592540264038692114886576969944215805547682319002708420483448610415808082395930084765081227820558008089081759538063531289712827282097779939476661227672686338059577282618999811397806887711306236046950644703166030118386226475106035011041933555491159364970806599999854027892955783382244086925351558892639618085445331643880752206100979310823442036628373595645050626043929588639516648123334904780633043055528387890445283331507509944284537010694474061559968022804478929015580849554897052679292147986040268653785929100847644866908213332617962004920939318376779557311981205486734222352547860465034685968823537778775186151505062710403339987749715363194498588879338979995116195744932319433748041866544822399819325797283883643208277430474835389598274369857250051613980062897102243763301153108746813043794778219222854069577293798422911866808873802410229126014901985918751177179879053108015621271641159286761128038884771376642195839530482492519911632545499165113749704865447698498533642567147537519858443421736341784345980750415812672455685023234392258461296826228646714779498690474507662043834599268947674689830904065707475353678464713313857251414866759285824478520560966634750342628814694959042910468073582096050166480834127567684786226530860172542587990384078280750757429503093429653556223829687506969526279348228373742514319231323062016780287840695636825297302157516763448676213878974259026817926155914047500002949131634174195930401272169406579804033435637205578343992622359565167069709041889240627722120529783179775804885476281579670619465494770776179635118797934272691803245352055085977587000245925780159610822428273729328762403709630428962431815398294901297120674473294929499525085313907922574908902563803664119485109206705750390894848904602485130099338108784633218986514612811123788135704857624816585461297348087722110371691014566660400344421196677274211194302575678434186461996678328876709257931504863921246445895087809270454729367719604474029613705826683659293086409946134003655061262205244042716399136477501208653168833860437022699996353917085662673590109629958664724213763172679590710064119938516076272383687801619808334831600419925773969346118039532806771119270571834093388914916523832657922843036542520210791673127636327918759451154485065230394596757146019409236481190345947397946491785682064481903391065754190242841740593485928291447717621397261733118371904859907243089505202190563499616580605083086746325089669269654091362622748788596034493338866672282463197635412768130937700243903412174416776812794892890034637383862332132985706907634752293587513986778900401029441653714626449361971817997227814462180985309589836426402861276135967485784478613491225189694062736156510524018168681468178042419752464067304400635595339062033806759080940266940120281724457834385721462561290386038958247334754001214111412956815033181455550630800909733588889897174018808132560783285226963991869352914235217423292180519637602848883971050447124542206224083706236658142334268019132565047419307129791204741128034128710654291642153608627883312052285229269523759695788016473282313186226258397783045090833205823391084444349738785378493934460446017202644308154703858444877376361253691112054070674018257692723949151650167981212003555232972954675058751381764569041221121894604240431588647042672600142240202945966213371917975609437643951373648639779165230114699954018261067820228612804270762059425912721968451247922282416301150198166732872989718293537072804387976800559483926917193349524573617329595536909163955500008397627987848551738165996259598425600502956366214677701671106626865937443127583004008865107375481714399896596339986269379934121468868403328849538135109223305989002336325849051365886749796321002667878667323844040722358302389366356151901257903724696042083168961143341032565520283635309539789072390156323041400845790928802329507252233076174795887100247886039412671977254286803123866317700907056880866423477400996973928336329432237471932818552221230444919407157979364511645993466145458508418007830225195630405474462072781688544245003831357134977843043602876587970551164664945049118130533653869709717687517340123042838625548990106261577266552927105868906079579159743125962914313172637171312696256189467939093835880346918418830802977495351535687845119010689996977810734943436597166296090631848053345940657231480957238027938406868703100244606661456769550006287301577736532313286451188293310817094759715417801018857384533348990347400843860296821280580280097954855449687431438166715274163683601370247699281819434380075321770715098119403518843326017651202168238290738014395377194430954411239582977188185970692576138007927941904488874767559426356561721816039687283734341272826200229362351531570467365439319826249664564507428122027123589635166149239032811947958063112164745534728101697605658525881904645107927309476508632774319563272250542802007053520791122800338680506546756166452440848551747455271589310542269495067384193302397587494304854689252600946346586677401291724480822334388861419363089706483426966220920987778410087859344810865137694708530971848474399609349988357316595402766487519733450382416083362331146896596555447826856195711915418885869763473778951713280244882623905398709756939743771802667632293811323312204024287607458193112845170618012802397283819395989345858743517025266259985145795650312924678609824507955089773099572745629923379992210120015205325935136565954970197042667180077014899095949907330880815983387123697045090310173809836176521498042776165209225586401594272233136516560973455234485199852873098462323321577772056408693868177684344773769049263019450878180079996582458920787048093224886875275594843510080885531649902316955245886512119996605652181647571265638623356096451136743403628119918488922031521614039740327312853952413118513861091708301074137822287321874690552901869068240561177678625314514753078263528830663730506488199320619886890152209481686266137007026783480052476306551860856774781578532236774382201181411608537037783078366934406559083469150406600833164878801161185392239551827147203512863385402841651597715630233808661135119738422956057142599594646501331916365286146489858192920072429090797834933199616037426050802737489446541782279188800902240072485245990190839553908718404940827914645539321028824109814890660349236423778929031342977590631465982297784233512317362125568542408222033980634243406700245137626069807979300558803518659094300197980712057424266991781500078309879775700286049358832998238664108408262794579453374024963823765974579621801621683163628713994020255603350226612198745221517740317850037241313794727278765210353766602228351770133899294399496218077499676244425776786289521431048669676196732568337143647949429207978186483746219113135452367338571437495520403334050394280001512967471488947489823438303975787891670612614651669829386413508846538980814153840364240797707855813207652723054331196016566671116682187052744993943394363524876432046173833801126107204367799516426103618716660515895442161962426806682498016165065159219138233299073445797370319868731302227097299096048964786311007125848112400356893424835877945394259739554302635781482272231572614331694109965396210264503883571810919929117275453795346868659993032100397092498181968393020153472883682089739670186038747660597404413687453128435939320539480777078443505166228778274210024166047595689506609650918916750837163491622222177934790986613297176967172058327263872026658539815360686534909064152746775645637341035848418475486202183285397460024536400883123169567288722422506114894113873069273895169776371357956978912820959470387649994022699059220709941201216888178069037553033717761374143590994495951578973498027449688239311917640430306126829169007490715185986933105968887154320259113077644174720219820401748673952706823365939745202154421259084996594005829330896722424125595919990641562883588670351277978055412880270916569715843889092506318523807465987842465747392500084771540687752628189592426179150725875955621338221088309102911265155511047559193566547216490386844834575617181023829862648689672886579043085406959870048080580678540971962486482420571501958997733102481755676308032661673955812652684437599664532869028982297268537070860477371498272530638916714882789120155058274608089503034357492773917336293715797856804601433572940731932783373140206713341700366923490180923860832454112333606403568878700771961905450687527206716024505832991429584313790536545724927948615237492961501063830298675183626123330011345957537577619042238190780826888084641087063614662738373633012236590102543994287623414173063995725019386116469976019521504176536038009484135006706630988236633394489119440047466720237068260993446063357741263512593641047561233020582383007355214704475690371718094567115871360640214209627212198829458292464675658129347904164885808206378604924018155753832493075465272657169677986382604751870169221789251792362296481359923638605761015506633201511529584693146848464631272982338300629651165783781675123788893323478752491144708311902703488049449973646019897875413003661218120186506879670610423566825080666685986889933012772752225726222619938881652824454408128962965394629767414107600431133982525913441136087651170053239982843218377579966477605757654529376880573959991403207895217411947799062975235847456369785579485099812748012020134356690386682105442232277141342901998380242468284118722476877282080616857428963442318388047149875011902326636557552551483541252205147975015748680949497853212079481462062882594544788335274602686550647997886452997148653615123624373962453871144756091140450276533150674950515638855880179205456388708187101696409848551646611721605745495354609682853789521090908992433953768491381836032699871984778323083507099047031714170270718281250510838300299827925859278320025257990672367288212302238164823023832612814147498925504575851705689973101632649584225660882004357742567155673361332348734965172501690657054697036496637585831911043484325783104986534872999380229201796802179369170945893676387733891924965976096707873222211386106324202737087367977718932015962305175486547328796043885162795576421594991309916869405404084712628934372689727537464052153745017194670273935673602186011939270663521180852895573310271470275633183965387815272524793820336634172015115423355310056126242272238849440654315148814876944234132554613953190956355412861429657868880950123786339978456307296131876008936488531765144969076702155983480103366182491485777066691502383848921013523634416482531841710930404848183433584369723372175053418490992316447574336890651693853055748217853402009619168881745974000180764827635678710196195329479036406981576816809908525217422640369042932834562931358616093121733551907181842288842307694019823176129691509523712969081961805301936784358985583042303011191557009532328916227430037774849537661316104419639796823735514616662332054880633890327704626731473475857258863367614462106343717975987648763390683083274330545798291668795910504149588858638838450722674702635458778960945492559920018969103757508997168190195629182744835362868635215798827655887280655267710235375875740855142606379835181120899216615876209508349261360165023456167296525597799507847717044687032588565024631500502635151659944820690196857952467976365760534103557304635594360248674659863334461116186833650679415866004433562712697056101964797835557857140832502071431535612319646279694477170025605846423062272627305883975984406676911530704988808760494440066978111972974154132429789299786379720649071639166737835568487184211499263640141806608497128492832608426329398985174861494168385504325570920963164779780752602851305742911298361071000417447607645117131918459872473166205560560965962281962364289663775297213599012189937100487568103563903280979575305922653394611478841119910500606674133149210342313947611694957307864821749419943317877352613401118733052361063508640351792615647440103438943904148547548798636778315308604981893334723193283220266165182101691744655120265243829288227696584824299054349748167008273879813953582219929477814916413575962813293730386900118406695027273131744729573302706507475545196400292681361659232025495142265998235738315400032894575173041300683604083594176009480386718231913704114175223816624572579048120993293745926143315631573124993324035498724574675320666900351731501508768320048672512402763101419777248077827985070880542469618561275921735385864020904195010120492037423136648328190930131644923420942226016767857126321948404127127520538253403807368991307550537665398712714609893989305212933599889696717396909353197861702356795616649839836417536740979593614048631675067572528588635682937317908893371812331261541117458373651071174543749075448459557136115290477279477865522914771746816785760142634525829124591042433222116342754585684740900780814968910996346125246575581896453007471481097030292729519163593975265126179569491280776549132327760070317595121798177450176519030153951487161415003322874854318012548067733282320837978477839236659028771492769021282463734774661842219579108032749776971414772378745813171233047101852833375716528648837007063183322193639567438907051917743566206783614880995884326380028435157806887353161450885009494660939375209598267822703974627326468630256814538605928730828151438512514900526468934369931434674533966811536934627394318668419556827633296068849099183768982465209224979026204002289320864180261132852109796515754041025235514060307621437359296524312137325015284880212521590106192935183025805347668914292766901764008434915788718397761256678395109853125884064015118687305155008965157231694628486168108741314883445044510005621392172989745575554533250382387777763927429997797818102159691391622569831215647581097113321692028114651705780215254026629993679870912216398515034628404782058802098678464882873327191521056815741922151416736891724574544682355929301860080897494060652601021013680429515611534824845020325120166771847084204787609890429808761696250819418261290752190357903667818093268142572046960071695354708510450865316042402015726886660571413959652643303416658291148554761973758530931055437016825947126157943622424289208603529791998957113832146544285989698432434942788981407509821396705269067745670939957761557920824714771067761075626561735929164785905045392711156637513450181442596358568488123744026335724863432704132538631209526951215859831111187764122751427838258356181446154913662136446568350849839980068074123932393019886084447188797136026909161541015653919331120756121215336807108267759663685741010527559609393998490998814463175496043974654498043908840701733728585373758931797067284669278832244544201843454921617026435242666947679615147001344768274885155310083878481244194583297820456533841719329953121226942896092872354814164278735007976469421048380033416259369370692336108256803978772014795053259079351250846763648547035834973852683395147659498035984311801107878174838685729694941689417704126403738516066555207194133664243110646440473767909715353929623998303797214462884528362490564434960341587071056114758125191693614508052985044099200887526824284167442601475472933418274819461079700330311958980068402915734520143790632880253584077531667890040693943398230669022258759218739125876923391981491390485128876784529550042140343423799085755332003878525172480123276846718004686535862775364230123150546173772646654800921066593776020638419021689358316887836264357215302463911231762871570849121548502135627640691714900780399003924937739339834832924422593929123798451839493858924372334310168787501722134557411442593356567012455217728593271727137194283172238809871467187234290602600052828096942495778483371826848581164962908573890005265642206273864115043316483557758549832015072511666198757387527768800358464517093051831447397527740603406536290809049737956216607574550595372806796487825747433556280661077781000478785456133027913697185202023970511132969652026676477425496084430392973538815282377463193297101728971817596605993641173187727317736463230930057143936625284516963952075147396008078121427239761702134343863927705942433010664904679768813458107888171572060435469826580829741128390312510973089848056517083269523900339364868257452805889682328735034170746740712536208768101330356640842968987965979318581768599072820405104447084579851385425774018343855433645231883387214952497248649760874157870560081278110718506462027312295757306368008315982534783748874516444392515792029162561359800300561100746166548711380238773202799186190994405206179918553005670068391675963687720712108241442350268835249129184857469350828788500475555312488596549849770048783816212778118833791046877242430615290414730391445192322191028411845591336493880811261325201881980124350321476233205378405748999481640624810069358844368564066021492978887744699571622513903328915867798728828236222493035039925283155399765897446520856385798429841349471758800089168687100295921987793724606547351902380539423873988975738719212859841760433056479339055323153789395280882397847081415671853158016318952032975921763156149496682002691820864353035240271201140082601106433741546439522188750948626740253543762117568436614964115978242563566873702229092455916809565712568748931617765980531701485548385818556567961666368787251225310652319163176900396601824101283965640147166472841624916406686569312463622829411334820386172912745919496292529255463327158459235489861751278415423962835487541037793691873520291263857025994695996588227932199644658737612597615478922266887778459630890403191104560502819341719368935978567000239797383500305628971973752095616323930903509448296050373079421471123097534970392023768966245148683425758699519640918985428514297582796087913014694182187315784034365439574913829898627663622184658817111375679253425533864091374810303745220126636246485906087224740630198140228640892585448681258490978973120519480144160148212343003171241932501155640717549009857172607397254239014932405165714493021573690076877376750269870984909147503539261985635165606017398496512545915316728350015300197032223564529649497642334184422879220893090280568818101701228229937901585372753533208063253796570675762879587795505416515747818289754585097257354780628913138121303762742769096449391042785273103377234233885391294515736199375271292557669027536266727775253878136918312633808193742858385234161902018963992515758336143468670826272935894284855065338259318011472259220291003158843153660973800497783554973021357804151154579923226835994344707307493549062056139863981091960429084525616730870496974336280403304318659787297164281187182082873293319170074924125535392245330282353932566912070504369611834349796444220461293142917577688931618054048892164652734490722139405195419272254538302780764826952002499037955089877562894425784333627667210104047772187665776808760298451283418780744674113305883533060575234794519848470892051190296566349091904227924416226460373383806147263254641566311693725449674462702678214666740247190360533705778580407589545992896243365487697110967561330245230017890565182864487215735387715310184421068083321255189306740737468848086518808804739522962336375380366889293197760605328310224133842438238899491023939341500106929293002267910957486387365566803828088005333843141181394399876646498576096408847536431726643133633465885506979411166475561810604407191731688046064268466140891845441129210706717235113995513692645016081000347058688037589706226587030092705166241049390657226145383527988539438264687358505690149379933402471596224401900827561542000406736009048731416265828675430897400750507117669285652012772266133685372488686676429441280676814087236184743008207234885309492584302992885966522218527164287765471167859414686470749243872648156271798582295568007382990144874135221629721810027194568727110728371311321486540229627735710786123648600779029264237707571761773785075672270942764703332497775846236240866785709555394146799022343424098785048702375458188798882236218948985669969499116019547562026988734730425859718835425387976996358954887900065572895815761425883596752859318275490899420208454392682794023302559503371667807694269867068742284012411160253396526648627039658983398240697215580328182564991304974781996109925634719419060406948778501706769498058083778248762264054435363788618938341470003835546836387822046125019306011750989515824960509488069301970192036161329977528716613826801029131511582738405849603024209121936040046427691682991225964710520207473536941699683854897016561014822320782148446533118270034943672136052309491590403424515086398022363042721229735024097491975236953591271856872013486377161240879749184167454100911677855927945255995517483473876573752386105582861020014404729984462363761239073525770874108325784903438638804822312177858177143118944313092048350521612435136388651046308092876426345993135586506443414853129801873451199547255190269953364823941128798898035157348775149559545387469142790648080398488727133367984155282991732651657905530011396322447185937328226183377146121019955935709410516340224479769916226905943854594848478763304211953641206350781339435782138478872431489102699651919462883298594029412658320998524983696805385089866121374320612914704113274500760299824908254044901460655632108154353617662591785333690562926274164076726770810719507590103137008050840896437157403421363369474326045099583970844868367099039258032162205181625951206971370751457892104939335937356481189427197050102166833569919611051270755169169669295687344559843729537053988917644437357774065496836909908332547083157558593696873802365790186622574782591273332415973044529221386158504687210181176495111841206431146372251120218941213328485579668968810648259956103296968742333786967238042679590598432257772813976052126288666293145279459195413850600384397869302596845276537138407801532673707690618150817270803004386364843372562061313104462681460664497000855897094815748420797947149455437469355369458600112782403776790659062229302574337976555417374090003747134788157098458225890558008177138597520841803902832958030214216539439960214410897294023917285851325518305623160665482911792982471688794130490780937567161834920971091311522528788298858174796336248111389845312466478939899989038344105777102885361720769409879221586651269734040819479800334235058641173077703875493190870947796159622799431508756006385562768373262145000050561386976433183825909667985756298334432737844104103690810965938302673360869167610354795544659201010613937420365023769565665190295211481232161206044483495812545290909263648501757729440371348251816205128743341057235757625985036791201600016496950922961564735794133632100989226999966012909074148811764192089979656590597172126030296073775706155361139909428459628240262478681707307255056978618034119135430556981950641584158035496995083566028301199642873866330088047183023438197350602005976997547372119044183191029495817670127882421300799427194346071301111132992130493885090842767148345140289452876872146199497478840698941763671054481522302178976106601011244594007757401238749149839032875907167008125908173801817194607621546849851556590585064533305353530574640025995741098699605698424568765608752081072250544982492587288178416347263812941227130552604971837462377143519583558169391005641324230525031145299265317288117381555154575344378065899216298168961659745433426618845125553784714214870480548170243914787963167524341519439878095154243335043770857027360921125520752875381872952792999734545187389252759171354683166739831626740272597578418170793729823505056405676834786265608849289724106780376314579792788672333467084590330572614705424334345177506148859525526754586057411579987830105199912074248452478181978336699371235719504255980545338652877537433954079307572961629017322605912212791284301053890351994999037021071454418316643513444050806954387654158356701955958060412187818257767252844098264325208679338497467592766752444285464681530460756462855035692034611027369036563313720480572313314910621008725025294429740486216727020475083395383998859985945032256187455607961269043314512398727866439772665117439182925518922912139692640596818313211159947411820418124656269545066523257255144452065418835461885073543560866667907365188433182722760280262148375476465169278118337353959236785329935747884902021344225954384905846348764359595212900611815117888969442403851374170231742355991986998484732091030758726864057314584549396101257087534751928589588913814777747758527545429261394949358336208425941695861498442036215139936711731944805633218302344436878214792363476172661839185821446472188112490219680343733138712239283693949749060907651299210626768117662572025225213760719386800063320418175531876659429697083584747212168602529762920120048201096140864050252588659579802045975752230309565604579780484613128424937033726798349908406759931487238490894740710665255683694500701289937921829059626847536458645461426753780992954100686814022029592494072425629598747142908272802667094904243942336335666123504933358747497010403846277026920958479981496667959458456835668431752449454248703581935794058877855802242076136493236295033242938378416868314038121360571198876615987363919767952565161694284852271070265620266018606081153166578074684705427048072242010408162205525522049301515345249505299997208278690693106311039035927941855850891819127746717101900877660664930044263279495838739382797108265142550352798729761349572035484646639822098720538664288806262666513035715726154467762283042963433916986053432068886453192235656373144104040384342107877751484381338249425101998893161048616648940749942040591988599378905883474570326363455103190161807806997434648727215759285892569906589710923572996534461322253100957922963822857604127402173470077849349499391715193082451072315213084852742681355676699383638301082761210136169828643697147975516985279712808024194176074067192859708692537002421798950233013406869482429854517089636190771282138924442382293155980564285853701413828783889901290575044843061337994804204713510016738079494415506786586536487667729955232950197356376229001527307845875150803816868920656954895294212728812893706875425053340237626961195477661784683916022370502610265332742772938444013869442892947705463875288450761603257676692523030460338591471445885355806980333662011851093229701164871631669685349541795668037343477235939690795766418578988497948889222426634418058653434275338601506226473868301939074086597884716056582869319216278960656692729495891211778625500483164779699393133986610649975670878185574412855707449370038947032514032588479933070196225500156353526252744677256265132782054588930862792270076426386799232211555527444270293638914390278119048961704923012632962423028978004823920696573664196296091138998793703935709321927863958895843053970067229710419583026607430849844747723962605779155696234035253466844620505966090108743265611193165946868945820026967373771625548505847210115427372918580875625576431048418526748023788907433499050154365380656005598132395204953464914269857926145427689405218908856505036590938312480026998497370966296796680301040183214528546028348512177800304720721562030072791041494284491014617334467303527298057350723878687449701042647558761537461560004530389324980656821516870881126154669762774041325596329807260069359008607731280337124725250628192833762855776723275390780196618108672039775913484366325215597870339459196497773054556602889167724335666392642889742242445528093016273282485896468542244839755307685122498101715858501358105942444778866091555089488236824874643895035289609239237881459685096433566020312481034360999721954358989947569650519687123943537358661203629246777658632475546885217712286064540879490205912991558551939903554623574132363757471418443140472109051100027782408877588367977834193718507511672926880913266765096346823468687214386905097475982545318350672046036064212384096866166243598359178493549787732651474771097865714103720693158266337248016616100976934292627477724104713200229898530791102989849762731544041453903360597409880965267038658961089439591064452515029834198581591087783315048598712343915590098240998355933847648080754948877268041770491863809847724517977839042220441397271261713142323099365066012822895910523713532978871867359675480409985425576111969578014275321345874484852227347567739186095439645549315622101338612859456514571954078548291437632269032520844144438399318941744157023645778499956423417991129918208249387932550762114005840200869449358406217527567094078832676030151185115381478869030230534642374492905348287827564219357783056464742588689055705908326353114491689104452690250612357317302162564894628837315637798337757562662910021178669709429511335523683405107940599857240337875179865611317660560595335873086191572970282799061407304875803719487704673999256745241428025529647094565075651090540528793927411932456421297349662201318595824688801568302450489427553717916205322799291271652440141686326837735700560292792451880460988983974767195859618988370762763713390000393155219589919982259611808378066428568708121622198170604757014365254439481648474577678547037476142021631789556697449077653563435303690677583480863928504644019318421675455259992348678216660952492985063637791228083637909309091231743937139417204152013941806087254278301826198771791295843615137956749166603741341809431890163890092517598626825365105319719187155169571947022819636621476364403054765369861165765685847703857530347123640029399660647346545616727287849478479634503380993631731406838480837242821811136559010629393823538833117789670897085619993990948621708179855967864519610090285185306244648974240568761154860360234874799154670873181975379528727589822603580983169927450468302955194074469160104238230398130376328987968323940987567266005957377437800607294982362116827296514432996382146572267794875681800909971935435573064350180846881503092381887978624854988399705663984365673266378448433669950997660498060865421115245344483078089112953430624051419488478102916227171340639593916846760764455250139342192444592285747949991919097591596314931911871345380234138391998882641695896641844424058305463127044822043212280460694295260990123382476195923000877882214562321632627236972973154526925828784531198172423695100923402612917586248945914448323164379361641164682726807757061434177852014214014274863667922485726317008449255453146133216997953133303705861985535707037263727073050694111245981615339796802813221334883469423092105076269228084246714118879758382013073011225389570984507137385407410204202189742535578086188301437613112187250749788812404688104148721977508874936245850673972674174814617765492599086478409344890404993248166002592786670865797217105161188801685287013418618969340292819749119063707424677982645784680934381704747415995608761782311837407640791008396051223766545629954134017074219014506557403653504269586719099918519790486428756270430662676163936110374737820187405566771233490822546058113364256406154683170858528117368810281208528841186953384467654230606655088916663920097569094771072812430492485201769879697559057791970049545324521568196351670999735949568820136263285573879364589355206484929323400724642873961089272794986886807544361397592379179914806803005750630490175303348762682132560450856337027318153936652820366035698575099908709613407363483254830754049766931911509597300807687534422292338788274828328353662554529081652326624422720751121820185454900404293340733537245589786797946407658975547029906145044612835939970586249330240413455915835229414163538595922992147216021690838718079703090912911272901387579888235042905112854064229421351713132380981941294858503429046402706368635162323901154996721690154052357848986879726097711325810311705154399290181814402791266816296897156655471821461547274514651294441254319402977742298404049980142725150561214211661419754634446964127032095949639058780449859547338789044563075398741866559302445719758541528096330241930009892129851506711681015390665961474139444523058127203686691491431758384455956805673332851796765315647038869757093678452983749679072156104756237993554353158513777407222199919644011158723651028516079797510934282068754327942715099744819578071039463072375166318530526455742846997316228472771798513199343711728283191587178169764474713525119150356301300072613364152727441636307729031007390918137508649759665706393480480208456717737591763561400674905667136206786662662402412716966766014463112402532417824563304365073549672934699354943275443762272116189368644752856503694244955101363917678932766212307187261778043832090347545385164082651539526255520735600631682162678224303791128793395010669298425936542261783390828617839020835457508980357879539279394432985963718710646444860225630724132959843695784376183354530600638215743410155888552933893238799507060069287853283315272559264117729376638772303287987087995058242358915400434290573602610185853850198805399649928688610783593970129760654750042223105110184221343698115836589690721518792716607775867951381651936016727697266359554985689314705649868304584602771072866796295191151580624938316198223972034771107546018905706607244404555397806639355905315198120617023534786348572616692041991586509255177176827504941928283886009782893264354339710644568182326688398660301477984250841341025164118754380360267370476108810567134972914147689499604307436636681626931581921473685425456363598397677883939254502288282152979540391320979382554168441762905308176744432063644466239049649595223752758201294784116132041524282285190294200145667748589812799897607260653161660369709091050740473183821477542701860138881883045891366743933754832758695265610942662916761462037339380158966335367954457953862658805985826303681971844543956494951944790203152491344480496770208760769406723146503466813313964293890794453002280894114618978730324267710674650289828413276752368782511487731327904314719428946058372061140246056691043133072183089523189359047092607187683962671799236566129070960746800744072297436172753908706792601124576516970261922437633072601711150642178208283355300193184347376092044321246405676359124884293982151072299942767413969319148996513064006192855133743156255706440625775247007734754038465893575589943859888531036587923181448104779841354303937179871949129232632440623248796326981949424060573891086244849831031357802902209014487215095754965517467175205510637306127531387998303168442136541066915171536778022681472507451833943040542971525726297634954853462553886227287163829313064452633506924451621052492565998519667840017123232993350248679585456739010527743058028113523512408462593489000695462401663695759022721922469861958613366974419931473700076481339404534881531827995691673864955645409561304782617980129255434847439673899283293830254141777139238838605463452461245081507588575233860963988740599134599536876911452025814791597218585445686952687165381567781166772872162986073271297986172132678865338792139416707617742835224413221825155296326506174860403192361171652016457302320442507937937512384355096835535988878162784188145346328093096320309039965451187937509620822145916170499534471053979405421220243897583401515962948254614567086306124906863067511603079537738789716816773647496780732910362327407055100319908986575262243335664496632708517617845227670406118741627282203291809146520631927833328488075972009007344729621226139051707750168816060857951681698467802405771426047359598018485875638559851691195491201267466085784744330085846541807634994342303075373019139812784687409043908526696009823113980774607221942840617261543393920340352624452833347464706896982527632033704519385250173196711673175143815445807563378356373257354467230376542770379422373676846275114721415270583022752718877699738688013573552419763674949467695427388766589278699622951661087837246210136969454583729019504298232614976560132417766053202715410043957478089756674971251660688121497299355612540625992018585469638432931230415703389337965843180920805018914789416445451320892389703372865075623526795826247942329974797795380339589797131013174330414448755337423285034574985238841561396179521954093968503705965650631235755632060686499631668564679991144873706850268385529184612822478677150913794589082835807685277994120400682306274583552107288258851799794684781368208880170068010831329609766960783791203088552721573247108148078636690073321535363642871858010719614981019859698148269519040026878939008153541002302414868544601624120524749764844030058627176955905893380754759600069299562353695941511723688637832653392287256275263472462288807389928064105078462277809577185418994450484766180133183714761594829258758050001606063548184602409630208575540977425729184999132868228050427640319685335223120460199225231404622906693840429456086077179386962295529455922148168180156605123442550326001036270154579860449028478523822893138816967474391474306678261245455393107966656910859996425023166926058493386584096904142494300602011064767112373776679251151838435129168000530599510367985312704264982923233474488076733716803330804426343766740362387638093933107167072113181466227376582264754363434679493836901649076571974113469355026128578119494430468192826434992838526731216213190223116743457813802644355022851370659762694405256014546604437894251366496765940809212745636943271205249299728744143064686221866330436515454331753389055341269879543568771901818601876638922467520005172673530770390738743398076104600391709339447515723809084979921789543101767966940878180569100523020833465540854150304725273129553891753574283672432149835688336872689247933176906875657610834683650336628970884582598910885031652385895979811082829802846950168870063037531621259902358548774431367954009684687847943720976196739414788416646169211058331291368851625527615181980050112423945808090243062670595147275631668240013472923832251959017984110307404775369488955371572928722684811312197163102340427038710739702898479200897472413324442790064303115936024458853759722812455571942986228286121400779779367800480688265596222594986983340059619447043426013535900977201766101860013875705836829303083627287169182478471678626451310716596124377536598265776854814683525109227036680589856223100917192308688107539981551276025218344214146201824824127290785087865029793432225158479118540811459481195562256822943517389279408637773242692757325425680061764948749805040090840251599476758223978882089927897458505216777030167215800131092102736473510468286241179231699693831130727514038548080045742119277844823294848396510545013839078683349824718146617759312111488691863667291508661186020972303288434246765325769659451462194964798472930188471451704777245580589643258431776431746314012262446604332917934552814838044257090443223792274624068685048089328915129738276210369969827398226916450022423213566326830701565280986943265875508062434363554164987129653024356107354554568687396337484900494865101526756005068171742418465906393266026621832163683747830186292977494119645030977424374807337158863489271717373281766323638919330644347960627630743152522179834826159681636408942308337770495164761580521734020333340315581137319885103409288672897411514614654169338157858214240774865089312904211637458517874087914865602754110478226364148202271015120425181048547843577929251051715946303460828842255129781629604222943135147551257884298996062611694482099867455014184445182321648206819472829231482974245966508645734575839605144751699651167225197990165105489896996985655586946989218720733347128151356292987307334358274395159015574798439461142132602768754458903528133717103425545114274349243930847277651598699809212219173351798824666750367277952705478550312219927859086523560567718281409985428890269304613818453791169778890894429886434358289270104833123004458427593888874468726319415991698537268799306677048983115579113215609378849775448060349152231790566551326122989115944495182037539686773465369159776615872680353616455777462921678409211771137773732063359188627291599824856694449018923650970962370741954817564906195279618466945304520527201474098629967816189758511124641817607834278053474514618526841977881795324023545833750116963646465964750634757549706858100864013339228456336175251824050061987022217050312947651713141067082322662160411470760031749152255331912138422406581449268092978815452071177880010922852364522428894047097846189880138996290757100062323298567883204265099735960303450442925969974739886058437074203753518509459863667748966562939232220070300615993364592268374974803642368850316360342056675531938554815288178525199264813978490318391279892027989995939485137376544664638676806927972009588839101926184660063355291907571578619971667799524114593973803409366062972060772291329981686714240717504746064417729367855895422750165337969739473361086685538138864385408973358443340382798968159081502844443909832612402544053974560089974339524642851918803421833018440989547559083224618669731412430016884646366412508331679723493595945410658410828957394768062213868736209547140923394698542137737830360767201881819268199008574566124283209142007040414836161130686457868813021249584963852800838859535911111133135900471034691228829979605545783953178418522202118107851835134922495264741645130404464978651215408136592678396384537699513479749663485790626402033411714914564823655025859247276078251175378223451339794278902361241869475977251175358601784993350629313892817363788161697460266178796307567422525236741106841250003162851554197238943311094016247647253849213353287051377122493467328717424864047320902726714419140429882470069897299400358829381139043498742085429262363459442398904876139257127377842590875699775777768361271838928933001590045451861756750723154696795881510617388630290151577716928137870156046210977105386317109865293361482433234663777818870496574052784880918601879964738628129183497803376035083201684594644393475179506811759592140096815871971433111243822604433023071182820950257411411691429165710346927266076527582448691168398227459594181431907220296708971002506020420781482281441677807390266234015617829824899402962068431514601533060246899017768541194242791344068402595293356378702683977337740503113004208692721166975283161731217989022743739644147808838900235418569677054338402143532796794433672761884068956572346989050747356726479860054202478307979600204946895793177484947552524891986802846647871627700949366312415964901515822867523051041247391356509684751129554496776706137358422836035219032521118772678128837204329439176846503901028268742967752329367074731856220990905096708832631016451318783110162720354792300872002270690518706962424488092991948810787380492447547494486555384907123393297389527548602542795044826570846004212598957652321935823983084407543630856542244029816801947665667679869554795266454584383968212905623864117086495235784051674354167831184126811035560091960647004168479185348419214668505371957127233846188802739673279309260862316254493968906811845952713178266036203509807405803516057753434570566229676325975213827635479694582969509153863281094846067825245917353843605738176240881649418513683027947702176116086369699128277994306299111237480054966192799094959546427503097833680943813661376133223984931773578861404356289562922295907445413000041272982434643271028640242277617448600568023805285804022954042813021373051829900050769816229754919350442417470991135678060591229427106613082953489842420826156651247428603664783175713270065732831503725834315528941448297382479119233956372765705394970900942184085594339701270352610038657253474103339722329136752082667332690310284462556300750607475104387245982633897210396704398478935471278882182190413432194618071262165699520207813510810092912380306232365570504785841077227957741516137504678675987231204813703037504878043617446776517818075852426096041398312542512905529674300745004792659449706411326404768522038484650119730550869899466896799176327198579576263805231878088461914300712784794837029362409453661158368000372261192167540248741448991933602236566412915312754638861991163803165158303256001270911624757377619094784419628865658859745661955674998682944436550026361490996263969794390450250265157827931542286285942970811953294196135942084407762952124055500338331711669067409503681211319697777351551834257163661057817700194442932305257501089439079073888929621374431596174741935857977320125038365370780129934332493972391367728992080454409137435148984932242157205919583546532016246530045806101445135792418529145655857593110491792985120172254513347272822152161530245524496986832432921814936545124197416667431322038158077970136721299488506771112736877766400324175210720616926290405688806335483257559783017685360737803598870933898708024730855932757167525534624286911394952153803379721015192570382473283746351149964021949629073247361118622148175538043297500425706020334814271674231315029629933705656469810584778164230188058375872678658051237435814446265017941522828277453402597330850224200806518334853545873084327285591165121764224354603153661694134712561701100653516927410759962451220691362443293021342289455470582385492260606576087496668312267738772322414038298271328683669153293553460487886616770739117634746766977321331750629218844989287162859398596473116330266838714230968091234824388795058845896502597024108648768241016934319158450621372117406392325754022313725643781267253590239791791243197926098651421950281112345190411043679708751984688517237490344361988783941690813590547699494203410377807165580874728323032684389370932342071294642672169412150424702447416305396870365706751230536463783099320176249822777899689477720275280056234834460123347499402603577257892095297818006627230088312566486541257546007682268931190762212799900886153541589602724037430397189043413032984629516352292954820370308736161138695146666639089698177393252085292071740737041478553102430131762477205723169554039043659001117331278854921046322117867109288963210828532734700332264841362326493491763911004980279040745009205496593750978188074225062161018487658422042401062137819608977822765511604640210627445323228305890892308727854293733355564226565918806418300883329544253516066096080352848564133611104942365689380752625358083932876571621410409942543736367663311618460271851798301910692979900978140059603489391573721207034824997103792610562582259546233933340912331229404607168345847446297347394839966577788785146405022734355664709432737381385467477113400768621745002329215460212836725934603050533825195168677142456961479657278211605840432280865842234224770100213512877590415928032877083711182974408184578259637051560902826573498724881704971707410482749095015141087825796341463992679773753482534985402071947401188445123638467869946659824895147390585077577740058453127432598257979609394712881474300882625803637818796848075983635564928978852651023890685208882687693984893556633528085366705753942866886525245249741299881554490085815990151666736291116008121349814483038639571132113176278049280408444127820451506351925352665039537057607991263299361769393875438322301980742675212859817809357911097927607119458145149646055730459583177446614158999311636820815711543824169653413123235985351206281532280586696025805364674573248769433605291257776866275376249239988120265979697425023893724472485149574519096133479034970535636161435617057543012186547292087119916485398154321761747858022455769881080351598692655945565240569110814091561733102588146110056541217854848438943878309857073446559957563461516185839862497645351694370327253016989866658005392915127256941040627150514009700522034948641757954393283542846333339673404839231084208857409944625705968856683785374862370126697980989851057902818900196470735695765167211127037836512862134202590033499072547898450146922792907566546473711535585752880156435645863957635061235782723751242983745505356288325015519799158130904357824935643839371922324759327680083434037071950777255036403406413590962659226140641547607068885807809411277679856819255369587410833593096013069182119794421977314272591543160482170976397565701130621207265410376966427277355579287818633092051080639168063493120410257425300182777834990727563386896929940029491340380836638816327566596021708107068330518210530961189175469300958525941868501020026150455876829419749401300612516181624700748781704375535525643005276233345694140433756233744024102918971660689259267580749126135074193725284509025844404913810552216393805710924745572260483116871250699867085393826160469128105294279232434196194269666448678239702019979308288085170668816392079192073997565402762629638454144464597059807557236755807550181564154043773444015765826209073192975036809693794192141474745604114159465739865102582208324800337802393466779497799256428640855769222370297863066723975304854522738498536522337086619008356394955244802646887010711385036658945430762359459311351083101833244040465096336629146377492666046185092295828806840932740489075725847889064787502452191392034810159096502519865454249775899279182434446207201968495881581574676267870439829370599851251878733961335595485762727803998342491277790380774127586681594940714795609131354116562947219873917317564721286218285441959089398994625906061105717952107344264179197130926612198438885498520647645463373292498170908543178415194867153188282811914537701846418950378180029179702761615050947492064928444030924931391067368301166298170791271719145517673202550109169990481507481408604102235779877704234317854346510633564889167727368197693333667097073521825670848719530275545412257473612438060874756683313114520470417014233190553341255273666305955689784081312207496157206438676757006179071621940889610834468201225152834810546665616547470640427711717736209670693052713257440959965230483541706333944105213222403974668531544175662709786407242999331816592177756760303535099849577318232531228808570128276602824269063913481768337209772562423693003096166976706817270714793350689037068172999794422270218125275844043612790962232067728004589927667021929329335635686724848222050835795464098832675516540892783347817977942290270959288554240819419658654052108771060535354120307385266860698512079550253980851067668833421863742434099513712745212638998296967814115775788536624229365780944640823396089157316780827480608271984813746069262407808219630254350297079482670651441169731910291757914882447305877496215925958571144996748409989030490135485130291177409861825051511195491839806535876661453236541339718412345358146592324348328835167432306089880752750553340683596854829346092442534441954594388591317929347952634840946338882721437550534900671593707348909504068854498339072616058649026376312976394721959734272617496435574225208814658116294762924649829698051751948587620661501992645736305719302145682436053500321355567726422922356889009713329434096162241470345099278084041269494550198828559969788897816383304719412069053387311050511995259635078530204348105757488460515737509233842581461254050613452752832161067796404206960601006622365638238234913488417244955473004782461819689197930000290835829642144205262673648902494885818555765599808876358541582039590874233692274602335071659060585673225787790919775852536259241465735309713511330995593167917930125524125503419260195479989776531999085747937783746189469066376380046406306280324812968193108383240052401289506716417705010437055427315964355827162173052835053669837001106220845513445497341213645512754870065585806282529953319292026195214841532041610257300980245032106534244040024400795917698018354531956999283698679069446997036933830116718349345469137240889306912585573213018025272556121907033073663170062925076986339688403809705789264546715856058624312744408886175868087238643035753553887932294122119758132715471128213521529296208264773170478359774785955177372722341196276830791683273033135468948621106755372007407690824500552586657110180238067166457910926154092293071781153591417571119735016868080387385214502813284556853453303060896977449222505438668478219462132717967685365368802963102266225830560940067852855544862482535563445150739361648460263566204888665792440582982749330458588455212124250610373374966476126012140547713540557035863379230017957569178572571651043901328176251318106353024969782876199713720842172540514331810562473326139806098660342940861716724666864746199814621102901060965730496977304754499344407916145760219303473757548019380412540333636643052518126426760215431635509887093836589286495608253151227423261904890449419093246709843932271371615873241735128066927754748137873719290921157017628797504246344566593833381774409421893825795748195322518213721158554417307303598021194645538983543026848860930664352104506366741390302372701383789995459190105884546346934765214602002071849541830822842994858883852444291224205270538628246774637410228648177012172710313378713517565178072609055552394767511860258135021328927424251674830925349365087895492532054276555429711865415931009921201170778090317637770958582180521468392447749696906153117281259528053716718251589494687674758387809596682404921389185028794947806879077357854340785528233088900643035036278059696808473794105835901681162328540411210842426216152260561226153731966038080238498678545655543698081099890571875255885931174016245777118501040543072047944307506992936541730917586760819239158425585727920654303894887900347307080062397016911110448503577188196548642980953497975693809724039384084202840798566845662221756258407235104305869246750149694775977418608333955338661713954316002648850314811606558304127885952363462164202445493684889240548148561314057381601135185970035658806153924736411931533615586720622944585532170918422244987286985660078852252897764150576815236747792737474891020168212679418174737551378354328703788631418963690953508494053865914033122785700465303079094262326033921923306794820411239341402313489574036477411753227908358051813173046759708366516807810981606779618154600951234004119766094532253581067031589540618548571926925102263218701519332832715392223944837059685909706510002093211935176047610251022827145809085130623346279645195847978847734978118519935152381591782788123665637590590704166971883068649743980125719484217659110856528945519980087009496596593315744662053166266323088195016487492044032304978416235836215293503270682690498819773381297204551827911278232293110817545806597136605949588156775103299741107872762118205888999908296811949491892021290503966601354025814419888797988255578263412157360439818143165254654282764490884218346205918527968393727209734049743069229081081729037153785823511464099586769023706652293380352805665191038644599982466320232441515045425852940499665727214936330530208892173487656635192090337454910181279369300475917830680408640864633145814305152704102318390557487195969737367229755993109593557505680118729682086143359488250110129745474618837853841265126290275087933413450773086809563393392204511774031579434600316698632782622890516634016301235298305083793199899034845572953197843525985030078997631142822211759339913044104002345228446208164965952439297112879087215124076055763357555181658895350732098124994081981175981346795597479545792794416036383732222301565864583788502532166338011567966251004689144240986623057863762806511074075794628970138080752558476952783909064752811144516683686484274658954097414920537406115272100056196241171381365056135714674554832579255983535963674236419551185454526335011305568705927564122658485064788833503457903490271234583556576029915724346932563069701347040830671736062455730599094473730927554819241929927614452639923237680378906604324955843938389622492851701814316511669811738957230763162273226709821242744175984236936977277772552465103192745681365228823237605563257653007739724832335572111440618497241105259036544391481195291425424824340356561067352900990562654397667775068166362106491013828341810142544947227750833352767029475680400356418231121422119649959007143530956915404300827706977627134899174256424421594648111380256123751525849469923853000218347652778430700398641190908649170598363591483961361864594660268108662578834070632303722010924849581284411085028477976641588566132249248012942269178849473779307928212245948792995405344095156309403388555823312627630588009657480742799450980530527580561430579029992200417212666013630492018416574124947363037126194413202620828545201292113515560930531174844043995995986940157065194378530035492432536459076831355017531116943570722386673175768594938430302796819712330826686989642491721379405579453059732587311116580971549533900416178922581666520071389799186791330646758503432341051898889457989824616055422767101486542465744186540223810714138102135496182840581922932674723384648436965024431128629012785729094524474815735390995633457276410670798157435335954141806553728001806822056178623589383613665658442248052615259887863208560998104945018836364871305223524588492739433934300792510289809908393336463190180811063872219177388176897461824248074018198915682431220079289445276171986314388935395285512244050840998139628150828053058639957545223493820814696827467130058303909649576786552279683900876953743251047079195917071692962111225205922947678670181161828041755969906168083401112077947285898865020448926904982872120184205311141246967581070873009589360737675020358118454292318255116134941992694869440706453678761617541514512287226168486491429013794217840888465726912740739397108439013853499946020240122230630977265698196137765453588716408060439395521549813271012929073104418208095792625291951190217718977784704258961381282728591949197985242991152071266646203651364631610671475821112554350227095975198127201213676644531744938148097473816391009538622930237634740186577254812211846684737952664707055959330576991045047678613682558740299711183351704642173812401749383284077142777890187177411194262798076863959710053618349673884995264081263924998921583129960051477524300229004000816832767539718818910804962418088472124835382558268093177137946617302671226516708066843781972522789519958846235413194379661778345605496967342220207789291801494019140295194772251324469517914931604268900086053145172405150067822971348989985330674495384382001577668660645910100522679867787933720545219165217795629060759569530773141670259490061542715206324042186273238015335794281519321558122014198791957348307391546682003492538742540664564730035244834292402049842563851315031413927586761902608583556154191395806145637088569124489181027841833504687801207864255171429358386710129813768797149491404080925289940553515971986220302965638410900016043194104690191582275876849768799282240793302352340516191134610685278551584357188858204880038646010397685913486622135455395179120734415118303552670783565377114177192728992253188342848297354396908223664635372168581665268050338781662375948804245180886777544650535689065635998758451658750354841967784440788063829347813496623716781362170435838595092580337132900904030737712314394235839866842127909165298660070777750148868960903199204511893265997420993969352989903002046510162461903986246425048260740623163463080912519490427640652918845457101011357417867112735833806379649209496342986251287476818768705572860219100399093185718210306492766917232882902224536748504303639710665773130972894733948061616831836047622222278808689447050847442322052622204821180559264357629844106768071157071620198082990571005158678785059115102963187361085770083161745076374002335906123286635459109837737606662134617065247778350821540224559909418611085931746903331969014171083755630640325431018756077672352466798847500689194865938311197228201559959788509361329807055080172033188045640844592891965950243077400333231695123138083044953369943544909849911462730018647940680268152472727281117514191842339942031704518476967742054920461591950490850955861531705064124165828668870607505640370324263838753853598322117021737870889171995836257175712174380879244246835845312684830935381402179145834998816538473327228498784458483849755005604395430921065527786865883119876492489574489871816150135587238873169175594128509803653274662508044473553774905811565956239867073624147480195030117887181723645489766484169327569038498231227347039967061740032225725386081752887261625093817978194987190692291376148756159665687929003190769747122175473375389460909207939871590805632134581321921793799727914158930045846874659663717809204195078964264998418312104967173831273350017067533545592442245926024350218826951333520266218548445133980385148094250931230441474270305126370305555698327485645615600122023881313991602992081130788595948350161897710376742730805446216545851914567877459475926220893392266963984922814411393758180836156728417678525641803624340930947202093688834723124645626387666506472252585853176758478152203542757848630777555393603253539522901342615779012371532769004731943521979067921070807391300366919112098074412109978176424381380238090054562271517561123244456825231877902867531204276436177779158070279345047415284106619141650432372742737267880247776482389779398894047118310471270591393277713226294409230680479872245765506563555694203722060560663808932410875140326867966140117676485953196517879715337468005016854294800503968791336495103128210862813588080473188664627543819878687279498365336099426277914743979277402053269638260812576917220409333838080406190902451967942297435311259500760633491871649131540644646955837957233154793678148498301602349064997896788415482447648691463894533902076361697270601706564757601072823000172216318520036379383190140089014966300610711577014095829831056854807096806340525078953205438576687480837332470934275169144964747441952762970979865366938741138491643075167372342205491059009753369537845485625446115077781633488103040550063326992157907542849047803011647107827411183447514107739225222044551988691705730778190979696212473524802924230307053718448228685542822464591379904361219891021868102823108924661694854008322188371911507901072126783822314196549053241776882882956246200626055773827149044144093743482444041388096686313587910231882333204577574831865858595630710669462960028748035773896884608620185087123879012413022790002282826383358870899873340767522023741882565429495294459793716286553254586029888782397765014208826092775958171761384860615476126868850633517877839267763743580580578861423958200962775141358404680352327350138821867465903445755928365356160557920741553341575837379099286252345333786484723463952102821427780500386949768699998656287292604202246648538271188329684650378763722578523936862228101627469821418800348368905940930713244183012672519663798420612953635949746466002853297215238991200497666365413300403735574245686104152999590481016658144181994272239302223151420316557638198469489259690699073298938029608178773016317162013864415003606406951141300221191588160710021780093154378855200774998023363076989781810812715381712610297257300450696376336929383585721392550031009864199960899472722210867348170104535972971142629341416466604375858087619772250109110313091943625461247542306759121041347620713097831116979205352164987300607406962263359430327389562899689552227610489269629635028818027377819723210689115074566297849720821289664666367854784407935443350216252416837787612328379705141467405860883946498526140541849900878481550887348802626199624701944510163317206155159646135550306289680921291732887647400933793401940612684207919411710320235983099073104909773730666038446981873584160566566223065176721388934254800519664161543874414753265355655696901043500612361418989389437525610095917005821003401597937368722463853925928412327168493557926926535855220352552011515885417437113782460463159445454685494462273568696306871264417206143754319092215640997217137969328865189005869778629175268528352222871029473728187942254623464952335333862531618473163427325165514484265685342909690651276611333814520281574666420222024346502167321570756801571424328739257582128591955327477802780419108523083437324345295629487660620264324967448743576207273699766617653062593667489057854942990226983414916571982011248300787331135458077544748015980626636529586026520774443008757349778988414126389950499932660289950946633976736642141323147107400716178659224168436695600381172637325484359739049165203575706424424432056254234033558641934566256934916208949938183081011862290178999248316846488345153977841735836840963139375967477652520985800218237000783522967358692772566764147097390662695814407621685722994210609248029196578028917771349564554346334043391307746559904757989907499237505452358076102774812888073517612299069377309620609902156494547477774767429272355324931386691237415335717241485582585855461110667988075367617849880116581650985013963355196871194383141072936778693782094283905477609467308221028089407995218799156386190849537714114650245567727727610295548066474818071467418491529136177793154068742461468766632421767017351401820734374663517580628997568287288329973832150254598559877303155358940613314884067754987006691997963100128046861454637626440457767683235055103323780453265036024659493938611562225371695366446021716739317333618556462414968111275590431039170563138515478992646138910688713401991822945073473823655995889653816901079565792802541886663078403938193952058213482388786117360415981130211233614805631461714980328697602231939673467069950478630483178570866493570297221849340834014228138042030688757651608799931250845869159471977041084972960656724962708816401816168781401575224707869405134789536583295278396177244815063700974009373067905702270149110659105639195399169024897813659362619063424436969902482286239312343068983290316767561608063442326449297252518247112265103223264269759539905000384622704493793796379966081390977121479972138222943798771477692576643123207561940315747373303949920062391926187459455392406617128906520758586480480909121262888520373180593780000100332585697775686779003491505112997252952420615070583351758227776197522111329573597617192318539095539439987225858754581880303240433505158604992726107459534204271240222054733504032552417265688253202587040488104613720571223771684651299651990485991309336886393202701522305716644551216484337923792744040157922943992820616727464937348630740789246822856750084206478894852014033669335617844336394595021574131383096058245784202706974077820311636505922488191129009261716607741027444006618078291755139026897560409640941947925986794316813150080891610166952901885995091143567000095357151442237408167203064819021212162429085741895476289904422578655332819822941617344681671486037146631264826438987335417464754405201352405962041124831214247571641550829423392055725951232395908465025166223734768366649660720483420762432230042754105375035143100060101542457044516169591814765476670477251240602368860127592881014042406046548043437179643772988309838675892395983541464657664316691034417226900203224949690667141457785241196512536661114401281834435371744436281130307874810012127986536423404097525463792019328687834299509509493139740335804689746993842143381442415974906736095319876333453986171946448747192181571459107125788408433508344075977090034015039683037848754555515325831403264162701606795253667171133234238901645556674008760861459795950030000962226507499449913223045615348391239637835526532779376783644477729523652390919406476219189769371580808565110256186445949318772169587194268705264345034414233209300346202493207500869364865112421509096864166960877964310151897439670909032338660148693496165524002567903460242275480299952325433411546346625570605632685118712401812761598865181337483969865549222324129880417698638167809710207454498706335870204984899770248834682406156036798658591670160047331472125413605892489864169263639427428310673759307157205603285934261750125160922375371356490775625393909196134525493633922395298384026137083866000783825662833442356737321453005483468009945253125879798228691937056421786289201921955447502750046155530133060731051832806374736903279498018485916980289734221207234207807872720018755516358007413763556748252591419545676955908168502479881470222301782659595099479959582060066920674914101545051274824603407528995089822279968350670581375835410968809688410979928034001769512270691488821179121514359357542824792840993580557133532327251304621005273635520066113950334263325578212090655229900690693938948612269023807523660971263846705629883516521832953543275282013844262967340650037913164278635812400242418930071096508825168210422496122135858293879693431729336881715477119133051948120137358739489771052826374779611518959117258263452448077622620030244581709469611094993868766027777243363655395609197278312968737577985867316462670893257189542181420542725880050903661047232395637764790183616330586117530629772669362362330363462848604095282379344744154186719873666851143705338629651367170852350642949785901870734490239559790740034485284789984744257393386874947406395214712127371281661754996981774191466148966003461825653667694598659020168102268430519914841111389011534402995158701227427129222589031337211340955423323138215036122863004854962622232592018681659934161617799812043888264832024836768046031018980747985496869618554286342982365565926285722046990472206005428468886929446495345473867405897228642770799065018838240107546088258756679594950587692854874393415748316812783133778779503202448062651535475075508969004370051534653580665782236138832253289222680565110654552191915781349472163811677635224570214729152333668993542103065798801965565326220146103412198756451232470440980631027292984804264117683004845563167330996230634785873048192620936036169564331682805695055795860540350322742104322460548158349375185563785380485127993631326751623668347638840240990984699118176108091432507722989077161771097620964093842432290033970410227734861761295270508426127967363762538185513276013288403132715539462946482672019638536256850355764203308616962847620906859582683649617557552077469965061963556807847669571271938884369669711169790104196901318114228742560178786175439503693626416146202006096268651875516029108201073074981889203835646847363119817608860288514261764036518603320981029850779517963644019870144044248409738583435871143829364381816028807704570417366572539401496255346793166747607671541564595440032619792060977276957086473017841811947494494199729330822620966073693147131449618584223957119338845201650151678201487526495739263722277368204838264918703237001241504361587570567506405437687829069743425796392438305205986007823309392696795232336184249999125012061142796421036347802545489283708710711502312165218271405792413566869000616203274709283482944889620410182416729889847501370177342959684503102309729161884835340885854898156123198199792221289951294125658727405225479630739485605304520159312100241364275804978281864521787292744083175451570068156258776601542794210799731014657143189502832246340305865447940865588985864665462075990336497052961240258653902201690951520744333312233416993385564973270178180798040743002398229737774091237548354861623337174446734207807853038080707037771005791143838908760257849626372894433206538319770325041084801929716715700470706477968363126762655562594653018329223923073924207753708300178781179621774855498434790363440016303053687209824209065136712427775976412659249685328508010860375615710421538242319424140446825895028187747465541648330460841981805656847313074280685524174871460133359951266506177100182191129866924993859033818881391423810302458369274867665385443354245748508313895090456028786841230258766708312842885773742694447357187140905715394032943268564946369059529210652847011696004609330287345862749801165827075262829327088075919778054499306249668179453503869337625086726596970030959514013616286498810742865897885571244057179110570840997470030195737320960271253343608931701658689690937279671981899574985326070601888457452293902634116961109229624135515566948504505331532831857150869333233796557113054512914003728136855797754990050598700287746215557592622139460329315794203091672724758255124371000016805853134559463899130789791113962324991009932058055020953367665645383116095160974203552218098689794951933699557115856954718613668018485619437601393530360694882812703289382814399782108455562502034686363191157745632868429648462423376560445326466138409649622165465746454794796717261751532994597025885750398097045208054980018670110672121531092610842408459355463371252032971181160298230584196772310117168827686686991021954995054485407655900645424602779662954802721416338557416070018267946656831950820254731887839989506203233855207617626830484973623268166609421587116356548534082582999738979909486684110187342219363845773595428085251169775927662789859209221453285114609447493051844572721464328295811885351558546924806289989634155898917948055407249724671501578089161617551684420789050474016064448536223981095527567571804570803060044062482208571475852482596564154177880882181595428418805121199367301189076835468072198972621504134993012246765253232422927088719793093394799893124714116154220710212865725075187607148030269832455184435310859588419333456083602160652833231292904461410158464740489445143423345113893486734658508780337102592751952867477032808231120487200348451988108410067229556957193593330749792515124638560193344088109386091077895750688774516668773700123351205548923203691196825249129083293890467518603503878373044380829384322709675159487160326237085333607414463733805675627006874492816866797408898737707910753357607597618223025042489503924594004336941304336173143378320306595002961892784588228385691638211391923119055705772949457682614164794744202167671445804619078480008769981940574694692493695555314471027800096416258098881100620660154074263552788620364310768484228847872795069691354504726656500102281179034430088691604780631244404090208560071144878979290947344470361749399984951740516435354854991825258646256991179128127818320707188658232675624195214065757423599663214829715451328665656080991846342060213962035722650617566066754217321909931300131433120553482182417852744516614120026975561159281097620309938548396458567422415905172957131628858893819189015782929296880880004384398426829694556159810056033136188266672378467579567155323656994810548432319283478336969837201225837805361107813876799793750085115245627287123448439886303851895118858273087351365307504965010699106738205456050670231164739830050916363935801890245817944619411033619015968881331823178827107173141891697576775942093099730003792152813807651858164039261238567992404431021921969488530629560995541890862611528090670711179795355456099926296259116682976037277440949807852001118189843351323111308644891686397724440414730296815454927028364861601618547387210721031530019748590381907561650061768319808665164887846666628293067802404875859104554991587027348026829639684786032751341545123050239342555309315931745855922596921761752150630828920435149986477308915785644450691868490725874303342617935405819563874693488630862388006185051034409032475965247044160734161026248569438293399784981691348529688403870963033736743086946902960464705030626066490562014914977007783872233519898650510340436624333077590889896704972925957477592093930737539302382545064650134507458554245533436576140902799790464204812623710597629701677095146140495024680638555402723269607186996010292803557033077434419795187255489438445237560338095496142222739787428592906281619085473564626802364368891318139974525176880723484018655077111040258828564393850790168726837621650532109116002889139623229204023606509595727688434594787631178443667585957460805444084888437165388165021382089248742163446418885071989230825177085459450110203218567398486060754154242651316188653263504781563943282151207385054178376353523140009317787080497550045283510358306276024462266135851505689400627113678874173234335430354792995612368170803169418250896385045986853816823189880903969169322946599908604165934263051314899703248814377811611301236199590751136722135033350646427390709814614629265310983571116213122669552797588727301435757475079166775527310507159789323367933721497049333851557470318084655583684497937203723557830492653914767036359990339878814586668761712119803459102137333200396711816429403820610126519416347068712014992494950047553752685245363247534684722737519828623473404689966150588620545964270236622525368944581010638285038363886690615748723126539654540479299551495446973152946628532473662893356011736073371889896737560230857296492136768345660045363331953166138799380011657609294679843938927596778306470278160183841465527347714427992318372277523232025936130658084165437350125553903885060112225469456762291436117221602721518455544668540627062115388475582979041116941093718645768569306755286888900291006865589754663136299888335937007552374585683664865328710957298311235288596022442631109422472251678840807547610822260278069552505852117254974973202581785721532347606375675474748729659069157805302619361859551637707400280453124231719186622542634873955484180909712932198524680604654855626304509182632095643878984409555808694719378813948423521916730038757820774508382945178375872831954213282621381639614388766260751441914111213231007878296054367901056345348755519978273130782732216773034585094580168833400533652855384016776094297550451197909400184875729815406147589863220737352963861853969943660871300372025157881752194152695829305867003798079968844203346007958776820948034612076051947603857620564649593810467254627088152546381667777876985094955312642175226309063176797873334593037550147552127529018921790488996542207277254509089123248030050196104439940196072017991301464736531915336266197872330228862532973527612690424037646114873946897149090095385601295281374711085854242985852860390443068985564615956291427607109720387465710135027281479562537826677161150822910345635276631547379752452401720748943305173339720154591775907999827395521685224682124863480272763359313541199341509947323910684395663081452280697360138486142544737050480526010123240585097960924134790477663163899034517380575060676798022959799343751517894319648877468404192434793967594034023437511055418276310891426662968745484394617128475401144484096366347034715934373877253112758528778293890106195641555242082783317651696320098600658884145309408492111867035222839854721330443978761344128135651795204133801987625514901044244826844702586443926118411889309182091627897123918537434329547587147337890200632367124406131180656464243542276040757618094416399324349795335356949056507981751077451087433140877356895839624395627773063966685308450807507799744608475822777338796340138156843128979295386148162614638850584164370664669415332809926618172904538501863159793848455766057253320660189457873341349246591780651649009910094443337470875444536234628564169916012891365938459213685301037753505360336825726746557743696341969878162000442989294634727562329027759079414305534478795898150868591117680639964861134585041255088265400071320374707700540211993909395603998452875272771944442937440851092748420943516018310609461666288142911576055179238798480187424625318092544565554893834483626888606589884352886968924929513626893534932023909867925220500806803942476434367770577319207084961756157308978835236143404238588012483656994336976067907132569870250878453741371953980838431440399549921657740548908194332382498479832564325388980512592972751053635921934791463689136857355757511328753202743763781057339569667048479820953965920453649452770119556271701307805577118363173763214405775557759990811567194179305049214004206565465282273766197938766455746767810026221074720088719770121669664204217902103370514235030162809327526631580673884939853554561757921172070678982653256684572884371461973783514279931908617315267477942074691553098827150200861162092496920154647399968966608656941544551457557036150528470457645674022098355927433305220420848453379723725426225182373375405153054170758665160047697758148701543665287638769683706250411179607314453661179860107390306228993901928643788319121787706761727969589386882765390839121511890289846478327959502905671687101772977658647203881014250102700109902386959534184939002920125778906554228618461883933525202719824451663271399741629493967995821132711251091665089747608759844762788249309535230046341083507541068166369360208373597964629790740788154208108784950334799757939193953949413890791778611663988472198788551067854162306895818661272018549785893816654187500520000300414836941655590660680638706414461361638821796934283320918634983825296975987264954110828028597604383798597349948104071007531c = 1100031313928737648811976346615661357475665767676700169338114436126480051112979721531455208025316405138137263047801946457434834817937926741337217919695892782465976820288722893200498906546933547552264637771342633715876330445593072526145043984353481135482510787341038067045114621723595013156997409742128698625055704363107537112066150434677708841109975517625117336314621297950379199353513420832136673689075302044830176552491939373814812578255170573315575397856988101700851004005328479861800883036538130559959458452564431828017539212580193495091775076320268103489233213736836860329532127399928518139224805381136263807984260720834366068430174498926354968905323409650939862066913398592183570974013868667208738153037162386833828907131898293073516936218569117770900522269144580419014968093341123594437837162325861687126968470309390615157772180533614575752350853328794061198003701267527159109649662970889803643711736139598725940819445412264590630760323319386182905416124261347651859223184810623204120424998121508414951366872518201286949805898933490769505000240848746332800568842165576467692170218624872372902026412283394717060381111814098900808274230255928559887036659070822082691125945074845182881533735571617251128840233118449363781562236068252895924551044986667058777437144116608221699281015774324218853605271849656873988158748452892644475727124886951251211297639925130459941287726992319378735528528575245897506333861950112548485768846886987565979805788566672217288688094494669870014732822211427262621300739857524873724328004874961811889270778970076521994674625561760295244576905079296377660665967358229162231205192140919872813658211972333890703378723958097465177662479516035836086103305769267676439168793921988820462512552542235432141015412633289907055581527850261486769993365614331322349568137314386572367016554185295014049828141478392332430082097292698449041735562663377673944906299145576778901220699868453724968853476773942213405069213809947670759265265334807815608935727899852373145732435683341337859262457271422515201384043806197987942076855433653685828603303326446980627168325697282197386158499650188778364820028642360708216377098655162128355414455070847478430558392072231483200244316335470904116459017774760027355305959060336111188602834517233682316704479963173858680334677614750980661676393792130614831833055192351792052503485387375323429347482007305991128412618081487760909498451135162536308591127874277399487391451826116725363641805157191967616782213569582986340958669746230532342520614016580429040834944096465397064709528473960916266276202526141695783934994973112570998079900645588423841615256817847227407259282525443653198354157449032246484285351233621125843221367246053149112335294824755989371698434519076027832258328857707841142624089491986427488341509881720566102933999112207073938169751669286876797338527600091401451606515626258775467892450961836951843605684126667957241944466907441792996760557723048048353233680625791229396536194579838044087190037249940768623246848653014040603010161468804983169036652404191477256085265572732842686337519747702173521435294622135474667620330131359302416982749599849222896997638341695236010021220913275509769662726182915754274576741480436783123151305458594537794703939678218919488898362436205068576956529529264240750902115854245597163006400262588564579458456126137536390485041291405829313961886626928820434232613288047632451011968182974969896723523813672687294273681658153347587302391912654563207627229157499168805885368626344186691813510192634046363905677347180661169919385058227894236694886492016284807145922294217694509871149560621158762420260645851393483494877533947748894190089861387507993204288557382182005043057927535670898648562360006600890035887398574172641011367663925575197503789889503499056318371174616529391249710660564462586618439567510885228945968052161982994184911992456230923914737013334231733499158534555533480672266944434378275091014758371530340901641382580405560135266804277823271370619693288364239892397148397515902654738953463618762053922593514843201094518767331592430928757179620519221135052578137277637326953189877851142055674769985813052157258301352489133398110272246484427277493620466985036159211227353403493556579404381263033709383290006177912926294798095946029035625456234821094946714671634848034822439881422178443938161650017138933057081550370711997674385495593178814244150259901292859473731970419954337901475493439620179070199664013053540269782926005551624480090286596268321765426294304683186885488145406626850543411026701630060969888347140943336245692450769507749408711134280050368993618645053494691852142570724484415846818262957151759341806205561062799369670299710816177433780945283087960780084825929152178427012361332608718656832771270181153636067744931660288356290516495550352140326611923578745488474789861741794029986710568955244937302289378148004513020715580973951224817599049507463392243385691281210985698541510962487895984518537386690036797580652491280044980603985323890352403770477093088454380030211412697797353271479667423747476054726216480577247899895892806634501891160034182984739806878152588957254213572172749684595116984298594176349576285931431171352169843863876984105386823935619718482338515319897670693544073383886037869945139096294997675450373366660908567839220501539590170936437040615421665918939383672208731793244129147705937020336143656426923073752425810053969655284448732066018033990768325738200612747572793205049878631646008687592812153473606114624389366688914946552739938004429671790766929209299454804024683657196474187168753721225438258149854760692391594725328424597797926133853277236745987378265438682703290441020817620015079427187722961700409986374891254986882442672452983134602487468348131754181216308103628551740410071531349379309935283912195652419794852857844617196279166486586295078223090550754888037436788335293320260936010324596309118962967746272052650717019221652378735803531295545346578453631798363920819005753871205444889734848044412871015069504519936481390679052541937552630813127935393701891571022142179629012833750418947321304381782334565164114868241528278653889580700337484418122132471323453693937212265695821875144390234862803209040172868126876795407330930336973336746377295598041102170930263064765571457660344019738960862750250919262996367614531661483496210354613686278890382901653543216161819483693791063928867572640507272602897299231512174562573269034094951093141795124374931170104402899763718012680900521038688413258091049198498288898549536195666828424545908982577990385974270027745297302242144203060668153910786282298068417207280682002683227047772395442803042350871654604434209574229434358848397295065305011667026935824348903070988812473089439939439955035091457453067794555295307508808475321516272714257273087222606317121113626951310059000916061573374607717579510195336621800007255803921222740902371007035365711765639857374958388671891222942262007638449831405034752434615840234587707446055776170323520820713562966049454043329920896418325771483959722967000448253989550730859530429722396715417211477467586719786439622965488949033894207226729975655160082294244521344128812324492162123373388017307229323744857213724633857724457822200837794040409622861663267438668345129444194244401768418172067733895599039635265212063645862158355890363269126539806651161419770626557770764621603643588539070126512231784548259398857031816275211459264471319800847489166181898566986285213640186100872596511727808676885009111717348329323167044736338325190825369043223583159423929768985840873422255859881018350981120206832518815387264608511587270203310666455923029043873567604191306648260773140699372112000261433428832768494050418554022072478639447600068882262217808456914524915810930689107558560426168765591455282966170844261899968715742055163671184392373213601897526744275111261347437544739605951854601202139054194388224409891072947675809515616485502307942303688345599442298720320815958846191013936073642501051039081289057339604811434894604458854357386794582317677615725662960864962258870773924994651722544612004924931527900544600221784070217338095271144961704606255531605728750955428747741911041530951955966779922172423007592590706653831450946044762545975208426834573761780229482337386264730425017262769295010688080268771599729389402513354201472895063974150438916204206352033088055447942026340513798881901196989686522457827599591977277527236364037157939117088737185426140525724543538744310220711170722221185074848870583233767354098571359654445446911543570806784208272279641605487723338878210591870003943087593741235841362984605832799956466738110740660374216408510359236499671269938995106127217816332345123119483959089267754132451208485073850647717855000767641941277712731754108512713686322962392080726114569797207164592732009656179198112338537000952277561905906263055841057233026516273388420698906058043364410735635448129160014935233663218371294118511963029902515728686549899185113213217677234702568129834917818080230223862877502658803360093783585981023099701213666407449410223791323299860341098168255127374962060647792320064482982856280072700135413164999410246865653038614931767430674268768524402585132699800504418677150964024153356270503206682305471894975867806471979578344440642757033317107659486920091002658519472509120856931069461740893777574414941998921756631810117592783176995125366582034929805850330831807016569701873519368128389050329078444015641086563935203819372503771233977777790728725191745360389488881704359779500987265290408123584090285548868246911355101968241946011090853777445791828323870467864244293131202476622006213104953561726898492558153358626871343735716213002092583409076774366805631894828092897530899073773858492736221011983473698474082546259939458838525274293290372047252344316594023536084747797518225697241665847639742282077292614886483418686044292339938181351442964273268655884741549308674524902550551225066139542421142737057265763582956867260463028861512444039138104155350310694258877940873993818737601099535979086178342449839053683602412261618611270651895397230426441572252311982002108692338078182843721163949345535208435467143110109640003946922880705878420407813454044172162221487870812769912810362147325677652172830966559025992642405953757016188929826953774211040596572568913237781041553123746587454121960892506721799659074483712151665837176898553997698037264235263542698149408673872794173035416711481332816271784780015086426221942441231791081937437484509071793817396691142417598038065124818413117116795514831903023378123594003838970778618374754553747089244406461682637520810677066111611036795829372771937668409257749715942908884276931531070051481486535623068451211262060624132079471542081403301924599940625876554158195465496924196148124349863296057197527022247016227434842443673584524214391269417697146595100354426931255961716167315840256699885888530466563072677937497069239897253629841969877614751667106484282120421571083597762947988358727409840185901209100029800660883563227177502523208213173508749620988238725156347582685238835198228768814746623610513553461860725059856578078458857985802121220194417193588865936515949927575178777897862694369039124417243438981523346560107563719175177464518677229935674881566926317699034329827023267864779630654234215961123997073376607387125722740180406238758489633577636079376622196750734527975658883292692147683944671749412016940699268854225872659509001072373754151085829335168792166114715569015037840195857738176153251712254740534621409146197197095957498886217665560981516254877085643881372448826433938632168923806792646173333143458095793424556992381296593972643205029240524820810001586797837343834911761473807228075298733047347867135809370689367065314605678125508863377605886290175558082637274954377350830784647855310189098169547413906531294129699011787577882528474806300721995988972861919665105829284182045690979839021372524880102890331864331700762470052244396497347773726958445695890806290683213555456079964576819210399936515399871467040124394447784709313593691883170189446298693945654554380517507358655190758448728709751956907035393486708554357254636842213406347798679232631045542828368047893553126314573696660074920248301127608575124846464496092716248897875537408984909868818422437857636891675819428134009659209225988493791345164385096122339153548931653544193660333505053256137713208177381393283139877071801827224740339176515737656751137492329442410264731809195432428107946379069271446735241041929553737843178443431441303571121616242296908443684196690672842987920881230460726072347710943302762014341596637500993766469902143090767904924887054391544040351242252511944164255178004321507903430475551932537185812351898809110790349103370137274272720887086806206820967201206544420592925862013475765800679123821855947062215283862935888812547078980727198155701444798339309656269028566420092645644657470133544244314572731106643792720846258127326512744973787212437119057033628231369137506629905209247492564045644976092948290039762285881936719637803819625970877554659055836583391381848511421662498456378648265468931019061661757672511054309991853291463054222243913687870215651748654060052758033643168649599697504753626759126089255435486086508690075331655989593808431418130845705540474531412905187195139099047915592061321879492812877979451279503069523559517287950078961488533622825028406608073459124359213484529368972255247109912700748345979556000863397947140285244305838696061244836078174039467710604083629490829464558448768896649096907569192258151798763685470030882599653359203958214527397827609318660124045606489042154592906617902535010936562008302077463641880086933447537201198647503564697251417309243327051788415129938931382142848513597108874482836535725189969062360728999307995731499803565361594261147663896098567008179783256999791291437421460490335237754174806386543192222637195588836831180843362265199221190232926777975980731646529274932520269524318042594753706636562744868506975170096955711189563871400365367900728586093791948020365951003106257474785905604730255703061672630400711806631259029887179670230496822159596941647938227632251487944483466189014809333212177302431926073951040074582511778646964751904078075387337001084118798090710369297834149615587036906478768354474417024986420701780172725601398479103362886534446145963814858412598277425606485644737349357462126047618831975171204775569254306451885737000162176502095736030742479043914837168431452725167595451631351122715312082324333917053705974500236200000228477932961805014603038614165346877864090852164670187243572356629967004479349635356358277185119515652400447382192825246889466312811712750831297930947039754860958825058401708786439025512605942722463587326732275135033576454142080687412637408475455524176983657083411828886578174714389253099009740195659575563027135196935008831135147833595786257906966299121515579772971779137845662644728496943631707558951719546511660374766390463315139146045322432951114059690842245009755754632451504573094479130826868359677571760133192051759959380296542384080408789104779987170318347688705651065566698196773510035234211025923365196601288078236757283427270712411229041076253100003150222856229944826070498360662981232599331689118951598500743190509084074971892735880245795028642266706949659650196987301219521122741996821422180587736568957955791142125613983852390019888800099385167886210116617091091945240911777926331841942513007224007445858012366228217951352908377819235966276101333440526754946940126474322163283988588265092819179105939641784589038761965110413586788536195770334101429016356820598388644175974674025226459317004749264154720922085608405491483463576991647808211966673554485334348623884296373191305315850129207413052145386874659413590166738316738247568836029531870875919137101618656025834214634460137559104686271500184734225123705888502195570261720253312407313708356351110256454676653234463645706337106678010616645807904815516010932055935283014729360548618517051502045365041838437267754223636749248750871034563965847868510811145191293333201161431433087864166662893732974530377137029078305783064736315315948319694412258805658214252213399807607221021581486722171208738487885565919570429077336272265372815032484157837728553589429032690089954676128113520966040381415824712492109993590717141691332317729720168676503694581390967976626321137898712700368726778846783941948372962244139743988265400125001252278117794329497648039915196098481948226503236503780857992982934796525738439450121548520110221566557143862960260209478779086353586097020749708325299233507357829681221421639050415150414511201166000346154463570493421682485584488310311628278021401836762338359981419695588709372163630117429664904301206988111807707222081931904383810674489263295309806870128521474696576160370933984071833414818620153241074273311430434637019657931554892805689839462999835008815554346053150719532242197715133566491145252676175411494470571119198961247442581537234604662937537244692529093051488358460140565995892859992758957106355220346012828759812205577304152419580475666029407648192373498307084626519905754240741489690170900267279460360801652960751078530878267128003920830761556069583136845973436245961724016225069644862513704119992578958110767850955402728749159774171013190064194417937440532957898602501123344409052799041172949562543364182174643506316053750885152284645579413726054086725620467229541491616077010378839173473412111717711899316644316283946824189166723163349836995513954771811263214618647887995345177554190885545609692714587711463382832064531726729163174333514203256177199170892992709168920393984435050997711184692987231372842209933751135272503904084568556013439435147363750122124669356376495192735341164994662051890397171440734964895838872991471697456114998214825822922462154992025470703948760547710403371836694017174852350209224127449416136661714997650031497670093290105661264003525240316391458478961155885443806944840614697933880434657649811345777707192736378635976339857127692825013226816311912982064285973416813190464487617163311482568806331683741698413200409516149711849163494820231756255778513912163096917383722175284598010305032393754915211103590053260985661621511881636524177048726138135956264630603029572397461236003961040166414040219103459660470344710767337033201954530717804424149606079905736928565305339478374410631463246021216625273905736822169138487137560683378339428852931872840282675068671324998215856803067414812725609772528965794758378175341815626780773770208422665908306986298095768111056282351818703217563086837847422856593241657256486878977665651466456468048996124776891080236139553296378759965334937916528978679488822851151283390616259947873550888219705295046935407354980468564387685417065472685832149429192819763078839052539324723991835842581140277937429143813545418388300822655386450928276124227710026012169669254451630913403989721005316858535734331563922725041488768175952716357800326592487381629636328193365618994111693950221038924465141279465230672702118885149360326622255032203037284606067794498779447703383139297831685674095100659553713557133781101937182147966330170260886754111141074421600798450477722997161421548728150639896126023138037333557824072076790705182817944715678903997296470851680731355645480629410862130048485969992428149644485941637880151902624162307736244952401298277176974992631736764431843733963665174634350330160286406042780341190944976256219765357052309927011801826232428364573071027677925596381554130480020193562035930806713397467322425159808696790794035873822001776939859710290250862532155508967581642440714315143590435839100010741391888261447814124370253023221143699440443351935974847230130494669273563539832816017410955480244060399858983779291331886721878096614105238108390214026462205711570332802746124374453891750084945152608610852925642916244664136417864780789014668702413876239889600278047744986473477584966688393132189636982419930538008935178478356223355046189339136264835955527684801733336372171278479028008452337616664264307508307597247101028202597642903777513365291172430162420222720413755608358934533528517066667884450037878467913282469958693068343969313974580904562097015129448559071330580349831522111709646796269832959325510554679578174429086506232293821849395165630472037228391300560816183349473084553115704016138757674402338384109536006565078056172525216010209510696287228029691105931704797372205115174292015408129692116148534643337603744967996890461829400982497282952250439071099823961309628024127271504084826006754199807352927166388980596977096605082643294064101667332398936283117471321156532057378137873721816521591035932101575368267717109043226340408668346137697916511646145268170662874980466367313870592555846612979669668467525779876494673153666284949946530337591405191203501224906201421070730315440378259593565477685983176001354590924615956148495354000684380274614118329392707668179293524700218876829029773060893868175502803979217185050659087867426560558995768067466289549259089610779453159883083583787047192632119989281737281146985764536825629564001466468785316147493801653349717032492787571065486768658232343685894388074319791997587360070401438573168129695720969874032019922017649282889038680241788235910509198028872433520112152889356096601617019434493123130438983726625257835768285145801793250524299544450021541179273267679024267928745178923417708309125331952639254270141084414572126467710210319639614552883798882392056356173725737312232132623911418692879987452381245836910299255733806048079169251262382853849598318217746747629380708866096723421951079789351476825698324476661868127487554487058211321850787401526620226513703562431372108563475520729370396824592590332084127171050723129298805363257857301791927874019626472847880231662964750163691143537720227898104924714234475529385499544654694402608002529337543923076315487671645957885227227937226196693971241764007755460536528617789604977689441368894554455983099774831484380547759550491918875685645277464450804119992592133515641941174794108050984834338548561612166691617609018812105700873483907513144025815093871596713669797115564735731681681063961633832469568121203948721954800051568539780789830438940748162536683467976527067787856679325332558150154025612765697182499982416663697707246771424599491935120020052398985652210515509932889916894583829389338794640087109275705580027468132160480362180686901294788582092172596853976197192110464737062338362929134639017842478481411211337549293870652155594575180046942726742538701734375901672474845422173491887096930440336771440500834186360621049371383086065908231827808974058040132538126180137729556993034260960285914706212422038942999234583045834361014835221143767088554555912813415470458668168256427113145036201923439960946966085694062108343580821979382808806767196108670332938965639116647485783282310048891452173083183974754773319487385964962752811752153350193449364050693086605825656188410451391326852455688527151790237804311176866560881548198147575380152163177445950995598953661878917491068883603238542990889993476104005377321242438591180136386642701787132175151712686929232053748889797244323466864363383701735081870565584623023246983916737165513653530197644285784337091142619645328862851617177876751072706319584041071444544307135457607293015979087802652765705810497927475542155075316551634257345680900274529519315428197810889155328757363073381469550439107198475140210120797066088766798375211024263644819172269047445101516266761508202772390001428916715025681488953511494040163131180294134654998206658020454902550551685415140395696067795806565500092397142979013707000082520529429941050953515233101312274998551987603425705072595424007409329030157690110718574499569818867389158475748934645613814004836335812065368311110570428747062350284218905543362532646358319102385846225003640009983718686827493632690196209243614159141217122678551050512106707135163324194167501612077568625798607556327921086599470276164729342292581016421396470323348329066812669061609580537303564504462837219899993932783158942821497790612894301140863595709267558795026634041885000062429067529245520665546408263513683648063541219838843070752687192027465963862465778041245313541987781920248786539127438067358535947642394355118384719359688900114260446169564843024915509944119501881541469160720994862085223910766091523861461458499227862612026876836336735152361223618578796422347853417662040603446073747387413447317108186780360833606403767952628477796656247114981889328100061976457596381884696044017106376342627908772361853414255315480884065852384877976948737523855780099501910029715331337140073136190731958846775119049905238920720242298839073647876850561376858175417508641797400670082310643461427457588490306682950226796121395163698738149168263468803109643577488085890572310924809107265351815837015802908730683419771400471366551354459308236380239129591803156521664165385461703207743025194715522010677552612131874220768589299586049933789159556546583669199253276039278852022344848613344367897149659138745069857223951428688138386553506873301151653708533052594686861632369227804107029651799474380427449049483819967095561444034261913577974834370514833342225071524092564078263606061765362459056350833565908127803557726129777617194339042945828327689259676837045081753860320167358416179290621945388924527548849349481535231599934565531964431766167615814600086801427996242788240120955353401876736358537712458142071875443892872999378401674198736688257465102570959850048886996560640235430704747488226254403363244701570271735926322903820580840365034934392595522458622242872922754213988555884761314505280925364030163832986870839553671123264184969838839613938078927366693461394176774365659054296689026642404706565289740363932223443702325016513831494788966510084472918836104443219208328852442403252779081748838191121730531598358429871370708039479448329188528946115354979419742517732043255583984710658134880495099964231652724896557729986592312601758705793427109602230701019323401758069562701639438399584199637315993693542853007454007108806821687773409881664876370109762691785543032553981960797052644487485330299046565922795162088253305748458746791509177049717248667569621967955661127562106588941447991867291298139652259236462772505513995106638653073469375700761900318388621853208150774535680884666903124443484206389150848098889739712863129676261800909572117011902379850122547953299539373993638615617877940434286471288042198510761396123551572541871478210178243095643067134037525468747040086580456289815387450190972873257848063819639234703758870666015082054110893562825352807806814765043923635210623693945974441331843313358739380917194662634188082929358459420717666026739563115736519159529055734105113011138920657191998665317528668889207398803380511797830925271474173478187612764546875290653993593866912505931113755856413873015202420383812837594241007685858898164751297795468519180198347395659369398745250346194071995894454798550823920657017159095343051573466197194486146895186561940731501269886836044702859710802063571910072432931710973497697184063101219643176515220400880242580597782108129444703489100487355107073676648246526707036505244723638976722533083526575736200103105270612186192821726536725477182649129229177448452225997794485529095101270653236237792598186248691081369956498762424249187650543554123163429342752420896235398776634283607343332005987606022260675975490400929321006158300976165927744386104277065379734651340364092880451424362047294289030325439449332194612827776525371002956125805641017681839207991215211773703371390579036678977550617294866683091674824327229565026936394507616059982047958443518024812911426923306978009451096626808556237739301601260153225621616217653427993422043071820075054909520972992176494942371490273259995672612491109191150532143322660027754774709787958397368081257463191078401808754070546739436765496579315803437797480690741094676853046201766981233949694095150352078910741884840444389047320716262604041749496768962777411472951931082199396617715183786260581076998631851580541182404253155819240044365552113567574479636974252659125420624300178903830758255935145737388463883758244000589973743477324620139838433085305415802485828789424686422022553050514462615165343043765146538060293157982307324045012217461351933381061415582778228928796978906103960825928789992709682842056981951276898518298165127623386940239929879233724407383576553711862665995891913298862001510005263312165317074006086376166564448247896174502443613347820649915255940859390396463283469927090498655329108497634042653802078563356843942056308629096307356737306930739444310388788280031038132110682321109593601928883210210259357033287078350754228411251996364039380250503332447369246807746455086810662457757118051716160517776008337649486788893671160424627354936651559016610733301342401073981176058954308351609246878589798927623640175625569769884416482847446505024041257346334732509261317631938024914618548916897283292846666082998487966978784406212062340966142900209624549163249871658936573513466526815706359203776700324940703024793678972321767836020156211089219404476821735194087903254817646504645258129183568001208733054814841648363888034531285514596351867055402304698622031722647014447206382381072331807797389402130313889590695665347271892489325591184978570895150077506654049194570926029099831051914933866006468779200846856795050113320999774972063082775764062295429434182868988848983151083270649188186323690803384522032015821189399917233943946670184221023744002789932640011927722081666952363266157131083136483015935977725243741000605076488596485862839584285246309434877393391398839411430275718327778958891561736475971266670009362382890094343320472061891876541606114537307483620612039674663849538128111305162712443455839206170251541289664489402240189142769679201132042567385799134809227595674848668268832203017542897535197077897000496272861613752923547841559516976557814339712233151430688622144607961043312218721184176346181770640461697460034282819864732872773440378221564965006881820498719041778632950281520080915731547951356739737562635781862333935836834201669272670527831028250628969160881131377714787503330669408357126495460959403137870131953795042824425323605437683068865692448876129792961103427122429411375603886569385076190438525497993386484209014261183062782034101429114501503911828438774312764359469920666505440774330841922173030357810429511326913591430913548237717294865583705619294152464891810697748112181346703180110935757749485133178893040094686001776040793683325419283109612719564835591421371568011335598499929443624218569474941739052242724154840351563070518446005255007999582940527157821211669110219511702105162453409133488280385357487666835813467445699081522989410678563341239185696272813213154855619786731268354409808045352846425376701600564790024577924302144202836988528060606088446327732030788047847738895658737476025379669730079731548291282028639637643247314731241445502332282263181710330332142105367675763644626526188822590813102505915594390302741832049085446964972507027522980528833586607755784240656881261557849983945393556507848550167881493996876135025042711378452493547238245622936583193076884293691892760842238819668164084287431835681549577679047962941127031118429438459567695597954694461753691560792960887608084207810907857332412833578934668792219496268381083187433649519955022647212957476274440218371334395378080002411551701176639204268731432300642865155441180337133246965780701582696457364969089566228545637274314437992535756349462644009311557773602645500545637849482134605889276545101081616633735692863801693800755905088586666022835556879984927526996790469768820709437133754308783084652899880777311859554196467337482174143653933914073218605906435212823242190805850126138885916511329504616929427142772669432951601880661234874379703127212788857371277416682999868659656431329939820474734785335492952455176068286610937481529353002623169120191427072883106562269758657136350084959034386927133479157467808758740378766363357551561793684704935141542389000908234704313332510347146547876802176984583155150933672646239316993167335347538719387398044793193563428953611792526696390676458852952424259317016217218102649562286571791919535972138167710988205792963120713763476346849357537931645159016472046358728412473537978671908041150597094599704984439101556454117579441524736815628267497987131703102945298527783731773698389053594532039468354753926524798990003239543980248607914176699757259222443400061976194835321296946184995497808349615579751490980865396681772610243550348836649173539700484919524456556315679719541168526000569654803531698660168185893563918948218558664042475200182855020168556719811444791815904593471434871257349958348596638257227136277584034356298462334393440820208085302994446694848071741372164252027897288324620362442908048282426477001036708007642000916724788309258745869782382596927800245601386264040504013265170094475380828767971289204487440890769188002387715682147374185057492337519623377343636400477000647737257472863800611375671609132042461977404876377986265703015879019852040009883198182263249568522987325036775495529750711654179588052935442872113830008419067020048134123389900701057704980014302969641200508497654848355244530553071710653227774686918871867381285154124676874988018131425115780310380706912942378925790006162809359343513645186725158181986965243055179772556678689000898493852149785309966927205803159115477997024760881317332736607485512570388543213616820479850375014248070425426565072459982424057824680407461567370338300963620622932840312298796158033065725868431260185511447611001631829077647094909946529956032420996646882639295097380215750814167634088717812924975375386711579211004874482235139385949226552964737388798897759763169356787151326045672677734411953013877960802352909814701524167895866438164437629882184964643013293073318387198028654961007275928375417659948469981019072600787776137390883142526549146522917530711568525843857637168648351365311134258161428260278151704243848427512026867439431905201850482238830516256395610933560630586359364660710980710758349735990767600102230464648047417778883878569373213365168300054923219719078071236950473924052196588661759562900585344394335473429087547074959692334210146624669442269871040930841556293630159939367790068871396441083223687781214401855553276735366866236873331864101912194924780789666255463170444253901706754934323588064366077113048888342756985291133755972598337415069843828253105391463354820270476062415587581476399602475485382349967579408379556493177507882782671922720447687609797293043744840471240915098533834493645952570740347416997745434818672924829391471041780217603186682550260136782768978348362371715914453584432314488742764910096359709101682628699397907011589826389440837400653062898189324441540298583073414939263455945797223383141642529093655944559434415553786326377471787378990069871860215962775961084854377056629055820397916313099437576596039362992649523757287054251362633237466508080680313664249078199785735854426967855690339808542823936565315011144669576906641386496651181838202342234064126815016287553894890422752462183628725718426662791611787243277880128120382416268818386864470221078818599057947244581409466732361628072724211913110297290284593435006808528923963992130543595989196658144432046090990473547423429624803684315326562557121001460660035270394502777290909401778564482197260563138385913221015827255115877316650062484173165471171442095201980281926819130845179142119078475651902767052293922965813890938135667717771184889749739858707238785640679757301750260793008182454302631311518438152657536459727130586871934030423747728192208466099920599712253858879899084258455448721371666908151672762011123914688932514774967952289707553029407714544204586551320987894534298652168906757774019018978547956966087171893258346631127232542935927300095908174341295653039687865512944242973206915795397558706048664799848315898862450098663058075879063501128090167247119369073100806186760918649622506398137968844753106126754152168728425069874357626108319200179518006213868312428689640867488064812185173734159419638131282737461937231013444870228375029873017487698989190521706305003521146073559344741079596953858730242709666193203617009929935708743428728246119285080894301608938818385893968855462440480920993147269766982630153993725635411491664035624057173927524585137745115925781919805237532687681319551294258829849849602109203631431698470639759080576065441913775933087911291264484352930247751014308298359398559744452774986600490214711413538189137401963119688641038434860721495369792526112266948394774544169975616412111010312668716268955036996809854437026820481244185094911071276026537162119626556099926805818443546185541321799910336716088299722561902946901597575485828673210536426409102631852143103483582620780919056280547566063940615645789161203202073436857448003984293983293088781202074807684292027961497620617403697898830893929980173319739714992592439586758616873171289570742064220592022737763391432330306662486565726711704893268186703574463340269099924768605179148895575639422617110928252703555355064207093991498024473675850841896027486114395382975730735170170339713509558609337305652901951614516598508398215057363552899581082019805879538648420581907851426706677132025544456257972108042818637824662128726783962357508249077141462863571412898226122933165330338608587985572842378560006406470658908363824296846777620500108748954141643435544476450761897101951546526137637367680757698302234141402564520437869012213408079949645867470253463949019113263434514858265922458464608752348781443025981877315230539586823373909164437713688691255168252407756447006030958144759547958893943938577344943525942947704613360117744034533888201063271740966676006198716144331308285367770332185525326825223945225232593691377444481457894794715359522073477922161735694080265040685155310173822981261929329993814419691737941787112033149958599335771067823196411877982777376222110231975952250704275431864200059045009502594880855411482020420384573457468667372133349095557172266920374198136895315764314284822314632238392077637914057132351587971653133499802601807766126440343920696780648121975002759274601165769386525733749358338643336984730333872386086613241574354670600275610875889007318668055519285818090239448122764906173850438719098912624376343561128509226448560533596169202587602164853330935896564774474828196729723296504168300710844982821878136673655430814190960027441572895622608351327211953198253196931326528259896529711350439679381356929446592956678121488325263095889442621539280964009427820772164667634948243819480788966813953253966485772611237197133891380165674602721732766711936630666134520143358243574239844150242224551482492579224403998470095497774893597227654598517211055753485494255847963339831416246829854304649301511833730997175787598721296378985660941473094462471031481637629115330207782279756682908571640958280604642227014481370631378123816013892372990055047174514307439534577429862016674885939169196045711870148591540709710428887373089535444227997453462389510758567412530690286325862861249232027739146138096273684309205223490759496452176714535584267331363098260151769888247981994772999465324100766075935858745448084298746908489764443336905094346264144717565757107086284212136797017203311328968796394588790887655058595299524753455177834991824910792208225934502534780890833362210682535067725435038561570749312427996123262577109060146105669720001899746548029929137945024672543131446536209646135258131143320559254008379057989243091203386671857591838044232241811801632564893543177372012237723028354772324762778925916698392501293474390954636571118686921534796076005502856155463121105986587326349823841876156735400292327342220496503662589354486232983769024365690214398338672506756876700540073350810533209548522223829033851222371117247835410676141493934148060886403882407036713661612051627750259867986362708507248990591120197318761909604734606358886967176376852143541380960689900365625571200116039374168216696797832422561818044519485406316050730873810662050225842955458951554915543086122714731294565802064334521273001473834026651003618668813938680640736832807064078412812635065205888457008145582859989806674052338215517109475331801491586697410945873889754332909721140772476789647749908405767710647136428801804652511754062932623401872844777345172062716142609375468487639968753161624661919640514416249636809150608345236931739735928888669925929184386775222700716142108053247342964470974795754664266826284071436551400879240821758387229947000010735185736175858909355648979908160987314592111092845106835681549682158903752627372998462670409418536460336446655324295286295024492128819594989671520132127728688925866008066245468771271842253566553213161369789970685505124590054085445233508089896109278669269200930813874692750941652594553680147806411913112783358211906572866919201468268618771424208952797723672137938162675528872148080623790485834594566323951984094937430814214959070772880692922658200456291727923497667769205312607726363434416916414682731588864661954848659413645388268782779571290977546808861823324505348488458977882636950472032830551481340719445333829060732697907586548333218300375370835831636610790289895269219830469279568105671432554554915447143919191102084460526205276009058785229085725987255985890719466583652166124664144071036574569405674807453851360031017596633177605869368928773143717358936289835619481309898138321043753206149586227937927287917464548035842902654492219732665657912579923254895069794037247999946584746430748226507884792286521972112839019994841915795890281264624426612063553776071557508604930271645026443035084812633280811992093778935470586629054520287004591862641394172050449337042361858768529177172666990938452801467102664105450844642203825551535536519749411423188009240748684505643363506873991639448201417040267896319868945937868736128717327765123685141659440492482233233760690473374555050721423690099716004025501613833929395038526795395341099814342137620594105790760914026343457333570963908932549786361698033560913928822822441254589884318420294238465503926604212624993449121842274979396176705249566669389718700305703761412816156781206204443662905360978205840054710067986132351721910962335632016810078277919037708819943083411326824834541515825390341933076601423698124579999374039088985617138897600824719837650959080523025626842834270090955756311549117668119805793784983119604489419186669512174407691621622170797144823021677009397944837504518718416978390677239284745073256566725651371204201686098271110404314735838343786910849553328032631488486355756686373054819139711137351720013922057084894704994124843467789377791690767427184227205464795351697161000731914591180961695570127844621865223171293845767535224792226301746994032692191254292407912944282930711693953251844557775336029630960616891063839751334554599610918791032181976232964087938071585830853410761642581277290975821119225780545504848311251904343057726650534090725529405089163149576438291946317258974234541637722291491335499834571964635433154731628337977322596724799236783893080340789463656202499981714481171177461082869103679403059137247027731039633694399876718207909962672222639287219663809182287468168740281152525938556492249296958850374423406547912655348083089351335722400554616753167587923793883103255948658159403459317784166224028174756571454077353853317732460800885290363558589922639414625095968350984373118187755224667147718059511644431869687252130488356281510332743029808130448689774976569785818017356925558176040576355187577754997961023737035376958933479342743023986146509194183463129471605797388451633936741714611081104885378488621722209737639586192546855311239811021198652520039919644238875805601527931396032813489472915442831934603027867476717740889403301206486837767236126240125075145499678236016539205231345100710752808347357431340905983223437575339425239972002127934151977105918074125371275449062028154321372569321178973375336018349119818180048308547430988944111971710575726441601315901081260958713319077728096049754672037224073655748072974930157443276226923342323963995716807526777596473492325763792893221953821445311636410553818768509350575830100109330601419312151045028573919655716924623184941682319675087815752265599243695950245623803903802061298737594539103024202343356920010042799970940159819383608792067256854098357751509100323495305844266943967891359487760843171167760738987695423384354248493504510778387807516613749850360040244847171490963329276203368769503141867399123928101719919734797239703990401384499116666219759309004985031194304271063666800700603104266521527077639577352378118540182885679287413179806659382992005903417047872065561332788742857129183413919853497766869503850670736117788897147911638037712463518726256553021168040579466635802530919251163144699702044128137549428790675299937019906401100283868042603149446716002755354957359144489576882198173515844001373869988526134528500231790660810263919181048532682719211236914786821975843923576844398903245802980284857432649534216371045512826151627561318387332694673211834707423860648514693842487257092183240526519215169684003685382481216663928144349978117652519647547944627294025127127442025928003907437691129052078705664832411487175837667835448195329531272304365925960095818419270127831238804110378203685340699685310618538160196799525517790294570116384718227962093858781595487695318184054706160840006317192604539785004679156399837457560086441274867820535669077602988860431860033122034729816708729815186675286652540563876138047284246880825959876184545831497243743855207882553395746340648941784986367103586158146306023528622042339927775126624698356821733391393483011275649931215750385527352963703380914250327985323786573258353407749519123729219407733809655895128729591626280497963364545678661397203120143499699096452565894156474455483414629675684432174717186058516263976168548349860101956747807123137947099352269506718272519627393106879060037348580770145822180063691121267746624163368241543987766184475420119530633706714626267613457867085470819473678214383765673729853933510092854197868420978256257559001879740822109228135968251527623687271583896055890762223716712309126063625970279390721554354379483657788280030148049313613945414309889199791118903120386791890037986202917501399633538178488222701775433859561749028355182684866434783298767313986098091756986739800159164900572143662631601876592338788549854995801174034097777580951940176447221263026443761180540662463302555448310370324792654641545151326429765538959914863028794852326633662383574851431097019347455185633113498980896656769342206771346024394886617120082791681871867424475787485091148434562800395281660095965013877655747307129283064740137840241188631503919274655277151005767071121698929780915954532258048359703646955561800535950332307515312279792026678842297111423322351658097629692526678605157572109602819245945515582808814602282038327083371487728085616731146862862775112767165255063612662617555795081969543961719067550654838067945733601586569184184563187278060783502719116135898736437509207896053929764360699788474437177898674661974517302353901201214041537566267719360819995019268164400246390890631953317582477450512821477957890163973484955163777081903934967082956150432922419853045336695477529715097347234718435650381281239370965599482396968979244053503716637585047366985162008173027437827856532517879834405712510072228778532291676688109845738233040516703153242970431238026289794186602921157009570635053480232103980254866111343259780797250011623061560246159663262904805495870584631947302882773527567281283081064445590402666415899322141019278383433964022918306038820250772115248022234528360464307750199500939788277443991518189022549662946930263088417721984232114825507250138353070808610490067115739228602270119264421564198843113531546415072522417130770625618917945046516702912100645213170686465221331070368830593334634303181805865058079854321888691644788304458119812439809032730440738853597288248920566277540460730889650895121553564350889435987917581208261198743139108769724463155662991885728552700781785950473439239913969981316946023218061453320070676780692547491438831590362911754660292337223519833239914799948888787522687123546128495628041057567168627665376493130252835010564315652531746196559395573014385050646506704032150077816917920563172933762645980211361930828592764915018752799487844359539883332744667008459702170430446036375192966734066519425553398993475898627441363282926901432414182842373429919799076212117745627878919885735233051470835405980551102253886559064771760598459815236005564822272014788485598026745108443326056295751330570116200988572489333219857682357173517387289124861804244356066227241030575695790396442131629284042109563751747691043201828736622200956303889811856189207891707409895406348756847379430281850118409374324339306657349693601800758800555767152297916208521163297625484955021204244239018456198576916325101106695566660696531215794512342157740342737808610986605001701821199268978394501872934043391417725486291075457699484077127663466258394065358557350491441697280551549294052708557312055679497925601337612168899076355570321604771526015743221408938649360446145598210561684326073746883159842056974784851168246860566589102550754163510610097254196785113922632960151645271418117070911334132756400590549271807270774517819723640434483567115237016706544342771438524833141448112035002308177821357503178187283107318986718895267996121740284989826873452554109086535942462723736397121899754477752437191698740759233393763911683038388697712720271053572491636646038676749458785606611668959983294037841981464145352863719978989277672234473437146847827481020682517300774597405636684572659308283027735485595296950860004879602550269127928055342222776827659497681214632636588911172868550056808891343588139756400125479588272348055740804183203050101315736289353671222344601113024162625874361856045351311908749198550024709875133364146420582497134770445541746472237399210990443547559484319082196141741246060659217509975794984752366242575096339062407799574253109281369990719125947072158684945755272946604288645441181161608384709978606199386567025078363602846826829257566955145185930839648329359174273043424602836656918903051408058232635923672254186987586710317831089972103349005335365039363642030972765234874768412374018854833511110235128900386820283889548124394582489382379060060124007753965740426028076268259546866625811292207222350770037129820205236646052347960787298743462192604096805299734140297516900619335354972378409483699306730402474156465670011134433797333942390833462213422632076908686361148653868071507472601944201068443315636230428564978705494479559932467269138977476966390359751580131659559752178692527904714972569473727215765029001496173462334940707589759479438413786716468427700483160126001186106184296878441285966870809080563090763767301737377964449513545983377986210556682812967846549843131926169538156415058483036253221479659676996342987943004572378857428816380305781354521282488028023376142642987288595956416641537832694729060566305332189315111338315274656293653228084243042276891872769257801844688976653708474949199684275070220242172174612200785021453676585885009613261338930521374359936069391732433873460919855078739863738684203516427434707670428151920433073050098172518171230784954542103269824019395494007139176464365549374132879634010646452397881234916775570468354421200249238501680120208659161881998388817912393048668284983050204608829209923006113601796769528111960495529434602544744263727160294094820456698864414944103014990917044641304891271121675188609990018905076394540504843864517838064708017474966510513570318033779450495360945386987153261651368085828911503746911759647303510997356090383986269770149553683590282485486251316338010422262768434136937768100311574404973848719951146435165386768467040862298127176287300968139064753697144218099757736829810161805426588886545573266070347620441967550857177896980863695094464246570148688786405157823779207450865858134581896499191224579445831455991272205184872444543932410273080652177487193092686247209023243103172613774714837220826917944311052223128880206041398115206296858411037110027131268818900357275796683682865332817350949182408317894686923494862679104722229234848810575085132469795487218620568378303569686268727695504377850055477159237732965003021530167856959665507593317966727579044774961465224615435579955275997412019095470121110025900740634278437749983410587499508230675628442913661519382480105998780062230590274116369322118344920421941582140543322744675314963441231109220375464327008991871987789557827710823249632605597392238919605563527961994953153342872535723960151267343223887855280139774727964949790932366499401165913205377449658122329959671874291354381178726241095306935912173641611104898956681712958117370958283620584377687095606602249808487258182394194342222684993880484887132667692539750570979269543385800048761400785167722811622385115008076666453333760780982360656200004021953229393837983763419379567130867723257456680669342991913553500553374796056863864591813988795790746665162862219488325867149937541553939375812119296525703924455318042564684247221533182166987401007461873981772646183189289460817127981597443526153316124144507872331444196035232718457282704469359336118218714385414473138197851986476627392585954080221011975540023983461279655753949851373233726975174662198970713258742433258161095412141831871305673624745510264221628132501851851733304826899055873424598198045003043070171059992939421102542084377884976966273625029256614804066487363899427117826144649528946092804743181520154008965503729577327269614803849148954006271602576591928703068997815040673745143072984698401283536459212532513754675580264472370954075852091030654726022633556911829716776592741375231613248514384247189234835461732115008481777212172034719710209969536227841398310107122916832520990473552943769534656254784689438561227032374837604820494377072863523707309744142399767918274263806235715975552893948014865750990033021146542661331154275151323150689951076893685598449740092449336481495386567731027537447368988753125011006011518053934537371279087642729623473803494496289865253031149463085464304316203491781081240539958668341909970746313251927616263705142325515182962807232766823382749257793600431882470888413124249717216858285388689125716609924732533226391610449195448115226231629339555569674289089408689808280882527812836191161080134306496272116480841121423663976503009446151690063049922969732137415214921289760664854177371616191878250574219600053650305749833005441161230962908216104507406833666050087011209130950712529932633053485808575744265250304549387739407684381775033350464638138294378610778131499336430732355462766176287189986560173964050719361152782209458035594304921204635851938536419598864335442369377617933930463645063099369379976391806714299921192074072358164795153431300867569657899884890252335315078702796943555943567257085685164529026390533620292762624817941513753210935829071629465045417872680048559511231046636192555344826232565778308471021468212510602614574732204066961331066704272983496705502872841851274259105005209644196446028211634691623561646602171713392068270217000872446228654086188937791096178283429529286598696144989554447404507141472135520247628611937418440069634818524059491703319366282533968917687786035700042582518339693336331891798818548011582226906696958596634219314460595666426953529995305597904406117121313251524642025159483103260764821782069802307707781781161026113183148944470244466332136228193844157495163302105128272846023782723008491748463110197578269836733196355205756058075396918693673903119656971054588323523805876802701352095927987291861170613240408605629143336276216059180056029968225896502162349872813780067055329670084874888706401034155422768787201422384904253349442878386034577975477153109412960428964546340728578011010535777620549009289614346476334795889968472467189495770500822108613694747291652983038881187098456218763810587076175767115644530834699968652475779096236812220130030510831615696827986938548755556955189646457490771631529880150644989326857470335749392620910245887493320004260798393325230469744356559011767640833671079104205014216197175715068463277106596356896065086557079789159827573361022941109214819733651449771645085470674141794316059845567441249959934783940169086322856571084973160785163940432847415284649919345703254146033773011172481652341559866813229661725678501732640513298891912473849909003255958444205720938153401815826923294391534141024555240136516504006313080518514696093413612438779994328636345548385100774461206950150020249958957850760764865001070235538313876783261559088698691415830996221494265378046470342479636072804802379669514113678799530523531166259728202922979878131792744829167946611217039835090815488226732853113488862043802382386424546101026988838814458232088609047709127806141966533589850125661183860540561909718893210539543400943657000352487596562262719861512844051667885519520075508179044210885158679258035504069991336471159833141925280476622268273447278580541309641605828431642537113093291359345122777626872253653299526069894574855089912655328562084748676994808796028096258357138240007945048954003378990840774969412049233609011189489658992792257663150040449143269963373274838018307894260903168085813951666936416128978558151770816276621034285555583651307142635072845065393262582480433557171499836349627410258970465922763172819008443146090356558385368625262591848875949542405110398818553721486301871782834518704212529755243605254090863717798568455522332842994377891217573359145911371068174364144047797373331498097377230270114155186879994564913634666553298957527315930990586224368234642176204618825878601315920109753929385754083614169761752723284895171038175134083990966467168541385534226778145267661180452322219137107897151490387233784511197030401005807615400453088926473241120446478921976167914980853851851206428355661728555175636235320617341909279986966874197544791961210866761619961285964533427383642553891776430525729657596717889311972264677458502152842730572026603102546516050563230357037025070443737831873976372822059117851840400036310747307339722047170677830917249510588872215216368498837544576494731475081642558692522789555770984494580129995541005305408285483267200250601237483791176847811088375195826069774000188696542906583123901965959911890874472036006013481514860607784877714651380176000332415671429224771537931747018420379762405401736655956527706112003923829793836072675698555040428385692682890615448675114396649123067055054886000069666242662012435335756098820883673977110287590188068782066497984480575548758560303190468307353586913129894129331469938547657336230354204289627742891699173451657084456326226038300405401406684082114701915499987360465311191701426170309785709479668664794731583004773823495713526733349944997150567459612513695301071740002319417068538598372054654114377932400949289504309183348250299349250852733311492656587560968318967855896966070208663773871464760304020572348107722530292789546661913034849846359992913276100828600600258667662675088549983077241832105689132304049770969074299695864835041047589250057976976128381602986544728852080774370541444048267264390774090171754071684249078444278595996611313411380719565023881348073605181809153051400128770569059144028431471592925451567778013545956076246765181037231578861451732864675232028944527307185110424538484821835244297545750477051681006542119363475048149747216783457548558891974281123643076669333013462700478776823900267231137531215765920351731144821756398042273096168184170807326777131788262363129240517901130388589895473767390579595036923886475764098387700266391907031838615735179265193612635789142310308090268216734810006981177242478228701031280945644382318972965678168399802904778009380516075487861201928051569151230636851506903168172603216453966568692352031859833968625833414156361496828123548860483513948757011802659128512868974757498111407425704889696111851483808205276849281849405647997999885868399317913232328013556707422178153748916241016828136046506260033834738767274037548091437521504791276348058631391065077496688796189733176783964497401207448961303995039556339525017802098759794091210728053724899911630837095752222167563147175551058252524217701490708570087582976864978547173411918965924152988247945400156200590483867666239413689304133618164804948455287612160016044271750524882498270669855243604094443104858848390936941887682020195062087415545552498812041318681948390906556474945529925658481681106895480419035073366724339282391287621773048337132039525667931999382671620861140737673493101323394117306086625104759130104411022374685848704151953590043498663049494964248856997991732750417428204927358242457383033672301107386785347120960352964978955682172266272714888662552038920687399163829551420918239931990877860031225077313367945796145758017482991427399187345591179627708186166922782652333988636343500863322166145378833550073015425992052318022609304366800946929598788737493015792035797182923178285812860702760690660158852908111578023811220932895223983375640830514852622166810919010324971811022989126070856849868994791419112773655518449230527878135762209774841219634456321634748856768151445385172393002199700054875709875385347557499321928092676986464215749172687827822554457013903901580093072428271169802321520855724201508534979154388395079653049390857190330820524745457742434094713150270609248528072919337690420548054109032893442040224977365119137534915424659590391996864155329656811382841287745585979573921965026637890312954409664396435850290340232534977582357700482325734467900257053567610599073120296124027276637495517562885640214131268618243213820969739542593903720146797397409350046691374384072736546311770005548048689574773376410668656433182668470451237548116449761695705573808852717038486736054870709690938192706942596887196829504175639801178533668933456439212009800596549977832222354484898035496290907342628454770528978924044618122070542191303621819009585019995245754924368361601397031758272825921887946908618724492918400136930340003804630618428482896715268983496993067112766170591350283871595167426489635603807377369426179178468221250058411188824335955663157914775212031271197521662485209313543911267512911528793047181786059652027177842079870526084993610828047776313641901053439626878702513082653056631470410147598243659096482949416843531249752736216551877063415420758648821017662300641294766386894404417134900948929814477481369006009873073691065450115897366922095617736468597224176779008078002339023313282330246850798069986145608773044134038090426482778459292730695003849630160844719707885999153685766189712157425060126227945682586852715575795374319940108004513449868355816618486106664134484293546155148530328498907148357309166997114336955860624102417474924371189601179368009185188374918386784871899458981558003914405181640855918896842382033776671350091704620785016947205635563255507306129317394200703065025979054404193178219219596832315023466397811535789369788299540373953364443888105292910572360106846976145868959798443774593853619315724147773285505701578233355184604620761635718108677498894458730687274338072217870300781166433924468488018067602104702202758472301182989267403657514858194134274720037724257392450899719338566346059833239725234019686027590965420554248536024043364373517540903759835460587970422969040724026879295547548425869382298039063226248312344871326741305898012627106253507803231660328215127536429573858256955655801159157553236107347375400322341185932912980303842484164015904021048804667487051430969674838445016199695311836123324880346342908279938065612385254346264273049084926211981951188367315285256118290369266576996773109001976265872910270513928557365618572532837077389920167555802106653929477218594158756250919289003653951853364787929654583384593421494046793901935432490527311204933974682111228724896844578236782116810865615940167035764989698941060691314393150455320651786622523272426741631946986150814973740911957333158156934752687515792617088766894420797647173916067681828414577451370048242850400095649492823911347673484577346054645428434964209313102332038415713857065780323116450238098144512837228481353947311954760522493985731201791286172921170031532490523585856945381254262129130528668047264989870359197097271873761490409940587118100279879477701047105053380681524670592378316282246824863851594195487438173470101594789401106583180821432928686424981702387944098427209990828886520786496675757065226050985150839271139847833614150876780876353052231071133127542513308800211031995592760471408841151837602186327819718714257630872629261124238820667149918277318119260942534411753719779690611657386919918262535450978912060657730882076623691938965775562547409874847872544450180017289070572930002189365229692456763734115689607123850998204188448772578315314492134450676564275093188244721785032986364642895795912626294044318243268835453319012620205530854699382302193489650844321886069652654279883298334663231141850435812168412388465790185762239191629859229411629064375269102783769173164237340599112298474229033098986852483838244961984211301944962638759723152978466365272836504757434992285035676341011905438557795935274169362994917102794969931901702312705885872047391973831641358120828092291878390565927396360223580024238308277562498166442307034459952337248151040031539054896474942286983101888883333359551503469540260775848953841409263378188867155799674486136353862141136535133728281030571615502342770937285742547676274844292845839106652199571125397399002000235338077228091674871986342420876603270083061812369106010366773193373134700779738810186369960064665026074719273541065110258563504727677738633220114232005267763965154476668746063055427494537832749186072184415005482182361724504879158324173440369791756759264061084276020442685217640136862244326839230430697383268807752461580952244415482803300842464303900947311665522671034561561504085364204845043735347005579562982404119243303839892723637215212044098766352884685855132477277873882516982914982751237558390368489174842499272450634092590156354207449498774331478625198004961752688065459311883243818110547348565660994144302462647944869285214979715537690909611538836993410926189796237033274575889823765436428205744635703732148452345725228704722093574408372978136071010808051490941547884777773155292113120734834974861951130996448403295033968590253274944698400163530015246187944341364094895007082404136540166189747900699553154797702618829162113696343540406457264837100126526653999154464869097101034353535240992682165547310172485646945833500694247606883376112929957662780947737835649430782575265658041703103271195827876388614739036372007674240892689939554208586139066135378119533347650195111931199705695548185695638016658579145078568292798513406547865021951870259892004405213007013831043080065186488383661649950459411572884376069709217318613380945318648500602220318689905813610630190384805775379195169851533384575022911368246972829840975879532569760181292146862199716419476778734843079114187010160801755611226746621427653085311803962385132254886233435461155967825542270613941562158160261580988155226784336333031799087024425101307434932687827444249365563925728307724545466613070791681929802234914465046523807296724551545910254126044805797063561900322213866025236705610740680928827455359374419730832557050622006069701932970849268539084064134743787450336375038335818032013083712477129429372772985069895953764449489175302681776009636598649182398442795210268115413883476948168646805736970384105825588961138033430563430812899920955228250936158137615823970758997360611154183739775790352453231016811899270110123751722369141856309423551903620437735520035612606443202167882399932427357304446328355752349376853142484292062898174505389808890779755189739794579602564841974810093093681641834044565783776235738387670997733651628213884513094735235291225348814175171288860420954146162154112487671953218050899656850818353328576903977102035349757828550284449366218178690145107414750636953650642712516779687957468753236371328182394218499500425343638312518192058236607829020981120680767536781544211233334355570832706670288905178196763781052975845952622383818402609933553480546338772963002505727154657714762393786136701509143503988946201976120215659251280216199508796052784975472817415375557376495632864394315115298460014960201712176516502781520801361653990278459048688497120714484843877508927165191927286548361780794155346915012408421780066850594722190103321199684387579826970253920702495224764019409263356135562518524508725324537936753179783828453675714764888751034273546756625787477112889119111120265997350001616440229521260182163768185611060712821019150214255070319704221947932960992177208164015767369696476404194806156899293367604679958233933336451878534437225423435568548340572231178344578946351188146791604685548134508905510859854149800528984967150278062773228291939716463239723811853224912566709721117996846033004517830469406998298342653515647935797448760748608305977011199801378274129816084982618132458843165194526377386939023395439475843270268223360393588236791434120009372015806942126044654802174844867024616199855554097125051808678194361841237616759544390490580338222157800459169246925297562244589338567251042797193300507934067594301995602225183507358461587327249443375081830268908446647452687409493250210859017167640660102851306489437591426505560451653275029296525774059685621459030334086688059226752506265427068080400743561638598213419178908833349345707989354932155560168902726173108065772085604196100711801555199401995005304848301758596227669400444657276247163535396498909249962094240985595406916308785426249011777003283870901698251261719753310258919283914749094611439753925603063740037871463403774270517353782685275580323497590630177135331677260737677698013687379130540595449572977107973596376614925984349670175110718689592258449685255612079443995236375450534550526546950692382442793195811454936967169601551916751550546713874039802303067813602381205068502425946672671162768085637997846508889312815739099384181162232343724152697333471196933779942531684076744912788476893336276421480142199687804289619855959493909912744494816529317195461149286763261736669011895612339915991046992428527950803688028257483091919318071560624012644286117276607446164669566696226084979055278605542993463184318136208385911380123735458577293854386400730293098908938871522550594678081763013467297029791507712454287368489522867118761369026851623157918415270004806808277460376926483185743669221419828441485270877320627986593993223825619284680148660649559937083948553756049387172138486467087443709732465325939949565891246649708097834106159949790065633374603477581693209917630052240698812547424289180583986221742791784248708342823451230847429677021138860153676124046541435408307283082398358304870544832759724400103573510847734853617614307542002192226186140048409524732741163154611806490073169462591548906693004015161135066965824013548149138087034539949046194219909241776556857141346883814808502912183128420583786731168088132044511368084008483800250804915283199645753382806550546627799095989267530051321574170418785358457678705412394633105009959788068242369158890803444018501715699256852854960341263508015430982751456352128270754861834816086495275890204452975501370899836847269581319115345695956298501305902671260914156210032623779034394086679632791308413809112081454142501238422855893240535773036978125425887869927358746381441380416671493124643884526101537696852997625272491204258933559012325868473583431052144014816095334777652327219521907582633586993145450871112195321296547540361054376687440334106104312399958790891852522999162993939510825302858190271111392944965358434021516583055307395753793147904439299717218742991001556000214254477549794624584022977717099461370296327038833040135435487846402417877083128025824327402276233211534011066097330161070478872890109045941628235189899121785801977640035056249999110463499530762156943102833406022869031735199188709859881624293747154472634409833315982829551568664591492678090479550964887625290293306383670836921215375748496169300505785719923699590498776399797217906396946673037837171070008898924082548723369156080532258775943639084551012439483242034729434511235287610502635491906509608679616218676450187013923502817294831870872240078135746175275641716586057353994527062764812263568618741458584390184178813314176279251788593380813248983377476151812756838006886356100416624148747321773985921774629683924881314105567378165842500868202844709109094020845850707628150057559263576488106756323240601665744808952979997393997808879821699214393011923943495783667371419592027162629078006740381634280186194235321193270096199497732373902325045115404016017377494225203778584492046997150783643700993536617664853902884380671213728232884943845719955266479108039378585285249640382910688275503969991930224786526032488866197592761742409347027942117708984670261190350690246912172500324116735319339168815817932119178449859330754907864498641109446271842562890921743537569478671595619988122636292294931821016026373080481137762700837094135194378882631631784924814928982433364426103574204339921278823740398326038740637583007894960389531549743031350836062019902338356173008323345964916938284855312386855304124250627929659066596516785295014454474805823923892103543376465668780536806394204009669947459058742000724113826251017574548406280678519126816295054649671246809451443096249955698716194523541288893758712142089137524281134676401550853557736685208857982140410275492354369744501266835870617219454044590048064172304303724921279383222118837117304650221978956768636814632126504460405832097944532906579706458693560562631415558673824658838500409241809094482383917141786521531221062077866221854951142146983836300323833556176679908458025318259947879571766886580865628551413030409992167309096847154269405526184267601721772735676286671065204012996068864326342725752602434465556212082518589986995572095171392299102455197983329394306771306305610995170180943626106737673436052611278447051691274583739866000809491525208002227688831849009000273865060155488400346341473944483383015082187760688815632265513698470510257594716427547119177463631055565986795740378013396709197003328329088010893718607681802959701834007515760094463595800072675054021978474064227393384655964716779572413137939281759817932829669869635941687514059715806595896503151600905821409541243079178109931512456197778814531629061685634966590809910649932815664531344613754573841602733920330998128279375105424797759329583874978474363238269250292553747065676136070733571533413288466762403933866705933821882098489663654523394828127819644876037576591067889119982591198690052499748316894497966932624605186992534676884894858589617946521863825491137968109351846425388139502851871710798228826789204814677517948725028146818123485887939837778086842140078980099791481167000555772730445860741085086225464100680810496357753518155107150676284479839216375749838793177775861057672448040993873276558779503022032312335543025510850571894264615849781491636617308577844671198276988276268043776671182263300119009467680535455773885844883700071820893992838133996243587701413563679325277454156202747872731035720464682840241249430409922166868118146954439825335427588683968566146621215478118359847659306942247137475886416165200749236213182213577498050013085840482085511220324987981963216950802886980996134313093246620478794044939250670121622919997256178250898899306714626768745682524796616815659166065131521691179795660488798864923616031808465415971407047823810658026808786162949159110068807783867554998014419439266251395595701890015453573535117839331596604497065657179381534111332225856564863059112548334867621669141764355593499412672577416272034977581217249720166883562882312060861015300093660855142524579676357820817290230031871750666674954292897958441446195442738619900035892161186302947307308191974496441451317822280731085934679006471239688141265619766556490795126592637038931471977091938407972101069049336057181155345472497791533974522126284408852582615963713149928871914666945709015955033128122387325961661832334515615408151631809665912868998640286255164499529910938835126869114139502385699974288519828464041434788735767525031820439014915750089653207761684197632181662999009903643742307987353831945262344018700807351304873387032052164472135117095068466778573401227259759868462195443730341289783486877619251750323996108275471806265418383943366832021020587877246006498091602463938480631336428773748682904314770704175511559109708218099986088784279512571807414058272384389393349675496887636289718105116813309649823198202949799906937430973099396405985195956457038431237256339211575652837415357459921379729301713557256619326028332523320589386541375337727085980024551499434301664914224740229620909620641541734224633705122047127671781524310189450543866841061525847980095392687952427782146282348604876904989766337276737513141863892497919452501109003403901939114286779113346794398592149643148121025052575271455395915256946697356768308563382519152980479311198910528770917722136084608159596265024896730540084107395942677912283039563002493055861734428972025728300200154721396996585388868877726230742950412491999810615287343106493559740781896362521160480790226610650901828714727240714328214372215323816711127272791946929303399175061837987391557577864190038167625951228353876068456399861544875185872184447226777541495827774662990954461563844167990786787217324472042255430317912535720175682352986091638708883245085438806650626809676433049524823369926901325115704327427335045094921124239479628773144946857531368518408174357889234877448430000555106758824846612246226603987006985851886247926307565635196553338746058340896012965421856142105255315874841654144932679390206088120490095411296434519920539876993353640634901214647870843623957770128871350941493113943396120172722530590183579457178789342942845064061507437581586640482104132498645957865884456579109608704573945746516009103950229937439912115257417795389759209373476708742808668352544854994206137275362838776503222100097924693982369152843407870054969861582685209174212638151841228946800967941846835080913291675135471667962638982849748542989708239601525167345361534861218701916388986225039385978696495914579890745960637562072464558238439195882338975522507216047084210526810559072557385753390521187072870282208008633622469665919900536353464234326870788918286230999830079778955253708073399040999622550334836720818493473427667512357846501779209861988589484012877090418815821578313040927178918256030201088575117803810717732734338486440986737310240218817960270837822789126700108631745362850530046319073781426003865691350610345416951798902363847421748785243942964582083314159414070851878500600336951095850952407338903045793571564149151954999481515963547672723575302588995119490950934806610445316329882989833170078085149396070890281968854273129815101918160842461720018261354499662554265430515142170041051205178538007328455995533300413028503298314928487697459445644526466870212264956529168249673705164197842979081683217983512547144032583412494662299814296450849682933926894993697584649218584595874031845059419849477524282891290168719739334826137898973805147764813764713649542439902818617327455571320674994625794053572031840546981327215586248938504941073760070784948653117445832560865175301381428180762756104078763689532673358480754434962467176483774794277233506235803808448922055463216725518010999574462245827959169745307365650445822573867557155902672316480582286986565896158148884927983612205927699394090993653832845268788119857228849395169958726831500227613213048738708342955487890604053419512201340137126762214842523731413786128757386241111810532961229682812513499912629541360022576113902823864430787225879640668694507567721973659798831760985583395718455428419698752510360121045875333953297288522873620942933939525030518923767205418389904617123234867896042683599624497369682630482650701822207663484147784973725927141779463327625666905237091584206563590411891017142617084703687434081861800049551557233537429773064523555419830849695671393067462173482000986441849240955034528848578903158402333027192152637512347461924427792103810225510443523694062866493751808829870724014590385317418125900665945809630013673472646410832892072542750030571410895591365574629714899522479042466902632538328582899283842716900574811125098249910386946027356659186101275454362764674007114077902308734239031494231204335487485170399559484788677656471930978974021764921994430835661023489545269413105620776764055438162416305993078816287886969828951439634307085268032854377118266914876417030398940717475981482422675272012519251227333116207592705864772918097931378608319996510927806048740638020170839400437641007454121163386367730989822480793463439135888858782214226456513571866719716494157674653082342110451696263180606901822253074236606371716898337092874786464278703011796557948774939014352929768678308222191012022285518808828156463193187710537433203201176387674534511880407925823619964820281980298969064669694405669422009185399817063935944681825707818233300853981046699544244517335266235502993584042527472710363837225929350509670894285003764160139889985024228322616565191108941458764095892763629280793009647790486218562673778445686256243471821817877504566147621385525269245453000902965588523762609353246645941460482871312917368494000171233365320316253590460125635675105052879287768297632188842867018778772703075740224068118307180691419772586894719309864733984461271824822206089409139142247840420352214876961056559180669453909796326088842929955843996204682572071084759771744204572354709218522118027837950634766734340599296071634975544960443315015104862582902194029709491874554343683588643060554463023161443381894804485397944909554437035590104776252984410241559619826506328086310095590824066400573887699207081553556790391079468959559761740615618408425957927062456691849105706016483911087593711631006231933938627419148729703265004392156074701829352999484065534547188305843530048679267014671800041445961684366033861789425930451425652801927095755666031165924180796309213438556094320113382647245843830511760738025013206805357975796755995909020102379036477491454023949621354326147058989782757768419115382640636619543724333148416644929205762728005748827903056122323502517412507225249542370217329584986238486799766013297285650227870093146793636985997174829970198316755915913980907867953064685055945406762387420398836546584634153070824544236548443396247491239605854803252034600168392082345449709996941701129346486527779039869632588764349491888519386058299020087095222871625343206138564831146080285179482325496767322440056000326166311771188824982503896325411640627987786326099453331480403037208659274446043827169634486780807898580350081922956827724346392706071173200861595329747524768359232135153778402495791593340170387113431173804229210979712986571100143760946521993595602019340067685357147343617175750861695507351452334339819489441495511812516490355440589876639353064257739914934738238539056340828805240501003769720059522963998518192914189014001722347926401153354472192160787714934953472009405876861759717515615454801367214902125104866083867113532841912077965116969567590860005646547578533084526778808352366461152434922966935703496444629604854478389660721228983291851168008030933849781664235664795552395581231258885042549236607144977459983044580778556766565000535717639731424252781006308238608097868460652455066229707131511497598911855628220147941883012703079993219810673846022452602805783645441994068538499444516167387833337897477376429210896897864980570642189219858864746093376007663761138417609719866413127151620637084019911319999825023612065184504957580070621711115454086021971796562557427002671568324133649669473587544597844831671981572233240476205142158541111264249090694882607189843384964924162405469522646330827400689138257111622594405100113319960244833263905569891304720258507462319622577684442557305763676098184951382046457540710748548427632430115391344074114308575051376602966838687895402330622646496817241777163653873695232352485720286288762473448521165728680758672998086345689654535171205233819878247832666664847651049341807112768492738294047331747160063225807278546284594426541304657515270749649850394573313725719222088697276551018808345942382669134884871235132099756008208085890710210984490671317259884291718215822088997683657744507413823144630190352702295339970955634763878059575728349567501967436297554792172158647244324201474026081851741041450522010666354881628995522727574771277518580251226093149152441005662670667057197035037905712845377457051656034471572960464887175500859091188496845000188201954502732005344848148792919622288219887076297134314282049671556928470015310634039160833176745915774167292579890608100656947180372820232695075156658813321553297350939595353506968212560848622639121228246755124926590747399447762457658924032648833044465073699894188757289402648443569212914038232560326207510392652045741535761437310531152531495077185548191186635594522438633758763760371312126358519058471847127850460881444783683626515454983668016394207226066145950949770861238122255171699467011718143832597850834659312605950301468225315144950294017389118503282298707643941404734294376945709388289432181651060908058348493656467380372293784681158249398416956474045760179904840707918452620498706824077140501319681687424020567465066949326454367815435573494709386750945054075295017845665547901138323566396844393496221787284398569134413817928147281839684893146535528002207564028083992459741912181613960842563327860435586141155797151586760918894268062872769164014414415952685907312070029760303467102646272079948782050225623682555092785961094812525737487297612470403032428158562065308561517761045719352820878888974948401036318774035672551475727396188267524688323823428207688982370157082884725584533568428017536164587072024084301899896203761275351726346811862980711655999696883423460303326520867196562719359788575124322202207862161319936833310787414076672741729773082812210074683797086317753052806720130546187278586076786364835045785944516673855903186337391181066208914550269068628371550158304384535128183237856937835511910615591281328576746223405842948324365333998928125690137368826292984798149277531466740412873420932551544607840953330617343204375646402043913456399388059637591302717749522942767225469787467201978944811490479777006855480157214949590361490400014054081412726011505383237898532941045221130523665062261134842788444459404073386481721930736057298738870099428957895859972394159524713076082997473306368461002411932948288867484030051159799498427143025967842440055804004000276946858555272358421630338637444554210645148646860364256916232639082735824390802682191706636690855231475654569614407507251660301167302031780412011814479332809872260884664524557172512871761256326964049393192653154037891767312941933525290381539114864917279620211695249510515465259741852271373453201486283201322873688485488734147403243967290832079063965275234907405854905268001531966351517895781071346782993678882622225451459585986070277415147783434876650988615019430052292659212221913623996854720885843337058932601676620989650559346439192112339062144904079026938357441670612308189498373040428879990292192550654149494753358468211806749897812486065079605267031689431624397297713947565457000133288295690040099671426786617331656721717239631301365088394699695016498653433848714051364797378978362250663042425888604210519518240818224877830901618717351362013845489344223714162802481062265899458806011867824104973887267104459636710266625245997750474816682196347000680227426055424845722917347628904573710805186021650898847817835124019886307834824781794864687603419324252094335717688164833232074594827238709271780747143593662063449804054821881198629276889429462408678891829089893318056763025333283763242133684821991483026552950606467493565610269735443143052788167239434899240304907902304186677788128368923870438074465261143154984631512437723049194995660162150703088782771523641104729123683300147335031170971754152198752926639217880733256536049846885117803048878357277455264346098173315897862128401588082607308740642051532316031106749996507146393644942011999294957401070551250577662170210285671588878513553522310929552561853580721397918430778641374141419453958231240707220126197806965015104020523106370794128924802250920094523719222720425209541987925061839361924157901299264925786969341601614687270114010863036880464920201629950845589384591511583602060664556797995638535874642706488830540875061524030877766372415763053131714437726327491848345711609405995812020891005791027995102184079876525807435352522484145840596239863372998509029293227806704190017922191432766477867488358798664901192066904786023586181170424596705722419539247577546767705057057818940603530468352172893150768736317543888474517393972767908032895491880669143464969318287104139587491531697978195801988558547526071765988193612853335617582908552521497110724915526360382395068597460914287019511166630781904789053096883061329498800854009925911832952730429425840023427176494623062115365182260371561195399371686231792995842950871629903859845823764663087618807590802789166053116736596668202497878463336478558306210186209241040627208457040861596119131802654159737643178453654402707938559992327442804306537392504434386878602164116123206129531869330060702151089793004567150409612763599836361187448644865742131499651062259005861038924119190266583534185190041998544950196822218521257916426747079767876456742436097784172922173412934580724240077627461048028987220306407058932775428592711599746603483158979003804738378556288435713555845957861908660369299256830967562960416984940575071955671934276347712060511727128440485632220941753512351595359772763004863249321603933247817788240291448032397183295493784108338772328967437658919719434551099982719673516902469697485318850657763967595321299116887036105348103578754264267231162334030827954358892703565939278449191292448845478212433845762409423263857146535182234454926955978380247722598017242188721959327665223753784024630683217513756654233097515865808517961070655746889558363556408698419304459612104824507745185093365863584431424112435667965162874106284734986914957276983408927103306186190775138134056144610102992666752523542801862694589160747546645127545932557278984004045631632352220807836090510664642970638765336460807707469158571734372561445628973625919799920211515529968408592667996425166029204041077259921975675924617466746184851104992525039060324911358079636948617976304680360342439589350426753896385715556967677771835769692237423061325330036208635986776049417448582116085472867093903580950180689300142165847699510036943850099209450773911774947886884207367479632883611843418430135830794379930088046397856637564059045595679562997329977324231311448857050123252055019689341613441364984449574783721621891931769362573353496296695366105056741527982994099610691945299199566400522868254766621665470609766942861805207079329825318105654885254010872448070728117344520003835896366829338777703164683266687587570455165673669761262658655931624990801977866015544475183878746391447264350759809323051552378595091331472042999034278403757814829872100864502913361661147494889063306399668588510141317036817300931347518648307817644125601743622645242830219097714184172840393483713749624339040538300586233234552830218735732668004093466502148014836643735814887963259840757917275481578229595492584782169826100708869717444572521187484485077700918891590750280568059420842599721814811237521599674973737154922892760912196073270473471872342744533749993177538363071382622966892465631193815554988318253159089508131804374442216940197801604081630757738249672182707067179596686634382285891714568906306452050712677436718524032674958625186548532243699607677314249519957870533877129088349550719276297910241358898476194548585536624173463749790268649978914443120953042922255935874020775870613888956951753571322700780283339383123646889709218677219846584936968265582890047012654430892149643770553480446429164355622005103749790570834845850546073677098405193834662620971710394563295211641884672085707315069460929919721801704735789746251824583187788036743638611471310460645483829770810199368575573960190119068454818563377479571815312854025108902340975161879630084309263314297719409935741131426768637027865626036524782292513118324001870613124362829956255272953791675338989482375084225521912882869167183647242097987399539712547715524751179557458837463646036253864748468502085043970039948577679497403715467109001488582432762637989021204094343070305337037947452633592258642443471840753573570313758529986984993171628880214033360132727523673709051758780079745382057736011183044271334693343741347786171796413839210291567768546002204118663298057243958882610740909560430773701948942969481043270145084891233472177996452230007927996812120580607763144051265615633088660483784031982225265932970387082927379364618903880658490977646081522584625136575097986708190558085565156941501470509865813031013414122389960592692360274933098443797967841690249490199223361606673458982864978128276718808521240425008409980376018652979520832971828377930079267574117480670982634805097775065893651431428673769781188434389177864081689802539363420411261953993531296918737097941697988119682538562702937479286550656649210627212429865156234144816767295635695172065985274154790751486520908113422851766711432684188831327021389432200337927091810900613179636486640459210472688343675116776156507188154214573094418294341906482895184287635336267776192721142430920903515645344710236801218688962041910677017247083395459220489954725454672368018992973177200740438553371815340871487067701655404293790208472932234717834549203603500234153159319223009022768458110156294276130610881031230125592661301575178809016284729184443287984386484068746767694103427013922321578203065867776683324312412801854118965275669191422545063033030046193646352548974401246665026986868951090146698982598977045568055474026209017944173038194791399376251403735208118307674434687973486425774883152376330395101930900256164857879979208334897441857055497349545993692578285055727268441768694833688565458332246118070929370254166441424796283319845897337175060514849990306682247235311245722983181048225831059506140910578489108248696240308445915275895966052933332414893151389022938048173342811428668673991154252687795062174485395189550789156123839161704848363434633718983421331462334311220649751548413178154556580250895070563218742655652637215025812828604813606961379990759625216359016512130467638428132930344297157506627589030386469947680081038003090763172689121108915698067587436215735294273512571604483176969567295862910477150799423873745175642076102416996100090535980856588267365459708772741041088615328545253327573200339648998733765387816778798077359555389650470571345984354654965874354649176454335723370159901460561075544034440021989521544179012509562525899412919960850542959822514483549511368094416309163157406595466155869909665460407154352544707295514961168813247537934314487344585668356563947668415640512364848392690510174366559414284403502232264865233918433488316352225157529638069353842256892561775973958446868267791396939554108152346454676844520701089890652480585596070763192537060817703831153083930129719900600955160377654318603146742105484484660875562397791818813818265096846253909689552385405275334610796120435984591886371944839513899380087742601605999922435348190116322929891903646452402560116234215958395317318755941534288758293639448923248040919066609142936896036106199398129655932834306500411354497008620867284017901958670516319180715406832974744249485223201181906848574789514588633050285557775881505715070708869451165740030588759491540726864666796254954864288442891816610515765742537899659497477950224990698637160669496700229706932908225186200581372852980709595702042789676268703918252066766171157683214508195256064644719814085519610936815245451832703989437470693434109357933780964328050789729042388813634304114430724118577086786089386363669467530532985175294208444753473246905379082878201700977830219174448861522140190350645615530833320535401412520031661625485170944925084845810130298964975086769209404954430842048858590071434626738013229040404781273218677423374850136981146817464207463883642856534605884879504279631049683558687178930728584566399729400863139445159796282304625029511554985615983188841055011221314563435839985138533248244740883393733146615170115537207194363953980873143620245735078401738799024152092786035644496030765286247556620851434300325858303804777764686580678726419157897354893405878400906140559404307236034025562367613846038814584564295671328686277916009165983322920994705160871151400991569522738806822630634761861028878373581841049750072734434741449167339004297348487669384625794224394440274335076414782814420972292441297448063023362730418923749276168556387769792502502928904441572660361181520655089594642062862890767640102834307208475823509459240335718390909584958299957589958399791699927841822864502341910181996935225115686492526052954126280602729331215718086925136227525230063024843340779125650422926817547374933066596714802849549554207067015660500521424198510065816116508934522094421284204744516135972962613828193715425860248343522420491968522465814818038598565871152883412594138971688324572258250880033865177853155613014004718882750089407348560259556368280231372584511790587011744707877612902305169592812730799070333630123730803044742741738404028978267744373741428939894445253758542957034702055408209883665151351445849179152667281932229732465973821736631669435722925853205773604210474731056825738004010294267378341717957517550452918104324229650467884224857680876937236106510250554072436775219511807584679998494373941256461066505507166054067270498639062141476311747390237515433863108336420726493782491229966254634644507640015480618783639261287462971627598035709731478092235114105139663188465951239097699839633720169265454229355279330518010067576451286849054057370057911019099990467999322808386207502273099407652991920738080651711332950960495422445101596991308537326076071080248433726574555840101790245998768852493052822002837578998964824261191847648043791899312380929290035064512354922694899037848674320742946203368398069002648739280398027264380635393113352470712159624122225178097554187570535480577864060379989876328881317768870871601374750629672622882926971724042556329341296603246264760171358154668599174300508095973348916847682930886090069055748443967234923987019436932364344995953458645543181325102447476367945621390911538215797364727168437304656527202245273132394435851159461444242671482158561432061723104841083149389730994815340797984477618624147543634973547518285331155016142226656720024989208823130454296667334664641404484092846132223164353397151693956279061873292140479379924698191181804129490435558160744927698413703959396312663722327499955524875354716161552008676832688675235047553433586529939929483824117783207496630493709303115374588530531519767165110029857399676455803971650566283649456590919885852921287964638789652712116092605132902613076501240743377081639687851962112819707722406616611237034871374954724062801662093184501132301224071029059636813266319312614279609945009211261554006467461969749337541077543781908962123326569746803699717071523683588234136131972541932056544798728598411515784268048121216242587217098750297286936496292229182345739238230897617027214735549326216571888324269846044308819822387586579404939301382401217675566964183799885861129807566644272034982430785708323936763912823599816180394461468818586485389016764021624620329961525429633762554947039018473697971854970938589332743542952696184219213468585328873416495366016306865625856661027463211227751021135323143638848380615589968972074630305286315264350500878868076282753709665137732193454116495631226779197741073368285403274458745825402189680645047707892812448886946755805031236638192048050799148532215893960124599536872562614634368278151059079236551954999553159014314353619076147922629140175037456433959553417927447191423693445336027252598919687557984300275888125444977344756881648542570846243765269780766456045631732105268532899775232382793393914827031007414316917468353212510972300716878610275409093965898626499904138352703013162102379825774349451806945919387783360237111699281682031009784904566947207859114302609433569337589320207732019969849438677693766919261257535506386343447121358245989815799317319840180859901857170447899769253049690801946878444469973905736217848504637773551833778255143241771372188373573270051888618636457189283187049468076927153499256815976179675054482403550126910223372748276312916524955384183940970125620927969656254309079728016371275699221819323662102709846551564100838047227056153504136795218318911419614406431260670384205945944294600511300870915635114131275349984109914764766998354779544988835941990590001018793836496195524228236867751335068910958634088117901209117146307905279047430890279551935317937997768458255652244595448214320424230406254964708252837625618051047275347433388380630144074664506826530885720309363594531192965381262292349908921758007993442928226058942216244334998924274587119373219765691384836492784819147810557801982351972460974808684820223822910727887337480004688399794883986677857006817825824005498911321759568544708876039508926264752433881528394090503692229788279365159140841912463696636820407625778950401001656193077080685899360876316119621507821436751939924645049667328212183197681456879320273853317608345441842495871639548474065784173761564623540108092708297423763931583211149805835955584463121694791972955159974031113423631477748628571866951022105871176242769686220060266986943873243663303964816919614203495203582677758111775001532760685393638821866336314367841897383914370916220132511743524294848292623512840182097484543491551692450992986255105454453541026687929376370215982467221103486440332978926453331066871545196204916541274358985769142939786202657927784768572092984636693638937257467569587448199835966173919624780905465761453205033972604696557064591331823748629122228566436003070471733822002851435108870311216058657272526568906697312145305338467897024869775127066184905751811514323517065650154673734682975921288186945450771101597490878824061710611350062077798358269058216786415239610991089169030009004580223796753861673114070300705902990344004379137943348055757657859396617229380976781568092205297780598283295005074601644378971816485843981024266527365455944388758018155031095970520952436831030585892521674278712790664755789779862974052569404889648255487661556858687381417270081257109467829796088397571153433462652842322428881857496682507710745085399219223052396960492528375551298289354874504375627716855670081314112112153302788559393029376344744103844295090287259653840076283402355906157531265626248031012272377700654283610162130156346026716999449682787449790871972674889654824018620834809002060741349164817322466671627711520589167184766011905182862710546725426181624952960057140450254242653305590164815952205780282420100942299089939393127617990748745421346002880604724437105080609648574747438022876017147322582843221234459891748538842409653378143901392436343114137767773655762514678855260854729347762866477078815031664014784313001256622090426131198622535272662266820071702110660969579872273898393927669622940757564086657000793052721291584699503141169875046413525435435943533246599194412621010654911193629939801874389030795767207436235052374718721516440031056970445999495602219524450853551632380521429867213694309286174711331446294316928288285846974483942826640664911151356654342371478232455562405145553284969197864216373680264395786307369517166625021985741831149841935721726677728165231232490525373716725298851318586968138288083447182727240899829248517668577606871390172418806077732291720054532760335071701042671501954688518959331880281862913038751744392538938221374765686258571573528366213738888997584809178783795474365728775168945645112949941554538805267928519475029253833440170954224284185379967222548322006056592716052094602176625473044896316494688399666681547999058916040682430750550061132570467991655983170274089337301765104473014581326417028304124599887545384774222260024196229813434906184812699418009663644727626994619033588601777034576995665005754261917657898652577963245279989804328946142606382951564006567295321823788603012117854891276946065110760996531218575713679808861168722523169159240482892063384751764090835712978261308996248928592195182072664563180106017774328749774157865018802814734923061276411978884477024397457650458218927821329652407425659658310204778939227906357450393876295907855963149571947698551508473218007353407994200522182526870707948305731306396686774091561982122363607695407540173616435615731516610566085953293353170601974297842915964834784561293312751911447090661181939729577512038900418828890612449586427335775718504470084843824706788144315840270007913290265299199218367113818848747155377565334688241575199368472683652101708045778970601653667009532722008699460452358055026318152216745702524391400373854296472312075166764304449611383033048945224013816829963135302225720629403930478709253350754114200413285089394023321066251735265559096700264054998482276803490409169855798577381487239191752807012128276940802780538675221663059410980282836430659433598823022031587762342214233100164689585128553568879340489201712541250700323311652034446195049997098231799304598292241056046435413972346178374554233514093753794631041974931721076502107154432803340871247880023571997032039280936738893099731750956364477298872592206208168106263173046077625055476390090237376931732638027001599239426559101618724167849303975647472470810877494826706292582531412218664237240604252962232761940900184594547149336531474751716926521663799926124895281399156599962005171381299955873459294762068412150865566254218905817431511740448584315334279676841472013561327065999450700003711140968286984105599188329686316260033068507568324501452388787488716753283445733443297216258608458546356585292582451589472218571893443739631381542104653601782619680184000412731552604047823344807018030905457611619987600958186719056030542252279371293683489202434419100434876166054113272845561116076251364841566670575917994752858052155275776325626913961758062415076622139888882167884808647579241260611480790125412600775189443203783053537723279052929477530031138222388298631513044534235888523179973842999413168303056765667046372231995452633197957721115967226109682359876694632282592481358266205236148488613581870035533285818291002294352407717943929848885631018185521611039924261500658175355495182951604879027984710971478216127886788909506180470692285155722971628579204409559770782618684448710014718598959456268031258111636625224647150900346690075247615706314429597304239930996809191430818215594766513217636688238645120949065014242963350174920271524162206258492673992711667860222240646204015528227340837222056619665959543680094010792822505462128371313176132138353395177323777757925632318639001403476403234665716510422391907847328225624611090313683638356274633305569725757203223382906088349550697407340552274272244925312103164070079490768221202466465414239211475636231607509773784151542593991991806882725213696307666664336493335820942283650186315338889074664901874900097421093475308366685013606644330881520973030132769855714936703111530442577696999953724254412072258234107029344378781287114414351965669749174858151835482644377894770569142352487362702701818569866083898793275344453111968005160934672691854115387408751503728907010604016948861095817441422851872036852725591419158837877685676359900790069166967272482924383682619971597018318618682960492941156919653420112391681206897121056176136617908666792829215837241965338676822375076362446219919463596213338768996588365364651074296429073421801509175765071712036188849245031680953974619003765583516762796367763183207249447545936216094015431964600272717138931800512559587569199705274478628503545532393878796190366474543009883874385016877622083693361969130680555530586833073490422425748598514618124904241498755689955227919973931573033429123136312532130957379740959142228418457017541893225220251945348213876329337924693489709262596157738397343104321491885132753281740658984670389634846812103824068157957606941052053550301176807296945586908496800495560272464291025229575727074041359858826886469702000996798983319917788432571377343042776968274297329076150797217186926557492478049994307355386522081641934373863722822007813891834113059937574318231467310828068886446507504221995797967122709647989799437815262056209677075456276724795892132372916904997540328707035760096704470396898206999521116597564619282798706378307649193885254636310764850825757327919929234231603089922816991063632802024131606369187948649727505529964229040021956910837454886112138790845082854628587945782787466037055487628975259254571321157804751846726530376468025403711063631385191340946925777663279263560870321105280596325764556875305330061632319359854612689127111878186523701937886618652355135609863297145638930840574695030121347521474202331639553611612543357443352435977652662942329410794262246080630370930314403356303359909433509343519351102377755192468111930215807226476309169353228076655852129079872066074039585457125797755317364526354963161237696718161909085308613774475252671278654700237421716097045360796886990096987236958465274480494606234782099916074910067816024250435027457217966149986835941835300840629018786107528672601169240721395679136342478544767927706001472872625063373836053003751901427204085316964459005512726380835612779113424566487558004164426981541767919334052389373578508560874183881427774971746124605518892335217908260218295787263923173156403195303545558637242158607178886905352286689553460552057935342716443640091011462038788781943949707988011306988117218638002583548843677610554793418203542615662703196665228369612580363424395577605274562553651654245038520626739338348406082028126990648880292940842275019843326864916739038919558131362785073167100803342562811245450247898152482721684117096645874850299397252549128942227242052141594020743867538765790026247632041707944354427107971863493434738907339775050190367210938362980248767564779892769397295360251669954974608592817446853366261906629068470654573823550748422306542020779003774573398741161190135368368038154989106682702344603433875926539553258413992623687392703830482657422945979981996653613772420920699545318928671966306778181426169802498585291415234210920092999807898422503507998704842586425332559959766925949428005398946076961011324587006493065532299175799298447532338013215711519746603501060068821660159035354080210570683590045644406602438564474927588215908030475390336369143469679470507546319518961030687121695141309715442036581453110227593961621296301206985388981847469629066648543280606793285819580862763811369710672009292502152840573254890945502668868328702468481365733891310413442200108427196204517085333298340743675902545661586445831120164704651569596520719102425061449860807332773661686727391162511789637592132237305686162328069827712144557586592340245493030273698848898051292591260182378626176735662873964275364639968938917041819041511500940551829301289354819754972976632945547321475135974345897653730302134633238757718502300414090113452661319907776482598000334582288701646645584185057719479041556285315149142389755540425910877050894152784829045398835767026763766005515330617156754737631392900337671608816078545772115236101409584860268282310947260495973886662170338384262295259188486289324885277584761042038179272594430136355517792708430200080991976241305744326540162088114671661098152324285541864620203724860368901059018403238002164972366284531178742966266611082577436144579418847747557304060774501187692281494455531917237638178557235074569320405821173945002934202496236345675015036533942476522649922763548453551747921789389533313499182228998228867726913127934802257777175364699849410759261216632948511829289587121387687986825176715327747219146804682912918521918567387751209467179000397405363874785491244822450951336691140773081178924663120522595042488627494145141001583250206967660177032472057028784421959196007935457484740939112637284330815435524171740542398190590992135693319499655333004667799726026139781180593527890895153090535501668468792151655941227087238989763730227953368698997531479157016167911959758673041266898075942441494770323247526621124526171904199373834109045971722039205598183886037291345889380960728725895847299183113447244771589634294391541017791174408055106714564410937055636628034913651629081750870959438194955035284828853347970019505751355976115652746654154882648193911122644303033299204585577804484486345366507698710456481234299504876928977011127950678434100931225484724572184443726142118708953111640798524723598777752024126887992627247750840267656860598590444260272941242939405232670528025794280090558282596815725591572804244063608162655435957201737673972722507547840097364036306611283240844047041738391585484990519233070655387383582499095219718503926750152623249103385279275490116876940404636751068989691067831828581203817915014234113317524116089850686454967576547494294658754035723265971305437812693795380900186700564224906820852321423779708001867861086119046441574488563303876908143314786404127151291929791769114596463993379503354861106366039286833281880252929524100817555363391378834942410787907995817416745167030256389949976316809236815271844701759735048511436196714734876369311702880744357680252125440761791367966682133489720799936434473274659916194777690714343156356024786138370613733813955942013877839553224618331163871570087735072541663680005540245480627288820768373620314366595717489525575628637241890920955028270866423514701067763515288710533568884946702605033385792694745897755775249480061531241483497637151509985792470668221157289483316582114026620937342109680961722196593542868750878286544548466224941625089294020724010412872461553742429183135686379223992236181869587855821680717410647331587700676810882304895437555875773987424460433213287141550135108041755413723503674515198504238888946188941949639070784448909299964483175670644884810219927960217624104752156684786547025189431659236170567773266172377826325305077622258922547203252015466511686366740762290090357118549490864806864009281154490358821222243552291855012391013509325783498650640734656187299521506638599491963981501226283477107792900667985302151854972784453611555802439148462534508684332006082296426042801181353391485807332114621461075509207148505321583060614238644649407732906294637976746320671174521969702034628482511739503097623731592931961882074725587339342729253383064563004501417330665216488166612280948591619650597993896928930204819533771683493392320147748542731347121444154762221980983912744552188004558337357152290873302724683964006574195661441803943092110236884875220211811448389218932767628725988978779844202377388728490875197933243680651415365932594147943450516666824331884510306001922388201670874474600367642188985178821155429207326736735097760430174424685079828001816296255790478336954652064905364691718305249595724860805876573722263582894583985555512822825908911530282187157715546602029421763040055603924724060656573284111447830253244756464108541678450817766609052752227875495179535428963856209339946608542149219114051629293158599066988324274156844577197721955184679097292077184752104393262259045932369250736394606737387314826221545774610230583507486002231581198028748433055359647203474768406231588687654143583232102788120984051467359461673443359172613852341128978864273980171812401642008191405629662534800157017877212702362663267238185157563267146025135295437998844693673763611637807072308610609950007695072828796811932905171792790576003521011689587448797274677996237639214255634522665168953067152536909422259441264542319091255266463389451251427180752109528867512227288920505139370906267933828026504359482001043632095695430665300544085159210181383472664389923640340052598806692518282042144651308590812073841404929730577954833774681017883579948118100103314285054563497466313544850870288561215690018833864929383382199702842888216208316182827087029340940571268561588559860947624122716419197484527560163414386564808059130524286150591477664455272911160977949674601500529233862437840115677322665425498784707879455069275058181077818696160984631797934338210734195327081552163290067863894378749742205169696664192118323550403986441248946283516813353541601834155969377864941471620386577815965217320799439023456361103091338289364930779078864449653505956168082284427269644359025033971398338958837734169464551142024821576050172696681668927659632593727872932498449337200289925986783593339487720321131513380651683751971430849447271662062973757198681405038464166022710149628087576053268484931774684792794321444925655818472910971372879072348983056477140943155170080688293074832245100320709566808138328717173516950174159449808579484262664143218154591675436410922748464089160158618787969322516725792909559343336901631165245661971825009161793677711963865758033522629518673013695728189193373895559004982256340292941844504918913831120562339933550161501946712946058266514203834107032786298607511743198394450036937642128110320424005404544685231561809340210599471376022200162873372093362309341363961199277358574273239384138531558257077546290407723951546823065408276894621794880344198359026174047709834297041796871572763550973128920288149443726407922266020871215635594570054150733596230952116388660357942651077562087741170704419344336453643353852865455191830110431678152907708328936765945050295104600631920459004942430915294626900980564074802149850290345967254372092262579774775683847081929142790311180066538832588783357794622302736095634197882256659782344051891393066271620378880875935724808997349147537130521027080895519051698303742936758349294377084664261289487496353026196538568695710387705232856906064327499071765834288701385462188845638268288209876574932854626729820183848593141550057349035726965866964959014782237742661986435710225835115461811405676568957422297904240425266458092875080855807484708472443133943853144712905217078223104102864231857167749592726276919318710499245615450710827788577721433448183130079962414167041839707281809107195979311148702658778868728766085428374074777667178451097207957292618038774108701750608299052143126191846377555943769432805570923968594036536322141364654027586703037125046970074354172089990174374459827629362619429520098526057478163867675766305077767996700268946226181141907657188671195525361557057226298119598327944838937846596850167594922522160457110634776309967551166127600895568962013377918219193958257920405991007869775270578006909839041488559389689984218585561525883283856303966820226058795670833223808616828965224809965151819094035555692104574174048175654467885664760690816616792296936130706224186749714271427935683016402560504794275404864799573035316779070651884592372153850169303084232277946032531553816948423364567011559872746213050260045830781396638921859604768522259242038778148863100471494891224094739138166593394913456508507730372353245519117739704289380598021576565615398181698870957602347759567502449280775400743386468534955571126534251193753051536845253331742325604624884783629526165711585810928241671913260506184834198061723317250558936588185895415964607172402459359212877508682390299657177781941221288249667103512158178913775225632981591490002963785385420762055488686137579590195022510613758339638045735417727591917287357275296886408047743185328803770496613160294523293824363256435788090235691048326340008811526959153205244946979148024556518553376938253408677619328411873808019229780346908128776654636474902823470881828668790577042632448389242801718200695409377785528225958658568169446281957334342814459616759017097109308701312940353286539521285126196169591828292933504450983481907198858914515258594510937166229498995729079609441897912622477486666046151631075672611274454385491090964365994358251455217876537638264628773094221164769251224246238752341220054695858755396975437399343528348162579198104330264391159625153380091878766932532520220287035737352527915021967486239951904245968541424575358027954173374889557987472026038804412325614999240002468491231321842640721093838081912965168092999990861866705930127054946004092472020803723587509922609645686424582788463658647377888763214079487110578859895000787505350749849875051312574681839124758763550128481143978410203552982213996171038604098179140678538493153842672977704746110171979636571768288770493140172110071239080258513044211007698665195437031486922546721362763146714700486071530429122653995347103685248252360868109988846755406540884071310412968940616635984216821319206513031027811193485478146828803164889661560865914978462296474486274584845026144255243629390431781096683905194481113866581133165631649079734295106217225863321591790923323103261695858439106831779010653491056673909953202189304530487694765670255800150415729246969730435957162930566497909192060830639228492036068702000590220634156638443618679055177415884157376890645645635484304789022853225438229899598340322460735647273282376618099182379021092004696214459782912841527201352040263264399628347528715346411000266857386012727743285201972486989477641947519541246720780918271897567063721643668738662295287336567665472903921430966196686752796610684532549904564995460337601675577897234024246686824230016280932564405886709877553134800565725212475285561009539014448651325059056438279264353641429059545211305428081950251441733289770191669859715387373428285556611592229019646229627933512352323154488194564572363310541757434890140085968981410466393696766858405165868094381761187468174558223966801674108947282825728471311837696154985534353255062692143250364998543885148904062421595716215487423994794140237875454688855471874807129795473171008449777438836972892206067318470093699777125190948145124621695507516036373597506991114288762314760162341890978041674563004048303542402749219746542973152856700183872582988215398735904640712490701737870311229828336327114357427767535189616329173720937395387276591016767485609564667931353791459584595458726189342409556361054228405414019989774916322161076368174744827959953088904434297242406883117559514315673595873460823322609296631147090936456168943032390403949241755628586184472113007176718385895924079457090742955770479709922182804246704027061748673585619293186352151590797000117901896810361389688251109063649824057688966131589624589549451355049122835535563142518403751629672845700804243447819945512004732782740019654687150289834795349115038427587846598939213577392913479359943051104566576415739474027148210780094531632697023864230279741833904030025139959413467573256176258265415987793235234389611268702650428390531856178884089937420664050175062640817989530052442314867375292082436189860756034030194664872006722040861930003396196243685053455710711843146351493927026433961869371370566500096231549542558730929483188659345945295310236788201828434249535762254068422979902392081454889479683499025891527081817205000931361858195897625823770714462011971037825667966299726117266153737148395157669947857868029761738580620137751999532509400129169376951727186125817551569486472980862120266864903974755531627098054425312099457159558731274171765988135136213164126326635134787276444804882957981491151131031604309800471418193120413093201292170229924306862392372402066737509107472266040473394639850896012568854899772320463066042669313319716677667032533295754239405106790668125300457646721517520193822601154447845772962009678096431778739911661176851673028979355662941408190073748737601273757509622618353744224042547597777532342169234634840408826461071946969906942773016627047059868958904298436605116974394387977729207910825057705961767222963063025761283361973929254508737373845452067363850793078312894188980579081615765570171432045947529802809014241642032081415397996408808234441044730641648410501662743355818891252688440459140072521022673111633005663493159145433506923018825674688359658439776589980096622501445127329099001278156536695051115786835864103270121432941783256829176226686018833895460387599836105581637142445978908419715557571841588842186490314789077055349941336069009796073342852293002334206257003187695307214319474427393681044460208329780102129361003846033014476710453758542163230619624433647906316978985053583337234616050231457940801122493255838563274203940616501860144369191912229884276719211210376948571602954642177941446832684365412472631322318765530021416000858708003529392970687883790745830184304344414048466980371128336263997410893462378398704079205066746381990329343149708807875668624046239971926070661123929333950505319598459571752645312360225889669312267015433222564990991795553376920423520028081347506294493733192418087040102516201432941743993602665699145839756989715009640265383837367695455593215615151505051569306436731511362031218041335310222062498633739182031679918343598604247110784174640346171829560387995736481794784125066087287067394660425412792755946143386465350731105915439869084603126178303693858173124810691834935857903015915682903677558493930422581073259859911504784743267392938205123162601279513120011135324639057626887146578841277096012644695249199741785819065282518438411668642288478635921688404541532349410367467118772592112001533168821883577068264184545641149281458850892973644610289296183215508437120001586593838701227558154315068616230243007632215703583433205961074901258188305055610099144191225288771497886341351946009858497856914170094375519882770346758158861088255718082473395626011579070158843032514426382128534856786863552586866141971887168247418533161040084171996075035904501952527253497882860360238367946212070776875052887633362046820380844898979816816888531584106275679339259107199924735421476004163794346648741252934035467296013567942624496096307301777960611280214330837065355673562037833759657855360888616668587010998475316420502666262428031332276432164538063206702668559746588719080550774404046567024388422269409487144022337027763259932467243354007003412434171677501683684183402776182164190141533839098045883494547103973396493314085118707119753073036196055936943155149870449618383729899170595158357682815884460643717042357241461733183523884663331904799610589223914808414609798940941570476361319363284904098185521530700829520511864149922424333121017530316830175137693531054581493297824512261461531703407309768295287652615612252767748223469097445229831983014803207396595257726176874854583873428689724559273664194107276184172073556940568841648105457884209841707092866645389372510464413805850619693200630762057061456149568984640865091882813841188325017724399699428815640450790366920665536026843010492363019197629134337709406882272645343222031271857589082008648535585940896815149729075514686283279834509616308375773989107945009756738159188010208391094105889903317253457547041555608597536105237285427679917761509873446182713731640086601270227055719667781706625560541743608929507319349747893933884476784306745752941442694605174279428457212497327827067924810237173894611636377563172316655628359569979810721520254270251024472412620615750404671052667987544923262304655997263939165179133533251307103261174882623488864663375756382222657985907762151839748216931545738057547961446061633619912073340550227189864212573550235928134200549072083714290588216185338957826779117352119843458406449256486853783496313922404577204872620786716999625125726757684967060906827742990148701936084724943611180984712224236336152467365926631437123418989799135805862660173429127419413641986212998660365282839913765006029719279103723137470276814143318705577846663121060698746821751354964320507989050781900452550636826021814707409827172849980040399241643386769249427854413623604561854145092546522650509590904566037517122789425338972106575660358484240558876457234438880110744871896874692809903955419088704626854836339837908968045737215496329017924132381755844734894162530891026063340596956617693157093822914501511351282933668066772982387816557597112525510851031204785139828535092630295124563520280197304130325289741517782126534839869776207988203561839498782614175572919499597989960087506996583602859913242609156364358773412185325495448158384882129865176601561120079785264657659651637388177121309334954762754578997355576792600273821762436479139873381429693558727014965599672832077625481454028733090440370773518493367968006216792202176041765070792770383770530798997373030992244085001063525072358328426175638157004841572450885585846185430071447232884203896755047512221766021206019195868966154512966487632932824332554498195747201968656489388653504597588093152075405285596555709298857742600681739098457405528689699417823340053810438319138916191667853887346031247671619573667659044161443967874581744909933403654826726439952149650178150959241317653941886098587727471548413632864879954698130849488791543210486009069165752530114798835323110532521839064251819182389075077512322304110096489178343662803689938768069327773912110513201511993167369257313501750806595469576273473604851051428899561403587721672985016796643275675270501332618442850325316873626195087973574772740672690071814964020030469178303842562822136311083957934229663770288733602112182307029698590897086247517401749888106404205890168692752869182186054372362091284575195358724456655770294063007548635341399965363278911251825598141348017081981945480980172276253174966494057671076150179682556067463689291173352122687586113502454103979760879713434256959470210064435182121793637083856011044909298894606196207983003220275420331651824937898003951160277111646670949175386893282935950976698997494660650733555111716196359059932422012538188945521331659683804831505688987036780754046259439523033211474827430863910909756519932876646505163175262142765493974898281466892670574252705248998098375707745923705696924593991566696106417946877061232211783372675200289092747698951056975286042870308485349539026614554720809938058089410707631871701643222628232660477308008238014853692719710840857053511212078533342811658364067311292084597906572125748796352288952825012212711915518260737488524042474001026839970913776041034250186081147969312990042288376427663989041130899556560525022471991376282826829317701845657717337602095903965595273258193892860092218247506942701715445435422010021875715884941653174920600540087854323558718521097611129962862118927259888553622085463858832896249770139134936630249857333716926879567472950288061527842588784022880053813927990621666617617253966240042396200181342376035290889577651699239484523365049702008771998053455178381197966607117952244712418141170652223658064465303285208600197438230802144751337407038481444932997550385151403690737321201952665696187753804150603735534443064941652868991273031430907611948332657235968777007982653382704389837902750312613365501669883986196283308227795735966427030870873133220739012558425022941001928204417222933599201761234399199697131244221066356585747933685343646621991310048968542527134616669348945234041078455756460933494305498958167830831881879918549520142268699624436826370882002637820418592478401819629753786640551424811431847380373466429217812674478988851317020506905806182577337813329038959764115347337752917889241813950423943276107706729632721144860689637574929030382199901971308380906631348718548589385711218135228907893794649108764293705352233514199053865747599936066334595243531991823959225016722409948102863596417261163206798723589894263291554135524209104182577857280796616206737191100662131250434269745351579176362375983717324253455198166298945772967833609120801208266967862516296391502606928525714621932519659749845738566183425025208536685347580921910954165606256561373511458676274346488771082089631582247262718588775186204865026667474944301814013403669787230488484748211264625709172062466248478449137569784276123957864625008662279319834119424375666391463897417905262633849264338876000329436404976405476335606612582341443001953748072571586123667716260089690094599645574766817922810954551869427974057798322976264671723463161495395435672857136169967255764153082722430212507929500519630053874444689022201277702152751056677197879418373081570860424618100386638956974976617753127469947852439312233097087238014859815245078713051367904217785130924037908731721330922861621759409685345862458459768616967821630540163673488260326342466990707669980022501052272566987970650283666575636506256800167301155353271867348591952667092947777535193216423513401206573668944322266405109554343641047923839492841219923035066411375521624670589768118114787114522501740733365711610647200223133810604927176321282019548924117744147154829864890736004210596526196151483877051816366162212317986395629517424097915705957983642050820770706963309814248591180808503586703520261107064537160652801072542244643618483644839868690948144496472504643073026848842375221266414635310770234419823880299614468886389826759631209260653944287281786579737813764927329281634103775610869478735494044904901993288050904774331642651912362744098674693196028294076395103807419752982236715781281389937986815763460806630587470320933744081504062043013187823267193990346884150014238044342490584955571884243443320178661510623132809848326134432622665618464658605525248606224633392223901283872499329265485293301370191123945111757103300228780135837408981058842858296706004849782583955003917380286905859403829152011865481647162887207516124436169198680265883919115682822602509713432478191416489028892698330493234362010479494996651811806940839652913466674252660565597853703908959847928996766934696764270564437567404082552416735483128839994390830868601959361081115966924660753685986709743940919498560706093945412589865620508784208712072000683370075712846383402972568486569804337715813871353224839104783601235307544159066756276123423268015290044086572001591584347053770683897508453353037527223368966346959854207042411182099379446049594648192623858988123113346733191452240306247640385572951918835828569271588432824381786452184384963308511449594561515238245097277326522530115546194432436119943139255952996715269569325708249034665746400761346787911465111047229336605526258119420477510484522292999110918996141521855194174860985470623701180738529378154699818052173746713233714509473445824522944802531183586403830469209543466977588751496979258518592718099619128985409123968140981549074369002538037310200987918759135921357013431901454613266463253260383628940412622009697162646034125129375937674825840869236746839097606746672495554505435697362823148513622194512708714973678882044802299577094698130597788352214585729554998615833077994536368348231173549554221079470290064060345892717836816930738546738878801284570720456959911421242884181793197139777070824499464836872917053514470774946724425473114190923567390740062620714743457540589412806553529211095134789014973607875328633873042529700343033134887111590529561859848334738130346870417050135317386444418986252937263406222035192640457344170604872383609709571020663772623014396429822378925309767283930323190020070788235129082684103763445919413055691194014164238887216118518660644279181137933745320147994327074870964887218882111750836943230155674870651867538357672471767524383735070903201969006817986202507225804497204121576576789886015571003248115172165628956973595663260596899933915216238250867469566487911191639935798906772346124069479967317809114880894753385667034282377223637014389831994761124054964221582641781137597162102301599512827104339452153380933854441156939291951430968656484955054413012109774252653004449943102206423983048604952923334523743995849370785750139369793271644212380580012469494559777103269816413881019634665036340509946589604036610430709663128394677216484634312646154777371731132166855523880570867558693882537247936902145756394712115312693561966470136151742669179635270995948243332124687343963135839097192932134181547697487214035097114219831160020669419971911832298936754607284378584114987902811610880545400165065474450562517560564752210083945304660499613325826951386749508585587031664305024474067899009367252080312503217847000802482657691909832527513330914503132211445003264930308777523984772529336681672164558569500579709707946004480611948977578204144788586351894355703223683961135195183285594354587825901103679157016779304563047571368096491202788697568740896093258339195407291693477295935792320310366396043065896947735443378755268434228509147305598783360360644346918175230113763395707563420947361696205132141505825434063790533658649178412024279494137998154112294481764836638127745390984896501933659384118422257077261275329745604148879084058965139630146774221159056148959737472287843867240614030087579018369015218150671249742007040084934739828545750903297969269424971469013076668534160814989629092818274892542489797927680585506824390556576598697340072981854463257108566357322154461621507090796978906393327602859357341457890877174755092008885166694678985553722353332082565227831973329703501517399649541589812813440449353627338269952047341010823493416508138016380260916053931302749488596982190970010022073008273577120265115588256803086915478989343540523808533648973714824667809016316692812246602741865725605287441128610693492322192365882726422042049871826523485382329194953392558645073223027793686535462658145936328236373042167188318393234611192260761053659511922507005412613339057417408351514045899085500013633568107265293171667504373092929961069534172252892272374381284294095863511859915346946495680161356947585666693121865876680748144065205978542911634984282295715265841267344322899991622507619624891356039464769535371564394775338897562287863235326557884747975049282349522794011029516256421517169935799024021606971243777911950062595842458231278232666712721894026797102809966676083407157755171832815962378053043113127320670103999555076661714186023875748834475818601159427264973251547415364809972559378319847814039503643819866025026283013525927066036886214749616202510325734172577868953575935649606897468592539503963664538497449997121788966165630481452031340567568488850192396955386163424101740789027666804684737192365870530947020320850288726852495860324188391442628024626539855718557527827827831717502686005275720991869462437914275690130707015154693113641000636309265138501162100520662009781998272781303114373681094964492186793681825473277775826185610546108617984520570627279797325553246327060424586813767122009965452378318955070044753006099663330006587646425696342125389779917022529117629553768530301717441719178533376630598680371900451404923682649607540121162799090385242568043360371228076323233775199909028672534087464293199545658244023368635215698204010377089805404600031065262167557884321473816594311246807206543575373563465801990233516734536681606091160462598361563375112852510561935703416973479967732273578260521418396124322758720751216748921367998954098490692241828112906079928009162351650137368612685035469310861095455655773201523022089955657972522365929360376937801389288023974720859737970452019664523443782303718143851030851107194810799296497962245423576295474537836450296341596572221340592400224962162713834359477377380535483545483177250816217921408238299898878586249748949122882483151294992961765117497225626262062412565830467769979926503011725104665631283931048112941905734517576029348856368994323064965368354452798360186654131989667870840580981523235874505084756679427402229481411498689869436996421591266772722560318741539149699571253591880389493324915727140711487127427787487231305669066474269842202252370253777101177416133411498135007772812167763667279481970750962437171659066463747026252382378110605782107279541398994919577874912810408875934253808338497927169372633520351463826483723010055290386336828430851973897084329522427301828898333979062126642660756382860447549009885753783499852258782250697919702310709718734446818429508571686743749878112945085967126117554046220101431120493801312439375724411024127599293041311668203816742539621046073272708980341250982791747590801645782083893589553147369500720711325924563003176860774692475943440513338537048356485854637839086694594816502213568298407606086690786056503731290212149841947388088941801625291208783675141584353187289527643044406930647631520916367208254509532626802573422180856609749875843710241708507220387814981747535437047938748574356657171249988567522053902326076457664198635307340950930864534915377644381477098952130995089480259408864801544003923801366610627536671310752598063875904897566208387069888413925720147170344669669957472509534654715014581327049395864436589794861688335333452588288530172057793968165283636399292318678814325782250152452746665681714582807024207313453921506852611007941786871221514991997219763892364429825807009136971826442233373151868631556479475203941773626219404966602353762356057938682630493687886250795175370169698465652658256227957298706653964768417442510384255634074428280770164736855417446990681106781584680648045405772348703973293861822670360399444756063657139052690791614082257883095040258954587493216829564035387506474356065684940255965808238241236371304178321728097443224180485979850028525110007198231473826644519032740239701835423335873849577955059080569546643622102142407015893292159587910213159942347571001178211085631253987617205019699843476969827311698164222700313210111007648018006333783268019317317963986709321515497428236863042806714997280769091894864804222570648254081383638553455051075035889059794008354630108069958342536072951501939237156020626433058248972950091634125118850828926007257872555356367281028290127740913343212188059671225084645087708394707572552410508007547297878630664577820857883391184331798172345257946534929449322567692176539873759135369378248057243317134345323028812607768607226337559498489105758327078857329783868235435972883220505497021613418683030607480054549104109174540566330446408051903180091059002202607073237290916009213570771732612314173239089934400452557409000766631924931886845297954597554823168328071711796438044202838020494777026520726843102506457370796438749316639770830884364897697219331424723729552564961508016610563055111363119851052543103636996902889839450132423456054784839984193675223193562848633723207572476437123500224829927419149846586974346070777510182448312623923859975066765339035650894600188180108664184103798407559359094434604363196172043597930454326385371990266775277474448421730219293482414422300129342140801911449961910798563184494873709084201890169007732703317588190488700531893070293394694243808143259845160615141057160846681708609686037319950752556574446509387450545061818884503160074020918079260813439051373319381138383866679291241474250397213743179880864230180069444941507807734914015937226073363512807744935376885782035921920747413155188611224489160044408873212982953253173459687767031154494647882029379772402341643998973773508527717492637207242527041173545358214331302970697571848849939153204422878443734022144575398332585752535982451459226313285069883011037024488271771283143285419708996931302818502681987179582501226751705096795528897108249965895760571141070700104368836708222320382072548822106414347921626123656381422936336473366879346860679054866934316985537396891671419904621373449872910105840589801564561808519875881464719750768851412822623756190670475034751427294288761374316913431318105921066698158132727876078680718512340053559004153633700534795069269185806429200767920133413190109043982610051944614448368117197210648788653927131208495233081436234397168447953712662625215003228653737339037997281189050396911855802791034469727785303478103282354992600891597021096732819445107263141349979203084708265377137838391695569440617472128860292464506730562117982945777330437330970134594367768500508706129236176688358497434213723073768059631069776722600077255475606897263413750617058057168018401137631802269717325323637463801037546295776840718778363858319176739050839234200413944173529932303763061849885655535035372228734596102823807504002685475574253854007114109018427200610418302435975931408008566622407714577675026267302007025150903573919011650154796409115239647760807266573204379528867139459244117339857105144635612499351035828246161171719415245886726192199501041039539654690307736793380174493791887654353956205028880436072216816245969304244718838957581209549201378012512905829657543650857467161633848966081281795864435973585157017742047259873848641215815400569072881149621808911971047440308051644274360531947290602728212310671666953465105363117497459209437310880766890166283265174247296763651551554473207010115751188048345187695076121366291856963916587265128294482061784024987899941285921033303131758702498642560113815412245274619886887681875189132800865970620950472983816848076722186077388416880062923050687622006590579019811602889914339950293451359208361366143979105017708963257179399802217937653394980724191388886577816955686108884986285491844481964841750101691750676634863197419491124042836318700389189515861962560015841142238199495959731591717184174344261811541894532453196554866592142878395496140382393823380409928679244244490762800477458005770468203961016344490021179154667413046017562280646733713653723248508846721946619414020115762091471233239591701080629153996471801602879576752719243010206405703023972688769904962401761457143195757517959922434088592207228076138100346730638244195779956729730125445146147146554391406961718961767361312491275256209464464829646426062910875354117070012071047195955201820930989840353993705842599977343371266814040257602134757699083353569590591089299899043578425975869786074615337034699231250713400476818175648076745980231712791091548577610964629491723672130300562825766731087928875406360538232877931573337221399910667432497450239991638570756836857042615556550908718043930315922584947087839405333929133958039889250939216670301681670774374006286956385032882715794583960301678056976731753382649019719500854438471090960445188227978377759329937882673969661067028122053483847647418700338907449063824427008905307769443749989044442404831160227398739355176451630642602961960382032431076819322398760394030229978327505086741739749431794492397943654879577986096027823568144944725177653325127651552740909681476223922443157283351979667420956077699658164252252261676662045987269668395015300435377471842829938614722818370999969063033413510778171905731557917709087414013071042637840644821709090964946846791118470868673039713126448038219336302404577993666727180963510111267485039066077132931466355355439934359232711430254247394866228161982759297504499158991149697668910642020860729701056850806191952522822695821852722483426465227487201788452207909707755495907085381517379313868554414173491944887149864965930286815464686578523767292920422274018221069470414096062799558754524241188602127885584743348755604826563415763524227100042731987808590055338866276409972831118938578995248107917169941385304833563011391715587216571783914269556357476762645484228887002918580986869228489446789407654683029597689635130265760675651934780768401198616128548587049770225321450420768623273590291670687126893361431390549351146743987115022075797092579632543605774642635454635284595148647151782003042897952174428095860946987182914930260376444770219831341147062988031646268717619900362619702340261845676812106367669240207011222892828743386328656666850246663112123558127666725269851583514965817851076576794852109995096437133109273189093999893102790619036344506035863219964145370213502255748446201970682807629467482230134471865186162955106247249834868564251935159218461916076614353563303131539431887674010417065911065424310806117212711015932093231548850469012967258302450603040403403932461101856612342654082089920107950130442135801365315709923615652702519380093972777645927906631200092971588370176660115265927955450025751035941955390119074151571198122861496595911956285966657642837645923155871224991631903768303071012924686744830033348077647312183765728729786619460980475999207181698982168399864547261552353692051194834119957367960456169697368353817261853199402973557051014506414742521077634662120456672288908115461713938957267430150110858933400535298124131231331264693052815247014909122070484082161871966870474467169564807146979689306762850922835543203888613535151405154750414858161303940780362986772199168112806448456281400223683204202834786743515229261836552066319170129268553570723206403750021950105443454003543214017999127650464755454857948664576296123215184014486517975956254211911297436581623163065392430571080898464467934417212790452187745436864293456318243972530000273404967300254998341439379119032841758680822944155084909270020790729036924941009554906825094925301255428017320421022023276266714207941645552674011030274780874584173521046015037739545772414335717473290585135773361463840644338646814755905878576406044352711685747790839541707497398745061101380165520663883265522124407052231976044771576426152329912963714785425808561909460126600113457263983093877990389696665477066370337853092319584681608466714822765938377278038592883428577620757024342205928189996924804168566182051264191155589152456557562948620224873222851872200737240973266699029004530937561726151207347490607124492046587577368320745024134883442445952663000658634699353573258345656070714306451529908900257455456410378425585504123986758715695137452867888142963674470537370585846625363882304656685336983694672769280480169722125301139912432922676976866981136561713199021272513253125296181528227967889760200658910259444203563720725914307825286430695878233133145998260141649550387045606567643384679272050895109293606330747455560171272382172027174793295575885336750227543111874821871153949384721502372612091229289266452827089967465437228520337132406289083282052826200401896472199623112975921034332950760945230951047379821496667916229543688519635313113313978978417020675524885722010080533717908647130543462929114947509843117733816040245796041581692245324517608623337195101238731020850938368523356602659921119628849174448313775600365683714456576949036374371838358121519898395968617389456078170829687024672960638555422206051788751137757851767706131713339748537653402273161194382451222016702708665588582861192570543636344132670668912747453729081327535137383120841110426246010018868586410451951849645871775593442917403794695972818944110512790917928531211916012272029904206047236682234644662535359188392488399345120372211234097312892520024172948479679022235935435932107199955608531528129444326616386995663765854282318249744796302423454562105932448992883863349755866449789541820571785473289984757451072531486583921003462442188701471408077040116907008558460913230801593511531119362033030293760692388930488771194975569695199421880867489087198918095018345662605058913923286423041082167046815269266853523920164320428849060018446341910279364452088127770365213190273158464333715397477842476726654281856471580530694866177331360959008327298353863079550267916118082739042372281396888150578549236017275783284412845724339369860248530512077490497352581239127660144959258470303992487342251829441452323369461281178141896792569478142613517451551745031572703315707617005840505403892382859377239753033035318039866657479039288383673540742306222600502266735756327936315111367261492016314201906585844990913849475843797111381962117021774726150013513281769896914449493872094151161562681547748655248308515051246053323386492615843335767345555480238277412880841837667370313868761406889255626010923997816701002555418095917573359371383503640381368871203783877019617781972361680403871757285305222387408356595542855804814659716675766942523017632009333438413182138308992426111774235932702146680773466314636361773840000428596248253932143879089191766360880199944092334182288637284245644156591376550738064775599773087211366996709858780416202490142114304361567479990082681369730015507536353505977155646016268062330071025566673420182158801958914788821443790914792561664823116099527182938356733206986235326391469332333422779420666992137944895747644579695470121798563947826734224206465145578405487098763301435810269340575152912701951853301563042137407874990658885475678884800844468598240924976600916467718547467916188189886303822096774894537017162285076795736593919326386661078493096174875949717617271182376444303529378081168764244905035562853074367277075448317790049029603264979322351821371423351635578930513734621386138879680855437094266247194424749133168277878162887361621773948079219975858844271650227964102526907791565827797814858909563796945472247075030850072290419158900914446233856287816008804192871244645792543520778153471326013855329838815092503732563660177760336632916745325562437907695545716930772306236167835293664539518147748201558360808199201630443829521631274226615025892104278841625497970563478812183155202753354361951278414854318222026990227573104634667534161326832067578588688792356111981170348844034495835897367705600710835675759536726014557537955560775005000005122547920348888388959027653376387476881718697178016221901056628755664817156154712961761745315628057265600722034483374825177226846040641814597008800042228639624010079717460292099173776012131067583479258671815707223614212455036088337043163030328023787392376279076887280075057951163587064908170991479817183974286928611397743431493064960531959342213462620735751707769308942811875921945827094753425991464826687178310292096801605755785385154697453990310941872174276281268286464660981727101001358026982979706501619360582166832480673911592995891160384328643701447737480532545476950863909134547506987008763324022056764938270592525645778628007798175383494519263956825371322733159642662124410572401139425603982053166264148849734874768754142745567295213431254981188723627562271517846833319180124757715102915226070424156166053214817413264062412859919777025759633181771518110113780212231901114460094217608648091068599047596732540714703009964221456930438273561569080260976947573544711319933797547725716035227139823339637116300645957962214449108392253937515632221239039385005814908198971470076035601129842151761767280523893725162839650107747924102667781383513103089261387262972765892155939668844785730473892989101043739973625483153860519780967113817181888723027867032738450831908578902509068746689127557962443481201774345866658134878910466895527645117660531068463281244995155152271508837371070946117381640835038732936745617658898661112953145968209255920962736678548231666711986132778767266852358711659723364744324366527574670771841057089793598366621421611372462384647735263369017136474439294920453892221925155560250644142829815618933762226764599402876509483150064451157623079633101043510296395224923521932009008640669594730430509071584839048046740537730359255658030425600768362392583563349074016080697685725060444116604736061306854506215644982050530560281012776307516156694446061062870752706117084350531396335121906991516197376245191156459547938728717862068940010382145735154924432495242482046126117864724596570729115609159046777247001512608263046087796011077240300820501590640167857305519583242134297752090009605811106556687024345996956098511499267109187050691316121707107232418243077469288850056049072832524294309584635504276590475127690098203669522956566014316695628793528629043909555208374071271923445854056708422967395010758220937787029541847001586315916658818806633611227887061952611498579627613664230009328573325436645287408917594006186743265285715999348126455495255413815935500712790656549193909619363787804280662963379325164601242355484205107452548083561659455823718247789650631692506146930700288146517914452304108000312439525629786061452125126913283051111961021246879178305228000357790847049266675586703830161952015778562212170886249378159065510536720306053274581803130372705122998971591650017410204928788986598604005916697583127569104317480780900782660807367522843377255594918549507374796422374737638848229146212157346034378015684535150627294676746789087265643318592083824048296951219826126286348000608391994999769001267651794242055858705298344585989350552196556049394519679964587254982027216057900628653505884039944777816596927992422224255724966021733260897221990406295984224773268445882658622358420959634098685931518281532908944728381161678926290386196116906136307689900823185892871141343639559371491010894648684552591698177334152150980554001093801262471884536253520125888627411395773275209344477091376719388450060745183288246935360735228567728895805286804224546079682556680929376932965716670688369458034983237365271680594809711681053501031846618875513468605038449497737082014725305219930733687447105837193617919324361456944675229929414108287551552529587782819639531751674707239955308446740783923415428449031935173814858765080731589459347666077771701526142576190696684232320546208987303858200834363512833436483541427316280110561738111696533435298181632380448500723247689457425323527328670585531632054991125417068495872442614802965583727229424016542847043637906098360149684525730396037392872929197344551649210451812992118117759035121974141038970970932815845140472316205587936336618715377075873714226133177625314249271710653285307644169970275380178747431046697871271492587902493715811637061406548076336092172605739905981552256744033991291387991982714238703107280496913869620978760267635903820289018103508582541095203068225230626518097956265117962722360215235188906926357627592323610251426949629213815515057632435214914714214693260735292625717864918292720757180024607288530035391099952137989271623038355907559620039831339216476534690184541419082868635117064673529105254316194903899908942949712159349832192538544682032352024920289963732643165170667272226908598771391286601206753437978690192754644749860201648778629755652955149773549903082149283294098435965796159653006907388618040166061246861630405094158445808782862260730706799520819390340939918457201293866410506920504337337782527848988904031194454599070608587831399700142678129104061515692225198637041486414139286348901553200174294664237888106179872114799780209628075055311955218332539016503045873013562562247041673292175124932285204035811366401545768916715595346021054313917580230315724504649408941211767873638164439016327017512296210085874876082476750317727579544671396239059450936047738568485443397222842279855674793802096221490718354143317109755572688657780984547973362112480798840639475686884582697542020292792087966279763596947028284697769811929667889125617364484275716320197339227864954590896178405871011354720245359958969930988770878671344747479293354237028048131066504329680193224947268444372625187049840829482807492071698163971703750113398807804772045678458513000588376432887324398006361704100529110059927253289038290171445589925253236659828226936662804053181233069541878210716245251101790545448700507019626659657064942144860841111794127170161107880627886712258893913775035266380494903055628701188922947790227474859998878906420761358888601676703474246414581299544169139294245069650032921910392366180600851355104768579628220132349854884548612963029409466904894055466625009419980257269648752647261701270259122184179938677766665674698518284589536120497252312560612601832496302518996943533146556977978715009740211860708687888533502306162845733674799868260324390480830199417341481850111671115539513305133289205411331405758854760964347204333408066729051506068704582192397135822061166762360767069152482658736607033514805333034852167294439144597670204207603586272614815588295106036447368426387203210762607316731692433863900158066555911233909265097901611539366045364893256831771731287353246114121789815107428423969389348655374809754404910931433579839382061629635940703914207260735503195341842360276819472585018737320182257952168733033274698996363297742027172642076225598924993123842992039833203033591340513401351575032221029392599926065042159538376523290002419634949548009561266763824724090993116879372539900745754854470309137231132841492054350825004524102122715387057485156637504850921831027300436263449638460103585008449087294066898840006235098057235694451101354345135322323813686284230333006333374838679956745949210291498192722719539902963763498864897370098805403483548660761946336167271335601691100085237149442094915620708535148190576218685226787453942696404727147214350225965677802878900634376086768615676911780262973948645546873660165742298074703883722303163846459672156881268016149842461053014105464804345130845027918622119712951037671044880862647968817493256113395992886042070780141388560900677942733596024809540796665473397448271901558996166571259610005924740010378058037457758017193324074576035574625433608374181850340591849139165984374749927275798692003198568732050539761926871553892511395046249724121609726744814298740769935681277652780209064596879336458090872921868448676009699569246626303865502220363229314313169471777780285989618575033754120075562172479645703518120021335201470455334575406266139984758976175301792536130089878186143123725832802412112186644826024138608091716465064578579010067122368440119017450807432527323383018210574838310600122222703332524052559608850324455142372014063314924824671647399271765412164210771534669921933150657477417807600806741267322681824529839258260723411224318889030519071727217209826393159116728642326734042926221573961047799112537693586142879098324361979838687941178952544098123624108653514633565482177320808336469793212695955395203776535365427301096916784848716274057057714062660955117675698968760734515387509454361338614398010518967224139809548936847178421266861068833902649245453985303799636530436495796046261112970880722875106747577926448309902091004667020681899005677392956091805633508490676011285337400914488538022435505881821421391221497529444348780057876517183232740261127079868491736554317357072130170371297718436867104058334381082198560458837180614678239732112991393637777590120556666959649513109521309259939802716048306390539213183619850298066861910550545075904028466521941439433168442066323247882639745170534334156324524100959429928271783890121785583438580257080012156520060703752500855136607192496615478259097507153502314308677061267604894276575696842077318052223054721283769375130780488261295306481490467219415230062253961652268044145602249952939301682990177474147807209181653971295781136758699187338673077659341429664032861045248459681185057496139018260564793906924311700805505289959542276128405260006200404207291209355240274719700642466436807593254794477319820289514487116201066870960996093358536907625040674793442893012013471296284728267785627164421434430835714247127723511915860553733403328915092215903797172810997033763888348747115183465295208157159127578890114443897471672718617432234295734776568403521451168176199810809651855012088528042189983752184435165601697000817412331942859524711863513565343566676354561837438236176111343230668330645267868314785990581756678830837223560706211279237005325298039180180198354319200192578005123754306215253190821415345187897787143174326909804164826244273945443058624783588454823212960755603865280751959837966255581291423536823776356964418618524107378117982509970049028088987734509734419665364316622270662830637444209450493606655352782965213371839047802376473183013535945423146036472375186379704057590930421827821946694187335041940997754292150027401763389332460407853299210080160037619372296463889479393121988424582187329576174973088896160660148858436197693174469059766152339712619141975850916320772420827895267128625022576361700600596320961465828536106175477694513903724371034509990342356237039906967162109206484024056766516561980294572321602961240340303776512368838025991125792812941930858303797696071589018418865461074375820287112361381364855724405683372526838511825394588637236972699167993106177470264430288228938228153981217797960359715299055473393128790338468215360512009132357331728546517410160018360855069121704306498358373483310246480745832845447835040444770873821770053080844974900319245628025830685058284519562736898062300326048992642705362852274947272626000281518979422565372151203987753431734006882222718405804464090113770844804148996213501587013897913096301404884329462535375394662994440713568646351979609866794401818190598216792419612845041305527661387890321490981973856108638403607067970629660984851725984885243409466433845731765593459019834339777491666200130796984365995180554252670233791313386450561715265043152626188633211888086171546375918769787039649789514595295722402176013395039686158820882709816176366511456735174714056855348462521147050517110624044750533802670937427050038418338648340473257256154285023226375456455345833926347155707369911007597256079864316254426420272034291494926786107314329406276233876754837111370716632858705658802501506599547304334168616615610991488528041068460937037039292311902505628236242262919132991664335651583488684235526113633363321354091905463326499527133076969352438878668186969067465516572366892793979051440138756365256446980045320888320000102278996031066926474554861623467551311227322525161691059288209880397926685201836185295219128341944686794846727193929215600424863073292443884651649671059599140816390811589015238556812332251404961677563032896240430729174153430132376186133285308228495801520928082918563573374654059453740214367951223119113470961450036876136692508993705027427705392258286392149755512901784956133304029730223087342635430808868291821098379354544839516896861631650586702241751513428176973165983737473841454537914504560794879245561062034239374604180586051269382704628197416038418825036710081505339516604206142237369919291840405418851087658308500503140042528906045601102351365879227813505890764886096886395112717181615803387332937173224442342983649488793381490710343986508473738994593752515623923421801830404192691225951336500075591312687971419083397408968290284842055486338508156096889862723753319616748568663360890809077985899951971638136689684426860495075860563512069482396287886977675380486381431998949168826922310760095433273778874296876121111407344049866761308383858310440005763309296220979564039475175699214286571237414464727137342225762222457010566619933219395907829139374901252350610858368898509571810143765617828765866992620587532600818895847820844730768011418000020995454559941492983278075165299702703410019641409924634793923624606760006658363093643185829200581275145005333401735830292660383282870755941491129974141974204822094383547700618731419228803055305773857190943865264734729641377329131025185031483650378671475346844171970019206336418324893583039923037585401140677998813189307658779157256769780473655983411736012279035316452954936814029898314746849307561739242116037205163795480056910960322235691056333955251699638205127524740782228901886734977479735545867633175948699309091541246529298007267226249160624998902826966232849788205251348024044957827423320809771936894417045371210734030050957765856434639646724609408420146504078534663247591721903619181374438783251592935227486952769836841199496923011778900282868090235095127539553077206045646492492418522672025622828140923144891405393974143600164195569127564335452292184449756243456840036342407759672010955277715567509281562946561575156504620780929788361689426946414935574701097172812104350019305099270818197139672088607948985816418680704524763706192335961095680659590651380326311942725213527630610776758741492563642392929675647887226170209901334777695059464708045394647118577763591816906428758811394455223282322414265928839403285520449624534593653203997964204732139886845367687445406202668301142020746550513644591267561756963970033874881523580891312626214428289243203394021405804749555795625093700812822438213741229547062662120287398629440705908449528946431482710901812813915169785243294103796221097748344522507603218412439164538690437884082962103448329623886334245261342901856179866258883617150319595378815578729108406322920626967395255750473721750327091085518689456547879018477878159467144874106043850304824415302481489915721605884026161806260624257851023582799679022292809393032441748391314002570424969364984000868086762515161042738573792810231896289443885633274508835480088670375326769987321986180466581566460712818065391360925758537436107577844783056783246799742861496118733263538077891853106110040166938317284596342567527213415787282050706618622464299837446451228414348787302380629319434877878183221003051706994251704753432005142111879498809658201899693055853100505178023452948992164649940685706857540081198940399780810317743131796190657593380875253901872403045810401663883683862160668103770610360159243546869115113286141037789322233180429802617949841562619975714701175856830379525355318865807691327232696750099550400145212158877183435602032577650563989146211618017741768325298784684227081142324019396583607731996900110284198439746413738510683247943740896196917842198623437641307400968460623324821341267895349047835322231402002679689736006058645741458928244472413486024443554605386031029846961558447168568595019471439733348225507797958496070475949310411564852069436493894953273046502465870860822739124308239245236295382695286871411567682416013110669813065809242636900925030100550465686644798398726637927493446520182328665064003727570109543714621868425952699294072137752398250602709870124523029947008029376608912934006340345385083743725227039521406458153849262190866960813568709917210568247131139875018972737949357794599558173566233455910568630016523738113134830534494894775137292465538817075525303377110550328017742567873625390386564792735702345918001733203690171459244101248343199485816705802762743937014390402997218846405497868630983891492527381427626128442840228290154458041779666832843745502118400801617078228325805641820362577867646370167539799857345750905792850593769031080453374875212043974769437712929890790307079920343565978138300900098903558197298071509452102848153574859700371818090264115361642983276608874737272091139495229293692137636981443550657838333672799106741991448507933134766472093165173125381796274915310634610959347294970842011255455030718789278414862466914522316666724975505566171618868686193634708594822075978847666927447844798932897009470980001832035073480066561708749901727023314320827067136375089322357136481211318892289936000093024924238520034252164758946694894951200081838090539788609506945230038097016440779909467796723919872589475351893557109801747324036629765345684607451487920942387440580902837266974718897710180668942994614567568132110700509706191736915941753231908815644037276610159424462754108972588596958605843753412266551075493474695376286420476589679201143056771776885250356945085109865129090283688064114617687550293007558367247835445670120028151041064352757567042436832783788678919016269936321611827584746640519707789784844665050174340625842594602744043367812477949561700363959485824618965683730184171138173960939248901933422238637791129932889143714563092430182198664755176325133479230762104238394300208178848136429892341296110734845042741292887192013457927822746460365042063548996137674666840446351962943880354567039473659210212221083946878874257193219631676947609068311323718936975229000661219463439534147677284207877013914375717957774818804053834045841726894166154986365985091072233865141046454825740572168870206614105234546310582945555323285981429713143725118768521993947655218232652566819883148774382278630630442837160803930445158684995639480136403846738089624539709393464176666815427670732800022995063171691912304048037220712294555102789155477363101302777526136412981191243083855459517121140836035720933072831710127579950611270295333881351982449501631992325542397695098752202413803894842756173184816401138617727724691220282058431133908464236668516688124857649962261127878768475588020499073486697988184759893398378238590458978321084761840205163622443838075862677230750763699066378326611895221772378180219938724334085445543723269418906300777439386925606333590576330065218729198324356625229342483997588571921049870607424762266548423909636640589018184701932309421425582915313214407274984153562498972645964611774228804113437198967377955640783484765371672141861379198065010042351347502648760073138706879155990355128180014499335882751809000886674018575678118001326901949430383499355888483800333861354595506473813840776543232462712476275602389351106704111952392480343023899898095558729798772773745331722084793983761886962941083118909072736994520460509483448031912957995252854359897221722124139884519435118569259671896503534719470752716156494902096004762973237846832377830557268487679550714802580233868052845990057730013020729877587768679698697612894768332497746847436675010410811431188263967474539173610807136262279027801323739608424034260379439948270757900864309410012925430174581088049735695448886188329276196897691927318515945474644904466159788545748955739020325282471826257502928214386093680204942740725665132558284056657779605284411629609390929408981876940211941749414359508005825990900929344490159228666573412704964301144443877719189106270950928714794545337979258222218059665626335254720727470327474811605345165594072753478071174934686885306843167673617245741115754546720999666259160988468158582142277859363424065626794375202159984838025933223121343689305226898981340182825873753069313325293361504240400066446791698428946139775191967515155054645194402449364091678830434844166323432227309845070434810294664805115346725543833087763586830584491557648223500326155498935350701446861452411779055021317886232743266001439922304720405044490013399463335488581212561339255628671958464711107038700715994263559441331480171474957089032899807010919852316479181546547171973387012183965414775703959988529125838244457753262783727333404081912767575440608950920154816347824073690275868200714577838601303037049777412868522597322623399577294525846661740146494968222596906989462202734411275683089349395022526348200943190884231544682660766841999221299057782379080946772719259828880196679705833776125965217976560181885485834595482851557454569288451855438337354356942888104835576026161602057251395497370793428362159772498811160955277982164704204695457180934849564673613400101581966253642583853127809160866297758064214900960415223360138100594508756815651928859182621340297220481662387676756851415640979006435917710353842327562329744565501482807303585360465695280652806813395768685230983634819935843025041593001241547410681108169581168200819139169874328796337772646005340885263123770597295277248721638612036351275944888057498455880813344478005348705772286545469485931609878537501316475102178238454914031407700393352086537029782447748813580250424126115930570518614004638215669948935443830182466472195616823261953251156256692902839531377436659234410624830761061740665794996076225803527061463095086191625141088304573790252029751042578288972412772740696651436890366810536473743079217671535962347519182251390610697032300160876417974290450712570420007417873051600560425147075657367359285031264622727263013261901886632231935742120160734137171465475196121846379293052252101348698797983696892789748330432007522114060982277690856209525499560483130798557995197451574357214461456166034627702738253902481341635668306562969907659999435120388864611059425530370326568974737619700754661686792952402569420228227385972308598691208767129283019872652577899757002297162534868898505388967559890039966490962822808923606933951164467712474338143971216579758072047106784714251051677134151550879037484310722416865262300736374072114609695561770129019322750055329343785742980650333930041728641468379420605903705168958324891487711736103632973851060598556651269661734590025998776276374059508166053869467212521316935324436021186869507653866199611251337974361111878715306071887077949116168298546227920497588152705002023753079947845528711022734116752392451962558745456166548386268098424597290248843634782029179903311332182215670244607170802282644891696762134742304765351821842075907642048700133678378349988588969721205842796665581474634602236372766460949754161036446075793922009060526554301015195510846664730776545225347907876630276510650858946988419227209130175604731808428440792317592979893689141103732245422164298261960860736677854867656166415915844683762574682459491570479953914132673505281139114875813061801958460838213561192671191513913915384411233468883000527644502181243168924108514204720773207823585891482061898493992407554857064391478247669725822649998845775171475175156413277900166260315085284920529428247366877532140119816936874600127220499167669553142362979396818871670284271420646878924673393883302258871401885680693871440873105421428359294417476656553958816438983860801423041328045016770284192056378784312190764871291368090209754229556678880875970151990312315100644218555949547140932585304809742670039602851180241485415436264649641129884744659830425815862639011676899194413390186972303097252096926516956731153928374670445874944413348891639610190066527426492403467263856995121758148359362339948684717898e = 65537``````pyn = pow(3 ,1545) * pow(7 ,1626) * pow(11 ,1569) * pow(13 ,1552) * pow(17 ,1519) * pow(19 ,1673) * pow(23 ,1498) * pow(29 ,1667) * pow(31 ,1604) * pow(37 ,1542) * pow(41 ,1622) * pow(43 ,1525) * pow(53 ,1606) * pow(59 ,1531) * pow(61 ,1484) * pow(67 ,1631) * pow(71 ,1596) * pow(73 ,1495) * pow(79 ,1656) * pow(83 ,1658) * pow(89 ,1581) * pow(97 ,1592) * pow(101 ,1656) * pow(103 ,1487) * pow(107 ,1488) * pow(109 ,1577) * pow(113 ,1500) * pow(127 ,1514) * pow(131 ,1660) * pow(137 ,1610) * pow(139 ,1677) * pow(149 ,1637) * pow(151 ,1596) * pow(157 ,1656) * pow(163 ,1534) * pow(167 ,1627) * pow(173 ,1580) * pow(179 ,1646) * pow(181 ,1511) * pow(191 ,1651) * pow(193 ,1591) * pow(197 ,1562) * pow(199 ,1661) * pow(211 ,1539) * pow(223 ,1620) * pow(227 ,1492) * pow(229 ,1665) * pow(233 ,1654) * pow(239 ,1679) * pow(241 ,1620) * pow(251 ,1566) * pow(257 ,1622) * pow(263 ,1677) * pow(269 ,1551) * pow(271 ,1563) * pow(277 ,1507)totient =  1607761396229117642184634624245497431132906522097540219075272179149921950813653114672035553695071916990375308667248425327427860671314775981784940177679361590667404895816808283431776307841794159342107910310587209484508468216658408031165820375619053326308817235467952671334714077028152499784335090504490780550121270833059745976372823216020780522360285239177638238333998263620927407665508869728539111121170060132352654789380176542201688923008135891776691601630286153238571155276225943229991795438259330330926471929268878236635903700641631741404466099548247880343549574953926687714143476777203029404337773792405553902194729527634062050624082943415199575610489902491416140966358239188282392763863429252961561263231851203523735577946555489659816358712154326915190768607666513759558795739868176132385367442460288397388171968273027134745515701237020919125856059109106370962832082628492710089701904551347017222216902199616480134284505965744708321959198744570115457150685821622846479615041388414678678601885934493477709275399354682431876416741293641757594443288799409261378240482158327611982713017837061031640917232862886694572526171392450357177021755959345868732147567374033180427615094161358677798668370100823286395973219577984952743680146709252980756165917589149837307199167246819125668189652073654572968244471671891460916692689059431656442308129345062756105375023052655238482310103976327897762999331616709118841910446450050589325726213398630760262972788715625194150852705566578399716195795002078865697863359900684478744050715781054161227368303819896356362055059747190062294530300996944230143843928990581778262103375981723408414411272898919501564975831483410043349216026248598263077721024432409031510234483184231365989699094514388990004822806144188183042140410485666684368330295940279397724889664787857842551262141549380253177181189334207803680282167136650769546484195657216181352695836508962826179817552198905834028648016757462779160166943827160946700565865645976758337148988133497934199487324901740709677091156631986098107263832685313214813971344758848733070911649659780529852004918066310479461277947967478551120953984416372529568774783873787151867539302004319351441713722464428453510913897166552743311535321158880627394283921434655609372968451335062249569227027591125512672976079663256779353150989340839533384263741263146894385974675635431228902743568342752174540062225169978584931371848572762655440920795415261305528005247050626712334897736046859588719290093461575410672487435987781344623427367005414160837785221445466010096324223804869313931755516701187472695801887072684289573018238370653796019171148980900346478451628971044676273229158406029773876393276439102538005266002462182453902145850773354680313070140960528560428156977775953595639825457784137376545789795712070560109957772980410081117740360272985087052297044641919668111588581818585733496313544263731967534643494394624034842070854953853557397170715981365269157178448174516260168147837448216654022575148535183604607741208011037406093390971551615208172633928403166505820100467748478756065280897486087829409794639850080542169532986464832374725668889160196753192825252118213679705717667288617141666164159508769915856643127444275141967990609999721864808712359830547191195940194866030340070638458113709903803139192956199608013118294941592110142718585002139288937261146055851314690349876818418458209712145319108852811973174916730437918997033286732918239783297113048758213585144661590975157027059448473990637755750819819966567145591381690943913647414078875581893663394108159093061466623318595384627535157826197201575014088375695618693748708837913857929823864653840256022705995341117971095061741522279201128117549447048575529716045490651600205009637473008359173491016940298638989880955120567878437003573875293050449153746963868779640501544424526318597809889400521638832898789083067530147379021317818371562234442095281977313123962720946858328202335768390956508727199860180445103116107678922723623371650004935216408637304828147036298379701828938355926754921839899308599162201803650552371668054071690186644581882709208496833821120714883647646772411296199479995666868292578031078672464312705328691664301363119043568844487831532914466527559825344233776278421047692021483526696407048730344331306282474387567872675729260567567024364043548705939804829270795536766699831948845945693743779469937838562672637938754756345966125547564400803144202501057827013805011767269542493412935266087757315885709112693273189591955986676354837395877219556488299038825072938025242592986903246927197389088758277045436006248535947275613595706594408553744667417358923350151948289809397818551541609537775636334667418614587128636284871731637606217844655970880080692702181010662835679326815513499580893219035684340522318202672064717736504922488422793014145969838056536317392157711959395647769775533830089797742874292489588547384113945776576629653429153010637215861759565449747352096795385825561792121903702104347834923065464522078740504828888817051771180470227221025457928557168912616243399974090084807998855996177603081373625414738423998729458263494942144974284583131647260587391956781588370437320791773795812147892235742706334084320506238272893747374024656757612531918533151936429287263616855234863827255788336750878920424281262377531288455348057576971054645690332038089035848915310060395262867028869121272632758537861569420686356920595115238707862777403252269069988133909753625984174301225626064548013033141763073973752260356242613077916807339014132937847820232110659365571670051281710868897521620589173813519050487146521476288712825533403718833085871619840108216274500885788352818735572856677408205095193591796702013557017278754049976427930228061895336627026601603730010319961175811129502528923949256795261170709979713597687835566440708044937703938413274312556404798768133385360184407834079993378491749959641646346731953687972778899678382602155578117554490042751786675336392222653566702950110507738107811500716938953584713980174507440755111378072115714522195620769897468940503009969917352775672292424103342469359050540628193993671069194562552961520110274574006685659517837509092091766004673753111432000970662626800812243042805915210193973948154206462225577084340990102348527208083947912964398187151229932580965904942017408034116096789068747097476053245720508296168543548531195427229122853450945977948231295488890200135836316980656437949260825504015402132198538675227843404667992110436763284437406607325695911055096347322280639453319308191567200034280600591108142391849914757209891824061277555943568623381699610945680892385578516023667548109164159087991440814396959301947307423188856313987655051879930609133660604888517585064819006951142532850484265213280242436763516461213649200633000229399731327954334888708267623734222937358529843957637873994041300065074282889254180454517464005854829987710281654974697594465313475627142806194747121568215495628956204613269474742515024836452458303147919561785833435408389303886723793295639028227429463246334121531276749337800501794184582679270161154295272802809047407226898419228441238632389841928930062264255020980048981217375063969612139435617877860479600341201534186995682152884328591153794799950542431799198027786518172581200278486541198618475491797228454569634850412066116550110529710500669095711730146956646040849370830581550782778266350948619463978847075251781175126477353538570032959672008565981586972033860711647768134294644021294716776409048946256726576924674572495323906427607371581476382857841528569952964431637303811782570110683000622650688174676234297129059745995480436283784409237880548139219445298988114732302056308122116362063466391106193602737738517428315382823083435854372253833646985210783568661167859158310794114051594515092427487026816610785253403160253643970472033905889140898276996543362026256200551060835385084894284126465114564050004397879703476693294669701732848978211571017694357745235866980761498944265006987701093358489490046284896118101634802107405845677234203565614088656559140090481094427467350830080880775306921110889621732663254923523988444294692325739732204559407901217516650182830892846891334112248022570695934627647127542437889730159405652095345175628833071451608328125647034757472804521646332779162812068069279982534479302238891585514691926331852264212099380480170217298993066317043951372387495400171952393431106064997701744445622185820375623557909038592281469532822327718433803768156790325808118594709305246881309846050202483125023253321335199505101772194633754174112992291057987738132765384059848252152602390209131547073207931158877066300509078429253189971400436333403281187521452041352177525850226367818749885031367889939458772986482150428725530097872248650332803240885566198856881590166835180289322336142947384120072061620379569111186832813139114089486891060104526642226172686108424607403235240698752704117516417171021226074356562831029184758542036191358225482863964728808888823638192618820241494482759968326698802440402681849891247767677912599348017862045804400433381405924887109163820580304232257923135357976827353922733175763072350846411125477468796567009877746715783435095446596721320742428100058212868237938093235143524957210297437789414986731990471477916948850024296967288110343659051528252571724179675881874047542999156055337503446856614133060170425983749796993429115058615793405047657574439746043881107089521196058804340314091689310709421199582548834539133249849706079071305301508960738398748745357196246578569040239666405625133592007663018127029744225317534167548143585955490093764623288270368482738464503175959865731367416271289462572946203212376521929653704359436365229108846645279366002495816664074030748505184956364743234674293516980531435668626991373487349067822415012850234012053621747712727439270663898702266377248686762805066991831789711680194909863955343765314614919423072478638691100187770978399071605475103399287856550439699337458782205875948375003814260054187982857478038055781381713699538508506263159497492912609973441994354449736963385890682274050854369476413789671091425536220384157311990188942928860532743049134998632547889339940269061430533471585932973368025163005513627105578316426644185757148314280263437786242075562274166348237322456505297467644477846501628819529927663854963809080619512731818824653863427387008261137196620726128746459618312404699929838736218475597416737385837145536120007896807041885251755404394975423621034634612452386069211241151325041233757201469522084730891274625918016564462954254443602112452558304817363797249592817722533547882097709451661432597798668566314626184251205654133521040310356679071302287262002032690068710223034283644078278541766339899890034296692677925370090361727590155684711816899852571548918702438520715608344149786821787630130263007429297002856919512780247921205567222747213897867178674242831364425459538162569967869092943556277711023056581478532290878120991813523124842346076904380698779392655992813710905722043235382165462258411365530549137910874483979801385279109292741735861925112190883492341835982211281417274781201830182242176630052823493630090333891868563132726352640863282314825679310522596554981121915956732639612470976401261320069206442606542026459653156182045002768434533451461755501403534912312391036143583372794070269743568981277168973015445922183500448185682354091759485618000986020051159913309327917858140952895266184381870320491936767226106283750764846460684054040860226376465126852920847807224261197424165042255672255946549655106826730990764170436247312736842709874884778305694095777141705571982568584978106761041828642363141151200809166957048545657568608766958790837703190888107126057999756491410988312214504759752660572328042780818249480164552796926774068746616150809933320249919107608689613068057934806080991714471072827765402888455505657032517421822351524051579278218388385733383316700211676588642538174342727355525655765819260946668263652780039049388100157773831715424664736561537703232049746182449477751903070338033380363065781007910037387585028000492372505191805653918271292692552659546674447720825335134540867516545563934834466939589567248763285936193388239466622575340243379580910685322907875989261206297866802734531635491631791335075181243642427482452829472522249068863967993015182822094300418838431820126731980015373478414933194194560464016472054143982828224335959788230576222606044603824242582541576069628757521101017613471281810120465443546660029888729998143892227940427678718578535512600816520224679423991290325665117352010531235086338495500024933526378914388004565896437085752556258396459381311166513636359257512445448400658928717026786575924348580787256996111273839117151864034598711246021733110937256848230596762323140542640653897117644826794254377630902936829327787625041618021942023257085818000397875447603867485687946509661033945827398268070146318193618006673833537531604771107888232099626133753718706228846343307692541928940623005933654031916508932993381819176594390684345724462852305638673244404679938368789545954961225642140401972397482807104499599443600091363853218983983818980832381655244589721461452357243445936014237908399175522939757864451663736534466130126052691527836158274623102155879810369559358236439367541928109851828328331059760338095222263529127757920138403162497430045732321022450581687046149029856135350709479492768642366751428367090495852492139976664386227257578508669649530920323542929294466823313990463893055657735245062150882484701282227501847987362029300280284759364253318397551817533111079554405082671236446164383143442098611368371600355322594650075218106818350857349832031639497122806674781836693098507539434615623981309659906136941100383068458785209236629782908689799646989634019973590001154699143569315810199309469726357601562822590660758249001846689515970446028425364440857848973394490132411347456936290159443241023400759810183023376599698499646734041128357930915949713206547886443523276940467022080159494711755397031829921946117614307339420914164503679400630183394841176108468007934188031651441807789323304455058853017009258739792314270344516336589991135391054784625307845045450528576473612572112198739455609430567992401270752265758011167980443473022039375131269292718806091175331692052004770907447940429795692140880438925384837819272451324559243810260749219799031123428175114409840296769705651791417140884273101696014774330012799892628219136449651797133242863213843685046703954678265836456304934105720296393054970790453722463382808630762045743978316175029135883645175219005512729736192461323966508036834913140754314027977124723506703749147180703026368459302447878708444976072055315771508550010901079234175233011558998026726849197493733219571964765040030835799233005614077894629263145213582317159623850657437785811136302671710316795158619895275928840541648794805189203181546888439063746267546878121513984560943805520937821627118908099840875375858813978069978454446120540297415195591900982138278046705690482101918167028830492005851588744373731352898582048307130496657585485975478139499112771341209561321615866708283678183941467135389545143975530369101683597356338628795653004287234958796414580633276374157710348108003155904616439484519279725029656603510009192324453486829369366439560381560662579947121958060860015563803133202678662414683889344066585346046739631157806607542418883607917530469008436682729637551346122928095044481990478839428007831909706968921097456447479526739460615176259572893025284043663927416012977339361920991004961740238418335867992766238013837209666377020905938882722170109512800653101904352650830175743262775331111984232569853733025649682297493421600584476675162647805622683503976745709182516683620517650982230850288894731712001249694371151295593900350653710207056983729612402614583059874066481917529308520106140634013392823797023350485483794351483899591007531088285282719863031847546434538546309054354150558958844345561347664258470777196069648393625363313870442682101792273554363926597457400667905875480466802923932376537269813894329639379259541940641775098231413098969098945375181444543750707429367772180512407059655899739971440408863707361877797392014023603828211312797275252490600855325934068883084603856397873191518804012416908268170210347278393524551994096163118263947844461187454134321850781701470475082418919683219434250910722053824427046703144509847434030591208400686845790336784169427240857119068021503462078586188530974628758362056543200650010954416544505686992791149331034403180240016277931593459953041347902094711531782296559112430645120434057703614751704151195558672598555465530719803993323721418126895246345286809344431768523599608607255693499090671763149390799216614157344157078658050946361859309438283406164387826283036062188090650281318822504528324895587476210697258430143431934201117265686212633669976295995539788628163534237814870799342835835472451200360905072589464877857926211310744225239770399093155650938552879183365664886536636845539667569595714377094939150943394792165135912101530451513425359945503535580858400683947064875235313206571015569215106282150559534515646468219054645761466878287930288402501258169191964134883565594890143891023346132397717013121439077126733900634507905990946045487360623226667094273300425540629736485447071914681084711521852007285523089263819960565024034609654309845406365445370419408892046524573956052246132451954081681552391818173348831576442353645056273612489380041240072163600131598651858735955576854633920846641395231554870736619554979763249004863369085931475565251057074883300865044774034128161256553209594792091654547250704414318114736081121836610413688485756000130486307578444282437681628172517529488362034488828331246413150780782813497276500605340167577875385140299394663999853570339247913586524513628470001741666284591479132888960954577345513669816580150069240613931198751249913697476986068702002880903716147704474824260304840857348602819030256923440826044738870546957103642491881416043524817146465478039291039316734441896939042465480185124295817385904098373051776786038078136180339241391984627699296423582378490552417477442015211619511632222808150082673011137620189052212765452627325355319107684063330871974538679530202461392927963828668490255697627811326887949261739048593276561385751899083860155917143786998633627990456513304174860799426407096106735909434785930004713371726070177728487203141928869930824189829630670148617080494575218794101248993403422330397555564173973519643378150043363273872370466452078654766128045629404216171839702968188548663723649239584852724357955275694888138393743616689822526007929020437927027996933063470847288936300988304772974061262479416713444979850754904639298582746634993024329949424661298766949126567886204507454891767508977076106185634288783145089395861087452185717877128205342956260319899694996535721721815535487425190978608461987154001521571401322558269964430713458128799344708303769491741044185339615297620468272731119649933197528145816188020243917120095121886951230386802418091824839259829469936243621767441492904094846256623506342020814508265671231778456014867566646612035203041620339213389444605558721832933515407334635926279145882900627075085716703819159378628642341376706395776260322977853899560396833300142244780223390530370578192710484421296921865838727917180980117530177968313402094894853269198985044469113079952788780743176974423416986799601804707794356198420420089884160551777427473419354299265249574161521210312253770943473135278138407380378845159954021005648416806058369605253349158101786641809879576518949796364191232484611525248025951448792074188524345745907263863006174310258109597355628545520936492827913076730241726100569983774680510971955966360400105379625592371608055094191109933415356032552905440139677399827089662274607143911914190378953187276033292213779663513804406397330648467612465609095278362484930270209361592545014291408423930046947172928816767809567066449712554871920789753169873167845738946161657491237333366859169583076794484623902639751525349021651682819779382314508613367536924129856300460504756102457518125772873243843951555623398697326663972804195841597739114882814865318083528375276279033570282543257482915973435517362074949018768744530831315763116896480795002644205615827478383163935647373220410086435919856506463363039529722303974254554360789951096891929798852865738245406879197890696390922168241641860642336986729805097310926547747841510362890619879149322795544866059150600431669887193904038956407013254526693367685230650597787732466294619086120347850361250098013663187522579350380419590730405943699534156463410149783192313587949060140097939724793634039494790471868179590804866163322291714753711216205059015088454459035343170636205856140102974827110770225730882849452871070968089949846728815985497601367062688125096980037185406281252097337861397526628442571174634920668001078035778128968336604695807223176706794318867177803629245349071568405705369294324172584244277487462088181991192761268227244884785335112473058692533165777418492451808548984106197092002778743795890212591449264396849482707968773086734154962895835922524886136222977605119276428552852772725546697487860993129631762729256061973644373678001669109146943224430230592048230937921851670234863788691219721377640028972108651740900027286284953902610955564681931874858114268314977375019359983307145144116922545798451474560482085802893594350692203052321952038083823516698659461872932063410898582636765137960565477400498636225017538250640416979560989530141121908455648437638201498509878306058301401423767679916259327085773533771121850142840974989345737737822926970913233741718680000476432167902384414288432891948950374176781051827707515641932034394839423024004548716616074165616213894929408111989627879971841612650729538679014371687451140554573091964797126121384598719432711799156144045129704567706153919593118150289129702905137739955114215371745887165291825759726168036627769967963796802700367989790429011483187655267785175245883276387455164107434434501666142548466733881846077823967471022957152616577489877811388810384841268180681217797043179521986366333094933378930377638366040259851202986915757947853320935609002476703706601627961692860071736496823902782329966043686410534240310471798333918764508449777315727108345343379268544407244537984885184438458085933971131814028849396062392549704416307746148680540719908489748161647166986765920882591837861116561736670755543404338347093443763896070097441632839171411905189666867147491650415310160194894728531389527113114316741521026685605191250699294366496710845092966160462032683678000348839823861238611535202365995020108035237379189616313517859010071364463958189626248812701792566738414437589959818164124281796837993824467654917618537684397706010107766848202700642423662989166835057977045721555133281132024754418273273763028894067136823664460044243798998529336786400427289517248764510751008951135594798094399095745973883666887954585032732479888095746661358253326812147269011153292098216203227859826706912841564448600160669787057745756666960211445900216833754832452568365697520055084554714216668596568375756913397589921093243710278488257596759911044642717968440303752067979005799670574075582773152240831332427097476998856119879234655043277641829265053093650543974618108408704693412445068640531070408202030726105472710658185585618756972814099003394866110415696612665075639093372855734186129616597951475518201350286791979114838259053834389649429237236041586481530818632089062333930514194383759476502352556624027805180412798312646017878261509505083690143606515518743791428549767715300872209195000747298112547370576066368212334469535386683339088047794859390874463540666042237781168955904082516824251682112854270099988972864078378617710865952821886754680946112041188260463034650721679858591815993643089179094676113104336448610937046561601345539478291366128783982289355832522800104123129614245254810916432251561443033103105434137608055161866982891596163867600074094887569345917472112781590281479525804191552942325634753910274250970762921557016475801337157357029527263656696997207810713197236137810147094128208146377160770442156540517124330309950487510013673238732886413786800163259670440112333237734551334010806036828740823801129488230370123302241870702847967163834435247810112042051990301447996011297651735019337032757595497951279687524696815528356424861457594656903148455338186185062160749048588174927126440511665851429186295834890894849021544703098129317669955152684135070953048187786899812439965534127012058772161623841138419588185123793177324371940576635958385229360626403593221111449541276747878057453154393151998995922876499260876979895015018019746102322722177684465871563286187289703106682491274397925791898272713063082508469380117712698625866857508245317028748426995867397129638241036809079360302524358973994685538471640076026507542970694433564862391010106443276838090623316233041672834485793029438989172481722956629889768761289363727753459543017284753006486350218564625477719360422934086621114367088035232687873148309616810894299515775748526711616420815467094693474767715691749582475596675929075179037809947526344741410422959356423182767430914203419410749508858155033570860176635196723156093907499409938357382775392790016994365788547388847894927087937923581051232764815899115892464689401193362816736590457818498417770100854392404111509754775358734133333663879099691410729587292080798841346576495478905462760548284398786454017534482320426920138981116393546318141095482733078199836502183576984363579482016197284788054008575060478065191740447578815148121403824297812886269036264270705145744616545681087649636047622017763850900071022134819504369868447488536734361390341032503074114575337538079382311469368945496676797440036053840883377351053078893517440354286497920492909962283862191747572394173959386419455998040814828574336272068763973058088289105698964614870462796173334522671362600095409095916011450470558247617601766887970571940187204365550457621024090079689836814290382931815192361760927891951781067177023671076806338844580307347062156925069666294592169864154910947248167078632821669159426002192284164442315701849038868731774067881858345482751873961735439883989712681272681747960652106857776599634005454369279812749908130019028616037262494234187218370784294820707468061263157696428226016072294354683058910462035317491982497837199965992119577490183917448458158714567461954760356349827464498961255927173824650366189866708786435063796181318291941260075298040927705431101886536181533802117099489224267859625479816582574856848464287620099313075969098382779839856333865224615234887499111610191825779266111909525148251498723344261235641450722543559981495438056961550799658774394982082747099327334468920319233455813894623279753835517666638713940108282685868224590395877114183366389183405772573093393217809973965559570784922111610495049574088712579894566712652103610805997508067977856081137051076407175729080928410027379835535801039165182369936484246426716068490432786420309529864927404964146844479861485890028952562996678351150922415518513278481927632904040717374667202687196999688658635903864523023679194331414753529330297837200401427307498119493886247917186484375808379536210100722861507098639735209322076923960849526198254825473255561206930823601355031279316157521588540555569438944111444506853117102446817025381472793495585795260349978848483065927450317486464571673661806045342003168766221636110808022594960463646132551124954744894576526602216769084959824666458764395370027960332684529925874725795953575535896538887637129538498460334818515300471250322714366016633274393096149078432254993287834614228029057918542519874867778954860862932208567187444684646991895365725427130364360571158290391181740987356193572270877179169897107986624963191388815797275431783636540365702332663478698974200890920928789707257734619311908581249884403940717391458729678765299410263502311807660428342506629027254951038491479652883935468512783953780451576545553794299094048334012281243800477768586245769572191974252123493621071217917800565166026762141107588931148431610932006357557886984799799467535577614586673851504534472202046153799486214902965088215008693345924976199045783120665818782696396350744896844348974837785357737439983698520552687040213321360677174225290618006150968248795026671450243761924861242085647531342526549053782190620936422137126809162155705266948535926913691391781656142117222720693160196873148696230273862330452384335824339532388663406043418444984078958350515515602548309366271196992665864453265463207618067022820255154652977531889697735975783603056421776066125610873633436435849034068888172772924944159675383430393649262654104177727779287224721970589855558075013793583529494559889961234262463364677286713698611595516048509563529718458025719141481519312055251714177273255125923965173781390605882101084805073036207389878948962016291299756799828355926312285130081374913433999978785091376748586963507144470304218457322411562195057735504838438784088839998777674673824712509388700030440529517325159791517702558313085924570455964907699587154567212260963376602355236878209845013041067118025923762929253594308392925296417528843816068795892326787250324224188954440662102546700968424386686281501399129579869181186891495613385368383263054109202500302592637504378713323999226802659224903258283438612917062005930672468010461422099408123095256484501626318643828557450401772473054550555710654767241293803116164093408791430521279081621271369039919416402471507033615681181158085012592401785331976231951662537061146028215964906728504173987819659110705949278160312435218196279560329328119513929907288200210769358841252589811228696279454970786630258406163568354151052120046400592726536420518927289959602821188862086934337360112857221155456089290858238680064911015332829952581336345067028661424250140122890048619351430301705794714006268880135287510650599078244655450404028717024330250851508853503119531664084740013165687951445968359249830823190874836410686360761813421609162974570828193437602198359825713513214374927189099582443070820237717238619808392367029155832005049896168571256332801388994017401051508190971023104274038110246767501247063865650569890856488120079008453161096401328332385887864236087745146533101573863749158081089148512250637086425751137312799995617556903744430685745744520362029940170197726243670197616058608973979161276613958555082074658488076291126058381835252001990463309603344509322029026371942579822765267945133270815568140190029562149326344358668284765275419435872006546143674265208125355286328762226180793449637226440469254042042183719400496671523322926032012198746227162981889649485771382592418186556213087880584005988278323474998372448134106647589469155963336059041274911290122928135337738951528499122199749224622103449300619372919112532912668204816801561949541678011891088792906153468987097911230708906871080450300683488122541955392338063301077739413744380639487268362413090240980752706650162190953700299335311128958046310618450457490473554635778620476084858121226337740916555978826307215139991025119967795231614040173294895203904874003514411159564887978602684652098778721719206883117955656709213825510733109760920997312916098343555014432473011889607717167823153828848175689689606883754617156059585914498410432132519029623759626281861209747693946254494589018732881888023999506113169058150381988427585069100742789640910836175854689836452056117305515901321444852357881939303046075512160269543501496039607198720213849824600171168836422439541956661474850874376344776432862740727134879142833261406123477677682316074498412280834638799411654797746608850709514624571592247627151505983466504906345076556931268403365110223401701402668629395864271053622096676396943306761159646528285079993374511746222498981142021628974742671507372593672384935331995710299680283746400984181244048268298955847300257586869097201864785129004980931050942021897762804056552862954166644052781140115084988009138081290796953272270350814382616419937410020973441813571143676912171387309238204738261664886275539186361544860411464247801207862192421361214503183511026093775492058781614724000283020113889699290378546308449418626132268215387066255397586699740425986534864836560963297146529700824045313749204363595100691513975109326797098291377912181184482593073077484520781706494154590998268475701671963825150298340410657892580704389872732574598356300499833188348421450979950133712393792583969667493310686378865258836114574703803221928807253641279907730245924514739370416037236874516297776709849514895991730280139330008119473920753039873622968664147539591611912564138988255689948487948290309218436057016439479195714160558132106475730250583245810590139224781877821387953143065047336756464294635930392299400787086984731797817297975354705908532707903822346461657089468103347454392046474796107488615403199128908611149009634719736704544377437479895579410410725104627377247582773597432982819068539130733167655564180634336246995851806201920421547163544916035573060050002163486001152048268570290251407551349659281826355410860478673875698516702207608227182639249382793321521950953907629965806095138020864010127942276460370471871937198686525699249059362112459361585003266174682021613554295986606387450526410144816711222833763804759802053213159479371488823302958410051519584016135191692446076891335243799054706139235295334235487723111351079242737191076250716590901395891602406967135586407567689942373923258297837973213534222151339338523105860892537663932612851914069878850393615728837395705640417464137344840693004941286860519499463483459181945973305952497422836153707298019540224282351416153911036039132600564240612005203806931134381421928517840444553124624134797662518255711708087872497603853675223531233164444770103825853903767065650209057626050016302809587047608275323952939987570196901200287532200607360525415179222057505900979812268347571418882934264246956161757384214395956863097880368601582829206528670777712149366521832237167912158837976805890687871145011660048382165426343302098046172441717833122705167410067665492853468331239574141160633430441508539027751246310016037993461349717485999670468082469046650491171754237290165052023398333189487289826129531416606511468579526585427367794196911107238398059954958449731857531370798411312939942474339517731082808429102516660199533055349567377380934471067713970322573217756612092453905284882450995111527708273062354782734967613334141836327703162727262637520117322874516965452524997422719087411756551260466929510734184127276127286779557502441949028427485126159859650113496625516486264959479591154000492934865598556541859071667250725665641907748793027762833160390480105525917149764833552946020899729377012519601025166071585881578698891481993798281165777226411835938654824575618376233473986644645769463848070117465866426394515070383674201597506651467855867063012504797693967900007714294236012585874748548375153506854579581349930823997697787641171622583903963327360097300067067896543753618479032820691753696156662613269536316909150588653053710133861030502244754328396825232151620078551364189290753654451403435939806648291004675977289501838998724524769581115110651256057721194128567807711850413027000114188991501085962164148827641155923400008838901733538649401327392308867174331127047841269519033058981453477632435419706785204673997930681817040393249314712812403855596439786249428170852597204752834271652921911246882912822673867702173873349251792544402818477952863366324206345842317755186049315536886475674280019672766463677519369337783502515266816056439428585955946036554593112981666245394776623342670919840814133843510748338405055105699401815793508768304250884789771853569396540268046305286705724368977617277454444171748387303168837070407303843309658009417673113892717434399683344149358012680166822758526486827846544143237964495156373369123893526050946471282566956663721413178143814664946558933595917531628741085652496958761847067786497498972574818695667095980597861736525403195778677073140874506562456048352934444856266812921843595327109249309366608383407209354212275387642128676741312391457361217870999963615297388781206968935543971908339483640108752858517987391306331485578790003859659921337604540114288377297700295890293160647187857119412679508602311546126250421322074592187157302572767192329544416684283553404963490449621525347650946236560945039177473728863165287919980667646211127976830697438367313328120488436285226116790954121015771791310209718417229141657516583921317585580553021633603699735313627757448025583878062919354494528610406244133643649779690189183779854460528521208336780090279198042834784379660788947477567233412877217657851963440415144572336351862056472501886831511723248914424301328175438544988342684107230937716943125130837281384078832573205223264754981358230520902028970550621990861836778351342724963806615222992093153312286448096787820797924492281765240085085545230514077839646041319004766229778185097961866534044089869992211159641378102388312125261050328343544066290951958342102107136644645910424186687121704592999428692988688094273623438136920330452681836707226510094487287220926087989020708359363323101126402442572813252171205326483336027708620953503518454106161511782645972240776197752848009784285915459256386454592131285893559719624572194228616779718908386077096171003389790779529482790878439126473920201753190270832694285039730443442828409775379431390577681212883929513140532103780287061180157173214835643227803041056078892907465618514273783929501691929655173296648468037972205278077536106244491744104295139413983030073860569075281983022408064852315637867540247235312206984127803363101400870491732175757546709601548847670148268648059906972075579855035695266186087001746549017320048191460045706766588171275879898716897839643566320828155648694869425156416352809279458657201559637749797074727622751150468736800480983808245138292146982776500469697457189319295680933081119351692962649620242073027214719122884207422149568412058543431234318923466950593612494255964628739355425560107716825971788196499951950320677737728379475082645358290193988864683980497666211430001082892659633514176090530489408653799369951875017904443756092119144628243816543395824521121509657610522505478062607859368882603805649640894525548773561666935782625629872680127019056313170352811602188137877585013149552007231202125192256051714551908357598878681427347626896749260858232647463594547810834825813504491655981283744326613488600353244815873025372367179212117172746460300309197602501437896067310865410370442873607047079319158986404122559625329812701364152673041600253200691882896929262898386626605496625961177468472137589017439225260397399111389561484952922512998050649737681435665759120271965774946930647136221124665257751543934630258138487426656024957839134840747581980558119072551848928354807340277985646068070465642266687874781306039642798672492727795062376155489187131989608654538964854512466904232232382725146312704567312754100544935945917466108839030395207800785779534669803909389317547750607800732522683675467600196667193918296356433193417094748234049774217321413908409937540051436423649170709120954265602999447046641791301033651470260524758156528197486460465989336796484561891038282171315561719560930666871997540932702096260583693338635856902386594668724125313489425156863904285151567039166521769358537947107692608593136978994960814274196742526028979984203147234807710952012401242404068008813617936329924678783159526344238180968558914448821705397675160311000390137123549045002806546963662693804509131907600031808035259919472092209498780262664034895018864035163798158204009510568273896739909571915629115394358700238733365665073605145062677445336935215766363237975537649665182778893067138012986280583473841864869219193169786364456669671842799087428746899046383941739402873020007138977073195471892559670907694608843024642700300647526691164031801020618342441504976146710026144524789599887526994495880936633658087156869439261910588075553203800877632292308604470204702342476180005689996985488474706919790589577132960434166425018335673843375031597488852950946301515125051884847192504496820480740317030450379544086054737387163186461721268827634785777219374383899713821051142789491096903234257882374461973408798948615898882257645199861576052433473542061651687661992173204451748136973042049195877700690074389846444214450871603144226573886832282480149616304798591678949531403322161435868609750969234135120225143219445915690445431179911546833053958095340687900041519417432178853722207862752711639803041483121756987676413422886942177604499422107840280775718545861139412732543485429452835506286691126483449840398432656559641451813525274711017049554406785889189637742432676262825468634052384100402891831424352656281866178518511691992110489771315612421770577441718866513357279629500098517248729275935469316552540962288377608918037371999259494838107297430768193553477086817242334568837332182773813306623167013879066073921756589517958876781102989971159080074760297700914583116717357133189565365296631140799687423168370130314069980391661145939419847899391516403729476805323827247776144874727638963487103275180531776474204669047961531645546184328117798243767113833211589287546689863634597887921901255953239981039758190196773041998684813969196511256299820010866283895992335956854246561574551172042372734313651527289875002389139417341438245250286928601944386138452642045821318225576202728801434593700491616078131507015299829695837787464196265280201661540948196837191651400408612194054326677740256429056237409644065978892187814015478796344098414601096760187215313843086007926134488640556336139875210739641815670147650087062199632004860526746496786064684464392882853216566562207598833852285195872482738512830287383002664614757040451774264874810774850796398142318324405844773235899920418057957171587488415492266183107309320690308055124525860452774292364719540667272100955430796483975938274338581419702483055147844436714283080850036206921540090584743149157660985061794715492716699864217264207621994137608450847662714568209334861643164729258589661745924354575225346955708279892325098187132113970147425961530082042738472807442914446915628448716299939866886425867449984333660586312408262970577454354074712355051118709403936655161935386287224964167562597635884381568466057768339411812922933544399872910791006241487158858955052922410206359253950257362816428640007790129146580127851867681427485575260483042005876829895236826464001734586546893369483259639776975756490113543596130823839916359243146910675743801649155196223200358851293954479561396792099322902767417328736537910888854026016651340919681669944406510174123438618160469655833969437143421721210537270009314901095759539339629921114070314714711189265730305037340168986517677344935199004894843557406159329635187764118732933544130043647282235411892328029996571215134148453398199303927265182192960035162481518923738982395944980629652349514486349233227397960450701970382140773939989636532997477366541652391165293316800792698650983738882883659120939864888060748387606301866767067030930680953119977831223320523259819325569863501788167937555299077180801315748253518760970342359796346828799765790959356749318189327327770781769568685008835475101005387070680025383107894313229846579819912016205164809291078995826051110217858745712763481599599338582912336478837783129956393443944940729561679650190383037101055213333696478580010344149058442196653452494667871745379969368476242657407051167278297483303091215334756525881408746720251197912085878348492420508680877875721071824263486678184741711646252037780233159097380092092065463678265460271061706617916206921996873379314548158657846349446122845921360247563606757593711221538018929531202402325572161296564427177330312909342170623649794428931685975367812352402626743094871908285664601795370371895494701566236232636194476714880123558749459047080124544230629413185401508074775922491506201620492163572685485562116751724864588426302539276907160487271291980565067865362191391865299447388202422674856565393477410880903148876546904145537908462518920647041745765643615519101575530986407508552057868536596257133181635655078874739723741853679158901978680544770916584908349854012162335605765346979950484617245293436230306551345424969153688939076727720656968950722861495312597873133518798780690492585031501410101302461349742712610485641751629795211825634577351876672185150513697469792389725469338427865817923515868138008176919227325511104966764820765783694059860829012038009774253477062735798675468076480215815967313204197784672283290662355132830905583433862230271444406907089853995951334453335421668477880401501078987318083515263223773117753810675810537990876978624423736612999249397188950452457066339515269591971456597967977748735740330219763098162938592468962899085814544192663187019085884868850615091926276463520263848758897955157215560156916009605819147118277437450535690487032573671793759213253895644727739595923938024772114969736996791006157617775799832150404515039435098046803387820451950150396992935735821989078543346179318672339921259216484155889194715811091782037977841698038930829664008461554036721900911604349020765660830595243989261544679578311606130331062131049018585285138028444408606549636367857715500726578232673148848749916907042821551023394424238279613281193409536041844502636774297301987714073679967477885563769547766968996594541867815334141948706132130514134311883402571768740386236607345372223371030613836721744538977435338124105376285157358647458268399047830103727432313454218502518071031105643471763723531100564869156877879251565039405685570251443609341369770684821596882748469772832966589039181815911730629130411547687092402538206252215952079091021344239233888213976294578328679972584589089939200617531005531024812053726127593497611526369998743920113341988084133644079544730485246608917337065021592718521116965412886789503412392357682717687206424172413639380657814332258970888711082099249964208771656565332759170025920651838604023612880218448622620411006590379766187336506614459645292693404809797892521789633268504070386137781888434831462591480981131099402767546985003554758655714659593845005208290311163212993673702523350605741789442722124554412096573863791726747567292212935526265815445072487082583782266196802030018521580000101417724189968666332707142320822067685447214241882065737493576640139729478071494350694548120788834870522268593869676650524327935643776792544254798746490973155958943826453158549554666942870573116845008033305476645176876797657805121300947532770648396322704185990918202229906634572272443399335582390940000667370946389612355523724260476286540096382599699681313935207911824875051610876042676078927721081460169620762201848134801270843561740218590351646517490391695683623044636525645107346983093989523260797892420993708534854424925163841742734320784983165888134087340637988479044264297071869154423905349521468789479477212655321029652257720561380017211631701922257754062030789734502867968805873248592319677615848957162752083432932455839573360491871461393449994254348908846132962253335942571860874892201312823955063996725293355265692505841420303560683248350753703001881696056954686181646982780011519190402403549434278194210403870961105785075784030286145451215515652854009995571198093808957896444139178907024147914724917687437466013041001959182868095421510136177260826494576610603281969631232108406632841002253588851460507785727106303382512563347292604719108373139380066940634102592461840092128586674289786718903011010644448553364429692166023932277648079999361437475488818324719477048950880003621878107285106051320217105583767825040056098734851269527446169901856890280848801885918475177544350417217442114742310684950633784990723244141116047677147118530527507948836208412980695736749719296153196490434745776928553080722564912159127518680345181264668982038722743071859236860044151827972396628366188264190329701303963196280577181892420905639475834309413316589080287391853381904648343793220619759306113972547111788994721717380350742424041139873463546791536705987096091692615143247672745102964960787572838202294393045677805385449209462735107380246094037070106938271291510336204262958159275709083267487036098537293620264786707664093252750080386498129648789781097982731320222562907034847169231123777960431408755506540610286101105890856730149647707500706617680647117107839160744417455281089187471534245376970504665095082880824768061925496169667896765538246179621896106454812301748406104969675641621550502781365608865208791374744951824145303983231219913751479228947890608588017364237639537321649692326242513225150986823842758140818728415514578521869756863874000941234280704454445019170509166116186269732784125097815123944535838453559080913000884679253775004734583668487861802591480779460104432092987021513842299482845072815906709105302976012529942157544638198460371840415363175516700287112401670261923776322437365122989372525499944566814873475148017609421483499952840912369020291036759838411401120076676687950356001556731361094980197420324950223613942503219740516351899023785366795158061632788903468837340773617711375320478945297532316247266976227270063927918055795360637623092050517432268781959805064150576365543429801796776005995184995485214980153175758816092439360634893405297266122856523236429508356758282076961221071541268223258150098542978024774845189465744776204411792534950113191132784477849395514669820606905165919455089867074887903539836627567438031816844261678781106065112027064228399588523680714462899738007216745726703167990706111640075711210013871108275536454860016037191465115854397860954234508931267576004714956412681997431626131564362455931985960330546362098567982808476611140079755448086058669462577239523015441859512663723684822183123673871457262127125098703227676298871570652177115748781941849977315555987317711987713972364653869737389352243720631101566250385008368145302631339720334107430223445748053929680264736668569688361379420981128446041542418411370316588889801438252320614096132688813021289446795860165076360722549125444722324619418577512111545717670282814289013925193975809113624065703193293766020093316954430519604832348937372395302639691487597705619113990574949669908188299232603918064714587185747979802788510928213846804816856749118972398626896218715755784719893858970556512215487658910260118029816056956609680796094241332280609681145318164762332391169482848372723960530352322729432119500351642453367760254145269985373632248103865025127318743445095597796651995897140521155401904749733923945666487978667503447483733366287364239146984709041061533918593837814328248242375174738208649971279742046191196649182706519537977462526840656034984912215451345361579494486582919049676085093154276135587479105515316028789903499101449271798347045718259279123864232485991035912712688067008535979852436954281394391170184342503699590936970136319177047978869468360198715032916836992131609240513045782925508804985141061319648478228386619197213863140639464141259021416679598989450739116072465550761414624470417470032366886992100131332636145675460086800218534391573706733128131521512879487076591104854949094647630814446636212779015691027306015515212232598793431237244973686498654597486415683491535742637512601498001539573361930726352625775893392448817849682545137513854961610217355651523910819211260398452571813824738910027220005929947105017999079311807581027037702762817774776711486047118690245101622954474180923740793468479655398558285332846131684301684294869783884971344251761896385273613992736909081461918704663055755411583636526260429697441950099572550701500979414216123653682762018741483945426243412688478898208023113616442110493096914654871148582037348197572856074454809028019485610232389954759067923722226288673569052722404831267061000004897796280559061494222427002617421769392011099285310660628225441981791781785357788859935517077441018633987990316438105502751191486227952004440597127328740052793622484215695062892693638723833038698571158035056875193799493693278519704029640748564958285916529268152925896479301610238868718697509844623542359305416196829911897513497604850056102018834616632948674074412020790278109835408131529433089457338648348169811507706888587834265235839216084687945990125465937216523071365374822150013713392289946180930126118422350776805475066001435125408274704213328126041912151954047694038970577047053567728583809278693463095369681576972276282203653294469088290560543321250090827142627843420403572765589448176305983901577696886782096710989143096326376394623667111948665832690470526020316446510910964037491946144878739434605137019437165903043191759357247035592725427438933634352403605391425399747158941149534693033574369491903023967040330319138548632504602242042969203485418976091418142437762994080990347583268796685821481600079867845674083993965452873511229415751810939891038318396544467208524786109177169045884080875655482055671032413393759614932101752772256475956217291038795866824679166686093923641823015556608979830575399889444707217562462744171907027498745549685599688453750305541357125512590861170285078749625353886101517339842509956490291922499961325359752839381014313431440159192084817739937133860692951929603833805886609236287048382430011644611182984506053659307466775663322888671159364943955928051982231200272065002759255938454271144346159266716796131834593133625107657231260267632059425186286027527202475691954857392851958565817870502181563742396925554620380638806761763348429897950254701158049501296883040204241065096115938582676779231764371319573362702033491586276375804885147995514219836975047589153347396193043106995360472742441615526908268300765695213000820230788477793873999841944239538438133840571359710106526830563808209889269622536591817535160334758052457916072448989249142210197883054305245494515030378570676162339535338326060980128935515480822354146224575197576980602935490545479359305492916639461207565204510249435475008708658382485225828578805287894291215576820726126674307358285032169604914959663620131676190179110487371959221788661229354493203885514307416626033774016871719902184591452821284439946913682576073780030134693860218774519884202676418780157209441477529770282835765751883479903040237360064065327181453954331043001459357925962370065978914731485196961175216097584600233287875460154156123350576920701854383987953773887535126627162919015960430795440983575274776041638528990747150797531643928594680632544650256463107611034008047000938672621334057088771073504187925915124015707357112617916351385611676387203210397063927530874528356698541402233419484002548142457456373731853121193515905820450577547056154909883040215985338568669301589602262541912685985683467284772931146391734885420787005986206449339259112256193903024919839389549929116169893948712905779267731273682028217373285444278489728316249233925512021741459023863211447259234038474428740620262325167914860878375024393290175190160270815251530014071375810404794582580643770489925816696043525532063009896669717182064865084703069685968387688869827362951317370008471266254444783139427759931131053087410961450699784187682753984993661442532904541950003058059104781157001184692906637185290943006036859614744384325865575182436172894820167309202285493600528604525458243969593617429107532810026585180284514864741166321969803768061926142249788898746485631864718635547891528948132896114221525068692625160846123185352372981921090545992914039720966799239434007881203328630568053974430301757236114002205335497771737424760900758360715428432835785148853263784612753753071332741459429156730357184229200812752928433647269137622189409751779917615524345171951172898175963934918499400531734533481159563791951330859965959701766698971622676278812475073967047868740014448890626744371368987435250002766664111746511352424774567596853312760664692315102479444456477651685963666690857351164458477023666750309396650040898280678765415495353021664347501918820510442392003365178376018225201201196023349836213316120532572494510225303301097584111906728212674369202331487935177065505152876729553917359224118996919329702909783863734624862063486962425712587834048286637089390165009472599946421559947502993424002612234402730609309679550992368100272918961864694105445458726285205628322789581882396469267767270848248171048876899348151726798137745690156284247138444105508096673115882638750556162249801518907494436476317874127273675349969895095208956972362307754154701673152862676754786281683605174581746351238327905738932764563423855077627157420671413957928268953694620274135985877752550058361401773397007435882006737588595607743822882517914089227615330459946138634543897502127837413805792565504302677731570224604152569885312870499756667153433816406953815424677166349720510554798035807950628846511218903087747860902999401350582620160780455837660484693762491415386968897125327763096525076973856109222314951528048558218859126970115220862338325214066075294380637988069569715826749831291016569869544911231883334218722096949391121850574250442661735230968993188444792175464585803351342333060545758818919674878842080475648146578526722602853501939416244864938895220400823183538841354463082392516675409538467373360061575796357139302609397252556334379682626110931364144358465862251073314510464623175774456436996532026998420672594889147794399460969727960620790475650818702661876185045757311328918097304958955244077446626290509478505250209691760196863165461398029488263843130494039495129698589425729623689153998014471080963205408815662013124742237574420802876592292660631003701792703327995355566659311206626189305806822583311961719310567068063723036361648802661989256900243862355452759336010951840464198764147811132767067484568334184076737241189334002079579261833650541141725621707081624117948216038020475964304260679848893532170081060885301824274966104218206353600779147254351841089324869247518409115570288234090545996996778200338761349757272819728473307769685461403879787963307468731663555483878657174738169275701861891936239995557613847340723369978264927427157443760503691356136669594460778264165339030248981794405222786600126070322800672641175237702491238987736139698950320330936517169594193151548862606797710449493390741441193201350642897071517706063537135650982472046506732650904589234803497285906621264899255947264773829721624671531902501148548440314280574092738954012120392716457451635008186586513478782156816924825823203037353325546869182690670619474007135590054350388850510679219833105620315874393261560256898774270475527170695226149608637965149822003853715882533272279575736414661635499070336174888181804086939540211271718087237386853432186210077391096971787164717610966716103772141368898193277862959062340743381620818758078493984112482153731469730508370633732206071528638147756863354272546026044874200559177863036930079578309276571761780181805219969978813919304122159573699792133755976269388583452599065574964357899774567962789678755466197647902763152530621630376260703260939943046464111362851379043310022760908952250923036961662530912987720113365568216648952024371695724994597599644272730312165333706603564510996333189727609132604352724743310071493768791369580860526902458100764719472563532604070565949726537160002577067835051393351633778215318355706831531317564811742619156065095287457959272548068214880387124343573375522067302736802695660339651645872761168051025799371786479629868775378588257090925776862530426841957855896768608969449512395326715878546194274187965965087925873780159847391146096331137183744473843163815284679835794907305433899679115125518280425831908421968701525346851576919351357746290970293352747589021658500917485500793350826133603691052052417100467190642313976683366070302990816084596176259148084869641504500263708612518760787896527945250878963466507904158568924180356575424784692964753099772347565516001310013631091968544013921830227612972366519235628790529396609357290833813521259218031099646369423214149916876938511210046455067002193650419118158846302998563757042233737335259079820983717914397114297792761507659783216688278050921199015863123388553750771230800951209577113886298966265914328528927731741350149893322856500046616917122926310915053253092737959428410099062127958618617028403920312650865468755904500975559640542250580137787284025714152970993938222149753437986413184151580982767111204593560977199844414624113631982569038785538528323420747929924904478584855546845189639825608675431147584244994207171768789730958824355118168618375288102979003185039897680824178007366707710038003496512486456098094457424850372893100782986409507740700007727743158691702097659607306855736534491208400247269956337044690908259346753807953276061922053819954087371117821146920747531776768261840178881728994069741321604123384913867748989438131121450355122625174813713698443725741838021474209632710482650645824956793410341822981025103763610673497205734428428925717758474213599559745677524885241894859215198946845629028355816068438724531910281025804533408765453881957467526806422931604592066404913892932755549249953555671415786386364537864171722369500255355229707631517903572668155951436331894294571498437641330664966588101364816277046922439892372631395168194635118426348864954568105586852015107203338124359108823031784155768759523387549995360786181450837283675388276357009793316933728429769801984576807989691866923386902272649061329363889342461733004674763169210525264526132655444478368252203989489610620031325763414369724383856330142069441688401508270682454634395652589229503817799541577521747913115600858549084035935945149300763731399310193781395280214757020490687378501597948953200144053357574701474991767081234112282159495508213058844197072307088159419011866288677874120827031525557468169064531438285645231909668775857314994828566685917797692943640852996481944748912523216846623936856267861112520313962786115393299620120597829641520469790929011546294809921648866596047813112376409795597763447029451360780630634411748666492593101395867170323173191576217320922071916012182691114933433313961157122192295389538575356273178152153042445382266390918472829345839747255224618531307973754005416461860440047656575354574152265412216216113899884614381941275334743497962234589083323500740453928307905370229153479073103712667263443470869756402457996539889119516501881402563934346973668166852916655252213132628113779189078516891575697766549267625070648268618510386519512148602936784545836781550871787680935926472629111687081046182405640927393425297290748127995567706219186540256639094384538950152428952763261455966502528790482222517284616666425444433151632614347666866333532075897281163672291235970868683502652024331932836015909842473515732010288273574052651366233035328006783549427637303744057947189426305308063463026565032532786604620492028532009638067427336745421977223124243070974049164444045735047501516374354572897694898520682339828743840510300881627155819460595485529320838367271964896046909680417593468537870067944484187733268622396353065490289156541983312953241409054274114348440881969772486744244491725769178446753458558786803484703159087492223747325855714130792428441580039049211974881038178067228452562838099874777054432803532218811241479205418001115001165065482964307458054962202601674738500426924886497858483866806506115716648517832729285803519712617556775176253945100696901111008152608156155264895828982685154987712499336742708101183261261921584253896084489761783435343264227972571746044586638820664040045465797723679700471299556140230695474266358822559061761995425895214510080091239098110969293155212254602283130010215286078030140796018595891828805002689449929589068551569532741631732220622383454294190370502768436391043889521214364614256625331268465138215509122253691772664196661509949342765677028625977559148024371772735431806489131976663140059678212963156937410377045672992641506403144409310159670500043712352889794210328434960195884761327565139206575702037344753338623635616813897199101473952705197855374033097575683567418190722550561144508759077666834631668624159447816258446079226305392728345478907252852592304907879336101290659393620177486267856154868601349133550946240682083022261420312832749746759085285185039753378501097640534890254334246479239923729336655293129934302334852295160539028515901808104276160410354116979207833207225497256765060669606303679852670817623266605533085851224327783165606302222923755821093894606327427943270985035915497752859921576615624350002123495339995339132332564743289100804354743836020661925548260946584123382705673149076432150158513800460552480738137439442402169280935589676394025914632127184747718333186742124032186182721367371720024735845484552059113320510806916258832482462803004406547896832095142158242858645672973383292287073429714968921974548364101165598525309549664044101280085253304844117076479172653801341385013276227708773480574230776532812196323376565146230116689287068130333159838701942374218481641311269917577196808173671063664632765362452213514622436643321239821155307928301333686457572247259329765660350313571937132426540468389032655543445333073978833566953592191117105200675099025247098021932121561633230086626360131991715097417302654933776578471757841181702627806843068266787402605996548078104495276541578411810623495365948688053673862806682951855403903158437086291010462033386893605336704024034736528097709117917984949193458959786643760675353049511461445319390799880504427586825786425935422602921679010083434419732802116429203066273801211643661573871618874425289415226495952416084105854923607779530354552411384728788664991280132555189875243405960839604500098342247725005307107671283123344073989032795752834263048266997925633320201321284688987610412483610577574365991419065665754432037389047059510574242040454222134137121632165637041366053854745518619956441294282591680367505264400714260892413384068661161916300093104309801026373928640388326498347487605112327633865040075873839754734696841417040623928260627160963333778717300489101184446675710789645605829043002933203875434422555372051432343945013175787751949264209357809961035864215644540092930541665358980653055586870299616603866356871333721517357329270122722124562877382044025157644930851294122992736401353462829639387289993718635243901889215612355514201427220119461133837220682366988463365865444173695925282998612708346194798012137780305772151156676449822777414367380512541959040751923438384411717331008896545983174169484091462895087215431036741996763840757641777906859925309092458775650424471648936204038176569406371509189513571799340994340067552460437511602144216582508439078824422449030603975207621150817094090423643364148183197345880384645890673375375723747073311896551492109813749517244232463450802521769001970617347050837538042420795978397779015598306336038936822039351762548312643734397380789698226680941390014309838440875567338840875898536850423043305147494560004251713242040866741470095193884727246604798177731187303139450880368942759216900962067522085884158297453726699208129729237816373885804675542190415158059238258929394244827324456530642171135521238478845028304136686616109870231316462555731725017081483218396793881775603864535260521798688916741924876748668036741113505097096253639231113080959513089574791642688025411211327641058158227090355890165603125911200209909946344904460018211323566897218336266334106175544018036379633277833497777089665269064160691138838452217206829032061219917795960719816044641609405552192670601876216853305331765648106715417974512927497092671081726321522463091370284115321858288775603001484781492927154448496052133179437289810250445968326331936558434196032309080834293808012432469283702338470376328791657905793581213482128897796339782498328304383250440013877281158759894065808104223866091639830360169193878262442966010574065848925335569196199920098090563622291413070466527418751099168557640055261876954569549784918887259423637971087931239686185698862165962778430011565066545910378949497841309545841750962049405256078471334799614700395523738067254469606677580475797664375320553730011930393859882549112626689777646413761519418769462841898978784206600179335282553840146956857425046418684802945524386318766105778302351290948133077026744649869485393042183425256315575621923881713011000089965219765588184304699933861938616565546909472814840799889175633922140798767957286666573659262774848375236107124145145242401434839890967645432559403045624895814864643900778807746089691292214541931735951736637769713647751327709880013144151522862501268965541341034179967010159185889061793111713642201496441673926037058593537079691350225748081469963120754456160550565872812877420250318981686917806158234212329398754360370903732847126021048388742071992800293763943886085357161850107758274004013069183900831007977727212796658745889935871048902998202078120364911276563303031332261373996482382915023496890371880979324224012861976561183184968212061136588364313968503329521039504356458254331049517031445535432867449713703742713524725862496746313059762468930202261553384265718561067145927157453036589230547572997727227773979826217060355560674422061801905132342571524911455493341793715762832556679385678898700500179203554879584673379584864276105073996579860677981319915268921623876860397307604890863072682992085418126275093276430202290427151598418823430411710037338512656298881408541995929079278869139532486389868851016484521780771831392769277062160338957383629804680292377821604718377524781136453642850129068362249157203696067407216851149774992633868444355122452270932849839293702840173452795038043696522830690750565370682117395739672176158810043454979771178777034662699199709195011935254977662663056676732186859605384505358674186354621195209768056178493730390310296841334250889249556345127098938005663048081250979064807938146275662559259889134618143590527255966686599363213304361565817345083069971014650217640078454016997393098544812178081761345058107911177265511282983551362840753857050207764631395099549819972462507339811648984941301494071955586731641321412320476616591047600471617023029089986752770525080407900489784923150383623884390242677672552251502158946065123343540181080671813076018506510573129053706905460990143751188159968257184642960621449264770647698946616407878278345032845636283315326309795784848307304474535041064868558885480950034918016653989196314577786837701375138473976587005300665808855940302952310675412269240020525031944512873813557798464101928533225532425977305756934430128296358228743903094390804986248628379924788125156675241341997731966151408024194524267465051222004399325832550654959993224175412260936720378664027915502543016789064433045954945861762062376583117111605805048396367514593859140555585177522967360625394909289478563527728797875474047057273180756143073795980167456276991446155229430662177045415650843868355040872741327329385443400220247409773695904050974838807487420931632450495854726111241309845404642645765435988467554896366903963335550272903395275296354441661670009509867170325855946461003737891458215845602803945673068195283330101508846327897197270103310698249247303423976972132512103263800232452476058534401066862062412966488038690534220779004208001554638250870982660634766859326634660827830634293991953308701017031129641429119991136841960146035706689077855396418849685383606399590361990106848936831427574500738889665725871692235068118832844784672155250115095624812446218614714251850250731713942248159118997600790413203154065647084671296356262622203786838109535104222516607486605588237536035779865366323302097306064396327668168103029374671963631642235938110767183539332527009098603032383500469811790606765218588382750174373548985069894124714644165343066173364749441162579767045191100842093340295113464708939137866819756159575895475626083255749029353580589011695885574813081498689647403735821791684981560163368309492140717513549213564764854019999690887067850634609985729030236099868761581449368850349162561321995793880809934610685579007139428433445202724997287711998638432284652799206716264589949527385687151914007018011236116943410598815176400909829673540846014320632036097942235838151507507615662658628148751387650450905530423590813746180706510080247575269722179891460872807991434176126189472781381001475311981502939987831707841752616808828035474742753587701951660629777059264097902243929190561399848282246460036233898684951147127770947134757374913049215056214542040897395439752567154342670732410404103239482611217929299095510328091670257576586536496680887378401176604069097433661447270637702686118361240187606198982981898919780521888572335342280581479838531544731665678613332438941885683318615078698580979934769740998621782235529527826622033428272736073767674544034852997006734174593032485898755982934260956210050592149372175733414038988581642914164430811005730863583628948607129092874747510797644176490582566045662450911721257168960926439680968493893009984615374584652284441982144849463030826629184751103626094816657761213880564315031811096700322202844980368352927542323114016911929347782565710762540243530223364255338700927316973655108824484065305633490796165969111952246996852985089974027216371220624313696976861139224839188143109626102688470803530241452686693691229820957658098941253667555637549367811912680762212814510857952751669152032033885205525162665060820491543611043734630657266982027562513464744467431090842798359061119000702694583923981569068748491929279503825481366902274028389849270852815361732948386391217181800273650758063351247210528412181590961865304051795218151489107167010739024086590941486904484058993479874171586051520491051276600607616584858388626516837191778889133086078080359554523280536012715637795827184529845908499338903035488430222228723103743875754172434248451154306877651384994023361502139256455958401382200565005558800269529587920338394798236675867625297764958037660056358246476713250256847845603341911375623138637497551565817687252063770846225764766663531668443197766803345994184427799192768176780784648499555336704702897359208140963115292509916932470253330992737113797851128288005449525202906942384658704971242102334796335947698898651887718269550149207530212200823375797189823622564118012141379064639729490994458474653281119787148689704445045238108688802939553836751239821010761479470374775957839997526260337603943531513154212555241685953523645556888370230378763475653477818737548439489164658995456619344771957440749739741509558460018487365986126233467557436912980269980232882599170533477015169344236673727780050101918946328904409902304386187241802468100661603375338063766054941972177065953868950309850729416446495114351552446230872162311208675512353491027391173454314528259923211648394350520777584596254951798093192230151425446270556147952651703405786174753399118250305764375598664602984446560500127658393839272225893231414670129134185171725599231976791045583692826153185563138865871602710488188713108472720360152203240902648916094338599707299796008337942684671606230008452192187489188009928279276204368498865017877196987324093166488731033148299713474234130671332986501269872384325717429929904911153510913403006663583472165076450556012270456104492952868650091609094826939565354755199873424557635693315072800129562823509725129498864453227662718795950633272009197953030961160755632465252904460154994771873141403568206258462215279539509662186979543193600363131067028179630744597652099369190218165729701630222267149390367096457494603131686304595551563579362380131162067920697806828910816683131131705649287593886641488332079697598960441933575062558539803675573837253388702279899604350415440676580807938878631533281937305305905881725078092844566084108748027617994981983611732160003241160377062634099962017437986923474322714569280944681647233498886035188081405033750530671758089751518071758474597548424660747439522739100157980719473126290548783226914564033782345843590738845330197350480845594945940942335619142367631990068255026545515781662873805243995414459368604514194936311856992405677421606490694174396413990759717384617770640877357873937429625306746237938666225385722195479308032173182643318394062561128843962088148645940464094113402545708850629412906806496550053435334864221367717016930908264064857662476345468909076206143083800371774686681226807149157201333513721663888956971599732660192253927419306519436361889038284550772933393243729327706984836215864178317183512777389883715673852181806960507852272228630815193296675373405286260350307300868430379510925865067009900322955047208858765257290164755350518779210305401033859073814259133760302541813391971106449348526539094588688253242841670260979661856793819376259402765945881072528276906003388434304803243590751818160066373321921855742844693144199443811375311316901526296035304632343023658710840204175711867565502743966778447440465190928217094635514600562242790243140230443841185785505132549994474513846517243280835542428450444956423453552980118039238909709320503503009242426097445601557349036027933154471042744382347187394744763525406781644157656077535184017911457099081558170992723571913907991828259405375697940543637617835443722911826368097635578008085037786331571053105140503686788770771533633135347440278853425751517347235165545412461247571540701130702835653570160216755434238187545234445697666016405772654328402268119957908791018062703416813463322365499814687986326864873417187921211247778626819220490687774068731994050544098808934391769137378136136003279839868934738112109636749632698169668573930664901645338701909612244073020071763231314923451848172651120399475029556034528341760652859936093774318417355375607455422499122318180596384738812805117815872378640485858493859019619159917402639484340171539761674863562772752640243626788022590737323844657451621360558026252815580128648443386763647541371833584072168458823641904766120596314388847340426798383908482903891776813148567023059796157558452325643454445359430309231008763619403509242750778366820493211633683263782636069728216806926083214141452197009300748293523012230298626998966834014353267759515177150708170696918892561331371991939265198739355817231745506759279356827553453116899683531036945883372761750612894368716654302557908312225618099046012981554800327372821236496305116115347343336112352166828602850141895468166365732691575068123035926519982525714476561475987138086083944342726617080844106362261441972252434814974249675256607226638950458487427865128547036224985301310783506613677853516656727443289857426608368985904734098798209260912404649469081570716951250637490485914083602517966524663542096913237658092668603098455020778461495107057437728837323492225679056310227572851322648972872123511184785259599798993065462882787157715295143904199263264990203966769593022156536057669739612374710234393173753048101043020626938068798372358113536226708638279800083683441318071684420474172809210662967925574334684151361798099263274472154046483024899784260165792406727955864744567882916234960746361058357870905100908192898970323112518698619575411791562669173467952417811618887920132823692571942963434285551742002319981048599308633089080190873183051400817760490165894181927837296963552534089665976671802784509559159599251249045335583320102980275591450214331461593615807478702608461522299621718958990283857885037416459985262412584250706046512145360258259462479888756355453899025442670156255721216440156525324296655658901208040480796097676690544783981881261595190656498678596569908013109480431284310271020039845713472142727391778724539142374639808182090554509281633762698948714298187842213249626014014671204404625163057014004650252301480394137631827172679551747940433989510367780699326355737733378875078808475105928372475744371681815098833065116482277560254470401376889429417319288150637443505171023612241638961030515554232432279294722010390276714548305036044948127231699351486683527497081248565304294619230130877800130449882123319588519479574397399258240471959840192292227564754999436186868018215198337381581519656785232740013805436464743428214122750008612369516866555828423132545586511962307845831337985550500073219951168553426607012364818619849416485309390067231188670129251960325656049685260221645508034238745449533550764081597604554984804721730515627077623612058523901535838183093304731768040749585966735711748701942251203551164214566486755057882517953051749243589705455248369414536968341249617305161222575242289339137469209621116786440581229607519389805874164780721409854320817984411539548350971818038837381644652617692410480923515460224307899672981018943925097073314334264958937842612528358925709334382295726766713955154558693402697202267362670697860859347477221426130415066955697579368322057508116910613174934924039188335814234912439961762101246752070954186918713374346396788591993676120351011483533703563576808847322655757315234978122999265821641773171100617755606959324558080696549507940799640160557356518748728895571190375897333765367245612884319460840583507298999459456722965517868299763059281411650538751123312737424720659539169819343603233274974716243009176494605746259098799993887335430886126948491688892090782688110608947764592776414934127347277519388273284537941175266554685072033153554024761312058230442990539977173002296944019901792678657656381305786003198301997718083168035816578159143361578418592687917054174235868832854657267080976188614183706241263298827068390796519507610829718087431043436186035160183802534626350027546106786453600756788396778314349445680067049028457044948635374036776436213831747364011050485497991363165347110740384560961175224434859488739525407388905168975610142467581499119929298722697153367305665763601133321193322498327577597912566678009933608882777381677443441426978023925378806015261947626064543720879896486900715715228115759396499305918717852920144748945651509117252952734438588084798575459523125660910123511010684206619544793078839367661799161432159419717416550372721234987192500401886680284414506709616647229658771113755548970136003540251386129097493645917591884810512497439980837541059431739139211646586800719994977906668972865654127115658217832539272269271973303318807111129047124957071760532101548824959000503895956321928953191774097003992098653505601133464985950158948460012690289058332743573904523704431930823410794716927750898219432288765825764350724250420090509281628278043345895570860285830413238960976998400392104614274767571843164423309743053068529572595075431021182803980673905848899839855903472558974484999568725107862756760188993403352152777106935969439009076130846283630007251861607943585035582689681624410014716422073219414121796949308361365710427644693105948740216996229463483637389537828034522513721873733107771810559075852106314584173655369635667110305006493692631811826586726289761437425488798866764838168253315726089627369608737867385103468145251254152574854293348499430470934530557304244745682976677267142378109945297932475562143370850249032819657473341146110389474804737098242923627064544243126151319869907367959395187150977046937917298910929763295345660213886764470372532231566363910342119845008750825335999689516635799744790494593160372288115102678423487571608635113793712955245512447921884860182350274087474106980262882417154947507891284028220137690057504949795713544597274534870468158476600636055201979323958932079331836294322955009811837048820958978366660394266010226200070043147056242899668634128578220018832299394320074415226164163290924923989426926505247110191902375403813144371920375861481638711696906642186897848870608559045175079396398543868845364189291216899197439572099094344336848398504340339735741912383597469906614849560459310494258438100551333737043699553472204328058254532233211718948871816287380813161108114229012147652937840353278784254823201721809073576412691624640057076360192286840690636514006473145593635629649305764596643995253556806936137438268589391610402156867591417178663369906422712735583818596621025373535196928722993911050975192639115661647744276749608687800910893015070617385695611636884260242081918567816988812514914639197134154894738422611303297092481599183288374299836443388106950763903859114896538466973634611440855745182875736881786805703752146901400826073519675441604023955986319151185090842460297018656914056874350315876368791216617906239182490551076976649317633079179012396201393938948179469695849125009884272003976280510709065473943449753433708318052976262783840984241472137007486326150873454769895002279879904443090976768245525494206208372535820879485379820311531020090657336195083635831094678179067508409184593104836573603205793251262873368814787113344451341383773828346058978414128743698137202440288922687450964638774543336246731355026333541817187920066469027962250954445316033241785562715805539288554172105385230499564025319557820429887210378677056558896748039169871456260040748771154213239688824665417119566677984595797634836562182788454388165402728236304818430455758047271926649103853529599375240108865370973524833260427079569238772325908056191422777552883811518443801959880011518651440220896179461119445528007354128915710580913603614011766144773804716062463859214985617148308444656884282549028837483339009364324104715810954228770158967040456653029157996731828966725712110015475349784497738886034051632748376023092504411635612919486656238061631156334150895178857518432484062520043003148802925750368137593662301607702737774609748547141186742359340677605326046934637274531871944673414134024091983714238670729414577496348907370029544238770766940839216496844175585879621785682421197308609413580721286074036090847130316609925312480933017790972188011836178028197209410384426842434961755657045278316368865079260571416092087379128896447176630816182633103051333499505172103876797900743265109500021679759733121653414384608579910081199722788671030259434698249548321577261044541975451352848697402794288873392361575809406440350058394439537227222998460732534682750430984325522265819253706400353964444361151853410896187188224134043658979739817108156345966379046575944884695072582620763121824550569560217253863102157742851065498290396419821376955407440471036278972642149376277367150238296698434822290123405635986463265373129094393914050776623511840615603138556491942665926638633896297183813144636911887718371135449195111313043010912413320400479397531463165955549105753185251047467105816064593664780048535493890250852004886723619694389581220894199622423592421022769029134119890250485881993677250388281842811462613974775200348817114023213125879045386319684523903965235162433794699926851472706484456969186917058961634096904510144441602524764789816796096133807113991900309559877309339581525390734266888684952749526928503959526073952433792527067528772477679376553403296716438099870505629215680582870557601431433844609232426209258899540760832180631879704335416326233256815966191983940290459882781324146239619581731308759166519208053511315828184157615858174758835504721518975777662924503003913982789518495439963767146748902050444533396650641672447876182051918606222233307262710140173551047431345803949220970141557762695007071446793430135232585412521606017043844346170510408299480170971001035497689756093367009666690530756463134829054837130595542166127430896869252980756337256766857264110136648631829673909374269583169916914005136736858137678829500995509690625427175540071826871671900533968781228981414391968015596552907475675713532258392981964215047620630421641424642166531268319027947739849523424519287403624756211991168755578770144684626665925225110635113531878210020726679764199598343831224232633109152919700895332562067320195182097774605160218279162835989809959556795807017457170465540234939625399353626409629373869962227946187376101099036058159536284215713821514417542416855537204457782049063990136846448772874553866828632202109937922910914236561336544108654155359958793577825651880141205036662457232582149714763440916286143987231524678441900448466246883849958971838406836020784121350948238415390610918828814648440188873220172935775182948913283904160388895637968044851017486389431392591215799097832780122445352484303808553736018566398056338241642310201328214781639500064359770477049479039719174237107681076427843508933408125738378833866233568336187400348876761652240095044505513544872752996990053509163075073157252803010221601533717968763767672242728606747165071520992847045820243801365142102843542973219780168763563115609266775464213366097856690467165359120643766139711513676606229755911521794913341736267936290915719102776392497194862531729972641700109809977374333163271554107092736209915960342956532582473831708238608879258806182129005183207106148421019404575994364714861993731040975959420891823100116157461552004239864374366774981003739667476572652002095023118673158033343327435328857835937394547432147026904552961895981159754638446424385355644335262245185202847246635177473343711447033270519048821366923669078996712566548651604593669933502475048384292805603080190432731572910686618519129949391781744462034929668673020123568671892761613983700632732072974297839445154332993514303745725004558239267254257277649088230992982991025839080789774031396676222095579402264835501195137653211282866684336511895656484048372072211466730947612523448343546484996035438641962875632402145165760134253573536995971490111232972081318082136656034949860063786041138367152293689988403424306412394594636123363793002379337186397351318652235406495678313787874176807530467967808255485456734854740524759059077111577249969676604435236877248251586370556901067664806476465975607342323047271023023879989456196067161261735240280731677469707028815812440150396928311477711193106932169269615986770062493747425657208843397115964798958951909576552708421465309828309372652115494279813358912046117935329292851914111207945025222253850581098636746478877500359464157588850472896657389686275884122331475689949130068062226003556991502584358383720232961068482966195664713359636818035094387802979976129457266621767098440441591298278187982074840186962432615285162392381430851817540466350027090342261862482718072822223501707028069962381423619281796517531509055220283093533989829687255994589925970299786936586749994864537658368169986308916314192653898979170911330167505633818839045537259753289291708328177663578267941104915976801397705517600762131017095054717615941156517377841662177088294317209996009839610416217359411670247026634853147158750042916292593191316376900278283477313626451307202970920566854430148431781727323556707556387464443129938147168380584077162875895346416076976775368502642029508268439493732899632705309289382270358379577416701189643322225174925013609968599914390515418327449689144983703613409296204260527673346612441844873509660106588608131757980309337335319501236852707722616871271370879463631316105576546255740208528828082563649626210268288400827555203300773440732008321515401203234941326953203532713939235000534129242665562961125797100402404004993390895180653171121759231574562483318980323648021766177718599208752427114785253664039021813544953678842677334885160207798521979387236419430230442491368894186771195316089142446455657718781674041513740848882560439273999172902625670671640545178314557093060040260188926561194474118470619186504677806944767525196325284769711711526142366277489226527633004318621143571401526360807835458974379921056424458850850939871211240769254740365692188411986796030192214485460958668774351616125611525448991915276047411060535754982452859602440208681532864176608118673860591481737422309878871931126523980612271524298000160528501847226753459499643737415502467827375123574529778090541085733237753800207047261575413477234989212269708772425151538365723035170551283254789183281047034032857950042843827667486144472536560340326827535663479051104001832338844376024376278494617889780378898411575093571818038591644402035955781898337902244820701047331135079393961642989106597531856073577275395869030658028219984061386182611832551434589401299732848701323196487504324992383722505584483813238929446135474191592315311008138393706268236935268543841537077038952871429922411123109854496552873829639820344336194129372725288958276839402327471878365933102043095585197126630224855292802448320932802232437031482462042836828290030583172072113078277886136317415658743396367200213689862366821292468201206455675609652815799716262703161242108625312398059701923490804742984190598825587580360618145617309384865575493293395020837549403384203048874717939839106514382989076337865774569117932109210363961824945181086032236036322996795861981785704387244818384294192125974484763851065950587662598225405571437107772618049519942264485021345101144677975923627360512766972912179852472896790623131424201277494513642861231550147794749355679879088141209242734371958673687091337957316540691350050699451225753675240428899220994782398269696652616891736897622148330280476397075676905806677757041869428581736469599532322086943054311053380344478870036087423698196424460535083430598252869063537673964617412345376005270054158016511020484275120491854670217389678408153323923264441769742928669685332765706093582095942490849316715325878415013711067897602206985709363112933749510067572483079718605664531164221087599000791400532907325540608748079872102879226137507881255734155064031382905200362971425032329362223578872076937545764421498261153093448876939647897374831748072379237739129097900127285088991577790750187448294978111544535291738945648383097548501942981998538074968358553384485472440810865904856600170362487926385557417867397186268016525949329442792080862312764659402438709758878084385842694362207220005220580254051839087447801097914719666196148450287171538271816148122644884730475742928695284742867489802666297388919476665702730461943758859794726527557844754143855523011827271776124531810937269699207931012509294333831329185692818374236172668743116558808106029081994299413229520826618490492892912011018729183093045263090076520253701630888550862977867303305289051853906853889564116017177819188080312952560499828924314994556998403165746603038660638465028881807620524647565255652176709227777625849139279373953873598257090625850052748011569125236642191631936675196689539479182377112333176783498294012312305966797724104149905885071414436387917328491079608589509891135294655754955685503046266117710463913269660674603184571484399732701699522728603352948075479699650200184841886005877455335811570227780447664703245712211663202015414624577763414642841581899894748769775753255258475684248627969338225385962951284812763752670190396079550494505561699946306869393916442753150563207935775478325087995731031870925652540127405462382122465809425593768379326098474309609656334420428696873547205663032011580428301336352538524835935197255534087661019784319478039817904426024224646692469466341090279382884212545599760925787351402444645136686465525627264130488997529364455904719229700752399225731313620483596145714616370436785178109272334944270099406676070434034014339773731600851145971915963066057690248113658035505595150591715007337605440482213873205569932603473456688369549960003827332041476904553046278567868783211057869001536130073778173980474594109752131381677077862126401959662894549837895237118021448616887164144631359188057986262052824274395553418212480483736802788574049515506665856231095508698714679292681399905307092696415363162469278966137252596184251160404675653131378769065215600062034949554756109025566881702614060046920391576860656603125907181291828564928102455173178601914788843979013965497085963613860713304539261266727125220960595909848472686633660970015810594207437769220481259850859597661613560417373280680722480938407586067395407839032454966863517296476280247373759601049837729718339363916547948279026112516302678424552186626468967731676467854132365087704141217794257546864168017951217878160042753541938664508948021738594323958397685536322492338255734000275206944879312119674918717660536278954731253627024484020158293752954403084309508501173988772976356405087605031250352151633019703927882915589039180648560925906956888521027831100777038056852075518086574057229726556310361027515124075531529781730844346051329227099974641612758991112790331712948053565498053655500781097802796098793495089691817479161322455292898754683416851747358805188806126650406624455735290856335875898723083584471404377394583175710578022836207593641931238779206413802086573584062191957729898182739689513318024877802779261152075972581304540020195337205414977963817862293719347929813618012633326149288155868553513710064889495774787320574167467004417014348959994907501704692401457176159648459785193717375922040652295531968361637197350052630419020252489031837524015180761088588375473983783504125811873949982524354447805684854380904562944240764307631862023418825140430018417134278224615495486476430445287920334956616974850802712452009594671467877397640932557382627534433724341007242248589503896587234058954092318832899880579328469612249116034790061031390474325575157597368172559456772576167252594663447311644750725043041819482671175750398460315246077402704364597069889381679303234735311223260557434764107844873997734831273050069538366332607046618164215289652511229001681844860068790100230017633165254614183953369362912714300095247918502462350819659019365098512306510497315740761985192467301080438720424363335088791819015824801374849081420163412545204228064085110295528277351245446309979902596173550967731191556671787926528663321794341871515367396306633288039255851645345994436833975569217646627672798470032056038837557674201415247764928213804662628560780780328162521008164293008773662501351999155220470911239216372208514470220545234326648161949808562165647580607023762450220733210591430850322166723246433147092828375011849480906898067724685573853453292601068151392010848834663601666356841761380333179000940189752167945834690822218198256668685519161804243748726654346142977184927492690916894860771239430667190786720606890936731957648515700662189016690086543131967177801624770323917353459769286640064972641277754117052236372879874269767720803533197262714733085092303800658638033492801949248191325038566701459562649053153625942616210002469391560168270863148074637537828238728090286457979258065527994490535192984036448004661999725838216673147847092091193685046033886880204983819623966459243880813987310231576226677805385824451437982731140061994078650777031975491250906696309351917226704858614223946522649564853686306477669732524276110182851587177127936251715287189897932231094816740199264932755642191932428247130474387727707339114329532997205886379519840099717640212949449214730538386822593209258896028833449781806664089737345549682113809840391833482275441210728716040308099461978042685603433059590646699925704693523779468107747564652323654154364519279644678772620466025827838380722724365741485746054861524019142232073453580858715536028320288596837705162104576636685764633066001637230649381418912804075825939426552754963201220903904708872670876140105124893432756643908473056203803254578246363028500298834041406513744582644344533142082292405811007950176996313060160612177356375676509860456667808313837971527594854648146886423626816090437792542461995630059988358231871857586212674767199673430412332668377749758377695037627253207841627419132588978523486168046376782178485205770891850277036456461268534703694161476908916644615130405112380545312381162378354609624528301337864357562306399753830953304267140513099546539892536698600290951311587128617564562278535393178711075634328587032446647535377287365385141653685630311870019709130597931202722546207496789916479060485211537832636233339807199127875663130522701402795282881091510878676458208483559447567571576571412741874261210084820913509186117155729912432923208694341519630036290066932256566521870649853665424787798369051114670224546771861282172531071312790921507374611136807306208917065792502974843543907618204371784002594200911881192477260532856152808683429753831533702159167396279901437468058657679114806400622548853926048303755369892359037202939003665778336840000820260858502344949120963271860479102308556227040917173166046010919244555371997243990783949782007058926645866030573422074595812426328843035326471161940675376148124099527179980211415612210977098133181681698632252385239947038996802167661658256869988761745788696806455225349726238913929571739494038368090941972714828787427977709432206019568568819621270969225464459944839712722480929934253535717926881473376349642646070087981380801294442567766761918645785930997146443181223465459843181735238598952945964076069926808057538820795075233619649530763286178957689357854521502805562522633115127747787628792908799673683550506588403229204165954661786597206236951065967249637843606017236069147833283094648444054526193878846943632958885557013354304834018611439954229293533545753323451609931572010377183078031486746000600280488077578859407044997245230780161787806704864434051174821557371192823579467455078862093077766885420924445157971250997782622498871438370824398321625646290516368119179970262045763234558343189943244927180180082015689407215953315619898742940498519166946796419363448717853017867802102748301458124115324520176591704278399324662963792767835870768871844191976802152894889465615653186855422694951022743946903761619322666639340831331080394298790006597534529478374970814271711351903091291992942027472529174699845049631405318284867693486738409136283956845357780918527493606453430358887014530195921879301779121660059217443618851494636594143093464917323703306218457703700059781502483506809064778216059297896089083969548487024840035990891167325341799149541590986539879901886327662386124039188254960716254728336397115625418712990626305744542202975469414149473455652175134341107655598488426662299226373485100997016386932517523053617632929578501788288734535992034825962388234718298153562938564029898518256290980042693156322762567243187800934551729330062328615902213847399061793780350627782992825984119737181849677386431252241452499664996586286369988004667625135786720825157693032188878240005461136910832010310101085663752731536528307829590502249129243780798005831710768269290813636197238446644814667587820136659096257090109700451158586277508586918637067627704621132135407110248150421282267588538198252226048001194760249128531583032621009290899772224422315724828460107332867545669882002358882664847340068428090472961985174151528137334960395047946874609434404765756176256388726488595648650820789874406132644261205629804733308805342294517268271618086354319279864559056910605461360941913779381655346688847841053415455135941427022414649407579386624741964976966780871715517435059916404045289741878361230298346316368753435067399225704590849675081764861745660088864194487308679283266697954436366896645574991452804777299619268031785770450836316709007439450082636224167274271904072306779161543342196646100853426040702814310314243189143889066588502712892167128786813681147331979876369919741582260650413065455885881497181802397409770004857180135462367693074107478280915027195776568131642805707848463965677536400085799259223931313015063825244118127170540169749988372361893540556830343688467721318387831547802214997736811577213815381463755339926401361011025337654820040509413534230337001604882541826762826793765722863044032348890331433556824745324545105276535833074531324865637562813754863182030149096700796165641980835899893985543023002996479049701589528845203379475760293241037830882229201269886650385233114175787777055452263943912455488019722243605933889328476881060106513764219161842219538839192942981125064338913471454115358392301440253097500769913386796190706584504985917877087802264257156846840932471379138110707141367346614868519599390111247401362119066547320353552672682992738544814914420509784601437552066572108536927210759982762835508583313351418720128229319634562330823266718875756946508416825222998948515859977937638849785046231319603303328925498910659300042920153092450799504483344345003627863029909450400772830295739385746592338131181975908440161154957615638126119656280953279431602669991320420094178290767937054232531437657012033628336683230720319234834412019449426713703874665467587328958147244107989106105805681581733450123861270870545665424626059708293414620273020916651114182692330252915690189671536607216168946161809158570460504472971324761034134254675951313017156158292488484031481223596904687880934270744782129189472326731113670734029207719718569542740879199277315769840619095147616230049796890310982380355310975910451204494967606817188199750637965826137024999540301281995412183506007342161328959131788602590744899951547330485315590313019708971827086689634309255869823206255607963032445781014679862976057555217025926695717648967251890673580945521778119977663097156810444871871021659147971138166719408637137575351716866964815550790227689763503493194533245730772302134529156320616493262733754948323012171195123527738896878414273959496162161696680387073617407226783402604070841921585935469688298290723047401172263667434345369898233360884335561414474263304543919340954703430674627808673131560183176705242833520679258515182501695812198373067399347594001556131804087169827621102752976172289632950644209308020976762106992357089756341114085116175704839024939384898519119703793533931658609407068938728553103381485047412838983491699547607690715875532441168915801384792245406777545830367073346461079334835245590942748032218459663050853945396900824865774688160355179330764687159118849216538079314286625858918549636366971394169964053804272732359904749529796551333575566003885010827263120884015148612216053954147446816371503592085530916913141671285135105708588203664112400218453365828359196709025080212252893514953672698396117092100816738471601763143146366986850549404534943679276669093932829657949913925682773565140542984221549933335269356235222895042368423566124357149916508030646962016433249295462709517366251600552203734659291182082140175460091240139022468379288062259061978915143620156402859712046792830813853683983187086973527873427472742573863248234547488514157211367163985516245061777227245449957571521678531475199928565037885851051849820995096334771588177701519352113567181159937505614405515317223558953637900270121016447419170882433220191434431266430107583144213125723640980118243011189164840336127158123287657334703470121347591498475732840123905514046702907093180411537390863049247678720899623726928383879063150214936297176508217649198206725607439966095698399703005890649801413929610016604540880622965485941900638994764428098346442665796031802758924476817919421075392353013066869941290229744893885095672061167244491724778475588801229242381459397003988145712174843305144028627136305580044989176336773431426795262206798829222647214088508556235932490210231577164186137037055860019434775738386271024723448829174552835630391433019410994404210975948965250211729107631230594149504661745301931251349552128266118507871114420271256902364287965686077457137737829453069204824127330249610619854454384883312467512797283589638350049956098416461820056617137562623127467471271410041152821935891796638625894337369248452687690643127138226737518123257087795277795398125363685775369647182353129963475544628329818967262867208041947768391150240838370204682756655031787424681216504546112781466055916502442755459371980192713544551596985460942782573060128081431977767757902481310438889508849857988698537785912244411413602618681829169833605242040949151785341043803316473274127495237011104072992255954767718157933171570735624478579078768481592246297010102605206666952357050361216746462127047393157545380794251062288060864531774909944947192880180091874159585561287987538290846030873222312568241860632187563629080811197530143837191869286392779743754572593627355725520751880967834020280235713997054255995537031787566702558223347615236479374019631346000018247715869173659865505042903798608631283881305207736446103396893067086712104901922923641819240529073462156087925177213277831677329729140896734798912794376327850283305238557873546962191686324194361881706966105297001199304180937953484118965704303791639086450100789855833821779543211304320442654455478521655334279609140479551849440342594742110309519382038775128876673338799670337178054795408597514265220737633693624609365750707315890215666281106556806835316545603617344246584362374925714150922955023231389170094893164875593657208823148553623512962104437752976475786925728125412453830885501104739214466221408315627206884597461389412011674224150716856058979795151738599052949024188403305594222762812928686208819385950810089713808783790945648143452061033711907794442034962454314241278865321339431499627305297679101701898791655099216930153739085017323208932983695957226418612340337533896555787414699776276068892317294417818462309519149125428526751907598572572129181937878822251461233223431806440520633344929982482271398048389067754860935831012872096784448872027117751623813209874759445742727400010883833093316973418357430952310427031646874016507053806149877845975373920658880837688466538012483069305325128912021847703961695398049817302973756673389693395591070255177110080320433725382524610573976587090844334072190350971659263690740077734668611333315331812435870264774055612266117586764304899874944126321228679221230000676922048034174772763159491732333123237215550095587596869848399603398218886225508666388920346512314137736003731245474370136836884082998364402287577845555216136221727596284878802826979678509027874217467918887795467889252653392646981319832250590756570520728834596871484082912530547423449202909922048422321364154761733077769608502968362084865234851400931127786805480951212527645983307445533965098921401017780009608176757492558483357037850173021884815945084961929509881650893096051581579951797331664260400898165197563002819866779342901762820201166966005522275481941165692782876089961954963673295071651236445290421977526222772726448022888522242479814180273783050492748626876758345354435306617630484907881887757076060062640337664326356099964873934562478357546166295194070148099253217347643007550825991216979162849364436242284323725535515557934419296941894151451648016695617099891775693038176379294015726190369935630254344818777018439604438405819994723301861866544511525787725873410828840360906614396487537666049122788025606067764985580773104297580370748069720998089663156179333802534940967138209949596203210877568629835511439972583891495524096435664373434192886194331261475037910724055127062590534045952345179822932937535360807366386755546316839477221421295947792006637427983410977304441734700993792286932217430831415322151736599497484166447172470293260888095499404382398105388316594395102139809221734587601562836984381662950656846956842424538710999240376170932927690837642930419792965963304233151454852447949667918906745553413337822377385243298606085697402465223064310799045617856145392838078716025652955349394948182208977691463898248396712439890955280623863426717558777622475892332559788929196220011820028740674756350570751274709577758994554060629397391656600586548135659559355699157300321949598116201731379127574706768701136169417154739585744054161913112793077928893361680121639692076755078899615028071087189204997401186754655847619009525579879880537478536773645284993538580980985716522607757558809175681595805223229903966350929826351322135029726939746238507700659666005716422240818135930362171144670366659094000613552254913212107687175341558309388160172054758348858152978262282209557469679439925714808696753729332292707140876712748495909689511505679575996109608201476135442510562327085422735853677788074363618230686556299639593053886495621367547998686236911933158589367790572231567376533426699362102351378530934711199922483434191152779078475767763541015948485724052964028733598192904719725407755629526259065088555081314320670276557863374843405768867819212793455090594711145527372279061493867753928157093382087528355862702216202685254294228829582002162253594319174692934863699375123473437709014880817100909418707412153192532450604010275093069259803361414294723103657404475275161434330193388020036804635466822187863077111462838632493388616347137239022462411018485626317503003587702228587183307967592255823533927082341931312646731149173726119247573801650094987647216028001999464992106907227665044735703480465654923352288860499142873983656367800412976198184176615710459972287004014040472165246652685697671533650593740081631995882371762550699398596680300207913988596244402211324469226665154659314136114467368601727156331289308513529616334417083745720396224930486841462413088463410757951392311674693331298843459579207847130548103289751768590477499797358359248986273591686274187567707116188228529203639671702736878606969801303920546855181582107606542467530718185870398430476469531060827734955858579792611303523018954147542249913640025627433755644117302960589574642894381738931680508244706136616303084069963861697357209758463439155609685944957944005662801441871957287927638341285787519220815267373972218989761180026895594152152334274520611748133337292733366681966798612089295900942142417993823760163161965150774026331619737983863930367322301417500535408740419116432265022207519483252845282260871771935370886180573945769574796387296982058190939691970280952945037964128155040011039217224133953464655914810649895421817147623739112871624341930565993912431427938085512212077725742819472824354329246953617175718947069492863801901976728251445861048882946409494357808173354006418371845339322158436359525541967540982841229460820132742842536167442189954748885508262807547554488252144231055707725735037670589323361289536266917491139312989829923432594875675733766286573503375307573376785339976971795680588691847163680844662797905489404264042494771093955126091204646890688807437937212491020865572556434578362499889626165687431251974321825091588918380393611064551918436349713703165036236901051435841525179619681465648515972201051055646177546281976454343961554512505881347762709487907343320733170606552323881180782556139397835088824146814770608136492022562175667920576077370571223037709560519214602235607050582539194136550613199503964252041934261173562169759006965434988185599566806443686486074766101046376169267921377240768362514330114957296245661082582099418616218049877673744009939565684114502624294139226567023146378713981511961731704115129541784678104322772866417196662609750620573086455416082439557156827210478349708273615020956775036046513570850945729144460098001507932524095386037520456734527874347337289583030449317779320516941764376092992263831623742273018526607421329843425474193915360648331869923462497628357260655586929640942190627002517883921044263503609900995593053493667973148128586684918152724697029895510831438117093412977969431674364969276510976053501331755044553984207389679291877163522189637410456735207639296923194310353227810454403443168858245523666217377117648451141223114009785644126464883198447627709181325824054020099714804006339122368120773346592285510378027883960816137160193813798049678155092873727018801789766389245923881689732012720399382059332524572199593681082527305971280971452051251567092103919739014755120467692168910563644532689490180312059997974263179430649340706737931194370955704657448735873294011555463159382432290400462465153151831320616638970301998918337667407430967829171403848953963838104965185918388798944337482235699797719735080980840411543178215705791905008603495100221712032941966211860215837564102048066386858784098082963339882373548961701314146143433167526591610335147631438163507246528402574042940555138978657110093441890996761030976086987835796765489172555502594903865243758434925784772474437793397497085255140686852292831169290772030966564397804039075178310058329256554757326137595646008228401467166146161289578092159151948312473482431291369066457659899909481910088467278996440467087500078454386028072789702660861502599216825217657535228327594449596739338576033243802404675526021533890999022759876923604556937392668512583966103966009982032732398896557609990034671033087352659605628369015539104648939136702262881942936114916335121785450800633225297561271222558415358803413626988263323169530744964903796233522911178411597641335944483866224813349809204730995851134121540451966020080384353013422774245181653067350668953997135123191374315016564207562119079744588254638662994117282262419243165740319462216432977519859216203663557338656932316201113962620431197933817578168702627314276726604014041321891983660345434934650721329216007416123131967724009915560188583280150114881832314050984510186978350268277189752216797362553164006852295044722094986776247317958439760935245012687236153604875768534661633609580107254682074584384980808809797703065805035876657350432352097757499475696580574253194901481142288702337107616698874927918996702280784500029733728193703344617849421640219194592751304313448843497022654149612074647253458732596985283589495878095403124907434587932731411473349992844709837574338565817439974280619872881492470539259895888569805626152267534025782796180716397884175077931795823839151119027855122105378905789670404615850806909190632258030161268058412328091007101761014110088682134107262274081093470815324299814514926023541424601194965886113591386859361667756386407754970894927954455625490870510171446364911929003455622896492173943877443924549972236295185887311551712030562405783781017587474513240841743791586539860732262314899743022509360737550293232507184726100229196022012649988570230079912738171603756687471523348378690022759639230949847709317772289502226668234376171273466510122657630753088739646594160508141494289481980667426857448661675411826626430546947638356891799933436763963387631953765106818516019482786311723678188074866087476226199535158218521155182158939043479608193943401944803386159995395861836586178506422704349777407725971049252874488012182258038784707927746993266591708023968411203080518667993613133764336628480309104479653637506896787049672634110358884569107222252307779199065295191392231575024586237043711423894435596990876950033265529527946933349505091935597492485890115182727237940130248801275196862970874531382814852952555322394552346953113479673340519434123227414855736406887870002331740556912332728277803972727139013332413134958423737327810586750889539891791340408520019152692816403047418943461183572946668111813534429216592855653834011169839251100059788218540520783612818302779561265470162131565029872249399709007813719606126150799354072188539544478597949977817232770365718339800001101288036161971332962563412945051112479550728163366325880377925251469721134463946385863516453620773543625484074241977995854215785676238068573861185411270213776596736897855576056626000162339054230240360400429020573939626240395330989978915101223034368418676806427976519975976238831846875393573036222972118591746252653527385558059491547302252796912183608943012810950658130272249526810351972559041209147798060951133722438732855318532893188631713540353399697039270996410092495283100628113931939408796430857395806063020399263425962963774465646588373183534353874098807146290003338369399956365871521476057908770474846972322605579789230722209594156967556153939117702464789886560971263787632580634934877197427078169390949237219208373149573238606115548000106178124018718876103397027119315450651098092507245568627660620766108428382645633182194449635580136390360994130076041670493540749041508746150049885365403235489197344413000295970911966120726685679826968894567303367698816009973020534683041994141630119508829471290110077293413813356308385670349458217749719804987410582311792709862195677162462819477513880877626879945796645357639347300506638260255547084593799402523386356112281890587571750586160363389506828440454908722433349594581774308119714861879856692353572411072342105313509195131474631960231818452368710386979496404539258948912308726722658871974552090623394627908287197135369149951417712019652546519883969281222571746768668685651458688963964782550036938492201977800217070315859644968680305599058117201661024258869024543810219406700168700574327262675480076128430693071409262287332262883072423658219616994945870135802867170467912793405254925749092071369042105497355432991680439140972312864122671869309679990390525208597473578715671633605653257912226938545117338956514738114124151222711297622565051058426322072667996683369606192481220073921286490060038988987242042846434487223630604861714982034618311259887179938037478706423652454465745486165570861995104788621363017812338514053736234147093877358999616625441118157482414990401101191469731936356931069766057285549495894431671520884479458060087839383246781642865641892947771699126930848375473515467179515667632073644720286150076433251258265175627046557427024927043194515979146393587055955926197825417204446475128077743614608367151658570360608567704673413054135259720996572728390856075487879220906560382539912014224842207774889550148648082382514279785590538919743787477152348609116346921471142672007983184257104228813271417325360653965167314511090761585644373506285269530178998557452377937027500193741935422881006365111350634660905885582745145934250570315830400616526050874015557183752417063056310070311972472514621546027259506782122656448299486424123679441456087230483505458770455394866699325055142945132147036790998316567847020349267684561102854987217344574073920360922863866106994563905189051278138066903650687168012058730756954315859585532250233934465974324780289020628868301813081835040065484873064036189475712123361656841687465615600755777777074944857221075633463322283486187783864479747078407479578581348160261269407339151615465336852400449908093898958261931268885599037236288704393462449733925477170266528380356825721448732077967845392672374099776815439439209296711556089001457482399529023305955108885602582536781444759724891017914135015097702828447611120642621901069401645012496347931712072897183859853367772610755909200292925714275515895906056384455125523671097803871536861930351446401326010066845368565114471157948669543117937414846785209605346537067871977441484968724300775562375605182479003643542948820733490918635756714853016608468416891171031151227754558070114877711328689700308303984601734839133739607175192620063924108247186457096652756946927974353992940154282529296584053661087422416468288068626977898947389813159203824560635089270830049372499314677494018549838175870726365973570408859565148414954139957756504292961042695051077518905146137315229958942421012640494099792189450755580815864440181272385773257437826844914975396914108588680946975873125991235632391761498767858218187099224097492326983542471214454246956790234334376903183913911577492076129186382105494398538831477698856077556987595766630815259778261463810225410998798406267847614462689169399836910535043827648822227699153710651456107765221116746172991657435513223900585111600590772411256212054995782001864073079766362393470277645977200467832576242988049755226944645614718042521661009684176811240084696140509091888878712702853283655935309175847378620850991447116165331990413290552574509604961472820428118220192687078184582810955681208104676958864793002749731863564625155972298331239258937596832060267487872836270011447668220925568914588658651831031561857936093602383921588223627806320685772619169999633572260162376561985979206662112566131172347140280139793904241910671951213973909648759154940336044317118524881616948720863436791028384865287757704398580187256886076295630117608639941734899797288448871710982101500355232765758742345829104355888693848434810214253026432508146451896303022492904021650084786605447700460416030365335486836062787718107197616018462419683891314922545452825707072605871851524189024417226086330163609460425574481487162510757476921817904165392218244885710374123734065984523265250367939341145869061938342583268558887840325747297225960420762476144251447667914620802747976310270157817239833452283835896629306019800567234506057523292214300542671696733947925381808998608275363624645883668463897901970871090838122966410034605998301176487930146092466534334809649455901044380514483020759195041124228263944175386847872207796351402502323376912805695003422328531874688216125764518583247862982517612240076457974555355747307586184606489031239981097771772747495658585650052008501405024251275442191167891860715173976612775693017090625400463988686549695151126040494884850912138570234784335084207990045677231329781626507911754833534649357616445805785480646332977201048804166977590992258326810120435701208034850438192234439070373736609512798164352775353112366242689096479536591440100944616826355200553713893488930764649502085833172609977761404888430591074652141598355318235147085819599559609655702564595922669080118878846565429894653150046299761135839339917563140808730136226337485416496944509107437685605178327724653763223651157259931517590398899397512718837426074139685591916498940859623260485097038904866510571630625651241273190086117055756401929200835836948088485428120113660362712498425927084312136137784307409828795419390465141567770123722975208635230652416780574901801221378499831675850548501857789889502066479890069626300180785758387472337163837496146716724400019689881434391500460859736150638632990992757507759924882968097160647941199133630035683288345799211105293342757610984159362611437269946885510978172399670093393865676924603099974143504398079444591867496660923119195565743231192045217368406850412896786773678105343008390732575288913172702546043738519249909405336578368490454336487938008244882591653254601946906228067272898235474154420391568811486805705939581011484954343150032651725733393732385580613283572164989751943141247807999827082528613122124857810728948378769994409909289503318292205398107712536898340903659937503592325890731549579391515758152696095992957796455552643497581498953437788661651653633280781184472719527125002646386293663645897741774838288889432311569391871997534837827010133907473679400363557447269667451106295259679788231187069715208120579092132953236000777751910820008110606590242556680675656061713810894582211390934434039806831985507416710148758724163635749786026558463921014723218130478118787145813171337526576610563205438477706136726872130549656757907815528013494885603958832318509410833434563227377021619414393400479980487594247766462336212556876406512573694908360103823377838397106695142826935826344681156162735857936084928925840688615891522546847919835178023550480258195422743097855111687322679609417967732054528172816670235953360657103052499463048918939500060565359943614810277566714781145605336164815184921521583109364116753871817398867435733336197467720387783839318369770388113589542892913810843473123973450241140858591074485427979616919850604226266293980091348919511273139029920447964971155422513248458408755312759720856184661613760872624650199065800017774172863801009631598927078101648437987668454743054160912592493879472677967913541950376871472536806233213447743058823031010684339859768104370142537384700294965415448021923881669976547878508768690658014619174285920226783701735832242743958474796087594521870512811897921566079750355393615763915533612793307093075166384126967042382989540485876869114934613331986006481522962827740743813702932968707729571940928446891724252271957940279973074068907254036344348663678594427266360578243730263744333370256999170175499747000056175074115660503496319234911228391279613228403280479281690738240123524549415717163089039648575996450661916003592359594869359111032889028365889703386783484333638508360218900657460410412987523416374832068026229972393295476939122204036552272204865838975153135662133590333441762455385080933147997110414984514325352213978105196919423340311274957323074732904370518140977968393084914187977963988321772982908684371964075294058763261901890240870952559096819253040709628555864694029913733861355425495313530378207345630732177732276701920448145154030995263476550767056471371308503502879664584823376374924567034068068696344922897648783212249175118774364351035799212780296892839138503920568287354918748240395001311477305413142866525158818462076926372655010370561191053627724713711271158507836953146357605791261986457155597546377249184460253944939310184751914656517805426704540983454853942784881208180355108698376912849204399624525252546533156939190076537884082232056601574268491904572221373217158249012817145553351086820665778406405387063904122289682479389751132895826965261767384934613257760808387138830957997831332250297778433285362845876189422717934275994524953793759749322867415536385328785333887577900661699514177085999877374539782061485310255394864045746603808201787452792367804554221836550600030986084331640307214058535898766272617576737123808241098055087837766217451224811854564458238558866187172521411974075693285967906493228746373950230402187720379037563796570202339563117669885046489348045472284847692729122263121514056184874450729149251004393719057531342985608483834278357321918983672697312063275986388749098487622231070910770938525395056009531346307486012032056177171513615134943174734073222232154243204025990995445303010315418092126256829047043633980033871138081372929408721613473478413209927606860164415753333018490327277251628278788561565149012214212386817506888927104336158921444637835202245761397345193124178861481603168394929253828556658090497659894056777601791953962771802963481265792789057032803170823455688241534793499823316574275607854055507017430596806839454220399533572279854072305313528887812434719328441547811950851138936053155400780779099724755464376046932628215266084278653271769127113612801736007291851566132611280170433739448316819509324433706040318372575976115530089510987660814957925440300255447930269300634422651326231343941298777951169511236562847096693436364673760984344203086140300172640186096689791328085863718065237483612873359175833635336296536022527583283830056072328464004341395087347363097207768507770043105068212742978015806445525901401826048691174695849355106153608172233779113502928099500093542274582083302374924332676523514707439767026036944189681854731440999652508073653613626657018744018624796042772553010935455849650590931506190906516713935082946480493641057820563237434760018917405647556340536720734315321365353985819476778287590712157045412864479045375715056858621533067341527747818938724264318055276066916947574664616172271620029280375241006396433648784537315164809489880763859184496208027948433003707824739969460768236604871538261032646073671143603051171197047014091567790941985206875274127661303312711497408791758793588885434461290818546135455008850402711352043492904062543377420023516948383458376326696496305138611043029374778636590399632060978970933180692923178917460276400590985066126103004973906660753980348012590784231296817551235472266572352843160141751388729107729297306345409397987870716331843730261583841306764736039954436686426983622258135321193930352274817634975879116801433937712060394504074704891663021439186278335537039096239871071365815022621114842802436944455554017698134380542668536984062769754535681571989223310981338471277975894520861767823225021957657134421721212935632701146598931944508218381219273741285571848968055949919360982653989338569128305250414049990322562492028246532421494775821563491575716146430037072109174901379912600850664364761024761598999911177329150742714609972580201641970042495911514220217060919518508598821102961751926606538503028032022162117007392792196770820105716415334666688903628845972947755977886097852451531855738734989100287090868248039776735229270858962119250846528214460897628458964782154721271109759010045937142007645413188159326670298596567482123876342090765700571749692680602859933091267800168899060704031114335760281901818849189723165958932207109299992154471037921505275100197160613831250759915560334250434846839762163582755193341554534319060729948719064818168829373560298547630758840757840218204730202387553523458447365996437785731486760344751580405184829142362170032403506581710133913655311342660363518241455985397255525162347749543177171455511325226780466777065429345378106562190218152353607921122052826155378614641220181383118991402550561328272636351726989747767832518652809002422722162755425975806860212862418244035519233320359716238553403236659077209825246894833358653962076391568643069639705924677910470221584135874872135793727735214165273802109269601684508422843348219127812530984356499013593862530476169288394520841451601985307457139125401668005144394116700083998152024694927016041892928757489468241006916406399500132965186926432256016252622586049524673191944137109316454489445603499660489938608858043305512367828168450886850740394764034981043948469860865395659493437862677352347582885024420244777009966459678109199491021550577603950716795081698526547001012369349388589181726841484898527231437257868585519856399031552908697251578502834429076937583562397903794850511613842969357469558476034054101406515266617534336193222213677730141762778443717680139226653212312354585081290279502882551071444323244077028642300870418248402710662431666474235022335268107874114280629369168093180341088306393547418651689428249570786319060660399154941314003491516878960787470614798293366035211281438515969374409613807662293958292202022925927851418988133951808501859266841349715191132213916493708580083855062316732476516930131684696604425563072449819418369105432700566324531431390974639770945351933602097427776528887454264127974786096757870344902994254963549017392518265970502731376632290671604943618220251459539998973256047270711743800429441930444661468825915787580131773029455064372735848810063933415542508080728274062354961128530509257901899520835976226143085889109488671459465003701897244797647752614558108853416519813498510647222786480493403209342785331819296376356932584740586904311095715319468790414298808317178465386653525027248083688951222049405760524413158256091151039593406306702802870019594544902414553323087041824129839865181068266517619210359817187253691480015714052014339428253465479223845304450454317874509577625319650425819665100199732650232634897004200791537395416995752298023167191376264718422741306748147280533666691487816516406038137680732282567156491321859181122924798321268751528023338290535601464698326541661731310883450934354236918680143254233516108596492169766513236341330343100840564455549066256246208524066673871277739585207046907925364185027763498995297755982087934284468270377065926598927166664562453843157604991562481516731509187730360106567312423641958350803564112449095352516145168332230238757373414441924713711518650488529825141959080700374538168092960119768112402483492482928098085996603183000378986079208922592259691048426125564016765972122851086068063885475988789294599247948641988696842744100761766452135820302199217335600964970005725406586620257204533221835370952028118008493035399210984521392131630404840724100972703940003300676795938173184330361198707832121161711864409366120513564167243631408737827809678357606767270367439091165642767552529109087633475245427919838225273679155475001214346433158788244976728608307799223903507613474719399610548939166997783017776923842977884389857986106650031368663645223724113321130474284740156922208732513968706010907196979521604165510512547845184814458023008124036498901725325978250505837395577824601240902873241963534086017643129448389414532686858723999546331502994752187993816209658114239729149156763094165283199833646670722253827705583471253728935054862746268794775911214845419400754570724684028656551772025113673210391622800273665270194451523770706904891669766718878369401448009526099986324811262928029122426697690272236216858359185959075745175116576085427106395990074562305404323500057725519677039070336128282955711994984616388274264622270079171364994461388929647673761252402716104867665362754086479194287369966562379474038269915995515158469915317277324423422066555232763227674984596339377464600411634457478935333840051770830172596556031273166240907807623266139857312729160112633880339975072677586858942506828620860362708930575384866549183538137491435513700369209059979606526172497903366614373717032580281151312587871715386711508896190411207878648778666166911358532496159124630507781698222777326228538342050217840219537059221156163443967814962837262545169639227637518313298360848663969281614600282664339015027268203430547453081647466840689948738918022240175421030958841655099761461241738871372100812924854540214263648535811725742676895722350231721633307377571601552441427929679140074636984103824332064958336200325382813704014519424486727627350288395853949333532885253821766724023849703918447005566926843136478824072485463294734672602700054203032987022425147660164727013143298846959373879324671895828050529858291128572960640375405565621770720487561213114179830825504477373070173718650254830561268308230550169983465606223153560655982468826609685408898724796949344948220245594939167833143965926435799620281550710885169494417779093776378335751683856831565272716828242025604441815232362091904161893919409235358347265151274237581362372192394385650997925073173280069499025811115920884083402963463431109613292577837210384191044937409916502106501021742247988539089197912385318455885935516766894099929913155917655950665623945853879419615727773789730669040345431710767788219512804202392626395088893773355009304619426770178216218703480112141579789199568552391438672380452331215501174407001395900559899696373747631196811288335924668349234135118074283515925542653953610060495484431054479330259535208566778699260521778653383779732823616993610306660387044364353743651145418106957190213159178154363749959342353859035223815771130168859990531675278786794112781885437505466211321275123131096884154180705838502847320985657790869598828437047093059327890195456330456790079086475740830968681383415447765695282172440573714989809272956093909266776497575770796431409662666775322742119945352241818805040429989254126017730240204881734901879049061253005947923631262029202135215731420429166413464887208110329036744295097048993463755850745071143854366683630804513181212835960628773733325867894029182012327441588481505231654648442320149062093797108702423444084894277240609976632855861307751598974785076762117180159415026493527446654157111706565045732071758249589751896130472555149259938799721252412210361655297651618345350456028113655688633673889336753158972452569356924412443019890344752722124149678215442972770215579541097935273841781192028582907641402613774487599663103866382699198154480228207360229006970732374251951162364563936337341443231748171262490542276423730354288026971079343789197089867457069408128862712242546726361365834639172458317528652297143342191916328231280331511702235234297744603822369352683366174943446289872245223581376629491366180758736662573108150539758724385312826643426528890818759431237613627848980820630845875889016771084998876925710404017206227828703075576219322964247513269987435697376861876651032263986847034491458467436075341110255737428136435845249056860838123400098299074512839209180061681712957537593900472867070792944592408654640300658380121392298442318378075853300420604277803847473306534178888202988390494367223647947464241748333924532039801093270600886166411125843343168052117156821428290796601754214703513359170855913897835798520508144641129205840462590308584950369661979679296700871908767009673340428907495281905298125967734993273336518420462005769721430774905170293606815379305750877020943145214878633142825151184884132243314014285104204187634209460466094537256998282360844726906829467161618725732839159694893355044878611322001666115407611295622880365180706593907850127217208361260360629456649138111451448467482792314381085579345021097242693449661904486928705762678828381576773766792068459174210782328832899795878087418938512284712442580608521601163320002914637368200584316658496868407023138836231939718844337972561193407049950676816342552617560962950091529552650267248409755228388421925843496933349485617501756180866342208165362067406602731655106153645239499300873769936200061017845603640002560604530007382501772913731632257621485859050610046518934100249529707452303309978115383864922424867117683488090022016865536517947381123347934667076777668466200416324857846826681810199644600219194322855625885114365138485163719089903265422788427414418293986842784950573432961062036157751489132842445920615465349616699950603070092831872857931987170284107140202783167787647052492405495370087820576549728393564955002396467625950591497229072910563939093523902696524046140190501531322179723352477458666156831783312550983057895945562895218540855517254721485468959373423277655008152272523365646479195765111729857699269824325200438967385185839499094007102276534371192146948872913685850396205973183689342529841652596212022075969499003305275420932537298524926701714436985310094058333092407938606685894078656149493873204344089043521266142557180564018666576661727558784383953664597602411324460385618309444849981547853999155814096751043444467765585895241288245307923232748488852328225752665788015946580606690559621644887528337218829968254455384533620488829421251198245388621336756193966877641486350625660346914604207311299878441058579025450523878010610607491349888487979654088743535463204989643553850344756155638196251437661581296744861117002940116760310919118259187764005035345011574017040545048213354144532998195464106788397660761556920608541144602193617362378373462393289577023924328252768344237323851768054754098492429977022708001115226283225779604721721658352366923134461177856839138249794927300282679693180848549735758376977842295670026889775001062660675057291549941201227232838964824593176173295969898239480958556330694398851668366654161489244038630054153735760932095893060097284502926789113819137453581102969602906790272798429506214138620943994431608206573091480169886093879230019452191065123956965519294485666930167011852468680928010216018817406983468829821103773328520220651514301297760648571809209062202288931841438909919217283668049069879352533708979467899945022464382565075118402314700369856253725398362566642354911359512751191033239070435554579150552757590620084569622886629525798909491140946834430552538490716142928143444344716931186807477596161175293919528776165650222523710715777673019417610651568072028117957951024011913866961876367665505613107203379184014887537252912799919892005117982209146482488150844953196474179154922215545472863996663167668702349884585604608087219842443592259876262550401549508143849873735853366503345357228641644656549095601560840088447663184686936101958178186539143898475166230319327434386098225896743074632017932005678899061128993027185912907406101565782611487605357298271890878530987052347624234765618871300935163893745796160724784703158582001507728296118529528519170858724933254975330942218811797178889232752126116320302190653599984293563359089253631963858806725766507955330276061945475127074393074695593347446243707836969486155298212654303388291364554503021230436638890638611561262068560364166012887579954281554065514632251236901572240672192719894988620685217877139693928515698582262664480123525934220401562212276259111564953407201467766858624197614316357022932101674537538117906651705497601104499296682894259973240830478842944004327482269209966026115541850799966104537761766808904902849952438772913352295300934374554235071519040937146621449522593455088329921815529952617753910677245747819982843925691971084035656722656066175825321386967324502662206919182871132771750780694909815633382442757414177088419426933866937636411837266533551767324234583249597784668857065731660458274740134105430442762714964071518523310858228902932992244007849117211494832253665317998324411910509592186896926611327619434658174219609400983133770239788787429881772423820832419565139061980238004441297488790405939933780724727606545910022060347629854319008381493974545944863335544045948728113739663661599021722746307389104391268153726685646317917782281394856150304069674501386241114026391573798406951128759763478147066874562911816136447410171137043711545690950223391504476570892988480181665778124627474973323269889190219495465627026996147690612302390252239253059412316885380770228072883431022439128162802184329721901545716958004296540106207866977254511725071334615900999298196860789612045925854383124097395810856708103290683721341589418386654756763189785338664841114536532548050190552618052721440142654899067215587494436990284197981424855532716046447171637844228653412209382566395774974452960463260338259158619576051348577620910281334151038868554309129056686049742955824415089747716440399637823239860642633193477216535037927503905759659971271806017286323627828189977929787417720124343489412182986078294403146606763529394249605900866271287629578682915027002352189245430540498146533655830487517887669991432019772022171453248038989086621735043850747493884709696143585701659075475891542627697676553995151792032631612621494326511905162827747371285060351241890879465461847312638731651336674316477714166414748178027740639935300413719602324007953128150460933938740604708907541546669855583409447686283699966525196477541356651478610370952511620767754418560201906092304794064075257744843087932669005584937527526164571242580935501029937893880541187625922855947719566927810373177221671583733528929887705046114922786486068235026979412848080196258002407639580554085874755571215140832726096024306755364821285803041808037939805405480239372967209244612380937607182553143495758804986190055551163296105451542658512876645698146316149052366775032265783964239659332480562790369767177458668018988948849844988860023547992724956597953511141906265254166748229103866907005351842786623862266151945148623782780325741958017882266300577069621014472903344845984731270281836173379984319322016414261589960287313588195258879606200875726405347515984408359684687200669180164047160302458510864851756892537776533811156314019008653870653704268864696972993051671397189322279516130959232487214449467477919726097453119907847031597115872429819552822165509014972933313638722187163456972100140572263313883676946106027090471373820796954710771946020862546362983626469690386699008802486131652197033992690470546229036982993548511591117847110296934422455011416763191663388598821923592002484732290875696243167770626625112600035784195774963944950928354286557718066769179967897900772891635098414928464567461703642829830642543078816913866007616795109028278180153510716624229445602231318246778639015979980860472239645045156574287661607694074014827651531141994121096196580778530512756758967912622686010226956690446387785998167231469746488364671155918004012024527041227107713397945233300209985179346213806149183982952148620811123318511375993422797026301204243298886844083233708460095529581286210405756999764808765667394063669977870459207063553349488866313191685280909935486667292592106821349670807357876876875253912501478695100619464072696845345547878600380285654194083920633014926629101673908315764183259163260760759029404431305611878319495018530314607915536170510573257171756979689402663140586957569080094761168007773525842862413296934923008371115970957444676761666730961856230457362245537821728910621991875718148872067374802012237305921052958496884786684811925152976779751395435914096537380767880164454949129153467998874699481242839916027913675749442317315348169228821042913305375065033975979151405366523976345876267579731474496447546650345425076431575551397849642483314220833058286055310955029054526924116435618184940492714072085402082397925791290175237144239839333105669094006490351068832415816191457094824245935441220769281191949396125017045728380811901579865977179448027229708575284558550332364549628700948699793892974983799226437419083802055232155694926388173011987449143917616841410981503992830364428003218733429110783729912311399570807983791647873901340961611380922075734159000089099298900546182907888864574324181483672586176994213747854426348312384497865847544265240538434880821672259805418230311011892958672246524811149100528823330838184490654947426333660534111975435613539999892136009498638803399087665290079031425932133442332936053093333313579180539985155405102399636889059674069974099599121610130949260842343184933933668696068352912060567890014435270827471073854029039935140471678228617177283137000349798027746445720389690984267709186908632660564449443562532876833427385222362491464343274900971367046300189766266960880005302708379716683747488297967121078943145537857689930841674401024495727844004656557497386203430617243115046777628912196788331394823025859492854176036707692975946969586636157113745806922703694922427291516094101392023230337611581307511100547501901748164558424007575781321690189979396960825973119342790967299652185499484659663102785860492836871502229589102935525898854688310392922677005182361698657490059206833801471839669027758605515056002622783653164568577523311925543608207702142814289610158753991228505500479419086811483262416281415479204391686663199536970431872377545204615954569743577895472523934089507990216791438083591984351845322981303630886857651895233153570689258682654977134684590727396273195446381910619377982235658048817945368164646416877440723413898637554590440611906285085057126465512134692197113003634383498586747738880025784916930388398647126198746292650220298576407790694948693720918973577482325785036332900422237348254944094625936436241642584382104596224124411647906336486160852846951333992161092498297556752319861760539728749819209608051850741187767857447470806004699919681985301484192245435644670881000275824205035789044179792697091922440939810613814709634894003140337224980465431527679208692997578854689357605926171927769850295489707512024062557779907679997190990023892850706348701680866247557320477439265803701392173428505395524080205347597187441056150988486482475789792178069707864689100131572841099531659399470901785975481875306601372829459969123456904125022174812252570688686882897373334363306857864270118248315827208063838379707482868118487438603807381306473392650645175819452022747501838163674316345823899045954631053667020445790926962554898269236137310331819113079588571446168007744946178807764142359706259374210330159229612260507370899340051813565964769226259122131800840561173580250655951984744279432634220273487696344986656092916632393723309838687384433471545944948278877773375344667318597406398517341402547618839741607152129557528422819354496878529486770469095466788115043590996710069227704522296570385706210135744838805041035568301972508144321239937493983473956411454959695805056493417011847713264606889383913169985637225200110089516789854132001976505990669920164738987680740246327311881288069494338640152098848844732381399447326888172721316410357996354881955050102507845898770873895333425586388194628303986738217892273890162033924594159504611051879964067916893148294325252590475082573404546165801516610031811915706433755287065808352673671900282999239055636030402176938085678712462169289317651238759036030226883280208129872038597636568907800234076534694036475891220408782233055557693002689000989402565738426359923775991022604698982699856608687088947617140683997511884450425523237926389787838219139388623187518340186364428066839492346870351731517064039121380591130342262110382363689520362603441008956955836299944231666343456471467357665575543717032162655652945328514627096775704361719875533828368769690614268480400846332769107069084513291614568984051814354383089293205926287101536554519585879102078583881490795086846372893957461578375915857093588742420651727065092472224707616588416152840706603987483386468404126757991073949172797831726713564193227191795828403113121717009882367486399436602916496423723044075887318625680589481987420918852648201787988807203113202757341399508708568261002886702572062603050111606412154891717581884729265174377883705103932989996772101250231433083293018999911574490424256760482445534615862450815550219068461882251808868127401873818059455672790566603923853667224163153178592988134339728521210852442804652228047610432754014487149201223292106550226156148847214701210055369408417517387439041133460049159531335495055214037599853284848137474414064029021309959906605895112107377647311478012836975725325503680972709961158795426251875358062677867973001345186496275550665842372688410616262321943249202333039099087539866396737899161005788844707897451205026901695702330013976116283758044941568389302977833004572985858047001335796906763404522854925441765290789365274477190842001817512358520568846855428349089655513061006105782904484519649893263138278884927828274798242438009934369573574910833168947970274604456206008686747003164387342528557556912466344433468143266574846144337331029449013573272167790638541487826821447400310815994083246196244396300898820243700681298477366755454094557965323730927487116341684647655799603458607248087223982693790122388539407990074316352366579677231019576223420076117714963510279825858760277103424406855056559738920431738693150166106457155419522928479083102320956835944583656700188385666583755660441544000876560349083197800090412819429110716556576203141194949642891618484626397649805569996360614549558644290286026479607289220998576095716176886525726333899347579058888108911164695013978935388168580229166019175685894492521290308165712055965992400137927791995281616391128865377445187848888278797563043165563634077459740789504030614415587194030011156401829142336180281526291643811303770859348939297812483633854891889005547900730941357953233084032863119391612907038083009571222695710075490053247090470550692584497245438937404778180494359610463540158533520337464068173509890938401104376022397162505240655831318133288651963244322280081979556247630140322388323673524561078320904192369611608701853152296926974670194769270683189479980353663175805885992958074002492662359561256736889808532930799825979444626659234383698212354735894195591434071372164487571242004318405188852909196757412510136054095948342896048331423271195049622031570368870962054277413599159220369338346188865769327018079736089553904449058392211892885873565902350278844962834017032604269970844118128007399111540944195013248395331597751074852898908886933672017388918281839943686440852819554191463365800486546107951651280017324095974606380696186468197491249463921199474066717458352890058737261985617989702959268949049510327184958779177357440817043304930318665560198823861497674752767669127278017375975782728089491258571073128538852217109900782564576569191900790642464102344469167072210896082907809246002656362883074126230363859034372200108665958118217239832172314337055031192532378081432146166420060563843844885082158915660919096017069508226134296970217742187410397335907321773560866991527247746133607018322565529925058740349806326459118779028529886035460375720321808637132616479920139076838230529980463444381793161669311161838766896717224682849752247387518642145573079758450564489637846096534311198900317767551750865715881410342236991854527233495682917030930051785818371890942552259941254228292512921472128593723801654788028751681240454513727307801031127174015122130140704730234658999624395377452266227280174090141599850467667218434037235299409124297159667909360168802627042945652015328828835159299745518562548680344866161047002630903035440290924722338067735705318240473657162703997348932205858672023375619180206862035169444065980123634196966958069236959601034925382070716375959632000766548712691957532685895226902637104581902055699426785031439111478266570507903559410379808456050837278447180910195362013917162965605709897290257682171094064038352148622961863730897811377111377413491535142385427438897731730303031405702008561457923150114429974859782832282216036540684761721688683638825552618560913505416550485661864242813848119534004008982486611714916274082805003412559960467149730560568586351985092366517791785110439689198811294047711375259200554002179965982685396527300296823209459392132581450272887416531041796638516459726028084378690266905004011067866531533181018831293077584643473684052361682284989681103453301587548419433063011581440537399681315412406136078559510320253953756403866640443273775240444670574768690268017965202688095717704215706263046727692695999039415521048151064268633659968439778421049040922289641738774477058039812734610672639394578035646132736656911463263041588445647004732375482370717555491049371109470960440811644727373873791857688882079725454909129239860488777017632716566400147156156645379671335180070687377173422277837278170830572684647580520915375368309079052775041831785235014292411377556729453196510247425938636825069403638846800809635125984038271717995667475956667019144089072418655744428547263018365595777899535810410683234316178161855439663195977473354580044960824481888604005109579079826116547386140962252646219357443529908832954786249268400522374213875362547081336334766829724182046651767058967166584424315814711533813717745766400218353823075880658344413379277778171534519483593584009738944382522313283015790593196803568324346561221752607878085636957230429276662653918534848254661998770612263537283555686133393516559166666043229282038812810907950875891992457281767046879704130415950660538756911001923354838131552320939941466234845897360537114702584729243340984655003919719100883809092825281876609810740044726701707334695507062890797757258708532758525797639780800526162135283714459846226323210070477091488948037234347760433939204074839420181186968041416282453547356752939130887657929628268583875694835945126989719033901433968736140916471699346292989841525969970097333578245246086521314796039719130101843014714708473201193464836047756299183912374000488572200669993397272361448119085684782435586151708854397498432156879185802930774968172154602289102755021383171000132480260114054631285929657024403057756754747802410757207457771085780244989759910338677767113641374987094164099934352831590220472274091605627295253893780972693119299985581539083571941854522903667749437020590665143434215415515620976683849984869235177816681077939488195505698375497550929786725929555663826826178115221288886516583437770609215043203341235555849005250275760046336083618722129933129437990565438088951019698896460484741290776066923536972930587108065411072394351108471280039191170395095495368740930803761364089769308411565502247160375908003635447100646275388770372929050793275616725473922650095672673578973493023162173288386904036884753697027525633266968188971720992252547789578096841289478070478989077589372625272928377072617272106832104526558291202972714022815953581401699685350221209560597000872295867638399470450263799881387237528984889556836952250122291639047308219216226471131644033540292024787829905876237039590837595872570316017273304089870293426666002404024550135412413246392521024186160974367015057116697545776013018890551421046070424556040042384788387678683508817006310449430627497398029914233918769177288169414984048601632898236007986633002198361544395699269532602288321620504346116800298019096299423359471328278728664490622006327366882866831094307293301757898503823646534516881492187772753052771224555518294975905221125824246534604076746667374650486528330406112165629814554699139918869808321523871957385554333865057601859208330670727203935423335899222092419497593396335798373738015004118838204062659050067848316186149441940892374306719248060101154007767374234978554917110392390253107998583517759730585929242864492062536573012436301270431771165076557201871119843323119722399098138177646627991324441406554945892076689812129058035677543071975601206228255675778411121163024683774762593762469058317143263089503619157400546333784241081326707879928441637215011079369057290463384641170106891398859786224529566827414723979763156895465682238792751537937849762575240738105667800694667442976899543989756664643993479403505511615815375543082694462542236133453203438922102626359609680948752202702974741314420240644078636152966642943842398811983993794955133322707644941305793577518966103343602589296808641457470331812559935740900214054611832343719037837101058226867397821887075759872054893885058667264989426783623613015965945896002712938787808220707424464852098516049747713543778856092554224917246058893472603084973769344804999443931013248867536736922924645802824423996748343391441762680322541220400114926657559512689423801520966751905059569859223742533714973666475339972540605839873118810711360675724585679801484373822215872520001256956925704164309346553893858186285477040308468282574416195613783972513428640263084792313947882065233669317194717621192234631081933768796012419170062813613788279742058186887892363979622971030034967755631472170210888769068376582964964322512047739762406387231398703166122001242804096838338891743578758780314647872286109477095395732996270195668071763827064394752537203325880913586049419817844772622959196625434167182808341981471966810330706347738297236696400056096130070410764104146158072735149082842339706793520401787359152245865161311145478983891418749785325878831750994850127308942857433383696330204264992871477711221545379788448839374172804922498839571475858626906295687460999313184881012986304527861125721592524440388167878376634464348087752938498756355896355180349142893044331017827588847493820283414308213301859175782327985431451871893106393133798445415241637390848513479242210330162838425461107977311929599023939250064883657823935448730932279320611159094592032229301105273568879242179438612285602781926278900889033338465679120047816950859302672673922381310575173376625966512932494231183810175292934599216738487470887822654534143337112108986936092388052863570750935073713955271724915698731596064005575636816585633230859466831200791199937853947538253071446432140688829209360200620854460815475970460518715503363429583253318421529163790924362677913742406390154071541185984310885819640335127087793168364206425605129931888754647723327686388784915594638959546474429254039622726777123477908542052028150049443935577941984619764440281996290244429622409928220865859931286302227347344106284964242504642286852143827466341825784831983170132171624463925664919509155327639786883980989056100790099015113661060293296319365294853531266487370660924854743795140581745981312378375410948365810440992603397840489995191589635216394355038632223971182546545716456945161523136623832546923120113236803840597404757831678879759540690519182139850596385894544522622346774667781500537913870494508275762875007499654287979980795927665633939338885682243591960660805095070067817563482345812586949269510382815726432421662641454340056146021966237542003446374646855917066714332555987979979849817222869458207727503129812085790222081795964596126613696298464726149255202665462182466519127157103141124667225681962408361957340162774635183183603099844388497131184610251001111352780149249009123097155954794086457453282541093298354342997720863811751246482160701385140662255449907042728648531809288283424045324874100244201647679565612893567438116948303276887281968947732893488459089819140643799154953121568287283706144975014265294677810945999267534035263574392340495963861830257762893285592414635073723561596808390579843425307827396963893600814500094959411691102244184225997802868524080294340389966804292222020466977970206394228569879296267002091649221872086212894783569098412056989990840590907513409000950750078957178525801307447998106390844823522266680947973307293398489455374288601722997981794080646754464195734959418868339949879973719644961261128774487117774307936655023214368031504168040530801744186745818866367109290575629557736852441207151180168173555707937679719660796958899271948177201906810721593959652577954609743565838286511252758823161320557687172028869434019711490794278740246590483217095376643902492264601658241528991645212050854829424084224462187516904485161058098789089198067365248376027074045011876513972384601933876880001448353350434395312619184177968795705450969986768647934942869596178378743518074999495209942803473754263648278869761206962783163361242602436045558471868866794054123838743094709808096846138610114732663233398944974823868640584268684399324861967160652714710380368064153791840459368533075364201082641988849774297210832372632666093491318070467141830772253246405443105094817335624077695878221364737910102991679818934661214757897796055271238794922747080222028488131983785551139482534800559904327841540821045426296286743214563841523759925719931631893686176736800813100435446908612593461347256251991530886359422889590163617970769984481852908939281603158461249567182369707112410445495385092291456123787373652282097317636736542002368905158362704484789321972232849104755459622653608680453648906908700916889969066405378622027667156609272756429755963549943332514425475256562778064077507278028416443587147911431594567942268563445828873938630804401092792203216600119640024824419089550192351855907290845788701893137163767400884729632013673787496997027005196543792331474837643287702924925743788821872927355796584905060961474713559387528783163864193333119306113585580176215981724415659950857569779537388720913822884164200702040144058888971763643819562403909021836460330624854887976627390183201571038425686499319419486238751431741818199366962334763505709032405024410327253770542155025039468832096044526998898485998915675430219289860672705603414041792326959682799416872019628031313297263212698518542937635304657778547376036532215085775720226091484991462429609931696496826122586945624867250724518364356539911004778078683628113639409306962270535938313682131222384194964476695148794310165873228660296294431883900647916979230505682352358186021856573171681198189979694933781944924206907274526521581499110315212378142997365064167013337701232548800978654369920425365070525246511848352013197254309290774146308173219803741463013281134998307768233177684293077597935061931757093875276169924217196664755577645204187677930217145036650192854404853324189061209309451734902097852055417288866787617864948589674582324349159693515942649745917891735539163085039387960761967484703154422544149823612624754846406821432282061876676393384122241064616508159884804302770961020140887198313198113354764082007866475156931599256134433040071878489863672791239959547915178213851483412010988795796250288683996347931308221825779706586678567841553573532541042297964695660894586586958747728081869550825585352755629010237078836574982641855102580954186422399390393603641775998188591682680158974401388750486499630094090222521382797952354100225773709204857209346704518741540908213628367824135365363517502580181866394931692957848642893628783733855714105120363638506561253373902689792960396256969624142721471253807662301949110937174049004076436999838430467500031196596497246577302545214541852733024840088344475115751529520884162283396744383249980885796355658052693645474179198429451109676024511788056217162601241597759982475782743948622195683543439638434086252603816607079049522075413477353636291935667065055783383296311954226771651257745706184189150079890391022415608690165691406537351088975918019923734797841944022889585460785848001395145899328143293340108042613875074214847076508832467880574711553196512691622312762264232448155016465347861642511828579823692964670236418191676205435682928803802909300539511346114040514080799255141833461953900982679080580786978421941317217938013637964027049348207896395135986592049278801267406867136637713285134652173202248943118308052320993999079964945374820570273928052724647814773187399321222958812125323633517440042075517209863810682900682172530136359124342211215552999289762015452334534320134546343818673665309959073303023848551277616310433198060424463996101046797746887254093924800442883486428934699020796108761943306638915442260692230928666540477875151300767469878814697666482324573175834647552730831908576789074751985995278859232183224102421740449592883469807576569465910046070384133741657488035002433641879396785832530239260072284053929891245006180776016148884234117957801913755715274430224529969682438592015033157803631258826687819570306964852504647345625845401349816476636909999640834794485596200751932905425945069775499909501577798407679560608619666962720608710896461737288933712963322005113615616161149194135235406666273603306944392139672425810087078376505265549483764685250806959346636095108870401032221884496122088872197379502995332942837451442559580165240382164797173847662390484652644084210038267639277967238126740968835695236401452721141193163281748264615258493220738393834850006757826623800287195760167004994820345201982242911811899428869368377149410905491394188750533915872680041262963023036295267441352953897321519565358087137982360345350747289639554889231625945419060629705029984312557242835724021581454122583272938309980910749628685054202532318322550903688662854107444440135859730342757147684192678344501836238076151488904212003680579547298272639110834292657683036764760018750730973919557291309198526380407680987970613463964145521278958896736413871273978893185281576701217696210343817438030943405031111166305260456461348317182973072775937852721293498042610319394365750373594922667560770544237179838647696268679220576108264077612495448465403716726793234720986782951317097937569617084702830502081380376254384163073512082239179415084927462903510747571063207594456884045768232920430495708310195677004235359379998529340109353223373581036039525334893135764364304577075836663859827396242006108803257297684868613713647118652475485497195614138496620682573528841575986480536100080650085623681360972948196360274758821410479443888969237909821576837687471529007859331665114800769909146940026543747332635565758671435618021199816244730563928975464973672735359421489657971310962432266327898063018316572118644005120062140293121964383903890635336285667640382420661026447456041556547363238652125489476093941679282002869496868554667524205693806238630148661804361947269130407049135003357901820895130234213988695377361457460311332779050284002749261025224457955969446642397149598856910715296885135079487132274156147616678747008020921003047619786727634367471609669740324500323156237935383754782720138646627333097082865189401630293196088556897386485422263904454718214507660363240940563048235922037988443883847556586404517556768963956873644804314781153279167331896906906552544447075199372360087003157003784407807317928708198997074279817634956062702607150852142355121819478642896712705312741676677132458795668373481286650216014663791909380951681856826048554940098864272245000817445314411782859267055237380525476025225014690625176880172561572976380432363825966708914644835217247755007487495359002761564953859847190310905307133995180853198731517535510964496166943638278776368392755781373188317239115095094843484322840882255871115207253102728628497783036886391250161834242118817373299828966357595077262211057800991188262220243058286901145915871458370965516380971182254528954041495427259218428391636770629361429977299938249254382145150617649342348544420857977707952476620782916419714651754559321452449270667630798884598587546914664582641734985643050115361423383437116759336931499339682013344616065537856488339197521296990532280342843343232962322213278213492755624023340926602664592723395846194200507543872760621545949904118926255671219631538348377806676530008041485197062046758350752505568681331323400093062234687482308291700548813351786102629172094407214761940256851827386497522738411892287447243090443825240488063294037915768020874836681115968824217450058741352114376990438161417333067359626060670214676270198753042881808371306188249328409466185826105630565968329658611761353662955810479831053545457911646422238800144400396931515046349159802971327154015554542004607006956701466215774993277020746213447029376185947444921035993456311496358547421936183073041775468597358273538818817651853726118934735522098574112886097012829548093302579718457892105886950307105470323795123054631505782399450968307686047863313099885988676081478770716127220856236887436317769235222295759237947425841377567844876063640803493045996846891799725834468497127203993065351770485962102730481743887718898400417138092617890790215130712461688514577466929573860156120562336328270360273710097107429749279576013192725211909627286016255564657633416004991201965481122150327292691286485315574366132089678761834344101385558347801061367609297934000513438490204060312844282847182485087411918091103809641808563577626325990940252692854275866954368825399357024966280438330317959441146997852689030756102934725159308118113580511792374014184054360023223931861294040446683366527747265728195625254630410252177150408882403755394826483677751551851300637575481012789768769760865893901757704144330461753731717101184765262247903573523890102905077118518927708033234454368121583483943363871068715695014413664007937423049737371793805898529317667000086381128880051518004709599789262320012824491019355976199117236823814949945359148791560689670171429244605932443283835673900294461642499196348995478561551069140056411409709612175631544964518740963423829107593829616909152009531523377782677135807592876823265213090022626385036346190871214922538809510250598029937413904905256976688920804232002889004340118673136909402088115459565419606977878806495738995840968859720218010827556461572432115336316969703753610781536361339051377059408782462418713040283545348268990577583254082739868240244146763691337733855607118298504057246945881769285036573813041182569227767733456886068233060585540477921156379199007040227453049758046485099295275038323597961711157952736296251808865487302852923151805283209430805646765829319305664646665747587185253385867674481866461313162082366953258397559179298975581332130063484451511989497895871278738573814474849486512517227412348036436987359626629461999145839663998553302010547248920217994609561162826251775644081558945870918453557597528172823841922964928403358177049250960441312039343895586939347818610995687218791253684543194693634194948982549254222716521008429413593208217882908091904169857521853742070009066510872612037497899018537446406688715640065356666230430251596601288293852629178393458529074030407561251581296718606052413257200965837419099776772268373047087870861405304705771804583215260631565462827535375843968316050488642871917807663000443458646042530270676866543756350970057529274375509050845454747065183568665810655522616705985674548645798092169559467059858560426658738571281732135614306399748950922713357819166097966688983568758595924190456732595092567742299161732138705404248851668123986648950562879252608749660007847327173177486316629638578125050353629711722262526259007804838804932406444903198993241257456779059137095271088985344522074825551291360435328349237775760127379295945381280584597587458558609603110585374524694277940268179362108417222451241003002349685652161183669557111808927036068107702021495658434501369111363146594899650736812254371665500493805680339624754985525375265502882676711369245270291628371130664255476548226696859930034517018368328404978184317863447187307234659938847155077443038653829924573104800543965488717592997885322204848216231123665546258424383929426467340841549027796190784891078920046202359692082267590941186452441113127085805818706941066831526458203605795316179373426001752835788965948242745470391045293527194730252958988463844308679892876370963340840386750734499217828698515952843453937771063582302895626654807802704774492713213121632594058490549400609411831108114967570836095293005086071831156184301346638094547058072168225280178151719367714340605597222267307875718085844473875037118970666802042506294994937080786212432931550572892946151437900650481459491301519669150939419373880998793123735838974970053806852879144821386637977438901014852319983426044594702593812957491278514657387462987398519595029113587375994863887048892725230029412862584118845340494749594233980752347814181174877442239537870595550090245668778265848405446669674981610077888168539440694841442775871278959099690692083868350991714876384646645204737908439285237834532649103220791759724092651061004368176713219179386671500135964219181790132251110626796607120522033500058861372592903872705075274675099812837478885553286744985210300103807442395418446864929577330081191021681370010874816959972987815454164970815198367642421759245910518023522129044615661115301738014414521695191755195457150086059367481311971571556308329285502195416272894267663188319075756234033123542000712562987758384898319440310977551092331764294970130615081805057843012682559029730178222875021917582103045998286792829352677412758806341532155677228860049610995445282022552437498747209523371970511857665359092362399170292166123023165500947966524982795318593568933027304242079869180315952723089612378061663099129205495641664739577320551894190072631990008803954871546669365924519162584655845586992674528871946155787345521954271598135414364840840248398799406651767940894831708296175537270755115286737517383719183178018454012169021291146863238237441338528187066756174436082317828396486340736163565713920061716082445736086412031540501601464558574086038811938599346817425884209119619803230562239619662913022938909675627901284361382464140489553650332528771360466781641982539475498382091067518762376233078676543391176446705664000000000000000000d = inverse(e,totient) # 1209212612440750075543934346455968596029297883343910385559901139546802613448216666544078985568210169223073826075611366599237784462971704883015113390878334561630636964153169920787275676180323724127314967226439326528539708971532257965182941729628130025895111316560887058039876582248114269296270212949278347560859172080387383293733201537160387151191858335357202288870731165786336464153693298408371169358890297602633546046101260081200900997970520869761583620488555087649456197487227870786723920669961100620133615024575312833392134661463397320072135412253119402322564384989456343197245008374278873344358350366990587872393921191794109473081033192912074130360203515322709202501987640078575879605773720055964238769335813016660641322803357899214520166276771883485308576459717260932334598788681847959799916789085708460803216266965924294654030767805575447833019073340967119812151245629812688603864940068059963469494992543468512783603423769130756944896636485017708485258929380862897688736210157259989421959588623176495869018931437076029565290715093838532029047776801069348651827999543252305144268235686811653121327667196309688606045249463742169394579846086822973521465519377351259539764951192571075688148109169471910672504325285235154274512689190011576276792868820464541109741888593664060352331295914712415218544307081178601401417509749125620301475655027655954822314726967795739201238191175933875652471124017260618838772110654583572614772888362786041535654542145381714831159203352033445235683765376008504647960432623779523654927809200359196500575416384431867516701343515857383776487984900748860155640494741516493466550765300748104492954301424548593186127282445775126214599495701964645701877519802521836095197642715320326853506539324484607265021605164306875968233867483238423168582153854956921941155934312804994387815466364198880927665868188541386563388441648727483432499999819031124327566572735451526088001998343474181990418990707418677198892058351535624514664877604343201476973477182175666793214973705413755904199157751304251976824413337378483473388491302751314552059235597910220134201663432969312649737573176449719445548969984396880464081020979337511675891171934859776186177443184676486595456870244847204946349199921302241556550479445742246999450507877329651090479720112213980578355187797451667166580182425184574210655722272941598962098932461755049877857290190008658242736273263246935774482350244900499707622059703887041072690337250292831190006321734070158651792544620817455291782934941692940748483426874343796662271256698787938167110446245110599402019640412564379154504643418216905219092146230799338687778889854853883733911519349554650627641461266027031816245799913938739960900964758280594706664496856270893500031132308244400446530747387804273657363575379372193223957837869351205858979333627987141742443811865293008924649795191187609455548969077313721863478506954905052287259296003866721110220402391479556550710923012000480370271493796940369256270123070327404266700514922070510623314644919237145181337784438571573707025023496963245775341748261138995761383046492618752757040871459638372279452071895845897471702171530513422366412095490469055440049583263244083950545456556552450104365417929654485599649437073657482617242793054419665246182891269687374954939045712847320877680302119475027519944670582510897676804580211795591665876362211254209872316947346638757093167544363095571416985363456071532347609484226259247035371751804313385432745248722316870721348563212761210804974574876172940050065967999678476531540880531026081558822685795585239728592265895553429416601850319835913496712077606945889208135367919337350980651358967490731336728889274135921895214738260443171075972994335939565992267476361135053873462777372813144208928478813559671856359341423133669469739889831500827771933981439432015766055230270371343973704125279477426487517192008994638578123187508988591981233469419084546801672234714408526387466947409246053943141620890613765042307338810164944536973190722694992935260103335279240218249750260924370996317757181599353344848010880933508963667699974787997465524598022790118825028256727609287519371636254344394288209951706813917785355515791652934320167616437882429414710982341335259272923843803516221784130180689714015456070836208551489500624600118550514024261288422890621113969176618865057364220514207040035442077016289890680214082497426685780560487922801458118239300186068404059996456671582154223588773713093679646902403481883527345558346010465443400350766393068637017353404644460826080912277381123185196182807435760683953926583541724281456987445015740503489056101835203701604019537080870938414213950640905061688423700161370317513626990733950770010186781781474955357249855515776746724101255522898463186192070098775896178369587553411307027871073254936020903460093296562978019443505184668885234609103953189657306166287834933227889902559115478345195677409104799933452130051366114520332133634294224384648857944998439473370698700816034078598824981610567431881200291755171602283492631001876063381704327500692307662136321816292632727644092765769465858787712557359313385930501334043262095113621116957216863956802138048314192379558834279405169320478386159542141847232448703926113520805794531935842513334720724148740383461836998667514675146297614898040292250907179927289000908816485748207188927203816003885835922983172664951126519675722975561000672745695077819418328166590250257858372537401888928830814784711933387032294455228868389400039925395481624734465496125160462389144308518022287249292873658643373794851587618090703554140992118360108673993584722205625642720049489097802844219840670362372004949668479811308097537194587461832672190475415921559408429420612586262376796452521040006149773147507814661274374493893783761605034609310508822424254474046875245184111309724719475151812942739653999118326272732655792877135811015909134589914656564394103942456394544057040217648765687212576117191485247986302653676642340156201174223933000242902057413092430809483866164102440549037340661558396870233815163089079697599010236422588709212592321373826660568185558695059345257519274175949201184465077064010060935698052912532777794150451445350940927945433036781324119753296961203085671775788920289160772707326613237455709923472445578475943789783524898524602108586302347987540009712480430712623124222050670759638470538475222411062507449144291782934816153757204981718035544927297458481208432112393280485626412532917903712853189648581954292980350095504549962267906934312767788195970117063949685503713775807310928352634949328597549976012020758228329255855701471772023796586150991815818890048580936121055376140335725476005192253691752779598894754187134193808914159404238215363617956172416020974208969283254158665028159825593018935605053652353744330025576348032398785715572631991170473084494498198682275504241994239557718964993570354430513914657738796299118937686021480484720653921603754831152156949433859961267568940896490655495576210724025574913712643481769304624530883355895682489896672500616065050038881277013130361993029163142101492492124575304381658540208142728263257352235060007301507418695811438410784661079781410167175060880434576157298930076417364566751669575931480546661606412932575293434460991312163621232280130718221801747154667839192940692919593689994216257556771288894646999354973384098143644040867565042574723193364461366989669941885517894251276426433850088799540635292933369330277605604788567341046112997502150749010248042761060316162010821278580845430988170395272176366821603763779006386492665209489939829022740218133019379511891267013515110372521474330930388391554629360057651864834799158081133861798029870870464050388664174670626860336439912707226982202506014890256858176198910916472876049024913747918773757070742380957981949720273467139562310939810564239086672493120588628888057415774847710169253088132905374432135703373086601290366905541359380032463559029462120405672323011010385284970617341578718308229846205572313857903991202356143206855379872074424207341671543596503409836528589955347748970706467575822730604901787949713060175236865212336762557481719151580635289039395439410000521261539883060267478322432832326370046406679641947388844306075407745726216517704669498469965082949600839687382816980780154992052880772737226591193055627465479677200356147265360869105857198957385612473369727534269299729191689730620953424975953275275290072312787605049588183665630426356804778100086295822521957615031996420464373587688861620560044275150382161458735972991338004577131288366760410092062545104891490307797710387933231561620526050907168268085083765692806735407372703302241281723284668351940629173137198380917381428559560189724897128052163861724863501177833541088394403988907155096421937935676694201055136196552678206829535542091025079916260880573253903283796575864627196620204575180618928574244745273209901635913579341169408710446033824813574842167162648645185863455689242843558482625809625825395410317075123583144231572237386496045145049207143919663541109855684421539941535897275503940702242694105779907439770263758063769920272976117263564176586760724464738551517248423248723385017379699523647699614846559815382379777529782725610208074120778483736909726887194684744663419783170087192361056313560501674579997532826938943083396255609708312517234102890331276720005636010691195209838183182684637906989246243690254422532336077669849758907938863160268622891220126917835391921336396457013113462904036839396122947597207436355230242571395703039569198505476247000449515291357825754908267430766232458803661221833957340307796305936108349217413885683602205498647043890140361928118334719948290926263953821215159047683051711132112083693505946089583740857364110108405309677443302950812136587611471867655903121931651714274392857288784496795825994615107408501051497642019305513291073658860592923516293118455572417659073256225989373095804248277391691659194630597575745827513270789374247260033778015950857566153603191036816806200313926599021713687900767853002386358712226001467887290289839052514797044991683632767180766008699004802896930067579466531353409573003135091924220439037758776233478111537029570661234843557413221284592057994296254956143781157492106071342282809178203482889765171673001067578027733991752409539001356665488860485900774753515012783868685842832079795874076216857648558198150840167260342191994446865765615559834607508253390989803326684030536056211019209672027069178229179004503939490525378602793652287449951220321614266949638682909159499594953674160827559692871582450392949824968036829265580685736433716499024701217238782583461284682534261961607914542710193292202391070098439527933737067256597091457880285372043306905412293508712914518327348171628544404631946154541202841648293601351326687590110180378826345922670808105251982810909376694381867513012254811998969023913816181760411727738283646277607629831793268844787409931092931961451673637024481770717005177939241657028759769649740503937345020740252761541041279243788689665660104941586659660799981538394991777904586758169441765732917604123432552241822770209808496139782094515646638125402761533910067493864156349055049697858920496191387602526688351318483044822606135570712644334155229179891039611612108636668892079763475694468102009405674376907133223470139819766366976176296294591698322105816627934607121482391938430436805419924575226237306280777071426559029946834752285968145730960638540903510108867240779255182470630448876839317062767104190327742586494021426591377356673957731684072354099156160119577108702966142968308168560440781023966232068782662444005494944166812007152839017983589176176581907622867449032062723837919941120710164726617796433556574425729357421992982787866278142447117037892108683506598002923854045645310123631281389730423015089487125404636533966128486168021892265200936491757775619723457574279093825265028955591222075838031394023738510013875355166201902455332077345578700920478259749163141178095501424080123975725918639161922730838519295651574040146089079939627255990896923278356544722120560481400325822196507122472958605194213066132569428066612663329934247189334145779112713723688286903445795213517550567607509667759226435794567805231428283056504259092612929914381876161902844152017313584370554611630339046556584118495603151065451330548574774022961775283367058879321979194532478509541660984238228955514991619143291906454866540649473840742498681001969087249751630228102989348790799820897780771465481260819666914747507692154229175192546982724981283773646763731807106814462028336590149697282171776691005824848087326747602137424566721859905395110612458742750656639181621810536290633617513272458517891662657501634119974957717373888492445566260702461918781883932833885362645069510159153932020474406175375627932386844976950363608738977889124376586737523155738158272240753043884287828367212783981236370774456904803113129483496786524716278936767304704558825684034190590446085539153044604107790234302390113786054317655321165891534768317470819605695301848358070859988691001052924449791625694290897563535778644811143167312731618832349497489045064946277811376301342325107289746874081719213235283014232581613799912975677208867057845492519694494691122228885169116155328027312057720559880151810099069326794509456744233410922083580484860699170575862225320420284600081139075971377874053292625044964233237378261911584977274551133421810428789687722378622050174265463707960292167089245061021834534750686674800882371246143081748530004459706632728764847128188893542179584209181587906648527979955081571172740828354801250032874294718379000459499305932478715469172884509660658416948326177277931651914375688825169389377583985576612393508948590551624691425938759520860420102063176522667355517009090237824060998751020042634894369316455416529415692806122519340604130974857793110985224443051005502049424244132741807630472086253464217874663224306960281607927523187933858093760360988103112195429615144206229649815910907451574486706365807538987840202127394714379359484731698681086557442611220570007462716667960559960751080076901510687459929556930331003291263737350608927064933708918457757434581004653921646716164792138609739634777944167622122414055136459228846667366964147624084034891853497582131059926956305097316004950359721370543603425775838748202538388974760054421953439885760929598622124594723216474176046527647752297043299288275298903543046842539443940818999035456802946030039116362964998163328293961346532897554130630476068061785438064512299953006986770782404369784753057613878485919709488196918178473398532632675338048791078640962403229545849961617089791782243201973350579953147351287296758755660061155356322765712982458922025032756082718522264729910217460598342740130420678305075354586022720138100961075348505717728241541425709438866461284849019081332042141209990362859830974579459261603034162246017877735775020916627149260996575158548946672858831752874734223412622599569679779781677524030790551769390998416164459611414706934571586794962546815704089683569826571367976971318655859227447354822070750379360964958528827497229321006170020886774958970805677676235155577554622446669087180252900225801517220365503377111534060160956277882077215144401352515631268395008065853839798352637736033773916602388994104387264805963574436593483916264685494208600976297200945817756259667716853066901023442775713228603603275933480757840068105066531100490372793882729973082900386977832447164422017375121725357480242504396104034503803900676659943172040747798153220708441614536493786246417148144407737639278418869869439679242059721919785648503401841891911325833734514027813522248510922907171498392141053818673565158543144681431064781642702179704829788552099356616341011056195892714287404041766458924136273283550849593604311839362878027303868108894379666401225967995968353619392796096542074992446735544486212288331052914730150457676865019720330574171630065431289732542539277615154610662134108652691899827123423151868226959480590246055940191127382589015697216966106003981316672595611126488325713026886828536493488203105491295928801381150923426202084564748172282200125685587950302181713112733162961374098883245338713054553860625586927910501155175852886402937518092202659681820699045860751053991583042223899465877575908891068804833121033940161905514974111522969424617960655980134970614060174258827151987939012232724032071513829916738304397757777902993656074112154294243678031483216989164598172423645026917175080331567727328001431520540588395502033464412631679135849569472898684398769403941484675522151011168174181227982191353376708066897821552030112020304711210994088109325919611633207686030736626673432538991107929692596217432555604038698538664108074012605611932147068178609372222916044987492822841163208206707912874865659179737070697314516663339490667919933888813081756975849166144405696808234597384166442357699778868748436342708958136196850745583326899932583394015690274543261069856575861116130236003905004461094549578927520978338364384175185786238317465160800716198262786661230660768303646664145634294745948453900317254809072459889123445229653641913193851145829507971034535786588456742243582115509903502322927965615338385251262887670991483491015057764257984485011515960878854578016473865813590052570657496392940958874323593489412448041428669585011565217758069482734096320957473261808867560966838547160272439503963625351927440074544134536362398908360688161702831511705345286351416213696324428744513004393762093759887706066066512235204100484897302050864554476077945673659892306434378355403402397713077451152954765960667319787249793922342104021944156636040321901343727987536069685863432878936312268270378032779217259655017059706560222095410998598281362590510032368552454340007257105917229387723221727201304132148151117708483983945686754563049848775955176649403202989134825399042723028232642898635267040943865607403305369525994058875158590759642429630583792080089421151613924295760008363673384433862815308576855543616070767322805356042558514664113742499137644459796224037850358010072098655120052938194685468475095202464653859877611397803061017144427907837364356987570937420465315653515369006402786546919350810824940672523393533584036285651207860056438534950926935215124155399974268488137393830114457405545952620012245768730822808565385204651991882406519722655363032060884647141491829550877555072794752965964491245099238841078478647800362014774791102959520684645010370693407511635986174394825813338369802590808053757914506502615154934953952995973556360824055889024596514216146640747491904964162655805030390942972153388318934985267205232867019563559467592833689880814794879450242834802534276407666240696123160352237295976962088369030658216535559761318365036508501745676136519372450447671671727361638897264211077885604492205719210240419450991913383709597114213989950562423664657751934427723267906799044810960870809156427922460549988962700459541954957007611104255229528892236471477022424963871391120060816389304406957392139599458521094891099534066834794944144569134753811418872190300731904652780125799898804140000315632266893950550491755097535638257902256239667883067503209898620747713986594476789900576083878695241803072313119794687117945576314970286213587765637170323943882040853067152770841394878766145726652274998484658387441685882646034759025224467135503032065735190378365305900849183084236567683084435459302976525563451052251038969233417461247198699629099796950807687516364733539489163382876462674687500499537455996716042749124760305061071197891458913794528207964378149353894678645842613333542868710667263487386703848647734158203175533562284470420173832799231827618555510332605713771840492316114915163499058197145409181651135718666816074485999246893323984920395750708768562217524830839295010094193778487427898169857774715870774631223727259323114164452611883266202084964797219368680969497366215149581706508351200450675863605304397627326569270372046043337227026682995807228226563901235245119559628896437971343202134320179391565314134549622751012372701611817209272037158590220558568533786104537074225642575502312622064118409950794054176936440356092408779143257836451567719840657121062450885954450763760782630370784233242844684439784956119541408361611676379243409608908093935288227009963755945606810969573304348079491395417238233138455853014292651166774495502010415568363738811397275284431770520389989913375977423637011505738024024063336067981403505568810736986972275095313979063390762617677403362989732369941792312534487449816371746051789494016722737780065556534189716834401566424456433191123982473578188475307657501761803749470735571102820811861617147801100717413809824072056436181947893265055238713367465155755146081454920124873418417916624437069184078843958389101307375497186140984755101851911762245281045622478510692326668994018786290643156173542961114527301660586762385234866740005721627166059798798199536972988865557793592766414408451382968755937661668841265005746898603667829285478365994615676884110548681043319249466321844681804814001067726300576192211530287367814651954250139388556878686677666329145860751921028688743191488270582021365861113549079457633432501856298157570215552859614427619586233156541679646031684016517327809471766499931194249762287080258652157182273647927240382695320886953502034173010829588432550217912177846308952074084455150411085320768866517409579818434204972922595772463942210537579350736068861278264545755507489472917619615618511912572027199108568872046927352675844077994731753516121274847603142341342906496336597401768991219905285727945107212488567574230848457982124573902387335932830207719062580878823502807327433176319180992281393366429847163399527375978930276126034260891252273924778534121533053044673987136509990510410116906358925937517885942708659152023348170887624945249479586327849237523197541727657599958622882445092586640590609059027605564751885806911130962490295928473982384342623993979269870316058229731355395955872810855208549610211011688738156711690380914896176373981504071844511951570487236540894673124815136849734555551843475482234630054686023260662760910908799348834740088512706473788859582347767618720182873913026873935385218719233442190577228172876328847291560371146472317306969523219542296190116685075932465599183201930168459351321022054373720521430270322963173684657080095904542709939597344515012652778055367388385568600457400182347497515586710161195660654232640527308413414456588897614119752219222317096056816730460941206792324442848171583275190603110670929721850748703579753618968829294626519659407952597376527418023640600775305130158454975936407104401813629282093109925155036965918148673402634625137339105591114445736406671916735633093416645702383811434366051872279808889307480283519258545965549566439030766091913038015152089153344623047456766018589173019363582524940925846734871006839570014508157169789730069097814387713729783961722812795984323408042342887657579667971139572599460585877689917564866945537097088630102641694873442683901815835920445098812480785448685774058529736577686972790673663237376636242831065616576841494654512510771835936851729701298782071269673727447447044642037351309570189117771371759650932797552144156160134878777964311805807508187157464495124967077458256224701213151406564827943956130142996680700108226343567151639402027653028372749063598465381398815172299308085147875939522713913283706048896828378351065329736358539850462603762103640133703854198804073285322947594986064754860020073869635503173806688971960417601603330330478278751623475704436099224365433084593665870742763763315903996571473314317940938585279014630438855388138655490598525324295251060393494773776093754890147446211803559637189245754390163286949115608938839126409487105931661311327121874569793301799364916227606118841974509681076679156962467036066062052378895590140315362138665150404624745151386613054119869558738188173716852158816137171609363487570103332647437150688697528939024347269230899395908670113033481120757788434466303277707514328767067555951688909778794614568737172964888157322838993373570804633799875312463223090610955610787875039577642559419465458337681485815101973520752786445943047131484260305024378659718405890523405338413064644722428091074151095737147930878457567547540683090327662981431544768185347937803198691804395287374661205012016901457774107476000422502045059703371084032046272149260819052343151052261692406547430695353067118274150317824443009029952877122810124021592702747461890110888044302164482685846875783514718077650462199103629268793790051432832656971195400108175587769005645100676331939826580955178196466186418955279912985487944721193450760761623289516881871553552729804710394579997541239986683479956962596651598814206896964282164402669641570294641575968008639037917017917717303506746784850009205485022460572484937612810300619927341611182154764569800073585658491668817993585792991427082343693277460272524571724303593988498315107729996743919545354480553164075674881300247720600313722671448015979812234650121223230298360336119568127083241801659418791251137386780476714232115328516691566421480019908989947083764435427861409891277445606148031204642398357539857446253288820623342550714485772023854002467938248112142479531974682920387190008296906814257789152223691705286230703096740643425717283310408022040729991538779701149305683808585688333790156862627847076552040228074562952337826970255371236139727577888631062676895323467690596925845933292422391940172802818135832524578796260405696847453613878228167236180297252378514322234237091231829048697498666961766727563229413589294709514717672702495742786167921426097736047406776235609907248397247712542191402943610491051579843293028146621869541990132158930575232711011077140996243854839810560331975769757798146541205464897855521487714850428050349710835345300378928716502580082720121948151447359498143090395617882822549780978778855582480242684767077859624026610265867127291496555332043279447400500226119729186184254108423752847740171301675365428963665508234848483941935802730639130906133032977137704976530223354566243945313956650344216569674270179807737850386947883987524801173951616248224342730460400382089123375465394814603654533932322496420366622239909177603670537844706089676467741467564320175109804389211005031782649695480501141299146752434940201832427608949483589646210362973884386479128686933856948509960927428680341238042115050561598409325283445988445720922421301544860958211380836875734178268762145352133789626158926611836490480955361333832301271105529536825365558999556753030400950131979273374913366020990481729134919828914854637618461119040428319674528019892865257457089651430580010259915505205053212108893693680631778912904891765525820403748508180855136210700631291387205815820915456467685122542721612318252380927549657099987322133425167511159119464007953358468283570295330867623277482899790341269868820841487349233742398692156084880892934348889485003837589381973306791371269086592951442079733179656820139631112143357874034808760424827539793452203130630586051967012699037986191089264091775169333454081156954438531053491843591758411280875247381702356098900969259157212023134583026225866551935848615186001598385856688709784504113493736383538624528424127969399980871859425793104574418404172208002169440200226434952024462916129680131662613796734985619185699909885976031666035904858416741658577223006712535425452962561920423617650389844291395736247678132672424404407522936135890233634865743222630263477121997201558990688464024367407032937644673326703755866041447627516918551493177101358619959691632539665870082676404770399553357640064601909240135009385572794375761491587205028761062915511281861347820432617667070430314059008443107724413346879960511294120721072263962214805975174447627101802093581312287690156228253668412440597883688726173439601535524655012108444654715876276011618786959993904256921714269071740267344284789425759805502712945243928031343720806479566999157600108084342742299207752317528507442187764268917936381658245446074046541180549786908772570958612735728201231002661128619064919032380681101273570734658933647398040349509549838517410841145554428669924081206168566017012785609274437066880742267627503761051037233405493091518891891421220449009114771889447629248641777228687364031958998720643654563660142191431590417434059406986277407479214322265826687880929359056351822786791551285185216917429092143626780492855705532794641077705920336604133934823981324661983091786760885153859290127981443931971374144164953716377556739784553451717483512716077497680594546071805956432277059093843124158870798547005372598415392499719025345612363787971156985511005055000487116441756909449003229740961072455001739847413962289909068958673273312411384401570903708615531366984010279816106007368635490708783543416634013649000499293571044881677760841105207379318734732553837656962548402346325386499652081336089129602285952306520291430672198282593753773454050006758843034302017403909520281033397397378273021168380557407888200428553435815072092869102148311706368591989264753352128941686126906584094638422692560614099904181613985572417949338482180935669375184560443829276814865010582508184949799284080530332701230417123431476565457004918359060581574922511397186850274564803110997825596553577519310751335571939407959155898144566312389851461439052114885421797303444690884600286443830125018452611145165382210914474660046817635497042325286066701638582079847556828225911071366283025052251382338651643169535138428859943040593049238657464074541006615211261778359639471999035635449427489786140362678743200424455722709920100383252602452749893952427549935346686729525494590248547540208990173985178512617367064004582306406534381983720619015941292087066072709028733138634722346842995541185272749761616803070285836173275761571283941795364131399497333880421634903181175502536738982767853233644910454420419021016025269435576403382161030847905240662706652196156230011480457172633749214410718439979248194911650132340912702494943404510605635276887991677149770927143133965431477376900977374143533879331591865326571527555484693185840194225788000110382228593937995819842925307843100308285574793321181029841155877925637306764375909318781784064581689841706620907360189871411841781461354635031524193143075867215119978939392632638346542352451699218751381436815600118976188515387202549600274117182369184065860151482531900222697657915963281484217137655705807952278344973735432525236585622274343629616994859891952628617453406820914652243034776831379323849854318092677161274156052164417253872997939604318268668185718272594395390046690053992835759494651667016764773637509133102069778047717905920061805397297905048403487539631559917288168849142303862350159545673075376935941015495432604312032686932292482131456287576979273689537974462484383338390544569889215413521764191194721815538791675768784822071862576729743666018326184330574678862053900480201867846380144395436707175693468627536723775897080196708784824880331441223936777000760508636904662365855329000321062913513465394390405143456348957891990991157940716729900803232758558054050881101690459651523241519991381120698671597206355087253077333210261409162174443074403043698275152558852948917795396166302201862339902900514628821133924148483621090037008528319734087723710792976990849619926890309962242537570162489268976145895941297744675333359209013879044809128037841910531128852161307979381308942889299570380907223836280239835607127150088319843330617364030152556111690282874288436887230604361824186404123427729619885979867644243051626545072407573618526224593822235216660633981298170661443789433468723539682638231836621080124156740813362829521544742510717326564345230002215062753851272872875597322020596593365756008755123122614206879804271382033357294744951370270580870089463925408111267128401376646320437534606799936667844978890411006665714196220461467456914913244075815407551004426768448262577094960586892920985494831187682803207776553788473341969485084126907928417117410676074003871607579766160754135860970638497993174509664034967428319173226176196768268839692200047934513913809553921092532700979239489784201112162275804577129876221834146111924069183040512836722668121605087273507832137608465704950444821856701694103207038002891241863642827899236858051302095233945921039348335753981252159304385235287887598056839568539511190558790237745285394593639554712326444347399180328926580931803109814872174296688004337286144327900307158650058446568763329121678949157323370388705801193804098941482398210962742512142868561140161767899563785421859998753808951254218463314112471242780237281989539107624303983135972030682974674050550367871242682544695155367477440773100509191596507243538482060046230351595720334157712949911879079730168651014646682713075510996785091847582986899530085429741023936177843161564330677281112685954108951627159847631434790104647192186889021986129522893994185090419481102350100783544138243311573652950105576332983007496421388939231487978501731093466765025845850412457669598185901577779340779107809066414562859120447718534775410160069928201729158403863574096873041415034653088655894033379787577772389047235066424087892128231734995540671805559135139790659589823179049773683342758928336603643991203859708329698884835189647028128357424247138243308366501411491674075677862208972429665530150171898916943615245732579318636832616774040756319976803964559865138868836745027775752232654563387168972858718236724134693669300540962377355672849499798821185920431743021666985886964507109267798288270723633240961443521548540851995434546356143840983886516652679372790380800727817419529495559287377395767683616235029088662185367485197749134296839708963615985587416952174623168177874368189966709313999468809104563885428434005089514403208538900295209777494852751431747455093377167792717908689554834119039611104633488370272906252397466312161640106477861346024940466685932015794438909442890471321493449031588649339931790270497905743940357880571352233153936775031320213043678505596574679023420294743561190403051792362022791762131221841474490935673900343464688646234040427775605367837233660678584576608890957502891504474353470389621166818088137280952415419691883029590453111666468212479103681932644929323221257561343263269943701816435905601215921979541935959011443758164060370356075540603058870080760527797715674332024584339094489000083672444777739129212047491896808927005286256574772906908194031897821330387350493440786932347443868602377122887315624806777969936739863125378995781583119339734496168920054300163534607780225691881728887644540018147817959961758157409834644925555300189626803764243899785135885145421693859278251753288597979113042370100993441184086515742695857464611781377978252320431262555983045219336998880740040571834400063205903032879217117581795883323663337752349073571000237045091475197552884813804938915194026926779643591918205028447655265474033893529537165071583538340642659256473539665870337663308446686934870698848723365583660663542060478902660917316319154828673340513472347804398594209600634282034046380982135406626096497340213940337710270313033734764976339022817363689622059432221507116765851298912601218947015432769622425791706400066151636346427360495883371436938347644537895054107344856543024804618915050708841537659148890374815697573736295273130354087960366056652324121952092295453705900270564738047877352085874719764960227752324847094321741451323203983581092879505835288006861100483964980207400266383418623161867732681913853082784610112054022473954511377217011344140507647440861820477092848752408906114357236949446487180593192972098953751000364706256535105109973143011878347810981527203313719197235376997388356172617458262853722847996168063113515020324577870077600946381540315694184331911670476790918316990041548166784037366463754199838132909135386163817429247456079195437447661082175075617632783580051509720878320887269906478958331583134515901702562466940451516723564961058596328704856856710930439627343109820835967895687156916780958068314490617699724511390054794686428913764899941647170188706662526629354250176641054004279678138032991510219510033833175027695492000039086677608289557132641071750827189039849253660515588392890739357243452371641156860745103764084004278581273864911858037161611557826463988062598479308178723614406920956459666609718392170485612308204297124233395721619120414512581637715280307947054287769800178223093272000380691711691196757670240676888725254367959093039393669523765024449783657281085549256472536886614670569462304331741488929362853716614925471551260106494925040661149206313679164886114572060287435995028974645450358243853547644090046376197535132032441472244719076719037691397682858582039382808484255086227482243801888256438971698990907358306315827688822032136823562927519173908428866590420157447853014904346072304282800707804914911448049142342738212859773744159123903499090832832035930367196400447824289949937195044172868294410699193168058713890351961817959906058097978756760090945113190534275635030078313498243459886347365808301273402244111742093332294520574880465897658417475707231866597080873505653422389496210322442422866058476992657629534762588177328211203160089672345972698946881115859989651427978380791432646395274078435122415125800134818976307692403663613020808601259490257098313014248257102442127181969166396480573796909931448094782126816746921327280782834376026360900468497083377141774190857656401005126332982349844662285578649120865000421611108609372777062447772963290732110134546930544106133467627399860127057465243115487251024027951114834326297490651261376850291215201509228218017687070142433060562829072528899335855996683454469545922918464500521465206446174984272250931203899042081184072774259343034550949515760609871486530089802787083829473913934881965852688627972196942605244985581882277321747790079593545536058594718649073427950781989609334540099571730597569193144507045133711284994001210954403427123744945625432416769488417708348285463794807300997421993291981610047214077098647429840574175709208092413677641153566432236295054326746626777722252415068898020243622666163472266840183852451023245879847966543736547080207321874335693630192935666025266208516226516037301749513568914677823574262944601256286986966408581167950869762003512279726709066005837887424278371933410471249464285766890954420562990119405894747133423174206760046751496887148405663642138859061737434356041280004696842442367305919386852371323056799211105405701466982057547135206246703681848324295445787028206384878384157661458792718240612994489630934731520865540955288167990583114959282422628406288668224161824894037189734041419965783059572638532953755167288683646396695890822776603265324923369625628492356808931055376658309739550678202015121426204411675717159099061901389323311412696708481427317792954343278381510649002704536447398958260781064278837763100863044112073596777939871461922779336341899167591125365522033704974286283944643737793521311267085255304716219837966757907172588925915287819429799726066347066672747593625117178047650201354581520452672163831842676370507082341680969604170723744102342257769213512821962546870184577801131545406006122968044094747177081282642400769789807598936873129582241822254952608151121282947650505332354339004725862914590243490406794845950024878020482394678160055199930056012036364301927262137511930755007515709057989405892104998342465543354618621747965110268029517592389052860679477346850414930034016493220965745177527783043805800024612567621009830133391776716675417036588332090731174097929066532455046552296264980997312319959226846910854794984468291261088041456642970761968922269481606326697673387378796815275482449222987065851251467206722876284712533140576439307165728364288311216965830699060903278641069901075060500314926854581125936981242510851958356400351228319321923422049716601416208083554134594425713796117593706016066717755278138158890660819600626997026218757606912458294512777494999334790546654456043097292332722595999958062325996533207685627485985922048921730059979248106611431537306645733123463185357636113200885923261066226033824918739243460678270641787159835634558019629461265632225350234465583819032449732327474923486742765520007065654255553744372189492299018782572163499043374848670519024064568184861881211776954572308186055913101686078068028163646082923344922859157897331576639389152906110208194710620276817286386502137450174000272365773975841696748819482843300004595154787912166306590544574121656736414997766609666993427972291300304601194400687356469574951625029035183504703647464934884595232381014139792149381685464193910361795857569850309229028549390768466664646540170586309113589152928814655585076278659097712762874014919522428392911864797962165402173566774050233828845935344812227310721237877546873762994277428170088929174632922652570205115885143496191367780302567343847095758733772038423963510263765822683048966281878934953768814527060973624737767769484289992409798138778156334540221939989823242590861712527728016165179173271104905869432684345877606793202545897005460524907094397991323874687461008183328858560589736248225334128948643286330311750785308587059736591851931766013745022459428899616857993836200495236898499652368194962136271235375931879281381358139874643232959012575967040075540854067002456828313367492495311600077428447374917977895818112658538951532282555215231006104249468722175698349986588036938409549291133218158303510238020951227224265023980479810664396571264053101411112994051358858927634494982957900520623449576232819659332730786287191313789405564718855678639519031473155096736645568716379306299570534242647762150083687681041498498482987955847302601416185783370251876769160037580024431261428259785664310456107761868695819121754394841907920914744186498415613102792245534344592001301263536708881155651054680642397928079226825987115228694894891355523516775126844824945169024882526602901340357419283423068571179499809733572305631008277639470428619299277637900609904212889361486295347347829094551667073753369320082817563833000005363365015291105330697098021527658433131557193365676254104600953200255474268250871437011651079448507319111286978987885159566912935742851732130278516741210247690895858304089908539888899666333173288225948089246008973293457170250341741196952748908699538727542565657317327750481834689875597782798426132706989146143160616705283056072134651405214570650983621443176856645657600068214666281560400739365001160900657794608270007631787686703872237398204348890506271259067136443157290551966780780523279775964674679004124651165814034425104715307208275890531591133850043643316917302887952228516849528522097291081717255846113817313456966190544902772368561467991328712112427903722117278181616378168502384758397293949825265752683825664934757924487121253574839701457845705619739904943340918688786479653448282362275737786650502485896343526368078198980133234129992392334874069455099075262419596459921518367792516918359461681434822465455340342936229501938989438364681033435708518460533418631829418313516463568341972823125953880606012152550929198471053028804698143419973686635360242227447652887358723956116388519106216974634795395120897307068051293994951923237972277419728118948660592575219763698836426295578271046953687383505050725593232167082730200209938984369034474690112505656205941355490281440762651407201252352639391866755052123198961380248995119829389208984932024253487720701855961827391368425781333187751762971656487780556254410896358912769908968523758525364698581855841960438370579506157826631020957909800386068881465813657560460492445323273451139833830836349762792067210208114412095040131055161501289329236391394208170996244925885460001951351752344374756304139807266753106028166725021601363376715761027985039328892275047338182537454872786188772973815283127424465515231600650851254440665193614131425474292291180487373561512265360046235605393319067902958181398592945811166499987365219728117334246513877588672538933360990504009037167436666452085088242075140203213922632682137617132806813732208918571684316664050622031315973645572654526917574977094976154503700902177702940527254688715373797275367494664861261639066243466093445082192593543715653978603276923107548734873905469159455717941277029069281378219078989242546032581116586947300426327454221922800166035919114180980250187681471015845297492479428034708622840075206184842231156440215300792640545764493028125116897284800223558494418088316075834773283518594216403679357176373966711789692059838474476522802642854881460000669920809967382784378026582509106462799830583605998409827194335232204774120202023866622707297665639844716607561625659663487698772254246293792353341520101170173861542268558994759647233581077590084642692041398803370163440367212445440599306530070905611290621448419475570129716235613113460523717465697333741056964139934459889841786339895972520416187321606696876014729471431021241552929065652906709637005532456581979177782851210710325294969043218037105302718693446796265150663629994862540379106222670213573241474672153910139240701054149397407526662239928266404540971720867297504078561397486286953014641010944912599669271227458775884432258716831234891411874575571323586523148489558386878712352940946317364153949338086094625959948961461307941468992242938158997330891782448292837125473852994982288860456186146667295804340150117388717052062782205158448538814902671993007908158024586474278331044582619612786769086702027765597431148392425149835912004714624990289647996433498351617965818568290747772483505123489059183230314049552278216375385550587701031049395114488597192857048182029946007262202505632963763811165560609235138378426660443068294635722293476277882306327054035587696844608609494897776783259404817289842043067182362261517599158911514947366160495582106728519474986544053568530656419183223831035219968731704934672140723046626179633718837455557003072284215025778739826042185156848441981882032156075197700574314318935743990149697098005772712381966432327661439402627306934460285973069140329091274391208491812296547714284413120510945670522836565661344482206633232381959499945378817047064068146747686305553547481233846478920929139580112229098643670256632113634832845784087184914285761198577451990150216024818704261962577040857107013140027818092671322578162338347942430504307301786955202504979807481990322794741612265556029909905362652175725747034173630111370710694659294278459583191510567161831811370713636616157914772269584829861731171970060901458157758415651583538646873517290050904055545432861124287155209571085788446426205553364850909333732667012986605160627304856021882514120644855287968577295140635420798867530074467592598377901386035977354636231774371601464521311347176650883496208547028494229211380643312586625742655484526926011287320361582358186880981690830240375561575683552592278311272069076216319259703692378221607015674365981676265404467785064803352291184935076682955146969948311498981011997233899968459210659527120139607173111234606838557428924882233783535402243059353724619837622966629983511036680768256297122124504948172948288826711682630325873798191341299416244704242569992437620145794137747670162848260292268508618115407299431002914299662797727478381377593625533356141236393911720312569592065016806854525187352852056886498781403396484975875948621801527254832006987462710737874243061265045315847626802134368940427606200620760048391315686136279710678611711144031181852893203159609676455163978334030240768821807479744685090253618563242284065801199061287071357414667082106002871137867431789087817808652753614658682941797083870880533919942147559616770974320517383206735703896402429067338910270162272019642789567176547677842128170747476221991126050610087710663576415764779263262204021228889989410133232981307928947418401072768882594862264543605994866241729579833683726960750220611410639090751564916030577339292850672494512936657411825284506198464302815876046146264744913593981991634194509075895656650561757936320846527303285218257553622960958793442358439468727917266759808483085244424078302137591571603390372895384643969444785261530152978848741221838361429815539882491878570611719376349684802899347005588509955958125580632004977664238867221482982587484655146336735414483061832822733666982036709591095131108699216035281021878928063818867206321113409296891042474551044731545876977091178555131801779477428164402798710435422511717309762303687642848505425519219384290708563706904412604730963355771575297598816585140754561531658444392414856336769778648155288851804100280151396175715181234970966424691495424760874320825582169422617159295118218320497978056852829708981040238665715312767134891449368929521238255017714303815082929055070961093937476454200378461999320077720483193202884193641184524717415724706898594906398786681212242322624223848701704433147628233466272492912516018362501753800155390221042833343875955711872539689234766430150318755972784624161409347295021927421009946755036982304044498180709540479694945494482940377510963058949039415528349048344891671772116440123481540190588915589631394980629563951186521281674801595355904698174005393921827080954494409814546619433921028752675166556470404835859021021184981675031283372273998977812353466304363639322246284601988671754145246899608373913947241480173207633300463276188820516446096159611036896021039115424027064419897872146976715023297610442159960642873378663602351067791006254394219387914672500445028613241822239743651642195314304745831132986455526814389398176597240979709315754276611441941230279071349854844225748539666416234281346274485956234197683978910438834474401497961170831648088835458861353205830129613913141875962651558252280865924422057843913171312928609543478325065464447868694828276152410309300282598222464733292515829499007887067051115463702904293873752972675410058574515157964327375988842873376072731266558771569849256080187250882252328872874657207559487829672179967979084084221543586794138387082870927893650227939779714418791939305245432795750956993896894167257897099864712564595798621770648140786012407272066351471142753442759388051686784242433666004582080475194405619789576730701278452022508198199287978723576294975701910381052243716063994397588260704507552558443884560065811910501055461002325859349366686138478634660196955105008967509535975837956613649127305608831970082068155673001765694468538814535339086333576660545880123159098031085698891431956303786403244633287964567765678931380642003434382714142217397749968055275680788452449287429554100347938554583016331043699796308469767493280299598296073453979099911733631675768576618503424882126316888485914180851590884447309052031128498121806913744200743319266033249043528607500575229416574375769215169239469389970593353684808703660714775128780120209326988992232026590588903966346225642849724202864540247639288588313841501727545162189173802081025240299694943481052641758189570982562688789074208864456055920688999943673892181919449546707277761989468730322705510995751097642267032462923051917341244493269524800492371150117640828643337727536416280711909024983259829753893041408232716104878102853771267734515895699972582487290717895159369189658036389015233269717751074193284645685282672000383685003745402237315421986974169660300700659399148541758169946209056188946416349395694548734882492135901596463564814946054308363133506701593487239199611101045572385358882588304961110519641077181366336789167970952180031942905421645151707835325318627371575392814530093665064938451624228283059217115636218545717598460967733361592334878226354249149602119757228948466282047113955719593291336793488739897786593716053954497502787991686564200842220847533092850251781645132103480270460259166029186990758984568523021622107638665792151811248375073667241505770004210628985155079805513904103941730885273849214871124588823718762500338797186954198032638611778258352524314743372981699179011432439278970051432389317728642915768116965565469051825501656021599259324291758541704105806657025390285806886831109844354728250378317013997229874887334955074324250960183878475294742126300029329043370292676070680020841209749626251892580954473335028325053426805060801653160616755997534837788048348419626904720586749497885420046665424067354490093937965449735504060884371063372528235023997737931245408754532543057227388187416431491987100360497838158044115602283389583839543151481933537951672589518416243940928952071225139493185328515170258423751574066932315426087392371743818156773581733986519640444801105020688278960388188157361948748226272009238904104524962886098802910971344147059712239245294526682265209907190734180427820428429207460096256649152653115308077439031521508115179622228130834155723200650457663495090877890750466892738131699824041407366133907781049260600185534658616669334889372176772091185055907346792659445681964383107881747642136913533689989267887598406487650049195821461732887407252877344294645302191923403166656627481149693331086877217914184878252072582795803771994134889108379957794167537520676767125008091014314421709724721886259682518650974137295735524413092929965103338103551286554000837606902571163013855288976320492820002774259544735315925811239424709069157315396675856290161398556631056907141753770949800154892949650809884741345531571053389029950498571826881878999260415040195429923873908553019223469269116930244785871333906894702116519768237888283906029860627836739791836643945541146978274585845950376914595436575632460790749305420329689728719134071863659534660290498901183415670433221957430063585569344032622861510008361207022932613748666244299414509036439341332340917544144848649355841420096125831115703295717075611289358941630628587687684619502160030939616871947685319942046214261004165521687885283783606348681067017929644866302874267372842902797968684132458984255417216619437272978068925051910876742595307732484758682268881244798547234801695498390777140086848216051398348493441235051276928510108044300063543909899744069019852536466150365373982710896114473632914705880133611210330738323516593635204716570842180710553132917220246223957457778828602446481118318537638050271695566237586720260721011242973512147701995797499081450385756586711664065447803400603768788074577946192413966512933041320331719012464821570375965883220286262055628346092192839175532339463823259124029610924865681472847851394531536194465203511453056939885964546889178224316009507674155823877636914932428696575083017312271511993551869462835778334871643770846409391044514707769027547122866823889642145515429807103043748981612869294964599036518033749763207645117257654090791234582016775923244549673075306731007336378801096781756406312310152770459691047755460160120173786073087644104292917516610972784660246038925875809900029066333884461201192442998535243256115054275693151874230143311717864320938154070987465951525554154538777160472492518898650424379306541860796759058794894325684927043628129838740794465033568677892901016423551121529691739871878898479729394055112512848668171011675619431202675892740163437736445530992895875626254189492149924793006467950913344996990975663864085131046347637022707553715272376299399038182717209081491384507119068542512270539123947753015819724088693940695084730911475879244717541238931774578678414794168909261029133427855992165965284310997669485384675002889395356901277090775278083205218580670522333917585931248204793193774531602519868289867148026974781646873084721339374435297514261576333777915776705207803479742320736416630696124115759056883007804330275592860978507616216853318359022883305491869733271341220368347010454901550401845859990924322859533433618599558672544736500541188054644878535719103827502975957675756824143906294314629455807609808069309185158825573488668840804981291012299150381954005520276469936880486731856949065562300655569406598835510578896634872986372375477069931447748178426891853708540813371429099649302139199295663964673926100661453777977673542785873468429593621403438560462427257601748491040980165106455593267074139387023090991934211333341271904066261270689397299646055135648784671536078772911957098011079563785538134730220950712978045082220975166351079243574258150775033859895499273157541528707876071480671576828714801012007859149966772510930657685881958969657803735519599078627806467316924373058753255505704015603791119844981692850857950723215603408748801306830794005914323323051306794739241970923365420954797365932933360754893494768885809668864216920725810560930090881473640000276556914590384659050175896885727454271792523042865997213770670320609392173857450375217530863732278173633218522437654478049535939696664494025156657381517492310024261014426651602931180458400453230573849691833639091191774161950919072187678736001743634638266427025053989110307413471776302026041166154149795695806914601012314779220235134092340120031026511603401104411428196949692106259522789103082138684270568487485784199519480667878767578887790383164924807761657827509394171006110806862558944083313647724450849383204448436163736764361111517123845152176931058202648504369756510639594986883418057579554598053668181824787842362311869493796464399667332092858911042693268309089415172508412305292645311291722808536922788302417562797033779998996132557907923166994221444300663415166293314002776687280130444425647098858202840733338666976742077533480949037928685109114853331387664569246089749816803189936385659389098300265570180303325405350010417225413648148860383231173560835642502784721425849772675947667558139223209881640779180946652340479014470965086611564302853827518070057491278709679859189002125223549973146630110245552946657066080843173645974092629900842227635138806384636237644951116955749762505180754871478896834916462751768038824348319684580020771222511841329653834961285384856286606885628916436586071914223550413000253590548245027965660874468884458497052247897093414318559982484663811592495143857967398192410469617380359173198531060003202827648123614852024089262068667667087075863798076769400152788128325649001916909522688576718926916945586322230482044778071539976337116758935321257787137488726315483040382690678356510602142011086351548270041749546097038741899024586215635935138440196471743314364338632291714022627832208251703126576855434838259101754214348627168210879012681199544364855763602996441841301441583069782921999721349893536463138679269248945621937174847289940165123281184768666754675550165612975955502726878347763658761440731014923414802060687728505143501403801122766826841767001935479263519625865837145200677945616818358997347009929730049522660829721875673424321692149352890113583780152835679898523978020414919322270093026464206111668163226411115085171377295180680196195056113735607075769177118823887820555749582731449907994176737489649253324714856981910550946861269923415602756299157338396449286773794489703802477090552689251080552508932270622128508277054496734584166981990477240968629896703018400238330795848867608435921171647991709522286045153967501796508662731798313251074726463871936441268090861389387160297770583528438325116900488646471372383660575940312303200898848150389516030759757434225605295227203777724166658285637840453742793593423505780116884496618148248397106217179951733127841639003891087419801777045711487976595344394574702324304907810148267791486603265784143011764518624153461907169600182120106822430148035675881875935224840619332007049744041577402374524310567645662782386693230857903216697084619792902266838689381475811660931494132890877930705937220524355907898064880131107151997527640859825520682274814194409841112382841113919220422970282246962740952228005187789223630670669269596723525345957661462485098061569463535831281145432606461239931801372799620424764935914911743770076989284155382442411064746604585193050815641855984036958115105486233875511517501540522447811739875303400359507987674560036374567356482200222153334182231802570164621265115113913848389309156987701454459828024948058624893470538993003773011126882364195437510352486880223312627197820357678504601284767638244123582446690467486963411541665751693595175126345475931282172185912703549186070068180944104580823167932933929066251815049960552625382395765224538345703132782751232424078387214706782302774306785446304559350607920928481593514301206734549840110917623178539558686484441976438049457386782829702945940054405475884109914648429028826600362901822051486828204153046699935584259597084504288127946613135084804163919281926233879061998778224005583504200063265674911028536867367984116148274496904884487063664972277181582439481909210645070628829464050911060334046259906361755139798433061189463981083963719331533243558769031949037656715870959499032542528705345470642867481777569742029964894179769580717164989972457243514349983053190115656324246652586578403172015721870962346519472841593041928159143528925880623081940085897345763728759979277507204869629948219864610921043079985097852286555520679868741449709509646571414130273153946283077238086310571118973875507247177006966696237071698436557769349061036832665359446464306517714542736096640552112781981502387163665785902567228493493438221349768154275757120952483152529335140252294543828145154416594993286269561246344411915856535679536855029893104248884018491142175182559075014655564942282270502196860040778209601853138833628145701405252905577337960627848325782707913265329405077279148626423445835518638027496403303624239367725405523788404470755773759585969383242737404542982189471192700319113746505325446438645641192699275173901217300219077743634964407419209680795016536371365928733143050670242938686286482504503173419371974333868546030720336181915314174960761077890027843158301238949089393376600462362515652235135087272996991305540398715664432666937689089880362511117211383888834000659707052402302290476009783229646761663251869007218204733673847039231195820919086410468666574378589064782010882125846269137610545175123933637419163074505258580273195105373455993964702105804788401602880728189965862888477434353644648947427082213470834255470795177076863551290167213824244774493543005715395071671826556414638812601712916302393768894605275155806051914151938831123446185738780295577853532843390400415440153414234416937326440795108721116351290710811199009848943943307253921714489904050506683325915224967194069221664479051588647697285386195600684840504182998349536248339833599189585947422277169963481378116367046322749543578747461072218881993013147652755099866495374480427979233035719261994244279674795136194812457410113081354834099234694415549191707835985048893393483959686543929807700229240822588730050327439339050849301217944459540048317922078064291561104487184057165831868926115743907199437768785355426261612710989033348020521710565046005465798638357934396129198662414044562506561855940649830398670527165545573872987961227089371744852785732846857932903132251572196926645419465623917471123442714975996114631604411648784613937292083139299620717807547072624817165772628534783976944813038088801035200897240058151093657894984507342419602957895083655958369570450874331779648368263720932881003001269898993682950290249105758740180991728162333016841262510647886911262562851201622433720707466330310974166069621354463186616000657823178590336035841244423608760225622128338247883092889405366776435337607667102781438606107071570798549575882026426942464237903671968343410477944660673227187003249935230674782305544210944393287001367548852739373275943878641062862273332389719020158549542652386572346927458505383394187055571601292922833208937079072857791089546331020887907997340557413531624320501743423002433992062514585903501491773883268801271244750928500507519928005036424976272587280621696654216512285830589968689067455610842267923260111125709369326524741123306696131321088503382842109330661365566440036317576433482862976908349282284118329896363932738269454953828370266706954175568941252066490666267405718935790392576216187687750696416975251847332310826336058880425123195868334152551544883245748681247678757957135878932865226876525335470842467490234359849633224026408313014616250968298426556658029448186971911339294479625174568429189909714708897276613216307235625894996044504903980513788676253549868465572563592197685141972634607172859127513298865793400259274238895338201284828411512207247651604562538421696645803952997416671303301657966175665308391035108049236107310069458982050099210908085609739011006220663411466369660409437895153771126855974730308724386756308307355524978031505130996588267860898976431549093805634007578455052927510584430237099065612825540529447812601232467145739324015833146853459742228315508236625700002934648573058387711450417727331900134854072632744572736008428233024185355913287646961550260947850139002076011196037067582948705526830539603931980456114603213477152172799266122442758073456553342754177535331911186275089697680867800059361853551378339268643230157265894064093899907055394640279432284526060228665926819490906728605563707245245416714409444765696590346942996758806076041126350120873528242047902919533708165713249836345666527793835028809586966732367673125710051169250413160600490611325458996099360798089506140234516237931988182441862661282122713979179008935396130489562591272104306228023919753220261305283134432907386907391050921269315069013507146525659945547062707732670261707074743163557730393256536588058718119228904493501114216707664322201011235984263110579500071687847539254639293774977414065136387958061077363374421259765294290506278037447277565935590321734602018403131400063827296780763718942577504852573778516528159145815294269892262569091371311803943414423315542460639174278143981050173016979383617508014147973586606258256980524180792417172363953686509162662549940536699267774365545453590888251330448523556232994028548441614264965396123269324344338976740014582830529563896168786378112685603787264814693291749062304849899087282397988841448152579560151486154601650629903967955341326798638799415850792392105681462556168145343864407744936408980432853838446791116377739209505943874228096410552943932169020438233859065213838879679883916322659294396200423450347035177804203447383648068355444854338511883898038064594492076376937756731806825738163498124670718990300319821124763402295525104735314891497100512482889644268656941256290894239208979829415219643974671122064614121038536233073048182674984278416028020015668608706007993242355991562126619890883261109435155944011226313200398576858607394963237607423334272264614461433430879040054574331874213837947445625155427194558226444219065884535560562406129001716749089409525118855505222413027899630124362016380995726872091638743418609096865748807062017953741163112976906183407218123272737305813079711647284709101359385378955356231527912464973840985899867213708737468216205538183827564589710791365177739030365864305101768027296419699652373616357704733840238762361391615609217640493389861151442012837729017031563692247213237023054064150442559548870976235885033087208180932945697877108972220228374483848106551210359709256718259307953084062913092086098536576937160198399131196223281584421962404561599644443795426839368933330024060483135594259385779952550317213198956233450014065638583312822647008001423897895345020389857436372223018740183333479089671767035399945462559179874546154703371737726165345240930462722745075568774209952807902570031923230292495673734633430967036723358677607304819121855026990469925366437173370592244040632603422901426330798550847986422146853560733926325449258902602201087270237716237745531938249852829947557991067043473300080591371427730821525083115097787940197639109637757555457806239928381899810372307563954799526185871370936337217522517470816512503725049161594262418034710298662785479432127189564209680554059715790280536205187668326671963186517500629019104713313608166344923711774776431922094131555235263043414218337828703776167898152950093253505378206301265569927912522661403926291631230662269816556871361954878494655698906463451466124048694365244403486757002915203550886804229667181836044129053003194794306687274830456197387692383852984925157718277379483841840101376709551948030288901650529140950641100904365178739546676924377680433392622908119682246858436222037176851823596188300074581420053379009108111466766591763850950230717559802928245758322997834063780463708340571359772868389573303739758654873430105380916617677263599437231904685233862646171049504594611930394108998505443699939824164034883244718627539644570410856242054440953043479151662622460787227168980645238359357260738981221400970616761434726882949911846947763096397157304132257575932645016275657183640836125207958269474487515337216138001359023818260657090436733221049157112744593692411018532408760338890482984352694812524131424646264185052225288058594831705305356047422350093672785447377110052536489796728460925215698219786564016663964533940049435761137744764524328346456705094369858225054330540200745600549082553677851471234963730101876455748207396443314212995184396928416244587915364361869085123849794726366587141148722678352413023898904257551040130441610937922084841049542114127798963789851809170796950774683318293067796927531227629003249175319862799299721963130644283542925710825244421712613505097875987546673700857873011727850459330111922021075153965209159381376015739512271884802872326916896951824398696352935667824673431626731481414235156288237571271550413513780419329968773493500180665070643129174295232357683986962152114012303602255068673740715436293948406281891017214775137304828936127636854139275705458651192574078503113800232082999819367929711318924283914224805856670673157071420140076906355879989129465586122133943399200515452874619006850167201751271782589363355858002827918590309351516314855010241886214031885097493161414248948427371977006792109261467336643517502488395866179526982220016740731235377603629757969988984446697414883124562657975199947721957812673942154588796263221637999938069840302084274639927854776740167727193338543089541162962141059162254139527751129645824005703509871463384834676232702892248449822087015604802543612964059833870542360630070164782142527831220259195180387121960903587070251033593954644844971321230020067408838195109886178738647274655013921820320277525739851688423123839618500468065975183377258112031923523991878020202263282995397420208705082838614188029597771276439735689997174944027177448405267623502878849260095698330340751845385311175091177819856723351314805137832880248139913358044510884717020150098174514306078155760076892918804931700373499932175648166009940232475203711142844151870568913327303311071292872551538922190046125403547548218866285973096833385908026513771243920689774537007860975152966767411505570132520091981098257047375018755182958453419238605754782212275674765786486798061921854621671327459112788886891009353361513344406253735267871243090682932529492842782151559719986352485553887347426944448063924084683318434719548883153711744153696074886895420008470289930501926380447740815726088353511837703194354285686913602584929149659833599838362817116688874236884394033377435789481428931243682890700051668083745269246746623625499311545396351103767755674639258300638317037003249705925779559598413402551027632000206465995011903539625217761212820691731749723153720009967851277126918604754489603695172790665280397503023982688910479226353941224322311618938078970960560345194961754930105996474439750012583974252872626057670963863811974758568156540647777944953883001763305276106442936185924163867037110861204213806814420358725764843262106848664281960679269070827505562752332610220941092645980520069143260809593256025747090829210467688587450743355317631649569330970859813369630578788611244360551947309124073263041856338328678502572289718804790050718297675379127282364843055028831264043328544737879942459501030632976984006922127407252167016481154246720796084280664294491838200587628517898933303842782337946695566522378322275361311714311372499501117895455413363909864756849251073418544137070980362277195657569350056856111852646524907683307285455741756374534099952883483939846847141701607510229384960470694499366667987927305788184653734931395394620541288714799897643747405149818739745461738507375736272738149138725432631575819767600207521903553787759059511918761554069151744534823165265047774620487160702255513723244295816717468166498744756762480683973100189075131594429136839162406727489899045302073026255095751432717474099820360911774383252503559315182398634906556475546233709520481370900477334501750593600215716153363032816833232860315831762325510329400149835494032317487371738141910636998992982612267023057010500237578173850724044500200176714777181465778431395568435127706940647998603647046063381664277508612916906534676080201588201414499086771029974423792398888414513009070585077129944371308353771988535587417025554078378685537569791046068293649115445612482772784791806986981308270395184087686752202624430554693634860733473495691216458262329899416092899509462996912463123921292428731478130712046311939311363563172068872667247309087267238365617217475631047001487467407550675389590703106360535978900413066570765214268426994024877259386819187140761142255220636187448059832433689700176817216378160766495808368500811548627699338517520820552973551084339789876427733643876503488179561550802040595808244662494298136746379148142881955221463944400457924260122763336633100582920314877579942989147006222608916853856458482142086130466361238409092018806456447456788088677875332806140394918932144895084202268343219953949603716357379945467569728375108956782372190581747178583092013712895265851319179235872394621927098465814682255961117412265078929332256061408432007490738819736702241997492125395119905156765580888032757099150417330710385012956310979456408987913909234817892397941254413638698442084829280260095014118838433522138723344094879075493928048736561784778046356796663231173227611881593453943856937799207078472282135695617327897375332371550820965497964914184228973415316879647761246033754537339398194443347439209968832863033563483387036356587211944269376100699002299963813970931166869193211748954894761173155259012160526787564468113836246655815985271487777380478908024444610120240437023733103507764647292228588681497224410330163738597444427959120898738237219801560640179262799093974407202520948163414461268707834689067876834224548622636646342036817344413628646593754433237109082538644338513276235668791669293352389873863504587192889744824222229032808254180264513505329014847380430302833851842071644622470935662108361063463321707823299124344214258887590314624924649945802024329683774044514330614082880069151376909243520669923105722842549314581425031717443035089819527467341592073980832000620709155533990544741697322313500389480156338122276697473701921495945977664775530031465004243232588539490281922269401955195932395926539722247672404220724351014081980126757198273794352889744009052894189720972397385108653174449801937724916271376004435255044598161784324461941345306200584756794542291720924745517578358334195075809796252576613661995473927915580351979455202346535799658084383926576458411475062588438203380085665160658761916105389899425895951533755076255361115929824778198320404601993119182241514561982264453726797300427482204534186199702006819951985189910833287053387572792903669134149000902867123374744119753770375613390998670137188362993421232287089932759822004148207170663624681612805112586107931383698138242552741687334934922360728193340902437635011826305759869256852869111554536213426493742318859255765590275403445327125792531367267542047378347960181967459245012349517969137248400271190098157875856570437806492188098296173573498776944384321324242900956279900413610877989903022742982617518333602676208202301080151650514366482228272539500248737900932984006605792673253952775894325245152516223210331852196581192730853442746464546308005544958617300784523749727436831767549139988709798096430654274159771982713710196846935357910191502210583161649192768099675335373277895769083020960873007335977754806260358411013713592978205719605541992047340436297694715004190078803312014371224869155494773865584543613484222464146014779013593059579654347341771832733383207759508476912517554110271763049214556534314952186531026459721872155212162313523646856293376888193608312819861711685667701071853780373690452555161373426077704727872470316346835429396956473824521255744295170454610252966414183997776706364184535699852196961907446332983783653201212955229723553814645489441257500136195286936616856539011048809097707753586752795901503254302637774957631522491279063466761463832087559087959585862138367320331851075020947067989658080756082381443926223488545919839366819112117966983867681438331720879762177289459623084008725326882050259114811646095967477268867521167964760371547696616150539026818939224852549186329920884594414928906615598462742999675390126933055818090182851051678816929349945464219499419999721953144971675258839368062649201990972230472085691182053986680783101407421255604748840642555294921820267220854128693225404737403510602623539845059646034683090739380127666411826461832000341827327818002637063135852272358014363435033961378405267968224207707940180303028785664120554474655241576903204298330169383316457555044695495949487504288339394931525001889203036963447704352148667837894762264099549125881313694777865021354368924392340895711095584611961459212668000028249168950883279620300084071965814948140661705558791080940871091425383663798940828916376253196030940349216274465754860368892458094592756475482210299581412032744187660361667504346510847837769380121889591320561065103404893387498569118820194851736117446783707204588022497279982077906776327278056320281095646971454116774048322871782527254734010141010350891751464056527331894811306712367388193439272884179133443448215085028804493968451759723010680405863087912190907485483515080440824464539735939346892887090239571779751451804416087609143116136131858084616522974986334014459816097227800694026711879990675967692080530923141347833644119050209312422697411275850941973786453390354297929506602612287515771766522680860528279015352140631775285024922118971902705146252769789151758203563441377925481803078293170839782099416515500074959293641482805406303946168988905104256571654694776510053488539932952383849031091675674246400417619381240113677776319984933150038855282893514567217188489302243979745751829997282250434139932194856260806336813414454024853262439645533115749882527609786315371269814453278221387577849562116166445861344784101869634686724484377979360324350832349698784565896707867940111614076217830648193440330658977448551629084729945362026726205379681143355974674692096775326722725993172477997495152966870763846848859303404027205326178966760958514760911936686637223645269231962369635756887486970136597089795496612508178762069096912418032133051166732543379914393791672498069931052638503325631914838768207569533712505985540841216199429435969073878577525153239117956574571196867792171091507659034574102072383764641788085145538340121445277837824307225199742530622531434553801770060748386600402271092827553429832232728904067420060757031811826728871718061518046787627860447097136399356553823913418765828918489574754421713027653336186219043154187722419063620773182681705246905301284368782453738409588592552018539319457630485581726027897242042489435844675372189222823697903728857544030008310908353364962567027629581861453574308337631245257649598755557124233780388002848001531450989934477839684452117657774522007172056437667076244993898275155511975995012030235169705677858266229474594076276462659067638994722955526013990757026981754056276489160435143665306140772162407982235637205521742687266745023665687039528030676508161919250436006658041054375584120846899041809978397977583127227139359950413168338265786822750904499063768309059302054047982271802638765895654846751272401508960344997753236471486687404275235004232435077074477091410051510409595613189834854172926795130734062837616832303541649555388343154878128012186786129986221340929303580933950594356233435685373237344849525288075839670793004472527410050515674652472787656027117001859808146150641484925888847294593952920041188045811929321030029390444865171376713337533804694305695195500650315943810958982647577447021712570023507377510152312182943657729036145785891447659603514107668041492594972285023087526014676805040904835003046330726336904443421805798078975570384175104375009457427628172184303361285750617863517455120108320691049749595947772950818129482322235277456193786390536719947525833497358143991652156869631078014567905919619314359830540539539605700612443942628715039802300266361175332971612576122926890429780119952323028046222947180747424546998376346812243552761658538417391999222867664910138281484601513691920751650745506265262187165870397206265695100208313845383422814973737358245062495335636580018026103125712065285748001775418673753695011292295253561502138388940470261757760585297293390046915192800163162818839357650732888775704430266317056853991816328266194961748941848208330335834189321253205926098819509060814434774842565862802671783125925936240873153137617632321889314824362795711464798786503420300107837991793332903093882035825344250909126669054620477543455554969175190445376927307921676666837674763011701537261451844332780500380471398482314350089733313702481305251387928044294236106144579595979813911807212147108168679543510530622512996438096983582493234060451511882866460286176505044241190516149131023583602041841782712996875086793509340475568265498583385255179356404496578753728801066638622371138257589127653988738374591551714054302142795208198012121932089361206442587600457049658399605414640051644527193925936887371065435417854345833112156143457547734054462338475371718989647769824339469661081821094250521275726506241080432226907247510696795680536082414703835814983642451659168895751987140510478485191302556556926185479080002938339522577768045864204857617918691874763231442932240165313618217350305447682443306433777904558855140524578496483232283976555400981055941473678225336998661396005222840112547074482224101768156276747717834097829084102660998936803861358649865862400604052938693120742387316105147690617998622717173867808027983346590012094274521029777720761051588786170613566807725638254760162068486383047279004745974725060923609740284533266418862638501198324038918218324745821428530837805028514079505351443739928916758309970624666995608019650931084198568610272021807499916174639334511869803929287914144554421829904873183768420320374414161002459623900476740870144917397966296096098217897631825515266725470503853672604444717157612342298742527649539730524040404064062812944910015854885784354240579797345242844717753449595989321581757584642441178785175932383287526690942312366276012208977652088769788640788778635803955363769844488171248837272801311754193312830514684612163248759413767543948600936927219352655132479571545686450914886134239056971081015585980940952555084918386705097097847604411064454044397937105361651405616046044533879817211935837200220988717864603315823618509027536254400925115283371788938107644475097963062399381555327035269442933398266202693015567288615681298762631094961893688195190920549394787786504382825335070534377058471321525350269686993307299942425565086871541968650840318473487659838827833454725506855417134983118471397430976227210141713745913149207739940747387724014946772736496163128435278841653276591862808150705295946234384281159804924065322794543988185288254379153581815672646783119459761384693854867996638919061413867370176493374038380947836199306473235871747373154259081735293261128878342049363976876416140498856714415863012890294530127938266909128192004885000949674820465396594615067237197004111604708332101852218646940731258532372090438159436012983049774224497157910961204848626148482045553746644201656017863698051025269215415553816465462863754342321347642530847513559761012587293432137608466163566945746552538033368472978900779325420423256529063963285325765580170069514954275026217154616042730974077639611144203620206611012704715146430091913740589064353042456433123475870592843427531067719297989918329731257513046541961576042967280164692310353648670475427895537762213590856231053018253521893170509948583954376165790219287118148436575649071767635749908496502067862664633807050979159297933147606912748189560414150871284129496965887369673255513401536550600502758029340346765250872073870271884619416565589863658046257234385223573491059862324105745104149764972011441730976023856924921658885696133386491413737650740146743332449311069311619646232631922291564302174403182188201284705937189573904982222341957685665872427608635511207559638304880260543213802990825198128812675661951070567703191671796402828506412726201567415311145511643102527915930306953470108286546085338733533844984087369737913980616735009609800598998780463563500382054586893185971078197441220181895202366536472607162286493249317735950349334383368249388987640579459123185982134962652369298508231956473749612572988595077794870141227821930331567331333167798931741169270677150072329276781600290735997101570231463675573867675603931477967340318952212096684748939730390113972954926800813133190497648521428879262505407763272638007165643419678444659933280917717305183334643853893753969986365174127174425070743654220238556251673727139965602261923313664723944663256940799983345976710066806370685828405873287368377250165954795843659290942521398557396282733691948953084805889405059318156051942052048053006290811386245112627352542723002854452038337712538029011595158083417824219912965497788691848412041057877524015701835419208218979489196796644641928855742763509738447317283758344066390049017116709390261386059299060122976701854497035128939767402848961129874987213410736201663666959310737635466011205635786163475768168917082942065497635106468609566255415006681086758539957908553203453443403256625525257749484525795313357243212068266849212421108379194370004814623899117810743469426295771774270340801045736744568557986708261157892834123625357246348202148292852284452575755723818140534841843987602293498148347618127574355008390772963428328972680509495788676210189715866774699893284583829248772915292462819227219777958166317441902206438841944051966252621021064837139896947926083452142314780429007431374394973082581060637070361081669601921247228891867657557904130938925412304085806398497889083234800128074047962128639292433511602659724074944067478605198419218365500460891262102329883033512644737899263410547989225441359085804835805339794229762442213182911457532825019117540786429185493248547357694964061467179325975491321820628284975733666676351292899418804187039030346718474586870183093734340169454822835913974544056058386101749862170880108490037845379781377798886653854700707700694527726966126242061469191403423049017527744473642070904329738654107580333202447519995423166713433391299972053756279857840079528171275206805191495747184211629551613984133484271957124165439372125188237112689118798184663089392573966145842836081698056354341893570631338365519490352740035109931695968443703019603420473451675880588188834812253056067407374572098387791882841259107882165507163152369262841737369379193201838817571697477491320543519229188018392743835475345400559327814320491081806835958728579222034336743899378513941141918777324956595790646194504171005623658740815028082713119144336535569155111592664815266550380220243726863634847956005717582534629978834232845265962922743769859113159455470332814287089584818818809456964765076981424825247679362832686648361242024860102918608295120570979442768524366511481336026949896223106378328486536211567227511435429153136023308048878603559324111695343020308457806622005016123761924969863989306118425762947409019767993353573368254547911313603531590553578500708762351066933706834911510439476507129238357639260369318707561562616223678330433044002108803581538285687213712554969030467905943945064328347519024375087744473955471459154413537255334181688965773464518932733306908840455314856173686483709946312814465438802084526572063586608557234140551197324067659521967077019011676896884387959000790420565446577619460522237382650988255813886933155390609866741229012167647284747834305186583923531508286930535801741325787575306589783431153701834588568200374035687214263675365035550488007024059007499786995762064539657378842685646572031998362649742653745590880441527207980324717767512308006424580258718767670056917781308233072899809585319339114124583788020915060117966378980300731670691082625694075767806861100612145406300380861543366361973701077600708587985249100012905923727372239886803930021521697223787146667687909623521686162256666903465642698283982480751135310998561203421812593643098441946309196095984232305743716566440251027529336323564977937701639074794616893441351963970037971909988699686092189656890518249734326943267707050019903801730275028954221690939740140473961679428296542374687736342539045511186349267747084152668361907555584081759588686059761079007443480877460254739621708164801699438711019593546051593962890131241889011882176932045601739597385829754347233381619676698377612152880253968247493884209065566999364386251089171122401143708566272660869533776931640039859953153057655718237041550617158767373628374467749411966803953782943748216431169974181189537414779499790252090503131181976874028220507092817251463398152507442817175865722322469556669081259132473535652364618220190140481272161495303798086667054960860380460324020469493831895211003996884067323962437492958656703902551389983109327492409914403853706249076890790373034241942098801552713901879140256548225397293428655470275853969572655910085972169453607883901353752925609939041119666002448183266661539090825408983418225950740271894507166546587400331886083254194036177929000471042164744651393072489006647535730036392056771049542102449506119751969958678934459437476320385308360206967462561404252702842819451573429321897503486631934298626020752387625409717921634554899536867045566108305551665210081451957495569325101626715602323323247272952381381855152365785979565003250362881206732270944092252672290350414491588405512016144266565318789294549154305485839553155512062542839973367446074589549209152029607632231824320603361118073824026358185530082280443299475018732442119202892467344280116687604649252654124698580330426928268204541010986553700394596001437201253436632771539212764975677757229256627811326125180606548718153709288811232074192455454499068216002592344932882460002930812325400116503894861226404172638886260642511504830243237950903394962805746111989993971157520890769164120966798865203562094118717369163914808098061059331243950875957385968318195018506704166740317143847198667675091667415773480556533492007672251636605304440881023572198943497162541643508530974335377647034889151688413647115728914940013536192107905696640197956771699198244213234948691751648145325972563847165187236750168761603836219991385900523891596224413160136398262579014551565184149390663059262400450953620461898535358405700726518217675551168757892126132568403935804844044789357751931357094775901335499282351880315757513805488298400211990654795335964048310303863509676579984504401672019284325247929189470406061824345248273257122993295144116649146030123193332999276109920642610857652206171331904383909946452977588507274017633965422177834770212358901592367902729193039114457525613222188329729930383107266220005430087628951353707048538747618351165389343979860677034004505278159304198896443832893741817500470871045427357460863487565064832152405464691104986986613350431300061755830460055493492563324015526596736403950537709282725578148246153233708971331104439374748795545006730386720686043236062302356806987613039955990281057357834330926163348250878343197561950213517222491190696191183681705559431816229316938839957526977905206822855137942292124741724640483155714379647263648361955560031438579197537135272743432368278045878852345689688753609974848987069528406847827426076335377547951101354405273017941223963595366955699340323425268085100081851885591126421800916569385812435535711686167883679072048322489619879494387765386322479767691663225448593770718353455503642789958041825209497521304283107810144957859589201140342196404189927606469959492120798180198448708164943817817828861645595720073781176184198457434754730683068347245262382585574335971839323417408670482682381387851485372986390613545397774876842816152871698156518027566251113118572936841322335387435982599067519874915137600453356347505476247540547064165267786924704258361612891670481231899276618862878635414017517153767783391309930077271750784856209172258756294177582541690905317824390927896542511936326507242763356149507499036244181927620898376796825737290135647469597093404018176817516932684366831357101616253509864364732930311414820812940844701628140145159426703312054080247651923599696695771640511808174359988215633726140806660850673050459785293577696687366801718644389850290403421133641872376777574742949414319231926878629029256831471748913585995004934865579588654158708399815326570635478499459217771504666317556040330315286852325133096429656293888951541871270383153649316622402761673717222570786408324274973277195095644020107749896635839601073346368844719658166549748917103790091467587294911170215697751565200852558098033027101167105501200612013104531703246181659206438570504814216724657230020713330086939684394184797367965728587687279906148763686008518138843118465518309078535916983021601217592160037527969096603473987340537445726359118736964734184635897685362565310051721279011432439805851370635329986152390259843898315719585075094593180388253540640494526101489067446631366170229325118035330269362718229354867087739037294958112485437872732500018703579730268165707585838792656018629308035821873560547410272195554372216987510634835085753344802176028110525055785470459378840423760850896204066941181014752571739063017253762381663611815624563865560633245382836121927080435553086084378070397892881039101531463271287924516048803619570782590315860960047197452176334027175738154663389327966732226440325641399263495281353110074461788581316691934789015819928546012543913642347837771253136936606957304818246325382895427819567283444298396277416400717228237263409126902495946068948748503189087203663224575046833267704818850993289662320081401583653053444443137089857901811822376912364785655249829829349006528948294865878677549198197355120565042041967337957368533973429569631590169710226608429596525619113352452903522176272255567955863476717606116444327620970373678159580253633250058777818825969731479161333893150738401914600888997244258089890983150279951706205202861244043785861655466934874693850670631401391220649222298974968807160830159892753590501004425945039551095083883385243159758025935282133112833864600729021758753565353498385545207378018176295884706341693259987282149557077371061491029775838923283024523768011087808993659609906925671971109462163159808010037629151620237256047881651133225935064018307463332570577075038662191192391283518589653991278567634749052489794412898093049790452550775794684734134225206943659306554642007083995182994861602528374391244544970554893566903165912312491798300316661188729092973447714203599634271076447066169093347975214054269631491626401680405256089617422456915677136455835619721159669701535313964901025648472580479234913084073210454279912992121984580975174011888948281880979793903004639190451572075176969582400687719885224241977310250040565933402098308806208566281939881970903432362318482212078556251692888899139006199856555515435290702073322073339157095900125619823581083842835879706499351313728027659761229071075279801176027282061970300006645813290001229304341386943437158785452867873582942183628516178296199679685338432103488056345918819991345857766336369796677231162737240901162962186585186693284264949110349319996453380922533014536687617964084494159420749473160652209314396790475256351105920319568051132651918421404140762311295315743872059664408033275741937077579813183375494941667912519993109251001118385863893759583974097863605200198471824783054223331420343449672949157468069183205433624226628442566228580928284244972050734716141990364307645550849129123477436335868933160155336680645727800579236809569025022903819952417712920318659070646538291242598172014494867041878931115220477481280282334295415556075682583941719401427062911573629533915982983544584692261844531822972297303297253607562362425047220964932914888466983677605391801439139283828719783757819781830392317143233817828925257291438205388192824819959260955372251887994921595027324905001239796045883921776160123043887657916418258330901245019113014258939754225885612601719159995238645143812078021410299709852015098150390023900045928207516941559206371508039550542590186897277587169791221865067313112776064375106018658271193473701071056041208881892487872121476975856101957671333208532469719603211614746744147252251962987293709965087280362724485307966244671740544236744983466412582327358539059220293039411521590969968024188728517255201976250245731964284880685807042380898692948741691294193635349664733137233937072720080753404065824358587086681035104608584928174911215779867673852106890265508042266122421699267158006192116262951779454357216888020170270413993709470313028799568078335316501382562831447391337294677430577622741436239363589680399147355528847295716600820765380631371027357204307284806197942611123317575939261032110117078294451237459935395020977193143108848740549404917439161726281628117841487725660110252614925758662177937025237856877286043953771978293030806601334908406155340187783261987810629031151115675325964065106668001407982266966151689308604959487311832093874503755183067718582836899959659695692827113939386899770362750915511991754119602592234313410786672190409891726966723190645253173173466227900651608907618879190676651868233551444866685760174897770156965019776130207886555113217334528394667744309652121027778473139768678556449581309327333993130223271838216912250844893465609073998369176589208459744517935036655396900045240510076654422393344196445915914394056831018798470731609558069971447875127855091252754122997346410655756264549800198503256791986709342773946634093684401612620222744955224239990646931193128405606179468963380760955530313093401414599762329511202912441415320042217382925610725708766813908234115819185617044804492447154827863841006575212493752410586246224054413441979689909265724905103732215708336649184474336816472556995292100024147295737206588843637737803870857943008762612654422882316175323919869559199281062111858529408999195022006341046966328633401643338715245919111994047090572329717839222764893518631923336466668886566981744151945281444809506290530524516063867513571307528873963804589487394767521857601419103814818554006268065053030006557534409577095487243639042607156670694800575197018460991875253006495578618775035775684356951590403500493536340561508374918062206389609257697348401574801026787088413288161212999396982434475637101713054747459040273225553601450706850029645424330153456038218637320492446569838896647892634655041496661091909330731933213137493534480251010791256866913135566278525600531134350825321620740258015426517285505820621933944762008051285784586467802938137375436134860608729079039781985830965339157839755859879356063252976634945035604228900605651462147969499107414506328404901789884260040375383666030358774908673703371271593309229004701152648987417410611887759054760633368809838464017695403608371935352533946500730941336727977825599319879051482751937444066301011190267511654614531906441195846805915915690289070985585066327138299294159048390422642630165716782603803343519070239573182290634189857989885312590107569049359050370306448100429656841624215358301760123523649372087419473551351630597365857897616289688451103986412932678187035279154954668859012813378838086723610660707037971464339177089659469125727679570259702575844599541175711762122741036294936416410471734372322029493879883689584041118300600114284755194477629911011740529546471785413327965506994385537743165667981866333891091801254880695691742552584111417085818718929963143681872868613244045379774434137101451545931568197961368820736391457367460703786909047905874274872527919030458998361936170363907084792639450549373437668991765812324435090416274785925531693864184912732671810569229944411714822553488137500100590028459360274040676373916860567756722674438930583490786386937252090286046116981366120843675624980160525280846631457588555018858227349146125997761166406187282972153376108966543267849014345164517806218441601223656697473230524402426357630206315022730908279109819628356053871005252515726427706876344547228312235060869365138538014409524670284814557435074572298069978430932003986252644668071112299676764385949978288085406795201427643952745765750846042931297214364892191571671803091607342187690659936974118724025483763132024130904001256210876168117188878790344184602309549306982364856369258109713679565302801948606776339510504206577928736356795309145863950221069875377807140563064450313875046741231861517279926488958050425739553286263232167577508466908287851504102746472779973327466138354202937364671286022654814149539069482119431179841778538181956178523381194042724469556429939074725478971903782828006690762753569531810533351338255838284085409404587264448022679423556152151905236426061963848460755250690913213225181002421472386894423504400372085274943843717991041503477681447459181254973831259285634979733799207670165657415489182204336664526111644606804202785342851731714759815478531648281468817310138720379895635196590884640347284978382826016828841943167221970680894487403470351926846313744341255194716000905817275852380366893404315293516138600395398689819922955295921935193016644856060645742313709559311633307574003992161485432728986644610881957347716318848410902081297343026013778312867664101802133695816899570546061419698705334381884786394943780649832225809149540491035405141136174421757756258458093340497624972874095884726614113934105494920734778714519310250548041820974843911780548843480771388764375169427371004088404993824459001171553034810199788113710249130185056653130364157007591737498469391034439879028201498121907079233206224423615272777620137135355515972035047716083399311422768823174581070649412459743253645326735610196270659922072859720505503932421425659053321525738260057622009418272256705126167763512967760465807216590618317655191404652314038017064011581840039525402857843519715943726146667999050855885803013557245124031310541119732383220252512006375642521766262510034884045343387642823589268528286913831825940566798959406683068802847636722876775473472810341249298439054356034609533705752965661404989683264765868174573704986499233682889563766341950520960264993876523153852376857735769353745573158268636825501323143918048830782188419063577816516411972412243677422237328683721116821908740720815511080976888341085486220141081694079338209285910630228869421335384219081729646332788265904840121195962232106079703963216689983470354595591595690958539840258329002343811329409450336098113891305790419525928075170537324787598192150685161743434280576986553091604136781504884179164721359455219944497241978441889410033556356966225056170493649440751165804456893807292396541690711899045547961053053269772932126752233172834873819047924083477690195487654933871657852807556629706112063550662644608398525168923234447099497901687354296434545962667177934564323349998374353115478425623500295862702661606575979250296876037097958750924706389299881431617581592079749071979057866989798889188528175475201135774614005516500013847132431109699901532708189493960741838686444057548766925149086173309899891419618642366742716253041983489428892805480712549840752640522051347262924918182477891574200906055111472166777655551041543553109006143862953350505315183351316877069810283423939359262318483061264122050220601468110796436821831307131674109427862444063769576265384341335540077556728000043091547896652638715367133564534149625062857135609855916605004422339474527827675745612031479828978747113452606209094637462871706102669967989764219999932295451907716798286874453042728044476329760136338952080199984656686194196888638479757655583909090577522432374024860538918469122881611662499988330791714126767737759872989815089906958148373112046605658633541293330367807940100082871344142330742607694232316461604147789458056487348081857219762548966403923826524271046819118032871792003144691293675359725357606364460167898346105192082886310011937393998670001097657729342241391362506141446973471578856397446739272331081969795305405022048900082968873757658415020097133409905732556954483007353925300592837002283217797777487396102746753212869356115201433444286119207907000055623104136081467463390552840015404469586859348353695360646399007251099615446915682387722958139210116567971646392006505925413213573493353647218174852817678427040591508241445525133859609928271921088014959578727253760920566734034690423999079204427901029710814972472230103213882768486302415171266876837934800020797078360423391387025220267804267498817566644509853303182985073397633214417379126248508603205788641587515474647383630861349669822845260759104954707527356734168805909729302831790912391237259621817581963028804748149473217363249604992616852817129573669189267570472523834907692936990167743600110060904425959235594534282253995380494066585631912332857147873020004991751113450337368619203387070929101150116910359493509992629965236403498274367925783374415569858427808310174367091393970222797717177933758663281106577979244820232196894951333836857337314715282695594043178117996975523064004351205953205498301072283528105970316660933316162745563631574638583206053814645630696124462444516781498132454491496518162711015141713905660381429788192346890922253376464927689668976124579010289433745895479062072152408789241190589175865149230070367212578717191866538256138616184498647738093351888343137176392775959633466063805875489223114800860768152480485206131014440220472103641474634260019225934681711705773962120235266458261081449319921249054464371030055228751228976566311440363238939607089734448547836935466412187028189334021480113745441837583935059066113133893747830288332283759729758457725979996159669568718802279751037597921356145152642717111618361404509626967170097698644017784304372569533744763423216379020451853518271660022609171070159209717664161414602555989995321250943281196283982422438645253893332445098563357898466020144718200267534757398027151681526520740805138880816427120972343445184843466685028523667004749237401269430218679616946766675334400204838719162054712457067155978361144316343067860079002113169902485747870138539074432629102702742522166797768411354693145398780824277789956760577376610476489388889383344352699754658553551809814109971130250324251127579631955143674370450634516106743938436459874177248962378068497198370241603589394053994422142297881125952839375848544489911554649484198408308029889011906112660281427473219495049297642132088977640100349054719111937872323477517158895709515372351240789561338312090733170122741642214527139089629336298106371994988384352034200041641052734642644690887824495896235647763122635862507653779681977482691789888917128381304949038119586831565709535977354841931718621915753955938711425542955990864120475703046443554118632883756972677268122428948615292724460806669170789654855550848916496401126863380839972416866121707855524578953291442822626235496325494909640808492510206014575372131959441612638864180855831535916424838638703393396953302247047155486385412943430973604011419382703769731732749441260683982998152098687882753269279967187274686927977188798155812111019409256282643186388595856351564551185843773455678250556077225057274956151979431707796221223672084273422686746491673431018747988150940124012983023797382696356824664611040990814265791306934041170175185412251410391522787313806224880954815293954712905345090670303478705783831625044594711019245836680253233211824059545151683236820593223160904443079709208273382443287119314751029093217727572486271631367156498839257232692049998702897766346979205855369906926022917235110446911920287167146266650290760071021721925683185383602851452568707427901680739433407359419984811944499473935205543732362624897424588528461873788293272703104750752985391201113554021131375520394613963969308595374976597677090315598151655243683137436520361836834463807001194524934839078588726147175907261281611678166580299415968800615208360945276520683657082286526204616001897445738745015538531849787172782380877068109520531849830558834484386939843913425117384807505766634124265503354432938576707878113939295190171834470594586686107081814357956319256775828279699596010067156137130913679687787179448883798650049246093666979256098081771023952509983920185105508377530325522476366624673133429035580670278567152578277953970292943849967032011351401007676652521078726139692123333945164657049763236932067474360249159851060219859102066861821519071219344860539440361461903671654217753256572255792380999201685756750965887623206424522757143796162083994656911677064892807945051010433073448429803878215058198752148412671169660197549117005981017977390011779135440328665271082449603778438037260835347432284854490200480560705836885690306112268819266022425461416468584267222203452629450124356294553658930984280950870171274651774342316245070067283904697477310605840189174986193213838494110089690605477667551557253599532147900611200327318367776708081499686987722848496739880421945606827603231269188163058433440050431608736633044135915972539039937795386113789599181625901402233291229348530962523990685679760342961083869656838170068093945075632458958285897408600814447627624051734251757084429788715678481948529122144315334138282053966326968517340149506362524686238280100717844123391704143009099848346668672813673104430271304138875691565830814235023877733804443872508161531586750468753505494975839516702464776173406588719102374390321854350994224928219506661624065961390816794945393940392224053037720312493950104863311082847868461649104569105414736147590204055455558595335013282812541690219445219176337786662452520971519330119106863945152528699206650778541340700941721512977803273942509261149125185272732917700098334836026766618921554039457589362566841701904524735441525177265678163101930352421159748729227249268859151233466417940944899495512616272196542434859770545025956233234652200559106306569709279433886997992341051155162680158805461088158928865787243276558267321707284594691750271528246410662910660075729912761404721740785060226259175400662604672705727469084834292272998661127744321121448166982887050579028596923089259908804945602452623767696986158070325752003879605159253781608819887334915561164104049336875847156160593780655258800790875270001841172365382348041499573519496811852567831783884825703450362251083551572240825923702982328679449421505879917700462177209659569540323856082960936274205731673048803199352776310812362441347644295626647952029319308353207421690651109558913135621368703872614575103793046238552996062174664300607609597230493602738660667914043831345281933291962320430305390064420993379366264886954296677983255237886352124625369708044459614303622536813308008500783663851431452134237741050982272554517351756575415709564830104933577098174667982927014788114685852848672990492270733219302110017892247080689351053733917645766941602499973314215993518446854847679803732822211474104835977717748333277993006713063583717775981593781016097478130501821245406291053727324478806965118385520423172514857390039925012362195692803388510731470821723661841361673993740407645546600496042471249178128412944875457371490595098260770429430049423513934116867064556270422050754654447510055998673629899674669813651524612250548242345572938090077457218872753968259184809657199857701599203613532725566609286224421265489115901375634204290078420080767183826976816789257769501036855007185242094224912874444822859162399217343675221830676148164708021613392205433380716254886588905869826021671110511043973566598063487726512686862900363379145127662515653245367481822401109482811340403749787775310882262728428682879622164743577150558254599234403068833394019136674811706853168727974064216482733813594826721359233220322194067424919628152385114536849846743446452477375905156622442044684590364448419502166671845789870209615410705647838071970170102179652509636636235541412458434348497533140033788739972109469646964054171095194283126519761070936118350225670269846198392516029855301623873591153851712317958991634608068618510047242301814134181402249952766003833352800884857191232165213662635472777207553962402496802975465125037818078583830142843701650041279943635413350734037720672868899043527467774223108834844824397784515036591959791972550475200733985410336900593343916114877454306833854062307764040005038069398894012429447593335584878838234576180738055036422448130447623042108224045061896033046257990344467157948405423261948589433613551943798292955055520961294055207293240777354324862192109088593343078468147187122029147608259943419267054681126565690885441354027356031310537071620232992520909547522724688658780695887305655227892044617716537623869609995721628345928535813568919691790745337506050874998652672938259257087507747330348101404162725715785557769327340855661908481819162389538422407413140443554677687271986944208920188179954217470053744327905411607020636745447468188546810662190314305209706142890235645347239919209409056766180371812128266923920610640208059382975217457440536436536505590574930279717121905760125158797818485065655684295997008041778185339473488739102413480714700323881056577456717455745759472435303939362063559183752367648958023591896488419797212093046789193328057355531759721671983796420068962011274534596351164946222584332146542891541920268117950375179558231245755675821658980692259848926915803298682606887465946525379326203687507957084943274753384679087667132453762892905802380280258204571076904018941410669097561042550861777074205423615257265814315976543811006722196727936819004993575223433857458767059064375046141594328487005959857978443566270295989249682099433680383537340386770212019357089502317113902767846561320244753674325380212887436051702343958282056428211360740560025887921557866673073086389461002447892623254712735835332313004235318075235320778166043677219190984149592095610596889321612444237575421491703445388418968917333103173636149465218810529520353706042412888207495038540628253922557646636260074581717193061576278527860282835573895734765281978859152570940337919044164212133594118360232164257315432781414790256135498921103444399804290358114597678631069566295166099546104357852505064199097145908709539515947649781049002891811543618773180052648665127251506414960513484740186441596886030007242338995553976410350000764716666795552238148232838030575174359957163988955622588469990000793710625398342820799010254396818231864147688191998823265408731607678537506877287076205439975383156731050229312964569928057316032684626525178738746142500977455005390697958927611172904319855407526408608778810356101984776456703434925275349689528980540160180687998537458327010942469944852821558840636245758431201305072480027775677695339579567712824356684116111883588682502339574343988345204691018320760289894103049331398125930440854612895598469259788049551579666853910392218097110856291709707110136030462300925316333503240899787481179352736235352960596416466822437319405392670942788897329150758000290366692116186542497957359831502061170077290644790173731544762826311516277884514308838789184802985769952949047562400108745551673673089618933256470560745771646031114721629677561879941592671163687902728002615085227327504283488523911471942842768366512421895122095284866108159093653705123132955645306289162307866405984612464153225908526407093851349271920541439562659208261036629216160267604789246970989689101122485448851078435494777497152098714335294810580618942792258925959207745615078698658928866960935028608143624211432031187529867677910964172714516070522746906943269824494967047835761602485506200026349259971909930083441223466886490838229900974206598026993699121703618407224164781342225697093176625391030789484075516056307507886913071475948683359671358521315787835226300126058279542166171957210285787561138557502402612217631488815571152358365471335755079205559918897412741669558708948098382199022778007011512904205990724797266522892371908488366675822266333598400693067246369193296674744768256945823914419528516663745473205847480810276235576240543786850139737965756083968588687062166226811564298857992571553784374586071042792725361346754502236396089752938628867495415471238869899385437177738684423566085797437425578727825720278451973458541387283084894094085357206867145614672489824148136103751461898100951646311559444352669701190851148872326907377076121431166950547043859344207504165821288926229058276454566624875983163596195686745620144861258007448528337356994532241760280365123802911622742341880259146618980253502087922058575394018768054790785300389784070737353249341949752284276524172285332975297372992829285779735117280789054748687790579035811192914874914250249879920655774616834649511467563129163150282167701455214335319026995988075412619753158870163304840488703953427008676977714649628171860567428650589673584363818049168410789389295087573895558708700982274958294760566295718584923243229072485949041521680841373896051552353864395211541224293464316068157794298396476980108600221995871644755083721474200893245584299562655453498287645917528509395803372244722752381956895770896295252798308197602016999398752494767134756229786723825316487374092195118377654241422267907007772681451970500108355394414592158018886983908206865854214630289169533350814548383749441831709722470056683677986798892056753229299609009887387842569336055130744035891319818676641314763630822054356743774576543266687620846946800273593014843644562610117885531715496631589806177659626081245167415051194311301939066863165499118728194626180051456303011359790615011400003199222909322753665259222479755383564969048421354760164249269819336859082135534531312503523618230961222730720538169282770554401189645429445065163490751928012694750068444763059418521316784355567180172422850607505003000035439680289640129995180039029851853541518761591895160477967751751315639211759465352548103505301773156451108377887711855706441325679489511971147680914583379794196336461646010216402285567244214666870425589427095970069727466515978961311541791434297190013282414040461240422512382691286790382617431214663801344871503662106311509432078830153462176145905239637257123567789641857762778268873341379706949083155738048698397136122466957830328819247916509061821368901917977106693785894011700081794472359500870172063394685532821757862251270920402182859687544632779075459817270619175273498168232082778569043558604148864217500684076364917240207910109375785369976006827051387196647451819112638651648082210342636968199236948543214555724248798833337617028337976829921869964093690652654954919427980623056429653068725702586038504595604204549363464775188495553742024929587619406605004683740459234242692771984254338389488966203977103762437276225642322895684943376130681496461936173561074233067471256514303035587165689223512263698668815817790613073315915948954285172963407194161491456401269211241238704930155583595661985536275394022099019808620911885220898984376212587563113693287002719720767621040865084789095216978046305288821114192224542924764242272252896488932130111256830609189541979806437002265699116757783158614777947405382294097417433257565463620133763923526730651585613466900176680813687977051118576413788727469690108770052120748008527496379715603840048475212722932083215804306189068895154450547264658922235734557671295369125185408923399771680263803448105016977388329001092577130235347963452252244235213096322237996867873731507148175449718242306639573413309987852216842686233543654723483513706153031431760428058272229024013059997997908807616699849175580346447114410004004554332547764376572087440221089198995030336165797593494726019282230402513080220647040580088955116261380138649123287921718993336182392703650001425704660563926590751333879704144102663453251622412192004192357074140659219884003214406688036588976011899252084749447182069042427816632797566754376144495569985619328678491687748541194116196644160873709676960897291688098605799062103408162695685694471835911560425477379006938007884290055150591404892657629806340770869367186350621463123648578283557217447224158292570641506805635532857423550662826968576790423096729397825482015070350312758830356148324541965199086653675139610043448302299024196588686571892755018979906020829883956944925387545328852596844902439927645147939448876592953638275245386739262663882255536367359538373058176096203260061914724015682359630333349058752034435759601639207112186473466030698583869089770914373437201216202055227519500421673511520857453979147418282719640235280317602717823470932424542173307490698313703112654264187401524923771727188347095291714157071673391992130325539183020221810415270360729066468473387391170004420033682273261183920918407134119621097380001067875116045643664067559970130881307574604702297578944612217655807552839847689426518569358312913921926863072385524686828472595789384360350334453048669812877469268592517906239200488073877977862627749675300155345282242709351133346290149800336735229427039196406277360999365966191199161197241510408755006378723618736087359568473519395435789213452774220229995907396980451549997214370971468851523229655290777279649966528427478963855145033525251596907521829769593281973468416428130615809338784647647208646524104154779011840789560066305204835607106990566625801991055035068313780565113149735167181891193737974411846451166776190544998939166052945305465782038938340476145918940995656665391408967764646514203920753986680889043535370739998353324849045935294703040184441771246851016402079091167530522765000324291853653505144531122245639526375455629543456513545707858996438234411002570919065176936241742591693547792056651006037983070252944900160734126329693187726290440693119979735961993362181247530945433621002060937436121748671300590260199063325216902689441454277868381804631557550554532060012142626004094110447812139482254054406211204659480257996857859328989323667596304730103998207447770155145579643626390519580735492688917073628713549693011186567322194681734138230210934201658925112488627029500403177025253708428724635620680796920247390542679039661809905343537736855636586805839286903458330891928021532072578478904051731092597558050024928299439430007451936194321594136424637618184124990691818824264349448719556003055424393499313066082501294858739076328007661266544379290350808291619322124380664554858883590678842237831086328635166749011221184935084820514002391988780941200473745551188793132361767001243341796672520790805711814590663941883254268806284416949941174002896628487795973378772093521821266860238030469893024390214758486811311749942121118183242924115213860815590198154972438281153842936232945313842363305286525635244901571818866982759092493472999566430173291641021746759372409075902213661222508323386104122541543415752954101079057196827012808188895794789460166029503672589486421657428499143546108823840257124178524924554022727713567968635047213176370310197294347664168029027799546286944938218259596435398140044967689570289377693640919378908189553459175881994247740497249834182310902367871587504321923888563087214251806953044810292371550867701742872017247761611574400440001386536051724639381815327656723481450893204071469968350947242526798620665417871146071600377097471531607850944012493628840598657496495559892298244517340980613136644452078766163608664295466726341942574975060461974305011898852553568390776173871235783969181538677533703846217688186772701759017884905045848292659689662032081649877913706817721702091867912025275812875511852112581503448220794466309137115481590792441861288894312599463566656146865166720033238911758844356260455662786736276577694264203708881921509330313289005773976616451984222586701180354014603336824799280013904750368884884721970917804301970346909966138804795890722316409002677988697632078841612448698744492745240956371309514327497754347689174268224274386474033309789800473961782949880376310564150856167290172533705790766685477702694330034938376817466045595815678571469532923644606957817605895897053371342087616891912138379067296759635286812811381285904437381172929210132724846339820835996063531457161418346742956063352959188249974934965026032903761804909526408969905224705502723516923798879013105462861272794169669412417842434918077675281708781587990929187278284081917157843708395940192578141577290565610490424663393883636356693822680153081454513229906040102580213073768537168610746771383329934413997170619926830031511552043046965459718888758026699349814722862480724461117071810389070638462829573522016142222401122534237095653923051362976903016875309648430215127930086642286514754790179638488719397200808492989796930641414145601132519797400111552507391228941555366015652441558224675129251912529551493618179061123621145673593771372772729610405503725676282035462240642169351494798221068371536735282346498624509406166497118041652076515151395899740461287529571196046290399367956128262104787650771793789900164804756185697601386934355575743327619918330093970822881665031921539212236557738353072071673451404547461012319735536035835826854524236502493987013820537185643542095106522118062588883182093848180543195999406819208432147550381624968865066497236297750951668167980192401279527081627791850984204258034984648489585136583580683562815754787101972618361678677389090289726218826542327895197962719457568172950231009428474022932411792716145734247277794500992088521644670964108365436163137679442894976418922055672833509183074545835684958593211775182467448591367935664508238730845810051304201770969533628300894370144642510780471793176978590129959927414100972775757995966714210114227360962473809864045386060893079783064574745460505222038270669536245985278610205355723064646097181123151877766534999377251371458169188934362469695077662004727278443770554389978800384098182017258999629495002945918438363279569418724589335337225200693921877977820647666360759303810311056027410736121176244903362735758160518623645523609817290384955471297232259371500623713477574838650347453308523425670480896174685705786796261054839756843667651822410655919262670146505652353288188849427039768069437422418537111538750564588058268988996666148609268569712129663615243305414379033746046512437764221360999680700380131108552886816570736471503378120703918132956827901251139414510896766608510171361669948669577814660431850682142970950341663990755639542183907634307575350582765683609386349037187631456122230885493638949190346975241869421487501285576265560543266440378907274082543323558109611860608447292815695548168101201590705271752048788921917657677711805449131441687877007526449289364671211394692366473557218777351121533082639955562609131012413862523382210427209457863532546288355241162844755718819018657352674755950811919101713586542430519562578365359114760757129257041626544308408270044867898419296722309250981856270292800436573362073667335296668234693692998296836427141587729402899691340891547654524366627114852649713502573791811170004199919353736390944320909425966652451791674882748761462104187452846225328740069651132785689237889281357200987070915177940957502593421744992435386535145128287214332332106291744646905918945362570778730761450606314360983840053244197959864060545633684533337737398222119625881741255467740775587636679128790584024896193340378236905878388717495174257586561788644675097468149634411726472094078433574120369156788956707814978990333692812796104086003628066613529980939156854713242710713378150647428633644619774485276211155973646892699294692298611647429613012590953430491032233809805558777164001306348245021529773238498130999283145662908122801285703026153682524426214416799332202238677011942387115128535995579087752106310290936612097854564207389055932656071983020742133451386824490083850869266937572570145344968577960687544935195136531298295790929308053351148561441107140845904796204347121477973483639291308242204612772127916323462622968250429840814149006364770034742177575731862788962312763297174797713904676930925863069811106094522951479381081670320532753541053696129710471789956788472610852620837143498447887513454097042779690896768479343779891450935435989447145775247994242462176768784782795585781094474898977404344803937106174147165584057599343260951616466173199489594727131421399107902579224321960452891089563315940691109326346230642448769363239758898908069297013607683510611184569640921872252979529206907034252811487472868370423236069871453858470014547639448721950893865412985123896080490465352040456757415730177216090501684711485803253609618282609697060634608402204063441503419302718968202268657841541077614423669466365613272580600298604530603422409183842062852724343887583469303790375658670173626395219269985652703426545776304526364713320682024114724839754795146097120528979964921353476030665609687747376804086194480118634571247158651478009123094760054652690151484664592310205513223886323033168590677064543463079984666252534681328164259777819465784419358627947435757856157387952606869343600518881296641251711389157976213101014833642204597704356595699119564053946462257901381813103782665256596953777703528958583404186628903043655409266347412446944819804785732374244790720526526761225477374030004933593277727676130943468362799475564812287377205109845292034996587071524806890370486260646521756845162569178374295006654780546550957692890146570786081341714398040079349200103050502842091349117842069660823543297471765684167223001680612771991267608380592252078491806406963924072161898074818455460372266139698304256171199980325045965141834651802894298988799494317878332185261273133686242610411226687892542479521293560181398318010563710145039572459362978944884743305839781257944526939279403773857173884548514169329486765850053710301987900474274629549050039791900357043828608293256275163948049422888290257009533438102529037078850506040417895514197879401425823851310079157002933649886543529043178564715312577976765170453399549668293974985562381381884518863106078444277124458034563464339064312292151412949795123249836888438856284836626566359058918955513190767374045685477471146883464102147165368487765610109586188435322595748397284606332301528198968654868956858208498698046947053524383465782678129717211986525355353100956532400288607294618452704219174215091994774405982794783759069973194000708688739011739102260576985793485565277901704261814655350440918093363955125678237273908410191386687036692694536700499018041627457934791792799880191601233211681615515595710172059439404058244486404631677965347238807985273134823934481174900971644908803882041773602315019441822376464573321197623859140354883256340971975600360196859501572970424490239525724366000649363182291114653711747719173477837068441899302565400906693649497566374482289813009783725190174823548580101288721456169635897196458486497518943421589118562928186729373595393950593770195034995957965781706082426359226419301023380062344021826612739892661621160175891919360815783249269031096725326368530187365194542417327508268785542825747753083462285857775848188790598392550282129270238937473312124467369369176835238048534631256161499397133056163998862874745853366876792816776434508234650214861287124642060192716503006872009791234316611400704774066495752733297436591842708225307867023789999597191851895215282360425752672466097694024470565033866455792697742194316439796814291832344418896302819543701087691465564746710371030639159017823837258951467284495054088051820508654825026077174644890604229006605198601168657843925269922280402122528543420506766641946628221051729576314434200691792177722371667579804379312086548393896230876035411232711500507068575552556698232721409772350838732974467273266094375785495594355772775439226014590311169564039121206622411386722877523119412173406448546593899288978340417577127446445012050880107326407573043254939014031383027850598795048314882352067027938195913922589274743808653006754068821008673095103475005271998714741412280560670619214749973740138620167480856295757785521169116594508854479010535389014905238722761457521283098192835197719020541642851331628612102864235150639667921751648092741306876890494397014022916657264151033830026736886298705147676001369687498115098674223293866405515222128931135767555946232672189206523214614911455987391690638487643743011408796333423840834398792751455085573790693445454957449562873980014753508668396675913705200781728387105982481309801316191491289870980096681684483318001184542021016741002425377673191600680571265575275679304220706296351783647175874698508237926612716924977787939205984725628089297188660480021468431326195318097212624941923000018368034576163255289672584670010618851950886109632825766142247599862559832010075923718821789338077629864852205803359113360522240877038632469829471504992268569534755533300130406244171600675681393688770159025312567317596840115028043168669940292793559151287916106800580144243707778110998367273496206270966457732722036773867446352074145041956489903179769152828931250166458351531387351959831974810137863824943042665526549732538997735878887008071044602778363096258511669375859352956226041616045345774457978907593689399782532133907536431109331754953611998992882230246988134061453923216002828277271440392242509297515030124685690589481038902606097412223758937660714056080089954897602632764602494440196455259048451537452131430973575717391777739094092864098879550489009550388512384581399859022568072041343651709997181639563829379392699421835741391900589375354358458026578211790833189080746994031589535354886307533067428108166683987638215801408695954063423124919340292629225734110846680526532245637616180031579579308468149479743427713545276816275295805661988762060174047055250225523406079554684250895264165353692797810793352002228143558920532523882854170098736541649545051706029137247636719391951596753669126829857913007250560832120664031965777262069403677765163800009215138021483158880209081564139720106685755523908964236249170612639411913104445491912822206955180891909858077356691871095054518634038360970870079238926219373884621530018453277037093745661178780471627774516359716318400611460876943771620589738513683215756954918073778630752263184232522119739396729635126165220080730180325251520252023415284393116569309402124044357728175961245634923026863175114101704089857317194308758717846874841879623053781825085802374112741176979440952272871268696342692159560234644073531554500047246867643569742402955714146877940097872728445483635893463336782178921045951057094890425950344890431083807751378083315288941630008022462063728380242073869196388016543977382206317526165616957468732508164803789645008457093218866538749665529874470115046952099295747864470082280145966455098043555361440548733587808762980613851613331197585986537936167131081859746524392741121085655955353944916362156435564633579843121808990905972037939058752184003957534568912125145844806222844384389968163403415239614780897012277653274207404488355656524378993760995011953601702706228679837183439675445542227660756523460740812265154583134436540472371168036778234635388249247685546829936457121938088562085461493172806405747584544444128250525810735644201733605359893498843495533421388696376488644154614728832164034909306327652549939463739701276461032258904539229768905301818066064734571941732892723208764757894001787845033260398345887464752678860375600835283829313689419524328122774608618522260639206503898036509956540980616366638119372796094971399299692030427924639250713003833793546633781898082115734468682478511398756580127805515013760827280553537400044944968663498585558280530262852981334380691074261320095580962674949086560217759364283928250886294617512333565751922966488934213781438803176665011920791532084614016033457789132810244627028378588377205994080187188510692710673545666708388957366330273446807421720365019167816440636715936289692346814951983062341687435813588977058830759658053619562423254160770094894136370220097194676065246264678933884801474594300594122286098257813787418809996014499003156674933880117635838971813991825791034840857405603359231394201933585462015072622997984826639327481450384688796408722466244786604161807456726425119631964188421794855532693420565388400075619026982489271572165954769326592321455983135438907615113931046024724322952182424572452909706966667651643993506221835583979203015372839814528344534157234853343185982812930681007979327619451636980117944227736934497779758738249462184664318814689321022795251812006805728732875019635362072197692090295001285143963669363615940859212977242616335036869729535186783786061075176732001478213590316027810524739796573598321278066131319636946632565491599137704431262693186119669526895462191990497821304855232235461984466527670610562799242215041286540578180177690946211494226858157685668466658295802509630400490669043130527020894108358091753817157995795844772230921000570787000727443359553368753614476404701888098732974997967005416728945921455904849371167547654140248042075711833065296014096738380889996421957143819491522864311678736012103290752747724218376704838480686993391869570279284860199934252503786682679249362422583658854982553426917417803819296459185278501271095157855536698487936738435735490319215202764838884049682861669241850783178254692666689139977110160872971223890045852300791493267236774903393825953059246643860781820494581623395799140393782611892888566528001583658871717370329390635365226296883991540073062834514284890569889144783384658162676325234609666028472808234765616771554259284362235601268369402626627247796292095282362745902649132232230778593487685535172764154203605384710245738532867695546784696307991241430628123071726285734819201142243544286392958983262727396041390243840420402571644138034598612636684658550432051410425426155948373038428168917683294906079319835590065630387132733070444574376191485314098268049015024630049423011131551043107971416388638046345988682006351540905919961943937938406214531489121388565538234858171092835491343396267966627911179687907994285087643886652895565804525081378878846075296951048722104343748349150377267712172938487055804087537247188504935877357362394569857395238124815049469434610969524076801186310055280119797022010039133822325658129398785359106641273591569481027257201267217646967435195057638890729629596228677244050152996532800239055928830479207197905571067856216172781018896871369309180751160945589115282287063546949883853107970086475540093765860709680090843793811496840647659544237295612328784112976062009316924763529405499652473817705276301316857634038879279249518244306551708475999658798321796139131682244353132760540945427990986155634410446918449430906409966668308714284919762195887886461020111688850795177499466260511981581168363397858571943265739237014382385728683886321540821688183162793797816105539982539457118700581786941787756963188075541707509069405912645787829026000379795517828680353767709339113873074524043540883782608124738829064073938121629843213357471704247666965842105221891078712077697031134519320786660040043423573690314990568096796717567775585864268774985778942079346380859746266660467695021326545592807639437812757714510099599218220719072636046967321894815462843333034951716935229328387881172048574028108125314254723905895347930709132791957942729552032490751952245540201078616529524313047432791053678594766358480678122736107859006957105855030837903348803003857952405617695320338522681954327702492377454052881050254298716779108197951396166707911206014017754188672131983219050294014235536273571756373114011346005762917480833197201008494516788254075434174520839816651831528354710756697202173661382300645731838505882774142757911366214972117262300169595158286065747514971554173758493990562254354331186425694422991116621625683997303590125972980821903622942939793936758154332760797152004868206888955064411973155943490976516074478638794604412840187495256961764685170835897353825479070692199282476831288110616410775572807484073253646821316978911714022202067573248039386379845399480840518185537629285349116495039216372749910194289626810610781147118614862554132734533535037470903542882924650725653018278021389663346785726078566007012233452354645698056615277343469345650651525897442181013737420098608064761134572461461142453985285639397837566657589729805703890240763397980603890037432217140696746938039773802438807318871702831824036489137803030828122105450327599474802731473448157839552820325861446086364255402496954695000218143306524587060048598975239402207975881173887181389588061491786029938725151185026779392853809019033835186138774547386832569395005497222521464709140724818366123464521756234476699770268175317210432436266149646109739885937476301544326077653222910010344770593105559404420630956603030543257252152372698732339988502734465865452488941452653940252197052327978752182316417001197092575603910172957713783932839721640363770279953970667982396683241737903835968246171142895178223484222870410815632018130173657102016783580358751307492533622443087435917220945368233244941263737409199774072798455930769300342418576591298155308540243373628624851370505063795984349300135352834680896325683787513341265514262488760818186031760236839671608916562500224390268478358173471849426603222971749963831230209636660026424000053921684165723518726184165467661355508006165925471318455001918767626933303448647318183459604558320716927159473789834173203825384507471298269632094837061619982464884061903206273225813055133011109050695842060620547445714497535175357607832110237802496013244941813365756103934095360211210319545082795002673240059682702411159020904950240093581087620677866073029573054637940452311911424833406354520196260003982713851124837784700712339630721740227236039427130044753634698252697267786452857315653362211492569407841446144256741195474745722506620156167445708547402513316072482035017278456328188525757777940796512887657601429595454183134922969108165438423520535940378278627590793720167240447009584841591151224828703378623080876403013114135084597529997456377130588961422177867867798387769649575011947564401194882840795690270440928118186075916991055080426606407469276107974371667960952977810488143663831657976405294200778243853115347986522131649293367390308832698602700270880210612199014234500998193594795446775150233198330014377816969083655883952410390669296288856634675773316326957066914798716551322742241563739618683574718364213253252956196323463042413980972413102108846182991968341113951636473198579115714738633352633365402761388689815559451255681922954016347321581528356638918786207622759641164411903841811559881338302215079272105961814996908121495762736563599514913867081820066581114364121691284897015702815162655798272065304852254376525963847192127611865332697482182106547807464690220872317742163176806908579088091130892848425584845466625320652910437916547434513057601688738160070509305293403346699536947332131903071981253234984411367336455113459805114328265962387745236365290568498380399715470664056106425879947478041688725372825582132372352937755893788121521519062123074618657349332461899635933257131176533637584754577152467361076964240846662667390935233304148587144699984211696797186859682871902447544216246748841827409797891330281117948323476033694187255913025530875433633660673093298639865335156029409202295443364691344056291704768429856125979347305131598928081687500741038783694460528352974494241744454315036430606387121553771214244037366922418175502375532538653013541270647891990426705878347166366056113330548671112078697054469344863844264215288764146790935141134778805336558923854562848565424628141426032597248086259834161998063141390009125954766034474374373469650523050820594393175092262169440966590798947879131725381008844385429139890639927217866184110885593649331244757421240184491159465998215093023673826957345397438706336855929430188636685655375165922912775638033183672964767553837559507461299030355007955924461986065388341414596313073298089826174513928026783475720341512376209097370763219679397643722175653843507370326631318072326649108593956444805045908236544283418718495858929237339780596912805824819760991199080584490606439027806172577132269147916791118181922841168177622868157701456171507360422899144669251791981075400887213573568152840985786353183003259151605953883210378723439586461682397915713828091106438332772885788357214782633100376794499708133685161963461526138663088935480659367101943886915356121592236897333723609581481417759228874450357844409872454776262905632653229794943705580259743663541042192502367545755451469780841068105723754918242337890312051856137418739182035553097330242152004017207406900468647229855028102436065782159144957060785398369137322062615616588642976859837140954905326409567901518761705671755726536055351549369222088777084618158449414275646508856251479252874013341067328395572688545218033891628687492223951631244820197242301711487490719278628751988116231116790580564160917249940865207361786899776600526188097909804266882748996044268072614897921654132056347723660020841692465845313009252880029872190670889588297321001555349294457729051814938059954331080907689649729069505354075229775729575365949047760918718728396786711447204064229081847630457595259168350610252455945862402578050709460296026734659899532626249564302633941790640202645203529505482363898186929443839289688585301082213652545167759201492618587037695109386739869133976059988433813297416834516403116947190605803164228996330400150590465926579580762170796228957961408184453964417788096319368586285730945726529183943203165758441118115543765157340277682771571935469106899682311207579100790809579759547341825519470859718596945762751399483318363339142165568412207698896291489196544816085387322389352650263520614495343339250911712508882748065845466465855590367766567112482732546246302321870760067346780958758799791396234183512180749834652886073778628373951729256451888620648424148106793709653385774783444191174121872657641313974453328815420442057749309263913814330800241497117682921646859620473850723015376431362460761065726251878807993159880874311884076120864929636742291894772448630479525599838160690363366049906208906851165732368965161231388681694660308309247517394819619547543846755514138531245384941336338795810097735235942795763406233665817797006105335402918933098777799569395534647980818460224051976100041214573336347927000062380386844963248934669449420521594009013970599487268415830376843445206700349304314802520786355335278539690700574200210283223676294574349719049256856794871249967774816372447783486583222210409498454368179814213213065294122107977660282569365015954477849036915895256363369677789925901757555504436367684794509015346517133537340226425577510198366520726653214604536780000194276075573528244063869557948792371037388413619872167772629748704631818268191171472158318712614272029895723836504133023867266523561062869370706936250737792626736816241702116998526390213613396801026863071296994560825367806595088284967163455235382498296025290413324171685234941034678273164043546719155867137450680875598660365839479106098042974026740680095316045059146117189922913046558193648270238439709294840378745233521936639669857884251315806759755202800258908884070260675891397742017608311230475319009207071321740980503110879112535135892665495818251875640953235160446458723840749126515290309531231189440492252904922813794807922609513513045274979913889855134258103906996707992889340209550492111219932353549742196005933001323545420826347392680704830416365393389642950318330580792404192167887176735473854826022143667114842688103236184834406963008159425733638880393944968185814281719446390113523509774436056363789972907919958407712144290171227381067390808435866562604043468986986506603537607723961401108230614969948853557849604132516761417573162635326426238739873245683819855938483522027150210420118176978195770022093299640271353554559766061575169243351525616932064350503462279979385530182443036536049954746813167915071730529750496750532577504515197092974617737168439690502605322115287040434325085734465310880611773029964275696802963192465554703410984559826740653166710507703959307215357750559514795593840523301397124575408616970318609580949861786374762076716475277511561271119503402313228830963926030999962906861586987829220533741159218673681226959007190267019501761085174310378096003134379619564996174290181059142789958733380673011518309582348283473448858653164200882194770533786944887322374254353686492702785354692593898751977723193132863102156754954063241000126335185439290015635466501700871144023167393367855933825823300490785726094362085918206322549510206226462465894315705278080434279286215126188514842466058039522365003066029048871122794426545320762436716228043243421281406959997751695137856886132687577065803196510399877132165896207640300560307677881885686003120898209113901986324422895729255252341396883452410265325405695834369320267894911872420115894089817056254856916177082600721897889874988628048448124205596805119651611781440563740863858774450048590099763599689927625686662165153310089207234645333654872127159910862624282655756802796433748848834074854964483248558684159709536388077901693447957301428827147069524960250999715602978399752745027853259651443706026097592948050173260380256231038349463514688748525589902357994349551301697155700226646122655777708636571450828923784542098805704483597679009837229414935591414797415327950373887404835897970941917763392446670390798913788640876127048438091577492937520015166552609830089649463824053817285797644383058691687378697350628452802814659112581083479846052481221539971998938447351904394937023946756454147106408206930041984498106845970005039437752374689063322266220861645379665122067315725880067836609459537654550881254764187877249393328790125336276694018688771232664801063059892001458924002335356840118012746751889571050439733570339968169774020315851069447624984287228600743765126303146009586607778405351183027000636850412377034763858822730041653815558325391342991198320451716038219646684449842352794192207153664396571945893466797216668485064003493177948215277682118171622805725559947858211522044812576785690541203435300329343686353157742065371282771807367056555488142856186994211163433342777889218886806269192391504714395511335922793058883081456642153075530384975654085041541140417320606226001273264136855583233985440462031496553777585278654545615428360871665999400555902716254103405402758421357422886793876947344676630300087190093698462575085191804764815166702360126127613975422969096594062262882878756702948518940846115244224781598760419867392701714929819408177113007632168331977149392806311086434303766014675141354189582289639503151416472189243810423912189360897955125342043338050193685212454672441716491554432494216934071098101204389868246964569578733462339721019361955321736266216524004144217840693592421168593146220342484661635206176636214711572576875923611096658114608368099671835546496978764821811504205610048298105422853146983904135926763957150759543278064058885381443971106168087250332282833634552503747754528313113847822522498340171092634410209451979056308842600696374701693815200887368633025051202004128451348966822706673612035950420413756264076254223544380474072045113289764090775394717524667101210432855120446104916667553264455931176447017376716189061951784667833012109641795581506961450257786621639355202956446617399502050483151986760087410972078552801061747624062027454544096915296198224685165044581956014597558481616648004420530051131573475954693152838367770819529802118165425668553350629764053137556848029141524689177687015135249824767114240331866999096975357594505563974945196240703390904978234264676865866367288290504079235822941026767741844930710395615648150328209062740729870306969338606554717325774495665945311606673407805275924492264587200262905755365507022849858491705216162070739623887992591620296961088024271716407302064195618875863325911427274754529318067166181491252032404385097134514799764985126464805034630233422151534802294039961750878846773753495941967421406957027599572986976473336899257341761843370840026897253937088550529351815768999928263480846776840458238659103465788165926895017394421622812915634834446876519493765183535238178692610029343426888810102308782078534718979059377188542781190020510222416848128789852680631365066734569328444233833418394197649934732614065949897349106067541640170529072260256514096728386393678961008342594751823883962462193006817139275047256071330202047667393496834128112031522124408461341831468066183926014903842521392512304048006254964807650211610056401501486128509892407417068805294610465708332710254116984871955988949504931071951496048068776424683354782931561070716998035595528409100302671264475071551284591642588100306547410303075213434361822584581530533234147896464761154192214103674085344253214107942701288340114361562774871053492554120445760049135892426172020449795039261422131791030004813019621291481088743009593533350604983371827000832127392210806883962640220794523398395925921041733190156025499687430897178402021452159887700915401410755946128371804845650978356759211973858985633704639706754580295565480153378169032089017379370444392474858097531077793169968332428038877491923378453773145911758568362108115405928833396032027006750146336817892865539096976058997772949893443116134518378075289926141073299881090100817044277932499072266660230338412592741898538581926695879083700330658591654257788084770624404514212223307390110271538525796632525413667888317928105075801533372908769197073182740848082684550357996328177317760801300921771880750525922297633964268160632768812870871479995429683856745931840823025018194119256544503581565473274568299371317700966958972816946130234989645730466666720978189336513161291080673467981947257681120782300181037891822909603037822676476350370632130641433501825185330884426571987672251226721568286062404173889666064104907669286276215315179146546285648430311520817908604644250418424765937079520470823053367797210241533996632036913261686156145580077564129229963650460456796647485217070951564166111955419174668646926564028954312961603881229221255024546012755876398945604294692001680826819641158564254462623171382114023467977859463558602248443684355479286030297473884794536559670315211435859387659050692775484966211219541813668052577587822603634368859712875629944091049089946099769423301026436496249013893527893823878665034569514986000220085403592880549519773252214508896240349709503693718608316234390756727299433399939606885853711019822218317017061171948337296336381626781417928410802128140504947332117667318925085858705792309644616072836741106035303823235295683088557202326570476882444487269279433822303167531520208544275092317303508296739797865767743798000127857315970604038298923917031387957184485933272305126526536128132227365668738718054582528125048403053546425384901499516824595077182387259670777673001000762971738070771744307488007078251674176248007946055676051561515406668641123734949097148217101906480485472886698156269835761082338262330137033415867290423837033243524839803789459144492382917721952797070803635893036704979286211539450763160411298007643088245523857227804251061542211880224063347254649905850705266438001954490011678860956626268486113389766997024895695514046850042856757558385197798109745132078344411614856073515606304345496643965790663452051923227947934096849739083481414864696209579168847505232045064431694319111444767804111264447042366013445969345734261216855531778840589242532279910201563676743218313433555178622730690365859307760551330483241942092721864251688322734825600819287551025851017121852027948339214642445427995677396679878630422900029193693443774683939768755965050420775611796644468801579905627491399679349511996150540807648403928724586045098716860750271969870571667558146654575636846374925962520391931601362533796356809965373430102870599020162871490382863626720251432807853214223701587590715911131733364384922487577981078704144662138270334859675953065816050631910522323802417378111823113003846851214531947708708257540890530335409728823807762973028248286862905416397296999772910072316092930113741115831593718004749657726318845826996833184914892035381778084663425706486703533687065491993095160126136470572979351274790954154106210350260080248263595399918298936174589020420441408486203192509927848974755962104551926865022617798781417764262575927993738485444939441292697816060851364210482989900525462109559033754746148706059672189529187619401082291657344341829734473444760623644718779578886922655958475488851472463233688042051992104790166819938252181722240176997390496419627202952008962104216584640110278835362182189133827375166323852925544467932903842581424921639317925359697593806865504698143782626855726434307354621430915118725861948837681344316398471452648125667570677750698022374118803250314584131037491544110080495772626986468434458806448798706152309216679440234215759141770323082136723545004806051256352054928572504607721418999196061050078616479248288622647289908525837469972220887137673334873184404482685165682259417726616984421821411723925215400910172550128976939883160666242687478935361213007524887792459988112059379919022431937894724086823134447390887373484713511532209665543465944605242773423408823081659144491814197708677998012467373008023835119281371204732364190734077511214865053824206232832477945209872968429244735963333020639829431194041499595615938592399476651080562593874585720888217646340208949580063681779773175293255043567080282951093562392190891997779004987475554601424497594675516623815712645961181088797830471173530112277714664255129845538207427589521576895736943195148901562837017321352383382852846677683028589520097451054867938988781813757506264997565915018241684680626686468694305423438559009160524860633573224956160606229038658069230022627843948341924591884056849617513216093423990431858668677901829152530478363178935020092039305196332792477672463619045689439842850824346113871280175800039593253245579751710948808243322876366388686316452475178933325925545029596818340141887588417022361111795870872364145484308092056705877536261522559770260646350162861555549877594528804894608532857183945230705276190976805447627568867527948953991693859215203167620361196947499854493689975944250195175155883639016332160121415082790933875322626738328975345751776764528798854778215641118390194163044491011465765808575816619526748199858106483562893143319862110869594084632179995104120250323599098740712800125994427449680778622830112302803501824283204340831285750740688504266140523943896709247886531624688144881054505505460418372595761366778026143913529705047903370668319564149943952449780157572281328215348793540153247615415253990785921671348276109088497667052679059260733999823451882940593212143590841859345669919998168691943438538046203635728764807501345427861223609899388638061728357396135657022037051403437612564035292302818385891289644870471623477388954643904481768373841532679812843300015739080865900575582533507120106901173335087712533804574809471768740802086732382835571971726479851590372682457548499286295082967369543747517241090806677752937070264832520780321655253872489898833299759710049737604706296928079722131911076139440541887217499224097653872209731081104620448122143899215586423399443651052491564684958261025325235593803701423667611131000013972851731711822677163844522790166771236183629619893239427094863306140846347806448601041725499196681748849587603935116910555603602212340709143776430017991253080997928712663849549252491812129343479941785913794161681631568146043914958204965093686553852655798070511825024178441594853348051169375439826502818698277228833791142795259041344655880662310936235321346629057605033195308086098476452688610369325547809148398520463121465876832589821930660900953504966765180879457783968668204442502500932231534710169766322671439920635083114344183945368124930559072428602158595582896181068453296955828120846609942145342245480642230766833086262547885468852223206604787082068041401723713234294865289821054567433652727065307645155450250926442621280232119007308187189295878098967010818044217162785125865460886466813383249142099717097381741729290293220700594739350203912977802862298201026284349264144653452424830947971956250145567998094244669722383768580398792175883771638386229399413310815662243022130172889036318919432892530346515148069895437059406334326267589918508754945368604536508400981417431598561504353263516513531459925477152014434013644832486799186440649774562988965103447041132734913268025487410304011508844851524288579229648251648344647881859749176289539640418763457588436317494944652208746128018090478180232441152910373645805958502613011211618049322150291102855849690912235110422228548022146800895697355944696565882184577263486979812472513357896803374398324871785268980620001872062837505430979317670926934208816311237962388393124490588246056699201821485056408775815699326010191215560942415844850360241893322482698816150844642382003815500691661252015040089138433083442558374359183356000479063475288649841203160594177555896364488512240814604095978907284799856772566967396834029471997145815719454476689050583596740175334654783029265232969914417616771656306056002819566466754145973151948206249356471412025260748863479932568143713769299675293440027794847167687174059271061877931238486934083588457801365763342000184424778263889994562595213958955332500113972687274002270588951879370669911842447056788639185146609962072422243898144069349159890729653240353721410789698986213478319198939996414083488674711618611700341350570835818603621941702390862356936074951357874613917914519932389733126007330792995074656635712637164853946977862549984632988578624232463512657298924934844969408933616720095084325668858042747238586671540279510916452755909559036177540432471990919294974573529603985977192237163971137010763612023206256656581489172515715503706518195150714146034220508282255126252665696683688630619495541205069455839073043782710735943898837403095624125017679512756460875246148822432312390374812160735078965311472038914088080699565445898835690761852218155140028847319262461708869241327667316656910464298225361576030447658930320939870292658674954547404671038889596618226922420661487026454036269712306272273939965533771416768122716397105396291736996211084374228373146584019953678801666487982943903188983871052905941693561334451870257863635359708855363585830032108625362687180576042437411292584277273752023080594300724505457493558075199196632940625435767897533593209103722940509683567678843755945212140365561664119682450802670523648767492209643648221136535649062243045894942109816066213020157360569403486202625593239647745780588804814983779596688140134030842718615377880161997732164355807478424023610949127060068507521230878353728159361445630359157731109865869321871983469557069535082748442614976291139668306274809067454268091545399359310457350472564168643549396525618838141767269173089657818176430124870508622097780542946211505289254593385648904365767042466257720009094816219945256722140240531987336305713235172812488047349959483527959545225435165929685286403402437131672539855687831492220619638668456610341438970409826093792638627677513222176226506102006403703887709563596788598806112136072758028306208914011969714643747472235000613698531651892880891411357854878197730314310365083464352537735921582324387529100988880385861576736770773982335724601454555200073221010988335375558321023173764103845381195553590520446472339331225212516294692314460677387166414272111796160890211321151596919545598808572009118785013433041930287703563889814142160918540569307811233675778374258348713740368721565512750304028588776368895633698854359148051960589451785144547830466571607450255531288330396005907925640891737052707870866240281958622613249822361150714311271142035254989889592518482981193515674266662809695460516776486490604827360057574021412183139504517042423200578709531453834553128552369372114459929118382601234818975906834437243278966098787457815499614633316102180602562027103313544853537887722210334027344365346069205695239002907725614117572429364597218623289880823692168558047437224731423548453724377468140154168079900147797202088557963729084739675880247762385136558537297765115597171655182632114012950848382888037739982338241913121122808005261276384893676769206177459870266542041012198111958697821096469784347818309445059603520050604153550533266321632880780358800797235795958936300883856585607820532902337439147908771784848565563620832983129064898806472235607589971150021468929128455467822138860192839360099486821348646143022936125738359050533575514019478606993841034103637732208838995543433937372519091774795105550541861165115465990779566840154072164465313392180563907476093516741631554721264477325038979436668845947018055194103188878346409479454972202541366035921606067137433218868683956281611302072360285918022501268043904410321199600269254478848630625041923685210353525741526440512960335901637062571140974671387452664776595440758916683362069349860412996664154786101124766055373692178088510523438941409329875109577924426458265280001559953880986446638334319184502088124267576322951569143162178707143789605169507618300795281175306427115898876189663691454239220947721982831531613397063221511594029937017091764667986744267858865506305984004038124221940751735403228372617825482268849092101238270713454791487118115351870197279132487940541244616715384686167298174365436935245763281871027987800633045147277685555318586542528521821106257571557711060311195704080645986260046324770276717008758656454707805744225479128790966713960487544153393253426878702022223371444056771381643980292977823590894791856785316515909862240012343495886091690712706337162444298079803871046422392175600099316140331230960215508254434778153534726485441296515654164217395653357986160156597992643396791934462152315288300333452383560944943064116041007718754076050377069663053196880743510963534995383989439690217950488351121622650323708491875272654036997081183813660267232517042276574474233071439743783693045411092676300622131482791644524754762961839163632265760689404145656186367307453986304173470038427337737297906629201151691707833653251464358755273760968278645426514135066548347124250483779969240362343572944337358783356133053119455324761341525724910852272359540477074773943446544074890156301692749308603472558124719718174198743664302497743069150716521073804129623127529905164636889723181817005284381022441778991807294307657112936891816838759445803060672539387021559905650967202338880602629743154168246632183804455791472179655560458992100701353719975868784591784815633085792812073598068081805146495685917069092194022194676697315640326240321046542606958673069374479055140884332877359523201050788539001118194669076219492213166629661216848639807784235139917394473381584701671749518913751659796598103690443921587590396907552180351072664332100844618479746875498675192413386532388875495326831574645939750002433236025186234171305633297564969730269129119561484373609895965455117102179495127031589972880285098832826557749189779088491543414092378162669188632955203626957938277046683084779890872897965184838967256547764736331632252792736895981400213969025003578187299106324271051830769889430959506731803093649677907517670286445299546550114161720824995679076575730462771108990792508357865542533179500854899351222431172936733523085382225980480738046566010883358691735363785496217594971625732115576091117996577403455306369582056433312609684343487042209083197951875747368728142271377126406533052197649373185700413863439323638589777825619110679930604004650562403802647831499177440837958813122618988342661387938092808319365691356638244114695615794333636658344657276804094340483946287669400832068351081699654522396572410077395536281992358850107145646878275233361269137932905559388972717000400191284300546685382126584788625976205746875148290898347531627268886952402524453372866103623221077620448463269286798429869446001487419825169643958151896166367155437765898306071646491678393722309740750336405332105644907199513331234186493948417901430913385602199073099335500654429458415406771620353388652421379620156772385724090050434882688181731240898246792448205923569015614247794414868658624470358617427842013366914135960610843874771443085175065818145210853176886694539651129506624516189309712573916264996210013774627637138658347290877477899076246204663116972404938231176186244117701604344091683506543247975441377257248254268733860438882456894790323320360496805722788838871467870890720841449627573438446509581548159124827451287113814478969929302483930621831622359524069848995590211852803450287073013062931443050969336229923529496210681543554057493106645082208500317039413130067797849797849533352658906235270091625058009728806315019934036535768338457865790442263167071506670005638318100783899793154946398022770009205794069836119780528312947669141842793529975081988167375323337021442414208187266443986815971403254882215620171803828519818272574779241998373807822790447456570806367527428246613588540643677969834160176086559635603695319064027483034656286014017073257316200163726169180952819156740823816727618959024513584605690481196025791060487704744083728945579644462461302688818608933041634370841217150126642552141108239219571354852375643056811062806195645472066139756849516014829617609119116963294386924060550529954931916062028903897743976786751092678286214841843489977487855039815123915977179332552630821466947121308626277830049103818234323411253312154320292335699571886215326592817042500246482778649841184625232243215278029294963336245918786545389540851078134336244417625171693180738631593835439568491644802640831495370840477275694054049268468068810092666924503262812539919345164914485817096576804414420490536819019039561755678905062148543223720170439819911126711584096991153108827236474559019918328253199134846957823682789911016049346925856811057622975670696527623807442220175660512398316563343966572245151716190180154184480926668059558519221341725329948369769808227215494544418730640479309947457120249588264648607619799395257721538815484456303451814279157099702890509066588227584248838555620576521373251130906192160239156515948738782348412219743743611228950952480176985398691824980401988499597795226022820923043379186664928742827337699969039641432546788446208492522503703551670435708580224183589883359890595042100540758361119468343489696258162062821180813458478090653330513596605462852332753181410022684294873094596731916999303282421449917775728740261905610367787041687978304401389324626716081820117049777320353353835491693158883282757877969857930675580589819655053544637374826182365879991462504992718933563922287726504768203597621672997486609396112103425309011558874410884229816294405091538622875398969283920939780262923711734528956386414106099111398667891621098622761629379659708824287731086924891609575109113845130080517236930739741960920405669665179187105707705066477745180150178703846485658635285265697334509537496725342702511889549811905195495681575655093296813999123895517983111388476584660529591321282727642658980039502681223041981336427056274619775633419509922093217927707348452806934012340147347104939653223751432727024394854121681435328820928675898025289542622554608121523859284418935846509573487342495862003900032589960780730710601628544930100247230907292701301457461122749088568670851298282002575417755696018539285609268907637720709745985205100340295075161779178389740330631853164114901027020757453882035757768932175104006495072822004939655239185282230671532894970457209713371539222217682649995150374404819061647996893642118790353133988132941661451808098352024685079465322565508494904865094531121454852860170774099886386606398797712561997619200638128918948894872033430588736255061249196210353272588387337768567955810561580912331116720666490253438229798169254317979745106233929498442234284480848010750110501118186429745062295954591772843315315769361659847041465454050625918639920423872131721327621601239109904641223620910643676527730611019514279029849312898606824900134454705705079157723226843049408513354327155859692557744404153364813090892586728869745289023878229597726833085199670802371859371919218449413163175129935218670179467172191598703367006533200973602088160005835783248135169467941657846450719079474785159195458905705022622861868326921607871012802951955294814363130226538690502925966720654089328906859454435249637058648019340518250832248782924827328030335554844015191824761187880752601012085016893235681143101192161492291112847670120661658068235569715121517553000840165151657876000035229266336378508874891701081053184011700199833586356630343868246346767840464812357227933366063472821746712329503961000053275181433669840018266701657690987275199457717923764624982737157159874346119565643764002008856095227562896037221742501568566114394889109153977920586399194305446762428337758839824028667033844124689162880803653397451619133946116473416487710465606735374426072704190909809374739930809006732656806227447693314165556121938534861367750886197686189764757770721972311058232314406759377479526026698187086657247354187531861755486168566815721104238325384205664713440934859862195929702663153266616028747941485492691044416062927793481000350158302070640140465382067947452613782947948091757432073567289348352216489913750619356781531048156642648882402912682708338527046767712039662422643871399325310559724900581379746502379803352302962858671838400787709568654705608958413411678390222198527004378136440559296719274802199235545682222674112747830819517241248231759442904678625863715135500402702596045386487410513546052862089476912834690475499341941451354004942550624974297308837310711407031363374817815343050970414790138277460744803576061714573947832547289221303337213017102715913256515019715532933768342524196143087551676948868878820565661999988223935276419809302629730315635438006889496846949358714655226390183084491116402415516051440304204117114148306910039872232067707787967937804357497292121414311849655118304194431174495583378224461979900667188609967867315631111202466800266836747969837981641001948635985560339669787279370139465455750178157581552327406508352220752350620316662213376153798848808487678422297641058366752105737343936004443994624770459066707681189200053810259963794140971322920277838510264701918950809542585694384491871594691478091511967475257441199073739974451896695894364064360488149352583715898169819806779441477937625674390570717254990944695361322718233489492329664139104142893788756949278120386798609087965447476573720228115687018042763903514870094779617875315297345238915594723260942570996685531580814000874461157874529589622975147547466102061616078073814983946539800058879189111481658090060829736494255097246827898770121012452951798830859913805148196599044546241845447335420102764959445602554433126815771133415495276458442250904001419845263421791057796865388727665495266016989622634565213106334118751236236036956732281052389554006835747418249715529976145894609690587428985796289166746105563681401016100732976145848992760098374202280643515601463105020027871729244249777639170519234011859621164918462492933060829192524721650027808749563900696732753324552285538542764816616498217022951874996247299822485141988885071988062007503291362316232890128598628431448831396599100491664152849015478141641706912749590660019596610360012168478136541002832129422727397319252642466981705568386562748307925705652063923887108192834612595607469097599632959457651537365013412353770559829184422513988430192134729280739047400987874775862726056598401354286364514872102520010124142925198477470312580951047297499807449359264262154308968308690183564259325998539936194383120544859009615969793058724345160588582105246831219792685832450919579425741024243791507245447221755218392771364985672229464528016892939418411267586190656148231528699958893916455956612942483654204135861311006951965073014867081151551989534927629191723277972842651901930288833458731586009163088764983651708101664886838187031863395446636486802311679383046103861286341184820766132460496091801493368511298867256247740177262509821016191403590863637560213813652433578608119101489316746613704507290894921364808982524996648848383255202002413854017558091101634168484614541633300807444693397018019360829870549735003539436483140917006406356658968701145209968015168282451705690208243710967442767879300354355806992540144033507114142750001979275607275935124758301851716132911593419975190321843355682190101918875899975339506256820914804990267325840773737089167804257115506803193650274313862653368680721759006910233329585080074899789105301263920046378247527674843803006009334605603244469191988272985685405767574906927002137407350052702713570327474787978104546185408132881361882322914100048555891433892914672178906244421863514179290079115024387548876995450036884756502505165715554487972207590891008132810473473mess = pow(C,d,N) # Claculation is impossible```#### Hence calculation is difficult Here the primes are repeating. so we create a new modulus to bypass the calculation with large numbers. Here we find the congruency of message according to our new modulus. But as the message is less than our new modulus pow(3,1545). The congruency will become the real message. So We construct our new modulus pow(3,1545), from that we have to find regarding Decryption key.```pyn = pow(3,1545)totient = pow(3,1544)*(3-1)d = inverse(e,totient)mess = pow(c,d,n)flag = long_to_bytes(mess)```[exploit.py](https://github.com/D1r3Wolf/CTF-writeups/blob/master/FireShell-2019/Biggers/exploit.py)# flag is F#{b1g_m0d_1s_unbr34k4bl3_4m_1_r1gh7?}
