129344364214522563357350236979956899156496673037122055254831415620599710416170345937740421237957486767768089834267454585213371773530437797250849787407485719341239708833283585639159794646537554777190904118124000961898344104779852705841863773113915938528089519208793633691186884248329690980255651815383353752817571902125767136196459360119754161580577651087421494856684828718992989856894604834235611307383747109424542976107497601564163391456628455149431513173037404364539279953602170702598669261601304294315093389220031949166190748643266182467019532941610868382643476923119589708058636638406279861778029810276172191462791965099083026614525887802607479622492636016951860497093803764146947411384427723358564180665162111693532895824201714439421628228978079292585288729960938358129033657772563548905198374432055424425735226764475917790515039328569786785864698211397449865038209268029687414601831385176876365994054458429078522577892273361988213152213378048159396546348203499831558811449369168402985852064133712174347720741385194887481979348810128711563105216079654879671526867370930037122113499179770451531628981632145861530853969191141673426558094477034535948983451148965307801963249735861048134937405785716535515116938487025300869114337452624019544434068881863398731652472937345203490117577743060992043649327317862809769914064622682720873089214165921777721935190692595345880906469979139249585602851362458039288521735752781976399545021261041371577057609993140404749138450708234776794296263161873571460910769696138516823203336460766120534268284559181214257801696902373630838236595510219293991584489099525870502636171167863176031949614474547550586968703689438494327827547670859710735560266073094444164737629931383025621209629641951280949762088899899815906548351170173547162031405355152265053736837618929392550898715822791651201722609424231227962488442477747152625768154996373898809253548624864987030861604515580602488991118639421226887578528166476753009174422832118279468964453690073989767985280691052067637913749921441956001126652648279815270339744215405353499620458385349517277468899894768917019563193718799309162437411512386658904142144488244217639213421998460037053571437943885252933820117823897865124410101530989258522812809880558935362597339076534972989809278664091795666357121895876323925652550064694619761648783742936091543712219938797232154715312729829442168263557300652672261751244145407367197467136355388374372522182205153655958605731389668788782670945655284593990688447687258664912692033719415873789312328563175659772593291929758415121843446483040159295267392134870205896384278678950914650630481754687812148331482146256220949353967475178243972445214933637424659675777534174054623553093281500711004280596623825430973150565342290164232579639498234055179551316487245144215645684436008280587530183581416868951694270933529829488632682773482291495198204332426007530513430750989155973019969859876030423734371362738917909852861012987702424644248221538082971483112600871036182516174565812153559641262495902690133747616115776927382114481140711351616540659848687991390846340583162509129468634512677469640898345937863286723220079549569130331858586221499968827250436317448125331447328001120562610728349392216327240972443765253118283556795555521678199157272333708352127734863065220782696115736345702051035524506034293939315667191886989351157686142381951516277477966707233572001464993961904380973835005406604850535084685749483623737044117398508278631274177779782381421305568271346486942943409725493122804059235083194450090964359303770108559507332902311140960855076216775937542257663095910919198608337810557742307395573975611726397190525311034688654330021679500616675237986255733873153882908074923118330717333656274467816579102498211146834742895964453423500580973216841418903253665859954808582158755231886352999748007396051661374474137456546308694652565286126137756654397464641929583670513897196959856420416684147112644846255877723187765098089632761446471539357079610597181541366046611708143371855287683716629573072231138071507600895603409576122179363235336332733280955273926635816340025609425048985938105788294944780645596468588441568155491146662536176732778744885996982141653243324468995269917166945022598935311805817476342695125578901994594975410756737533568732886726219322744636979886155494814712148247825022039119461325211485564159144617574863152827801545933572383643486135720266574548268176192898935399976248964129119976254163160310378577686072502692300019961971404285889341309295387391851773661622973758974649087793330857024261258786403221626267973918193172370773410973196780778777998556977749449136387732935314240497125265286941873861422264523687516634557819844878891794522978284765892773334925807501637662628941765624772035249739489247197366164738139735182065916099085509545119321706483159980113208865716558875576387502409386996279216729735298333526059370658750548335071097587284891474955052977251764355172209662911679043493575595649338957445141350116566931327330338653396533335430527831956625534894321984851871992700426168396398373530539918301188671080284719987741117940501182321293522520167398424269668329045348398074358542643117608343606643425097456825540299479972762618942565551813988516156076130765946542675478497620241574475150699328512340845479796033448186656704344926585133002325252922225624778302373830861197277127200145395071710616382728295789815054666296599899880234179004913435911733348085431759608487302961525698457606282783965560876398848717663119668501340518103972707286323875540749717864946306694328055901137469296482968947224671787661616359370155222252491570645283373515410028322147472685614270668333248769646319607496147612472412483561531845735782735356692576486002223967519113828766772143266827691924074362376077349196039795195400062615629602851371827996181886212066358529468837299969195318775013727917235772772307904