PREME/G/MU343051
064407914554662145510779777043154858670568016035564768267537536207082459911761929493293554956741117117596417972163689277915458207435634334849907913416622810259755589285862467419688636267616534726793609819589506438385221566273367582040751190782618233493513475953621467835625382651524997009613458828843314962627918730008922177462630090564685930569082656282629972850767686407993932834096543504787936964912426653348752378816123371113076130621351696938978896089522393280407830937318864381624088334060677846523136247252901491846190124255639880026851805885032544357338914148234714925513817718542435195067925471304478694748378040132426062806155221656869097008431217573471471683423524046743826131770838203276564816256733831314571231910420558153648399195828035853232928318144911799434267258190542636706157257294950266482260894256069497729758805379987272561208569184144144957507456733145840065901563622653873008609797650683208852362908691025954184934104244002352390375366890473521783477080495942094400949479265729504591063062740338039989127842868723942804269496418199155403878563285888888778765820470866148287678053480203076420257954415015992813848389068174015176916692120530089029278319872334671256805769945150015653145246069420861368152464036072985827596654025265340659833729981232862789622462560478006079280895851638871430042474037928571777985873982484662220767298397973402833550197472870223838937467170795660413343850295582826031060549712474984981664821685308776979539398803324171070111901470687539743331117953208443689120021918499738880090749831427063217646749583223947329043567422403444608628670014662429189707061252902948521836865558005561271917373286717031675778861208746393527539603414470534840995065154092050373946396704748736491931907643000005075544639219538123073164499690803983205452638364171047027422538105620926883448255266098211825847023040691286302749003516244346345657938788741782521694498943587933537068029196837843586068599444205374215959096663599547212962988248209089990670426374905167142501652393444087207134003803354197216715268884848046777030836780277052304211517612759784595677812532414164898973351161708092276864714004630312282413685640413082376292286384079168121280632956425709161393922374908917173937545698265550270311452649399204337296678973493231191500351100726614559376557165478382375753170970759675052923380317204871422179899664649742639024569498035812195655625178938974122174405261411539106938662457700585817186301642368171251298751533147892736832937642321139862189627115755280613067364544144207250352860240587692942093531544140977397154509226788475884193592777834576340616725239242932599907095001561007506957969590104444804397842902089386826573031221231836001063396545390494063702016393143669598918361406115938731036439813832988257825550865706027451497218993100615839163934309936931884145650097553078810734631535750433096130728064540981283786968820588030033379341454032194596838622738509139373405820738900282706829231894743073098742270433521131071107916269982716093441315736900249011194607941739773308318470534289758706294616451979383219841365795768335919646438820630341459315866701144155176222012794812459063945229348813504416231688201020870314836619851935426871865705325717228702633654066052210086802085498831436491227924578021189892274666711989813242203276177907842461644962086982013208825940805686323451060179821451246731870927474565324009220552518110685726479851366804534023225788852712381034345673521454295294314796573172795858034080610342207551615698158152259630221557980333510242030208714927739698391891255639694342854797722436792915587856568149782074535921091268744853274407921492357698026527256858886596004867001737719194138941182527510253101633928156954140095622323773254571529122990831876923488724618505029935582371285115906930962336065277267364311238541373256286726158550202937412871837298511483080862045809475727510483144343227939963005808902532486360624340782541522213170612171717142454387022296282745914854238153290983728971842247490363796150423676471444927908018153529503277400307079419891317605137922479153099770012274296918565680740851777293717641414522934734435997157719007069226151680856550157416497095589178927929720948869350849863113351934374900547797842435522838884083485346140721447402335735606648614285846851981392837014820898481269154801039474923978667386663054267889853205632555865831103762798298234398658430504426318002561527628695417574364746082867787419389659967380371136985101583277162202147462257213989280955940404569403138527787652060392008029471128828063542666319119477251471670455675160661261356751725899888942040518102881224707232610766228320912601521280479841551455226001179595608294904086391084677849260984451499469758801325948412493845397947501727509734470047364467050559146185169481903372753466808305469635785395120880663205439906508389539200550854818197729169557102916928908579602203971761567212360864958061491787302043224874822182604025743331960182546133036129679110387482474747571765979530110180751214397057810958008838736200677363249747907344503687021932528437016184623916409313123413768232114666579460011680061303039460650203432124501850245066894031249457503712246526213078009726144030065995755856697246296648773652473857849532658363500069574067994297764608920458349954929296178185472807916224519157329153069036787402423759932925070669795236319336473795424248159947439639392305253337986154042627343161256412301391159467904225877381148935641021420372418609016540268207994233830720941712461498040634575730205948861651327004878901022098005981931413755197526160846159436324138268828796924005749620299364870810146728649582807110298361085947857719269221969303757985952441423356932901122154674358872081327092365794707516911184862900791849449611717572455913445052453272089625168725665422922746673444255999022565487464535480067257188882284460672909544403717093497891500762258056598888638260767249727558582645206846832013023482770754050354902981754207106202656988288047921653941666058018659870795765837654928508191270249988250052353452751737372599683588315589559078926302749702066648945395813604476975948192065710195985546127571335420472916339507314379260533289092917738397021639069466795333214263311952129129256831245627037820697021676628293069257672985432733474523183289266360518925294746549854708238462256537002993324190735558689832229961442236699239725713264092388173978668933448255414107682009847369641440109915939379367407768611615988942407313174376619292707468385753557827022657444041636606307391585013126152872354380135241304634964068433565554641024005303715334430683990244657042524910554405789477511599387090491888217355514036753632678216142567479466714415599603167115208123022721049937841581482506398505284088220972887380942733358628809522100317268777455250524489077409978533343670078207260821721876874268405946331159483727032840027509237839149659889730233019969988295073375448021669367890941930333647490887080297222430038622391930798635348309530582194655794241653615106918642136101882368027404853842875654728862834404276503645959320000718068285287646678311143882473669979266302263159567708402085198768671200300847493052183972627614540236443165424051461677359163785019497200780645238535282634173861152785426030045437333646964332492975231048986097780569962501500173381343945057245684097371797772258082134188789793465924967534018505791747512118261669617820488269719364772444860388169132966112290970186152295387858760614091742679702273014984095931365454518730350608250326907646214140724042570861140638621500073441674756214647736081480863058402588719940479591292483699331497049942558014073611295875087665644546264538039613477274847937541906905630934772817718058519947438084484615681065370161738834951258100019164709689009982774811078083172968608129642799232424766414521818342529122830099789927039068125859195551153999907312479884634739183427673796052062797093336300763718667613833720974730640777258566917866745267164676786573742191319919078765658651141094878993963625418006596125249993686311034569209928586730344147484349999853499638613472067353988228083085995298930200046751937100960822670675143446967157066453239943249056717023554929353643728872655818027055562268265064714711725532370359657059729565071599351378602096077167718247385780416040544888362761096589138648158900371063123413936148216478788536462195535850610212570685441690090159451129617028863979334648095741652269011391617968886933213801635730398630052810857114469913458159833904183303551459003433425151161553160365927540605987186374183110788973735881578326660508079557326577962216777147220564806477785755037333122824226230766365965660778127596641875087338134974615421576803524092209002029742844549070605884690980073646990858680840085514308875127504386996270056829137566441910666164209687977456410886303596610896295246100881226024070530610124240166871712348070076046065297597983540214837155440500157783508863934166672189907159901887860642071742384383611734999637528078897329816208661177783617544668462354788301354608011491053728941626900227649115246947512326049340507120208422553038272615605943693978819267420751463233893174155119446503842883222895363461378721753590639457377933758358976380353889325191501138320492340844260035562970089675428278096687923011808942889206302419790058983662952162106245965240732171837861556040287685040502399702287745897692366258944080134523104871870925030937801424259266402033093100489417584233185020791815210506326861154362034717355767476391794125942731956979359457698192862239118935190285193373326542466434138371936090130794388032806946274023720662981763367735875972360385544533912505285733730168647456148989695778917491145262182422653986467166363360706616148885839294890757955060028024033795290545647006913439746823358799902854047832595609077177934915091719153151811717458379525257080151410521980328610206043463335259299807055732236067841090809558422796641350794546881110687768630812831107673481808443385993929773715261810198719549544099231211427310898275246305574937709345809745935165281972029071494355139264318036174013460459326417016455922662061853606220324714062407738030954510858973385309578742193057393770794208542437131814510969572254144745620323179982171690634114686968486324914089873705843385140832312516759393969337703835645979342187844025555916799017189609338822255177613824699139477541459753691741778777220850043495516972361524226926462148094463570042169854250842688264720427061597411763459182700949411930368257822950128498402963259629170378121019942544322393983985384074191876293784521596006904682579944191870576819563010704645635244276471895767532282193006711550582163006678987876856675145417398503932077692403180094575352776214056136316407680583380454185066693310077604479916240211878318485235833693096318425423222438102485006018915871267552528453111603818383553299577446849055510105336008538068159717212001167235108041571179662319014304706778783153751592493815285492716264254286248031473687017928616249836359675958545095276669976352186074166949166968133515522830445668182264930704429476735466901196284683891713757447766541728585981436748440020015235943161110660994055697246477804364480416042208363865593222066144155253490951491529228972536756508095349280463105839533043542422472418059014299992295180318850358298078409160671552252356482625942160730967175082310463870705307793615423968165970948896985625076223789426216345608686932189608271206766659589724217814559589250861255044640650604438026001220791509858924156554252726020865868795291118938698564573997937153313571882148076615171272447305472271690570064706511995117930788900696880778150879694506859074725306166712903860521331455780130924584763660518582716662892262923432851424860708385667075774177915299098242384143572925773577864011923680311042942947237643493571811407812462270493807452934958037789104657865983478812573553746417148322844364667529023487529667830645289604883185404845036734496937832585594817701139412062515261854467734016065246159919669913032033209507547460717666719760802432501795335454378532152574748183893674878028111943547061457936139453209903984937638945511185917786291137859444921993099324710257340314341574217363050315129221097058546633610229519986859501721074963807100410029528789328808515826600373998465992488118626742457331018278478056130078966736432575532452790251427757303205075385744580266714063082855985548494499170249498850277813757935298807076436134982412812607550460715622416803553151866597346802000485760456436846132848903747485646714369647108877310952516767762160381444761940598929072469085461664866430654020973022863737051402277003721070170797514913550350847865507039380324305164416844266794909035445796475062894735261214534552675321379026510317225003234385673312905068542029240097012948264850101982301455853035572852680720228419023537778322867186095313868076560792308409483344944562986926938397916030753948804455434026875390389216359894716207243568343220979467604127138871707393741086566565840524073527876747879169691058099497509177392245879150465712906331093792049570816417318945949996300722806844555846310762127501697313974232203256277179913966505748975663938548230252119178649614393599163668587699953031145109987103303023104696931578037678496923964579768042189941965649406444697283843441995114002463162537261273477539131332970088853260927717595402516854219806215664842767350310814265453125525331206995304561587313404042747677273992374419223292832856063011240447638039628398125315442194267939142592379912681262755645654050946051506839120156736882293590797253652419391895631780319179590699866323985701736052086075952308153025979074519959546501710166600011157422693780718847419507417874319894884444987309759531322720536609868843584780631795953460503507963289601207304831639045793813755587801775932515556477895131308323513036799481822968391348056598148302693351325068623057414023125670474722038602553224948219888231358259192439240204752406942833418331302154464525587360567837829116229523567770382428002740607772541786549936093303036106786279049961622693300797279662428133567101716315845093362920490071441748408113847198789292511596801868104592532634399469295239233753810085054387463583264379125921842031851435673183836541780811580649990977463798890301593848565870268004527646863201600258914614325127207002642942703288995842026794745175902710897953132116116030468457767089699511382495386961023193700567915427896358119308294331556404371254406787848523328851503455138678835893531860789692139525344072382989178090218042966056836938583097964216245061410325607740701605237288482392494438528971930374014982821098227079772103945882537236732177000274881039367526135880177921018942312007887785276265103208431398104859809002028030534948789568068212033949912211297702463251990105222128143820664252716941274352273195523838365067991200253551037630821686078464066083780021207071742428147753346767424706635762218942482353276126067136757907768034421578616547768511358400726139328628493021584152097763377899405951870598894012179604849811048939725298850400328178791041824881201208653467718802560330311901065784636113382011690819357651205247092365233053285335591574342850848761288993913335941124926699716783126689785271325200553163819226411630294262587655993400431020925406085454219543578526999965016427317576892220439229304453897491353265710078602648383046470492178218657240962205544466079885102741225477109898846379309335059570612907580431070371896841568332841893649812222309777116049353153723404210520485342194122659239122450743693168494869699215258042842918259482305534626346912109790869183642729593294690999868585486632209897452759943750063309628780516375571680362798981472536278421803660116775289861282585453934542491528161895270422189780970847392982775972633824579791022453931691627721943254081957451048946225719320022912352584294627124418820222821931515313804800510814604560622230712947479338908418037884875494668754571848532650740894835500326366319897904663804592605669132764857859591229773726855505762831543487007095734107664723760974027880242735199612724176994827659146016515521589803774609614011261141271475871552691540326143076713353313049918471885133659087002781749005167556478934287124656514472568697978484882568764974205651963543484397122970279830620183540726251609730038881440737553724602111578080251253084335049053472188198318971553449730363949383435021014006726986487702143158030805319343899916230243319680394135303369150541082242622816680432357930111465220828371419926517129028879430124611296228306383567433942851853779543093501282053007982948293973462854046062028085261708562218457299694058049901519208308793743878737234982968402824893883289232545369807650200460912128872180314126789766247591866754062438972686080376535744164871667739017329384803650112194255977139971301145743381516087143586946797973119977171056740502628465623486075761456223614817738398123397298929762727391927462918223433156564962006234440758006246675840880280844792614859782747255141236514838366013805995643917032211032717393778124068163086379848298635801765107460132417934247420811957197887792019447827182324253222192037837598055657523796291716503204147894495612451915442859610566268824337447835315346641264966437828898834075391244314187296200615089189131855746564234716633437751070947744915102173693796188021836831194206782018198802005355598327061102428320203732895866747091189431717894003229696084525517869927521907867462710393076736174448213830376043388782360592838627429970411301508903852632365785157765526998451634163991675846321979842122560884632674440824939231398960770223963699383830492661970356630139918654459937382862581932033504907463209024019579306402710543292865141084658223937002849438198585451892965967112776430050170459866325173457271776275116725016575317178286906000081518954418847038328763427204981651628108737488237124590875687585644661756107129394480862819394574131082223074289453114234249341251033198452970403964339769720096574637529525759703005732371263633689561031804647875157070548432703995548537618501747230515076947668104493786726040255618484426922996915652935849854160038901770591111901906869909194187517565845177974224712505407780999293623844565287562750365650109018427615645182953859907438967908043812607828208730484661987774636700615836748187326320249130003973511037892519910934074049216260754271945788717866599657005515922022966127968791075484043067200530577723987639203969800022003838177252641797348250101232383980580059144020444156997997337300408787296731617179977695794197618783535687752340389301265663507644685569938077457566664379460507653494693425468936476787876449182544379007096945698426961289451533189178089590836918803136844002387950932761470634827607351840734795163705114791698060011349732792181266890842592643680587952622267541849444052698449040981254697456060841723311719488969477706707756703910463081797808141096407791290734621425008545365220336880256697074478081729841773776569830565921490628886305689881874221170590455365621329610563492556836393316398226072033225519483191005401528834035517866592568813114821265320063356683702541777936104972422674665305931738656626418478837738962589077005229155775705428440732341704815370945250594559175938951880626033151065694232012346038746140503245139879721478278499429486466982698743864731507990564798796501253327342956934563636852012421566083866973313285979881440263691208211807976298930974408253191850562799285957001889613502365673914529646301565428745884891908953036852837131148491030616324040220835622648819341971358855942803833810484630569155571358305238152176312365844449513971115404451712748446378071945011856284833204924967580890086069391931728758193454942025663347126819569060776037754532367029910801870786620234552799470575365192344757996306707355033240938762273003894810829143332067856397172258066029054191843706952907543007395387674351517395870738194331013923256488371282173437830785922722044334306744597864530565724958094430986702892198505629309025916060817809919107262454464186021486941520973621428817245152902896777823204167828674440514392366751015021008933185312189437049763443326177803704287861394382237652166456247830187700257102526836026242558519136847011787523037133348144326335326848041842531575309210350819218025738045670259644005185746349385662185180373993074786195019295340323472306237805610935640366364718343875091648019241729395101820777027141321236627039894699601981811824710995794354486885458498548415869692302533953686757672767102205246135637624022477681680159353104632709821900588566453562038104195287067085049955550798506130520769315142072506865805916340127377444441401140294251351790492645511407574678946229476112593968443859685190694541931912198849770002248486064395499517859065598210505102892130500214089661340400362375859795692745012197316942519528000688148368294021302978359335839628552678107083252692002270295568662103495044202353457548394807047608635448758645931556158711510644969090874930006749410908484529091362280937776324385278095754156728536658253898429916753109875788747221193865643459583194084603029589512334684738240062106421823370052454006519387413274052052232767487960029555834120668596969019542186620354650211806189216753542400315740657782626701995507276399459277574316233838187464601491625927378926325166024783208189335890288158620768324073494624570488492603357547774465506508445143869694847761879842898073106531479669426469770743894208035562162210044351578434864714628817926022864558799292103167049710619991116861360490090830842676517256956884925221495349703652023308980028494258791912624042562609356884828529643311504341767418510527250699000208682635685455144345985568011551847822687697530203088908172063138627231242310762881733482813197839713888213387846459094868025499365358054001202714552972654625619687799757321254342572545297518307847678322802650789965364099346881683086680077778032605439363060807527854779652024530405313490879921805584674607511068753741918111453498938772700207891225111719951316492129434997721536882787357127455920370628291103817925869221192693888682333011922365788426600996690566836525160753381803411647471104082948314586009705688929680996934788070858323090743127443220753219252139530756925700000174563846595343463517321171392900994458422131871911676872388264854811129145154923311131790308376499422379636256926088526960263078017936157224918622282146744432402105648442817652792201257915354399258061451556552589865965418616616537760408330228168310670791201157617191572203274873668624009622342107679073716991170879256415124994488158419743179621757636622655249460627597175977086348482424080979881367161024341047498031787570929911490019995460382364080187841038082590071808963303646884005844948663192345568589171547034582344551025680116936363328710940850933817246882927072637348580806403133843871064172432624179862872593088305246933348990780055373829134370493396463815777747826680342470899456767514185001219878457086375751796769069218297106391045780532990301173366608690331384161471975601594331841836628932546194240793156550971464693717376563378739173280281247817022810438513419628366095471231135659209268853021970117279061196764515276885008982473705427241282024211422487507927075890692532825942873756087132114648795745584216472486926351724675926713897462433131410888668049133318340897348986811763673232958904850553299734821566087689729685913295512288427870632755162731706369344435672157317727906841758510049252328313490541615945289713510515232353523613953085930948209385522769238103889738749330454020470587518283779755009450370618493222098772212323931051353517793893818434765168245967692594456711885468500551094711600395398004196092924212567653907333524601815023410862047945505479387819407291692062721184441353354114651625568707890457961112804691405021042696199902543468322192347023742840729211089781100269808699909087939218587678557729859845589443455477353942626870430647548889913369779601788691630814671873266739882051746380696069258447988814073917980038290220476160397235792020643239796381430467268953397265067784038794126761510391472841003076186909627847020505226620730496006963574533679001306965632430975454254009505346574874752470820605403200987523815020232856860320046802957096983335264324388228875326827205453047913753278836860386958129284732090495867242417181552972201216798602117844302991448332905304708363062074109223151627306218254837023751500584183011871290910841420261730153523347508443784003179537504129206544108315659696253675871107202109205019705242045570366246275176620984129632695301166521505757204830011405703098447687887594911160139393816194249621734047453824496559946655370135661521803336149136377668992422099060829839976975443716227671142793473882294818395581912999029159157181631672097254151104584425298492228477825345824829020975535724468212202886385406315660240331374102789090681873694768528231249656208873421354279159467230463576616481648134583120533161411800501949539695360159513489949461436036476536655229047672270008926433064736277760633167923402669534632110182965812544980755302618224641552097270426198013680430438173701198992841098293044985214253917026866274286014543618146203320367604914342120998125740778131512150795236952285867011471404297327207264325223405415393559787090316474885568749360079804648358017934570450735146939241758393274776673634112438237412472074667632443841764211270053225030941587209141520583734638374872147862953007201248451752382130818911728741139216673495985341585949669521310605746734014595218781217708749202607991266208245011261223484284463813387745546244587407962481451912681355546581737984217799216271636181102954992109824440841919528234325561871644393693126619127440825069270685210846846554383775788120217378852099431084516805235495650669529385770920520799391205927677806640759156239257306141101560846810057215000705300597593622639327948560483593322215668711273211362737379844179068592313050393900435007792912146657238782580193946185658864082968122871506236079895498335033560388212466759280484183937125961372919985606615238178763364150655278623397151917922476532283377724487434527001480630339451193426200690108423882610744408792440154771128903300402502843022861509125293885627876802578325744996474620286986451035942813710524214580208505629307702876438750783044654886834834882921830256220699215010854653832577653979034608992915974483246646535937523753796024373966053063816245326077953402658885151826525343264016479610474509140699106892040687092765545439152798135496276647348225715147841652087708948115833219253939020721687991112970324594594160378524668771951181547602302400107402824655134413268435995758977215059798524597034563223304833067085518689015983997401672075856275667785662249056468657943376906642817461586467599932813619266047674304855371038983381677943103174355382506437238203491156416832735122804509556670932329768184072537271014106310310474460586409565659174618232249248936715999794767012188605170042377768532004117901852085076743321705782893721105823909104224922762806768112654795028828357431518844588437979620529137785296633739044765559872107987923220568831462055987971756898239795107556766619292000087116196194612053565029081395772333611387818199879631915255531365499024420068408436690040396564134454234764761151082249273601766622684242411989529671012105110306962975809311776051425095918823118176878198573231061039155847210529976104390783709949960188721204319513627607727886004892321513654693310198394958428386452943863440384003324862770413402693713262894366370872696376376225633824059020789063546084472957176491989483536663375587767445448152715696920352701829549713238765012615706330889993793414005922564137128663778532528086904508631329727077579644179316836835217342767079363161542962373916089878812629445162422106350829178232441037933530388411611637131029247779800835548138511612901149359105667216797830607887567963882074202151710723629322288264480590953334178680377238573992855218285761305906471704874224089229845722310927416647628417814046288056032001508625857367849033449499423271732941994922530307796999576032939002563167452346622513330529149400144021232871003713993017836894246104981469440606503775585369044456868796780978516038687987443200673095935272011618989044312471611089425696006202680037475794878438539314022733385445996758745311229254025667342909157633013023585884171869311982170154822307975714374488932816556238206359870888132329858124833578982234961985850135764290368110512597026792935467436724673777335186649760568519898548014953284171198544767118995535047983602294346793288202831179273092774096391315957663246364983821787442330717983364023837777825238003583710655520100088721806425221789128343061900782832510818967816369686424227000913970341008677436953325437797386881809674492948928506703981757026573978480032285102443022149024619987987880439231472883951980979380963459970197169924031521973232535156964714600340522417690085839886745386101994393124568112424864101480558924952783699608745757581653674198447796963713042658785000072464074871306409598873244024992485749599644501949436755064352670246279595416644367479564119705280529665073266174061260657396261472232406220669530785203651563363142563148220564366840387013090181020336813521593915007525547960029389212617421521455470865608795657366603812116302741923303063049663767893928325826441078790043546377156834359011626935351696079225355903131278640220039637521591271946685138578338890035658526759615520257817316568357759096919183107492240592608329558142488426848917207197257370204195638067693258484751844801667236983253486369033738679623521696340146315792058328365858536819838841402890808218835685872487740843666628089456330276471515623734903436644940092105823868644194739989388705203590626758341688692759218900050022630333501730902181294744758597246375218730946453802120846576282512279328097709121004156709466675149981081627749133955533966152006432884854150084564342938565877827375688669963619265902944745783151496432928691373833703331233387378890540514080573277319227901764697023775740390680715929072144168890664624537497313731434377212771637653075643863018514015915743927509372420289208307550945545972553329347767100472590373962747894236982464823522602167951373281115308437523513547899403490277596168838904940911151073019936696145290092943491397693623948388664071185534710888293960035317563907665014284851036741666751503422436077722589405309582610737535869234792611326136477094451621993167015330722584540203304718174178073782407024761471372656967466606893818547622862319837385125246351325188005799992626727341512248373845570617714701631652490725626788211853852404188724213658154944464210294603440430209808105832102079705042300926278102581493515057608220251283241535469342927323098520313092121100584819675812053263627579862067312472768256981309092093422306284926555775893614581720831440584300282424474929502960732290739244570185148506200235661261916362101142955437867050387885021419715614975571636707619266004307380484396243151321849882978068377577080800589969066705834369316037106707598634434409038129731828659088189952027710897450658029198795111049023487959283451172335826964164390277905548567661667923472094342370813686967155851432193208075458069110366041043400131942110746211112090859813467913173751752421120162411393370441252456979451838230444906348760828886361212536650375334490578167162008675852448734416953394770735521025998969331140325175653857573017566984807633856202295416639197823391906806668448175766465951303749583949225387651556608046203017972324740739910909410941182475925219791210843253052000491539468130057760615210930872394265711705299536062063004885903494773502993172340567046623904926206674500436009332371250513108863691904090616405636825007557208726743617418233204516407523960246639255556248702094667945586230922099322625699890679969539482101693351062889290848711412693287922928765467167090686445944478997057782006782033999867358657151467271611235903281338908049255047329555796211359906952927444705227043699579055883241423177374084633048155421033215858006543703150918903751873044261167364250734017133804288098559279477628638175778396524894115137425769323192575808950636806377200329615602380693878905346096511118232430768456364285553617766118585279096505542285897868713395172980715827170923534201766939873306434076302254093535298898626943945232386926656308208914530076919625400131129786697078068866972235153587646595874508882197266630177363298851447252205699946211862409830268682176667314486589212912635000384430977567377588875243449614246192926952315011119822544707340995565154656454982587043183077511417900405757001954253391932877129791528735021983805264565634190983842907349689035164276383900518344673527503744955521111982514234662837582623725342763587044348147311542857411598145569159409469553486177697962791557206135080881441901927056799617443114499844278474326232390548215371626631906172535062002144414705128787089895614716950842803441230296090263281348234854832258930341517316247750596821311717464797641496855081393210604565273144811234467318936399855377506436325539152335160465787758784327281741419386862418663026432017166469345126502141760766970107099189577841467048360372019762517433729718298100217869902972144729751253274549651110217968594434418793488288244596035119843235903033538751993311012477472661873818341148673052378399359223351340701358177222244272714430520001546267323923733142945852270241113903519925692649921898712975980995484641813403215937672847750928417221675077087364840209476771430735156502740145354653205417043211090140553351944088404088681983218659345093981189601862129205492429504500037902346514499921234375050433957269841445338531033785429630867790186361016565137253647035271984136071787472876355738769074444786383704195462525417301331298280850990072198884025631670124287233080614770255396016348038293164867657297880490054945388190394300030671705837087675970487659991539288402077152951549885790457887777066031612882613614438699444212764562289718392291453859149906537868596409325687292144528173406167608094267192515324404441573031083776409253085802872337416566111773066044421271834626149130221438988628966908580335460956325241133340125489488537311811865334456521599839068149158833839257247840116802141790983020855874223261786565047685343466717017217383353115086256997822332466338018964818885334544404485802488584666689291264623404525703861823402252418173227857383483419239864558845004311755112743428255046146166768248497267472661912941406627345338941641496793821931890691656915899623602778449645360473308822775693805624891681653958463970099750273272561321303420303461716170528491181595881412011737882721056461272336505880078972986534479363682054338899432211728840581276720972752262821316257007098577347389670894174695519902608351912834709902761450263581868095914993098459564885963115058962043021886223265095869210015841639275482605277118465173244668284371384652408556178938800305323897063964700370198855832022376146759502225585470181614797074179264923022690432785226335098448616939446369584658232896315803416407438779971680887194362905470957701168174232793374820772919865641746408614797253778953795212122780686392128711889180011779363978670410614575340513936956609029404070464397463850139864607341526096131491622452046447242068492116073398167080810219476636900400606449693408766558364433184485257230276901594908790615556482436827475378716640536942386582065286366823591021467858839144822972982969712992537683652353830346639455328871936468741716272057798879279608271607313927460090473664030730687324017039562922961824486934012226080298620133616662299411683656860894076823483493689722550639939049391236977125424041280609622899850676373671207726536593303962577197601622257448436155259664777188556927508694240968272499794928612899442659651857723494185620068407605245371907216082123719839478467917687036354313910577236675271340186358052767086071844545151920474659602048247707015029602726984184677504290719735689775929756846727651813885727264279452838509087990800502380267897586607999952996161899986854430911158177423559948343761304241612503426039245007409021711903381187242605955325812070814060589256088781739953400594205889649159688057803227891159601766027956390623211112893951183351765065468346990748862661517879404674540810129653428972545253700742514629038134874007952164621896805789761125597896211848571079601789521594801690101087147038794847200329042165677733016558427147755360289039407733009967278839813901110151303428754479028722408575033806588620846440562767478230299761288318171820967108950033356406219272117536936910034707745346349328592057450893653412407894547762319238362741964868487689903899497690611895142321069863939579873999992017434921471293845901217035529614007302064837209898858729372296442403001765239880306701905638943089752393565000442598628931717445257520604654457513848416959056908933063249717189626063499975572854777925700898266223553531606416865231359493329851383047439824010975739761020212556482200617315766188508628464085960485937087297964026927539610604468573645574523449727667724160158452403252014955035698930083158468916164913787637385538799343910399221798678225614138817862842156704421114740600461065668487948232890840777641649150370110469493508815953418439322579076947764371933108530331440358103108590333247356225662520770114440764943649324660502797429570798284290397141213173871882788422928232876578937860553598457657424058739896361992544019641697800869015880565996480724171736163675973278322375993857424943044201859057876195278020307963413105515663281011493641795324072720157588379319203944037907060546562041462244109960109184844073478377935229186193061783301668820226064448717376752329204086115967480040020670304799374907545056157174626003375911765181617122375432901833353047479226507981826883723123857181932700834205865484594263093786871638359791547123658136409687656755824637767694520571688622416795951861552976326314121177275000792423675449704733921435242996922290546737043474250262226141888123833015740324257284086794981777590104313212124427710404067763196330484832939167525026022817577837046708509282118193925566010978419773467108044811649017027382309262441169943613364075412610514953324976398235003699531328273904084755463113237515129993280240350802793719413234060882878471686025109746854887133286024947530198690721497257008857088965953927811231778842849052153799068445614784889616536286129653944282871164252677295297829241621553741751572209252826872311100790416987274136939733476556731817238785204112085050731558802496050300626325654960635758476286034226030434779244173724804415868121257223421656573057676998181574362951940822323487941730635023020191591905923619008171173035877434621334334994779751633738129511597793512232030128642608016075176801911531871377751000352883173547212791166389964386648472649882024350439483809424402508273128963833613952758709832160615844677980818961259364925006192402303432491066169518084389946061749739145279946242962230605908608318467896607256879216050316526666587830608524772057684480869402895902727612262016083500039025242440607615140005205176528294110395816063552416321492038894430904000960529665483573008446711457833367536810214368815650838506050048583902854653467669377639563285542384056420493266483208522862918388887492492566134673356946257574550867427402058142230597333101228507370865467550307075349838763918476837777620838883449857024140563920593363442803662629490400357655362472781589760679177558004821844000946888544945124808595671629192057094301243261121959189694859384631996376768688854018132612189017559489674944200040328339700798618582908961945532768802642103275644337483092138694765814695473422835579351184931437111883876600175218184867077188843658203572755865776589282845233831768739299913895938521364974605045136077158040283096329854451036311840901869403426582349224932721565376729415971015859641057319201426683264191433756485718383701343191683263648659891904304590480632754621227797589806480500007083965647506460710228590929706492419479860819526955207522258316366472063213464447025220815870262804822743273341557542853679553830542018208236343619085635111575259105356464609305597813589457136317141609360795417660520945458988814387451170200105486214685341229756822032426675878889823105951839142374126780790245047990433486163107920265550881226872864078459395690651166433086292752467783035691494099926696730316687264593422912800068314684516440207509463700944801057086825744284744652981148224210960752745595627774442121990998291398340906285898009586070017262073365225714755236565386176295542446460819664380481794184808954010858343507939909354241116724020532520496033011704334746993002361593331264489675457116827333704146899639282442727374135135107024453629022805907707555010770375094125839187700331179958014772328966253984226667153115597202116724595048004767953134868370276559027969216094980488681848325927548233887748598322175138798975749181554223872477612032271660340683854930903208782408596885751677174434346763360890774976244777409706411226942435945214698228920954947951752558911641929003930105163826589388918952916695198031528758615633518642943819297096709068542401456973497370073446540538480623160124200133388776842962543125590712323710980059905650898096858516179852581805646492464036032101887608944681010474833726586584206026091966892972766465322048116024067569460236383376733200009559387703239363557670546321911852218063186706718709878576097666745944935734288429113752417382283628484922967556263325250270171703665102701486147237747980119060114768835592621371669523738267256053937711466608413626414718187624049392825138559977394088808042278776135624135695180736637431230059419979679595109146600812224253730670939264216274976277697380135051376415659415017659116052787439611606737160596312989156462137058537474488600900659662906673847844361452183460881982366088117377892768528478209225027530107061603565127690423748418737720377345878998503203631058560360918274863690321012714431543494381455432956068745131559281391626568154578980468752537926003622550076280207412553932149824225553438962456714786567706419498922385117488155626551154260766554075806820162822222214730460640507468672826527096804395194771975050822373369183489622414682882017058733371944526220729571527170801550719206837636421855068725418594452121212425782696295995644241594031109870273432143666093357905373950722029127341766293265899531900331682125729530404533378095054703418652059185641069601760967536163793197250512552079874220984931532407961515715806349974524764947803872389301470063551119185542253213453998386181002537784311517725329480891306947522238826332289801342931476610087173841902160656494830471102339219827111403460057603615935357063391448826133650236932049377407027724945298693626438247697108856897767362948578733775525895939896754806714271018560282790939422708800139356421120687079437920654589229585064868488473710700549922291551265963463288419041565308253646862052457040414869146044924516072395987178835455166033611452287605449338212958430832704999226792987056538544693932959045268038516867084851691221533389150471786940773786186544669312036369468832374099370065402567588720866178490772911099852080698501683996368252423282111769468731745340649089670711762980930295518133295133458699638229423594377689954342423825540317451877467764113381915740566995417763252533121211687522080011170298144004356590232655664382792515896367479408301897984823404517196523871668639598638204752971411854509132963745095031244853958499484958776595176669625212392237628230657995990992215281899435514345836207523128795613378789433328621196622644109505129693696297457018339484145057202905808022646595916147296090168415742205362803799420528358870294877387032365266102808482973286128299705853745424236097869094631684428196697772253747319990052641330633927221269738187506006761996823156169507875417396603623883015604834462451323458745966849039977515745643785565797661237750405322989908746434886032231403735183995474038203196454096308563534864037754739677295234483375384544214079065805139208582464480359602405567138518391783712295481350972660759189140741855884123432467069345133045401266459080295803244331020289316559006918607144076496805404861317041314445990249101401904527459263711368588552216920533134700298304805893552042759934712849764113771634311081598574275742976154227516730230696850570086582495739666111816614607265137500514216808176643023897477929561324420486415336220799593477869441976473966521614808425473317705809855825356503274888264690994638477696793227440675227907256250287546771176708361697852559882582278263277150802855844619069073288184137677053783541529576172788183005596697882745259398269022896978589768710790276155153101319390384068794661552453855910133837137838226958995140982906244621687606288351326795200259228358511311524532572607470715311696298528832224724463245347803343943757036507424123112889204146345068177599469222249853730502182812195680188762751635664496346569134356507768917640139261467438710532117567406239388101588971235531401851721079900240876934693718620787984140731382074569431603120311438036292022073114618296102024089899282435008384465531326875187789981095055204389125388156899623428185483776633348408841214147890805045778167995348413884683577568802147532861978456031052273841699020143367411602773754489309431117650541235451593934744634120204724180186489281364768833233875767409936261903678080100872116912933672150392164386135656423475348505884296899306038897013008773244926716048131985097850640003878992069421720419043671413002368793636695135302485518425922846110080046566701883601682512283916154440900094205437069286576914719464234859625740650855032902153279946541043823440017758076229684670296198271093374689769807771782062167113032588626950236691543049094161274362976208129846985777685542290727627410284919991303983850153713801808449654225490571313761203272526077625564605360355816601276814159600471815220503670358208998761694188573361283294246869466025919713049362908282111129503516215482057628770624889347377233583025224551102099580666577036809518013363016092527769314790173330773846106525307270580193448702214226189000587144000642382520500780286095210582099761363657844295799621724166396249418803629811854476988396726484556373244697548178115252907935580281331129581740043009328597904136451820111216467775144957492404180989424695316078325349063775501454366575642382276304611811119218739955766582439552683593501975552481397521735010515305085527097574310058998572916612533880905942831383329643111726628726730455673568713336801999930998129560732320473438901035066869968905660438849940733052632877649398875737703672016670447426823923443676626182279352372029748210439993537927965083227535392952456926350441471224479951927794974383464866635185291175628371111170345535980023664648946171405163789939502397069952359526121200477892701419995649473295279965187187135628734818306229563116020830469786586031595975435514996687500498768016428239915525396044656091808767554500475745682225305954495759565195021139280370989332550411440007210206295971030829624653179620601018966680045339986721516045284841379135054132191663984825536577621855697311301720233363774454348680421329695044415286737311992834648931208462093186094920652366713483031732845081582265109172221362041055596377792410281844976275305951490285758513950353343225357865813080174301993362074373449135665503250717214323570951659862248707386267587302701526744775604492900697863368517625357170545072292047712779587051989913758719006564164258886702284054112414508376936410480289640596191103699115500046767776676193709371814428503950988688576129637468228089730704085748115785165533299528006983749841878864889866867809598087504080172177610804047564058911817479624646845994437266083614044920604151530506005965708750595585740832736940912017816389451981439477440066145647503750597429613635836483689971001182914622787224954233724997289363479648358072050772326347114370096790412559692007287814067508466866576243827055088612876026657484370335441602236548352445524900556618742864057028275839356223075318144573004948420867665480549245078061614420850130464631068453160066838377476951478761452890857235460557018953379208158928771474913965955616242067196423536692137257798487443199508649742857325772689377590520742598631441498418497262327542164590674204558736269977484500783684386748668480158403182400703376307421090159672950009439055284435791483361068458376607009841318095421808901831328010950934848716920602832527874553518684645584911579696558957406629714868366896341493536564772152772729928676294792077074785931122596477091989947342715319259997789983241807487456160486834196431099579489986260656400688250729273065352188828961161647578367200133302400042257232566435621069907296072830127930753176887459429890131842444340201594824776441834003300566570612194833175585421444939663960078430466013748427339694217041164092039281970670345944385812415092108336702923146887782144438008665588737319803894736444359347975240706818768376546263698148073055398959590334244980869346507746348029655072676990884320209383749522734828619817920056943731669413350855619881269584455051292473324864116340035472067467823649818411911807101009330259094476507081450615798218554934149296411893260345534794244775933280186919605260936712056347299293945816302919040651015998753864604833186492323133292195806991254366265155708160305659976608434686787386487207918366908121982536965834907046059360226237171273921331182266411576393180719714844852592435816779149712639248137810170396031302989321262067633534559992529569413457291437761771244035420789237577317190949104174057624295923455043063258218513568389568867305053276928159493756431673825694662434070699532942581776525126924925987521408396842950145878556538972202868366159530710373558101664040477967900817169961568311997393307110676100711751732464386382355077434804160551694746789856973907309194870050796903162571976282354226313109918221569564521414411836171485166611057441253467327751973204464480575026282156634739204031252281826532919485507151626416440065140164795815318941137885644986272879133462949135714316480397808579954372938968410511900462263683306013590754795778208903760694025807694918719597105397502267504680316663139138884331231721686280113158429845741233712747363214335184218452538280823632804654420133202943175703507805446820782394161975012405434899775465381398583308437344648160934609064394024054889197391735051024840747609817610774289233714286764973518274994147167149341200540323226098937210672793763345471131316356876452626533159301145662674610201082430161937568214386166282013634302693534261159767072620491380322332115830154417381895546275595926504670408308092360628245035071162096161931737699153339982370051318143567895175006489958313075979318211296360990431440897802395258737857887425163792497349073522726620513698186317683609259206955366945631801033884359054009121467343594217848248633554284910740175247719129851792965719619684691312383899907255189656323529168115618207543238101360204528248272270856339274567410289028025250831695463500317117729866098083245077414954856206337280625977316954818914985960294379059662743288741597116476377160564340786662525848917167811150326889632435615991891894271066279114489303193223477290069056333494168384084909369768091674756732651496273734635440475319782426713692378655456662656080956503795034321565159208009408759928123398479791833793831778509392755678223453389993749640528068240466981128882063435833325477521682440334812116156251831324278740057431669523716545857877204215914042984302741645949045125644542118667579009101376612055910166456599888745506278441561837929782785001826666666185919197856969255879317847226782981672339175150403437484279413140177436035986799730169366409234512229776984869987933109794599796605615173041139148861528301063974120558906721257267933034370752904237613202884588386182472867520639310278007655256620051626075263882331265073340125285594487441437172432481401120090744085349983083869498045556805987205307774668325359016367038700334746798289061384349695965774173252400098906729156806928607576681181043562718319130633514409632476208878387978469133928102183944074172218740805902977925520482939978222467858930791217595812679008156017666310817326584771176108436123422783767320975819209675432184455756758920669219046654368243110483423183942672378057917814544788606730857513144864765694684429554513424590006782587090704051687150107354636130929531239854648875155264170223600179931891574400768742486033621043565008077999068843451359652611352000193824457161053583817272271790678907123813334966008180281491930656219477112973659422696123618044231873670529793593650960609923918528821814588764759868463414824126284098416759401710121091005632124958031695936343405998701179485766454955339884033768653935674063412929419040465269133218181318684709638533538385464990837252249521952964097206880914396885996248105013704252627229150350940907284006791094475312622612539079777607285246797537058532200475572275943557946772903180320682068479277468716511030970455603671922306289222833795005828207521111717661758819597160361825457134510099688764214712430733955454677612258722168039388728074737030386166258480268803453365766249298017958316704359960921879316422787952809794825057966181873601051760563384506581975049938435924032933567322485133854409741672850693248164840994796196444622803600163429333024777424072661185882033742433779342021562022334606647299752246615298580839669168756664897889261013785346667440524113567909328301814158115817360388716626479355163942563163301951893175697889200167593436839437038825124953710687156382094273592880826876796109068078948654932442786273291628131612161391475988741991624730323979677196298912623158766323935425361071373107530792227805375511023447110885122440716205460960755327095949006254772978144451087438359648229486070193097460417657151017314149554155390883894760735765856670534845919089124444210470963325079022042444614110461731113051714988898736307622332006935221965876348110526144517502856521577355684348263265528372463733614277005681354192330948653295569523632514819475485333308980884088887212005895378177135260649436407648257076886355561410050329122742461015455850556948681315156702110810105535906673723005977395426507817381677770265054175133930193685305281599814111680123897155409801005178155247950505442289919133554563138299728258630991288647023997854252071174526600592299398032198285252268023757293280285945432560797730691430251816854836409800659672173144912416167486022183336816016456592721330739182190222636396240998502401835492095088179390310190199187487411731701493923612278138490497085829293963755169744558713007990328674136572274254623965154008040987778640790643890156543257388731190516780160715945503417804450257683030878444292059278613931460185026293892170874686993679448867582639988177858068295261624604251012309757580821418479295872745686308962845792363144996559716251196060365557549159601653949987873173859439198086066563652295836102988814700473837826411778780496004218944278721062710232046386428420775468764322978694094562799525992735023380865788013841211723877720315473806254057315556925951998306625743817960424745791756466025290173804224336209829359435669141191359652972802045207973707723120790978909379153496057556635835370578730845705355614438783061660215616054455433248028411884896780587738679686103221613501116854235165459558858254631873311853144209180889059312462923935707739259194266860459926810237045638980086110726126812180053587162169213210221288157698293150599207744316122345034119301076201661451818944829509147611081590138147714796792757840169647430431909253109525137716767827696115133157763709151467470435640606977656024729237702394669557893995609141997410790748836643858439075083478658439865403181517669400640132651541266405018001757305315149242043684529462832424607641073081230431598647249501452168342149697895291845508635327444945981382555621387509582671117344545072770015705509080295274456732337214028412939380205120328081103920209994882286158914842872427973527284950891917708107724263135590525238725274656362072996181765980516110293276557253244093640884318789126937411791933063903438134693121249955196385018020235459288561710555109421228849349994165790272775632623550254871074165332915086941002922063452156935657322589251481726549013355044926321247704089347622072866561125460453539833299852512628581791515994528446489288285730809123645815031023377828869808835811993103945858653423831010757207392071670044023030025437966353037081173124338856146002686997457800224387458074230058816695385430395620672525393277384167293379438902586248670832284581423119574200803275359709825082259442913929907809386004557458097959471834734686332776571943521138622028209024268396334595299255037897380651471289818314846604881372330958808064214617032993442574687544103697017629577991478953117307359871227688364220480943786845202513802822709334464630675494167661886679286558787167681308912605570121806852499372275995810656898799939632083235654676243878267500791937985412159044124528657026814417539883364986567937015184166684702961369257448913857889072647104453011268915499915946211597052711174638760737774158020888918415090171699043893213593308821353297904060141979189974129732191667779164925473136345388700866695909640197048947720007310092439998986789345571682745149869731586276727786740277394633494467318082647710592735169559283607341597215199730649924643862895639782683922023078597359608966534062639332097971317370541927232188880377191419029172893378283170126749801319900333532389941784298440811154303579099044360966501197409164283823493863408331333656108512189154326609994449469237343208587512914025342901178189680664004711899338330051874764476605683218566982000245994341470175522404144868964006551866280317131824341763748942732099496650906699018023647430282613329345945408716301093431870907535694010840221031517101294106804221947284424723144568939657949800191741754694259280614363173937924753251536121789580598440544636458088365702528044244628434303366600787080306555262444870502278209927510203396012446968936423217478436956792949164891253786503598279346020242892159978110485048483093019248961637343175217559261582021640882387762109504639829228077538719501693710945309167834450233693659483001050058701085042091114758324753991469157327142635012979402105645366969174005121882842479957492295497030771654093893365369442500039295565325305248987225854154795478538830554767120503210104346124117977617549773950913511901007295842401635662984536067814605383909282355486388757002577323020277288075356744870543192651115889964763554059010114493189009899809188183658708457949658560296187570669353961590823081922998824456790175078090908333725256768393670374797814078065990277571533295000049691545760300233254239375310993936777795764236513678126166718163558736868944757099608036687118455647392782101518313625633269227175352107746913945031181343349547757933000886885010709263575152868923259785871925975671503898736717232184773681773248575920559044367285046002944105278642870252500158504276738743176991628056342492172081652499843925862873819966271697273219108028492390400649063699936027160738117413345394093659908066344333786632411728777324779409068743818398021956307721395265057417008660831416783487206073414716309177668783272049502731084547065196087835156647022818271210526343878455435519091322603514718231316260751528611126317686628552548867563624084924425337627860318492072014108450473291855589519273544493454439810282935717954945122328261282712031123528341045475512260797788911420046836502898390940125494044515454104142448824120528178233426338674346972716300266074641574004795798363386633223937641881015804842573125114173468804085513001290556288594672563891014084763513134175898979916043155653962148481597874675786071110919681658506437329664180324688660335191990102792461554120354633993695419981425706662682795341223581932655817512613408150036203410445356712237655051778348980621749936598302284784971971042361602470973716028481426748947113314445556206922020925480062567967727012028882025584617418401642828767740353371456158836061953327354170268128698659875921517089008637471295402974910582318469593182395526516756966809287985699407298481861116777682266761481524781963092630372072975909702000678351100585760381120703030924214846316046435038638837985666818197961739804348791104718294688114195692329463926876864750865052587540917215713758138510500743617761219566332118467500863548535736714775917201026878521705470364464221739812138601267856724124255792711813700819817500525174506806684148144575456033680231356250655024042555510252512620112995715382016473974387182146401093514816582201340509699552588933083370303936583219406043434444211706837511064696453631417446686333775238731500589173969762226823168453208564109265727161656948014058387447823058198805227674273385886132008678024290017492780592591782070454861110071252316653745549892742815179550395892382245112882344228304814736340648772849329545315444071271664649805082932070374100766430876911962174922410840998328621637353919360856206195315201528448189596730153844259518062214811972989767632974555258459550963795203425326059649875663968280213711158682573313561700853828955156290633767781237155660961773811850226912042307833298620338898662907973309739394176526187016834900182909154090971190875979423546686264867970285372477815435201370380548013314453667761782084536116741123809900533183328590946620910084728327475343138397158728493179352309997762284747901543396821776556822156623523208650900685850807865307455152413777286748651429018957379926379386666918488883109518195888202336483367995771527975976409547255554275839316980505823203304542019936839447583881885720404518173043691837175224359657786191823483116985838641342436586797509061572622816653622717829562479847735789224230976312417885545043825908086369159751796668832137031838159910696822010425916134401652747391265803150020111238686495232624581504920701681200633084659867489178461810245195900422017987860889557950417207120497298288815316475888905076676005198971070229521753810250384498451038812503779309021966855127875653563617895730611128797994821786003781632322475871621627438531583468406124946695116622923954252350493179538509170667453012750209945470659870439228978719877897445142073114800124974645875128021368778943643460490538155345759077792840171979463657817677767430050976022164158870041580700984163835615463803462550647788323637718939425985338278758852307305926678239359037441275320728954494570469669092913776349736040421545514241712390045135913754217264750337530649210909481236882328165985202493892432392815976772643385752479240308482079856185843549674136726859858296557314744116515306265362083017242895437146624151615577055936136985545356618107930194573420896955404662440691665759435869731892950853777946159545117119918191083012679960418483031860015460493251519746298518402476348820228075093064326942024056528118292847779456867904186875512614470641411946633661699294253295278795962798235886979780248965972743519177762761033558912474271444287891216018188369443828621092019000345754951197533204721294255176121590420915512101471000372758938544975631279773354956763815143264018386249803423993552427866057777062561502235010178021150173109139900655781887650633992589386983819700753403438289486962390959525595526852475361404726371068427869022492419756901156192809976434863632237819711394025178426654124651399411678890139254144214130613572456334812996664444346980762554773804569962253433650366849210429495329148156948357643200981671742168316512194247073067344579018574575134139352011028571878686781825163065995033458427574507416489351278044981274202272850901952598457767549809374811061321373418656769409427361983477873265735084730205638419136028990118878948203160003004369421728931655904029232188551235121397958065202437977523393998131269635254003103030686641839894751083931533574223321625627169670829035525850715466235716815961959091070923666328303615767554823457958135277861046556062630050117802844589475325440861693795353681399145232466246238318793758846609362901097996130380258546042162334036912350400435934720248789395836206811865507522965805216952754577618252416329516721270793393071134969600862675811385957013341044163924906551717918747708209179312057508571823702332514857229303038987304848433939728998275228335936889007868356982507736855959765245840914620548148517219334535226446965964164573601486741233749289304211287316764377432726046502089847890202629332092513634579817629463296494975562418821017677291058885445011915044768828926352240272195182376548315487409255195408040041080478584097506987054992877911340216715749542134942744136306543496793349510442264462703136734047997081752496634779896161335630460226344645958843107798771516090673407867587081361249350778961279824758750473445816803150786608920455445700712570168839201344963322017258135985942391129283682620802109274837972061626745882958010469401522930894956574109046169604755345289770275414455847847509464421038683266066694314378692367399686630961011017706387098805834208920890050539723400093999357784185316089776890131845916383009089867574163625792895969737157332448986267421408144639539249903490367957748529271486593896459285451277429703911247704523315505598732484432141894292949922490467940639832733942475944552174741798639105908886341547493662792699812688913709152695199534238869877470535754804899450999550595338087538901886939053299612223799422588732831215776290825183232740350432613591504254628003367139795328565328941365027954903399280782116885124563734722574630379332581442052073921136271087521202023978205308832803494494738976406199378265245591073913248146707219380786209254323641097551588287750182368553438404064483265279243895973780913237806379764671260161563186717944621549524116991567632839950394109640657335732586443589600783171023184430094970195750475887611152196462196789866126387584233126376402833281311289671281197407905812277477792894413985160200122176536077039714061812141561757256135855689008263437176540483371263971055467981896697607356974441514116367260905164624931829175185238634302830287931841706970243360880867000632672686748549380967488513847093167210307303011549035978532805551752469287029951417339199527422183596531638831013032897299528293392551204702865332105365816762036851621429434825632935230798262989907171977723321228106108831766078202356118772339590123530275253358902481745632941109397701292720648785732311306970252522566662772737725933577708460296539653367258578209984218473357365562915992915075977432428732578898789798121116799479765516329948584419113337446656742347588536700729628216108068004091635915898109647390819087607657570840660330642781878982868135350123434379285777354121951069801620614513394904818401870798247894431404263337004954437321390896021607381196239488640563906038456317301418461820076952040296250393181007170087324577002762972533465411940366573897842792297470008840836609173052726312346839384389517637093898929282115099449698893687591507818974821418462821605607916127955782219776060342274703002921129973039093353707283241289467698611546520266578237198654740794407507747317238212385551086003584383083986759790701834740606291743712776695780326117222638464610031100359306580608895895999896933791548911469839306793592700595516583477245096981101603899042590643645826927089952271787429745779034161077021848839337896803260503825827928574461880662379389802891041614241032041319946878049764508248568447805067855649906646422273191409911840650241635446735297489176500502183681253840126264667986987594378273643815510522552910316962779337469827454786905318709203833119360229279726710705110504974081431886930842596816209905163543712841123319667036794357979266260263592456522341196405271505138177918980931561073751266244091485591262589465179081224132851222527191462419490428346514520600801174598309932303219341884810385013465710219842476818154017826291474371236504750586386788803445178624077465549899040443021015059285626804408537250067431986568223945786438960156486559932665841421605168221360413431338641240602790009953206152048333344472979447134338704362932898113034458290889384899227852452518602278825529827033930039148399042806695846257565611513652010750262530637027229091459376487338279588896491301248855373755188645985188718138908212117029228684672779810899984787700137446854154498245499418200295067843565986783368869106663208656025231433446440467250243387714039232407924994487449255994776600390111381900591606943557735848765312165057453920217414029551502204503627043913931726396523173192154848087483236298478459498481887083954899905866920752668520896279241916567287001675702463331726982378288543490329167943451988156560847988699718725279398360168805300537125231082295909233475246263228589982212773216484040224870497082341298560308713530545154958036979775106211128388704783951242045727967997320458558940671802175218139231212602043722035385121448418833759176588386278655607058082022135096288301046590211962343630771928995352099895614632672800848874154558096713145261764095063163171621319504288866928598899431600101627891297724660034646187603197588287434545282954812095564599902786518432863538770974697034805378551179538251748257183986974932088813420829184300875115962352958900334318959446641216399061462068625738926024254197138829229226398731073351516654206539099464223903399522437737471119137170605909911279114902861719703960082987316834370870544564036261467926178326127713325494226615465347733247175760980818711917861688813625057264414107975210333141054523580586449340399276092135112964675577607172164459610736662749354427077422912602575653983879376972188021791375177399661682385552521631360397773329067213308944936464405459105398004274004459907701826601387142987402897093904967139158375358571811372129062717291932299201042860064816720973575847223736392857161018285614323606697347093122987701142031329855099820852854149313730440221682592222745941761804541523581900580598622799505401760939491380472218377802321038330047469734025647265386434885383325302874835090427824526492121554913168553188450516862948269108142203555821863301464555830644930679975557730833106248771130423986798316540721501248219368883198413677372519404812001093624298747139305059092078249092416175567367533982688572983440470551438177380999266095281556165168510798260112492338988429747188827648907230442534096970074770534402786649633601935042790213736728482609134833164316465795545715393535835960104374964922733051576627537827687243924284695391511869165523549168456403184072020515634576159395421437745856989004069885448331435773271076704435035744548527227610061990643036586170219644605524738106029272502431871512847708732376601579383596461158187114447843207201970963112802716962916616478204577889018851613430799443134472638938399179058762093229814047572208740427650167062565974877536218136910256529713372795004333148946124645754544378904891702314185677942865322620181784867170792752614920454972051765488170894697373960407935553033039859862157802879984938214058013420210527808178620173689937641093479335317809497742859201901930116327257153162806587628615546636667211947805666927636199024576473787050781533599539423733139916272469640222666171204242453394766129163809526962835576739325118943700362610106753665354351666808555311677750787157948404326747950632505777009947913554726145319458114667964926359347142339427931288392965082452594908394956356567233573658206466802739295161512271647584724676437515151011605546441566759265957736814317832604105754790063770774721850594929957525570209767585141585411144889960492695798275149244345946830014920644582783355169656129662199802198338086071189816387131176091995478206563932747955912938987777007209924256333753972386570352518411873272240824092370674121436622398347510231423953735956659875509578964220147347522118187616087134725492697933843741324179569851556057296635116862269644003235555697663552498232435317796920319012722467241353508690933039141314881459151241720533225348801198573592611052467685738013835293965583644163202287075621893147742967644982331702268606649233964648843120456200937739881940412950524982666759853418981027579474237987613039989632637796989659266282295814981062396900632845227103028152572195923891616609976381101702744324529517144482157544767568070867866569356575337273837224411174326923498599349226152012671324390657754050464907215761755148118480249741161300193786674294730487946247494917556998875831393941274468569391140938270783808274195462433092437246361564884211056515294261170747033249646088445972763678640001971493976425076752298759889741205463122170629228616821092027204899787625419666887749163468307455743752073123506018202099529563577689685837786182720543493582433949714710647618435951183084656280205973940372513406373437396594413417046277205235468854773043027128992883662002217192955039422718623881165613753286730292513319452610867911923072230368765563274657095618906207061277043148239212854169045933013800310779624989139825646889529680262116018484303069230973887264913136565325531789618662466887697502840317834813883809782874885215487200582098023530175655483105214143434935082095949181338938463224059980364409785135328226964146493437939669497517298382615450644274835288251360932694411350981093580241774318849226107688290024114139915424345248015552649164932696761441687921536197985276700261078947542252127746537906351096246505435047740131806297011144800615845445068446471844831096523835153544354016795171705229482530828329681473841049466976388077659228103409796549164533771111944348311311984269090417402133339141887211413883844206524881639058818162823330197983071682596710706562295024601060085765697107957775098171169598259170410102231287650189855508971223720046349423461608501508007994658754649788279639026386967620241318920101285530558960689212595017869614419334331445827860244282450749701938413812774046200177281842989320380305165037926823611307220381623233414703447422230490648408311101909264733168598977822723198121021825385382474049299620516343572716785482997700694647867504145514025515380689176654455145445360991981995401657742963849115292514200311180445090430799547779803524983723688920714797570981293118756443757337536479500407633032633226106359656467578389607031615060364869494615229174875578193523929204928250066042175603615752856757004217813444799560611788901301136512523743597284975158094507575495857948718836678337550323991206039445880145347486366543792549295879485945931402788883856386702779103991265481972793397842157456957747571628152111900676196207242167844904069685178424649054570945304905636579018953724796998805659217480953640211300787897824410873606050334293497001758670865966156009107848053200659778084859612295463587264369909711763489493274100799435158959373076643540338701254434663735114633663084475747630051213749848819835894332751962617198698219135016141142278183820532543465959079063892157142730369547870886120053857477001023837605518835510414361958223584723164260787587240825093403032342866051322305672496952561047532749794033652666331099226551855627802586001117323737167813002537540546325964785587883371930138725952812698725097816587773785320954159113915665400418741737877158877603370011628695323001815253603049957205119919305587332485163107192802908501269322077569045564856930586724373809343610140681753663272777598412556769896106114990976564353687119019259427966276742784048280264676541851599013463714385764689897291071637033358249448917316388622042355102903344309063721776467798934627171964099137003965437683965434180287827546600361680493448456328091659759432143016971887375746948624631548645422210824436433477129477871025340932345349469062612927836022719807381077207156908616578378307561614822549399017174258048331968307744657406409277978351781880076306057544410456916152997563429919041988833624146753979337065186932086151408032294015499185577744654516711120120463418009147412953086305169629962029484991380305147491896698975226782777037982720579072858210636253411810845155985293711644182228260753359378207472161554079736838066996040593140562953225700304325550426079370672358427816150212903327750123397870694985887529121633378546396009017250412643561475288452204604511018497587894506358798247535413273534826100783729279661519685914288782365798489105192787492810695307201402707996766333880523476460890728475068620941535518940359574866770473202069871548995556302555568965015807365456950097462956864375929856767089022992555687532176051030233405982373268002409999709639556604132686436961505943875295425092404326263902211967557115442405026201523980306421316064595773988841391740475728393081724443986803165149715147911742004289511473906574632601447017539196052938505840991673627004296494150134921584393584905708646162235030382311788908024619407393476579564236017666460572120434809885717821208909927238518463372655364918267718971679260821068746643778948986439279875309455583012683505479677846077052411044000576711383148105593233443344021747441714862886791166670919451877228742315614257578848559889337190063465433616514948722415199781213421517935138549596286020073736579122399203935508576898987860053133255138633045244785547497224848105833694967972182517695867217453708401652043101804341952202955580699170736388906370373400097636941380341046383714151663799556090549411089248208657924333748070212724529753993353810957836398358250598861629533381968905071789619584860578017982577148107663002566760488601223387948345380901243336119710625477045014274887867815107930598802330480040725730436914695154844292095877546043713299250445109345683622342910379457013750250617786504077858260230854920202750792243118295859711125357155138998186670302084185693474783938085370692941620739421541967511434461209437977804495467631099477789030596518999490601000988717511782557291250685457153980129598521879077152187948779430074964593461151280679276503033239117808525124493035586546010587393403167525037695018142755087507527103212539695624726514638007249693024694857970110736657010126466958888688959311469147455113451678627497590969238184359255725837859326740825317525458154563277075972695952563181546512223925130842256882061564359907292886790571018814671519383045274904179290556194768486103698517116673018603983942318164023730347847007950234616138485248076689344653861694683975342292270369080371030517630602758295502198641392562643718367187914737823152256160265700039066363660583682529602988840775700496788541518063682496159780563498237528351372067542722005250394789812900475476911940877220953178679838261697291036420718816878209181506105440702932208953861119193389076489214515341158610529062747297108187935932565987677819536358776985712386723991614414527806445887401219399889318078610193718106201141403696634676040626193124930906507775924406401354844618425865063180244568594650161404876899726593661001977389470376178488582875425734130891727659704275422031746207176735399858217929848776489084093537191762781426462216535308111451943626049393990816393568576411559359618122173065482581188338888155973276307148053543703435405149186803115461604913787616384795803369600571227896040671183135995270098100903870391792965243953864269357864126752450082976117898183320186513686990303218572098940364139406703748759757743183253534527606688482972371323173790986407966836277832016174458588730232531148119850664699763218114457431283549234186574275504800172212754975204909039029942371823654262146386626185637147942482063052572401283800464613440736861178836664754660476723262448532877182623869111565862833505025104152882472881633651368787793976337025402610482062080867970809617493142730305833648751836172340142615242934332775673296544683041812589802077510239601926570564767981494096687391767765409777301627660115018127833483596010347340327209747930615025785618944720588170976494370332927967414911197514093834075387231736584312228521160516798733018758976176987771900733346380910937345276900526363015239378330282304072628655812531844571222772011356992920636892961186126685214599236273046218852648979803352985946975968339160000859669381122619389481860258688780156904853822076828550797401285783346725747727017506387936520544855232900751974358836424247962889244389845175301829208236087175233663999763829295386950187788569891409372160094480771049478873386361726269902689767282414505448540415129542058494988268245829362700206347181371776714123926310212589368707212206544869208165977407657514243158226140046342009462910255195911212333264221517695238459392453970282191205928670274111620319832006353049378691742698985639546338240856385163530545036519965189164143473276598773623419983565243172863435470090791493904146399580696967536439318323227004776230602960817073084088429883499664929345163784302172692803210001885030051312921371355920393830770590734946197340722926097160857816994694108048645160575055094560698811903608152586150617291219372752391707062318101810233646466576389824281164135696940236409095615196885654172305172789753196653163625813910310601653230799026483816052855132454353378551013073162961825327976879489865032954911991791043117859089419971033203049116938996141139479629085723489315976137811134625272876465978228354077749092807273501328969546226553088400408988539382105004135486592034777425274805775798939151589171227480610429561107191209841973859833571916418757138083755941854926399087018994185999115536871681954685528258233537515590633393302638069395774614649550208915545369274688971590255052046067963919778085022926614214834979230913310789133081781695865604865956448304273118610483676345276965912541809760327543454110164758306150431991881360439924697487396365108827767850960479410488522062578811100675742052718892221186045600715388238871356759387779981651681339769118444810719719640353989584688538856131733080376211846379711358615929217746562045925174424814754571656265324369902482792063791685326489571310241057303068095050032343477391695309587446175090922958237829189190097342331986087679222085302400713660858592727497387764389877231482356207095238325426758990438007651101202108629579550960240449773641944290128325019247382325846975575262610499402978173015958815242929121972206652062908831910595789001438943664959218209267104857063606755417208883895979342202905886444408662565217602460975470189254675699905866639951038537188032429509286271168740356485204116419294900189610236026137826708516566789200465958108148244760395578261872077730594572040891532369448688945175054273704304299019354561469737393076449428597348428594393420199915963065879275426683665553081889610031346798171022871067821804435890824866738344387049652518029617692287967181545870694223177244336861740128150189422372670200130296051099180352543263833323210936537829932365333344766712020112323988206797791009529104321886826590108095313433041264553735981700007241985112425845204712694821757140712838306912591424688758577784420990125397379755192025134598000348470719195583250648568275733949775565751968580325649052600706903717515764800609053661070136186561774638864920086964478848117693704233269378731154828330266492561984529927965984745467879970706777275502088561578193003316261160137063094180021227977119822181507380904081583069971013408901062300972465066399798198375647718898173347342730557477615790662265114680267606180030454063254464591033192662070518156685640598020982756356315967390939359340647873534808740326638627935566337232650809597739913495363979745151905869698494941853546142633899341049187795612927751201602411460257032319198058069653067662941707265476936557714855227150982133503033996719903872707335341017924539534606771068712944751703241733317013092419621294339278609696866343416992848520914600867748632074773799931204930661534219464796636825704624756779952560231456075106158475985044627939287486028442894287034723598658300498758378461059675573092961490344100053222453668173085230001736869958571147978208523475310186484625520117462589217131738836796488621022237811782570149551679838183375283873272646278352001259060507402253045679305484071884123018999372798277456135014847775228606299381874823547144136720455789354479004290186351774226810786316977894089484790042393298622186763119565005483353977766757120314810451981107399675613001576874886026840851508596272005872623572310736817102365403511289594291906843856269224662420019758626259178081158236213441275018494957240775534824278909401733093071168053270614753710860786049139751021044671098006493471786037765214091215737909955650449268281019208643683701432657443554363010069001888223848548775198809407405394554328144454193548435571608480581318689230687941554009599335549324694144236061347807418277398935237952681879157371431460513556062524374011542621048869784432343863713393833418830975798925208094271109298087130517910065784855905953176401652323027284415011046801908055929046271890878361075560219953228969720846618799575169710053221315332894355574884699820609663350324854197710140460364541515196123939152228254679940505901988850080184595484367533619663159294841374394440255826281546805682883379083648832970115967179137366035658218345180727215620307540693376946616870043135042489219127310722895969513760776967053598054312533473519814982833416293094389593034504307278212633703305991898600019703800998467759927302862811866315757600884458386897494589500040035484273065232221629069171724267407943088065493609851482669478977428664269463670049157012549656735038169943556984224864351122250138842962935645119716695916986076535955885941615611814437016442740137324657412260061586574020256856835439433051428699257020264957460749479998875569385676629240995115456429446158172494282670874566734547282639821088079981031860352632114262896980784634055055096234926684687878960225773140603388916861652995450944749124250922473850168684226095173923347812746116699864399347056945327379554390748932982767416123654467982536935628642777204163657081524429733271267593218409114052372154833063255896889381888061803621388598973862290764278972396836829077909529240190453217637165197746764802952404285451276646792758215765237474203429151436212564690878145745300708473167410006237588665076578448962928498113476237951294657611193911231347305651145815174102914203717349390345725365037650688731047477336468536734687542018191947026223543918057064776153362778933459239261749190870689717666951184640632103267975669294041349334648153117471808040396028188610345197834469821412291635916091079058291136750182715587859717423719595826102844549136864682095754261799110398047434512449785046887704561675511359435792987256696885218100301638753812484129512951145687666992694641491648035101222272709433479633205234523746399786508714955966312303209757798324847755705669770817716778286138281168349148423701933470380388041870395701916987516194107569988073278510611179724735599030530978303199698278229876075179910091338440271582953279125400282779995003242271236896370741689881168407881472419279712041781645474815838191327547345774553219256312619502521380363082527893923522889741444726223475046373379713708816277825853752182077918797651320728564512848852557281302164980019501738356776249421482861539351509687195314072650068813636311946624051195018294340659926179889804263680961203303092824541254363021422403201041265025964232554062362133746082082576352442990372477432016602900450521480294131659199400228499315697565011097468988084461261184500558489562491673962130873265761438649838235117773825398974190788811537954569732743764331994630853634538881639049833045665851328339709114023580698211327238618556631379932004867458577120134160558897865233594883296573846464923450358635734391840733927715570092918437401779522237070983610852866222153028487815666956997965443435331640466487375397878310490211881262234362303957063877285093021015675623457481607378844455887227092571257408436369118881378465157198194048649329347129983452037992505012511155173580827009533643704583472515597876246032278396599290662665148043979142869911020353592157673988020197383497212289132972129141892934451055041709471950486650101911913923089702172339900986401582284561785860345892957823617672098198922827526022126159206030625574515095649340203505614107098264022909074723066637653969904072795843938748997027893593266812395725569344056472963406774389274721040323495100709842299240584279898074545339387472511011916389704343909155330355062344521870881975350253350608639683277161401987103540119787873636526108774699433715202012796549536469978187045825970807589421771062193755770476674472757224450329168634265834621403535279691724731950544736206629610663108616606475079000058390298275987085100254870539479654408760508076551834076836455517436871586981784157125847929377953390886134673888213274452400837311224726746925090742778122833660091257875585954743510057265990594503798902797123501602315848237326084335687198564084663164911103640637608152359226050392637996820893241812030537181283769925295428860835792994890568010992645711185067072658980903595310856968880071829415426057270631881079468760846376283983659729617586836930401122032725689198985703472322498989667396208854397947866125806818610498016613766090579828307094173787972800402227922995630720113761957425266864542746892601383249871313509910479191778947420554272699511790751792457312453906527766376078766359685460013585054707742959098584520720290463694016497880826771238495769486880970262222574512856328548522106551125459995351043323923222176204293449465866257988755727433543985274897939711036304674127962391203497290916456295536895851189407585933107569953982666151601894829681011169746078493328811649447181302753987742305061343807742914038151733629013725946269590560185174388658093875173851647705811745295594493480086287076515350080744809097618725993412455362723880379274841860661104169440009584696001969271926717961831802552931079830604915613311611804590421482968045389860416318339045431933387332916764495182560433608334437455297967505899930502165331997273335258917832730773103514583767940610936599888667214345109416686140334211275261383732417805035302792415995695663626465481034724102968281899405360982913654163365317774955649471767771317140922163468410435173939791473605271757845047721692290425020230248683865775447562820902060944338269615538718572241768601579277558306922097291145035876945484930667744206565245825621627350465177815865587338959864875122604276886765340041286235894943182438397945708832570213456083790345170588377264720376009267019689201648732131318875693366393098635229043791549690142564338277457308264207783353656470923624727390845338769841105491863393270737946541584644736919615582212188619859015871153560213522049913620731250280475633449723235586697978280380615157080591848086833184973815654613554635341339037482990539854988276719450623917452400346032690651435970927556782169835610410339739637442303901500044150751361126193775580688412384885704799434715563814365959037683838584633133713181788319283828555282721225659940927441558125584871274633835877335191593134193404694229850504987467856483213937162195723468645216038006178126173158258567636013809396938282142719083235169344138321887198902655414887781898170337518277702346367011964223490992910632909039279286905709634309884154440527715819924450755107745936488437371228761840475865294162722732139267503969422892838877701294359526953562811430096102026776137218530314951451835005169429917211023554628715414734622294747192132669545243114366570796010619181247166209962011787272420853287760634517884541236503765822797217691920489938009027304158823272148045999653468235981673550799386248540276200865120739633985707274220807339801110264246837053488935764623978819749718804741838168671542859012812569400674769270433950161294290674749404512577524601171045516352157213168441110913249406135573521240369049449025547254749669310267092456642421642633166289039184794756835959711583626070391616503290573252062901710794893080971332375042797281947896619676780899226803322576228774851581961995129459029312624440928238299871730037247143313440956857679448167173086632344443619763565116849754604609799423246967837894394162825786854752830339174863690061997906096507790648751411665028911255305881055503571605627904247774180656489287475431181175749631014170877679155106256258256640327903759834144242567705914597201656160873873383835977609043020664816144869393273187702052762254179659144825283198587693190773896842888578324217504504871276239305899238103036565691478458799568332343129589407419797596091406488645256168300890989826213626061044849490204730343093023478711870082072254402256592723804825418562685331466700917146977166555492208344509030970702474774073290261854626982041925985991241562969439013981599400594950305966976579653693455991322313158962700579481889582329248794481340426490580861298135098135553033796663138207309573753378850461989487519848996374692213682131973746778732035904979447904264376182802479490399215726245346116842791690958647086331992723820493187376838103487613456552152323834813911505876857985215241013487297139750922696291345770448110159819611453022290872817257243699585840310516989016434841766346012170280343080626923332455457538398357910697637568143045821690208936931007351889212737956067311656773601269983304065990401642844902601232921338447164166400641363967368841129776891357722222732138527361244663073488190798519335211978926063825046069579524259732615328296319385417115974875045733720413382564682992915138437889047791070189875130729587000624572726022242330288653454602892352108509531194198376522850878381105600535532273003249860466848872970821043721924808496978340778982674584189396973132413733774615632924473249252898973698121589649787314089173331345953864325105078405803351617059497056524006304569279731952087260180465971883645219524448264201188187565114092530370162587287461350885414223821824784315345347405430650927941316844295101216370186003517395503149325046201304342910219189571649643797909776444091520890629425545291439764798702227042776453350462187224349079230087627632358414871727254003674017811752709673452379873358455690820481089504885934359644781319720153096907080712768457604162798324268409950824658396443058029384354841986667658115033434976114183911176828215951018788793296546525568259520552409532430195012056342446389380318968310156915193730396095255356030454679282507999339059936410228319576699299474577891186022072578618850091560873484938879593644846253423903438184549091904700470067068941535842346520833004407548689938457590718532612954275344730395156628825241394796510499389756695182872222298577165781186001678511592666872939034879565471235793947939135751613137334625006796262499090163785893935776465599660764378249853408992060685473629768933496235710786823988415717775111875344414169988938281349413723135262895919778420119581538602310917441061533398048918659983543003091421941572963691007934149465385760614222850152575897721866594469601750197080578875594264833830119373381889288401054184561326435705818290499475870812411893358680028136203234987462910402799042527255345617906969319605424660555689376391969413338179555549307331051673677609488704039092096429439242096708687614353524485611667984245033317590494848639653257293630767375969045114144301070125428966526293594675878296853152426597426715504097102555250354837586589446266268089004777532988616644946189312754414680580512386567305903300747423929810273657044472290783239288906251662761924106155839625391196627096541528614148813081598656211881525349007292050917957785937133431375726693036275868048997527373143968128918005891470957245956891911003503264264332479817872209259950821982409573444373013003390694177374079251815881885539853494009198665319186163191016911757775794387153399276664239007026329333860674759872335192352444824350378723911390960977093586115693588578578516497349977260982226205891147805185226663951041148463189814312341334647613747726469261530146971726315325920794922544240460491270815460273558486497207972029481633147655714951028982570566435345941882678145731829532535371575399910664691772724682370853211309469404281209644616202791496840356487555544900274398282388987674596086824283309747389152718825417433663191634401379200938295649459533518201947264420658644718585607494537977546706604385671407020730544353195416781793337109148157558697510586191496712806651180814278612302372675581719699158532433225921816473924923282444730407419709795650939064157623404856183963315094254011635797554017279228114783614546420100522880449441429704209581681387554919485650079607700616970979304457906910177512192391845819180486733811727553076100324730979491974435417324697469719771051335855590874983292593527998047647108995268856485257312492048350521806992642585204616834799969106595760732995077134441741350844245686029415266804694229519020822801763943217002799647850141843347260400464758714549008394872527022052758673261100390572861262275426093165095891026884355015413286931041383744605503178628917490130673034244658596130729492004192808230933855070224714129384601121211818173662465801219003294016223842151560647532080695250723970276289680194890656510786642540260430945958203522014161689780066850954497248983607085682046367488997056721818841734657199797658144608152509654036476757078564092460707285745862445688152982268731121437652614107216447592480600950727307371142581758174847940715490286936577278508947109604014672990675161957173675946678208844672851594755381615583389481786392210309822043639302731005212086097850482523375327340004677892085501024875970179162822998331946671717771707227897976209023843349636972245132057453226429716970611596589001089666921935738357221102347745344493175911336280302782844802451491302945794755540987475894322152138378776357590816527023797900874987087364856495437697203503408267719478158006525496586129421884468577870974125937177398573409392785582607639387284860096455880012220719914375761682271242377640511941231880453562873049569179004718354169946617315741806384148360502101757568166630144624279167348436842997636635973097698433558716905811789192020093487647986558554892078573136546870091754482763518221831444022488671672646768653066060735932720060297140751120491649069647365742082055885805498879422171429635157755710706136506699594581111662091079449498551122260910971539880434040697228647450079030220672540776800019864767468585013530266663023537573468783543977497820955769922095103618166170630247599665094965860950538008169012933331513848886323074707078719936084149082653118892705738991292976384239627414699669552217870939105274990496047680869706911870257288900879633845850176461712370522525532763587057717134414426333941414028479339817387199649484766857038799235058278868829279882002668857947988535367016175074565641982174926985773521774565496144615852040566677055484823649499001564673826869362910038034128378786556343702331520599821988326502765821639342706245694731383001681497640109908315381744274814960913597345385350030481021689396284013158875399329290964221818303874300242145775008810932112845492090767172766022714366778955920684584479462727270541425202922952980413967618785910456451696779280244002878900206204922338890633751814378528393974573091167954993406243225163017909638103390875312360469283723133607803750203564636230906694888709069459111081560371950628851769661263456716752818779110446617671804976544104477417801821923178371670743151862945489099901149796747033779835392166011835589285009412403438783505618416044810151238721849574381850999170734797495502180936505418285839678426675969760174191123524940676449656969140439695800534852483936706158797034733813008230233777992086619215403396604360552576859868050218963178908477492141335743103306648520595399229416746120544963991329430445624472601185490591253889344290373758395565408887318739312674474355996281346355802882743766899406804161499992390384830187914659573610320351546838756407173867724614071998825019152240696610045181114167086020227456352475558827456799172505720295822975727851697790176992589038866318243119731500712918505700031110097955129524017862559816443402548093322920275743294063492834801910648709221243147890986569191439994999769275200677317123958244291161281266569909625009085767517590067403569790860617203457104459055316231748080777133163467219095942840173377469150849056268072312154042866932846420051943449502348669327296554393178484085634898713882004672920087383779933558383389546937537816469254389807627084139040470322731000244068718379898865052745555328064040964938320261071769641427732408545349131460389015556019848311723576132995897498549266524082646970260551791410642402488070894669223247657801775387934184942306915679773910900561433678307173181863088328988908975295607004106055100585959800965638982063437416360084637587441695460829944190718954319564836719765299178483361182506152042062441346897249206209464422691804856255703944303366008317198177447530510822436230026168003721147610135629313814943196928103466053450589873923427856965449640223638616770920621175796888743766100414955129944653172149798019311064080293865800114286163488682550882353526770219243309643532274544753702099722705451659013014991786492393124986226476800425032664797257703125960209449262324047805305314411780764384646518778698226531320202249414684532157393503101413550208812752896637270879302807344093037763399052946523105110093231047638193055106066039149660910467762685760139798887722124487673217312402221872749826625711418533405975500657922693969091032256634612273706009860574247923979853493196840247679732771590844780741210570450953612423162298007501833918677094475766100838810362385071774289299163077641378570110772931391052842507209308286443446052806893489983674513946039316914251520380647705803548706255016034860305690424460378156154154192871229625811137660607190381653926916003069275311805582825485303355942487150624736492957995324423633611317771230900265509134377479760737214469015168424057121705334071549965165657724863264514675090140928224097640093481643532938184550493629967364625798051776967259922528297007116056033024862045984749128727592448279014412088411699583554322530754443763359598932645545384054745618009781816305757495707623081145583350105361646982967672846886048891373604223685575348015999977234377770743366867780301525106247138352655746347956824447446275909930022216011026851052886669553963515641561241046114975230876636854980884394141889388710148714698920142109604365084638830196615146446365011081311655247667352042465221722739248265045134007749517122373300796255152709473635419502642296738872145808004311185167651490954238736837380530221004252706534344120339049525766934902557813225671982532375472178778538937941710740712162683091812128150211948262539860708037503143191226973626451288251105849066670143660610368691097447964018644452830844707243939996187495142639411099050550874426724158253553094852977154261073672154632140578038620648932253663755840869164204159090514645463667094596637004491173121300813430496659505766638096080355822332584385480259509121511536521937030524604802505101477093830601248137612229760862703251092085762275893903592790536133850670481786067386822927901432289813346065072237909049469434838317039381006166969081967310409476334925502237462448670339403125027295573333504440345086786683945262044399789791140666448817706233693779734936489345146934376411060199011498276796484595699416039370087868702424456366570556837758462472116306426242764272428445046157634057995622243896964772141771184481315499767445713540797084579163697226916078357839830837521272323485617361770007061301921540375895135847721990962746122315080376179779589422137834339791308472914585438755396316097313807521126658685791193711301232868249212364642881591513285252578376470761175472165381249548956850999740372925988091822147436818877374421561682306835180291656148878165219759707496153413623460094650755783575363917842467881737178185006565283825294510872485943155989449784125526824566130413855653228412325669802060891387277878797664611308463079185645110525979894937011656470876213772375883940195146420101305521338992806267340605882858408190815631352677237070757603552388285842551158347672556058671918886130487963540781671740491362445392774987625117782182069440447493255967359080412827347807775986616260294738249558594159285621058048427989439084927391789791873943200409531364039055312419312842477225372451142817522923992329331466755192899487688192838386968175619046468573776960327887335655837855444103564615466370275923231226145867074500838259370212914843007824092237943365347259270878044939666189292258220001060431595955862364527891500681599738543194442870429996412266509817931207298894818819294875251222836757469389932059283948309638188359183524486747522405967533109503455781807939617206508125664762858914829838564526016729869925332957241688193097680892020520902343499343067486398026480123166837107835363957277353640158147150106528563764358548777234852309922902480181409428142752434408768864147955922969242850078316301157858206031381556696208527880512146703130888539222708684964176949762918152940662231646970691344901012126522086210694248809033362676637388878548366796498913980269200097752200794310286768685915180333394360769930269239271784846166906460532232650196066858169699749601176657191522300399765392423743440615415173326501054027353229765204040144708736851318391430377716710648620666927371557153028233861487635792953714281008348498619795617949923997601409133516563572430658986849298471686864693907246761844887433097443994646262536477855152963987488554981554620924392052405302942654048083050711892803796699920409948242199616090353425989342011111069956433849361871517389007976299993900860339859914609284780164066080913882350172983537440090281693886215888326161729752191849614483936877144158895548847896114441563780908510583181466436203417043784682609451102236132156389824757502133916924674146445118227523067889786380531908595646589372580156286370650977710075875639645303016903223735037210695119562204987594836709242039209391208984624815943264211104962952300226870702465588529286022853023641860684690765125978904108208986945080483930243489876570548146933160486639448054772922497097282429481408823976012231449961696068795748870925488129422565744531414295972226193418711349008306468308679508369228215628488759042148407781582653090442674170453777353221743551416316296371359244224824942049050767658243075442028267430109078400153631266472380787432657512800435174830355142126620031556307975376307034097145208625770345663726709697385820502159201135612861529565485205441641323657393439195001118910416535395039907291471868308090334852375296270210098435533905845418446126070610941073856506618216644466514785163925940673018646686674206656246218657785173479022984766133509617096784161535704802290894981275177811817199664005061861384978065791346585991813762869851769780893194945349569714420685940835508772937259528830924614583697344695326264289544258905797583983343049503311849616450223308680518152593534765382307555534096512034825102000433689298617422383045979683546996232799455462874454293443292831615922491394903345290468746185038103378165431604601364687830809228471849538681029525826377337065624969149369077650691169308569295354468601000807561657336491974229190802955338924821473370542482635755861455969123776061959623853861710069217735341906035068106201519605496342524556288152043560443827679093408084630084236592187823827067199741861654746859492606562692675425137882371149935346789660315490539582384745153558555969388098175840090520523358707116855565228837552554619376402943964766649297978802665692691679605366162344493773601932538676637647147616418991591087441054749597955264471928003513484501875476708830954984971649167761366115545720071529187733819303605566749813109077305121854980776569118282054873821319439628985362257055778175546144341944424222532633020300377733729871919682802402923872579179715545775845062660969539327799258623672706871439030085432499656353395741115791271013672947857724749380385041853128288967828656655560343769956655727134022792195607651567746721058560763306042508140670995620056022009776072579545554671323228293712225844367205653810433733457770854373124299809422141350641072441807616483489577116266758852053373178700377290195320629095380966850540429682056354014249943941131241966089701049840388878367296170548857241165126380114115496984409027013207343355765137402896069667776414337707378127406423660133288612742450907295549596360904816551429915528556427176986907430179642687464693193748499033871576192120002449770978059839052636714697979995766814415697413551142602255915380341396966561285898570611137128565272227525673939130792357180685445509616685857409895531775391417568923177005729540832831817928517506754733193172838522456580192032155362293351721425050217041770141542571592216398364683442705184862148659587667008976811987115127064656497260702824408329070602095385472800927211577373200018591685308304155624593173906971576461496072788940582230531901391921224611040836455698799399426146426430584947871401347598565066337284118105259736746761098637268740695159304074092576281670170251012094975511353789950509567122259626016201645380225822177799953225331186645133689842247018332176678616757179193265228765421633571598152716079905996295415656144904845336060023462252837295353795213976752354869712028137495081380763907343475981550059648384302620002514697429663748999010214632666832930794908412835840852419638561103705455431162716747199916754326114101708069209389443268213961991063994495216151735435853089516470285465368542938337636956034246699900640627663776061088045962520110732001790608656825349536497276135506079983368138465986077426458211380290570772094463838622305313733600280653042761790495414620493719452498491831137778588011640675781613692429263347761276791297521257144585163246540825560279134097993194521351484927779897657886610513713746204742621961593624778384624213586110784630964481514035426985739990206394403733486585713875756393074240042393686020034702506771663522750239503275932694610730986633336140163416180768814948465593356808002810697369203938954778362374822929905416689118015879639474159900267739459011144284509414918489064816573003045168714957872470977379079086760036785865715717057237937998519108728766842118394192480794863841551828065840819070309714573288782241748531844139798143919411836484238228762328756798945149081792817647125591705736882088288968306909130014552300153661892831406505994568850075885265879557805970766651603342304642732642049297745240197708363724989272546543600772466609470306767565092685105463251692667860890142149065394473168428831166466359148230330066167927207292719200052352464815401987678256886481604808446408899276676156495346090393129952831421700793929864490617982944382830191449169003430098718553268496451947744267829828597987213029202229978962036435342982238384968416875172293009239650216099942051181614674321788025453247867640665740032546789611832743605912910166665070229690999131996503430015908491666721041822475765076542146836333444245226678253610700421688477520659064630974651467891762931320144380005347668971602428985865031038070301736971728929117661833819367071684067289995959981377055741560607298578803423488624268460669402792943499567247882076066451570656117530259370816370051279165720660885687260912068705298272107909216335044669492824144556852259775106767890172048175612917670204449502190262650576821382272243041455742885312662881608171680834729078852059313254093180259048480696751960924160871996065684985311124769522994771224438213916509732655543910489169740272625413762082018660240798244419690380780778124581644893499100426862666625865000004795095741413820534082580335176645045275153859636346234753378352640711283732235778938227277538590167000694594863878432327632792184917100898123571789247394017425806790797221265689993171836007038432879655111666168889284514834081441495459460580038785995230402217494972322386372323663107806565232195303502041112954531065740617392085334311467736540666089119384297184393451229175886575295849088509973017985729964904082361316624891923335492620345690826065162660633962771232157301813759497322577842270876820326731965872372593819416143069627428089866850114938562626438916236951338275017911042946832116184610240678046355269743502235828451766149644258991723392083535495633667203521202385610903349978351190977982773304841999970884598217292542659800010610379711972157812476369453026959473855797391315969449841896571341255123990640393954358187701683540429189667012715192080801417940461929244914782332869976514660422178936947837571668009531273149913287103491815569540095885065456907370842029488935913570438593395396625821943125971999711763949966793228761166479809884365738570127443259734867595743244505225937785349413373609403616141106539746629211085138642037260483561151579353924004710470717639043150765065480697544286260500285486985314907113840716861605009208128588366521616622202824031653616834899850515593289398706297312615687500457781197069217032262464216747325823280293021108092912795743044571982689083887958802399817925498889214279835603214436824093345520175930293339962664323150728209060147968990048342717141994290897435317311821516802406794136272762496952590103582216456251679130624943446849057428075718020076595184996803139802216637989835889531282016556439582302304811592357862360972639437140902574981808832066228471170788243913689603475728705929360012675450061360394632096091831847244804349213610525146968548583584109963347240271729356158534156444182988749128770762510327629019157950444337808248597794060057872907837420171905587334719243871042172799924742668328265791701861277468523316594301910685077566038712818304747604332847546145962848558720241427748969380846616778993593953319352781742666027079388994218535446673026098560139135986583175031152742200258770050150907281622028316112022477095566476943595654971356857993941469142472319821866131350071416851271829879936987648069712531650624877151805511475244693771533161289424566510385724367855139284948717442350032843203837141037525899464251880995207604660092847754593934863199542969555022799155178516782443913985502511169834662890947897794276618420403339170867335129088279416898428961521325994233958827931554719112360475827335475806947013835847670788428748930149173500697379941416262041685044407258227290969185900638442935266837929659160332095673625837848694351154599459656334640135205473029396921216906274515154993292070475243664184663567784099629655806681867659153653895046068268959873256100481378991897501258345974098079192532040759890659317689271324962417489165694338128618154916982151663243447287419627887455894763320443131470524919338303572997790247558090792118762866457075056473233502838813000889839709989186584348160002248949948429595427323331745639529025303126144352239062573251778455202763663686997849697909396047275725807089339925680020722003198450536396019923440697636473791456950849498398436325012939638246306452554271164986732686028859218403218498824980456593040849316099831111930654769231922904714399014242489382324225351621657099292864010413963830550575156476833746963227516193207751783118521110786155597226154199246347117953935416547800629857304335081681887251422114287399490840379960072913765443377057085033348117192112457632949040072650712712428750975180811760260697315608452033732828566586803535622317809501289118274920044201819655290712205123160588777794308366091192483558502521893853860187397322921298002185478698913684440140056532335096476261630936537630407813057030951235045362687922039741497992467846772539127489802894745598878441395762048440403497201779201925763279398930211852879420251329762722933338437709922060125828256712077397058801651360564103892728182068236982468370113227680233968807394829673698396717586023868534121273151985505594379966171243347010482099557288500554410702542614680601862677689695382818618437906877589611671021920798431701885264909129095657164378652292497278883421929909234503794984374908225391129611416937978424266421492259324098479559790004361739399203261000870052076334311688942531273199700937472296716453064563104209489147640325691476770246658301229501647586516489921376175109823713255260720084884929131055332962493096681469819210215608297060961450849263172661537036977648443687465694532670350910877194802509156238433025006241307139487637629532189330060932187100804998249562219176155794902081419168558616654096858662853150289322960154590643791701010580276333733707994898328051481303701078089501378406045597701063811075559244386362002557444158126466445809560292514348485464494017993679583809066702435211038395930752637474264524231343719977985396794952065955902770416223048440429992092326287315793426033062254904797297751975898845052999548609038149047391289613870965492042011088897483008322692415741577826082047676187860009991830159395842779464441646151652371731301014196314969323128619589472002397746568159644549517108580364436732650898266731134397921477466710652731204328791180727381803476061701736865991329972631953924724179871874404700962211559750198703499197651140880630947969615145319025737495474429372287463622909350390960507039944368755273422922961748386983664651532233957671070837510979357042537436048499029459453141887591332787459117484156590453817825555210893905562765834915427940331994169353497865888716299742940618404818367986912928812680153703433175637199942980078309888473488404991586828045276255020609262511239504295547824211925359047263566808477810128222136609350069396261400049341606206953613345111444527454618263850749827146110385580986926184640115776145944622348921771836595322179089346569165216814893660592473739931865609929840746382817973458595621365206676794061559578835983318469245208133131313723744828998632910533312361977487519479821230158756371658288835009195008527306954498884448879658188423677235067305690019895935325208541446048546480352342307762100847651793487256338300492750360504746028471325671923859642658569269632838569830359876884420241358976374423993175740113720570511409580821074017218152243618515755499150876993996501149867265080693978193760589901701823072428990750490863476403324883481806536700906803603348857517945537101617602370444057567786338725989787207331699065336483336314449255540731403310149780097150073476004607243113963323934962849129838237297129824433816890037427871859243576285239294474916188348851667844998704533499074360559762936301381249831757867856602840294599752934649269307727437127120865166459627602260835298605246687760119217005358154302072610782609858753932540603368593705114819045091985831466483434533086088344696953888654819111774668110100372812470369528251115888212750412640591290140097629051617416455762683545669266675751621360803867778866811082939705874314116571231489258114640181421315682738755770110122447168073436452617360531312588083299692805082079727371330278568462960796244790633526095417568588546681721404998738202832473126189882941728154239264835792823817036046706846968158334623672272067192605590218978733825660909793229486089715249656172560579371811500551558253503850286947388039059816929752001820934798156257831409848440954146238478268526025684017709761349229280227061148060961676290436549030008513325011191340392113172813976981790718888795170392197624340475953395751480859620033097815967823381193190045792639509266133055886495871591679605074361575328187400989335691207536486820886747990313322919624792625208803931683868889687329426139276433627101578038010274052591333137470002637484098157020421970775495802938378490616416637695809851363327664497616087525251427599836138851974640591783278637565378709017050979364641995180672596709161866193296968754194363566485393570007173091544607380498094190587098952422464491154101078621756300519150794803032021156075379072793342069609517986531882239201227202408637659497905679478926210590401856438331113006367300935047166039170110118083633598411200273737100182188216149871215163664304366901364774339324104625947963150329650947807367371072526020583576297845577717086229236750827317706624737425071065550859869358877374601384522143385040339676525068550364986854027752244859762330484030264139482001259131042892473774643683318606264037179971666900707922425533736751636271417567199020430089459189900422414103761351443110880151896939328527874974876118865224809890970798973010613068665203355874115070267031853649381445063928072990196024182033285893402006539977183420389726275371474459470699120916607335768565594226106314752222710107124079344763368990577031330018117013789094438137313195984453262373996447632615116330727472142901856620341384102460615818821403622156453877101941676802205717675508272800679354021251170015857001137736913009221572720079512392450452845233115446654250386672171979101830134203897525460115954748249479622001434932689611879124488457806301933250203666478709969535825230070996603647685143596570987350900244566097495815723244034113827188617370079543370542784239733897650979957359507694594519659214152149863701819926176068422273197050927300109761382047781657455194320345128721043940313212319534077726306214486909029275789814043414994493741640989558302998952068189479649562168922738397957801715412278293942702840875024511454530317622999649826387127341476233901568664092313362969058550135251907948337274224779347413614801942259705291668823730353915999289153836000510714721183129501754225564817062772161903222695753234010184708764847107549224233343272773410470973102692480990899293414088033323122119857528557564025112810672554449393112408082947728191444081946674009168031535317268442956704838479247969937069924215668420889050596092435316110819463752712085676881547169586467436449957510054025708869092853353629703368564536987714374231199129424174640474424974153034683828470683748093546019057050572534472747691584953184268289217566393008749605809132624260341448954160291384609170695059266879427367111796808884800480303826332345568067393387513261037355179970462954675075069666522005113453384287871257540444382561405738427592986506868703070292014818913744239786828867500505652885831219674378249488440007493219229597213346171824779852659117419196629692016406897371860277078494932297083455707353955309498643957187047361006179999154695225827997383566024543829767979568322194304338465142323876239619706012650318431287036866771769579918180913575272675875350194308757444493623001775163648274121691342498173064749315729293036896068128375678978335945137020457247917586774788729296600290659569181127880858638384539432787522327766236116321699462917817876202124739356295783337759935531116146992483344550999055329482708639256748677609716380728728619497957718825240306022765703430114349798701246104540990608530499977434060615803823480317048166703049048574993723767982086229989370632695059565036767108458862553138665635618253694928353303186427783385325929222263398330351543909032404088941934484884715792077155573033849976326707005566994781811614226371116042853488671278574966010702893140720260038400473818586740678127449701215176300866160762333067410345458391236154728644257616648290407612442444800101391029033184531465892332326830055674712202079637414799955570775321096360013060408481663943288853131040032139249263017537181274785897593674222578920419267463817525498247387884433342320010844626700222321658109740444039564314174460586537687998012581242293321472858807811719762650884865849247301614991496234366114489763573467963519660799465050981914865497953575861565993510990307721892357716459527682804140795378537733444226450070533588087282732587394122594197543373443742055986838412635047400798237754971128596299983623169830841469960006467365444025693167662180622615450309797327138628048370536653751633797198362662311673241368793647171287565464823405278015093425616408803147931372362044074343712259834524222458291040190869061933881929124730301173902502306593707240799090651023945130362548943059581918890015148568404153482404743659341697743430497894959355647139323883476139826819674201577860348502717096079286148639634789910149686926429426224554299696911999503489951222231020830026741811901557996302593855688903917765791419253060430612904048112523905133417715871561140240240606837219551906987670891129598183777753803796812019893238793275126700565676641824537250237703700791134567043106826128511112687345422591017893783075014082822490636979250086338217407938148343193534602652333869710751350144150564884417546134660733277824273023963919319548275582009960985517442867324048538812921050322171319431374525403889221713571881473524595068417387449065910511926643293205266255317875984984413742148004076955584257835316662551965767522959228871685595147041479566597043937549969975982627787806412458996510389017748677410045654032612204621050854949655768829891762404197413267204418196507900331359753118072391032940295689439604728306172440041230633070485659722400532950170991504873454140091083327471169353881646878076180493181219367416612894857980541227452051618132988375777497979109723178453923441691999830946106626949700303291857772008264782343731590567032645813058588408019107630164228590056552269844069038089364554467698358783817651488227594229868962416134693644208109268993536441715388226267971128242441635931449222727399857036551876599103540772622359040022512309386195324516544017468484315568626930666786409749833892241165649811266498239106810375496666846007787888407475304194327550209697673777704828905788368557492461763860119277304969056557778890991141865621305117762363767922006617724467683897280243488025289946657539859974230701169501570019489212247947788445770574399043689529424596965332668228857543187708469762421376295428144368344489119520473990582042634719286309508744946062222471377247777037263297987097269605996787837083612434438744251814676898021520566684620950001277960019046432554828930659624132461438631223677527455500462492433990175661932545058743151959211600927479327609728006928135693853360905542112419918429935012812370763476939084755666490078538848151674345367660511110775923574832213502622900529580236561266320878660447955157904974398576394407232889940392756848034178644212182541033681878023365954315752358005674574384022642545050189587457119518463460924736264649290547251938953579049276449834709126059442596930684248106753060417174084268295215463616556974317733378303730794852613747654855878988478681734991108605493682764889936091763763170071197154210820795223016256982407011816719037470849332982602794737215222561774399053829108083590723845821723838184707657080366150317751882458544058617526752679016176703029441082024675087055263235623949397854951099665316340117098380744951444801043040237258298859349834256682489212882673391546580467901313439877523602500417991187326836541536255949870439075940834292569276764983314819053005944353451803034493268350681455408451716956826972113296380955585595676287193188945976857080042358790652254807489900170934809514737126286360064076200148101968605898065709199934837875998121276706478104078976323052195924743265636084481545001840727559907683844143660347005461362059541776717453631660373515948984549846867268744136305454819566378978355428531692456674514482085815761633194819519897618378449566881223754905599140742330364449929954297999571964087869421226110763512155723326592183086041967249992120043418440289837207342999219071427359628607930036089718503092598537070398492510705527982735189698490409346347931019846326042658424092358953815527464563676966783376323823273736454478232067664758305340298370395343980171745826393990911209615116975235119584900539152942485459655159385710028992058053870885559455343869221693023946578095623509771814373496826981429610398195087420650230570224986232956418332042623451410294480013146851516092666316265535492455933629724002057642046276722224299860188348089194855395204953246056945868477897618080477676151710112500710130969744807086376536298525222281142088858649452257861651883965080996595357059666718271614908488950422372054921844793328792284597737776870889534206723877180338846196984788870559556854112897193424681990170864065303248074278400927667409776110361168527663799256028199886270592239032661611591335399136328279809001315703401134688564770579800955731333560632097095909595821063292218682621966272416880573678923324719625692223093567364575973448365564622640876055239841705275290774546468331525198309386078426919846081060698291910805244193081620279638766014095989887867281010596341799554243827456853210833957308996206429304107847226782990507321032127850906823449429470907117191750372620298530732459979669911491211207230448743490469666013815526410141571719737424795423718219161499533598272108648916940284904088768408505625415161415220392794868568849800002415331967826311248518103653930385725696951293561243832074380648468316221612957322883543109832428204874543433046882830665086279332075626931908573163997241428579763459381787481328052902774375350714211909097435344361486408146503462351398393368622476594971919723799096703404271840976196339353329685123586531569199689512902899885070755113886639832271112707219600286338315122862014525873196401882982270837344010203607089358488946575718535873105840267270704185404446772474014633278505870680161698389734519411384176998255822675985367121685960569304109916486908606216671289760308018065987022030095484397420647327390346011832909487070323329144799621519015416065045731335578017403146325248016293005117104312822830374612589798383522116886669300727550651022556578343277784378319099173509531330676025666118374911312054706115268043471311023759131079339813124027249624511515705961903606840997315362609075299047643958894458099662165171870247655078074677880300184871477913066913930461837269646760110469970541837214939701484720114296471466633210562122108518488097098851076822074009033333200499797469002326479534693752546431353838268622408441408669392462003134725420035753895535874798253482699228957697482210350621269914181135663034460752237882305731121199600530960767888980442868237949815863883186042497232284941343764105332893700776999821319984008590287160557256474155987386888022425779960929889252275906739811922785106558416824533828661910700030616107709055102912685154324701930198876822002613401717674436538135302037242742103414146763376605913344028435205585579246484593624311111358582903075256498103685230220135239142428597028222690654493706769301819945716415643076016457786882144226724592451197320027092332735644992717270928040694448294392607717350080760342804033847047472211352077979314359427721495923604266566202149745368291354356547812776143902720242018799147588619492259440401454661795221385974379527726526637381320443091476976150933480430550718797770902440113948060638426986477228920441614967841812448641324612642769568162188001420273262212941463523847285026616159625844411807692785013661459847465312109454542499399576242662448571826980959234085848362206598687888136836685845853039156808335841814234567241175817592461211735931143124418155327956607164114635301234295901691550310890620578543224543486311510697763971152599686251822587156975875108838456966482159013481794040929361134506877258777405832047484480941386437183201606960520148459527774079772688798828226193116084055291864129840444863592745375755051831774014173365710991288346923454825934967634598189299443239110364526877640370073796090306870455588594137636728895344697832186062815381184592441678335215606985338298081460253035511454648215769257435515752777211847275250988315448209838247302950922723682080503957161148887818692430323177803382926059850301336300202737739116790616755193709696204383206555574756626265849058733470096959511417058975882807696771672843104593506375563393049878672888326251810248499316564199158225519973808905079524475384728798956270079462205984156967840356121721487770658374921105474415185050880886077053906343102801358457228284009235779792588654700315283935870785190895982213176299889004994987240907141597863936791473482005742411373087204024028217872133890063560669438271527189737845767060290368585330233915747726212290826110892204680242417177100506917859274433547559295020458023738271796584152477842391869253301128245967666349025819328903582020959504434179268085412007068834477309656221188501865158433939927696326511876078399190885408562471846579155337608886973073565329789617332392038262844364976936914744508702030216093526515155967992554968769788877337521596766050624535011593486618660206775543152284461073884990722103661518671745956546278470099335596867013065467664567446765042673521807747230488120381587880486043866346533427301078011517216583523533097509675141550142800058905555395919610067157584080029811935001015893139185540734189637212949378304033825589797728008592483913613269956434260020689957796788195222292794326980176818108530685312597556523411860413789765538614811465401451923693515450693567934139855220286668979020527462999570241667939929959039417960600148943659066529251432489625467304425606091595791368292883440095826249457704423790310416411038063576535163339731131006249077802158568523905278306752531318597629248259755872036278781267734259396136819538125377985216284652686510062002099713789363439916598450113142327501743724817796431448440484718637501267240060118650594590120034972831756314608590439591853192482986033110318357695440228184237943722189180790093894638457371405317975207525787604743586797318549394189760467242698652462847286276300046234461712632222113511522165337711360154678056213053250471368604722796484992214808976432773286904355263301808409166615412713592979807748125319292331206622556918877914025039953401778033478396003759467748324943028318528183453213384435204569483265114637324123348961114378458974166800687848769260805759699117361380798998403192246798764189437284819344874187773276839825473280022396198527518361900360001751402324183832554044103487320746207792871458057760748151736180110032303167331755105736288116770416715870632347538217645506251780841055537999684958902328023512029864193258213382901780756273222729620927768373679651294514609387114594191213463503362501228923969226479635122651390036614196036054257937716047690334237601941491330561572488243805337061453396066005166748164319633618832724457970488934666438594237939448497424611653296593049581325187092143220596610959499234889590530395852153198201051421654757888074660005302126427707581483148916365416331216049919326530425380537757853333959113786090110281347703565393309275779309133993151411486058217305844311108296126923303820924003983474402055339317148474485047405984274273017254079224388167011710272446794674742745930948040260132859176378152957092700077863322722700020145820775218576430770217861345616362317217123504077078944410845751713063849600518571374463606138924924401332277436896502040308369231445253170877552877582869461445378652679220854109653166880288791247215937206037104291743040871782366559355148192040198997582917464894677965741733956014714989242707207404941404949971865270246500839164320371920310068730634598996800143545023482641624462408127682705658491968244265411701328442984727139382024817199910087749751981589053807553836168483340413070069849377519781539438592746946766358519587688466985673082967013470521223939726216342959396817098002875994368070746472500820082704537166507900320332293996712467984144859141683159309275398982458200418907413244136251698504024917517587973859877993068313563936199139183431974317320598496177610943551873329583814475294191304140296501553690320143046199532878255858743707837475655508586586645182223586091989213163440008270635462454674044780421664448922256777716684781458247497057243541605253585655799363005185663249362710210546736131399055157673326343762756363367907070578917790100512129690961561746974024974281136938911114552058884998988427730540985357668477408483214626151439001199179835518491504998463293610182170270786343891241718639983010277134424058370047801440152459659805295970017623347848497567158019251030763811909406983489395274596967264837860694927874920057512018471446184637008886662471218912771866120628952151457024959655731894791051476404670556906473994178341969205988296050851210647190715593656795228657842331688779750308507479982715537130195250551790913998350822312300712724526684254855016234262155500557720408072011782676686831426795597150370992090442067727659811350225327674963366361262274511286127271597735057603040125254053089652911784582148610218736054119004094913979872527259091693847971609676211694509989868142486188314183816588765016695480421613326474163893435584114281419317223909863052571348555247052854195436669821933083604575442808192670233646979540985678763478611950430057407383934356420157422042280584830220953695623740380145591021253690600307838982569446149126514529097189751751579628837431814425737407478636948507227023872764561574445746464933189114925915583163022009468695957522781552069222584132507739695756015563714086336280995298031042878645932451364218142494393967857052106293224585054352521311433800849164170030443890930176010865774191333058903750946022343997451712862609339544951570612117210077194583106568476706115980772486847336495191977118106661794528435575965806785252188713092193129870626558108888670027576322152948490716998228990864693588289345851961637444759637752426203262007739654960460613591702767061595501861046219899835266510883558769126105644499915611871613999133830472881659771835841277023990633242722516569104325531633513314021918301104960268318861537595298502498212147008544885931703391100044767666206727935422619702424955076536026458455122192956449918747081407937854567263148192141205061376133064298897574270789948780969100169867763531454800863673963559342086275079127122813051415055623750766833337239573220282473697577172443842474630736020547883643574443728893832419564766161006934047558953378002819203251633262615731196797858172033482991312811709341350562198650907912136699468142857284061925151570502164954226380274148550747933475371358450179095425649136738449786452974729660742412718632825265931894769828537895356418488759943053824558268125901823381513185483144447777580915164976520835026153575347858640042115898137872093851668740046623619921845831360581922277869661707709634680792724285103015239702569216158015736823240217553776696649109643117943851129042926868332307629853172670003319930034292321946857985305654458432116588433631829696858202340942290966132515289433800908325212402229906108957460666676078975973159950928156103397793548968053842064402579874403624668515395989993638993435276817975237317395267867691241760711345025230252899869328956522500098517873079938936608076056965936363133827570520579353125151935387201054300557929218058555176008598499935551247819649150409812275804464534610846074494388343775477449405671306194955581564395017151072537584454445961481333664547541699968422344266414148487217860882555882338008392492789935836640614458743312242817392615282392494983495829522136670412556854980228298093098241248387535414958403396429629266680492882775046542072900899066310033263164096896884025951784261386330473413212911965490352437885612997752301980505487861241355951615330999885134908530436211855439125731773676712511555341183470348514772985967876568938385294930058672367906497687864558091277493923521849631204743401140058584456745375060515940518049582888515361350359294460645592517040221868287672160702634323191277139931081896072894141825048160087706713067629202242038018398995833940635828038807298742577701767084831868053314384617303035846175357673325121747835160792724096799901709667050702490387396063187654435914977640697540875666668527396128304565924469957710868393827896052199953193200772668737931532855879722977116385160428912213574481873322655411499457957739484950052356039552242005504419031326540370471590392422690092424954666332265068431090081166615070249057064241217204436933961740009502338934228304186653331086984313277658655628386169573225889317826043142614675306272767326347698994982856536647092993298865226952143681616540604759937147647764353528556172514401316971128537084294480054984611651545512677893182883063680240634628644301652763507850462158198364952478227426646982575299800079268563777227670808017685277230011437255471628029161451846510358789405658414123927739396260712961689836707778854512275332579154181778958404231798693717552345006837592832171123259811089893861320650493683247993496844227061361095575426382766550042418878886594844120891577717539898387802922353794512397330222951804051788382582948367728970337194200860001212581938078263598160279332993952160508799929220214319045333820437919920983640942324553682224866499788988478967767246887434048836999356704491005054096950625484868365794855151978547356013567294628208870864882412061795013138430857472274916275802120986233373317078381898211845215099353869347475428516594888802858794988669785246406208481130634771768169989797720354502090992420014403587671852226940034270543578504432884570250961810287641927593143136809475661714787041800620443754399398811170634798349218688495527307022867271131385257878394081719516640348285045056217799628681311144487636459115608890302467495602314555523812208876171651435494687943268486123171070070174590595048900048168980869524091699522790392947925592534577570449856019816985536234141452147144568419184362348504405098317017026402226732054940165543702570563008049677947297825930998046993896864432053441951342637254183656301959274639039731517613195938671368895402712125955682959788236448385032479105822469681857549836335435696236652488300767174240258741768342008117125625906902197022722002187096463033260217851450125117572573676966044242391192291352010100753732384619580523426239629834181368246084242277288164439380330880835190697002066683325966704534324603616603134948287826321180218972325985890153083660523976963236925786439648629972394633348144033309291239371047821875714076153609261105508578482402441025771363942790436311884301486722255160947843517142456664552464500358211855179578395145802061451134005597439495864908696472640210492817831348082640274753863518950122436128669233707977301973544858186089449993001581812904107870994082726465787245789859608185377589641801559786156003349804179092097981343570273936284790751593682496748847914128009404679950687794082232588291942599854004004935052037968224294581177011331300528283048914603084332026921463239231612179645868860982540512062049032054160689629862140119773256015745116562674052748698850094086616354388599408149547486499111641944883045266931322739839409287447700627153967371970507552356825031109776538142195270752609689073308167194350565025614753279442888309565204699272560132261397205221713174212926936236834962607741991621855535069771545119456446903471985711679061155833019576420900113464017268063702383878452408937918939966371075833038665061540762896021643370939620539679720089899994180652239280617174412469974146855453912554824502231337740439660696347526677389868331392908277334092757702241832219687931616703132331412334091704209273585675143951267850334971058818859565110626357020665275369154325232185820177159015256610070419461373680655043424903019155227989315170710626188463801530726299171179906727447869126111229524539150483039528828135881178638772324639398152170148032767102835205921308497142218650756013404009303342591740315257248130923930006790698863929691921639516819868613633349821037056708599048914888324961833335834192550311754750766564392996461234786991429620683473978013627570037109560562997559192959764583208930972984115537898139255956549354912679967301143095720198767667288073480189190712363212127508326629901452012255960184358927367431301510572236329660214946690038329197263074755558286108538412355060747644017795529595876599861455611711214846604389649938739761147847691701859962691585138894747982405562625315160474772772051325131173929602134289562924209233373142079119824874781399656467536479778569860009310656194293108361140935394243873212763884257597517971562136077143374579146462304764203408119787044272086074583957386817164432344408012781517222855500626640840016344900574418943297743145112559352212362794741878423142424958458629464699520642305281812085873191847359532679745076393593734716372735945355890032476265942254063027888785124369376085963057001938713591015897286714516084936905295330644582025399366745766457137837959055775931138049022631533494402855105350748174239746579002933946800620283611711500521432485322914281041937807506861771562336703810576402968165037067336073067661503500492583944622970790251547006501221327223150270065481448102781679372891409628648298238715183569656650721901748862630536975325756008303368228106552299487600731157807582193467605261996361525177504019234550061710269161181455594393127703326561643489109367703301769413937216402828929750874672798699469999578368557622959996882925151293012325528972580648230303600415650383252465322329974655074748455656473661287846773729147477975619879597752447444650970293461221169495842165131103394156509427518907519642459169416937458290118265736355432034302047178402217090272933113105222092938657535451546887018582362089573877588577562287301000343107750306815012984816546523620635988529527767237176849677179581591376428145002718572687496007747387755037438202528806366529355896003994412305919747700415938094084770395410825549924709079815534105208557130079405533281243013548607075236905047935292313922672015409548440516493068197653361556391638654255285429277460773317610368952998942164408468706125482678252678093253476620479772720047082311978411492710941577839906675681081129745374134359339856205835467834076680866491018862831704578592730716802189796911124378789211294765113983629333946670897412086836917812693575613914907538291850328026383563618187819558301337245812794996952146288995423063965737310564169222273373063663662281459342596217815645022057400903461624444951826037521109748670867464987597675055440650855293293075943493994014983167541285066677665722123482465821570893008025790960645210579927750985568341939060560927740474292210430833080691634507029008361197966183236943887424599094754897669921520490482082025287840222458996910291720244422133658290888044937357320408643696405667877283797603148573333237428023163202813543995854603219949635174437974427743521393603633167272259520059263298013059051692396104730142705526722268995095124229638764440772394502573220688408261946763420670347736837360000106181366920802820788797334141412948450869431449823553083448315747618230343630885237421717435211412193942206185701412595982554053758746330419511013901913660667201125651520913887704526147856680723626248277905164957994461530645502425006851641418216758453912492029315406197455190312861490103998072642632303866624045574579611034854458770809055762037378868388331102485024890963210480053527325710643628738428854972323146256249646181168413243654675241485447309288355949643530002661947045799376942003224458184200016865446173854257880485077481269510049200407559524910028717777128912986774018795225388185874747278970053752570504068063839501266267422404468179594640535881663684933993577486176489894037318521357127738360595850402671581909906626710553080577965512023398123363445501287699153646084865347029360451088799643120509243393260395689808623895464556138646522295571154282736472181025253754577054981917063244140330691571528769406255909886211195160278074035891361916904413343293002096172772782564688817185692490642419029596941093528771016733468880651842161972069225655318593361139116722172853098247470546926150217112193414908545610503059522789150227523017107276560508041088408287233254364052303676284537590780024839675797323912863287930191335299586857408585309849384740649932613364697269108256440828145145007477675757929001151462995223798416671314792174636458956017466696333791292831604035266715882757711007791564100206414800837746485745415704785099369807031370623574765201103108368283193011781705895524457474961761284745839018733912685329399304906561063710237870045536600123819152700470379372375283483314508371794537104750828659400185723730472856176580358737577418624802127317185938636737072501048927867602189451930861620170012251637344855406962611005498528847091931337103414624837862120879039733491945359459685189548901047295385835955459982468761489316321171140858317232503017503446658711266866394034474437137455194436514596946884041861113130134498610377819046582601373728900732429256589300497071996523160534373472187579480336864872755583854710321410175554522650952120794892505203914359650369935553305272753746911003319546382659266855049431378745842298514517906690162603453993870552638987845411247190994548704776387181389599935532613696052076956635361425618814406817405992479395445636173481016498539963481521782393782760071877506663598650567519390150525482136151173414700146667681775290476269877998718421936480360089308713150772289260771791331362621858595461854738955104477397210384087680758278449652368667041014791106563414730800610725503028032762721140578727572763900552977520123306943187456629085508748902004212829133984039722849509350081505956644557754067851993036709198223901996902442862841611283496148525243073855365103970672178177170071450140285013938884628529814467705650193208311923897047044329907986890881972663534358853821725142903609434015651565795112006103477383228248234847739203829584398674906538453266394197888520669431051634725662639104618785489717605707914092689751553957220865725146076280841805672004951499927695193705114706421865248536655425655653312961570793449979107556990178286426959073971101382019320839528836308352676643271367580902231436745080273272186710276242085781481231313129930622407716407876750891277025686694312543735244497814397227470973177251017888561181358939793760849397464585230060010133890327623414146583727127821341624486022336178057540319443858105871820623877709400291913265951191086238919663380836950225048416791960707568098433694109355773858829263871821369181587444937487496966375123419508398138218984104486859997289302431804271888085630531402691652909027349777984062618066767360055429896014357284928420106994110104033947706745116314448541342682447571714908008153180073988403139297033981462159882941054255972581581832698141979478849328230176057719617919332744697593619441370942142124317829391801025162885372579159624998679262208900695692954365321354933654415170149309315148048191234470203893029140255801419170607095352426323236151277329342937453778206005893593983136761514854622936625264309966721515358438143705849350323060718173438808073485320566583005957809041906352553683020770240215174180646468229724612004430331465562048473299005394332655674269616787159883879181117236325835447954799892707129833915680938874921210071127326612766789384250831340577406368333977786343466418217955613332417326854769173561558984628959289413468130954707636301318748937511244669206428401506701299158664450865561712565702142739559863011361218479291417168587870510789408465863439941546868139456452375084865914227008549818296627085209064823478990921789335980437528443633204233021083438816851357468315764076282353314043653893580340739920510865383566900227798875077904089904212247068907131774876560692148727085023867019572590109658617493372697025675339146956847446449883748657451574574114636365610254542595126321272324511564342648521639793384339028493593410822711432075944021721941992382636106506048498206877629470617563539531024063692663894337524026447460371430504464593068880303012850127727308883418805990672415214776383187099408035504492290221481574871467318202338329796820626070812430027154757488877696773889590310922482604677778810162424791065364562155458471703987065550295072910982049957702454972660463456303353545788923606346778189871236403754506447556948515134570374684465303998041798750012600633147820726859983854321334304748698662795588215846664424155834770064399926643776157787983606250421166215135060446037975322266196590652224305882679858738706237949400602080463393459221862373254504242505662291716988326209708532634046997482716442714538789268883094163699593530898378112573416519338130893565306429943779141815411955701321735717693985586697472133990957937022005167661350702684335154783040327758542477703199260379423604629725159623828734819970481709954196986511356957369021434977451187223579100596333557143090830268993417596321007697482316238957989056112148476938053235033080831615090476291684645942199493211603683058250165312134936635817364135590806648892079746129285150326957534112553438820303488107683761809060276117624578418525834814192849781217361900714945043686893412237847087710310717627180020637797089296008883432126080560663346488174582124593334724765746130290781557061633091072920380539415394485105730734853010566384302182943311802182123327526994152970828923571196826198920722688544767348979862661191330512691035836657939907738963405397794226715980936668645701051553768828242088829494288755782162337835666519781670494259455464966186317384549829750087091154769727156445585599991525474439188497079953019585851166230901439784897417986254402081179537419263990575534642454537200438169332975154496147527662980939345834475993831661766946270462657604138879764981076854328698707465517453378452401200628869950165402842136534164373244589030083905766974873651761728302701214689294924618842433407930682728870191138913737175354882089404767483387134103883203838732026620149576055178513942386452808592297172879191374267281665174619882515403188439019261500170229323686430467099421108744615553955458879483755865876956096100242195258538470627275883659898055452808452791255922932424553195563055823249339989106198287982207947631886165136277205944484270357500993233777952789189329505051882193322386077997097508106551680457789996168179283985023719482926061192234244507748162687738365209814129405584967161901027072616800042595465812023787736268990716356535636814011912292486761071570814861871806060643707859932020348954979861012735370161686472528447969716832646877302200542031773190978759573824669254950632392031108664862828875032722033107257925968242376764082125538139675766760144560981750044491546134621128971367666355278137884571338782117517755451437167332616885457526352803802721153479016833890317580542402643306741261760721889234103698055722602414905836260048801383392626934082363095558174741300665772823869846991116412889157630139881464286344244071592316434442392191988758927714432901107352855480882301531945201400869043519992082197445617936952946824368348408343396402907046523087235924731944980861326520718427030782538192789730782541076421943706255642456985970160679649996014094056122828860952454437694500741076895679162430832133620122877690499183601866878235139870652682642757500182722672466804504736036920214453233297091248137748947013341739088795396395520450166755854409036654836206791525059787562408370730104158900502646244793984875879082469799128874880617555153566304870558713912702310579754451644850907818314261352002986667311154001054163364315530078598084807814204689410746831656991410056538556949446125034432925875575786166308649770276539528600537556236227307218028643108313731801458696912340021104303815663955024861857613972644835319260213696966011571486301871524751461571454606326016995517455341381208758903859881761483359025974505433382168788985138851096204249006982222462114505393425832101534606716560671670887761344315500344460091646394545268160931942769257618276831164528736136885724129530398858893281101864155042474382634571200964025125277760939718764156363927145267166347692119652542307631493712774913151705587870421340014865304860462492547060218781104845623702385716217407848109747587403658508200972413333430241857729675741294396117865042913263731985716929477822955921742297147824327559951628252369301317001565663817037144028111090387644526307208983725994832003898788816920688478560585417832856097473849882726757885456112088895556374521833408160394028598657661895952403388811159628938989153453625753671685484861260993452339184141122225761699197216464971808640957678861398678801605001927391463507098424352183266757363108477248049132869867419336502636383747594256817321998876104035297198504108957275012975534833942676507959694645702913142538472973936009902592388863215744319984214067488071673625794714818361239550234144115512323221573946329639032013936405489779561057254552616594706677787768480318676480339856527093149801108494635094259403665706793864317039556843197224202960238451366696359313903424296830738127941021601270095319541312974169321101771124092675345806139259240492409936188354275227440563192101111876818656668406952908664346862038966083517877184243485192140278982386797876717702042707280995908903419761992299937619814416348632579335586878288471162321875964879947123148236162819079097856025109377761400115675299872601104310762293599248020849084901514850919446597616352657066463145157974365226920613098836613612439946680775080966066440057680742070252422070388839857161334503819759806050517895434703495426293753644121200944114026538634987182177851733706108103837872565746144755212462563904401046463213018011632345565818243279697211978272293911521289780384597912100369655406288646274828515102250154189177063758529864941662984917413580109117781529531774023405014521127728261024775382368710804055158073566903540788905402509113686653696525482532771429986337556824956277478861127776615303238010972421224683435021243966055782571384975955068630639635423118052092901115313416526459413459213880189139126477398867759959288972367544504185977992365350448249233370017510990080540131553668167506074529738224886887264001475836320790918200191661928343352805411452692434052402393838299884836069788934471574159770548409129668487665858287669711612927082063396963063096040579980322904094699319591696859285382794724938958989229815229943561161263688992474227553548180879926180322648930947217805334334100462599955236287164075376843456660756222836603022190254353005509198647541266895028690031779459516462426960128482024795475243303518206846758850831398591121149899552250019742078711242858846572758984230573126424459547547500698101034472720377676809567434809181453941741549897501735532910684274800605946961128396022589018800425558800186736921620346902404631361822521367561390859177948041789604288677748797038664137758783885921704285236999888516273519988200308582802914307768130327959299914057370528772687853462998356921407366946475585423766557224012895928663849590638192465760302260270134760712450095982175610644156347028742812304200676478028964062349538582895582328735415330291300995862949920163702839787834241590230450279871481962346762543472755776688646629758104903738210703718700710924013750743066720784406646459715677566983585695525342907963448664406831014264189089756981767906212082933416618832714261707147552978317410347125001301393172753702699075336086861076409681892769129926995044360319581089886990041502119588476499285398435776030131824055076683198726302267112804081708617740497085359962299781426169338854664206494895730720911770428985584825038214155174209343988567149206563605160790337362221643605270894752562984797619787988996455038171521868170109848635144631748653624265805637189467314863079279550762760998312957220380088243114135971454658870125361191721040773799380128807009154650205195314594373858797991088797919066695820541525712921598603192230003880166562813986694718405593287061182014594883004391151460247008802094803840334944085771765886799518318221567322530981391809223033763278568135472968171231107836233739377706276376271710011167233660160728707317633572440925580425141928797652840146193057359651678978742060494513439124286852503221819747917177712897841888992113970485545032113447755398573330936281378309327176934206211240408646860204510845579989213445098966308706869012169386847419145662000535471131374244331355773538919547041612478051523363118452941431331933877588714117112463093409882489805467359456346144614011591172792584059718294081300320261688248588784170765374642545444539814565813419513283241279972137790264004245675951181818390960868486783563250865035822419676560515657508784136136222686751789583077382134416055947132810291379139444073814843849965482799994720055706205140538359148300692333010315681597641774484634824907837773763566487098077831167516066928054493794291361225793277627485242580401134587382424932397225628612888133204696488367703358685803713807939424671097491900585218072918049761044094940722575786352936398351328096992013103348720388516265655055706058890155934837149672431381485840495541989469173986661704559058556437665625177490070699414109164153892136809334456254779247546811943125652867416787247209021316690636525060005122740209199325939207547325373501017745139165831286463221911802220396742736894189972912003393840795537791813231113465919636216188707449622142936111084246983232870372177929731279371803267399964753839694956580536003142130358292949770107202640705237347746285000216079508252714111440363755950624288305477705642749933552478997062534780485511559030855330789832667910079432683172558726662373708244455078636735555001977993939240275507529991950072371240691101585105549952984420808988644696190799317719140404564295422565487354630289469396634875389505965035244187108863733539583319774567513454412020086866557384600749040970386081232816066551869683320182652289321592783165067005177419026071083750073176362571339406779558023677317428111818685990442990316630200139438780614142233737009555868041389132270950852001412341690620152351786975637974280976072202023461656063348621817428166577253200783567394056861740911755584294552574023341757161971360113159328945531827114821785433768189707079768147760667231611774675643010017501072959445392752476550122758938252811478362831982830012377919959560131620720664018193033825500218999844071668623279911307826767711945579498694498322794780127278014561709230972091729979590137585032015745751688444686817538379531968445280009306584877881103094544900349123237772897417438836568436543164010793292374062051542442276900814219302392527483744311864542290983360642210473859140102171460392550916288890959786465660396252102959311047640049670316533314844371467002701086734631570451558458884646774183664826602156047273442224832606611923901787560794038028863261595807531214242656340252475393805574505261842586261280945106451223259183836793108305118244146322387491555128523248396019756678237188271444347257070944259955724012843956952119815526300240495995155168549549419609730410030332972985871954815703483438629570794631961886851127277468845091408482441989653370849954029452143469730695892039681379943904855123832841369967765456959656828413766676058909151907581309958575887273064227565183086699006337267881749976051082064638946647204599389361397408353085467471454043989831882232878318275577675530400126900647700456271224363322174702506113300807665869152782651786900020991156600475384634157566364849646698541210639190683040576745498176184959822625976596748333791431101849267312216457128771400827899132676404040961033590515745395448693600860574562951546773970104549215915463963148564775873036032587064905034878319965318029238490394114747410959256949850593933937674993528745222239068751122702252248360264351686230156295109031614286655274465754615901485170820479806951902377488765884168442446612149634503972496306452897886397985237224413925284200671866255855281875747342611292650165115132020490082165518203813008786466723272088260791064778669427923624581444686904388841938729918030327531064061095759936068983541204089910179363630389296340428246544440337232277874191259288914516432149183947358304853815867095261417672654534746035663142304321011464693115489516550835230646632866095697032856981451448723861694003199925090316491970156560777367538613467090609699891351537652102194320663462685790823219789471213798579556747610437663744115967523799891087428007371203330527643951588372774376014092881673573934207635949458227168046388530131997341497134034613443843191787560091675197397193775326752489471488721310747542832832803470163543112236720776228480121549081665761738354968161049248577349600824356307216610479107392146755054482757791409901931551604365241090545741224358777184550031726305344644597527037232900780228354750796980089849378371770172488019418511159368955022638857478878265530658623788143229094663687243186550022018441766140374081109300254605831115812672186930360550340250301107698545466717809950785810783992659613715140023090545269497426944743248760795378701990282420181151080497674759254592874204039897999429806517147268125213433056718115279413492864122959967845574364589306519528328597308555990848877117725863873971573744135971848767928685251104896073191017377195620921916668131772343989552869817294724343457982235745218686280018414371287728279935963646423834506107274149446760669266091317948808908022743109738048101920675305110308662468431262290781466303704190681247707385892964530811049719985577279496302669661821979539260827880504171068863041509824545139186506090935238989777125674542558702988800417364194351604526211155965173900661096150585867438772777653120625239712997842887992600442624078230753709567867363553036250752222167125025562277599411090156666869991852218638522783598854771229668834322679550313553001865628021666664303035017841661419293946593738633811857772354952570124599880027605889608055064396513093541300464871704037228185052893145209761911090539372478716763651915670066791749217822287082538674342936432307426681761445209160693331079913976156825579902580189908112079225681027287033936167023704737830837823083790306728004316501736522844078981878190219650600679220716601114463682330767508870572154922875041552309711503012171217336198929606001614851017685504846336531873675291281711305657240433331421620530046963472298809034001624372758061005498279773236870376286275256723622188950097957562691779661831922806493442616039595773507476662749977148344793230550145966581118746525888406870566993056700696870815397340942318295043766446652899927323473083981039143419704462650768632866701043716237830790190623863615072100786617562957457743853807420513879857500625518151067399085085448091701020921964016679687567949166075524840826060424283146468595662167971059101291647069118084132439279322575909476024266519910639304631938595131775915957031570097012057006094913548035241272635199121964369892321954696022544217482443628285055111713944042925055797018826961367363569617006981856404342623905315069537549615657540764229466039424284032546285748511385840276877680609730396418117924533820470647350484022664200635767857621136709547938190515488236813233978132932531567179659324902637935378373236722716474809146026934484422443213251748190075374010122803012275431813931960737264976373142342548209082672213272409264005938420633453196698725843511341549005118020067483775061380514871717775008618954359150946994571300086680112402780563668548853714435596087984340743473143342614694124402422547101409878495154426817911818852169208086988862180258295163552232985108874655763928311774244104200419236561844200717823798998657516310874486865555027808958846070788952479469137040378056400540195252430864289963874172341395006971423274977607034744228981320243840647071747363145050466206782762985504968419951248017604267649084499136401379575609669185162965086735910404863518608700021155816042127930910848258686398431371254835518370312793478504445539159910641695861514041981722303744529160048521976212795369888123809410373014825063510180619310045275403855542153841199893538009785957035533205461972928214394213839748537350715220260083676710953094110125192416750414474205313691049461892507196941470454593588489597815085841927597031461103354412887960230085960760695576751759067223034928343047234318030508317040840146826688387001281869700113256970186562833287728850108416317594153127812777777141861999581162972861801376901144607491061847196319123638959447534722019754416043480825657222859660831072591276195342303187514694585989225966564350033055397843430991368245809732314798636453351951607927701111905257976207592648885553608835594826422248386111793342241957564947578253517227154828089274544903747081882062452402864287314687480553743288641489811568751747385419060847398306979844696672551462826116748966759147002092867405978384937177424669399275183824971228723908752124378619666256667314581198351707562263792778741483381643616515996577857625980963012958864544509428613975710142941155047194841092697269163711110073648895431798865496527164968889477906655284856712218749226390022225667921780084926062140573584364410465058644924493131604000747192367873565254884494533878797245748182973446740449073674921049067739613102328815179387463006468487562106289114536244858913996732166025894321926571360316174613989769374970476011426755394963622250319090731509717070242086007860167513097540400950557047764093681895126274999356081650826071044060970961122812517344136307741446316692262038910366198821482055184819537685558410974782147038860136996481338060424209995195544026746547344407886381652866243350188952905504183015914051917809376430725317501149664205055022440965028004728407279502607676687795984555011283518567805546676927099509959977631188975128976616461577824080222478767716172383098017748347874436676552092246026338801041172945168276651287385952822345313667746741951636223910638367790558998944620857717448131259027761378645496033303483553600979837160705893511358310646591696630310370033459083993028725317349451592260165221781502667002993156911680600407161874618741106808121467699682115133370860826119036631134085120343831101056509252811743776722366132169039505378249237829672236446331118536426673271746913105284683377464692562860261868883298668218210640833991600568987326987437164506871167271240129323716591276795389653353949662419052642952788682988603178536586376891905801792764115688992754830331755184673613485080191097507102560750663159468334962493798267851223048719728617543850449102164836409140341587940905091445042754718912977925603127810787395627316317509622597081922847644482131306318991628132970063076689126706766655379653621890498447476513486884680144698493689804566838074334041908097175725492968472094035690117933157569118773958002037871792449800513030240577566025460412475864810111527750477555203587527344072882377515019391739654856284950916753444613152269857158373415276548378601010808931016256566528074717288389094755337212014646585201320427788071239719219695605423956608138326994856909407952932495331284456451235533195281659573800110274773263955101563857819965636085756873642311321984251970726320828338342418323039967595720042552386883322944536829513173742924108006122908338620759504232417708668246148437306307651803118376989882761076330560694172302756823004702428456396586407296019048191557623932450095753162349045631388906484783373397265199561622252013173995762989760004674663821989105791142141364143876035712030256671970623369619574014696609201996809770418698107767205924561658503348466425787366487499366196239954343534041789580151102885258861032533554382655591407731716996833252132971767673745543503749029937277838368480274560754726328071418904744178547861707349670257710219917733599296914457507949593486327177426831445288386289152802090144986129520653982240494404066400122826630398316886342535120467213368929961842280657721771954236679299289049174915215311517080809118145324272144414682474161011086491296941986464222166704147789453739216608310482283438521303082086307296129238054589755146707748845654101263040291418425744485703799630810341646537450344546582210534359385657699857242033623115015568034930645237087651002099510064345115806393385394751637072002604408101845735097010398117183812151172257459965812071756379745561495018068603354496650379013741525455327322684931503689839388312313420114406042841694834733160674940246930621075234412622698706639274534789083883067793387944303148266717229999290004798943671825932558610669816963385825975053833809187884908318848930723863909673041182379765247051013374499083870717572059342663890202879714564632766324387181103289654098310794331136468679768085456577940230378361561225432879963443669257186923715575093758753691204174461986337501958871999018011704923552969143648235024920050762364336884167121248024699286712046317245336871040729157345871534863040879557156680256425878213015188031711876293536137396044914169463511613502551336067605270091778332836738839461548509741529220551014915976535559724856196879471560156937841915483318131586947432246485315231142189142219151588045457253832464900749764065775623496625874460416298401102561813667035987402777646971409132476984457760949604896033620772456871450845782876633700890486341241151320552152557734737644846648839244773939640726429022518699252971324847416652064268960687824642991642095387316151195743398746879794243909240267654764590419241512267527815296077094374316218390244201254498426528891402675500666097042231127649326629092327826795132056242839542360000072702885596957807400196613168771856328043284750909336696366744156320146138330143050577736172448349487539642523978346605862014989524252255135929609927476070126386592125641915656810177030519548197644926343676474000575319915323445548607740647759855348013982807750655508452336211467923828529811285158234400893506800061260700099480820481941567879553683642971287169166500942720900060972109694451722357330067967793375249863797371364431848022347809037934461318402735215802590427209377402072929763263899839621639105360804713827213662404773384925735251931028413417191120800252872371212808390751058085788228611788796221138415624121043856182073758238873412019868572688856550613281509424312244716188326654594344100521810709585251997832131861048189030549404532033279852116684737827296646820413681994710122878991981448592547450032865341633236372689558693120525384294115690037025455702865319096749339998801656882368874095897092910979584873402720312181653455640417642698630638465490890120861033797743796498004801230162138516513499046348136318610769806828577009706636841537162720128593783477106587530388901487125045718672427232538507817730814882716925167989043663426007314532463493138632594806156491003013470251156442944137716087722338078633445828214734449484342651175302175640560700734377622486127772877579142064482371860904189546037447404601693707247639608273365797268422440537824506694876275114090467139184679398444885006293009920230802541818078000328905092311843102707624713332333182583179406158907069245771967578313565451551752850196961175422208473010063596536884325699645524155592353354416805392192236960354092611882476164662246963104048524059044221635639842305311207411240965101280171647148047063276545635079094066658980968979183245700761107732437175148913090827256405379944625684988084825299183236837287371554586252050318648555121048611745362032370018409523818583041328632335117177064086285311617310371265310601108730912274311996256137785738629582051208945060885903241485882458179092138828463287209334651749571907699404953390633913629238087018996149000051892958675972478428299613266727038662858515960992837956241028511104709535447988646325374060466966813509656778882503266635062321001976198961281560283862941314557385471359340611251132005226103443523667092569424276200537703470278423792336059091686072483646379673504635728917378930424244085542673130010610322826108153778410513602353695426359933498950559710020823853799963323214276200352207671207489039425537510562287725311372264394532494205242848417235220427319838672421134638795012014533903371828843568335069568311778965031078590770403740374661473018461971277972897378130439755382455911843679801833336547494477032707690099714778847078581750640298881501338622149892814325832269997494614177414910490143280096299846023046580723288854878213496136567546602060581882487285988839258802094799255714031101270561291043948558540756578098367170029764237446428283951772689365512199167184483957101590530003347305665840141689539679926053243291995086061458694066250717806080289784018343940770509167248514491950937485021617746642303384156493178044194061154134572126528137609598071978132435826199593526518530982061173234663560933559501312969777918568452713972952365455967064679933897551861225594515142859936839039263016086080189622797927863143494800856423032465673811503011151319846839463307090997985427162229394025343885931610332831187676988580307562295292994261323151306074024446985040049528782203629699272386867167411536839722621584025101643574346241512198328353467955433257786785090765814287770960678396689888205867636711666874323691064690937537269090020452183776271763803275271518400828019350336802175458932712706417049401411301688841594020396074089047752178411531082004082767696471087635451238194865953226947789513635914450930619658600171594654622710018569431820817288464292838189244622830983535358146895778279750178639093056821140006022494912302047334634538060987835027502694328886433890640805565549529910062279268380732963258723482903472757011951951993161605497430375363317568421489140627885796279612067369217419284830015973207186401036813710902874445608158806064704684191812714755756262882379174985886154385770545507820265412393219654137141372899916273366662410157432675668253072091943966064161158367546514361842479290385442239300233884221222613754704594300756689496059130124741267077571048707678139928057423467129879915098436025108158246009839291098638993864082614958697415775848666880295510722928930593587436325541297710486678650205511495907968025900860061852695694466438946968747555096359687886051609701174615207379967221936793183922074159614488413036055993128392071431518518009930358954735087097635716029801203586935412482563541186581471293101338869626444890869557607365299864627587057346827615214928093155212419415839462165953723349126732652559197338521170810370382193594195713077142465081930219399359290403121464006593100176201149333028218482481048529553237111678562625469426435666832286160739891953175739801877630460581341834565375239698722838010193364208351947836241206201350985172743594652602208034922093919888784307238917888862625524491576165488000145638162768794792016381616731516361677986619818801267919258178054249343001457104704673919411334758769268319333065213750931842995347240877429470261590250600198922680707555466450893777180860824709035924065438731939521546231870367175173415431895082664943078284509386433248517026981300823458492610790005055383926954519516507488603013034829351333125342152929307319456068199336305052878771501161485332735627129242161829842504488281123206591032496313191078645394742056979808243073959716195131365305753815441184544012005777687120054287261252953717618034852523214046730888194873512255596292827332584954095155718475299970183209106568909043304533134232729609558021517811151964550817567305744228615968562942063394670928810872069129932671070371601424955084866766799891514895647538484413088466443280172147383456752310086918703164245358915960795128557912520987337233356246151070727741850548052296277088321273462457290705250100802015224652475313173162442282120943941815885157530571493590365339320087459579167270150512683658596334331742574565310436507246028186534069627450406920354222807449896160241899253836296412025899350431199791774319662102892121209697474665642219449396625407292450273333372390587711209081404963870745290633315447750899055944016576118854055304299677091847076384663387585694900417374508792294765328807096033696880455960759383648442988538017975522246229952733430876036686628252161019024660810286021171883192478674866287817373809310613237412080382472134661804289157574313919667207685411139660363725472036555524668900914604716840308109480955058740684836194966762926737210357684448671490093018538367045410434363717090439248073801769612853488348228789201570861373852514798613294779564867496733720004278880450447983327058706392094999327142090202415209271081889781447720996169919898532469640717416208637081946030072544641906096694107858347244520543875275017018540222014285502097358000557209147260885670942397027499690208752766869656989901884805679244267658926711483615573406072639311219456937434746308098871934312172889505063484304477335648547760131882313759578087493258211714779610298862808635267423443895349968996764473621017015992769490668031747457970415213417839673770567245073394695828885664377832194042523640252556342740499444062180644404380351571933305625138475002774645363990196752234390340843270206156882795861431745170146711040816843267457574828944863880687116367559673520404807816218851050038568658529513373488371859783455141093004240882019096511167707023237841625963392794805571060709558788195463909597696849927018473869807675783007954203621548052959731522478403868328179642251880798426227675217737170910452892948337429302970417650640264340584982702438935240138340195128574505049796852094283061941439697320769357880702056348087754401840294608562650199824623936243752131605721252506354374539106746722946916889443151374949114896276379055574630878946667685043489821616952799489796668491772641952264581170364576009642796204025172426275199546086749246436679749399999605955685990686510016324144486917580891922661697493371056432427929435084035033216150801924495218957310932133204270710712958051962464953703020030852186353477874178587315409876849184385583350347957332965335868441841632663365251768145373272792674778963125966365502245081123210017903436505758042667385408393699411111088742756091823838850276070807529584103433419996973287690277873408026815313691483403611165225543787766033808319547853680305502148817889314668506458016668874215457320536528387259871552899965698574587339704507428901285302436515474527941198143221572120139978705503400321619367625360730840471418270705371775664555389814391979132864215243818145252109724908071665573955888053040252907768720205826181212992712881297821049215425811447937871596282751573762606852080692766365428674478552716804907274176917419474181434055002187865339019879517796115546921050856543071732654286173043971999932812290438665851677550031173923279538539283688676212135496633730223532214088795542768168426360879396092906835750389103696863691731076152980155241505943032966629659843967279224119730532364583498547151679090337083386246810640277968393610335262988689390491467651373576071299518522870223444913089312108820883015063035940065247937612946386464124713975316320676713387028257327110204561042150101776444415461077641088765099586392545831038666101464802764382403137570346534437903963238845094389693648511013326893527065166310642614817847842284810701150972151883493705375627444866169591940855092705809915353142499059180273278686652675733956872159563343852106677705567980443514774310507587982193974140430499009789079087432691449387934637606298229037069090604536403234829316930400938850680540506045845862002418192856556946789355452054410377639167833921901558457145003995696129425529766461338629230553996141302833763240363185588745695152160381251571279854799442477765150493106731907036132921797683882392044371371432056164293117943525162122994774385823405669184830919025642760778797430679002874131393355645333214054495154492888855302155326987886944083433912674077529512847159814299011107620270147793663592827020035742949425636410478752383592587550053311680044698432787770688798947891517709350104192118304521634602260906401831563889815353053196126946217329997937049387708677604836886660662947528168679808205902129242228768768053469244260439551114021015598040460352873733351184440969595191294604484293444356014815362649399149598099659657527852389839901621191532122789796886180588863814044497574695923901947852206499652906370563949106614666407863318078270051354559709385828860540173956802823330021332113420222035063634774195601133294233099974387761593754471877359552411139835219988085433764692409744695848309471148518362296136420591810814688513369588159809345806163630181606540549542574890819914359319977991534615424477954704315726242783999788445355506613038697519544152204862062676283049179834672421223185557446157030107086598732971823267443079578774368045961496605837645443944737962355088687013213969832698203601811433943669227951695376322805788828991836226730963489562060322013077211920693724907544151607286255919689530582483255902060072928543370838352891776951700681750603063317350243426457901443500114487421239573718087604675778047793998373167184371306659216228313263505025556488936583884209754588668544924244091621352394882086997400235303644401349390608096382191776507088686108212762455877620921066200209530604702689314480713026249293955097644452883950876593444080397059828067016670162581462843423478952467291557624451787302984685759886649259131868583015616713939356474467130336988342641063657758152617260879626729109744947180874962963216730252073524132278731884674334162792319125206288717970967105156295143497503679197522190335642905105100803376816176426786335878977729511345555129373568592494845133430850677918956551162970925854216701928056307300848079696577522401948690900199369489351492007361254725629626765805563804202955189465254805854589232063776403553068307832956983051919276933096016226305375138978233853083945080613929842856075407138886548822236208676316849836350918968524417709150793127561239158069696609884574840015253248513094150238318916218703595285678621704263915200634479849648648104158040577610242240879967343662472343504300762108635478850495217264040696407842565928257896066304421024356436614254625970571015296397710349347417598137736518110192266885973201596616327644001998368702756154147735716578784941961786620198725799369597019556273338823536442407391188580676374135226008887537361469845818263567982621752506226637267401879171785671052117877453713479316723563198429857386038278195932939967918568816463336135429744934636182143365876006713701934619456151869094952869316953999022321439410607035959090498930118987210245828975602707176728608351992796683207992504617764187388583421762300593890107077794824876158633040646235781727989939963116084954818421809382844948683818027492338184309538933512078213922869570048590691758014704830060613422587383149756737565215734061906827258343451052422346591400801261539153554369750929959991099589257787490376897716618267492691694768135296522313047089161699626511443773765160282700076930695184765814621073985629528005415003333165186240590582473956150077275579912106579337846594625333276430454175738179924806815274243310076189583803306487174076748451287963559249113458522527542573422062148721927523729609884555746213762342080594869898884483462252621327563059000517881401939100846252793155012256250676561567577049609335928410475262490894506105526732157531831160488121724585300281755770351549916142406544689766206132551854651594304646035973332048222405164262658785456373880284701395771270380426034080015885189899668843925796687869467143372388766802737953878255172473326678421273016324091083270243381365299547412459193909949845635621571306124891488235709828477839255763464936645962482208156876792860538606904840559038176066720750281328961990437849882896059660089262706018394186188994260458388219748277469188917005795995912870615223625415524381558990013293004067901054927585615656016936322940493307229857001715627635726137590208010453564176381632584423342240227795863489610319887287649364297227928696603991745392365693116477890025623229310104474391582639860802529446071197654858740211190014923765022223187954531217174784563986161836237494301829047031347332422966922132920556029669080206820701775331830551956539064221935743702871325950689900797382962546820919705218591414424124648721503935722827456038320225477236353768837068761597969786828576175062323943600002264966583959026892618633421844342264978579577009997478297041914384749721047937860564597395950286346057485602394553937529900420681336969353397943808969625991732647843281469979028956718264714662429672216303396778475053556586099113875104748187866701686542423266402325333863009561643380711948846117012289052725235777840412268112348449353064248392579403356257035036960508760313203793073866734189982413931380268573023452346721613814422834471293410271897207791520470356220758140596121629162749823272851629316487942557841224661959066220137075080682905379395120796908486650715149693997159336239038564874716220824713999531815413461579337854378885939647723812267700251827522738308017260487611334787198484150394254992315877151695589453162114535398027110240925905070442212969139562750489480807530848952207217215219748989092621859953904223971953856462862500587316678935420199749650550398523801218323659415910767286575476773726638569125966594519464505662338305406392979155729391822318252593343082396502838111180307593753489768881856650693949399759698839299679298126447952758113154104998345185190507343904768888478345192984639334999977297820979653354506247773317340856535714049545326313614832964476690605502818390275053979286822988217673414553102641672863251454464369993896180515441827906677613761119628985744980754374117946651325481387749630918604170409593010054662367321093695453778056367998675900355898945757210818110227380341386505114687163338032655247393078731062193465479003261341572969716396298658239230889579854491658736534977739744210018038180317352818077153465195791441682508337715851061877543812487114078684711922950766070887460786667953843211540991381648107330831240535364462829874738113046044442759400947158757102066352321204976558481018522042118856229363278363865702055638382313051879963403969888928567423005455996751371962958239921656910178287891129640641146857996896999442576704441771612465561516914229236218388131417864768256455524732895763900927855208974705878800835942553565690582340228015428691510009643693058370916799851667817060770996150843286034205854407203282363802239988799801323267491657711521519825364219033690633693677086359439975059313119693622346160490278154681034270351000660489784615569860644485014553058730416042116303012615035411857053532284324935314031470586094300643201613451627699984730613603549862658389837836039107321913689878951654600916920765949343603294434971338461070783766712162836344884367881952595373074343993526143631882709376273940676846293701706427935701154000925794716331896940094171054930311328577296538767304452928622246996624897589950140491612169185144436670017713381916554763561980364990293296203224188653967701756686740152594314892728211846241237674492267445027472391752406833921049842238105547756621782986092180829300607958159158677522676607476997882406410433490980516586444903343090329829513751749092238812705782777682512689650786853679806444297693577889188737117750629656631520596595615876518037132421335805106097639514890683583209534732319854650649245976818807144461558161556446209443885998952831512647424527620209346506359705253809785247337343638396627046626679608827537054158923657653417500740001284382059999502997928254395138455247524332914274246195459070694723255032054662632254365208746515376329537621245510514696452283115668786918849997768855803499869572318375605652597955024758000359768553135164178409507038790434087329570537157836909578177996730925323701802948494391619276490208452414532063371690723759177078087582610783734502999422869685486823213077466852082714335216195835564105299904846048697699180340970574481973890329244924516218895596391347600148559916142837882377017713815328106617345858210520159465346461442086783356407319544969481493425677298415114467793108796154411281524468108244917578656111019017916671606529647839384553783546428975794218423560071216855510507321010191972135579383429275584350750613833660124122185964594197397023465957578520323471105606450023047519246714273431582379273524983492526834935649393668083185034828436144108605840518978006400910716749649991024808601863999627035339393721718883110536469117861013848796430332717927773892221287524370733174432504060102105412098778782092731373275952079500008917764825667375723726673748667426903131822544468404090440170929771689566242475887753611232206776041547935166223121518879830283558413475430395759134151041500207651469170661515025849053627185802386269745007014248097917037235456975782316758192384081037007191152388761407093308919045479435636790234707413080342600604456427734480490908432194643479074260679625805402710588805520247783244188208072801008385357340414633909973937596305821679820656273958378083608025447472576778497992512509777129050844390346000795263255496442634709528902799257146881693692457027390261036220398615043258654875003268650662791870802104353037801497740273898124254313986422602475111358214098247308253506825964394014822452393793673244851972129296227632102319884925359069122819337551654561627189898839751147938997469612674300599597877599476281445285763548537618119899416596129231722686440672000684912204372730793744132335069791114393226309868315490655930185751228771506796909225663756203966000976796791586296816784279944869721880842349627604514758468518124092479544326620652207898299122320210449455683673812223621275715320469881144796572160354423582843313998169784439484688326126700189430268707315057113834940399303237906782067173095760926639784913014540403366539393097727460464437271675464373487120564470947681628432489543108571520379736475427952386117586783929838827567182432874580543091786412977095457071249381397698766849268850497153212383529861634263235996848495913495389254464584276066218621306239917562529082794120465640242158118722955792441860526477785359196377985889335156602381697822991485021603923962807740933162718583789444151734573556184684175070625233012253675368903277459868410871605705454380656824864721049080565250312191093113104134590755744005837535285839468750793182723189804860363036581147053810250884656227706873528311338142193176445094052480468870066500286365587053356995364658025483836083984811353298825736116642863624581378628022760944401374971621791156966431055741067756436810017118732692579530888808213106516828301655264952423800309303901531769947396189512038501183085088135178630695123621802499748021738668328835966888591603760252304301423934660505020534677678506328465417943951315043324470464607635700804043585706549752446640061757435619968332805904089317935421747907257673659746149840301533598075822853596448779905973619206257081516637101146312641436975406470229859126791505897064001967624669935189439009998541251013230844588352291918683926670485458690925476662336400232005788192833424528597198339531275396346721218052047915630854111182364803681003156384437303425249053702859752425837502277048389959547844548863308646015209316036889016028381345493488761450881107266210371067196954247633551966600510347752594029047039957944019679345249741991073373597122448085083610385161745819372992035364732208940637151008791194669078764981267391895482779248704660198599810041041577434182641448702456727200987288913765757475455088365132922865316427717178196586762386512298649470578294366908561912855163254920622214917686927477539061314060181448932722875395862898016342168468637671691121949738733142943821141417130469527486238732614861417903767445751167770806713139173862705771909198294842520438994705517479853967187691805923302001189666028930766635988297858322203687999350762382531629405645057755810561660003632419810675437064420628411017156314636292577459452336276771723746315292841259556928673337106882106720367973959669204170536699466870214142166136469538494327430631059211593360673977792305262213841691432171354066507133350927219473422258840290532589364850601519098363658432048102255357043745772333275639238875609166557566770670915290859579824976925173587743257364363430951454061541365356698061852102623451369010933896369461967058100272723394263282905617347606277604361965901916066822684671414909284166258669738428338355596194583460302982218169263133922600330776027707964600749525922720763532062269133657929780786170177685217105530180021329975362237569444067128432659590051696348862524513905385275056761035857087437777556831097964614133504105698664065857569738583387573875192825295120665048887166623883564686498836452518753739130010368148133110784766741211797345787396110612478699264050550948143805335035427215411059282098365269431576316677365314060942743310410204227456699874455934497838117394159209868174045547144616495106106576975635789533179440901696435871727634921437037532034279881497898006998283013946776143817380858017676234000452849464523602082961338904159429339808523324339781657834828297310197455110676702233235404975085622468928281302898506124288536850701297232678086215919287583962846806915405173170496299579364446246059617812331897165697044766365830339150242021763038532925112232318975038298243932228447301655849040716998075952906965785137552945458400579055470608773846709908791779542520672798780188871632052526418382983399350587614176301910489466672362218614339652814189799232549223350501790379254774058655540687977297518346449783561302691720891578361947148418227819568518107714045273416605515934619162596795275426759610107101374446159319762859008417053769190039917746970832154995882911325619757681378910478550936890082976029702420236077332098362595444284789549761716330487460321922006323323011860783818961225764989157728706888981975381332823050742682484375240865406722484191859316477201709852633928538502694890123390965679865867259945876776243678580852278314136891444914074408991841193206825829580245315616380033727412962517416358494128735675135946263602821222212377888194550199562198803717112447227200684968869086851299326098722615821273989924238220512124300499177925302371893001367012593153888268642836562651132694873303628941554348850688567372377477770021109487036584547299037600243621555216620039404403300200349655934436001015087862899467671427692678195741928606526268401172706616951610945961702905970229876430461444161007537921342869850519009569262335689743708931298601342426388155394372496567399132418396013206802769811204340441317135115903219066312909721945740902617643976792130495244528693979062032527942223670664984917986100005739786185829280587174816834188667556319493850412953411731616410921729721409693478155332821373946509796848823720572830931463419812999534164247165221472258304937532378289192789357945266832891274681556891118134064125372973670159825239731081424460847543995293948743872994964534222692730945081232595011367088944378561313918663138741559950413938565758072795461462006234267650236046045389755501658994523605788929254111987728438961369187157107279267265995436863077477522610403343785636406012072066821587549058689058240123811821105286278215447969353869527615230452339359281368930505440925328319679855129513125816263388028250319297600600432118067448858781571041380483873550881177194914662386527365586149303767320097068858880885266661831398567856916353974309975110396242056292301851555720012845949068650487999192634790964639949725664130835611582297785032540323677165261995040691123069521505508842749309448588549473081563748635341436824233738437809928391667894022249188446988483596709147069200675003560479099126258255413539183610133653831706567134031817566712353128840793466261655683450017484306581650968925431441666856445948354004972008827383906896228094452236098292003250880558119652923655811251928197179828215837694297257954098849913321506732882865604366817077680106756482335610808566459415392855971853218726144596064370991873968026800652872205942947738890644694989713499947148046271749512459205898317591238336869265768971255315675629204614705373717378979222131915269286082395000756798028052527197514663547361604495719112577595325014301837800451005499472873003470750573458334598224629280835357673668807492675247326867619426578648124494683012338327510008990969177681458296318388944415075024088822740603557618529668880645794528211938065663236408598123766003097183686669026539450446554302245827444338041895948882828541981938103588060375277477815887447850919176233503960506678505459238017063977485570525441738244003362430852528460667337291186027726759674253961856143925820746033214136921412485619939965359456136564123534828034318258314499041362185188297537822825900934646528919857912577137941639482203466363725337793610991886504887054992166239240825997946782784056596520097229252199617277093684417341197869286479265478310547636204424991516308053588640357527516543794951223710907420665454730343700100608530551055640187359663520051771678566212471731493530848406004146918723440062599850340045759490596606091521092886612168277711196469832500580108339297818954957616286984765816147608755483250841329980373807006077401359728203302766822588628280712243989362561884093199061223398047471141879291152889330751886836182867095135985441913855742526862582103185016877292522753671831438634019036382366532897785833113339733921588389740985760562874163582424940063254483796759172631328618935356298982106167957916167713605911734108715054434556786142322186241014963954748177241301582879973278627161068377302955860383140812021481270522448797794839681743860365384495710071579621225534465181469366229199393597893761370194246736658023847352330629210624770312344477392585335284727658002760922976966807559581272080142385611348797765864702611603141660894919592987714274671022803462935871998345485295312060573396556151725982101701063739042216861149520935611128989816199369059689201192215939695588612550146164607313673726389427143182474037254072355316399623792100324120753372348361731115953713818342185177158331627815588445610435475358355269075342897116537091156712786471479668301979911571225251247123798921187359747814281772927046616288723728081502843672467802410274736671708825035356249573311686019475990457549009438926556440642480685669620071318787801030298447642395014451769697889557686600437980422856265723474801288220266653706781775797115186971942503213664085472941355835036837489330719870353221642330873215888597181499993118316638521172825049991951065356346928093313501136035516284494396083426677323527680787775223966651689696312044230471698370229096969785394622956991001135427283695931091549582064045360070498827970375579517621174009949698938940228234367035060461318325050653657798979827796078856333052618005968642464341640205411342720705351101415633365098445700845083651934974683745953706339288886054216127816909774081974698911964778956926710963868198634343295585655888822758288396772863436176238840737023821023537742191316235638039997351195675637064599047378610215693666240445446891253812530554274915357769204740043942724205203279938649732177326609253414455862984509229177858424629447529863809436100507890958134018885601822280335139212988465493645168358675126881541454042345055213718067878828142678924100430290095079718030968265393589469910232072962124912167223531468780725149123711937489551398095680977475823612891050426148195664926321415735408425098645457780770490723900439814789384436645303094847677278337398832831981762569588312539388059523347101708818458758141910985398918281913178905030522347282296566286582241052794883336064823452623278791497232724167989879320376675787646583112009117448809934421276042495959293063371720629654632063410950329255534679906740174991308546579398350465033830083764099567099530583847652377042708056555857987555877847609412777455454999109084268546651791753097600776731743093659636111890931654338485756256858131855657001868553492480594634765938080001945393610687372480939552677589401622785369350762301559147000105218993713160772446484166491268653417597213517585709900315365045182784077196703924213791578935298112980653773772255059540873957791664996226208527813445144399483875056313997921136441999955744193515191705977960591769094673957793128557925629434042944553162696364525858039796252072559097189680888920832065566641118712078456474615596640930868193181358034320242718038731296001435659655668337951407443494731632028970060862195006219034202357892681421455785650321793186539238012501501913990366535617860760062118316890147457759509005596236738826086778042181737470352706322378286645263148248221197520923155491461635617788803243842719958751660007530862332773101727712542627196322908936025573857425140715082103260161602453666664119073629700676373573858419527432138120245215106712739440134653128564115125455527302836087231373154388941387266680925989453725315530118191742333044000985116378443756953057557201644870882178069823974645584889486122050237547239691213802984985100685692890789624919362903535730951940891436642360634994414633331629267169756205341388289133555892254385178648770048166371685341570119729024815094968680663450575923161935132322327927437426583374876069607992100779042970392248561839457737002981503847875313406336104952422359095346777657621010027976415785857309937680455371388451963654571006035881673142674681609395439787269808935348680519234110821822785233080914939658302128371856693790825122372594459287080957204029648894771761955547490020189093292715147525076390618648948901054111483198999511350020862243274709645346979059802180385524269199218734021856775073135777605699012200633131614408002755799388559967305487554333507979059867580220415166489991507517216863406987941516535758515447290415983144129361514011251705955968233170364109066570772623480227770628111710298843098945973685046312096647563888931649769087162472509019915350243192988116967217704416778858787600176409317400715465202790914475796605637929227704945836848218534009099451312275423554915291706582424615461897065857017617328763459884445110675679054719762631695321741222884410529491342082142444828593849560732805303598986428000318341366976171163349648590904122902782232053631303126410113584309617522903438433767358583025595882200733542110258609506153251125121208176127748168105829598776842065912953681648196826430366162480262639450957679533501585165764574166236297951131092451284767157203425038147125527831579114987041449533170933581695787440535542271269951593052413779886858651368349816929546015551235474237994316636601681320782060102603621172036484409581495607704296403525174463812207442594149149207853067369454891962465233661595779893831881192372241338616227344878830927894802721231996085414382786967801256218731704484344982952968093466038735347806222744158005300681631213776045204020643092685500505614203685111482206651830259631304280809426478639543196355339780804611213762925658657531669070224944587775714730293846892334886816842629708345554836576828278949053652406084157788750455432481516107376747206257146155491759725610006815938734036159474403052208497540376170011665438379822320161805601319255646516085397965388673603651751777422665726357969508680228262936467726454221172342164533604330917269294902570802383815341308599127823106434498244595641256215151090003725946044731344157096737662017110757478830273546787996452969165342115149322676850653354157822756557184407221775642749113416629409280448475256571207122345065524218117293924904364829955979319698596638147616840574266583584031661995882812248476432013936839185696753291537336097779749267179166556702941613815649464573888089329968788453587126334918286048303576710385050827205343994581937799729302302474245374139850600212113069480782681453412082056659920507292156174092000505659757457699388059291760010573440292449659690310039244109115766739184889319071021068371517105352979499683249074441973704423680156271463072256884117952571838138567563774565879869245502733730675151188187906285881037322690893125277315921419877924088831906359211369815237610420144046053255227065593488305392284037962383677830734193103950700676276823236553336849054278303981261320995507804888906656387849917538737266160995367689362560346738742860645284233095525198972012678911223082792968947901555244690954172739408265069387273725218284228579164421909806676052785609673054690135793958336420667036760008353656683344758371160404676657499112516751794535746040368440982188176432686982050287768267917404129581538853652910717277927574604596505281091039643869858800136249366431766682641015122575306943940307787155894586965960696404722338077277941764640643049167399380069427197793529467125385904258824522624125752163173306209274292551680954101244293246615303698687858599339223230162407142339944172635520188558689089015979582263511138646808313299376151934233151241523562768361486683689832402876786270655511833662961107740241960531487624382047376797922638899070081850906496624774310536390155758034570557723640510340332016742438698768998738454372793592225403869342846964227879068397194718408889475763057345637688486053354285811473932663696867325056298846157835164540846233402985557825163680131277735293312675210073704901776956334017119849010536818164552702747555425935329230532564695749896034142901898769406785534720129917088839798130740647993358065363059415651116840320375715908927865144124621812472415685850982750980167840032118268436582823593114479186258438773218132078294839834973538422839273420770944547799566791057286601678399427406642202278167900844187615682140983155791834907828326911442943773504335216067741930030088579565570521743283268611251069909574391283870230264165837973856661484615161665865447430756171664027700021917687863912328522139308158841860548730029153703113008216961549082039105439553707823934793169589591922563264126790839879250047246412574058066644100985048567392979174780115827768589419421823797428704545104634152478157955242101362387190035479971967432910767233639717507355074078063665839030418184149470592068410152624787576387109180053902884651949583330950255920315711467903517368887814905283467309400343875047309982642184002619391797821904188329868316370837277848205558304580658406867568408531160824665964752678529880119517499606178929741738615488796108039124194617034223985536650668901545112287346189465210734972968351829379809940670807887629491085602164752347350091748184889996903959396675775294284152489649209499183247287602887443914530129780388030314706841710327036655248877864490982790668223800122214163632771922223479093149150044068587238989296912887636783196802563787843981079353259392570260524625511434425436301069303993781055756412017641635009380420054350060032772106819602816858964306879015177366009788688453749209968055264917965409096909663023516945964419288568405092948703153100604306698350817384373254755403402416335816400970331165454515282598509193638819169983125831133301805760708684989463530134558198806405065753305396875438473076410694998665506358045114841343673205372396755516377498652667127445148362550043124546690967062120196526340766405657432073373281161055788174845545329012536039521746758870336420736527921785695896491218016814012126267654534073476969270533412186272129714202515644520364805486494910497191472598377083616899291534751938413516506112675507998093664309002981292715126276874836367796066974387868263625945177579606494578616183348495746555741987121282145509339278606904932109390179825178981494415465167013631664577394090787422378823959730865650716086862059167796893417420316583595534337590796280785167069498501660968368012413794305982241435576166784447427007735406003907894839910750058928807635886468621214180517763521553088375440800911285421116683422525726019096181078751460341476910963735727093365934613098050446768487043524298727862998266269842169112220785007306384420067079037779984385121554791596160658119029693353340793954101708113039771814248369033328289995418491837695509778402517360925060443439456640215902273831645800214891679367361858842436940906518414566821823057067846507406815871043753021464655761310044792505455565093203207418100747733328053383423537735215863998860934859319397264844786536108284218179207256299300136354728968963188678403966961424455576594837311210543799507344020114769099668610627139175016025209816582724154686406796541805644770163098127686947791232960296018037805624505702490722183712396087757592974046768478971845734543015287048604071004498900153571538617569593463322273708482038211016324569359738234711148255863211814179394353502666160214227923223934052470677603530729190171511843670117333765635009218311207686710314071236393463368741067931611350673111856693353206740773516140327136703779586410266355725286516414609408999632226114603890865816661498138980899885701309882956560803037068289457936239437574851574200523190318280715615960957122116746287450982823176022007469812031379027101589427308995336172117124272390335950427563910797207791266859900261197993352739663075255706628968285643986549241383754313187568760427446923631486421426665063429640044170288017566511178623369251045452866615024307061232186358420962540456757637487421228566796301695209805937167377190143231591428041468709277793960848721737960664413374720358875503093100492463883415254616783636683377386458281998680194851363645465884250361242989676360334786276829299518515536638013993964358735637365053211346170753608138700662560362086093962241111835323758114586147426830205633942663743513895834741469501066379174788688171653989605208317037620853534965102467840809792130757995954729859550398423533763288542495025512995998644703436683162618324093113254361564084258226096872941378502089849889205920547830788809417326709101172830899981840754922509194179600456127706363066421377433444911955576183393750519071038719708626451296176768321162177537547537701089644827010421048368438953960037975796860622499584589151728957178930102686691399788405672951495673570301958926043698669345576255545884298576026083774038807536138816121085043638880934498379993847452023701477357776718137647341825405824934738553026074922904256104648220641733382593064776480200971858208931566212574279399785564899071397823827857643401471050327386813240635825393484292942981604934136645794659295718885742539896035691582298924397620528096862769921838606223717811060749343808700760866424520779993381654353350965782488659013526063788345167121621406953291266430928763611941587662600060093796559431067868032876161415795016831691381777582719155786300576682721362030126605616645095395648996777908275148639010014046361026428082369085397508111057401828765541388525184043563552958743179670212426600813628322293437268752039295882522260098633071670867762876798294242286810148407471011644670877644587738476543965117906904099932944608882922156880038465451830744414321629692716405333379694464265601702715904778823333370983068745209522595730688743795678609196815738073585966578130947814677292598144109357145826506737676869842327287186711740709619768958695467347183038890500429000432095344488739158491054655322189337657314699549436048572089258031980570418121425766970010476959000307444273013104287226725574958158435320634725661264357948027935770727345829432126176020813377819335893626563500959473902773964264503955255976897277440174946745223962937453629935601720215778638256025232801604113605978910388103203793631865378313729341693280173602343769776330959528792071253937993211040306070417780077086142331022609431852796023489325148081367002947588569747548042008956961895182001780420429362034222867714473455400777159880480202964375601176072950188734315531479546370558078777333313891597818872930122324890033500765215203480521976854726288762558292296250483874386591577643136833197771461532213007057970659544687388039367597241621959745976946153219053856445792049128697046111181199377974299257418873359790796374343242980148314886046167814674265161926586022219914453123701372351280659261462830008901898754905645748361129762138316678080584269157508787257827345282039361086419726158734562042710422523568830914041148446048728623847621704951384537550895310544816430895694223024781182778420427919629641932699748357038189083988195262715387546914862452296427092850595885816419818470604218837556506508228040623851504790456638176825283389089995702573419896355486662793320093057196852103176879801584925360761915690232578350628820849232454030723015089623457651623029158858032140063993074162438652012926684038635024191309244839278013554858149636209557860327969467722101912777060181291959398528341778679392706690911426616610074918651424521665618473831047687291500288618692467711416767554419344245967847204955104730663754512920514871399655722669772927274411593208964538304024029679790411089074924260034233336112902970640447488832664494517834489730570999161053332822284547568667361354282112483071785060256566279063821793991276410885435212134233324986462849385244376060962006740095987565613396935157449845689337956269889060517516070936449074922520304307836224614366543671693576173101012241838464534425162857232394278705012226044269034446810793066177703510894514526372566310697565081943317423099347046310320863152021647702513343953773572663535083435787845604315211622245338568490721713739392680771986329573185437351679518493286518317148075861459188419861368991971856978407085652525462083866048639580405799025122258446724253447738429393852429235731954733282036789924028001353730474048190679328541950371697165501810651264630202992571014652459282899720484938683826285049561008405679289746044029408442501689798766176227431839905503855155915891619831499411040248599006289624414571566029821021018172768256217918727046996507574943135318259539753499161617948056335635630860814579969786080390843519077932285062595534144415267369784434197878568568789720423564690163192128933824846590247458685403534899254746573916694177025557288137506450770720035844401126936092697234003558891415206782218727814355454703866768194651497276358981124212004759792644738027173711173549297610842686234131943685563639982689751492855044486673569578042979601005703339581064666954692006534932184464908295534837195508896069925460909134560538649423815250117534578912980732153387022688191744793208432067728998183072823566709947611774513766260449699309534620917062488333651000372323436859434293004040413735040349095837504588024951746834299201229388430758472781434614555260000247318326538666033819444863553971985689273557960765100683297208407985800596415927664451062736078430168544796056302391251314046604135874844054335643973938923002095985919815728837533024563828827653162634591101305340704753057619535486859306562924521599534653637030422500528849652048590147480940913743505256347756521214695358005271172476637276427797813518995685850352900894075794506013921515608911750547622399057939423809836269350388185437318659598821785641133064931459324694157345386429136834807095658636201759719987241673094587164787615362895354028819013131539525614541270388216182204376259214732480672213315920413178931334007908533245269994465393939773536067171424594799177741955996300191746625197906346962953585283822126441659155572415406178965476938016786609076498426863587502180944244217727932774948741058612784374564817840243784174370533186557093647246450190974672731108662268574161661106113198022662360625219833259310002980382051634617140309352067031309563401713638582728990719214993893925119149874502055580700809044042423246837233475339230808491417243128044389519910564483283166790973017530986066072636591751829989123388280340929931353571535126695984404967931834411436867600500810323686944783068013067832693712586832776182638350714968642894298136292618894700882364290349854866897046530666118148874534241401299060875171920142527054459994848145914695770071430463036906394251273611630043147329218243437640355180667244887394060666649026832884224384215957164977577815057502876976854589275193580431281843199542059837629361546621818163304606105661332003937484446736081117534780362365867167757382869572771863033762998480848726637565284501242117436636232647376666055360562834957789391156086194577634515879946356193246028548141048903723652765301648835111927745987809956567993658177400785822853348119832565297777785036685802577111602204621603472573284762732835565954822369558973059364753003515475638682175044522526149325581764329401836347748047306558744359797633390069034577912100826821620979984342266914393593286069887003627070430624665789958848453908139721522454469492414706591706332405423277960055109684959043116776424306376170579107559092734994904187217230376567868866021510372755084884338137741322864990723094809562399589850880429875840176578656187746364161443035228090556947306009295946093506189643364170272361257433700467253131473481223181678494370686289085916218168212256755923627548046100991537457204780652641133026841445067160699134597541147581770062241295532902182065627692730968823178788813675885197260856782412012774058786067948698955445131435909380629243433684615558440880113891870116039616609018091362574165953222404339671306844826204678927608237439042888566325124418271007502484232227145085723416958046294106498484554688437919659394916643112049384354955572470268562562706163593076961698495594913394400794709782372667408717701034879329921823325469455065649667285908134482464355667179873288663199158665254098529709082016385492104857376442829557124737763686050574913975723970507705306305433461569669680765798853907052113859787673787667770461256791691001250311802723449526195102142137481801491064516139131111615527936219753703072187799492069798038697593206402490927139898843515483693798308501173038412436257467554346805925327667801838679193590815017064905542160372716715734852049451897293683681206727205121725095381525910384934682659348354485580404235699329253179271973112586307779198481648804624828377716380890372665542095304850988303110129298942071361405443203436455696199175874454564529394749931023429934752118461807603001948162529781130195005357639060907181828266103102129969297536338492110786633988320596328996914806645245194617912906919734504625815825669516713675761935964644920702317978574233009914657965888797739850964575071412947861569421517853278885039381634681034952461151054055690587091704246948838941068160757605354843092465381574486662878316966944075975666445630127461326902833142626162269258496118234538700596188716066583502571289691525067749587759162199996190571777433706422188117738172882435643643347083718150014926439687488344124232732980574844596592708047242733425947029073281776833196379628647888562547645580290611916283862382245284069183231744357057285306695398269697520845552528807968939508734116464628152002699839489143065741515525490647632279900688866887975470045567167358595545879463135525894986044191605627441478384989296343139818939446889858184563882441891516808483237861988470562423320703004977989769299131182520022954243740205968241462647841776640876087106239706375396842808073481117136680059616262735760451674439794460159259511533404215250455690934770141646080821214640590269982206640559029788375199412376260212489874412591086376327773934539803198736498383291334696158833252781179854721755947163228455871931995594535871471299658954561044248565648540327674821209505574954547143387993308618642103582081185896613373731179734141625142471436315931864465260197047839508119420415990307966272801076508957115496928281716632978827173635819987276944649479045834200356670567725900018057695827058375695714532757871184543253523136815745811628009786499030835812869672095986340628092278510713176183575351259402035798279268693894280797214328924515457646107246300790919793106819128097148439408969264903930560012944223705117431385107508609731384086560261479713630541167552222765338633236428217580988926726118699689711642560433126292534957247096698235285079652488641715872145637924537939865542674610583639321953113530590183890313538799479666258730560795355129463893295960211645935322973881838112829702286808500312021463793039091868447218259647445622952230318048867283730328455713516551478183296105526951456065677628137143939038595208668732057406531850660117412818523653562333841902764147981267604653362085480090214890652270032003927304664693746202489328682350969751772031305314111490027091379425612887783011511700158178837425117429362568069236898045535485428433790274628828930049029554216862635815620182580609490114174890013062469548031262635943203898134910325514490889802939542488388411961749084920016847246165727144948679218599974602298748389374213515234274621945023762676686148812355185236006030783534894575148198108172126751470664371387241646851930374476246767181472954522166928372894194783366877988968453129581907556979518271668776497784860408801327325170384960704681619402180693231862902086173667374283622764943407979836863310202768705962873851569484710669854025887584296513668552801976970559678007662376029106026693950874539667565850149071923662246603852902179253828754277821292677392475271187787791217825587000692474480052780624302692338677446255396940861155219931578699381556365788526845165438888344335579353381322933305476899212462307025242132943614057485617682851650871696840605714441511559803853912294080137290851343199720767304197071366548576918151827275727446042157399994765870318109971206273339965771947809848386073508738988392883612283432487664869532335366928818887601516970838475233691791822607053575729952512263558024267981144895111596716078311672431585596983300609406798616900454700250195165717310517174233952471884640133076971299475992932389823358773460652637278833012514207801178227105721641715183753497747235778358213182607489939029608175836521045819673058002530157972600771107290668401525596092551413937534183234030845578573646552302928636155925940254175285760506446098086213961931071467190031901566349713069920586853742654764558497908302939829289565607613169376626104193227158117760697490929033386939511908327862589326165448916115406302691576386863942953950742328001704781980896876973882774891710703295745678296822132043203735863764728977497633774148082349176334265193410456629230070803024210942340784305073048532386520990726926200762211055082543583879441957996801442782007281140845021309708519138827524968625293231056678042815535243804257347640545492901929811709980452655663745286337742711971109168034251033791126336609677935483874443617172481932396180504139695354371854857409435851518018764621322698529873741199571843597137211951212055246296451020368470086398801213417399473416844818183479007779487422023549530568562987972168070840296540049957237172113689836382331170061403345989363510301039305508334813020448166588151778346538152912544992568763939606334390433967970752305668008282875329849781555343371583451809778509474890290920489793037362489486785207822236894188081857863606797596421782869087049484486356344110926852141243868524206611830811649868618667184947775647479144046932960768739213019400703653293252764486878266156216969293752185526616082838560123771598129561766442730403993172891509836883320776797779868543710230933557472556243148516125847340572742296245380492136423207420665232148850655618844824271773667687965963423626781250703321620525827067060061230377148920818864802066143693319611239004850532104609482920619103129231517073698112975667933220345327669353872514645827314129246674630329705854895888702379447613037970237025851858744745512050239066417808131384243453109795338513320957030099340011835510183804782638607182185668969953484325628204067716917470357835434202502161797895832906213188375520440129974970571614023063835767211292567529897516535077472234385498079518031895547463399342733555167533574101514896187607902027686792549271090986502750371422353371781118301679502335293553980261590424055887976129864245295903218166934603585409986969718829160137570891729875675493018126779326554144050101642618297135681269106430047974902031834600639595762335151119791709418899695659829977445354544970568510200335857251913698157723572670076782647501192496810402200437379452508378251802895821520049224293742621076428701418211077301707286058942246735887341168889904196173057725865884414238718627433986541458043392418244221347135769250512357067592574870749652287329861261704617844874560548357835147914959146452184639927713604020259260668408536543841555531472322528699690519469974272987268387886614277281419738774030400037756872583698925621333946115239489966227849910001945286095061912090717736764758387443160947613077924562553248941134241933114896570561784653320649576173317053026169016608368471373101479338285955323645802312379393762675675053568823909859834585655212383117876695947527029152250460000288959660146415164138360933419212328997295493680883702073348997105664065888608305321335914575344546850282662403006421940115058487814346472043987390154806749558785658310316911140201740873436063756900397864462017483979713757388831339935828433669627359109769222833824063338305386848699764355738537474888511744598121125936376560597555934746849312407595522814544412558918350633968799379520458881413295100539463512140795836723578581469635052391724884976702574105621575333478918391778357755232882277602749059799171053618100296112132983649474727655223671981685296590828658908744992249605038164578192540845707048864155411072520621322336823225705203578881332468843535892450961006870139109818821117107813836452017135978064329917657921712361314749253625738557006748770749152572460353036055806481606450821445712310047349518075316280578264370351071059643021203892691044307987902862157280182039587236925140650900677392364349363683098112350376123978445725380516486350759484053488903129502473803879714919206612522498604441135165418939266493301835283643405062389082841545161000569072763175759105233310796158589887101937161633741974103237054856157843903283302346217382035278456330115631367419912401653876333722734412018843360836882701466324843484190527858141448690915972228407423503398786949376338553255140803445634968288029114031453141710218416965069835430155166138255975658726240521261018541251206772903706920726741173592668099727398278321405551186053155972123008123449971990771945699474174399991268144332514857424313733174501971473964987411523269354288525364863733962563140505788678086630057095361919948529325056318844437564253080688962643777799826091490295276016828113757764296531514743333178711186915000994049189739795453051751735473632782279752199932855864038756509063366376405836967951136973293979496634713994950057041443896814740870350694054278855093089508779227344587160339472866204157504071996263384377625155696134043535180941170849522206520913924235943181513890011989719985010537652500438531990984437199835616646692742024005218120657393641190926842756224286160789852890357660639187014001406489992460761970719583394094866967862016891450855672700797107747552023414354957998227711009490846255371172788938687352238955125482741996446541452895009348894493540117571413435696200220653997552861489165210057115113836910784025466617957984492222095905736098229916278222308279881906487251648673250594170983136858094271033110296755214059718173519692039587943568628559206056133575078543390031214975606675260193370299306877331272231052812693090189125169386424603703821988006819760603620225232128496280062565371954123600599650255767617171123091151618045540106832111799009287852444233035124559182196689249259999831861234453676799269037665606590767840623971099311627031983770196644104052593688697190045373840050885709782964728489651406032981509131151421582474958066441162216289607187522343991796761967460569417486086144582984733733048486579478087837792262646635194048468985526595595062822035705941965054977430400168465117677614786116695735166413816110265489118983223688175030060088702302900641426888996942978435111862541923153106434202917647709399836244992830547644993264062039155350439815058564587409597857709380678135456907307546956434922514025046661437874596444790079300782122085061706280606634446772291112246051739115991812693489169475275205766181857062962474316310299647823463284496494608532517585877728267543425154626781564318632454426590597234981925904641601659653445483280110869544049600311178511377529251508479022123014820016331286372839506542717586423198201353653897380955505611398035613570629415144645278989994717721096955099201234954437849451380128259948863928055994499997761527929569273279381328865491678163575103345750059783693183177663478655118558939290625918582426732227290358146158145450153115384356682418095027741241897447502947049326724617215547669747845326535105024279093078284516881700654469497070866656014374065189600159314645359918846952251793208313907364139878060263036570054761067212655199556685974971344417969547183145254881490673309695173605052740392055356064293408903913775780343935262470757051135902143577492527375026030126848918904540207386987034425111819145641703848214782644336770716281338948983356755001336301620954111637548337336223569814390951145945223345083930567256978353572378056047022313482581698804149961794609767758913121702960854050539769359537767895304652503788734442126024515899301586442779537679423764500951695246245509862096808025632095599549238136300115430324046935398255735732367915441225852588859301079368499406531312111404984713399671821899017853316619504456732019852392906407072568551626758178913635773729868892927244277162008106535561985966293550161905567097055638286013051314907773338904937488859786793866592567004519586322811525582221354521868591233271907783953929421333410016440047032468731535750970246774315861222149812975702809227079048677737659858393742907522213969953399368769146372992670628574708404746659422572117134860222874259216220392189358518143058507143143215286218562576460052736451394541867780746292201340203624948359648013881125901617682075207464931511304843825690574951171865599684079606297656328704175772682593133959321240034271210861202928823055025221937140656423115718686179991470220636988895723904923381848554976222302901174234555620387345159707103849740981830327363621750981462607703660987119813825610488911602584783219661858578151893229231274368644995150191144859709108191176606137874509062611572702013003940930618841511077952717128208786497098774540956673147361338349181326167002863433425805968610256812554741805355931327893757005241009434496949381813547861255915494192001129827815726264074013644720443816489855927232169593417216442171328297782408301734025385366696802968023741684296844293028437152126975512513872884145561929743789671630745408226182368388939187330519430595593903568607538788924512509222155220328406489474676891492893661129127052548236624005281459800627414039396154231878019883070133081893548105736109201795198048567905594106192555306854184110888904572678461508960710545035455175795332110163594593000042559774916634751242891208621940116168863011276209107511863887755985693153650992621459212899262847442476405716887579830045986039188477477211656429468002499930954539181551351389934912432481894636059083254406772981344702271444550125644842449528132366414890665864978318237306544030697481583253158373598691917914739398110267741932275799783374433907470508030581656415912660242104145635351390164520198983408236722211085429443817038681651362508703231095740982742075483222242373408823902490625970871879195191140444568155845107042150363898698013374032654617481697660911923491527422975093517408631999367133448760480482715932121845653356514190479447730443290224247471400540645615576036845252566672181406769130481476726833394599697179299080532836020200005493075946288252032699194821053416189772068048607024114042805196069090606316704990788923739726306399481215660472594311344472095850541517502828161385091896439555098458998201927215120610816964564694551187406837632581839801647879842592570496829991538747381884873718964510566072159599857560353558580984965466648547060869736257131925529751827832104690436942516889232937643949453155449939400055107419709254982345704377930507452436454992664768781378227185343414786323621948381841418766040455873725771299196683192383150092737564937895970374729735922580070747773770025889156451127227588575011849458975656446231726921809341381289038543940148868634282243374333852415830132452834239875847735453235719631203713964630706177918356284659841280987005904507140231182922285877480938367108881074572200149416115342362024079892450792969173643440854398794023918360932753297182053420852511668602750170129243535123577210152065317795142868066100801541628243900211474890749119797206645766045726001409119689594669753435716806345531964253940313597358201843312386348014904379173251013968354444724592868223100021497769264447758570709012120884000268281874682927085858170945862310217128394683435703446099550979775839256056477329563624537713583535527538033301728130738660301151410939969012846853603209957307233866328069313401619305858591304976910413564311015029599215409128439497950259294695338835848931703537254542318306435363239687460517729079870689926813369742340703156324344164416588498929517338860887576644508942042036962972499595055680498890240441253166675489878609576385209930113644208180216609215940000209374996428805909112191577864011524002265932065351418611088792845955541875667836994421363638593662492656467385350981385918332320653745758426506652988373502893617717083030383931511115804856389546800483678572125798163608165204496488228092215479728794065411404098330960012580735219959771889849962420866743486918989753416537357919164383355596161618772870074862950824565312408544359683829104896828361202934378582039520729465601827660048102298110629280807203076219504191128387768019444328374215594155838850258415115876881148778878634321084934877494268147321962988518015542272402730915426374189658466403192462487220505840344808957774339278071295316681221446654216929577852301907458018037733637152410032781799855896589099811170206172155952260100991023086918030465992592211060495796881951782920686451116469205754883137193219807485302378469175071920928176184125527974332676958392442507973152815975476639643181275773605391987889402967353589811838534963227182767700306155532489886125601599626282482658865868387545117449146985582262248329097946848989917109428406261985505779253485699659143467086866480459952983838320764430552147224611430594259164604352517856449344864169247426285695946666109772917451017014073674991894354642084947504971165223353506978072354614153350285402169577969158287787526176437529269158993588813097474510662628813812192594775547968986489303200194205921750626003727980308303671816599427328666589647603209193904532741839222667934699673975161491717290294057521879685394038723942052530311642900826760969210356013567479805575551797384034006095337360961862946816235837358157434060205931257466619130990942293827423490574484840768760445570765654345016795317614786554468155305132812224167991662633341378564771837230578827017487194585019260697893974756859389274084302777176306101627066671173469964249631606926583046725202834312666892007744556835563378685468009594948714163766341254573946087309023551028743388126741501450749384023319487947610308443992181145024588286467729788386712110985472164541433712442971429867477297675938370509178917824741783763527570898511463989057052956974056471498609766043183154188640580538787361613440469972066905153725363615637770433548525856895635016065609803266369979573505351183859620769476441568248722032445040557646502328101197724807936023766396150710766612132649841912936874164131162573641278666415339835749144357381453644157890385051102616721784722396282718442875834337127827293954410917478544019457596014548760835453742287808857467129288572995965920975401342864774644209778576209313224669968656028995174883908196762236992111752729248075411986836924022452213227992446227700161608155131778966403702799493599456874683934253247375207450143667256014419294365854465470234563322007795445212776325884796692027795397760785114383018974462916366305455629385271249570698806836119837676977883793778042368417203805960877047613994770230588829205820072709018934159700882429563540017419967571556971093600479450704152107416602530335174389203200072540156855193847422828096522386522136210132447024841874755976283271579990559492789616392447282848221861880671733343973454162559036679143691601892946300882975537547602572691740411394842284354213507529575104849129384752817485778546052167556722748524759135074831625676512691198364400840530478357766160026299443142289428456755068047484649060463581055839858139660197639204514232317091290524848154130100456731540702135059630045499043790215528895096689251661518138463703698028680257829176987965166039776785160472399652548274735561352479458245774871067191308749071134044363232276716804896149345456556785116377739069121659055812337943326552721900148697842900265259690396639753272583224530378659558995776160680119853575314051457131664790181677796998109423736805981953413500307740648091444657452706429735284067361272532688248290449399141851049194190583610047833936689822579202356189884585830104446285717021041856279634688921468194685897890688867726261690389883280332738056315574458987215851109621591594211034655610201993217397410686757054486996158433484650314820170424307267552775529356302711348448233633208016199171135294542258806509492341649914772693181807348538326359668457937399718989404881569637773187034427963073796306109067841400872375143678157956535369136480131619796772248768018070042592949159859626935963053504320828672347597171054861580564849523035234192598854268032742258746241252612634104319391492781777602569879457140246438700069025330646432142112216011821809612495986924061227741223558462907814135128284835919740123670875267707831642554864197218680615659928861114968153033212814878757780415526012856079908842802921573648617495467246296091801219814622756377158277974411330742865974475417280080057611991779410543919240720413206876508216455237945775071084581731559428891512933063073990411030897688585436566855241711467370245288943804414345286008973440732950978370351166813752701310529330323188180507090045719195882299065484547500163781515523872558877492681236560958793667543155711245988404219526888593022397216340050863435358603822843570722939333444416192012133461591750087311451039736495023708244398348172676946759396643395594137430246035775711368375326611320592582834493278776410574622754376376012699475594784680362093032466996264032623787232373250189334095733517315161327547088293088158528693965474967559250475566916944570196181083387231118640244107863920061938602720775075328821908516051281771155300142746789341088981069801587306356442574129217594805508624762677027256270876899354031716906904950842896466620700202069103211675673256134234204323553288492888985980580880303018670060750181750715920750706949371354075892492998788039780904391941241166939030106249938050960389608044507690926870884429487169349416221176342302115112160564317590900141949133076291607212478906326807070671485637831741054222809878860251469074097558714662052800058528957015254404435855006375537475213232500999964016464676713450980179455664342596532972225570763128591390955308850793084497953638426694143825961754413057144283281490533263682449808099440099822294064456227320821869655178684834120891532583279854403996216092551601329303829070386628647159453143919242714457070281195680969797715919812406675161797999050798046648229098612489440732487977770160226603493299329215840889263637806802246687980840273268621281856244004497460113994873806974504685002360558361817665023898009615733996754240194008425067291060681004742007785179843467741148382554476970176115850547417729053251005016848745536533642252971522725970801433988100278488872639383631648714672040187516766924853357148786122887055620256436635471185544335992502542975796756258860272725536649140482878043988127643128071287092268555141092149981715502567281609563414556688909028952092513888247855154828156618899732136227022048779149288126945539327100933260846060716419244768237068510327242936182811635293107407658599075402800539105554311541923321091233208065146435663255077965117968174487428913143942519038478669071562659920302649252287823564544826203179592225946694146168107420568045288789750805327953481553236906262221131665455166310713035768191984642262878838034423679356429761732716647468479353068182231531346206629100921922604094401160196573100855666615032262412034307731868872076951326535715488883240036973028933958484244291978683289588516020346522405009228726625175516986234895246642489593041951117099784772225539300968467708128514877006580545008647256953617175086939807197308966725028301194728053037658959269797959584140588113665988555862995318833620758716714012611427313652782389474260339429830800808255211502135975594864053345966069425541267954480969838643280864143275439500461106980402390400207385308594672979254748096619795408264818819655290888393667100769512277673396509825872121082367622460540134470368967437152040618192797012069794293382358901222060770890905607412838778297326990455313207247267491920185397850368228766497621406326836219187117018656574584814419321238517344382518924480199890269638534046197484993824265908326619932156721122946903613276345374187913140593495009928903082234521441356228288715404939999470296038390278754756720450898543717141704113252044673717194911443088823583653511104708129217194577624278066532437329206708005927042499683751230276195831476169663518822882594870575515817291756294513133122752205890663566413895225784895055869182526220485618423918514514252117521229619615161061884449876492820012701892787431650280039756829315094796639294889839111426986503685085828278693095951345577508630816004872817347101867287595099873258254814524305859458085699935421347751208441950555722984270888944338223927345295497875166448861933629923460529642739282302515045340199178391740722091300438715572731810766941957219159183262253689495764987841936345729924051094182746890275523051715971129958206406833295967590183152309846655345419665014873342162428597080630627604506627370695299587784129451311703477605306149129213784285863086989386799643287891907916343143996756874179624905248098606716806195736335583659486976379981630486843402042160324949728758162896059671256215518610805816862986700873223564315181473198938561342235941332035915141886935521102446490568322751265826002592900541521035722865502181421115584493855785080689117627388960638838645342894811479164930988684435266567330486932755302961583210171752180836377001964554977159041475390623481248754716591272419305023574235800253896275011140131241816868498198961355018322369867683228690450875537945308777291751863714863234854229839613336546280907856402980296339207123387684849511347131892737296198335911733779067962121196942983371157513432619183357282525501028550187676388357209066333586504259220984166152106837543053324341547118473809622180262926161396189364426930663749852920721014877855376504305703710074745337291809990746197192537143746153898745171093945324519543996065268565823825892021900175680603323930243761298423392195014811436617929191508724163979663529101033270708972686010089802792857424797195206924625511984158936397771684758688714998433998697643964017780795480154246260178199579021769184982957542359522304201485298043485384835168435864271586412798517416661430645328759804587607867206118427996056944389388415116686633252261528918811974207664268912368261733784315031648344863782391758457812782678631219356439731679641000959632292278251932985515817017415774687585409163982067212674961877292993143614481401334680684575130468228450094556847505781442555112583081924468807515406069148991822770688806626673071242729421945823627515976020210180010886700759592393543088103674762439769381348752044092875022703999422359424492916695903693805860521193128963390484367758224700470847410377966824879887517629058788498599449161448886749937695533060132391703384685505377297546138163833945954078249204731637968034517851835766064595490488546849980799980151791900888506557397288262437964521652742443791343853627674168299892701804659510227350899214592480526442825010018693037543719568547153316318510457156796928506505367933812586763663206558690663007141997892227647656442750412294497682589649069402792295675636425328203307506377752507279102929746458878371808634287356262008942301778111639964701706712467788819045056633324769462802681418860974584095072743448417763586876749637538053031122223189912357215017637576147815807853497030797043038956473655529066558072249471734949285707659843529611739260319002656750621804273600047140336380514662002966792035033089204189831426830467126771388857704337487137488064820712705460007342882737995208272527991087753207336037422144935144653472712513842489780245583380064987361430487610654486338413417409205374080049707920638422371913055232198302355356847489037832202400102005971517828871109720358798073194060321616768413630549198460676654713192183939271405174751825631569415564299138732626783144111017894048554055915262044935272161970783216068199682721163665992250651154563234174612110241676629464227516497903122054970912870820911151135247145784879563447314395525707393906448970146464685965705652083267301707646129718601794928663835526934068594233476578929454189887899918655312009094027879966005854206950045897495978830147970827412109221867462021780429511960486545565990083193496302413173838216358424777244300970098387750049440138361046032419652247073353493931835425100066379636680131014158669998195350999345119289573203201782684118130858086021991029232018245129104060826381213029530091330240998977937654392719118833102760908348896667393975443267879579900716576590394938330985866939038759375693974030456406845701143263242577669531383183227729275145274598271738932114375908111904670312391009324755897758358754657055101177716707101518118281399846900477035130205021372601448426356338784724488625151682870514189097669029712200574805902612199334008700862505457104412379366376496058783801996127349732830994287158351703697790578508327944096879599594085515651680034776847955611426921224394026096824804438584292677042666779494701123274322501015723806155383843739936928481105882193910305604786895408236873270066278934011053470455596075209697269088157038320748481672540493315086363295241274558319662721898293002729025798637051263239061618333637974549913662585645938714640039932669034899119613237019723098255446829280666501392529984592639530406150380320401701244792640531215391265453803225183224830772416006274921575083508746435739390400326511101052377670755995556484421988437873319060894753928052939821667832180262281921855985811582016414012691991323236979078688635932169355683614570223494897699570693078381174500492159019114588719812949213792925791793972568491106491546772128096269622899228470956484034562698893620161941198525653434905619964067389264559999012649562142336210447952395824566266436960175953902533664422183229608440189762745954498988857377284960947276624424895685737280403421622921739433476627721399900620193441641713876851325498660899733224987103913197423661637884323577406760270955814522824329592793272026609368375255630563942674300866023749080567899481258878066086541504791203834568299206695445471539256975725718856481509457130138394453387601946040629197813417765611788777646456808686023888216216202548220430168988212725083002959638568527783065025727572536089580196865887627553515420542910641146205644791402429570702560283254968162337042947993198246076145493502664761671709904106120578442074211210853788525005124479483929285604349124047774148990260333965683096621786549420065977328036046522531823260758415232968904868692691544191501450642928318185687505332911019713476288365616202363417566520569679289126374395564660149117968172640109233778793966736765692974538726479475949672760787172354057612442940077491971416313406997694024916998286718742873091815105343169858688201305285219188952987659805829571008872512099846920565049679362477823167494968350608700911881403053763776640650405981889042930064388136884435516198961306082620356864886367028348545470534105573855795105239050439261167372961613019779494315897649446270010628424248091256275024400981717509317803095055515737004998932211804405464819294882733580655301976652503654500357645518636535613855301398617685280009423714395481911144653326969038041397292740526126560560869643496513010013995836661905507830231670179971422123300990879904431155709748541366660975579638928810986936485971619013855578479359320243932289955361026333828789531938434912959371005460129141529715019210743251711102683949212699183607296128697665845162873968638722317840981649770908913049312938558738559991805618158560988644242183409971187248198008538060198308028994809492448235037308241380334361799267390296619211146798537439549479163667929584391705493434851562226850501430029701633131031778748266399967732984764561544583837215997857435712197990131734020316978809771917972763820253649273944929083462817757505597747131704090640667655420584743213592786084983061486047108225509312734865764610693872283626923543894781461001346874388721599769207968249846165851967249771970386276856442948178917815317350878956284290379236632222617480423428992534319291709669040394587157795255647919754653408442598080233741044588705783238328572665343920934449374068351013745982328301489541358891461965810645923616388239587693759566088770871116313931464015493049080402903873470509697166616315013616266579249344557880557961643703612567779140630000997909587265993689837433617289972417939335709767223220456247304496853316598665866304211336935481170703951113945237565331832336277941409856000835327688620788177614442015193733456815011726021126399226708997696892092161111967471209858335934637010069090510937030121362586665736489995979650105090782071585677041755505531435287708879336615958155432069631146037071613128987515985682944722589084461688716507826185224907869924310715465837429773899618390156916618287697829113644714626890128037764433301013804864811301182315869316690224959874060374115280817927150415444972730959708630971456843227153696634722955813377661508562753215727305399059836689269293199375630734664685617498365647615319178635563535616822637259044468966206447910634776345961630187765011323471736424101791468659609333599134210183613246860317727523199306717012840249621235903233842254083764587971554232846971626793703742714262894804986938236253053009883520262503199126517795247253632540193120224717888628544388326992067127591413764337585072190730335491632970583837735068423368482014720512275655898162044309503374413948604160721537889357408845905893943416767664507617988739962772569495454773362673543255880353832392165734707341918003113283809048269526295172232763382207447561765204460663235315405432845176403772255027991844037904979177168584557127405553885974214322612921423191668630062515076300179122488747821365903178806600753198888250696792316294318275312367752658645162886639766254674881069171384647974607890384972095759338566763264582955329911028642502024234569869568873085500226624095822401331886818127896036197242241910539226223151728535502123297728219602859823639908029058359774583628334131471717380491883693458309344832754892748023794649047346950760836935191516646640848937205902794562467171651706547182604900597175474911340116737210575578152389600884147911429493411113420696715688922556466055859757214735696397023505431697430484258171321573596843092528182628368776537878560804365175426305560202821563585218885155480921172474556836749973254037311875486158800783175916632618494110788329514004239716975274315888400604153357532462703738582127595045253491985414441996213975137182336332814526692726270614850937803030449148308660527574907878719920928044241902401404745116596714034984560855016003648930531593227855151631902638018194856990547667297287875399359665800791830810257885515242320274860005807824325261144929074789371431480621118996831860008051327660909894839422087682158059309567684871322611688389857854654384347446281832065281581197050848936477394872574861816623153536662346098553910539401356938251313544684336573909982023344490643295882052363533103691597070090375822936199642183926564943194004345225464878898457868721372508665846140407578191251585327287694621785400106062682782994538338005124976053628256200155733465626353265620659856066082037357382076754812737770719061776034354400143218143290260996664893574489022259963460769437759962179239034026114576956314712673120805173362647651319524426651842634230803663815817130028693551021580624973993477795166329100797625430254882173834270434623639059358908942651874077033708493885434912712151993288819929236299941765833914676900414333531516715424770052784382963380508583963142195869226257020771862415023160980308763408571877592414390829442500012069768231108882008829736139809997148026469981132818527917954234735906492984980719794719326754621999316060001453156624495583255899249952939210994688510279687958431151945765542204501383369139563094425571831066592908499560773336003817051427825908218020424972938681776304731286768111355293049795756042447080298121772202559002032071356667420362428399903929259078539297768790825543320597880900118598405334819055086465428707594470712419652379125326688902875068881665198395015956982826728536881945542529960578770794783803099985691678555151175413795065728118621506835408158101509375956617064035335432152627381332310717614777022797213557751261883661224445345124403243831126932438683565624413419383270759934763784872536349938731088506816415266394085678453436082358993113574301356530368495994749421708709266422984030058271975356679950418145398831660170966017261963432818122167150171325479373025720236961790237456270249267345533559337037578534099933403255517284475319975247717410591853701521877421356133045522119496990954463559862806454081447410033885791577474952544851753273790976469729689394855465530454219396394178868752743389344696924074313832100869556710189581712709706168547289863821378100578234754687971455041304040449443210410053271278252664103858975128226870438681404968533714179427507971403856827642524405679779599699577494799201072913220675303469994154921839833778380719789766827969381211807485095053867692805147714667858234946765956180326617659065329038887763369018787252169684349600420940827051070704104222970432343390846662762839104674134795276762419770141135660113215696280468196172341638434655896700240965432402910190740424161332999867168276189908097516766660047270952487627044028613634393194488480728773557351954848453374126399905764363936350400592819946432264378942855872653251178699057001944691710293729076968347380917249589110266041394070085404879987531830255972992085560466404122105139366721092930884567861748301659957918821074361095313245799826127039085944520853852136217923987858812032112456987918517640151903876464755876683729078846197916944968547260555031485986357106786782794206284824268873045245051785340625502517919701598400747016128926377914532715756893037914965114317555107122075596870095785665309942583550204211913948935649200223085002639438408723258916093263329314036730588195856679978079460582142312011002147504056729433442719435582332705678103984413286201021592499923401355715957077881687045216304392111631247311415321088481729724045024893256051082926747327892094350646703189745007398959482197606028729096329609394448381689371689749098737246808052489153764560177281972995057450735545489733571040524219910897127226066064084201339932393960226405996644476444837227178861524620858221241895635985333170679406114549891720225029357521689277550303662003982244544207733161642378953663736387158451529788675012870111302111534736948104157740494550971513716121705715441812968686591362164443751442983430242206669416381531092204677526761427742967587612344510529156387714146741395844001579130187197536127143417841947829165930777359838483795610898875194107407997667489224300268984988943381509522882683027777295310197042388308105714762521802281258046783897926296328816986311879320734190375003674348939415644192539572472837775244875467250437185847972306025115158101635549234530457685827579507831698131502464505717759962180678645120632947702599623948224840598886889251074694572498460865594605102396160712733985656909595196752061256708947250266732470861382499102257499329840463253023716092636335734026178648432462341442439465136256751051881771694978550204165844420794219100955913444828798046308138666024260921147717590145744648515734140569314474443579975713353104857986217295173540588060447769441436040496687341123487076495280252534878986503368396345607706072242640121846701589209454842790292919248560586036663293609269288505356835293649589888105381335181200840467759049728232827062919450746116259236530256494712602774852659517885979387180588945165049662020144130068471412708418612772186792007761509168140093795059297645348752531788753330786489416209548809806398940314667449809357651881659693207251862717439619986417398277916219888585476199635400779459574793935724388494241448191337608189217522848599840044296029890239728008885785808698869123504814586959654400049089094630348234088598625225747447506430105012252250070797909227909076278982051540654213829695842730846100288862749825673317366945449117939118599329824718802574790992902698531943226770137435259943909360608032681886737688239470521294143423205252789065464288188638272039399648610984574138693083107650050390734251531462370959052031688364261640187883135758388444596799294798958442305245840436909910094341769406686650629790361038413281287858410151031382343315205182907884824369032271554866450670391389092552952106812517688303581813907792605384689287957935394727459794512937630014298394674180940830314271626387885249788078322911945017380048189762969716236956453436486266788276367807566474543085850510412279337398241789229143773910278991375153262084860547594716544400793056783739219595814020240882488885171525346407606247487825005368728299902498915282651236026813786450492006911421289261051116076531899267613964487871762828632638003417046451145853009292820426925162139376359907642059016433896508163099894846528559593577172337103000094215211365020966903899640386926383688664292707064715391984427321378300059532860993279979539091447232330971858972537767973739013830713821611243683786561352173512527069501320714116631177478403070558741582141681584339988069997300865360407397425739438395840463997745527376874175794402344949175784171513510643478026683975054829647903519830840039197385896902499359680922185049145888757578981100395649254704107262918801832700592465003123181829445814317158124340499216055789905560778981391170189424314983304731283210265932779649853295430127019770060172545808182882405001043360881494003104448005991533664637757537764256277299645405718974616938981919039844632848379151085187651732285817150453464142701254785040090721013890905196800482660209326704040418128383748383823352829738187132659707474309664414098001250943651597372252490378061070869352337339539562795450569667609426455203857493493151696790910489180601146157366723476502204505195807519158227144827582441230375858188578674609816574320601070516337701121580083351908722208274355037602647766211539903725422970797609487991295307335331337742264439980439725588751989774090775376074688363428514107639187216687435420339800549527106253552255425499658299498487371553397667363991030691129925454009146252133948330408955527170100942241048070126707923826592749388064344349545843753507525940805358962991517561560322194116173873628367541336945447753202491146314943855718159462962945759374041522500178442579304428004211763129036203965992388459547105314565907412732267405834742072729675067373900876666537421792447419945807176683814369506096661046904536310357314135261582660649705550198814503077983727477897932622915694558186794871500389115984051640025765367530061321611075198287359247925398377788593655222086101602120742907695179647994272933742179322109298401486638001793753583320287646204677580026052823150835430599605833304134412309032011015231422197823800344427113192689043802844934969490289625041481390623795921881641458975833844901838742376266634445843572322118888665646493892100673315353781777122732787109701572662733349552921537494055363631589039018225968717223735882365710923261700448285846939027026625062300567744377597124457806216701964079034793533500070850090556926552129637003558096943474258634511713953635174726625707126825675732485135526831246381727118755336841174575230913226947243563783999644306304468656257593667446668346201310203320829410498773964482337697502000236844097756192686623972286910222917949722041816046013805918714480093393740050721886299551511173571776837652893614564390242390096407017364524691547764997885584864282130329339346270850310935921941159162016523353977617290319295313961618432378473060599845436416913004664791977649706035267960200038482631922185890346026002903733843946654893859821878874350001042867235145637537422353464194675435369191267208754669884929256876201270471766868486471294066572304309605646839111237196309522562625516600283016555152372105027881941121935700257434326446410620140023982655472261559890247875222389277409568461184681566012596731420373843694430643230327333829121320548883554363965642988067760968201777819310308568380436627973891501575670806050007285319941409042388906879256076159502332483630047445697375481399424100277307001072220144239186484642764909342424958447014351021374582786720451096794960678507711197463955376805301495349246161168262053101307148510131575373345180038875752512985690380882658972799176826105081353786792694400419699231835394708029860287422512555284428119448997832534380704259713838722452083314429141312396417738751974904596827244496601818841680277150352787624598796717368729039434753609985290461872559493144989228930537139760815795045783957503126086464645455474644537503088695755136724835337801935254597814805205656049268328102693209069830500133055745778159993109423419358506842998242573082164235145444689111915920596973762321970032894485816640084780522379121359366419813385790478343701540075623745789080977800798230504808472996364729270104294923729758771626089938674851943943308245707973525004555549229081462990417294535368814807844051570845406373743642914310768104488896651091706476570388764872087562763115941432371005254150366389245958490465123288953227408494014353613755714852972422547993464397137548441886238042112192250217658139985770458776750007078718204615885648198135409205356372793762683959332594783312421693490935962462956993421403768471711858888647917608628051415406834323671024388936466689956810970570957277905483973672725131220280992138667673511601218628459402214692971843636552115204817343487055635195193186386502813452259916976674084587069031918475562723973598681546012608379246340939046399965249741425985197408358291248059081674386196520657423601780453799336999056168151690337531118820985624051730255999521806928412489465020398785631689898536454645522296116333777476505025099167091250586923849339890782880522004117349601473096348376845458515872748545842228827142597623299558346419847697722804278245079215134320869141130176895952422524465278466556142238899045108131383567916745940191809225865563236358499308313764492761650304168344435271692517534608563327873425191750543112752216521442619435841426398116586794095042480809344058827626415149466027707960639490433649032517609466747045751843330085559178984380216345474129977765222346827125458532645005832577079008022062861041060539591435974882009016380890768176690669922913958716290959719578843797831251000717142677560120799340913304149679839343054582198642458870040509862239114513637605330359713080010364824767796249622867702536033460056812248808479317655866853721719727846154986906769027416833313242138079282965131268614567739682307425549176815058613013594124344552853981728499109025323421228724406154000747278729815930719239713295223735261018047760671817953436148771961482591108311327994499781609391377162836991941917195184601049776662265763620173300449800769510767694088452938473514781908561218865884752698664200880455118846457917482736577495482353873440492153680432210763705134649082594395311526162409965423424642646253631476490159296451107614573831862334963715921769031557222597177285871225174971776731928511655319937188709713652175179397355382391450102904613779345933412309401828876483919310978113262753041155091064548076875314412513044650840200083811194706015964678270069480497704789824461042019625686330541858697864578315234522314709892691316241147927907452751993017613963182925980998508564861098671918831032540900100085246484741135007355698264537409499139581965823592901116375736656114984408388345350004145574396690905738770661919151454439704544402406193218084951620480757236993843546013769225320037217780512735402354576703290813789429685041412638966179504642959246150185268743270298087252031947446721658249253441703076559308828524309484235985221062922284448926897350221325695192594141922569663308909419120767404885815371753462743637138657436112154282441106537270023763919379746715171561126202935423696279761449244561916606302914212243067900482801141197954648187237524802414167279217118610159096567403456342545061989150961110482514737991160303018959478748304927833560765547503348152957377073652736532012330317605993528540227294765762697813235652228466618782097022480421350526694371573187037970602802790577313495646783451127610839647829105843637799921866727316027284447307266183208187616108561743925938645926719271909304217061592995304975066528644617309706432596148938246503594883234996254751859659509643879222673375621635342911758542715743521170553136330271241183980495257253003568620458856299918184363470065223255726473520595189807666224084255374314659946951935907824017451004272787852536164166608454653049537654098612780423462748491236048968115660991183755587747676686481181542058383921686132161180366978866248698308480066192935345546870603966118259907956832669008079467890753846851148514392909699255186517592979054413959412385947004417351613797815798493308623373331100858648139199629656196370028628129949588141627599551950574796046265411828581073989031047803884985581085878217100349168271949734032450662334006741788914548391484085825832234052738740626310750257600441396385754058762342191103004099317406553964576035837636091334779636765284306138299861146518938710593940572772204967839240851324074739733009140900094062178436513756167313006290898274176276530688763580875618510510833611372515385221664836233439288499922283183107476030889465053677420567356166774828981572115148506465184028528637734605553653591997239494578408107175195504913007589137059219401358626208481533086170199245314781760243409712126053898148976706655675880647050283591443771001789809942704589089032269852464657251254160322379692349484825447792849953606214270074112506804312955651086019261014025572290915908916558281630162271499377127532107623989767094282622287357303363364268888422536524478049518173338939738083642695993270116876718524068219583191716011429265448348349484871873529926423196074767189814111872641187724538865391691013995782044622021590616443589580367954536191326749734055941037905921970776304639286930471883850125145256794052532499656306009711568530362579720441949196342875376738364923212294031096196048433191185986106179073898820676292185636632745561295181608623937906084129528143659475979110065057728663981983675748722049083209499703791353199685824114174645279361416926798254137957156300654385660494044423973559823178284348563443221456851189320672872968831637926991222545792997074906043286364399398509094212869827596559347671937313523303754811639296295271605470018412606238613669834892856118043776573549788493611307894305239279307199842900491747510810942313522286701327155592302239229942279762028098477139271734133311007831272258969137971437473348130895727391090691246426702577070594488035804542251351231956854064184912148411222910427514408610071748328198164085067559434008980954308448756433616096719427046664637276301360421364361606742943230485784624720755599222795239205577380448699364369218921746034964770197008818646536841002954239367897607063770340013949084477666393211458977656135105143355515438326402584834001145099668439639278012372912203176330966666080481895794824651826304306706539872735710031486343307272582361148599515176285766921525610793630371074954126513951490790565634878847936189728000731062848773277366970389766979326350346108203680578956151150148830516574131965128412277444851472159684712167699939597175283212418650108619432487758350912858942320029292095646749695110360104906943518265876277992682199478220312403657186716955236234113455440199052646329377597196733763255957783270806768855473090898435967427108442677450292406797821950850501860259473744590008368723477744408459932481063565014693980726920662682075933176214429669016449155504503994477761400416681687350416448615468987343142331000760085970426564417214072175347099729379062058766157307495689864243999271083964005340563805929371681431791540292597530997303836190324013221249974628393102496659485590977822209297331940699059873486973263597177566926198102526282467730174593248327975224356352760674329229899808196456842218489514825184250428533573829246370595613205006239142378085176689966706157098628842038504810630129076490987057526014411154007939695367087512584952902282441675286318487319847084324454939581505664553304368669642476985646505399827861836499301374190542017181348187091329336509932330014641629428471886220437532377376699525026878715371812370224136448477753169363032991548902289654081206462479800804611043259005590152704099431691403784617017963180394511992435061417420704719188222751300353060906693054688019349340412151939110289360720258761571263018136507447940133603449705855961452960749651094039732113722318423744123350667739460148289578242615734426098926173623189858039055247677285328791389624882999494495310210397815103375087998264314820956002883829740225919614702577291782524803184586010235502134659917125407559346293945730902674893791999317804011625388877273403621552551595644734711250204741050045272526986226801090613759798524383113492537998522229487117743556892318637510913634051540618030043477208611189377134797009075935047397451714842265237524406062534346722109437118378679488646509767452956012527064423763993580274006626750004489595294927664433915244403924110590555814803983828224686624485676062635700625643695018210825367674533653445595816665391910459311005634722434898555521541191795047301883026208261028058647211025769501564589640480156886208215625568613899223817755753695166239187517634492536896057022985956082320439745937868653222983806881510633562589976501151877404985862305526496261261911121623646203209994161118277354442617641968775254287760237871242702782510467172842632888619242885125954402223362776321425324826956186191956534825347418001905144496994071146654115434058784543207913794998897583602572121981538409157482680514699834649181865750954682302790992833991752507347481085268527254297627861436188996240871087261183748409155051049290031141172294334861885873007338528843712171218067673764060226238744592545388059362936150659313467142089908290845027621014046531367066950744672166335189611914256172007708037502152243302871103613027996505184805093777814866624286830479381073971035912047327385224902865283140550632768784242858106100596405993087399714657023772326136624930732236686114828992039823316645890222321501123651244592720107302453597236026377940598395377180145519781708711858454363717554232425987656699122447670743453234658620815068100814753233685927798345813225734415412214648517140337592518274537369547508986159435665431248183276681837573620010140350561282887213403767591778232730573762135413735351004404658599993080371388434771688470028975366596403937206823700549981770999766137773781902420293293984947061159353415175039123918714552950106632022983160041642241588170775527121394889859039062891043169041003154890130515637734038561344669234135090672632906021332706195693218800818617881597133249347194765201522577710896954005850001445027118344322308782790130204437725364833679398528367144723381713578607306869656771552757061360829500466147635570014362128042412352153412480064944175575576606844722596600200617923501023272555573033370290381334775176961663019849981547030327565661235886249913749251608727168122069177876420438540885389668582235854772489576973464252627414140791661304768495195901621033589964463154828869795720526092289879043763882228012729962129199689141177074902587571574473162587428577703223125361412118920906395162095375959009148307983277641966468934975388696058652047907201816562805578243265698266872905162204536705935668218124374263662883230767480043509761733237071172533666446463402012375246321703386881540350870155710480694092418428829621609221917382254732489150293205551795052445379262897605031415041455383020608562735624728629578944703295607856248144657875187115337972643913980576302247564640136246170874734410450037840370516061085698663200621903260112209828012441382516486536777950527432297686565494506007582124491144350827117052728439117743418830948815177625456003781585477903026642667576921314896638241169190927128937541272118538416372507526315034868156491984147034880767954553875807202261193053146869719962924722470137331612927771859338775925784756137711660760490019971024042363645565998311343269736210876666585871687556753284054590900158370375944673988631235064851168412212222636647235765145018940232235583463037651829803615994054699269021188556257470502883339300379755837624488964935920696418784964848078492523049892447057767316778772037680005354147040507839900073137742704194029916380101845110645062640222918637413465829956594685138355459209187632570660067168795385433135819187309302374996424380615490877459638143777410578898980818158544197081612264238944925929509148420379476629157409901458541067426549711020622884934338755810511239597807771499610298104042066185790169485088143357324932601884087811665404648302529280375615434099004215308694445178726219354766360596978749916623715316232611589576481342344138318850644159285401578744801564071369112401955431488606401928633173077524813220740539833299993362373093332118837609825293598164345822732240694195802297781923039691014413548139282228823820392146035401635759603353348348109700078142865955006249407384276681948611163191018218055474940988045707927172361154686204802171543643029560303645701515244928812011212243112719581431238310283432526957344131202833081677682817650259817483505147844582548448840860402470068610202527616813801469826378391809751510790753366298947300879061203658158913425124157643986084710726131319749331541765857843007447232546124801922481035290850300220368627887655664954608303022595611411963081509841715915525013230670534973370245227147543524942081986511749833268184888201665860992483673265808607995928016752554926737059845111501785221142684817518043132335945169238702636987658448857896086665315037758816645743092209156103219646344338527310193595827772848621228684935573216373868252361470160648113167216092928577818410820695223265540916811507757863611439992143095903005751180088789915429125128488666125280669079389824987312052532484462597070618158788507207248727776073862134618142865926634716104992168333500541008204041419849347794062774793514596636487360550870359552967449051228167112478840456160415494332423727727020483439217063445974374125795287290721184421285769157735079805984977147323557618027421877240647056710440222576588372181852494385964751636001096759505732356924478216088173147071294507525323953937149151407670997219638567000194421179831773352458850203174320573412433984805144867777928059445374231603837685469022310975255091231118901118678499941419802414593817166126761337228525037647339375220396374440238549984027397241222440586294557222542914111218666161349856191115627948824957309043775269230776607090418333267787094783638905151319646811078315246286998424087017197240477692264403058758195841447822830612832235204606755446401031866091670486363298177317507100411117941985056108307825508683244672025643595981246112683503138623779595312094331170360100418911349610054268719365758623550482266476384554123372736065364447041149177416858045009808725407152142934701927186352900775557450115371809963020054769937370945618196960506259535591188514986068382160303358024379131387847269286253896508845800175357690066647407464566217811494940356634881502761226865927074727494212315137914523914968631760228109247538741451764094506425856580763033805976496006576811691427503291963879890600757762112783150392245407861668396940612894498609862807835027326497225268301804930441367980689830339337578943250111962044177619775512419315179090991801253388956796043984854214328301796606361308349808554397738355179891873174593613350182420164378775170051586864326981990706422537661296533183958299328790434004027220073673526057826857395500419928198026495216335566371681417898914574622886037700708056171740690275558830103851296866484044039658649920847699837720417702028405177456794685544449241256679857999421446557710769331669791304694532593190513247828240554417831363952520401906166984018275970361806818484498092279203696499238580369851193950422748484428836300774317148569050535041711221410856456077702882970773121978529095794486645580749666850128144285543719011113761143645264025570814379339548239557684232841363573069742697036815484677480329068736075922119161927097508611860270379443604644888158491511326124798466498982852859714732774031468737073725240666132948586223197182888540325806500395630529754304382014247992628785795418543268579141152218564822352822976110967648901908098109995691871323390472534426119350210442133790186214622725878314432615797375112211710380673409198706574726831153389203396131651824824442669372617552303524720349959603759001627405834846567356579858629727213785262909052513447053080994471646870816499008473413499906083761450404075444066341535708761920076899853154763690518361240773177378182266550997954025770834014703786623721787418018677709256014969498250543853670609522212536502535958864824397624940507166096151180964879451164741345887211857484103610576364552926958397032224024869249849255095450650317312633829942780708778491684291767833809066655042298832293140258820716789083962474306362296782327303735353942699482898684916844663937796031642155654145682764731477748853499089555843581799357855883473959682483840247001643889826936913812990125856100608728672744877563557007386062493428723267845747753042693469158205826976711994346732424625292766274879516527044287933803253096583464414889858145596752463419152628409238950390087356364340766978333884880084126508832066766788473809407040522630560098605753579245249428449777838146755305453941104474729623350306197419312643508154335983494270986042400164886726797263549212767793669198045307304966158189492715382364580609679018309160973749800557638536158398859897503126960803034019532577897815184509009788794052922627191582861170137205800937787408531923303593277099268710788459217389151469744939007175303890381816349647004987796904225313601178648051401656132227843384897989903265630972638827858918295020635852096210439440492866644324448823165131391310691662528156867490102450162011569430135340703787423562983396076698283569572737826656432218880728131914165423750672426672804627555316843790392569540989272876154092133358567422949479753076659459161460841322241663027556253156294203125077261920672644311354744988531421650477532635493579661514063634529738120914703184678753407093486217596096756925544185568349028036853101484190937881303973218845608101316168165399763402873183801312147218914115346192068712568263280962439979661485142930985449393152479741614190938652332615122994392838715622419476613312393327016310935460259186568869423879956706401180150020999812370028142833548315897591166228263663477520680360409618051500751860660124914395059441203340989803453442129531187952060398354835573957731843452390147781015954981897509944898805151832801216993689933159570681958260606514785277828371681420530642141235523524712587579794513238513332567520421116299899745777298328212239610401501249631867553528713522339937694468186363858243196132960020483693077961817516565904961212946631267581435246921772848316571091474483952053234517462318524223638628645546897849155638007920282932540048447306701807204764904299250264852160103670147680765043620427612808197650623918036596939514076439777861729609744058165846021093621016541302370641278432873646396218835059270807259474394091598219140266573617034442310257239388132640215530627802661937377377126298476189407414735368511273755412251938475236804066364586774249421123886875696328757448156077649210346587717636241741440589316798291551332734714333160165317934099511722205404630666367403694297975216237879609195151362692165891973493920745240497202622311391166447200536148362633071392931844221258288340444488922963981115714268409844631457945177184215219530057714705548966510826028962764007727908926636430878726209229443176127347003531354886087212156384806872570093314117602434631883474056217932219515102500973564714093660965355487692065103894676175135670026615076635569848368364507716765645600874679714236723482104016492535558629682955663316679364641348761719446080456701682256952946433584939816653195596003601622077196872478121117769665928863806999393161396624003513865048071152301647254348197431129744121932236501613941272218032996888191178024392958405418301845241030509606696154525906113679117170156151029398477928196271613999291934046825822931422001338955248586245615076907315414027021031536556340309997522883263115878130142089040386796354410731451580598868547731477713143743909155897873674055258735276330016608307261548211725490291224882763901264724510722778493510092024109646888668878824419967547748102840918239893265700402862211683688681500615180217036611962729426347885536184778103614410355097581862511852094012110965299647445309452293460535331801452191658342720517563741374994122222610570375452674254621993332637284256020285441249306655999982001985276655078148893867129823437373923177222190247213904944274444442079462936801066218391559656203241353508488575743521074179286164803996539237647612072745429451410053174317490976416762702500202768515870027371803491831600124476235816135375592587843114391893979878813099882326356954956039825016327785135934691460137264858847157453032107425604332285581530101217773520700508135040004436230177078072789373012803957243323478930320273089202116909186281335265224844706633757329942641039104107203869365067857010732351567351736910066613075835021809157827765448460877342840307451620895184928111898058791767290536807371889605906181847777737251301704309600915616453168463588500194306159288756641748862522120666484162817120031724356974218777977709907922114639453474722252882933059791666990556988731909541759453360383932946702457580176061482321895899675357155380264582202104571721505627441609612776085417250820462382484908485119493937365259985287909723766655650982254427281135746470047930475535040209990908507653594604457859964334981183541408666369902392502943206658159133671811272191565036186689360449880460586331729136108811942226609229701357513593368665491243265109736888949684172187928371670142059584725664213492739161384094994160469786306878467592122465202647865598334654657309334489348686143456318804088073319209161465600954391995797369824806352822623222728586724148622935924852825277647091979852167537512875432011321800440109600258468519634646911344038371653827762387280784560205528381934970276514981428995918495544530506446294136199127285103341696625182489014619414410147191904702529979717483785115545844873056940589152791950630726140604385299614939646285072358004254734605440690549296577411434263920856450493354957744570125889060238576395050573304456846628344538213832611716865015249392567251786810587377179966029993603023348667023419617404314138159113465100600997629083220104295722090920912370217037866960826496994333404863076121505779166511134522759186218000858583000429256612867933899229412399081342862120492704793895453917209161258217522072968726781060245130496970737648116574541178631114650116519367793431455124060157338897026454637136802154458708311557738657869349362379674570237271578724044352801545491652192412013929124640763637035422036203067390039751684964400376637383265348015924049437149555451373145337232470117779369085783130529538339398502891562053514801539846234673061226333864815057198385860588712204284138053613099725232345044355614673135121760162016437971931218770388334826722734478609254989694976317107803935132538076388245290788572431838153512710415599511480378140211550938861149607291951289909554913246959122036388902819861221430850451735433145052701421069519664358977190996634764652544438443753186741897535445951987574064983499516349706415657534864341657040223107185850478374036257456429780049987547383230492714130973609242273219252108530081877887017125634788310544365885623774954883989580726284552600121278324846988840590154710243997771141496266734812650435112248918115488998914058242804089810986915099437660524612511590711587649195113958586431105232443627727641895269292295271385562969133098446380230756725320225863529051212384054698322885540762059438907714374985895111236124935350801367852798322886300458740575656286635586561388134997153931137407449840672914305325720664710909054279345893778697854328708629051337285430730757133641516146615358204498151909831644978888419596497648201997836109382715438827219047814129766758271073870199244199589426584805106751285198889246035018696243357867220194519369777824476838556629450721767146212543168157134684444172769503974003494329486188662368561408750326602117618644743331900866400492720602636039479216251073870855950973865981493552262597441240144299722877093466732826502995001415507353835894788451190379486097532449230622332083407231586956835203894364378275277202363945028546817642411284874049014769782555470096208650736118666531102047125782481985977821936204892948147114172786302999893605774941782907932427682500880405526603828547982913863363380157895793429870167201315165519305098539081150026778104577141292533106862328743638472948423445265950454026204419544524010162519238713541213114336149692239962161047357780062017626766142525068875554980471275451771430402828462866682012353044353725385078658908132159855161837752165910866416412729708744728441646311569418451991325851522303784519018642049565595967423206463376815668173019464357309412739966243636613017232467497198207469198759531840753027812876223519879189585510341761895138167542251024946539646256431492121671676695224829324412219184009988179853356215482541269853961257441060085415521807535329706748029109226648149021597433737250897916379791568062645545762887707083017819308518474290318593806422638757225685092034209018349422519363559950426617264643189823647862534963463005240343910377658132870575252928094070602601398078924258963564136290081803595225067821467736010923006448765997993706501789279204433892120397850799059843572605149620512766807314287878401102280180850504282833106613177926911409384353004338862848707643597724674492272745619085648701696459396847228307384515039744851658684355579023316512440493504333014784324298794504679084966051114178666195821759320120697525213081293288717482208493121575672828397005065978896115769414553120422938640199322401638130471582381609672544386233283114600238812252380177414268089075677631141426377146410565764077242020007080192558492324116757276579950938886011301733087829212239044426378898002819425214415229737736019875420371336428043536827645608594440831975975518427080706954705126156843156731837181169032434561021849400904786622666609126391626830699680378572373431750667025264975243767911923194077150646127990217949581578751102713206077657578685037830685633337153997861236166145099466776290267004510875541740749001354705672347161185438823754796652809158175241270757430444867708087684883454027219657364303877341614837432657126701219707193702319189749106648595694874781618024073806630334843342997812536952540053704167133904120404421985673893283850501327788140249526107753540132977586563835611287310774025904269132639268597021815145703510182557734789600684055468115757491147876811072858052995237630894967486954651171618737769757286357211792469913692181616650802736218888207302128840249801980283978723468372444685578749184895507615809616039762410864395824563482672103257531211529439606886524526283925840086168671073998004494039355631111018150768023127414097905628307091202950856017698392174056499194469704767079000648493209687055209134402485010694243809625957936575617087763117411900583409957158912959687883987053367210237960951693027164757661851896129728970636222150413929445487516787613354407548456391078958842123942730979484817376175548364986628790349810944283517357239473197504564958638920802451014336354686197922374610194616311002397199715587661588153462302920974216443189833530272721880270284803576067183474676902098558226064469755864629384623407165782787209697879559949275754023505050565008615804283331225511099935521575757195115317881650055530977891268211553095779163948172458370153554800696492884599592587717308167282603073926349474733173161925339625474141506973704222471581716649468665241232178526166303748841029334940361727358039525972618281795835997393127249103158192475090640013200469733340299952947522084204952848472861331675843005258001134390395017006309489889346780240474330956680004254352985052074469460867975511844991767218284773979104962095988795722988546146649197323681950251086604460060474666016456137843697388132997249739988302315805660368577653860710554151654175955340638242517963646316858378804692458251271937221847930031993469848397858335319575986102208842720487794829741937915379018252629394165738326611146274520195720654149439332719280047129060853174451939249944196164003256437877169305076901411406178590646865426284342054762906526821282488946694206300602646621819829961941726524759454768836771423546527246226386877689994561786308263386612742976061576738401954206856711390540968423332009955427480046712452586827396410535479861774892291265197779190824034727545071970633190798088915963363394323610129073507285410321275817593083595188429296917741823776933647672009811527525486489893606917043399587178401153580169815557628355133786086653877871800968607965974926292442744449259687216714633364475659123033591482139726443195449497790762676174690476660743333422106157453546757514322262597380925482375480466605853064122506191107543233861678334807546431451344680244525919783337275297686832003240713486476750003863397437075151648175808292622679760920708547517725766373262868002591316985124752574760418480258233463353185646943573381112631464338571449324368341113661985482209420999929125119467601724601474850662467733335299611737292916574885918427304603526858482372666155759625129456050604275416871493869203758290340233410306708715899962244699373273538292378762307992370863953833537657596025289934658782927053582450187843844624846346483209691615620162845095325906727660497936476248856214730948505741156388515623848806933543888865742670331864054227560383376852311177613281564120858219647787410755271952948203447151534948660233732117076608369626022218914535806533588102679191655944097071988699308596373231301126636040003944120531849170718789433088032303058964794378257292875440578258453583359904765560365845351315864278318537951122576485888335619578825283752927310989141549868692850474892641406839676979723752959004358472356694437694234398662567599803617862557570652258763468987848112524725811241623199581888532541803630878865701640319125137976640457424900312345501906480624190080901360017929880229292934580614518700290911931053125742414388009612128266187809616912097938091172422319752459023431972756501410614985388275245657312123485107239802702521988739288980806020783187014472686440814465380801309387152755233401683956168390172461996749412284272528557509246987699194740209918349171743152323941757456207334546980316518447068056434053198712058622045455210451600275288014184891034266445787717253003226650658649851397162821882370324043606433008895397643538476817357299186447711337652784716881445988418388329430240909738605229274842058894327075194727886168316285992876817272464051855011792416370118246609008526156045117086245818326863437494876769305108687433907898883239734100735208802797005307315759560802167215710010731564031175899356704150346752636541368621590209324577845778395663776841131739031316164829695378146454111100045386579603027711771921121822005013388168620547057488628384257967877910278618929321973853427410728615125594950372404945963618125474075696676145899746455239895175644197312612429808978622372693003078191980363253515158464829126867223348815199540199464742100063885119263180695892535584282067805326545770054104322301709826180614694776969681262202455625585979948244530136507096868725106350151784540919948212457565642603553652854917320626111320301939883123628829633746664399969448098411675730339874605719403721535159986112513525131845015600502632106602397160900686319995712729637378527705139125634979324404149585100613206197168238411128278986206224497993529570311230235038732729810186453382968310749503184063775999389010146188243262085408989864981742425111704312827602941823730126422504542522228348305013626730203506066063722948184012641785876898467632512792791179324019218009344139559670706670537520854952264169173352205083583791848767472241220818076246599792871412823552136067192666004018564080156224357810560569471180996845142399876807194129122438737221085851730378341626098935753689107121607267688135748751154449060726508761267667305598569125856102185148760616956681484478900449764909276821288207845760244341189509749090282990855903499784156666653103411334660798575777790956594051331342775546504550220944911023136199959937587758316342296109272979302427168706386521129971054533496756224548312780711976799800362966713829711009663592395897988498752280751432553661721539536526396774232517937028810665157228972944808999463547647505911259378728826434850728613303050566613681662886016405341983326228847379982248454819887611224473724528864646801000576118686286395432336671239265440830405698579341405399074646496140212735274865186990205106468793486808288161167216035730346755317501459889856774124706618571138250433611325232420876183115221968993953264013145112057368125561671929833757624367811191191059966986598689165037800013816865312557341863164231472742523681027617112377707695467452341000716038564039295029284429949426612036279229192793430863841169919163413278832402681547607219393853568739627871362206216995260934840598411096476210682892486965053214384089986387267680851095909072125652390474924804224042551732862897483058621529536409481440132014814006112085800073605203979549192053660188620555519593405476537813381538802816086532130940313003635524003350065238592946869403100422980013182899371888319001814363943992619650294426187944130347957190541368317599984625806789544585791907774875391300701852260431898423096510501027479507966235582176111442515211191103281565831142692811277791450500116852853230090036444067226948958162102701428812712530328593611480293744294192728834405479850494781311567433969862873995017495344237624850493008432091571870631407894333938062803283322573529988132884101698621785558654990445053756436351628368110431182097545721136177381368921158547906201263248866361687856968782627688029483598502037177747109236415980212579088026390900772150661346562819824236405846146958889737044125046668243653329122840075606883622379859713674219766425524079679360220707362006072566925065037923066880396030320866398746975670873733647591592121406758108623514801386946485809307707838659151368626406831864576692180819174657093681220372565613872561781397448584611150526690835132560177677435376320121158474506862615029268974828273991747899917083097168852020606365933447673788160196139806676641350733893206047761409050615690123991219599852981078450358466422571663937155972279555248587237692077196741493462107173256287245887407006200927838352312357599900575185024065881492898886409893095385760584008289739690481775074586398084752890246928865282711752380534779966925911027946408238706564981634168265623165045465136741393240273800908557359690551416598613773073896414082994025195272881299268466365259596573972068518088661120073345150781162076262703271910383234595084997669694419872528745450674197262800207130633116821099854952766684815817445907934402388309862437009507348165223148290507638721465864961912739449778898054697936659659094973179850027726580016729274835681703074937949566070902515440881414754154793128259702467476158308084027268979369335233504792513519703877405459718771616429909562434222959651331131376131227881525280068617140676009674203960672974192521961156307662890166836218046242283085323795288109747042896484527159633376179228101018948375080876412018817296930565648268392886133242020713175259681361807620984461002847108018711480765543796722881687243988978764810500054690140609170221774546353895387495182470436724940877283987118505742656968517651364390410724085764757307533152024737366664079029854850626525946145280780864925560952002115968072896975119411564359305594236882457384910487832587681101403481805258602189894440711531680491777260132813796038062257827249693359324073836688589408986095230951956837662078823894748703966368614710856312022041512106677954702302401479285079315843339262517388360690280020308486563330281796788159870371546517395402550799919130276732730414534558388483474568608410183328119696593027963483354505946395572504956224143536690978274670925299980841294309296185729655999744582350144698947842317460269141291549443160744181630882879068511432914089142987521322528096307463991987250604849167930610941821022636836848748975027844367491369412816424493860017579527363246732906568960429506288861156522663247853849110270855199477382493485809300468116996318472838164151552521445621724747498396787473663532827802906574754036644261212558415756718931428503153513665760159132476089963073557301933149516228276272206185031594791452069689340451065643195345646924351445217964894770052061569513345123489527931891822881900769293679396283975213128429809384691107143423129829725678186900534236861247051380041016888791303401157057656904333516161070963129133198299196473614662165003146193880703927849161462814651616288523227326425212876637474943949790220368972667730339157155401927209392586539129105976164572074047526736094379551845858310982198898401989232215071898050263266138383733378705940733071040634297410687807114658227215810928771918772157309598692945714159751989797353477640580672411829791222337141713777190745021809534961150590057549035943876789416413528145243765983108582155261166877868675128522869434270959747524647565955252372266002719052534346089640042843172418881884922885800150948402036219547023977053396753517352890452817902272406993600626214319427854280956948360165979228563108134756955297423900911422015786687233688061316280282059962993365624132468440525999885289426612919123811012158475666472528703496063169903369410654364310443735012931117724833106756439030150787790614761460902782135076139072422238823640600275959161401328452640271659762340840412664568228852733617359271347085131918063832674578472880634096845357055098361794052012463324535626899472848183619538495911671679780437649684067565529366785806710043011496623861804798673159753080348781539577665262532942204229748352269531171107358542887160806284124817700513824754806657326184865521696526625427006844888996940239937941436953428501275558094335120185722157993683177927170109030226048331618684176657330493920707279139187519883994339041522759659275006226943432481826453953675120282822337741045338990177607851609719854334019726361375757468763254748442220250891402812521871586356386108059202597740219070673533293237189769537500235381280584647255922257838193621181398048383825355705768013240950685235113746465005193425330538086672651037984871756213009939262654580505458429869308038016627570331542190520727469622669840806004790257439678245896333200821824774250383862453598488671807778959542234232908376912995613731105182870597173001656321928513946274729932119857564709393414631022564863119070682920826708122419443263763372654444993633971387358984550586460653267669146448301341435297974406205586194846699742772957626267146396698628372023320745646111873822829040006104773592399523826138242846423397014974463642060148985843504301743084663748617022264594570021234837652935507585739254755134856145181508804777292873518420565127405404520609311636216780021769830486337138618957179378028520831807765902554814641946923371425623469845012609215955734915021635421416096611164070398649389883482271146128989890121977006768443207198312437067420084798001753275814505650187638211990380750344832998612141476198241052158554138418937393046601711625577155242595896367303715748516418834250205465402399927495166115225209451241337022209614255002075781464301193428747403693187912143657106235924397520098092512095271805221850249615449883642787637488873159541324080361873463170870091640666021984962893098673721326624997378752970487247297101082397678385168422336502539847446345156302821907277692977319564685545004479591078131429062477776783347412176130415139010655702567902222306133278021642737712012945826285109652921027179735672807062487822717752791715931797743015662083484924419808240990314013535376465138870278417207126382447185055398015067920510521442225126768158256821587659352659894700275082001195632960468969299401712708229871656146422868502450887562178681167480983098241257347113856733583239154869880356256707504232692426767236671165081784613886218762905026833913323873870830632429979634298746952113768450583932674577117732416411150836838128325163010866757530111090496773812127958652104478857643328042284311740147778514923177991088872104731229156539833906319797260854166587110172435419203162588149606661970666928317107369693347513230480186910500859541349331064306475403934726519431837812646278260704390388234354400603033527578218588464321594560471658297112336607500296169483658825654426756551409230387725891178761938606655793984329719091015460906633185861700356962662897484101081828499520746077439931658681828828318904880988206652050881818971220215653009178904827144853438140632058254492299220698200980947052802924545010953278271505263615846470902824696098194092881230843494585201907142516830406177798681753107006075907776634847322972741253929327890134962838576530883720023992755490334159708081756814563751309115908592274200501720705239405879291565880763080307321773239509128839154683308697804497917753418190626971429417500298148019020498526581537106345231891626356622475610553341051827260732674405467460557549446196731708460332933651014140228446531004588058789410489935824060076667812271151171237892538705848609752057539671249825600827068109786055544563135689570374415090526243298897050851394769939693023200584831157277134823458373457009694746820579475785356503565939117349207632563962514334044496202964147185793613394422395056669488219475401831103313075275063512891672804514894486598064888182955363555657518783520781784669047040401677226668905826493197383833245869181190182441957226825769139454758853019030180770133414597276654911303855146425700210286349729342109798208807028989618185246571567641473299961923041316525209536027411682275542592574079510916702494812496050289017805344355295485859300429470946540881500301695884212596721366702117707819798827716065148991828164544613566768438539539925433071391309198413387484840473113441741325802940948974489430245514482628947338918446832845474223071118764720511252566586230566763070529630847651382269506507230804108102118899700077712249791465510791944433166372186106738072967111292903885254847940990819646278832340089390402311607193200378537248095737238107721507390420587901607944508586438362423836787539011909923108164116399838714796838513790947556034661931537455290552166470276223839092167178637644772872294048469027697861060834358197386661241744153468786640583101230479645384097449209563695774366191102681502367513504700798533246464128529676741520530995710566580542838239636201209611450734379465139068018771519818710655190642674235108149534073237392946964059689451255790402199406737299590713869523816950979018386216221516521062678190869711999283281345060048486693188872034552458976028876787238790560988467873897444242504021559079999005263273358117375135876112009995365051859155725476382603330134628849088784382971397916613218575311672885558068620311608244080727037585907153261866673062305153071163240867979613786856491709159006775169779506976566512242989101306290675965194328523724636716119145426737985731956832310016805960835657200582102232718547024318361028308216465709560212088662273012701051596705487822039816222220154660093444399168829825609299593455075742054506113369713526174847326498168176523496055767292584393926722986434531185028180921469875447242482258032084389888653579443774798209814214327014273427672233943306484761566768994211610552767222050683348483146873741363594948253816681083108036667017684308394800835521746736179717711015240717107126853235246752302039798908697293304702833215042513209390267792593095368559800032383072260277264455750526806080294869258581338632586139202958668226564275607146771687809392090939462844233194266226344602648850493914564805783689019403184602479986215883100459256188633512090208755486185622957273589513739145508248264959990903893028853147846029019788793939354001888930842035302460753538655525271333757499251436987939195655017515763280158692490369928857940990156401851093716240195696711218416917761986227909845226114839822314557158274821783602757162495539231228865626026867709648485344668706644612336284971958587081085902178006206049953510129819638515190397980547213336971256921470509639796596570031435138509561219693192621234644459257588246027651952902120847048338179068518284157898403052497746095108456468954632479657057810850903899184648874463006230159578693814380490860850383308884515056155671435777002348717425170488032009105648929645685395934467821529942838372275532085993797228953293763379626638749277211157161659699263837682192418157554215180393180145860464062427696999372474868108666427150427800827067375210912753742163210122125112425653076700996050340965571974564892273065257293671049559117639821339630474585550402306424579607393321297595428966572629657637478004579155815067972348456288088376002806605375269901942648380538026913569832604284157136231497068667173473252037731411747881821940041893774216678598828080457376371655185375525157398779448843641885942310957977383752317843001923535632505825171081686213561662364282748146566328592234902229053245647169027093113767150228411464267533127947537124827651134724108513639614946306558985884391582279151208727620897898199229348132144290196924794579446880791579521254647471077976039973464011273919859855335451770062350882117456062932380332773901039180945925009083970639417482794740563910136148035042693637770923104916287134384751672165992383216530808897563414008720720822879830916600051208773082754057439017883785721321155657041538297431242445724980269085039673445030411103132560771387918478600684884232288820155412928321934528763599460817011266107737402035396859731714630982887555921947246580479401457674318738448285201027482386767321889905798083843105560595817680943473673498178665949974769152556993730199970820808298399353601919554090854340901030008584362196892457058201688646891590795318671882182551041498358816432013305595940872383824174296806582109371064423140872181309838475718203952140463448248368552354794637860105392307756059236022303261162746140155572992274628644839285749281438364184126714723608303324141763223248846653477439561595216079628178170719022251918519669121286470050193270662757045513209710822751903048148503296682322733770036101441695170873339037593818442338366153407083599520006824855947381732235546817427734892921400706914559054490933933493456487067415349400118061272268431965024989937043415559699608671164784799877077891283184987580625927323718468920222777215469225505246644572659240052773722741372252859432499475111329787625784709440692444650198391271471569572720063649168528286932877047370093259380667850785879878699754920160726569650723756885574546930632188303402428591241953518258911552030179760818890200127587261455443698446096126021005445612892027918895612376709272204923183156415531203602885276616768953347374820773444383962423280288714457050986770599824949734312113921582140989860800638980628922683088237717316118281431514784464468552662729421038973334223286768387948211529267709782434411731897033139516063716044689681023242549124397824346860735717689501282268829393762895840631387718370869250645187071014104124809575769438738844117136141535061582533993568368037324688019395935290870021006593123048591896298278815694716156170378189605666798098750670903294215600602069643750503032527217067687888405440638227308384665391866711348573521959816843016399515457505188583021983796997178835168821715637470944312944987460733265223535103546710313935665208928483469839580351347535074398744885689966065881599317085281235231731626106875889134228171915470079943343096970887584788642398938964220162312907271105858181800813068197858901121747319421268535549879156767659585173967673655412358581587580513256938136205215643888483981537729402643466992264201473323990128840467607999672443493886929062207534153101176461410564020660112224281072541650155493373108754561412363259582679545038400833754536389448170921899642239734684198587829170568721548653927141322828970706091448920000304006481004984125789762260655786212590966048109574302917762003687899386621017348573424878798901968456106612022496537156070239968311326599417630062730221929172925099266025548156453501800957631324146560252291121306314401118814124816668614180377747380499082407413246319239186625217721210560521118961000829126270642669737783833464416227366831359524876651082692777313197201698151288594873877914706070246702858587797320218667903426431235687023769365163626426425219028037756740473283155808071858945356312114482254142323016368599775111523751644764282366397815424161581926510259503588976639781093981231018570763232639325110696675143179870182567866387009632011088180941129023872428191507522918420178478229060975531228239477186729812106536355146457884216235209815199486939289278027943528515041656575580593583776715235466716235946071758094301812232901915773561816536346132261472878259976472179259429039157380151795636308259479308602419324341269916555641087663634055014075196649885287189215016032102070922278176634593414480210913437523503337360926319897151840879257161796598221533080190167291869648259679655417980702551061051145247939704944838298797036019564548403563109962897851754612904418306251931293408161487974608901179134616604635550086230573131513082745714702300694578965981885639769541899686421446917947983182358096669840276012882448938839133631170923345358038769772753165754064184066705069392803489511896423958949907867497464875572677364221442331163848165255785799274264195345108918388920506231715521230516294564212686117283086336820033628563702066473606916908669668179570813297986613455777823224920671173592995693643500633846969809321859578899275266984992174418763697949710325006886019731183767612754271479457234634141435820167416622328755480693673327612028968838322475265122945299536655960470111265947882299048008145193657706944125014918567740267999292737164631476389495247885029628859973377238690428878010945578258162605847024923661839733698992705928349679636258586505094701412918622601205568611277532077476921064992225495574985159096509962623706924953145999664895658666153617847153297407304964548710599874577518270574765855974546254716477742823412783943492273998451759657384944610758622257187657439909734153742648053359501164338855875510661801147312613156296564432401309124616411755754900148964938737761110378096626194563297835012316505378416264052527287350924908265123592548162032861623416502466888610687356687020910314997692360186689100108554874894758745551033243247967176855252315342236070456136639604798014839131715520666330523155079485594971790904395054462089080247579144490875667347341219264161475633053594478898424151089919092222091322175398454339247395118436170383959784696244425590810926832931724562954736677558498940993355486355028710744158418145774918294932568951309329962354716752897940725692987506766637884863714303350081707852506757133556910632528251110879911931214405084951197046244016894411670251249767397946379453969624563674971608420146290802236705845369084519403995917942007715368574272927005979313578641366305646932204002381737454675617409366009798391669176746785234278161811389906471946814994391753667160114807374629815421543996948977842389227389866194129304651094392135759956398266555150946786387463892312321087212855568533991258936811651108930706600216629699977209055952560845842432609582233629427508139778843374911738670799900770264350735926823070595190606794972244215932561622398163999749793021358963023883572921173379945679071367380734516229374359206856081077731784929604169406559704097140892915122465065170774479478599879383658078107216003702487833545233083297630330625811774206810314232313553252549499520591119665396356107552285942327015693758091637098169831768884943802629978653236638837966776015559230904152810522490696666596440866321991190102729145996333040948205877153001787454363636408202477270644777814773309561699292917666001956434713971683199065142799418041596198714854915096629927045048694255108217883801623159597751560670147185008803110722876768134757738931582203386026624335593533123426781792693784936177041089584946440410216363410933990831867301904635790387886356034470967086940321633321194738014673611827258540989894329077812325021605426594288981532844915459885605184979706082327941804801069676339997937804897617000984351090408395853412019874502538749408758196888971267629246486744253528627705936833163861964695219246988692971299177468492447162626321329807591246888486959728818474636281108423951244294466485447121411828029313380870998507167752253936285635111324223130764521249819077409381759193013324900508412621414216930865933264085619013722857387980580346173872317079790503670276492239517425844251006045074621331550592808344583111622936308002812392012189151702516221755878838460574992343043194106967876721818850003616729394422018798741748500319307761019807274968859863444921334743683288553255442464817950780324340393022015590133134217230995151219075454149200449740590495520311600114839931836630259603813281025570122435836397938012887277624983040379561143113628336734135862325072705267172347252215302121123692276637875825690640227681794408115911548283710856538772495152083593593638717504275195812697530142483426684331314285085765291247886658546981338306160996604624220681185868717679660773930667683391210609432360518066390551762944290157228399296208774325633983205673229834145797772585678968126304111709949715389884347593788746722763826197900711554910455360828179132805405189094861278807050531000392873819814214719957249314899571383821572553885714613816614157371959483882214942961696218623274572444964889293432050287392652148131438993675511677183871800916184983435114988634657556360675093357994803277301815428381257858097711853817422338889450931652286348891818772048029885863300001462878139083471442168733135504522837075269381736963131396488469692375473148217921787953942549005949486800888730855848172958812325090837156625971042143802277484040925826306186355522197203020266466905434898547211883100228354404857584044704713870897240285467933751408370383396817076342201531057812251227175266661012405650900170938472381615990724671115997411510721573492370413494905847324026106344718512550954478635307320672714929179049109980805473226115234362152892630323501135087798942883724281839584336738780481622312365927951033630428441224383932861351664115014193132680858468867024125182676804967511774295375833737589189269047705701166143929451247368599874905804761874146072476905106706150748919019361505018162696856701733697878464978830821818114274859858843758292723290592644828067634225009233732661439408279508994585799066981136326732803974000737968627852203496968843665674724359703173916094834564000970960546239494796229224209377076293760093311299576972081720456519830980467325893298594528201760034373483073555942532360463537141855811288180807549643212686484216842752874404353260264219548997588964962949954356775804343326269078234029526113029504728970663379650623058137277207110659605793712381171986000118321376885291936636568912987306771988247029426509348059878026290936875040171594021903034109370967974844466906918358370098400387732230541279471726417937965015025329288735795639942142975284020282829319309413373175333527826564610403778182903511818137540113722956170630032153954849171278268577424592638535802065504262042211558813246660635358553382774152580793118076130469508819097313848949833443698571393807762286098189295677077507404509052618536969873871611496356118032191472403923110612840579736475025688815156413695474633095941040002142695821429516624574544623200676621226844927552327802324899742282276258320330257704081901442284544499558131766256534938135523947175708925588200573881384373593683529530120199147422179158708487625552956819346712658186831900484602695587334827765711993729575557797802269039392375625379397199152665038250943091866069541400338931577353603157293746380998823227397042324024356541960505955943203979409611078524466909719099584587234733504974107880705121532553367973071427368510865235637588228610126781137259307126550764102497116594881067479275200378479151501854545311407287830683560480143260618529150320996779924167177373605126588722985829146844233181041179217857586260960395840983369279105092585169386080029846095642293424969223775128293569887596922341173449164075759922918483808568039749581784955869250259476907371725176812739224650516761800192160620586360759702944771455780853538304462935356476810064210040944071276112124517771562476897544837414950175806191505089916065169533051395407526279307349421489847680996002232803840423006193519362224279713455628545264670140811997114473283427441382102398374220357770647556525649212492223766589490025779097261826482712738355008391254372976680870765175054169388666338403827455724033751609578556285364084971143826351709174640011764851798222343792711388090407974949088868535316897357245077315897393720226249371643125727910014640233295883524042371733858139785625219971246228705543412907331961633648628304863409947833391435522531821010239385642494533351606307995604978103790722727489604603904704443935505486140422754477312909709188420600236760036323927661067255821123420346482809779070698141982570629265293448523940721824707745514080819528588959024453854122436384317207272060565028807488036692107812077458057950991732749507729948829662953205184960987051474262120439006866256215788872002146259889519255519970132261268270289917313700555141115077309418538842218359490065520271090712477945045994029358901328786610596128357637378705870060988889045271259927602467797702350247202433641695047624261023882403384029676582213318728887229578748731119750968942723456121957439014549313285673316920003908866996596832221162092309750179222949640102640855661145801514685491429197031168791141101418693139504886180975804452008763781991248759711713684878145411600778393097404072559609181019106811446037257291909761796815708378641612503334792752580101134128531565986349281145024264320756294607190028253825972799544382751388124656920198625041685436638906492102791967367586734236800136589940801684867001364561706752747877410317547967543005700225080836509271679104383033823813796511354647847622928428998425785724397112848752766805712385731540155991342109901500652346946112032554599371261383262618468481919777397209786954374362463368700862593252953040122069219334041172549363580536657899382662120087132070111558558125042756238889861568908771640698108195862711051835956041318852824954066542654320563383431931944760715994774270744285092400989626536525987036978307403145676894019847505318643279247563007230181167108825424719130884171940943449522113763402657214496764031176524029086039077628209535245324976873347809764825666591477647031481831870417836321656030882013485789239503210670411288586590426992231068786010974234127933643918299391150914220219180592812419923119348856559762716026380529060282675144502513371956594686766092306986240769041959297345753099392765834578465265292408413397349784877861951709084435284749261284461699019307841936352361561085245634692252977276462070480945635682814045550251704585002341396690382163156094359829395981532466477769695772029025933259719549446314137992682456673106960945620979039146998601013753928213721476998742283651554238816339312369443463245798563926639439924096901689006079074614173788517444957642214533874357582528899408284345876417254947212812719678822699073201178505521575793493147738901346187285440833207448799656289011520829018646561483322309976330667613422280133978973283630289404383579668709513580343955195143593182855475541131269993345077026352438930096585577555414252221305667459486046106885124653139301838658752165024361853597677097956747284240828855477719834401303219893366853019045755043186063520806799808801773863567056530456188525967393857916373718568560223924379023608832620242277301249696698794326273825993104245958917011875221368411385414413594296914982795442760318702855009403472542984823610034002474166493128348515303389809410307233473456037635701324852486439220292720619603727999721859421302560401532274822001915559152723582230128897011918726473897467975537975547115527021069080561223605297102744351136922999355978516952904630299351833474847564096380533154552762844194264708953417819377016956482200230014850549867237964322243344643883751338652148233074222545588448057644274148202407670025600616565783707660262636236801157375128389536876541193635144065381301397215142544015144591065124412982211036992080931023793620981026446161318005860452588186205419183652560964058944213806924553440138539730810586921880994190476478445471203006285654630794550159412012121994836142869405003919728750528977743795336990058115980347531205985548282449801544744608748056699456988521835272425606464261579613490637723148862355451867054911265652525598999185432211922919034083164813624580032356514140636935879309727446598932356465397906887289403997359564886371302533834568716731822553429158075355281422171015875830626026924790743158176600790172230752497182105545073387753655265634113031857453135429194297850827495003715767168786767159731872427502986349029664164935804738290349765676033850144110075678964640376321679604540665469588154985117294714612633195817263616125534112099979354805039416217634382757697411485624358877191930784330869547103190079577285233960308277618295710883567053716613537003339300469566917024179104253042619949326120463842112697934438804459941954190491650071095927507684090583753115834194205512924594195457995731286483149445195948451768137865407198295864057175362374972037065256204758963070279351845431386586344137726371172389695186330983031067471807083965896191597014834452338667790015809639093411203051886653651973833104836101591659336868176875591131841172958618992502218451520114225749742049248861221081753652528910468831927483251361086209659985709191259836311947328413244458082121841502727143217764426477626706538708927855127388808054423775203945012168569646695711681109381425005657353820763222414722547456110435137222075120113821427397939639379216986938817482784565919544754426390334441717082211777190052921335353814965405443585186767307532618530158929120332134921750049690765870299423831944547321002843017985750987924333077138797651527660641809724093747042262493628405998666776147719137910803546421194058612837301427156634831143242323341938175352922342621805370538974322782455361644404938497572504862523053000852089803489706018298546462376825044301641526211528533616703012481551491813363388913863833803646354255317730737266696351550271502608628698917104332626554745592009695075783501258429509395948105532736457752417990253384911546788446793515426647384958600121461366162808762572122091281840280109873241592885884901116996373382316221560203848966284799150638440396255272309489688475262073963364202628698676535359830679592367702028230178799242837137129203521715023605289625186414045043385907225603479554584474491462035073644713671929878452673835045044504936441027392592843250342434523271154653465606111775164872208564938734057987504545860839956332750227874207765768584550866381915910458040894503817243888013318026138321441397872776164940515420679046959923721170396240567770225247508125956459536289021839330115543385002250398133531442919146197923313650850342246655162872348442206748072498466162709600408472363605524329167980440111364570103519917143079459427001747921858695071954095201838525085582875554516507505369112289909879777383166610296644553703161347919810025511715018898480857355784901165158512083001318708119215816482546564067664687841304469328659683617818499606950369154221005274316639724859169294989559674609621917894467880094546342674954877889049463774112696296328792141341504383924780327882461393915087150322225560066098773227580241551238029035124192990469184960008397358537832669758366860960543989950552192050082183718402251525191440947655772746714511113301513959671474717861163979656740134302355445812541658492487880292057681173054392620684849591042615769307392223081975855028621179998699196558769942577167026489286402535295233108736441954426371689038821872254510238056676027199497311348346232335308675127666640801814923121462255590974960277364528703760510436587816456783492300676235167022911648493050239075049968505450677101877548264570959088315579586180736194721138859388964809802334134886908675334397869938588470625041617374092757377032638315284455105837947607948604170152117886804278831997420441436526585896854061441838506555956412413591188191124474015001410760579331523907439163961730685320209406328141032047128176603815726610341574201400457045175741195133782506565544905389183282187139457541822041063737632682847722511872490668736088895786138675306674859735076109335899342636523995608901968360440601117131470770994402331431069787305265014341636307897751697218708599587698251434057648026630809336853435610458550008357014401141714239404218235996870541327780276599566428150175229477184824413661459780454420629532842298245580062409020315200230603958401260941848827937189082012352380558204979285148011264763013487193263559703092258974884358764806867512352103647527033816611850437486080948434033151168723076887557572242236715305314055469215129529558593699724426883227144138278248876546409277688361376770844920056393442041027778644728089388855401020268647732945488853787939957716280253920969758186164490647076329326633371144848905301543074511591401472321505169279940076337567308214025336983962084698726764700105720798004040022559713248333687004162320602671079198867327385818762228084693980650879763653285802295508209490889091860360470611583277609835592768227269142668286875473619546754836081884498624202382465157752998676126965645935003717337077751713017933466895451872417846220904015037607587162381010330712530743950303257636523719092409350364208423111847633762227489946583580142147303873245053281602803419755929895087878399233840386938584629416568533747618364705776471887343924222580269046032645992888732105192335061783672955181632732565168756881885218878371555251292092912930880194789067581602609855149456884438519855124538517015921346019688835725722288977325658996007845189402019381278778513971203120078649689622605969754236173261699817351774408768950709795875972199080015259813079743946806426572299804427973620462939978186811531714908581795237398836628728861534512758762383232750537014473320785411897056777228466642306324584670292086156935417645017182565879783741441640892858035717146094281395856527714004217241646302831935491550284692047824890405752548810866196012963282160097267152824575098418064890198864875437365668527786778019638079034998533612076525810469405169603561840399154594109544995984463711480538760847627549151465020958594192313245959102000236725352083746203294446441121182483094777410547842316172299575726486903034251826052156657426383794301984115265810721537909334550740947920492580284206577378508153847829759639456954023218572463483930844934661293514661736875250712555684349755149353307199400915910176080818811675883637828111601547522914593393150312067390505671850087226860100784180156009297758401052247071228517098327304153301950328054261351003130009168626374149868408603045285924857890244089776144208671007817642709890009843267674189565404128845480558253821675926956273507229518993668595831673496297169750608198832375953221683651799915644980181942352862777723909089176266066410018944465801454391604846913214210068375095938788019317009713439653460385676855242079105868683255081683460014075775827843553781715803402344439860580923545586001682002044148929054484269989841465708441934875439360482729857506715159295879423731093942248846881295594073103406501108147973953629403670577723187593334475288876387805933461862626133177269088983555910148347839067175654868753980126872951091418616693226975944754722282134566829928745307212655713347311992818191546417436129818705912026260343170251457817468064391523175025998355862917744506249995236188066288409986766014964001656288546027080817021271088869203044658552003008651175298932576938046390933719749490084472580186307752679530182088686751845346283389965216788018118525534143071533274983005438433945732235025250299321865178261560016716130562728274688440399786376541592647180193878932921645994575088241082361077005101765043296221105456599410421709382726695062318230325943772046303470172217346964982382741912948048554955003233294881145875141862589427657857725279962790774991635401454224118777256637355602210044277394287661848583863076711179746037463516384370105727108036199384298451570774519324615377496558043618938131201577556268087091612147758336286131442345949554736301154309803225341657746464685428989048782273453449727575175497360356986818971861575474007547222850978147002902196626675863712155769877402847210409215781669045090517365727161848543882153262970412360913645075323233683278223789275738915233349273899596450346338437692354561862373138140546201981438405655365167273228828244256685209359143428875854357043800708700415720623462004826301686655948327264655731313877144355461848752069629798234772168122409210222148790090581732394560160561942630350139934121290032194014372348592572774836282897196901555500444667490496405631396085962913563553934699826377281991147815316174379717680738600322061559857648261643290246031001794841451505522106796982425303910730149377150886636182617398307915923205802710891232024358833218421125098832597877175597879548351450622794415442494648356696181128663757253614344760952392577600344375889239698216238756222714385226527079193146419138886001586478697452788818433007394696140298714217107270029314974712365883349487448933019256484085661774952746788651309303820580219392798048206886249994812364171840709017193811702798969650718350486033964067085171777072296044123983820752503262247631238138658993200741503293640493520090333322527179154969966610271246295681761313301467463747777233142575542728997269834717085981657162950438326110683771392609168814407614201424644682336602082580343272743822182315570310398745366888054653681348036001837024772414446791167852658257265084391120798740930730400527815658907435584731565413382817708721206392594934105753958403764075093268423224344177442555779990743069299233084404437525096550334578063979360489141957172832785447694097865531722167573513126523844688996465336684497338355271362362948080236302743124776367186958310786017059313280944630330726616676579160493482393245297894555387816012819856411831539792367629318583709093586772811333120235251896404689518190933424166910768615416367859008353926356306553236245084333271689664245216212945037338160570639048239844998053558086641983860686090411871319156260002461554446630921584752941004414157349117123050706973026647602092017665355521845938886948473144910369641209270299737513736279355977414293267473245759554267950788905368932782781863126577359005257753957588721411828113146949591531733672378241580107324297077571845486668678397013813703786033237859522139508786538918725974509757410522019364031042204341036097318349580727447128089855279393788669713327029594131367768808876603496715610422787916218757540577178687466047971911564466979252798533776137501365905941349960395159791403508095568060272913174969857490484093643943932775914550804319375180009200546586320194420465404843349977525147069699342985964454731022811663204815940566557624314445760397168723106291536013966843347904038954161637828241604742038613229903112102774956244079838120389286199828902361590180214170268102500593312295727462221947865383448963866843963510152738480083140261586951213110433577734180331462985407984798938992532612420219988409022435639825075371123540191123028718826007679657610353000638452792954749141016597910671056918506311880958509627316327085721711415625016768221036549974670267685148168352803818350307307190861496189214435783474736494204846017664033930046252634314945827926483620472355035016351730662486387404600357874808406653699136415089372881198231025141175737290215108417711613734016152991534060751450828108510913670722627109140710507463984187250590637863246083730575327722706336616050503142037261586131517795467534562928283389867771416553942320690458063864196738628443036657047851281760565612632857075062172582560508294170697671113025276634965847457666317438805302131599069893583707259207728827445439065274940496131849956313079980472108209607081621939465235504039219105514561170090018936803560413315361335785219041081794979568170236294691260347751816521215569058196443576609397092466790815293313126872305516746039508118623924063539709102605434599490109462127590363262016280117560147536090964083081250498755907031767741611606039670651777864671115095781887145957987461806215400028014964717920541775720444657025619710022165838686637628847579726592973621171382463510720800699629499521081914802281451496736917742036151199654008817374581825512880104242049121828506632925185759417058186728622823573365026481397722219224664348395665600931194743216500725573978446387770913873869983476575547991750673397467512727711162020960179865733477198792741627821650053719575706330229875527004313336695887249125487396966235209419936744071552692675455364590966615938523672818451959225392063367089531730478139421187805247590405311925115608115392300470567824778726546712806464288103981892085671659742035134042970569286514019330285267925573909122305619696808863431784711261405141011642782983211522108387995908267046643555486208490733682199406164271970868518190539087032964849436758951166006647178729919482591245421099194234840628759533067655879657884684147255313280845926496255292289296711553176097638919057084833998245966661905056036040995047043013162184077964806796605607706447367788019593105078426183367344088402050389677587870198817385821353819559999424947080579991994249120073748739201324309894654836789265970976595464397928748248486195397103150309999153774925278883169190477793995121507470260625618996212753638230406630149424536689155027665569312552463762296534878857294662665686304759745391261710202913895968891398168236001052005164842018606858719235146525554298225892506124718974637025815010075441383709730352497009555700302638807146960716879083155560608039946903492340552976106005236312256039024910027710689065694945330643995472528429642128749051859135801818071091814015457228202286595128817071631261582574979086423582827912150378772870276805481113019246166650440421439217421965166236934636388631957270817704470046333756654455155959879201575508093070992867253458250203558072198124752455517744645514552436514834075722458185084690780473124070333379823258188499877505403846049707140644091190738605150836066426022063958289900928498129162146686836145636506891248727626645597082249149573822307643458987667930442143420323800299949719093827772894195314029929218518934536691788096799403988697282465786668799105327008545359039876346881583077813061957549553749468537457321980488994945452509618703767531500296853877498914002915347492641888207389626887747085473084463538594171757660512370032070082532192041263736652053211293037844976252145186464830453601885129386839280070536886433944412718639187476189837098472454858036468097833413845851740370823843375812215006091688306000478139402717839135199169874000135663902273400473213905656295272337311445784739593878037013720551384867397021881630361554483606651406651616872338860874498976988688271653282340272786242888440654558290374228915773082283783743487457438968472831217632056445461536020507562154505886420651183690416818486062736950815710155944492834654057886440072276932567439278315765558255841715060849708402192370977282067946603033208691671133174674271245064530322168447232142217766560464225141156965324491211015183710591853966746883415886296260063847579028214811121631504168579505357060185389376716477840731455298022005813754485738543001969471495017103795148791633909377853885895018923301512349499185788962025353892612234499270501983001347222828765113013840099265472523946912734191530135477800101025206804313601595511232081790866682651140081741819950642455076593085568916384223614645184333133125010298829052643672963415646275217197731195230469914775505456891945873359657753921874140738629510467378117420645116505394461577895394040045681904713544745428384353746779273151117274717130677132449296380771093707708412345538169932054789704430126672559821434347154404670057394167239012985784801654695781248690481903829713433809857841524551859792950534547883517901178767668138495713045843885340364377690756115682800119132354639353081315428813710525766687203275236656757051252997196308028748001539917159888341403331972626185628055722199245171537251692484425576873239202098890967767155309342131928754734759281890328618874324875611896202872228348672216423176746611824555905708942906505050571458847375663883420584043141719340727461867534432423791655264917389381680088340347258173643867573289828718440562739644135931301927416976577150230125477906329115808254533560211848805261138418725767499506447787398419163805840271724767972818730588445384155123806242443764528408316801368741495414517040266863946829232599565070920259170119422526424190738709683159593640755276983204228225055205018143398671482444301548445723424995386942722871551985157059943799075083431623173673985949298683354481060053848649004101411461529363247019617207508826227406641197332459717874577886406337342619522608971738852879209624573230918008347986116055411115865622633568918060407910270404691527862646758050224408565417800382678549655492996077690722156066303217350911133839404044414438165169819067625945188372395876645264999447481866341046864218294828238315410851316541658414054951565008261303092745936967986141644913381654585291624525562149882033619150098644779732456484434434783642675461375766229915670080841657440520897069528577127923703234191261363707882236431859602406157019715664084663294128525692620014602209889431684429616580764319381156388087125214504076651072811987917432791557518184912494432676745257353667953675527625336179518026664712387278599685957295921146923113517284432623160024633814828070024574042626868927965952877529800623322642288134851570032411383077048255643746303877235050632527030991851117310681301308558378540172054852656006179948316960435781092331381425865673007590130713675242956456888067034464303450241436862733860423951535212724445428356534494784236461370068958357124375373120357332608178174328965359546646456450803507238322827820022252665686094656933423621805033376853441550892977871617493399816068981333374409130159547454549241387699852219519722744380161120298970010436961835973812612700136368657039180235567738280762101734203132382276850830413126848991517568328993203578272016805043596009931741175504765505090790860893543347471432788269872746977833110579893487540785921328698591915699257156226700702094929727974757047477581463088063446355517751772467534846208347183148581859761659176977853638180610243280329834931040139503686364217210876256955450853802041076531288515178060903064814903487948928430907140950730424171280272475444447252930075527741764597809245975444259706104889906949075082444886861668394188037595181460061282213755707849210942444411685699924948929438157820620831354203960083024132597419340979363984052840045306752526608570304750177943171336315658892345756934273100476148622374359472959680827103933899795554622345786843924139258924247279678188594626544791813565901453458810329847154956068986534736000009809849519434693382437599157091320060030819952543546419824390230436690663334520660283322536611211785755998231085900970041317353787738619102240448604370503941336075176229312103839041112138786767157733546357905485139777115654285786048282342149342313916867425762446401913964988184831475008628953557570014724571882518450990120080159678771721680836253367957535895509027767455156242315912313178386429029294260098729083284818822941313586202790549768044982312515006059377264453177253302471713118792108645881533279293042256369861283813609152865139184097535004919745547333625840760413936769383825059217571579534354500880993579121126028083071925950493134737689329084150006376478582575606739337652490589897994151811537012358143231382958621267526157118109337938662020151147583029883333307688899331194791608395287592718977091485596192247421856665352646142282036202436739887421213330083244684511536189283013282043342743000255114565807285298053423058650597747779687214751820191471120246834683155722149946108947237221334446617897338902288317635382905374712607674491597576689945573772441884170118067435178732273353854699583790561753248529277470618377789020435094277597749127493207672214107901067479470322665389287373782889111016626551667434800889585536424882916033616806746237294713946217818660233240568043247941036393461041370264190861742829677329888386883560940503445673799262713109751788192730685555031537126198416551950073398780685536226257097960353442778647428023052730480944273264428342310980134757906864130184223927000599191087533055050599143725430806170632584463749109200128600668830545911080931118301851659709312307496173896654997902421151719003736216363955964260722351351411116094069628796275128182011475341631124576657715375613837058142086017264150897413942834837617362393845560437152921046518901355494690805265913929897177901375411843475228024336398164738793212624855884382440988480189367963664545659396311570214840226749404737805420387500768483901297722455491877815406404344055253907794341423677042349898210510497976236291943646436887263818875857283506924173821641563636207063360171231519802287202079953160911809803655851435204676690197108287131199708717636037393306904526699360469906879804498988630880163604820517169025124120984491291681183613168344954388056476206314229892110822678604642622644510497975827559805039255704389604807661894960076542694452708887139823287171946769219064386729195808747068418257108727066860246568282977228303613628487031720082966339024199750400387712235884312417756548642906745003944297333081403878015019389692057632378361191372814208493706319315202897560801067085179289465208507679640888763930819536511157204298374029754971946260774732039920381460855530641052433674783562700211308646689207801672514289196499601215102355795844158827629181802507672225516218730160046326210972866007157536743227772633673502520875936205741918103631879902999954546205229217061631043245358498671114069091003545964327079670289948042792484673005062377855403259017056082208604401115395276804147974461514863378354041989162978606585779382718588700473215754578905089535455664989622068732952544170679315276771897045957447125457262025081343715802639862965712946903366857044181331665214272166842086532699856045302994026518828719834842868002332010867982281789021181525497285064750859544743218784231570283401265301444243277201449824730583870656025947136732494921771677290896814138222291910504631592177457788297601021253951907615006450410176771021355467359771047997180440309676702990628407455942322628485066430095874390093286054218779390680729988370632608205566463555957074685896187529823799090587449600381359439694374061699332212666629900787814961886148022256065829325495857745844219788859722107219066501602967872085491154541459284145249540798941138842936097325598423574896194014258814187377093321991970647418561596987757511799285472147919380220120249172467356591475042727265735446974626166897336884555624910923188658141796817453498660153297127150663849403532045362890405411384738708908320787651139685197732354466110078410300965134989797758976056287810017547891436524863590564271574519786108909205194196105731310783480325678836016794669848393860981043081698428060701896697694046895435816397665468395007804433131826982543512915509632315046903299374323658315844484121240535293354596086470623256568150458329242689876084457232395392898151689154971489562504294090178073098195489144288935561669418367491382890868041812020714226857254780335787788974254224558121025769642196118276097825854140831678329752877761679765172245853059825676753175862011877246871405538522518713183119526784585944390689803540566814517020907111266959651381345824128421061294456746479390524898040354819381362669212726152950258327172097297955020420343864954884912712789954087101533364794007650588230193087804856226096077944089014521766919555151692880578806645208616358521356967372838647737578046699807014943779936679542149660033089467365889900843548075767008326636125489106202684498714274901873736374738048634459574816949396021408220386878436349514787095211135579393763016129469852697770718271041182802953099860210394274551683742526479660001457863460386254267008930032288360433350529759280829797720809019242946199699421099972160812255053040193868589953761713399483466834149671481153392052955244207260404227505475154971340135882542657884458943814020738856167295537620702123065035274908655492704355265301796413499303577251286342037589583530493888206943539706509652565841532666515276256768898322882313182560369967637263894162985782325732993105426158149344156678235605309927121496115663489221599691543263345438835485137514362848125019491431119949528209253621154396792716471760815094912058814552107048065029841528792024034593758867871991619600608777584762624635117246723032985860710535486750914263714933960002054046257007853871198864783542703447344659658763675528204617411073354823543034904056614193489140227948864069693082760808307260105664972610352414297024606536831219101174468877962130921694099754548459758689049036847231830348007045619181119552229195439211693503805781059824930506833385741612126738135970019864753953485450817923439351958373950907813362729979014426540048099105736904112708788865559620770836975577141922951927583219694308495564928858632908065232205232779890897861328072476448879212336090025199185929596215453561004804062050879550715053809842823940279910035761219227869307706391040945690337887894307613902833632152636037403067568799874245684523404485304354644588470847395445450241820609511805871880319808528400492536350131557108694646832031525251100667576102439312084112287918108262229024190763265625274576182452039477094692788070574403986036785029678207875622298536023581235256746807508904525918476576178003297152489806534981608447247339450352678206153928950938043613981400805920686452785015297319642528790488242395090125097611056753515842321870616415817658444957346503499054480152851589337423543465630546603918548971918768176009454124595727067293854283853765109761512062609947120130330484268826384556611941723197401753577941563576029453299902020183057450392689775604181289319636823808636530638249156271392041641764502516129701523378311700795573213715626243188836636789903784912211988476296065281759993345081471533709423266253106864977145116857760013767976007311014825087493082112123278350798666217948928582517433988740666265304291857725019265620844611966165077410594117877716332630604654330460727546335209697731441587574531736886268469531558666138291454956946683290531816772644886981702684094037659099007073304182914138969630669005279628859709755850873872535845907263940435904270528516098153360744702193097623329036813849964501035150964288390933719878361769528673280761862728489235636490619254407005851881523381922177386451414592882306234577020632044566776905546814397766743505508087407133033053682737013627278641859562022673784328192438287665166106007668338402615540540414911593193735309062447428339167707215024427952626677217573192254486494353482750665560312052164854137470744401917120520109371707614795130379467584916965983035956070755139191928868538990042324253058733294528067662336870793180267906186439707933195685046480225440037817447974939948172720762793435443467735896031222948218679953849219539131445256313777000174424650708871326185887604890853114655935592806092270134207170947175317123759718259389631807529571604345184388251909664445504156302626798319169559648541066751434598158402315889402257110502237371684405945578287681994902094474959163940930786051178365165485492539584866294778924308954250918027328165712086517391255478049545339252671404562975940120991050598124581331555037419279100702836214412650692909342055928184960171937787729691367812302331197272657557843549708576502513630104022229383159208897928788891524307235100166884082376139426245901120740299923673673499674984655003052601810216797785069625940832514404006794793636223337908065922832855616759509143203356829928170800322149548511813108237296033735429120803534892030075281791545820357616739088306910414426140862166024425978775292558895251230650439398119340761483060346800576503909184458727898143996665689833285807089392277546349191833739065238905539981408301500916109179262466299435260825672080421094017693893201700373373214366643401795779340014987504812989107588642254241189579628922919203784574200741386473968154709701908509509162230845157630231124438183285735602454404496563505274832226983579083037574959760625239189670247558957284448481515219705279913154320985642681846497305739674026050515309626760572866103342011034417910812344593090379398168217616429324007050587730411774337318501919549871723342082166221470585718368141085471864784169032739746200305753266347671734778185339781453094307308529816500916393922826826960986719175187253641798628410701789358835562588481077715783069953628636429873685702323501120354105506387776780413397496025493033207607385626612918678899298796550579971570672837296919360447033145696936116760548349556252826033841065441730483821904135171477497288331157748802728735112425009942737721588201088244070214157483219681481818812158697773578910428661563475946784540344010257474466361045700006553706453791870436157593204874636049787213835374002435467893337337297951074810864055167726101121279622376543864788941608326131456953067651793991652276922724905573046238497394375000454470395196229462303889647542030639169077198752111388616713586678636785459786703162182071119033135835018507410586960751485571535733290953890540865390720561507611069043533380410638707079035979719067682703836840349946341389584498376348817662828938024920709807113625649654848735552356937006936801465730848642510063138985189882529007851069838364119808212228922523108164803591282223926799103240978805028001996770235771450673024447124047918275241347119701126319802868740162373164087762904671098089276830304119961074398023544129832629105092810044371699238747244254106746440670679949552612593698573676033855359439052451948180244132572317974908582279496756605227831913160447575822569392943774209909356939114086388085926211449337746347137230198652193885894894572256312932901784264570454389032142822303538210317079381749317436839263818819018091474452255137743379293365137593837074832595613622880917037335240855000225240486247956431101575650028943970012275475002366745815508476057786758080747211815648914873082715939980912834446872691236932764048945368454033379131922890958541046965558425475498945537035451293022899617985051728789954308655669802156776544223397418371689066863636422961198511012183930304141478643080243965901454477740639555814404396951483555667969728621701144189672630900882755262175628002094047182041402858266073514017317292447018300151618420062749258264272809838376998909668435973781183565764535275861730057498646147986585855543344494520989137762712290267353656932600373383329892176683549798427380494303928940009122225115805871296228703494638510535198512436799900262827629405721994267364752841926832214853891315550637743291435887600712267941815842585649185834553925201411523702779758228436619264375729865801272369038639374506110335785094840108589115984527292796180534767519167395975696275390200886771034977197239192147213153859054165612267642420961226945434098224178642860730858575038310646177509457401961718730013611601950389904648964980175776712053021843003433783629806795234090024046545715343760859305854174264084681301527355165046672825661881893849906327904815500846727367079938688764885046482503132785779072611043202074948852111819574166167622282557648060602719713431670421442362693542024355355295324124308831680469197164688384137535587401396488816808012798892541740223071851148567239294552835777251538122877688764836234034558904822064520129538705087140011318289594548005829884937904664475038368686487368781332691066761608450754992598686072950412642611773828356354713399165198444963510709268084850303527071826951889113675926114810079874376373832882240845732169950626479548875371947121128173486186186957715414758912545602402427275198964324340493603480323065394320585483318121373827234412816246124084165972865477046322743809811748431546896520156856795578402696729500936931671672992976877676251459349207516256026759692840253023783246216829900712969242682022271991522980810014247896460836207584130762623124433007806607390195992673114426179486552661389584010567390466856436599034877162701380544770559699236202741533782991513984998636074574521358012810567797618305397732120281791599755715914576253749874053332907946962140802043709803329982509497326957931213372630384050949484831279453330570053484425138058052118822632792218767360561334574430577338292656655706072098778883655883403320591111568591531425273481410850817313640122019274835559339595267959470932876541862858880085076810290030801425202882002575806410501776824486649045461330918045780096457893956583485549302742946803171881940497718850232322240383610326876936350616363559910292299755096476610781791567534325853238289057959145728190383160145735643018843749944285796352151100676711824013873226595790044572395053612087166963619447308657982661606612199636018614090274833388864840181344580643626436816557618181780405541060114819950653177840759164668669489027885826380254103401666239957553014051881004515370130942946209625721627046999623380363947809620667089892619641116753654925986748092547850226547571021217785668758491102396862741638184864054805548689715792206117177638645623006731705379713452429241699462101599670289822949159623557943196145486489902628069541390732251894408299938304147912092845525845045946575376293252118854695774155589437133348931513535024567718114673072888299733575930122387132402655031950227344679014833748127567802315089565204271551356873546805796975552758727703722790436644206164889936416223342397311864107500201254739344826204995003964137138001436731442412911388449884508844631253351674863818498037715201291142378640683385289639160030572083118009366612126316372430085472224040740233846006270499063305611136557326577663365880150982425615035254582434313012784939250446263586861885914491480095702327550281192030226160494429573133888711606587769597042204968831665832455795518197720262891884041537543334263169707835832855014686372528696276193045417574749408073089815455218425010067804415762889488845568532372469744666968858524311416797530584913298924471678527279364001781443743159396586156572570416831405789525593331913209596897470240515345407592121233920174847099411511043648803826887260765319902250714593712872933192994899250051695467038072395086148291277094556104011111426010322600806236997020381200681410853504555934409591893025749365173216507519980399773842940245290778843203758513044823308349242486595879289046108147006739658181128788033258252789465978145715268296313318342958052172690215278157639212958219533230236619692084077227379652691523805070634305663755944476572476980873096831817209424202660175380549732468649576950419991902119391903657602690444925444526120082474751270182278793046804570841393013844038852659890053558540393813805314362432603418862862714100287192803728168128373058376464634475964690217852558433088957471568001939442431014670127325003724412911268601593280475727337609377116862813345068032204752087070470242287992157001582542225321810569129092930762784449400341349506597159427234703302564223784701583365492722638466320503429812170441727564262137378487717842717013041678423293492071963502120815498943221804848369589373752505045604782172684706294560914394289394293355194867935600557656869401926773961224788034213868587079351288136855634658733715295986351530273551599454237467114084247149820009079133825798727028280515009715847963800001858652301484708935226603428610799072298658990551521756097930691662924326398375107014051589031220510263866614150887164942550461804913461863260348069169986798042966788239867211887154301635742257365385585110292712845679649028722906124626497916398975730251274357484990070472924239092581922722622553137182847613187973344461893885054764739249774819396524400188516652520026957609042350784683555005647226458374853487664841094336122282980725896209335573018186133060925927943213845511145868385535682681116327284346916579725509552352535233669249077336661369871641813736386803240135241733718370734371571356118600881949271564147758841944702529502292701160843057351751857441196584663473570720154906905999411753903701738972174995730903247412744431996699343048556127221306943111813487780765446973867630559976502342322024920889298699493073078943398764323536171693971180263255271758458323029844892388204845271227648741425038767330446368843248154878890424004884311130670509531036132336831819505313790104592342788744702855854682528527980227411066525551568681376089093591708723608235621199191980196880854832662726757341352537757676377797356327715029288941669181658253806601325144255119506061533608523183174104268915701407166784981774143019969074939707644010296527673242942335048182130973284437476477794873167885601215067771869494780530413523599130230355362224501948263638694012421124597424963201791139208960860583903371435132685350299599901232254755641583390818550391957153276049164963865836744732157428869050425695914737589972682932092032897979956198076849617950717581095704149601715306751057627297057798437245676529769916147702714507058910972882508474119521723276394370415160191982892177048345047015547264969059952841971279154397186048249842000811459736799658851872268173875656702233935257476219141577908975422937185897416562576768819023046720481699012977715205131895232843767168273705142611299800664455412682817913392866768774352184955977956334482303403951371415013694861974496383176049780856403669541431424742047250172949508967240601134974658081963049548797160554000047619019124265545690966480677460391951361944840369588381526348577439953078581194212289283233423108632241209361776426623100654082663272846463198063716611696685568472256920921044931073874249463079675625268212253942160971797107390562818431341354544886408186946028335862232316167784633714977434183621628946308177694269530572409434019990414905588391800362382559310520681135791828401107499933354482356774123810918982782288864512196985731807657129562294260075650522416400450697689436969687881337027701432707943374497485572472888291570035102783701231551489502680444948493535200423524316014122034624263645429401809654478450202409927862781807474017238114286511208306410033753956468635976578200823712819941937408920959245075561658343916155190464415162096880475973523508667494156660732105693414079779476986925736318219379320586394913195247960626937346982330698977101611235502443496931645544207172845612779341734887139675919726269146325211946922161280511634284851434123313874683244503516637012273254642038999123319550253057007435576150499678931898709332701280583325722156377248214981967075340059507432253417588738660140528256169316401757476803619857972401915872322238497218300516879673924067082368151285500171440045077344907551848903093653371724779735578206581371029014168748473137116132590155329484089558597482422460107755148647667700131519984568485519700068237524119230950065372986916963890053506719540989170970616767022626232485342693480497350379766354085600963768050903033985468051652820833906457112917355694987279507914766777474393232964549482522345236377761080426460893379170195724250364330726039100088443810396635798206217893946112601677654205663221315120086259603711762069299753131409976357122997970618597584644526722766245330768990228962414409918004109451068761988754706268265843297136310726060086100498916924327189188423027216056399900498718718532912649102932518147569693078751145055725927220665319285627352697519522603823893752594021119313480314208647506848758254534912640314199514611396388774580030186165665774713722446712508932196329759465408699618888972072852935187925743892742862470753668361893390847491307335014417732134249073806171429616425083304741614715001063660344496777705342411127095416475324422873424787524350530173035062695507303909605371351414107782957344574843942263161883679802794455774257948334442074648571894999370287620194790864078030945772463141363481577690606017246404419694575630152629586172154311419094576387929649623540686751703837123037184935784021580082808859224017879987841344154879207620721151811108457269817595601996951996584303255308660606836107787590526389730023167212125887802837542150139666661152708358779088885060727297822205508375238434962861695558420775429503818173975932432220643594404095417625739598644283118434744229620419461205898706629706732120360896537097735148047037387988021741384474186230404122894878180802064338905420230655366731191075521976264392801060897193148934174252208576527903204777506836533148364755229619151766460296270967574138474599911674065253256492228566792574257906294942087529149422018339152783818627857119372253414700271866449310310618746838453935958251597479935190452474100740114215822763579718199507755616827301472328220829433761562975455019918384193151007392596599904955698677250819294177998732204655688598637726598523517381063655170796859534564649126744778518352874494499310363884752407987906949113732743777213450288021288058474369136512492250883477450007696292742646574370971518117888822952247705029735923972815399480925417802598234980024135427328419381235284618627128916088883238980488159414993959227881841951051187311688508136523051468520922304382883791542049466281399023173325484684877597216562506245397860750242958584669189351636027322974859010415769200056662713107498242026454850870834895618207458352790946617986575483379143329077390354864291846018300183277728356617599344807999326787219678121494061130975640956865680292759081050552232821483414263158199470681913366808890488790752822705745374298900383124904781244049962522101720429165604957437052764633007852689821407795308276558391991971509877798361054502331960398988637840489330153488378675339235489992056829509650214688836843750420272829358818130969147517715409480270846709875385685979863434791008263580679947777229804093461940567720649784697643665989471093081767416358317546509537512298270048058618753060309604873310448885883332385970148219372158434617196262659946371611358085712728288198521655749406375338626534725498751145388758887663735298555647155765060016622973505779403133337575069660051096708016990774412910520436110183088719877193317185629869236533506653557225144505008579883135271182445726251902643561770447355854986451213240786177108352221643633428679024356203858159829402620646356745231756261099788834593100653356333605396147856610045482483356797455560177286842621081218816520257999341617315244589081402929017925957460189550516974890438507499450434851965304165497040099544923664731922744087282090910617163824408663372790717463775331318419301011269682493156497279729327593937503732351703026559129891100032981178559480615975966709921214161004430877965403688262517825587714794209025672913665744669825272313989470508595364053579532635686655719646014236198846467348727770812992875793049292327698371101701588735642917349039147764535521377640138548109046577713426474395032990525639905327800567051380511379265880268398100620475630346235479177953088575319231146887241766043458675163764848281017261038688821662848744459524992607323123067417997151638961539694808334389637825470916023677842925516728668032508072826774603150532917311684763549337291253316400635338568236145768570361936159798577663777979744689226272872358690613800637928872630171364985497212316073458911402701391373044835172911217138804637575957351315887845631952401624197659742814438483814488831883512866236175165643607630596982767732406622101611070685288325200463044643610854167141412564493019793586144568861636797420939080038513815126155484310552600477289068746132375603284806016976374885323318639395573009377320310192660017009447058483792082429061942664532777245814345266965758686300236184730372898269117153963704070622302438664767917410025974180393479506339810293279754815990639498142205668292404196696649713894514017709142782762571404536958449813263402448190828362724854448827538724947689658976704667830286617103975308245062992003924949299978191620150220278867132282251609694484687051594999827452301440853711418966472811200747452179171319903348872591668371000814428640811091452863819155812997190224002818733655377887369227797762915700833327294761619048969482868950282794619564455231771529917398880041457830271537037204792870396299530497265361651657735586961736041870590380711062146327703442390633148819341206674099983920300856455684841695374920856760745592966502975655800416676858902488921046242889840302648262976013439979352817762404954825745906661434913392537337588663931728176063097298387402211230600437363771029644186285028006390214318252509087090465612629226846211327061534657433226164693967488533156310885682731803211108754363490855268428305988464413077063358790812090215397844029034680237294151182798936706998012262080089587408294694808532630478358690377719361544475212880460299954136190469310027574679764276537673490788672424498878067777435215566358583385277769063605059306426258580834014676783991309712637045026479012093774428844253031207712092118817473521373958929661762740218870429509696013260083502919691579769395996274937408669218456478750280198194738368158605623841383796479095139849043180866987366288906481253765824590745425826746462451249086952462913427750578062362645072140671019828034246696890469582102873803243320615618937103295973002374193550209870916064576031941469343450846968055314842152799944795347561008156996203075082869032325967523139945548279298372912391221696471098482434536806892399474332377241222063465506705861539119601197805636012262689778379325476163170097957240817858204641439699567833218163326226126378994487308212582326607822611284640492374589875927978512311727810444575395554246041875785916450430577598256762285831136410189284322271857701890448264810921068938347094872926526925202174686938753171313636502443896293356876321843212790050645136887296785882979581126420803172817003077081540990761391964953706669405005135671340654021602141033815567376287900656384784361116250731524880983192604222537137083498188672514320573646571559158739226250007892940972897152375920715251765260283688423231497093899232017970965241330935814816222373837071360004431957551392536795833829784673220115658280952076507145810751091285458324966546302463391487410869108270059804107767119360310283764500693406657924635426403669772168597859135394289807526659339587652140133541684658831044134126179548402708228461313844098372660611173150131191775275834355071389353096520779901347819219609572539455723884089681849011316631520920989941208942804184682974516574377299617697840982165482943715343182252394689343398340820868232633386723848463924209082422563799831526264773615875365263091879747686575037447939629684526044588782247048720008129849005296148676572886540785948581035629415309627087029216010501354095271710933743522833680707800537229462484334118260523631008282599988817729669106517928055188882600025066915779097707175684240811616102195044343722033498362278330206335413990699449666823149369451956813776508566143900311117944261818775774652983240496833971913651858538925433667521602468214923895964527830755967013795400212861293368621207017906731438963195694335959433194987122786731637004493185665490505013391461697946978219538548671864393913061024036987495209879972504756698100250290107975214567628322333011029483520506325586079785303037413374637341308582014844333673145106142577113504843582323984675488505477016657688219609434330799467516843323414285002852537348937608307456583753171444875816593021920155934516588342192054906101385659679161481832617944270431279209536904287585280628437917342300850289260041668163743587265687160207851940446672854324962002381161348513753395581156642876987899169299190885555252081171940576442504323582401983265449458481860367952829961596222341003697047523831503407961051447815372395906713257080431623885725261592179167467281169002603114400940473371295452565265653879924031262094598857282223788551202764992817583001956173689244032167635777549841265164665654985566834975885600025663563293879760283513070977509713028415556637442978136224844156968908773343601568166592897485826093350864630664945816565368077681259229913653085294485904467162776054058793364398581508320493001862180572708032019466488256717883746718765285394585435422952680815227189684971338507198942340509751631349552643570279936914050430776194427163980486936600214405242879777979404826054376301902668118753460858610110791882001676413270282409153905638917011356206409364208206538153619773106906859132144912964181316582376968495578618100252763289637767194264307377239631054077540926775476441760648137704609174773515588531579101823444321443347228198975922706072631977006314272205354823651401771340185140124385173642352927488126059761290802786798190823447154701639897058971109778926705811755967576019730580244284618569349108827888397870028979086933788592449314742860862482183400547152962239831772196797536788721917819030826041326732147161836425465318016929209512132259406026016196816010595427922048371393589087225158081770024336477096151682457352151310864097208884981751030999862724149938244482549893097182896459764673455691537933399606330801153144696477478394312120091532676646719586155357516939484013948378413088453899585710203597135540502973258559377692170106176728104034684605033857363075282766682265013778214862852343687826184407564566972352868726428638122606304059756531612297496849258616798991443404329917473886774018385965082137742466642651450137438992294239904678132793829943764146468377913338303412091720271036361766410949988074009590545421835762320205623644730069316344367270208824976160782630059885312376167834347974904561518796492600020255934068227625446847642481515334636905985030039765261647468651892093326939127091511078356737076352657034472427306200459882266727625288787397978411218774929495785830972473864539939116756898512942519635206970510228011871523420818657589869722546516054603561318237589460859791720485296395048712410088744077330790359743095954822461695721813074798388020625452338829424583689359776121886396731309476505391825390130541649135318818778124664396840473036651773552075527491949402635213554974926495167610291438243197884825519508130919149819646810759412152880463022683171334284678354179216650451573975032816886995156609668504712899799325718809674821950690427868959065393139898498805684680512360782868802397047733579479517669088676391027293718766235714523054161510934073720979671664652716546424889715960035643000394524579326908353897718132402026311878304911091370437159346030391243769753824611381751015846562609777428457104641072600860069001674158724537498577530281563501353214527420381614720163276181943167551135302919751292367764731601220068484257134143125349593076968362650123178796894558478729059150036580519348802584396751342858561717736518716776853895842554014477396996044536796715390068749203571040576213960934050783289619310103703815238462094308056275677776270170495076174533264593993132322126570103025844555311632680573309817777809696515922284939796136846736145236813441512570790907523855243348426658229886929837066361492466314317862309637911359873415552622477858757210747460677795942510228732770987672865718268623748387476435441201801853925770765661296439479889141100159373396371234580568246197441744644108626123364597557355679433552993798922929941318214594569814658072012133644228586597042743145478125207700952261943492400313754492413091986917102432298314753011002465857141754293094160208238814977319521061731629052672744878499192700464487044841811496125663486445700240769091208945181582228154917346762897927331390823148797470281552788850835825520274773568058061333250835147005871718824896524347163230998826518722680605515774325975579531679694586501572532227493634581261642665738520986775916911560776699870064015562333198075065454391334817365426175368381257226332706699988072222599310310967226324367485469932449163479431040110197044823174935644058029794442562990416580109778044168941422144501765523980913484630121929282585285284201439701900300907108796914560375148566931581701521787948939085255586508844153676622095154033524863675048169019341654051103758804202476596668868273520476371702894899111452977206052781946151664330298578074787939291443513274483661959310937844364653116431334865833510995958529114923532165302995912071480509428312049300873792509606331551779945433139010023844990241706691297633498581908689641114163070551082027565638074283927028458014753090342960422056345934915960334516975241711349604931700207899931999612559368592196130914555617147002872112147314771529969414890841984986960737761474994742998166875760878038562825211550078276050554239112142797007276366561868106126847318451229102582928510106300379748216396462934870001369588399567123642363515229096243999291903821354154969442119636943760440392276194270927020026693759083254007680558232406480633515221874364143403156794894848960269742119623426518678174130099010857322512678593470248513832049864304653200839089511211179749711373314949444589554999970855988885734244512200094211539854379118123511450983519976455651855724343619848371970500699822690779094070170172603809759779206409786306116698728100556606246102130667850735749288463263600355197290200332535381223012606354467764120869968139562828067046657804710813151421660110731472757385447297559044866718146997988223916044587565693729042479886460208671513332118985691110768169668976205927211072676284642984826049511926929185143954321000849751222389930756895761197566171287642791073810855257190814582614996609391678416618171415285308969535713602994556840002429258776340557625535456415509076219178182659216263216493983740557338119276604280506714852846092617678117171820393627548162224596037761570284921133857796726295075216320488979755323256767572263987538071815845686423542298887356601064723729897071966182774884265744863590497710488924107072181771613018314603220079645014955037084002860596020802733696272106720263837939215330103464139133724503662544005479823562465110106225000402041587293512287428424313238219104083779511838499568526845249406664089365250941405398214409974844115730055421262141828550651156791624370015656794732535157581325264119319672255701046573524160303356558292157972339037926888235712755503578345863093756934152759310869214624227616301638706616854933944012170780242306749173154815152587067872783728208766020841240742268170161766153558894314909201044870525624735712867064484814199739949819589927787786362642172791030339994587476262051821393866810236607409073202475648343528543749551939555641401647962651011791562370094404456867802913739108411765246852494970423446806165463116441518285778743004773774841774066164096730222166523106229286598978653298169485132387639232872718549029602779951770362219158532433962314739396787804865813953802526357427560493152702085291958084995372459981598630103006010366984427883714196426883103095548271382644864498101520521546795562559687317573287528643143706442839007284209838818272589636835267659148322213477825295443678202812692057333327820026116916590604231182838543369980615260729661839142018517287585123465336361447052107217990599245672442477632531857634141067999330877181581342525039958480765949522053692742562925569309758418660265545330239181049806644669134810181102362306382169710003636126782957727424952826101319062982066599987530726810073618641445283309373402754514332128092458470094155326218195531568148164727375352070683199926686040892957460398095894893589099894051958884612783199897716821350307843595455872914205890987833273290127699663487661982561226696013583999115959561343680811533938401979374553073122718452115650649381139717825575650946364551085625618587260914530617310137346720764994901007152809444708143320109375642970003110429141335748577103156068335613420111749499021489176679010498566749721089971793720710046440057913320288301490156708747506464818265417387784158906143704252745207619427762240342903579193237581943316181186251926940195548063178296054561654763171958313518748278116419973030580122047947628383038558951709878266741296670830182815531204187430602267114530040009546267442860736423043904316831837192877051420852503241716931778197718784396947075961479032678888630383271353091742230684267758412144779388689262245595810831872352745959871396523200479402696783534005643528805004610194755196415297604957162746401842273533938109925841279314005732094787438953174147879291893161587060189112145206475841398077968432592703244959301879103922830146620188113436976208007599903187348958470734791822415280415189361734720749704961108095987230104492211080189788265968931192849245855669082705026521498550059354797814363889309411837237056061572450995464373984185866420191195269717377689572048707028249860002868755872569921448295313606090166560038111652675554685502410848351595289090203506957188728150743838937538961919616253032952757757940026849931090626983105493239472361550021450056733872430665336265692306299962683262618762352922048193947646226912384263463710584615744948580630590240497273351448579881930094386629433766464938505505946281009280080583925381710236497897697007289557366737182883271397255521956210752604209327181573126388171902418881402389618024309768514342956694483010457476496780245712136950681451794692206251263514230856299348652389193274627687162436926645865646662164978606870926764191795741610459816658104062553902049213275954086094081865902029377658949723125313928700557215228087220598649595033227443569047947020394834696470250075397537782217817548336443450678335993985659004064391559241103547961432698043224832945831738286051833647510940771711063190926167041643799075524216848417697786331791584346552355787245489535633539181321512605821265544365374153855863560702545093493008311541138773602923659343417049657119687405633308143401859745584092245795499085812123534306825998016371446666869849773770579469170383349386436817287027429229123853463684791997580422618098442206508235653379704146272378975526455574512452760988637633495413154348780520990060402120905410977794277191880266597752211849940705871282204370859589691361773370493772105872437418342035716210103144085947203857923882593478734698407420890735391693223781066978760555674477550899631617298774311441145188284701057693828538519266271739509840295293775384472450849285483781039912986976776700854493590514913763848591456605919135675734846132052447690295565015945386399850943652048254150533321970732788317507366502074593006377130250801044035496475791404500355534436176199637399026741060112025177685749172135555405716405118190176925553088600189897169926542837938818574125656807082263172440621279473524854537051928219532761631780575746347750987377569274908335986678466780407491067353874757858524204454777585858415850805762946888725545156752303235820647870143835328652611667643623967047197172740669995768224306455277546499158372019659661421899325155885191031228233536849638668761295374444525915628126584918984354080016297882846483817232906585467918894977839031237539303291482274715429742847972000751170996118903569650558800610852869843477708750956206215746115243959886337068072366501829024926074120875318165925280904491048553110630048719401501636382160037273604923413210398437181380364192648792683903479649262908323824444024624929553450906117025657494369810683923467361852182409205930945621423981482808929177751693208655402956551041841644525087515372939195437746564844427954556021025474821088521477397608376761288518196485241992959052455962856680113430656788666281113742600647502184516889312372817824135736013592549370756915838241116800878819573527962608350682442903794937108639821245715064702032156993239923905613932150983698357445861243313500802893397758530798887619682438622805899565528077843610892358747997813221801584933391979388213725554590981420373030224390042296499715027725065974498105524992992301998992254007162878345102511135218603922144453378513039155523132050919518234809848567356243647343864538836942104258666092628888792444718299388757386399844264595353951676943375288184586319123064076087446134681818020302754049333363351348375539435445109322526342610157064319990537843194328642785370897610459265703336656225205325372295127716923337765432108278625526245506111507365248711136061720718155701673167847174928420342120906907397975547123672978540730806356889372487748170484458192925385286915781694884298971918235921339664237685445727377873284291035010772729906782236816007977352095049632737658924966971663692850549196823719517390633837655996317831672896464050265579549527312238754294556435228270917115221278061243764306108752287325719140898988973709059289470416455707375632908085773511901211165598565184304629276332946282900436483613999872390786699394286909906398240716234593419891915861983114701320560684395014226269900820449570172487413885848985690345982563033025108792257126254600923526958983778272281802666150326388756531440979612144160093158197616977198798384922441397234121272958038967305457680555498631445278159556924692480200901214521432055575540726892093953870973305339995158739850510883522784565880450370826725843114336418709246076978016254015838337104200515760439287766731122693032737231858883405812054968510896048574723711664820075502143610278521995675276492497557894363497135845310306085856932629140507104940177796591708114468745039061351909259949577643446168417408417248227219558480766491818231618598721399073226362452130580967628848447200919342446991638663655310110139442281080629240845440112294991907820387786685257123655036903164379323620412427993738460212358851076178530733731944993361703892609355685059177354568859824222697471862713784617492874043693894521605720607438853865284146946563389149044222872216546327269970539141236752917702710329851472304811443659919697005524665742456480022484504549742847656438616177212433075098536591592457555128217610844696981626726097416000072823531400557305333600957109682637421353689029093723706959049367140461510165606131459965022890361888194082282023021927721590954619139033267436912940378347358708890742023558273070097830875866961366392285480225490932006659699459661883751073566832514319581655695858804365915894899262619239628220049575366522073798038280837630152945284944820467884261806144999403350887506606243570839256654394112895337174077860253796406390770939261109418775024092782346907041860802830322116212559233845846478596939828334475384531382177698481374923806549604975561173285729270218110708292088735425651484244108021426778418207832988871820652337895953458501878961234117587194987432114579265657432143225087754600320600556878784044765297622817291712552487664486333399816073518781532086462743011048193146509289884848383440126065603044566923595748038603867730676009613258202343484529523784340751192577554516894926162702690337678740017632539974866615589786952389035321270896758531329433149253374988019061283651496719516226214615082148610254904878264448856200978451696481705344142453745662133333315425438211764949929412784008159340907896657548886785265905012733899533545598104324388352082848798250508245772530119206200330042135665804389799395237357602727904050997135513315817907980307590309699471999153435454717456375604197227694604359962578651071538574413021179244119444303644689447187473790793177759664595798247696813500816516834187159787369633638504103646310895587805246508126953578192384211220567351482939412870230504023043137425386864649630260073641765221060659145254314672787080110340604859117461507749725988281016944642600918737620309548508790479743133647506057268690183392463882400321997328179619509303680998299739012832461301548923885170555358489651776404250024848343710361229353870940501123973787269805512469905574281104366630340080600789854413238173951381896220551056924184015712314144884094307084601198189371107957766792896235846807712834389551811105157587779719685103904892600567734610542032966138058644155906630054221311124698548889847533019145486461690242536586050288644683051005338159745286379301679348939304027722500405094183806752981214936465161662683544032673083579074084404176252859486619683117525373582264884881531767496852131616860580939123692126962221130593799451407236897665562300742870090634186526602886934462054058877306742170829342827935486117410681130001371754607504598638496923324096610829996400343662981487487809888674856800184022904575131888544850930778107500779917624811289523197992276008882903505741878141810336486189018873814440905774804656391125653859094162947245322392019396892803368773176322961202071249019759784010234079064040609230633418524397635824686196913754413715607183288397415556240084811703130848087942164692971886771608417294601417166437593519721875436537551768185031773565250501700256388687253565273585607974119042883479949579516715971354582618654119490624503614289321945199800299530409508942669004899410034178480842824618689891880325892555159522807884757278544270164938330479934523165665155084124762484230367186313359492426262170677860929233205920313281526091883603686200097660885485599893301529719182577708747920344810742361997922753246549627914189565179496003869264083199048727117916785309734420029834904647282750446553300724877173995222837712547905112799407135026389225125408989410525722155036558867254953147469668652898908685753028743666558567301133266646871358020811935167062422671020451134171262166719752263061415436322470263992039096420680065507558681714807312091131617461895587981608055580511911945125225996955187475680895419268368261912880282362298058632651181714709557604009424093036374397444278456934721119542088242226212659355147252209189103542254337489301397596176151236682092248972017364180305384227052924661496492438725310670374129562131525797099826168489029112925091736770155155829867398937139539622599174601470515788306994260193316156398984083816939941993172651943762359646117830591251588517641540161664162921271841333845201990255603350563003314603065467076031712696928750981799737669955447522745202079822215204857670664424756312828883302321665194219345641747295587786724444031427126192733746226218358469793109937445014920140869410886651324051342031125910676638522061415665363592932227712801224794483000621387687540167242227838039058031836167547292406102765795051384890570683719749682684758272946935361963464942707205072095382506191232620563053921363880439109463702423364073938426452665217289751276287715869033481538029490218770808011379530310661697471687467787697610362967648845753469693158881812953615893653028427314865175787481750424552851368971158459926686479056914132799661056406227245382247980250719606327459747055899772252414139106672787993632296595142693061913881564936015467697082817351817857946492605350839805890343285045079339330639541830067303459287215283409760029389230262384210860678103296965371845720194282400475282446222419419471873885429239525578139700062493278249720828408276543918335565263758334324785943760453514801346063738715635974438578412226113880538488837588874811995470215440289131864362433928889483053963387607463681574701526165767611607427891420943701226069616188928700269288711873817969661300729678755352725579662541741241588640299670636990649979579517702742663905549443797360239501828574891540738395432976840240667468360094184283795967456221368863305895333617040698371787318798550443881639835830707630883729743988849257922776270906236043945536271340697388584625844430902074033852505764339871838392098112334478921957446795756148134280401765625080141751249046732947490214667950582174907519845011883034888778066562172812935159608941337777234095773133522489900971537819543471372579085342242472423797161075721391765493094307176758405943058633326273779998133257089709710924147656866456652422343461898942215830151450848719971636581382250513169025863512620432387161694095596453843836111336296660348402204966848484111465539814898650289393702922929715269798612761613741026364076247533067585658018111904381163314212265092095711647106261235158113369502157276001076779056645870127034067499797870670128367929734227060841676506664146334522623578906371522845882356525405220320304955153671200276146260665551259773164252865713836407681113238311526944618406506727028398637786348547387034422753338624930373461425695903618050743522928948939317203791550793406626818284794690318873761533554601814317604655963146585044245335357529920458240564215384808119812170055139628438001948866361734239374382624549648029090252549693424454189088643473700056232168845484743245886174988039656161462012509018926390320298675813430089570221901029087464321366067787704543027632441255650224847959013575869386916636013191820487076929626336758555683269122929798325705551539221909752827666537870805799449983943626425127537218867290513141840698482566826718129041214980768938236050603879841135942702950181927581398350424853894231390264126855116142656498433588302217524249986262383860814074778699257758737319078107085066980784186260075562716526535388702992695802115541103296283503844671155923821332853494774778220645689896768844426829605164877137374935286796560735422480241547220986830083449080335493915419669444040264165814990415660341789075047774936237519542147576324546013079510675437740315979932370456007920680381729201320400559344536541189113452737868839644441627890875824943757031794255292704533015807228409329324617796737162852055487577169146129033476431055370941060439509024542266865166532444871012470957624262583936165608445129670612280057447762467428762136343607350545207545807858108585558800109164680304488149895208464534837969865006089069003720049230474507657521228988215973055854576579785110794566900544167362924552197117868313580878435048517675374406516645150260359149440550086690312461999798096903202763124550766236163524797682859645315240375211075298284503404597274728253825957574297797272948296134931779076628321296321457370596268816846507488539348837180183548472199358647320425030613075120186869851232267328557368888151928952790824546362576343274122230863297346819692508499816526293668199317824881090966605954023465851443344501331817749219121031547559683772562926535028403189029530224256249689463847601140944985619397205412397886314587548374736997285305447015971455600277917114961654007636729120679285106325347465929069325610140023607252828213839661808100655406073316015827566550688961536839112457870041872380720979306942644396382187422607092503364356157507475761094892805718059373213752933957318851329441995961988844052637061546927667251442286120566649546427236362871424704897698045969235433659468794339476141320232350563405589102157012704493346028145463392672218615045295482521125409436164149969375208350221211760519019574822422037677568951996512388181940351309639363219201418024411045677233597258123796225468102909371744089602326074150770667403008282542605732337942030010749165819029189639106584638253642618517687402222740057395563547282785477859264752860389632698964558152975969854623793385755879936687598669655364728022812103828643531879283570949658867766152277194057221549239539437798104152808461896389814479807417124746605426299656289761951370838869149930389749072441446426250996670028118898178213114007841815543485643134260130444841964713806025034585655688273239096905365155590468528939209814952404778131618178347152484965272927665943765888032126538106598104078555203075100394469194273889707429753487146289613829435120604338548333096447211374802282984019938975308114329908677246157876953603978835702705483651854524536283927657165966963243302515430654911231743766346496158305531367695811868593335631442985104532864616070045883434309433687045105451891387223933686130266485669065548672320061921843227915446198718981406336333781821383735482122862422043237756529008861928419885175198396902421346341280625490819852271347958665779170279991381780851070468827407209127505938245150281923806017010251281713631289791549973337191913249963402116192336655687927754079022718093658174849422116267616790963950847270700056761367231981849240898732224510903381606190204882286438739655458131563712631333768079623196420048971814204744615353943653180995625474603987702062744347184318904596881241847634453325821609643899865817690976590199118473697394181781169270331146731171111919009335633730922945238848896097002942888713271020811417399135879541629708514010676573482712540116650960555023889376819364969282232101812655607436251308573404999364396466054232030534479332364299635911631565694002783536935439177638276125282841711061148032058026419753339401946266089524245269240761198965753855356370174258512099850628679643733545064480724104276258150885995079473024204717757122835664955423935244990720808210215222613424019549181150005069839658359286754213450451219977410378780409477052504115353126249370195788684110946187048224964169485570324820063690479512045306030351682349454402964538222298954720090995444250357104667492044966366646391332377768107645690157030152188412792880330781644237997392420098982880568884227202339095328863286916602134592279479290267402950391324612585003899192167310004473447798284054070408984730506409628163385116077500160604001986175727968455393364851463139933127390621510831814376956788135363146540638280541892869780847733131522365750590781170104166515293135253373915719689792130111866708526264100125303897389775209128313952857719529489433343431549728529533014298024739144180644338958301808025304554529790580192806327961590986691658708759354481992227822024025673418351316224639910041170836254460814570148047641019984325995508711630597909224732255751146493391155984667244852821749908653306704451669085782601491177770477103243620211580608347974000296807117441812394319307210179912158277911474810651696038169223530087190754109648905990308433021117762986170294799190660751931167771811473050187152604811501747470589826099934403408873068044375260547278806211299324258625080449581905083200306481731110885408986541220824646863734880628945979119758003756358907479548145250991523057018264491041904885064294363156246941747085116209444155104506579522001129916621548183185729102120645252509638553937462292744409761086347534306983989778905379342096148022866534993584716194421437082529174187082397793003951994061932268411465259278837210853607973625315750353195285907084650592593907265440065606838888020300837221059295729679590897355739999638182302582871469382055568715508552112238110880779678840666235730637108268478935040320188969722433224929182750197045714796431702468850590836727413487808850187401410235195358271109605097292783603114061010327334840313410526695214552299989033382928029291631240327492196803264611347620449481668256592164152456020674436868045659817275581637023120490373392012929150463918296883379535330469576842148165376858829238135973511981370768593900378832671711018910482387297567118365172460619039344207133185927689143603492025140041830827404279303040884579289066151467727919911958291043739522841153779240231170363777669822790827609159042199382112986156583695680754553737851206951057242662407850019136114361743237489723048461243060976996968157771229709787332824935425770824198299771880244902152599732954810475771529025682236163094328924437946220843878479619292142509325833343553950853241094615093624459369620170006177263423990672732879718802647700158720931626323458356367186911773275815775683430136449901440146472939826255595791614731699161249240212602303851249394845835470467648294789098253989995440597616340268449839697226534430949959880193718837397656598464461612862600453665567930029370023452426880140638336782436758399159544584929949673519541919784554845003449192501486169490772454476097093051710602945587307058051463864182625480423972709224119126194548391095981604869393885854531091411373799342449126759705828247863993596397398231962043968525860592493061106032746834869951710921287571721913094173003600683422779581746744702334668745600232210015948540148933978277494118854163421218205964406478066019643650611884126999159194159248460630031718687227424815164279675712896459982542088309473480734443884321400654769301629771383622629363288202611291174015614840325078147248212132178967876770966012961521128269256059623091634221384403008316328968486695301129634381695105246841655454901353980548344029377667026471687016279587774154076229575353371521246229717944986971969216959920814155906639614938259877077872417311471358338465213529445128684742535089219077766650666126319017190141926964930668079745896609639069343558466189193817847830095023763895054975362729579093343953510265649148849162288058749457861655270213990295974850476483890936664912389534700858057211191029533202717637020227278166352579046508507809963189414252576330775704077155640122008580116843726544254549320283573565412432384188007743556501894475655412182458816302709914309233346568198572598850344109777292557386969958136079937372234774378044136347155790874364784151851832119218267916742632704774170388157974827348462454574262338660370419594633697866961705529562797045311923032050419028546968909885312216928459761595722078124596121133198878262540907341819608566643292117688924170345558399666164624483868408338710294805842955392169981646825731546027198903113939139526412001776789215722661159027348705960051822866810905713612366235950145058257271849573090265259346634101253941316989653515328085609696485403619254391020130364774361686002077092181445058509715430727089346666944611476031281566669611595554586921127832181126040696089556426556325621153217340724684685094277182071377906904423316484985470527061648327081447940400002383413524694116606619159709142723893990835265707722077675430426099810256192910330193986360089894239166898409839645051927852281260407604581919635251878821491639694481843188263585978605269091315511381949751398208575234539241298550729153507406925685164952446925636880114162909581227248350062600654965424836870036284730762561326293866858959013241051463166746701573952787153624368587479484618568969882996811064490114237210496426163449011685056489946497534684874660756566466847959641949000839896713986577993946617738086688892470359243444375106705170674483194231042437576607981558349500947869918364366973656314191146114955591501579205702618399965062130227818785453461850692223387313988025825351980175229503393721181917763910445819644885442742255393705864341287586594913019657010603875665057678770747576194909151285189047169271300358980904428409916655087690563739195947937267911222926112754095148424607482322552282406713571752110884916583231510614383875003896804695958846963222449587569722514439602689783178275579396687517108934398536989612635152391121568580073337817641451903801872149205082870552455637250340829313067679414627851572988495473840029199230494582107237461424076164870071493527625140199303061685954095607883443360436474195585163645641680029730716105542319231977375009805728110829867961637252379558569132079287969394814587877610571657815570225059673108328245365854100579120917850147838416972970659888134428905429022985251864278034095824100578125672064841933484405270207533631988574482670928460004949917148505970614239333511976856550120542422253281368693480751196005331997525684151350524894557151944965632626348074377629513751605254252487557359738976951310676619973319312520434613329589624690226596089737868098748786839750575679661420570418903015202961283611905065984038011036078502544692298830554984583066260541129363181404173767236213605066904128384012986697315917280248869796006497126446222393706026652121407237466698318613835336750709312412447863744680079206648119355606797796378188257031539321539803992868257444237616441776923673411470857530055181976412139502810576038538918957523111817168294572388267776273317227391038938290531664261707923292848813614794166540887462012817790229922559428311558439278860907597474787296490886068560914839233160767176534338848869514968737375833202500141840320892873110210878080384623540620458035887440041485824117377531018035293611578361377951091743358077989192164685283556440642922127952140085606240830633978418541645003308545490285216186246857232540221272929423160152952948535897782638671970704142387348306425845567106796746683081642158850578956074540017049426250304232088825010527477916875162541239318242209894777386116296062379189823385652892514836709717680167621255040292758164472570499491005899831092924871457479474598047075397825847075556935566825606066701653412198309353150860897956562248831440253708862250710065812493261916235066781508859390881380758036950282640231564209959278566692128302845893279865517073928736238771077592817029600790281687451371010623545897871492079691944197822103891918107786088704883004677810515491198253276638271322942079799050055856889090817218098785292429821323548914501980749318680658769840430044126769530682219238677014444318373029434251856097834185934236301810720128178101218118659519842977837786812468143832445904560261679824773915784913367513743171182746869424524997947618992209375079013062898997998565359210396731475540761017838628447248419787430316768883001520498649160630096388291955994454851626727917670342383214258662489027890375021170372005616957576186067181479665093181206003292000642692064416854742406115654600243173765895883630476050117329121220898403378702291012836555653531558748068155775625771725651689376491155241124233111460753817902026770288074086527747163578640818765318096496330254888319252398136837815984004448657589432661953705658965139444758998746626860169733468546338939655561792053249823103220464093142361200016788395537213764460827492033150909575919018686106195075852415013728911573780793424504300791179090204533479003296023933437278616162362226397527148423295289012037769791074332989442454193718246684868477861289870541009325181191536790213545972501707267341414779815081911272571550552611541204945224628230419613610987276725250173082443291259115462898928241463573566231748131644394464008703878273116772628917474077501613807923377259863142770032980956270596804779210293476424566932073396136083651208838638102054849454434162461293800423514426098033598631645194857642638242263855479501846043318917035501777991657742784971225072979218696762210663018964225110685234998387772500510845594826879881982233784258209923710083961436608456491371572459392701391550837899367407381194313592739596153179166414355661859566789998546063548332044514349053967439752085546157103367071471685320034186092136245557292150047271800977938150839813089871525831779755919373490854514660030984094838472291963878161444625896718152463366853899205298163784152525089500958247720656119055805225279992408525442551546572013400186108589648524155755008623471328685605623655932434028011363053325528638205944795075993114361715948884688226032791768036950961454094663519179438539975375590836182997508803343727790123578516327252971053275351171448581623156161955186189349073685101431687253199933808534048394711300497465452848716769590223748605697916126649323945122898080630016320209976468043077317035843702432236320679920040687137859231479518563017795259088738613728211476929683160555393377263927502764864013082458964427867604114815033745103732903836067901159453235088141451057852855010390362672384389713695139602493343148526613253229786072958661158895387244191815710489595549459342255787389194359638422543540291154524813082333171189678198578967389503778116372593049150193784615697208973699609188599618642647840060218528177964340658419659483596946402378254836020937915525878543236097025676186229481504548139743034084526789230515327655640532027438503225618450964035477180359331155575612741487091831654879128119810706724492615720158022822306528454959706062676485164730506838609623578273213387287901693137887037822242411933078743185176152247493576926782705624888780806044449372079068674670529761122392752498284092036637151947079845802518419149051803550760240000795581695798605211756284863083675087325545292380365954808779184836957137889914674801074561586038024113789048217850593381809937831041713579778045253461692351135218142149834455757726891210462700432460076415494659301665017066406421835507266934547861384859856134313496875390667242145516807997387260852993536660723043535889791039506582819104355884871508570587989127328259397219368675958589703281508656084163360113795960390289228643594644533366275232199376249104338070697941196095358959741150564408321156825982604655629679600834274607659097258103546995703796099730351169860187484590272789132410575021114969365460203591336594414714411403209345193398850762936425857975368897315281251706933716414131069777312031821092541105823114188847082101305710738239455646558212472743955717623648401476861571583719672612937380686821041333885554358340269244537743705237096073168957096467660918547738074464372516355167055748817586738293874313352743001065310474531328997735570233690465966539654558216713888088983638144398813639462915659913808316382618509283486211704622830171600429225632509838745319094620207912096562359609391634855088210843538216930409098023435316604022820360161059012819523901807500240660120117064970774321495617353339764964029056186950517880371150409436563431826148162262637760089932507604068977227398910710342741981725955365968908586196708876190659960951207949301629638281681971015214994825511039018473183911577381035283031911384808801077310187184031660759518051265431822513086174700832366371130895646790408992090160632332834734013876162065181275877871739801675677735713985172694100907864537136284137772865701584099099605457905364545361733237833518354062388198561198023095757714010974090070908731070091402615578100724365223443889660901405577068841063690407196800709705204595367627406327585482203040799160999047149253861324375304792005448433013147006676826966537754539524078414117011109684881988670139244542228166119852828917819359629283594670907325142788730214084592130951729915831476318657238222747858681887477763292343475598466037331435084951089626511543926765321664772843550641359966462295010440900426772105711856859946231002808728459972707848786675636751865504206390501051819112389404527830744159055517357427351466253422259914278963507057217482112769870390874498768855300621991761914200587740454151389455847220774939830057808499042093269540539328750502386830774378990225559886505490146081609436105762252331687363033154166061046585357582917950132216963930095133171826690696964467177468510192918162366626061169839609822248475289040047626994027236769229829808151300177182309945574055663095855246102540824533730299233694238938099579102329762617436363926313673056727138125155235827767158532961327044453436697237797625424021935776895116427901031809487551082328830265479474530767548453823201324487304171421023830691311347819331797941211544787314278316968025103626076369907535721446826855143899138960265297112474343944205591872170075561300488539116190875079187716321518951009386160391553068549126120546899568287799929305393126519428944666710147779815807348871286885913214603636980231491605271849418853470084012056818723895727054644721311173450731990538907798675096806797330991938570097185988473395778378757526480378786665267686076163623571440004850133038370264118594587085708368065230046207847520527878323733364270031752403745856019055468842018293828458101818013000694384952598969972005894528986508139737460963757471117611951627262401458545328332380496422175909465040427603861014299030505078211389862455390131359805983668980024821328738381600297751278370623911324239586562761890790668509017106571349224374713969551087563963353413460309771017497753495184848393524353926635700758293670938138936263069227501742616191240860527153242256656440734668614253085517005340757339395638708511502106306337283633113280996856272043039688561847350794966703541598845531257128904660197565903362710809400648739627920575876005108638007298342277947169811286256033582883738311739293792127827448199979252786134063830927194973843052016481380094798424174022149865270437856579589637191217229155552077395404781360550566294703806864440741528738374323168784914301994681339214567606199270484471847782487960191516172685146113848235885296267721047749614105851580371164617074184450828914317797080697795116657437575153672055207200098309690300160531625224709769487144808904116319281961370409292248558332679991686738423593256892054960993404334531999105632893645043008407982461878594375782352063690836657096114819339026712310042815945437189891684900142025034710595450478675582943325491779926562829942150272811142225131963686797555169981454069051955155099557710099482613465322564996317967276096661637477727494016059088041947233363272751121132524080759930432508575427635366764304549320335345294253293078129744734668963013404073602530044604447015164560944572019682894667027571716499613343460580261655489958802952661342122995739834165201824419777218427089017427017959812407223965210671183194751923906087723092144884295250544791295838248171796445129113641542381899755725397552350377071829334706490438744582592578705590191224794727235793412479846443124335207054256413289323959186907010343198940366458257077595386232502192855733913305670161083023966969828932305892182780732258947076814642951796600256051593148950961315176391833960534583329957096133688830994466531534973294438756186794738747324028165354403108215828058266849147215540106166782664896035115749616722855216368974446300063597562035808181376596000351378322446481076417177419605805327561448942772952668293349008151822870541230443045935167574068022164316258233928048647295914815057747202453013338136393142174243626280498592413957599197931804276665429466809502292911452104969460514694507067631619948910234184516734585613055759402692607352154565419563149956644201220039035654413083926461207425080559794477324417124519571543635179612029559368577915897145608523667533730707998512364126256398874235887437321672933232186999522603448316805962799011624407417963086593151184110364500413578343432546720002062249342703439649106048558484382879254139552070240613996418349679077530464991980869214003797085467824268142456285541932450414198400001413598029292227148690853728884615784837697043181643055823924255617905168976262811968730086932737354037332114738572177498120899033948091867547301536273486857153399075560302510830379555742353825345552285899410196898297450584210034018695168422788398791845900252772533142568803469060790176034666490593609158935622227532312290702839244424661662513848504593747096370615095930215481288273315024720359016338884585868879782347564419233201325704614564766037896806780264475721653361259238706628578402072002004463639094962070437917253320915961818252584534936516561312867685853891906488936755922665360223970095310510425270701253358322776466212742927514571660262457835198041988054313209263323929800850841165176879097102257953540207624220523116904468042696635123365358237524685767126699957742809942019440313231111952603388301479239121404781775008569022344889984959097344399919979819966501073305880578516810367191342672450955146883573714707816510460717485797633904537760588654577131982631169257627725829082416284042469632457203766323471849596106538589503562814532588931786814043943606951868447277622441195538782148400886977242115692019869578232402952316097470336153452172025180960986021104452406526689830208721774641573087860997140048288885705651739800209240876957940097716890171866098236137126544067235032904988438828498972785263718576580196334655192947987749279920074624150123396832417827779105258392648675230055090152412987956294589869898039984957819109013424122696915139118705108124794204025476510813327061474564096301369349717665084158241803493959590840102691505020788858765098983598693306688749987544969756376395714160177315404322193606403115250660767227000438723698112486110618904628159839209314272971017923252947892553734335436751501030318384186336101470259272822937747071090698994213743654673561629061645275396116025358920760882393443219730855514690422929217884648938593515647373007771110162796294951069423853696261689908574403953480491432219142283924717525957559484481806680371008314593320209825250290469104069439233913484703720340203220437518291821585895087877052949955646355573395337628822897123861166269135783942235395739945137790656019773783972804425218725788709522934396379226367893600348037597630411848670976178050293426910329711225414770050462832053862258800732016591889262131004775334661931945755522522956319606029136301097692383426699586542984934422510210842284900986740491334071528398894647509121327740990930117674163499586219234905961419568102630777926385959165455751386629136310871625780695930878845169602278007344896675455137146907059844414701005677207295398137603511046006362898167112440623885864424585018650363722616660825529885271504293345985574758319094304937674387663494982108028383643068673510843572647278150475301178408204097995549182644925211200322950098612907082605399720716402065974413606745906738240504453097258555225417088540335328607338063922512250211484844256243479700676077030113500086841623110367139690460002290539279866477727419945302001016954262249429872522423309462369942111370397807505144333752157267950077828214577938232247495092567684672083505026156301290603502373737854706719781269435940221825042322155802033265546066869370105632095112608982569230168670868731098019787053206186196873539829572536607443466730738142736221858971351332195133619596370490342258255287579826849121078230522395491596753357272263004532760858618702862223456954459020988119514334193885018322543543271075068771245302443012175176741822987378756361483565886030741802996051626231960134975255862881027877247855880918592340047701365005506875330216117516777273366115036193884103128779516686887167113603428509403017398187282205686320060388368668597726841384466137777638824848812548126211325200662173897308680206054498659994716412589803878798739048073601759277111131686150281570796903726656689217451006664042237956973157394601482874598290174847681396215751752665616519288058033788274925456714200936878950991425238333916252925133179617952364197995987061880689129914558959112480443207336564242124735792178374279443370480938431395609391634907765238625875060238400168028638007298318786764285445456984911408896206423730626787694657674763227989000224836458810843480777383109875995495450795027250565967483835762285773587916190594627902811534687881579775551473067556306098441253885771371605852975023572928215666685814888848179490228677215553953121197865269352651744156519857373088413298181527964973944569716117540834007858774497582908867692256457125542561882234866724567543745812604149386360588049752892692152917398708577405779309653074879073256075926238680426789803278976367003069341928485764225298667642809885394051826844537136616091608831826885949303207389493021357040872062708906945530179381013357077393990406044600033155517909480370972900928671949344367284227994606298386212799911309687104348268667069707438983052580980455455791409339576722268404678046648842222216917982609101748231533470756998594363256620200079523213287075197691688652710773236216842123596297684112222470510648008673685206578723202215765237068512916332293309619344944898787260837209246366144292426225933451701357102165579442367396218955422378601434135248245530990789463269846788560922468669923161919507020314466910526230732587163328551194296035219400365145365685558705027830350556405724516857512456413355127098647661401587573999368754697876226273635288908479091937417872390864503903184716217311351239481693070562639761871735189068946513033506365323394796382676110041361765370715997954853114283741241009122753995834329974847014835241181853783428080313312296457710701986221528867793176828411607251323302920910188562046528263862241305820416850141535032193194728456612613300122497411930153973385799969464036544343284306740116037538282884728516803519246130953569591804302805835186867920588120379893202549053601166476036858307719982682619095734637156539227018016600277364521396045619771169860006987330257448773628046045520541520707350984770531391328924267496191067046536444584679363258073976470567705504515680448429157120752689080880235821524558011312469358299739964660218998089940800656793716575631548969174786706464896658980641980768634219641916483287456490154994647649650439738113376965067014558701324066788912585403721744958180910689388888084120402847103611889746183202130582773948583294895283127676793954096355929295647252403038384527463692766139214249357658011320827565038422054418068377325434464554456658974071314220297351307077670268155011093533866628429545682925248393043086888169259342434939339522505784430262415270539427419542058383619990180933296399140698561157517404994575271448444300950168281169168323100122902864214711682347109942978038930143094028625583013227708556950217033094801793275335714723646766767928944405172565892085460870947419156199525940088108462290430720747410198336596092302574200020966467569827916832316727459406598453401980225488629132465573652430501004239907646718466552706674533601963463612066731773531161466013069850424189285558894130744454716641932463356354415474362567487405985631167517242718559492500086399345943931907625650097406303354878546519086550915438036864190714853118781918568930141130976064524295516838448927693647310023825106890318538451462877628175896744783290237846044969346496955916724786816988028720351770862014986483995846632364326310912483630933741185514200908723901417506038876345309331547321903005008220955652044851236482124598696789103791249364765404009215377454354324191922377030818002036471318594816576472493673690402747156248880973593602925146766783682682725775401781205914343450010784462699528643320405451170578944903043112191906730861065036745499592252388288238341679031698543682871042927128035231996147711072927190606585043493240219178288273104142839684210849520614453455404544361819387861443111184884422794489083704478005350474761038761369206333361200173163344068623373134665685741385951395301094776857241505005057356644863336481888644023975154211132829987838492045588046571057924558528615460056698719593818939132628872893093950555167116475765594906825539165992297139780282900759736363977431495826900185064204761009767096507610465489358048423543461660322886037136565713896617655120241615092026131939135020130138025724796438263370646024050527321374551407502507825498036571458163879053565301182051675288510632159898230869276041982586302741231740773746827501902586874500481950952457976787391497833077167507270337767621822469057450650236880245499902834742095813830662378587327424531289187457280816711612134205609413563398129481656201425092526122604595732467867374476467612060075670049664521554699126641096792995327140207838128897769160220436900343962246195608221777467726413200555089407054199411427485220761592341113067592820098242127909207822657595606121881759711161785152196500614926398399079789710400736655689320688160411506555022641326682997691562351987446806912588310499084309130007441573342049613310104047643198379601866206297462212478890774051561205799695525737606441652616013221682175845792014564378108582960584297351082897180917492219246767183412762817669005177897850163617947419845683340552923165644766393293148712732575852064280827107512458301242882252729833751946298565765173669398748740278180151916135209051346453474313817592565763720681153988124439924095451942869847581002719118163867150330939464305328740329730408537452264939168776977000796931734455145661318662799819803556675952779867487485262227176213142084865859562535457915965797730274676882359646921189907795364229622506498742708760959482387031503839131001599510963734099737994230010381901522168745422107070482418266428677243850011590865802685000492053245161813666952723163129894586791104999948881059393057063847458774422480073077454306546888269156916321557570018043258772745565420832191170024782850978206428454746351756427356078388317797870106017817816655092737280542061487945051825296405250431783367001297804172713930826499015125978041574015783535125448504099277925034937037527314848046415296690778594571258629802141997579172580391781700547051666595607823765900347870970008127391057632657916140808631335740846442761410575825494914873548191128464405918814715885402923142227064382045622878258626991504436195665978002934631615473531266514641897975515632961869993527072078332998055269397697395738450452164369205858474987444525314803248067845610037452782772014012777051088417020670987551260183397679455414337206850549690590395992501596493115515063659827365401139771248309203099091185320563482026345063317433760927691550326540593845210780263587875959276387463006065319039209736550618781123303874897194312837154367798225100405986522455166938669297964475045394768346661975148955929632157063559706701723050700489628087995058955938960868546573193017662021634084977576228619566877870394562518511916478283590840534052461378623902030384497244232799161962451775787035844116372230141783867446176259379298418443197908396196018299706031905628334791317308860669651810523397009283687148250980392944587598051340152594686783219967029315602611541283209306078406530886442085774448057184287132960474691835369780294023465448339060344319669258476484529291112871171801066618956234559517382213102248652238582203285605293719457995174882444085079771817247992139812558242199773792870503967132023077410384833414879653884273669612548160714011347020357085522235275362997234711813247555269190712794527801963389338026237498303908850791364575796427669276091931639377935793912010756584110947739561541076792009397055690587841433227280184629267623396367494122489291927593304770272513323084034783897307897917927553757863778178461118152685089760849943276731112454513860840591333507301837266639596850816241428126897334457194639033473621110260222670751131961975380755227317146164892678293609451641691605364720793433536259724466453134930192885115367775235164902774606143024195913886770549441699462826469409212710580232687918960625294341588104860762329177937820395914548875776304435548376548670431357035529578452156619315022271824313349453493216249014445892171680545213546980158615137672745497501595460041191725442879326728676850367144796018866572458383136956991748271794156191402695717999782026179685324185136291699929331093454771860743337285816146242845613159625539229209653083142311669079360491785166185220388797433179621548263117095778378115037167979135385915107204501309564865358949897470811377055497035978639089826683902636298454099114360111694053066740999395644001082137350993563175007477975043362221642158559395541187920873472552476107137400556003432122228148742630295409199133859311935629390524884654833763289489489079192333716737161341377415062633558280840812972329832672093477805615292657267983824726990057482689508577961545511958385895764259110901566721726830483785321882734992384150389796063145695549845659389322598350765288978997227245993133537769622244980229979357705542482780550458099029640596552331960561696365321189698705679213797707686628287931894151757582991155927054278678078005832597175764101293475932491116387283094737026542169424226323613631156066116752498348835820761131591480962681185706234872787717552445343881629741952582901756583489404538381860531631878930452609409172007462327791710054620903203366535322824816592321460354177808277536369647962916955797948854135371212603293648607077986424774065175672540803594862472141715122428948439078076722727915197859618581732703505777662543049324997306403282952564262627615629482518612674801194953164547817634537552676327305238239921568098267626880053274989238687678505974252899484011764699963269554891800890054482804524344821366085628624362985495271352961371539790384751203863700955867586345635273552121546900644166118668197684979052618560003970018082550526121121662205951070651002276688204646943753126130197893509022619131489136999372455898621830546929172216549727902096129004377812674140830000502616288620088286218866977762402319459778699250358220439852964726248038404655132025998947792409707912285776423826802471487253349505502112841652866284696596116289092957138660323279116322657249455164536847182949992601953508442328099008662768272084813531347564616862512598379345325070100921085616532313426725278650545155629496918096027629108555217270704094904455386367016850372842202349072778393799803039572031056965056934596554222668069119745870857039435945247867299214446898777238161439478485316299150046187697323616747923628849653408641029669126910859804919281243444311263872022712277822597748415146392796914046085952874457655808903509124603924757762845998243891703249679785456122394184833485986696445213535117144495731757206706611698403238129121353491644182195537256551632778495230988996540917640188684391788511508805959274867885279472191586383665789472620822617611131672226963491449816643845098192795245493858924073920994128790050402020128779712434901281816755755268978771131994991853199759357256500058267838260393219981808670892995201057631028545184613076648413312790191816175771008121448889914591874508515941248980709750766881601940389555347315460009012520321799761165617906353597090094343675888006935621316467596091248548911806131773761143713111024573965310498962057613499201966614288444945037206372480631127339658288752466613398576932679120024869818799170283101900012225038136174184482673649563513316727894330365402818930720944116227528842008297553429120526475663948726402187673430994313482944206232491471952155635142224483414655463869693077918974525755953465745300138328171539878537974782655319617280406340874333322731582030256521104791725665940102678940512804532680408348068905458667309320919710083873378344207961753057719346749141827969713388944488330916002438636475877637063183875537177870247198712721852969310888639563518934139523913972546429818089076846337789755452132543814706144585431913285750476228235918819881081605692195378114086538336199702424654509686414106422507597756131125074190211014170852168797411880242323689046220528371576067260898518622916890956207165855122589567650451614591031315235202062097898887648987161460940803744489731851699768489549755086459072045125014256899511523502416936620510756312468344959954504100131221025906569178528994546663295523108304664535945067064721183632506943509503357674940773712261749281883746833808429821842518976641541979209530300988922522056424177662026346044107625235570053294478412565444244369816704644958188143967643204320320354975923352322630024852487080744178695302181608328366729793501578366564243776652327677221715620535249882579480436444037308200490566709425293829964338283357442152342650454607051085307974997647915358589462538780485768810925907478646847253359749955257172799355629115091377395463836659990714541556443230246295253375719895750408102690668916829603542519760747741014957801599272514773261518373973017945310327070035027826787665935381224254730072350112872104457127676531364603872549580011633913092919608878033123310017528762395083169581516859009361514133713660355111492298122741323084554912687013299680717027043447701899205350011100661254684499414342246327896999594501729211274545141817765980583306032139895433234703187061392253166656073523484691920416469258557464587092415706145961246202669354599906311907921347643947448218490263498497850672105940665849497100286748364616766135943978817421952116839276150075133669013481337863736732351856763957023436835275314833691860981398039700042654496964257548250627825860513791043100365037850733281555550074397759981211723943373425638916778121580682196866758516863638542906594834805954617967788617817806103438012879271782369644018380608425479851588000515826532776512623721252277945302645842017648353602837359406743500352008772958109596144328483292927686664018611526667167294430845745873451569718444350352602380359843291202410381778511739136892339385306619378821635378961771968991578948805666340133922173739522274296006474911971953063438996142351117031034821862531728921545663083184925724713128575935034387077153006280193816616747836943126179020586761874570535111397111174548122469643639375439721047614419074142791637218068513541127114911810203197683105443293154809867745720559687029145565459552517156572575758239626172872436438800360702573465968248226627373303336068052436845936744316616426132620082570209633780179456294682990058621326567929171327578587448029386108532552189075487254685175283337912963465589216645226835161530609382272863022829465143274363604088277678307135202167204878973980962410281535807613926907685459272102603716902081362546940073668247732763357579859799555943841055802517294471202838562508756630708546783286720828929400134623272914363214149359647057692114070865532609825027886831469780195915721175591796792315809071190821606770345702989556322948008439277533709948695770371514758199742234677270251322702706300171466201441925204127322428946736452986462511286052160971435679064135518354135417042785028724654098789526748068663794721203750117021328038905285107100763191072393038511880747091078549232581965258397673837307654962037175739036385874227049639707493167562880685624316038851435872113731338513186605562904971851990578071996032358479979587550406934039063121097883267908476275499999182558270027851332491676862304677434965909301642634657660705058405729417726314166564469979505942058566733723399678512284899590431827097995332745176026720954237374141686349862804022004053526637120187353246937854470658737414759474479418309730455995613787394071442198316462912698794641649137076861443012402284338289272671901380294082947152110715810015685482950924816206786803591948237968482792082928139309731874371362719225591010067407057321314822031643560119398685500381619200510631677027649367854781142296185214742790323657260023088355424405755034284067726594597612566264435096212503282109388280631489277793864747606185701922993711766050832213344465590474221655678003848512961942730381543736932475874582760393817157517517046067467627978280044408279206724280805551413807962964451677011235256342787635775241263355118200060695203272113053415674505153345671375277086782757785672617465975614892523608834530488989922334829583065136124517219318797638178958952571294526029338012110320270400983770889422781723170874598408919156124610836739259583357171601378984280623106054021497712845741740667898910668768237437654400165520088894056337021744402809893803575466386983346426677232273937305324886708018988746523283219118856131354642790691931421873766894500872106496861043735026117194459599537916328773218662814566413434369577156938469201453606758971686435068324340206321577456113204610107529475204720677725203699658560935193729176278080713972792024753604705994943886649569040198660420613559080529677330119091924564273954369173285135752614768720357916695795484327277694782266173018010069833706615490901140007825940673162866409687342628388812216102161753959736369754403021226672978627834816701575026615925701505425041708303495262405519647261445932196105392687557064287779261778005853701011682350894053888070182092040729796787302181696236816080745180924030449920967702184097227435931996192063227059284380764057806634590521366119270008337985847399082056451891487231720475251644453982296866444118408784273491881488934601168701256562592964586056510922255930024867482209228456158596217028645519856215913361160991758791586248161340441806368559132817244569561986383512635536565918649053461549532467156585609160992517012535360547615822227008898732627858891812435854367062912284314257807887153475802581324495401029339558563343852487431185823330122781396255400386842467442940183349285653700497132197063664397019034340087510566742150563546504495235642439449450077687664682677990089980075203476828490147378812162217661626437451440429094705671980539017971711488031444555952965366456139748881032773719351478939242946167994781859414537996879292598397706349074613964492393671075874509904351165947936824897852303457807015442564598362305513648711824454592741347294992072803475091131993718390885921201186138852106778733009673335685369283777654854845634302103634393739604939595073027124289029341486309242110309037008297531645517022598991118417949364433404184134160537774802536541957083110594880419137171467261610612169573376079160819173830416158677309489827188556530684057959260891520358019420247105059490199393952615290399023648329958885629509422928295284034843339468566297772647155732029046330635453311794805089620845808517026845998832064267750234982334013998685793165237605661184637844054756591347906693019416961990616634740483550775374687226970317821988216100410119511788799555806395450125810134750663765563228756011240513069542246480316428975397322497120871625960902721751759700939795259194184354082916589856608237133768630069960365660005755795555385132014740907326129541865959379056128919285518741568864062775431812651768395104161236110771514857225827247020036716312053492939155480167956184258659168467877348283706165624096255305369377778074507142072281420799041210241141240335549835603257419719311492022014393758227249374249079792941681821276842735198107535689547799400183816207930408106585160717042771234402260720990854312581185650841557105663053450780062586973884493134161636354373247560694483420656540919660852628550816492158903932875307240565898019726264536982707277413342484867949098182568743796127326829049234621160541314982230880636180288954227973425205681176070203749953548956890707853743174812655700270298772541848370569210959300246868042069972909471743428979206614387222787330131523758468873002163204299259767316825280503608894762567153782541518137082312563814284827616434276909090638896745584707921213786177612593622424774360730099153142125279110656342591504614295521822506446869399195001514215358564633732039513083438570929639019665720271387155668233234903304407102325108993100395017657485142321170775707266954622476230124716077909952781833610988142442431191723728880549049799014998231606275403252144795786212953552933875055502912077731786325258100205420200853418644675635473326581397080946846877192776040225353379346259180208739577408029277471751428038591229545539241964659875393915177599745963958492897607742477712435281929200843449429500504433119010419395619240486106952666534307117117348724228972908153560520289194186967872194451820653302082706652059746767021739837252808250678318930331738986974904133536193002108802210875004647375558114858447178787512410652575875650036780278504264693680587164381251687309591732562816515973901558468633270283553307833944975393972263316762602546681641516804098181703032319334869686926045050050755357683721472408368828246722579819234504291226997739865858856120510079861280057833649206069409821191223289626802112803932831057393542082367654968488316278539727952623515153817586128629413573379523153894045552417783165140615891395197056874007920098522614666588424768966445680703984572779753509258816850814382403756455981389838612792447399556049247367282012249545203548676050861388966475639892926492302388868770336550331011218993591273015861332919135291638176199741122203360843386364895239700278824241160560427369488957025531643485059237499716012977457719600947803637790058212021204637650162475503431828838684792271597590967579352272173663986006771077358211683787894413145945493238398629183738750481783878243580816672028343754924334177188103413499504626249134053312596565808024193027988459689781630896782469647360636999727958323558582617354544417366701076495857868191253884077349814971661144517982178887231062274777491647696128841094477810991546396391549367916193471606112129975191352078009757448641874581818453741375226680558909079627105084429407375411166722872311576347859590426224525910314796019182264022651718306247351110643128475705488724010197969876882137547187704259527218150814869739482063326780489282834286042934860290509248690765414726466692996398352453432323724496778884779167020592791256879634331981826689334302034947539854016129642290384342887407907608424949314902696424592637274680075760994964565770112518572977387461286212050020653216493715563205305479281459505848528554358181996857696505981741215057701013376416642266674456456951170467710576760715201412595110436556284782753246855453170402287667306729196251273223529734420610333796797968188249237453374191092785210656848528258084730059131547187479575656430970070241219443972958168517211272921140639934250491216834642457894214728682766511489505080864960068808752686908686166069738208266353500626611852663560055078993276307525608068878277277974335995080633471525307119999189743406798428383524044660420089872190909891579635144820117961063323638864736676131936360482956808507899901112242582307997190834675375804294154681782843498243268805917676359477378035858064631102886635114782695236498431015737569854033087455275697321833277470822824933725615622331927298324030988389221938925647241280459504374325056080607187697297695139990967891815491601239893913499711136495085781246883972725381088493641102820593935181262766184494265138878289774987026454015781819639303355604314451795912469922569275983431623520592292182538923865567585650889624791340638848447412827490993357649708109705330633982539938784625933787962392826627220989368349974100448184101538780596467658402773673081236604308302979665328594342598638938094307543141029977959336097401469815404251973931620167112378794197787056413080570371358993644235705912637170477245913279807525679207609755837377225943841174615000320926185507555633525550481129158810076825648180364341138893562989051485011527806277803535748718166429610462754265791298649710747635066240211039361441939095112931210911552547905128374079084822921196024894005495000106386632353758661355660282589598820492261373069892256265787121208926747656576436295375481212542799944501050277287237911456653600111699747210567811708706411764407814688642829359065408024076020487302970444681299245493498947060885377299399683628839774329252733096806856008450503219742344508073838753952998241349206107105085670208569245647977767582673767283767564655469032590864529336859777966296241053983689337885307376058452585973713833918887184817647576938810506512455772388708724781521552810488967635157503081195225249536313612741816938657236838996754410047306114866326596183387238791905467922782584604923438276141608125033054757597509824763336975359378162022929172842668815601551989314829162965923182137193748281671369884479676409633742828118356495109326537330105016811506910001249070594357833921654792500288547481864570354097084538038247913748081798237347335589047393870883290855786848681713259735492867748123842631335166305407552349421427726741027958168331721214393837827402503402669499634811792392559313154442667902765673720848275319082863896300270888086596114579845446028823469634780327886444787714373344363361573966297333025543126273801085129067876285574502363945993600759085917065877944573255377986037539137510360050970752184132757231621501335551941400065620657250696390919952774288809365634616882187719583565440993398792016098710914210813799833016781310691930450564951262305300659644640514342917628775851311881751123921020060133576438263695851299076285856519163331053709360755882356068935881209416171651831853394890833334172310478701378255206909941941237277813253647289365087031516514890886931969770075558952403454469049279451707060826007145617239072359013261009563441736863174934169367041188471982654222680258537910800541057352791349778396348764254814306806681026271016237638294153959209522049592661512196098404937483110217820595617237863656274669770922715752244689206109101876499997162072240602661579622456624711054809324749073055757644599113511329625646922406699728844022353754122403016281236387377919108561403237457721672889852163690318150329390090797807009915447576203256024527090633691734082390746560420320753175622858665782213388547959547837616057942315051929576381048392222411993837646710074799597667105120426372351221539174123461852294524353179840887031689459060894201764167273180910252085303593483261032208820713456683419166879754938654142694507119486985696403862298781463552285213335326757706078219513299926773060123594290488633555714174393751625386536300837543319692886113304352568286218610448017746591598234283281396463642498004700258996603216362041811354017730209911791522124350813077615909784682366059255495824855684602675396262071989648503529876086160922482277070519146040240541451006345808602810411259079466104417572375321343787700705658653274389931405539850661759698761987509625726594821350807613310331033727869655225737581907171908571318089119612968252265259254239632488979642444998089286736222632406009401214851850428135412100254661461842801928112336278221915145733714472251141573550932612446369277066703026297379591416645003851687489567161943076461504431302801805304642882635200383544574171585365138076312123250948497868147157130774822359712647523931379676059614722748375043741603396349153673541310192602538161014216650393817524636107362503570285118327357707369778235024746101994469649365653428370145844258400616786013828158635760963308357168947370484729205410676677712326068433375560895211750172805565102927417666342889449018935798825463415632026242693251238537972163973581979755967883151236365996752825794216142512610858837852920973586744098960818674857557815941694548106337548936422223888491875441080953033610076418594893864840076869285626510755685007258561755777760822220563824958806393082607228866324216388286360244143049406080615097670838260547817451751586101676831017758415014376720760418313545718046171056159652240359893040318290274262784867788928994225568371697401823213041493593003860950469350936394793050412041691510198526810413290214409542757252659888336174008671994578732459679618997791863348839666562600283138862935836212579287251022266632811247564590235467286639802533559616836933971866322277856880771998255235445704104963108335647452540602615278686746137911524919594657366997515898771286513494891867755297991449608661828792614544943178147638951155988506968339706558682021424033668354130249625897835627333796792210122241960472102482208016158119883278396862999165185310208049878056277838235163826865395035345336231468198000585298907954296710188376447166758897749507484513943877568186180749258679061089509079237854788902467365965421334754210399811686915464400385542044898860077379878567993543936548004236101928707207847034691154573052809261506220166012828138751494530470852044164052445067052290192099006208952508457795596989573828635353965727624730995753572126657848669122279114192085234781169763364651614466408578524744120501070959387568619120309436977686291057191784776626107692805042594952321357955674977799762734779666607844383035542705160995957201209967839658503918046742241927263353073378658865707511159215794824610810724328127236832479961951695030928973070458805292193269203705786468202512112375844858205765521754057877656857604788687032259972348554591298729869893153336348637535557542906028198897953345007677212108558992079886380122346888312152926563785947030261834020181003288146331237551835018704435114985557972819947910693177517938110984147077802790646854580384012763272281458422291272421073752524459972251368874300708496412310145773023163873314696951207100762012202334335232091456154593341514871158741006825548379978802714262900804151506466506152188764463230438145317672495861761558387132865366827736393249349629617532149952721886355871394328113415139560043585887470275867406097561438345548330492948230385243630540154368821527760760360554754908089420718054200505296245705935982107617464211333319407769121936458972285879415077136835264670153332819443033467217363579168094170891589549062560511194962674161948353899020963448209802766879974710832375633180411200598707617634048464589828994526472245327717502566911394608941253311870459799775178333320193673510776108853371206290701441365838941628738552455297413386085094972039613254696876378692797485761001014468411376138870921606818875480626927876613146994093412644555870593041088362767183197102421177488321778682618581674278245137726120732050369898923637513652506639111954728144366102695569286031907626775824252267057746661684300495824774619082139994246762405882993507710947518327100164030046127777259437881915190028131272778203513363009846278513665733171100514590167394352824766586047355994915304875487471602267218110561603196457923356186355162892853467863096340040596593404808350592049703707241313108074515704563981918348160348141556827688430946212016931134523325030006083492050551757304471960925915487817036183153616039903806648919658202795756288338328370403784876547007236209093334950622908715386227630328785712829420094190795873489144468624223535130038299649237456317831170464871672351641905630110788096449835517581828620179809227361727073607740202882975464016650146233001174584215595067604131662490023474130926432136315639757890010216166508611688824960669202284694483502648999190664274376436736723794399021602128398021309860420377954007750086700609487747989584205686985114541998737523250734390530348086592249903672363357528939191419073252863285205049880865889416814014065573258960127881745463797183685147206202449963352649677520349852242201623972819795583110958096022820894088322322492287998933593401583067295316314775072148419436251964442349520006476024305760504309049036922853279075033643010787771591551748568720176426874171481582919440870861045717500029387069071069861704534972033175547316881053866225537258373229514825774261124855553104568902596465924085172877086518396851444827000017238360714022227014990578027186485849314322076713474791106449323175837268686260914159887350983022489179161379025558414177766163909488852406597660669904422067094362060669218731958403889868249516167907702964000708942496330386054819659382476688486611961276144631540793546595886237704966362639864418787152074369271046238603119798936013861611549977516183027938947036812178224566239794955928452828199898594913227887898999653411793986326090003017198060233975817794202397607642621080953975609100904596909909715761494097578046277551352842947314727201884345985019667934774470621253092658198391011503620674610812487667772210587213959025437656033872140005607849117477961509177553392065656809047964143095655103129477131032483918448698359757687904672473136508014534294884932457989028860239544755355952377078665223091559588520569372173652718901519217072718626061469676354230185630115789289335637749255787877738146558934401607374699582680808918205477260449555374117859394339338238122405020239500636827288063825969274333683607699129395744535413923659690584026300648257554110662368869248421847256876464911124924620087315886674379595759965699154773687426133392342733283444018102690423004148944958696421387405722473231285815190351932655747269891778239108550720613032428317859587765968453243947181734026274525737201904918655268162295294215763445047005365554168983695737887244908681519503546756013111597236094221542383709202065945073866455371674969828902046089115685914204210196385508457921636321357049493902695313187205098578638271362138604554966014209337560381023513382505867317126036291253497113464279868379641667102962004144911557481562201250120649305917438588887231431876256512820602066055452466497514692578192591862937440263949823153138527775621961721285190321949558419119872043208305255770610521182199665836296612108690345509626325141136010121357752314715987527185129884259017366793690732488841499699227570509952550526217169517099332861913669487607868369389223391195443939007567886804938854508747639446862686864422757744617935740385392841458540669456801529897762943751086414617563868683596572444792590104110297230599832006183097722456948390404607515104704961843339232229840578206552640213665470324066758471708496214464214671613311108296637483358091232567174812814276885620321222270829356963075298800742210932621925529124914175319215634785440574906839856221442998173646243294409695436406514953642712539759713538908630144160665578636893037394088118296251318439174760049136749904229118569943885771444869702148156861198490961331051151821868727821577576301253649454553807537764540311184534668488844912968168903881897666338568727165185159858734506097938614191837349395051582314488694899009231872330883698713424263878187768301723467450672331985971984507456286056378123279311691765590075524811135200493036399110340517375123730235778667464547641770434501530820633308807414710172249564576453115908883028734655795449327916685865002713613565801509544601804281896516540118994504132298046874888731274519811407138879073155807014570915604425690334409221710253677990906955428218778512432163903649201664289163424224464376386615969690159016035734039141754957282693620145362887314863643257580212906377041820855768879843893329850336461632109331059341815741382747681452063829937671149837870445015934920263310825594937563801162466147734451160739228267333316332548222122527145991547512640737788299182307280729407520522960911060288311893761999972459910004042468348381945572165620431712327202693239168168013201424463295733080207183787033706182499055914101596808461047565910402203041394828374261832008830618600111486523089631037361035226869589624038261142364206044949742866620769301711761097627398109113947485713933116187507784320168577687058953247127629217179700923853529108579747494095378983550795814484825944824079063649084227978980218100933354462540146392127060894539446974663169243856140739279766660656493769837384248340237390235694272691640002476107164157195816043204150604480016003961387902942303346876418836818760453518702020133456562940274331353111602166260054006655438528130731945409791286480152592778168804551323571913051834247655303382316206492520071943730868643918209301351118020452851746438706690514518479412945471016844584905007648368868891356963261297268284562066676627285606893610750659719320746767243015041970299545613633779642817597635381816490459413764479400619265990282745502214233074740385492107290094263182550412567804492735343003237814229200765255838682250227184858439726120928763990281569669999216832859485987905445471108784565406716880903225790810089839887622674372214601124903488273412397604106343835453871259740093683710852399670501679704562182141545149356111714430559416566074373584939350409342730854959542748239997879046623236334117221300101944119044738302088955098623395195699293240531412412989243597089076717495871060197353239455876309711356538640797871821311978183966226293764752987189588635195548835832649699777073456889466606570990979481548787037344047400288051149298241876546754152072006419499722361711487476178239276929431533271536327543456174310745593305230780322726777997548608312805969772790620632255901191143575893254196911537526397800468999833452953934240513023606556756549980941455383542361799257126518037987160573755522591215963239386767003016751682987705752417526141243345801326745590938516582849723475409370607990948310646710859315110077428985644125151431346580377521109831382911920467418657795006796484600069604402816902092426484861987285399384554210023121744749794156852733429160315057861327277216992711883584506234873686199667843057170948831706054311782330843348739025498759999026794575441240848696568410007522557294579224550939672081708044988516182045080958067975420701270604021648031359026825445592619868309771425444361986420783567205584857356593399126440253290327395673442136585666264774142521144402017853086616538411162148837584492687952160525788549674990211165092240064409749559059728956761722118034573600753695346063522208571592984391268988706903534204774222169170611980417704627558559352246407964795799158062332732330145784431222654885671041303050698824413769603532293694046194951856379975298774534355741941683989299157737583248817798919939104455807526925797664197061302918818583380414833455316865978050509217309252700856538545244074260007964914176432325645966846376788078901222835887663223980391654595353034244368658375964037828708142458286198148598426377658678190791250185423872888865992085830272880296809701989839284151487556269216973087093507303758733277736082376864318355878700559066970721563484080955184031759611787668729596317888600069082489618058122108698049762275047874332575915487607084291951154149402709091531064764414044848286835816843980444325313988273983001774645375646338017075614711173786361971325041646502738223944020161886870516045786188274212773306129931055302543405617433294732125337852817344651388896937305324987251266092143732029396419339563278628228076842021407545022193018555584967449461056949839141779062127361115148957080305649275019999948186971027837024523954367247833621612310659384910180340323143369996825190382583854924196361723274911648614679368515293936011615394138523944976472858348152771045714133737884626094127768853025060016753855418081683977627078366872877320709765244437435037188944623835876374509749034889702631334308077356282620659568529430619263081407488340877389037655243892830785500075152122406536211334313572174762852839690145685003181046968396104032481030611339052661939775465932921632193028813647204548185797499507384566168024104828050890503988281761149395268850375838415213383731696187475405498058227691424112724358878978308849111962026988775589170002672631924150189478128432255567349044556655713566330526211153320739416753277210330971543813250206400088982933012637307582500031940016623098722862893432769899242997743778000827003045647145177682147664765390142190670289653645933616514084502267404668992247132276186123663446527010363174696701383680774016962669383894135161282191669046297566705249595761170590712230893452862689563031273464359972750602013383566346885201173073154766611894884560815709081652907898651173497227978103559762438932981096846728575972856480542969158099812616940614710198165174564232500713185425653995501635849905528787534824341443500391156221472266786267766629815099555311090473320650706560166739283501023380551603208566532924046875773896071526027980226768127686753396056188152781820863703435319502581236625258098589175299127663849270289182327102090216785689920415513123737328671450203913922417913159183228283913005289585191054942018696496419117177342493156782380231269837349193839911394383343741594626130665492221823664444344308358632785393487697258159292919666773223277035163410918543300241475712154678215708992262021807229940848230096437364031140135391367621055674481649503359626346378113163415901131778163462604926900854133022493203329656660629431701516376977505625217863151257404174883276914290133444552180209398045084125380526034906626674117229773735001498942718325547756503667134446503528355151496031943967342454286004472528876590164015375692431353231373615301898214056726502423890721986030944241591426356642307823595472483477132542725063098476221378202370382082588687979772663843970761766787122206253861212083928092173258597286058762060379250712000470145272491369108338018280534691272679353435179917761117285300647974545024055774683080668672871230966527922334120729834349900226581790602200997837642634102912094805880006149035359591910644121493341084996690543234173388758665902932653687118662102487139115314305453690687554692047316153971142053707232351536152719460104177901425650364430795001249896452213561770001101295199554953567565142782807647429176086260566887815110492098943198320695717450968411661162791559776602185961402430428167322589565927325096800481503789446129192267704616507177915747156849371990792120091822332201086295962149631693513190200383385781887313571515809201709604027580540502074788213564446967838042050700979117937015141869177410722729594537009060971054472921923588463373364182540242456767681209683761353381707318636953688274965766327220712197017048729731042488914498410398927358260867697956693749351433748881899331163382757103440750770289687733116331208632162506332003959611363208610163506063084317026408924035627228655940289519670542342761594059044724692898306990867922159943752291612053952940695171181557833678670451288667911040601659233130416725247976178685841432466002665099352505454671392766809781583756841600126068778948822433385934677738305917258575964300417059908590526607949682833498975098458688202212361678612726571350926326541140493589170358564528494906596135564833646048923549332063946527645776631447089957679111570149646024348891928496485976232016287747713336143888825253014337836136993578780369639405046323925058393644945898387114514965322901496196956144080503296464036034512527215388285555543021441554987338180168372320306741828614729142604521972034636205413868982320695819037714157230541959973633381441588341586241882560024362153373148094838874968024872230650747463823376798138887607908931646559128179299938208535524298391629042363761984789909047729938649412866302746464711846557983705470353131391131959728153601518047663213065567094558175003360546095727485489445976510797092984328656705958334011949601894162134246006166361611507731189661203301731371787578848891729770567908391867937685532373585528533037161958439155294239210583728920561718143588476076406340217007519044507272740184212281743963217823137422870039982916252594962326385602851287216446400852646718120008596641893433327966752443669821085196948647775029682199092505630473068614215380029691337566704537210903054058325843536414883205240098423631251715316776675157126317811012348372485862038845668041196424197195265351947605584986972721206046662787927430800310484052664837644997594685890160754287688216998695596855837653869180488449447394341782163122301029277755601631104538244069524154909419963280176143378243325068248605667579457806618524536432299028299268110618438859796675832270744063177656492358781679869995603092690924690488719952438673963662535615504479391365164602724392370914784148812405061636556826645111275908404672853602747815170116858116900287254772678282943824306937968535919836250134828215804679015525544584165971789488175926494451292862758032385970000855487081507656238628337543661176757352132680493894026706224393151108617656616838298382044344006902679338917516981585678905500469482534974265066422979300426371384058062332457692780646960230203376285837689494412530712769937221420027686651336625630739983513558466452050810766811246697136040745964920361405240401916118264981134317530943208321572399772005509645730032347742291229972279556233924907674431331354480514602405646875441269185138767456086324454630941617803831159244952051318994346551542298764407344056665674839390604854881206220369989676038234756637407181245943691930718604134374723201086046131101103096349993918393944420327406995640941715752238312911126619059798340785446254749569968183332680634596223424852407713674702585624351012533363154263212909093058161661254490411503121993096545482621527642769783323215575818594024063969309709464457510749641872885360969634336320489372466887573938841832811147224339140683617647063963139739317132375766225949476823319709385017184697606319424867644123820539097539776444167308704508766379676739683614842937963857894733547084257489091386118201548621811301780262284369930812064123949333446521787087902633509598333271376823315947276871334581547254029608030706375325329990510957724077092930754337527433999109848774498729682411134814571914752060589526112229527245309887169867983834206549938913870295907214299119608453692699506049539521150700930895776519341178502872928215593527525295724999075868277612462974646229606947037358580804020316778372777178287736045760642056845808777808177365520804668926953254855466146875452532789553598340387792909286736119872464105985895223438379795524720966053209146422236846845018638978322562826237188615479582288209664343414416089577202590336182244031848106452718297985120825906004137419029562757988472113623681553003543400506157137082780820573589213633626502624567447401116256910127851195507896476378362632424153195627449046880950924996858242724755694352939429896207122500915558757988817477962643046919705726377870858029267130554878381006449380133151701645569047387511295274509938746933601233020456014739778956586656612110966309447841893131081744058018321124003546832777121279477687609172292515032288856897641865539683052700200562756093052490767425990817592104976105002281828191488985402962038213205824858047307096424749973671807264030846954358977959176219495207153541342374606459093646204987921735343696346906781684975943902592967915340549769910069220986809100439493034089244400030760372201124659354111503495542907464518018105927823263506430708999094025098801909993783359627246565235903540553318223395795627236835570523645496054179511777996142690300552142212497454481023007930037366734495434253311536391258190273299863362237784962992398877643069616990186141019399213703447156998581316572450896093558974590616035497986718620054706173511890409293871279552851299927902012689372990133814173338728328522540156332353502491024016748909331795545953165447501716203003708343098305120208588083300178790252771999080697204850762253838099888927774401154599050030895791311483720872600525200772939857625568166705811789359645435794619161138675101207954076512462312141559012962252041053695229574122969752266603992493610111330081891017581020252982119874128659273721386145341048473752802822084745362154269941846020366608485560640495318767798272081248862177848920477415264293218772006449820651000092758315552671612967152018076916800469093830380649410211519787892900568005886814401631761554464796918566387408081452318480724896302113225716175037845017151307224920224343372571032970615626887169729471990735165230182463838857891071075156816751791925380183969997755894409074673501627041298721258851023814122119201210136381100404521398799244097250707047048402331500754004873225596227756452653264822256567711583625240025870640318266093174726825801237650463280147873376577147473774362264308916081990176079417994788642709153398885186638592074920269246390981039000360622191851663152533723773683742236520737758641013848044190728832475576808580111328952442680375769465152229453273691210054784500444624902428694959952505666432015909562413080697777908654604789915373243170791533140463603945261824050176015054456785514713925765411680840484477334183392827407693163107861384370324395480863092742843591856838992770856552438574311349821474349785204323812813326138773573293932467363432524495941460577032906909100520839360661786098334100586392027051518271458760727916451530175528139727750470675581647773258202420686319987849324011477979990720305552838763758508027614194237386305406381095700605684817475256172302429312350840605734331770880597173005758881634724000489107819140254662327442006203127142577601613363910646391722754400112615474527351451111872719107243752781797025700139550836790727795810918299538949925867586958500550989261391646779646655717090165178679573647582631777846313284248314262589458849837058272411240739699991444138529883722357607956770968608756449200362396541337510194512726883458511769799890676819049522216689578831164239135486925850731683966139190192817727278985893127997225372085408492899205675938112291582013942358091079410608193193378240043458838535452137052324476636799972680198349164264174607505679203951677331989720851591242479745077798100124981122040974262491619463488261332332846110991097176478748917451149974357670982266310509333841080297592031089705607081745908535979538656293218284861344778956488018564198251424211099833859319554947420006139400286267567537665406347180296601957849147777919491785732334390359931655906712491684657757424762135610195853802437317194835872428942046884123701679914834571073806937338582639593756852853171568143869704815107361345787235321497314020743991811139896310355412379781705840531221080755380421509044080460048676522748576836460883072074345750269060366733975111480346260677981172982463271099386903457308541772969316041304059136708163079012213451778999524465985712741459023644140624071516446193245398980187527843764859841408573171995465801018745517852942986684632136941486359220086255297252426596395172699190295575107295338778068772327225917384798383766543653945445159479094310431230293509149067824533376569849696506388336683608592823996759953077712038159690884585800014562802771256433275476590843682907560488146845837254261302549021422299400180025497444364247695677047285774646340395619921721665412405105252696753362104536103567712073295490861110159295835254495207308575586640252304346568121356705032797333028420824781401584896874553061307858875718906643213496315315195027519676332805639624542996509930729839516519124599843688792354773014580121663418807919483286728887305855385864024449961206442179689644154614481207339951084447413419958729404996876764449742463999701779116008912881072203542189543158160249073206797446649216009721303661087209268975345948456474785009167880931433052939165220452125798420200226229945230730532549380530605262804536413797613622376451904947983225950721907183285589042912159922328570848677896873851893136489211189954519782995270315915299577312341244134133803203995946795802927041815608908357753957972198268797762893451448624222598859475518962361968320545345962574133292797988261377795247158981160381417417788104171616625114666047418762298752064074892528562274023249240957012469589266164045140586298692815724081481238646756878487638406407822902032004032516796244185378756885832223049144531572813863242242176245415147595668954480387493432791857811537376772880035153109182249949708730944668746593711599607374010223889824600544729318478774776544886098573066379158018398652632900737854862064440990040875469042284121302721755483472850780258974655396075254112416715258010184945012995864903775953981285330982260112685113681649124989942551045265458606054996498843741858083238717452586684377973215308392010408851834483823793297492027829691752444762581375025266026407801999082671719649557231135028622133720101781053746572558442240144532622292408828281008281691536991525187346542772639962086421523741719522100414403525375965356679116405837306095890499110571445835482028331565015562535236230090799228786478090014686472614872772415097276132316501263252391896843355152512664261400872218529049618970946110162801237333784687613622994845316603867810489709206915130610924340264215574682383274338236306397985193586592025260822590448279571133670039088548987913078501782986477249213042783788382672410724670072666327953792912116449775642862438422368160768029076245569376854169471835734753306890019300482768933683348532843564605508854279099953273571830289048320121226377212883491380355067258873336760577159697459637369600496640643831600760993737693962555019177789702911586058361350504876826028231350728692931530573644995174984918561611226738266619381093221609129837860119069427562852297703901078847206656254192088963821135082582391608783067323767973223320020949397212719887104140574963174883788722899211589728316079152857640858125056746970948199492070774698770914532911929187533074110615873030237663247110219871106938448863051277610441599004197268993751528249476396508498999433722502464337366754345520783683313543312793761787748432934009549432013998443394258295328567788251494433421364392634978798158182651563558945474602298188864423819935856376638910823415312520113085894599652723926029891927117153228275485593380596743449723611864600285028171636988373568930062201235522169838899508909719953539278982297123335270384873476852612829874028359272633110837107744824666121174093648395492527705448356549114958637366042468514198520376485827386529047355956402834659223439462909422765434641123596644863035025905844364006682107334279271610992515786758769503672497875592748349429326527663792335972880354704967614076218356571953949496314028189384446389422851491977535255203337147617107153101830861640471086383618813731359910736166221610946830111123684202030160412005486511564763950606480593218158783177879929155593289594173759730695356360397231581451880390463925156220081599429166271185552464815552668974714237287189111995124767222164193919585560954126686631677562774868033905916812589619209564474178571999456906977074294150687320713022249675410087521315172851306947244695614687645815483537836529446788820925078029373784004898688806933261523546912792283593095295814887220064866246661394958149728568675460680935542234474707182096602530949850442348192317794055850772293292403841945239023005406931766630036963325447390565704106174537448843053807289789640950503805446664620739886450462920518085333680706960217178696867386473306650464350496813918036202702945639849375972969047412015963460370872089127543892453597089541869919865508694155861724745919391130736488591026402362041209500280150054870852352088661340123641789054372066336898827059058354268307974397224871580526648494503559874228141703312081576680850173206264662838228271732693382909097163379731838739609251964005845521717920445954588944950981289559629348365392358570586159796118158583736718944979223020472499574091901524864285132569254911813238637535942695759253280215642608913497379993749197437917676696599450505684072485605978999174325823836952652170443397971447022135378370952638145725207929037615477720177713065417591741995414423216132581544859699915362818524841512307683634447337285665018534459474197530358194792909635058211208905226211919574389490818225552537314572897368732711847032465218432384355235019725555904925111512619034590668868448062050279912584208030690693254484143156560071014368222027878384562683736379549378470013724499954431366935286667371844034035674690602022326195349666583698227043299275511447351368637071023042529824173290472569347094063861043717207387818168278501206260948548080522561855637683643117898803425940947883557545220771409658264633882430540596187845381324726693927594261080370659845527977123134902385394738035632845063995345947936745463436507510334504531381182024975821866905340784140942865872165637113621808419420027084903191280933228392871230887814535952616216807935820027191028848584384470652516474417136017029266463976679979901631055108069984014195674282844709033047755788944235893491566166908008677840447836691336820107840640889847778524894786610177453098718930402512005991605974621692194171154900520918456215617702508180063919254827897857224997897888650596124895043611956818210375959014604357339314398665773320833872961415021410886189187060661175788123435674450538662706692339306685566165962724673171824915844508770565349925301516489954157343599137216057087242513458362205951103641673389781960346971323427404238105377863048505546342336581175397493964958176596435098732844578732878506964167012223839720364538507178867841937763590380046147616375374951313618184203611873885737277116301356435054461236494791623781758866210864119618543805027604597346511939087630610818512854841201853718008189363952436157278511413970281864220108582123922552727454058175626226786298912817859788377209955405615687268699393481268938044511680309774878620267976838173761165354945214730495700223993635836999702056451583805223816653691039406164564275489067369209580152647112602439868262048384044966850892775780568431062104166638272452859185592388602824112022694554079814706856758656536189555789926350552663749621993790466277060253182801054013661853823665617701133612372321144154481745076458600978598337117157328562266220547061622164026567436831167091210633567764488599565862121478846470246308707416483202518586406648198615638423966302843622052106442929517038747578242234579365963316747733721407730293519668041416001768307783964169768901602601097228296870397194622710798426117876099502135880396913130256413176801383481734418175045606103798944117930133726421944697855178610395689271769990497372807839675787051139191397442608841004213768324465510459383855735974198979298707932841476253669793851511325857180613344678030000370573285737122781103420875358524941568909272135685092036586419169278704530365111017707246723402610295479519620528882516002265439261382587866540706890563799536670036538488514200056507335058436536702574112444071387581790430839558313071377095881340328956827149508056489924501331898884847021547687797168151873157842680800633018912559549450953187753215185926240967354943922859875494889237397219287329530596956001546804462299411526013680531955316339661171768211883452695765376912273880888018671917178960317334428989599318721982597591082776431061285812279508145281868017489021428313947244824089887979155150638362231675141915594562179329306294126817416122994148719423648139699248324467784314991132345506136822401929230887478696058502639083824681194713478557675193000031229100720308897164657961083752721416333761813513934504053907028676332097806310231587516878660494009541656997978727643705666399244575978036828060222197058755785406677713959549294541224269492380950300303765279060960302538159593016904977730937050506105724537993919472805166330977775756254191680033694760318021189439766660395145920278634177534314512838232705262535023022815169334285507634951916586390653506127431765111713560303908204195711285286503051582221571457129938311444190922244638274873163791771730541383300211304686982815007900057819582896666972531800714166334363886561432434164315401168113329682434190787623938724914330632173992932696029125661354795745715662883338636962472851352154595344393362788019237186652836840667381388547050547923572700835699623025677532051523123505173501584323877937270348018219524973109054488419850446494051475000853997102879602537851462916061298100828433399283940597346915555812113885062149646698298563814725497229310702983500670918858594553923003474193301860053397412412334246418492632383493765128830259182769875737377739149291925582148036001125496709496548658610900397961057334073014302373908420988363177582638601941085671405596609311286450484466117937236927571089187831209112064139614353277730961068643873567898776191451548369327404753976901956293909051543449301619154850036131032751906742227039100999437225605043708664167405668552450920870067177596211439534248677239731424809292400058066513274028489474738602372365950631837834043177252975340157539279650624978618713512633728001879713543494569932278901864114424428185443591410794223755062298828825461053204695546469325274763306237120486605585368082855881025151891972290124015897334021580178283491256830626200605689237993566789997538899466984518992380063477340655772499409956166386067737389380078463092837486267301908019358122345074801584040713939568696659283736655642462447093356669420489490979041092797095544055062891282408565432763902546459939965585625750334509683162627210330392577303608201591333155391659072075652039401841609278502592401248619589076437172098017304328532360464853340166470259168577814432812828264239397128988202970020599297702879073877579855206670429733840159341976726478334540621705642238562851908415009309387376952799945605882267166663392539249065092372984295808552233221696374451678091738349590537310079911744873426420512219277397963225041621639665683410078387247526391624331515243830430463503810358095489171673338225393684725416562890577101200964142865256699448951542454964901506453660102568197867670350935939550841036039908405274606019538444290670951040669551893231322127922533365118591380385794108744797761430442812214554493468888468426346774974599514853912233418715507852031979751397904220037031965787150263030004645311377865534436548371100241992936964717687059805601721063473061544135394267592961901775325327820280279642863120778738877662299760981187212362836319360466524361368267817608019703733571449876491858366172807440124566593041514806861440458118090698967973810911082180978637574037072790457133241713164854931947082911291345986745035374983026603467821930754857164810620974002022312468156077579354134256611362156895629593079569729744275377490816742216202375195530545193667406386300254354392388040146551076272434438558906211821546124066149653357196028672218508011495438984602649043149976377227423262022685769493280133345338077916687567990299643992076741683120709144334051701790457142580670916494365392241347636750118516511599776463397502872327461728774156999600667413152385929141842400861124710933329079462829919910148480494509493809120951006753331634411214400391590429299551915220767398295354935021454056069395895893614343269357797767817379092515036584914554939272023304758717064538345402512559893197095095758875132106273645768392708852417588964397485359373390438157703303557273127735745871985219920593090890088983761640789149383041080013818436600871473358229841229720977158931912017060950574780744123801386240072344603986866400149813520459134325075139289212643315972513835030577937370055625092757617530287332066599784001890491317960171681792163086032148489111251642649224668200365702431540799508989335874767863899030644369235491903097968342362645309167362246717156325768669648951320269255044257759737890309109029374289531367621615932556271925100656653818506369450078238332544940560909571092891666077911680692552182394998640028428245882190108520706280327293920633860312575569948215235886967046121586510523081140528794476814920361352205850142458416260905494667820867548908661494080151376247583832786589950487084691419136743599353751999365886224115467290501022736924225421130591270012860492798171906578989633743233226244032403541846412045512207391347253911289613524639986096779647616204209251133505508403027762179855763064031612967170995927027535062874352272728526382452676312422582048874447370388686353107165588802708619588397691083438721415059833524694374582854981774088794235205435971897252626698306115846732137428942599519810744499118413195556323582090790592041942096451536676404007539251236574907709480274179026203998730506198419939325516903960477508392024091916054053656678214572878111499981534820704621257669999118643977793633970977640672327343871121272051731311189919347121891079351983466272994696053625842894480177057945310157170306542505332107888635220337818134847575011784553399907725374155748823884397920397590495140934759077151452745376996121925603745942466519337158618389336696207502774077376798787719808743157549007959751595588164794789927464167784423813039728853470690796729299452029342378930091585591750467568798528440302906301210213329827607415933054368197311572756964637683672093969972911826044214975956757101512618527848275026779925039365081752956089582186540994922317510736493394060565712095565870224378867493963467772759931033304501981096066755294144105813101236225066786888735371179628192332686386791407648118646776232131090815844116540134638998356918508789735619071267544846848217923161629195333947495953601388857314253728228863504421694324281170502454577948985404558155439716863240445288848264321653378407278484380660613955510193352878834227974682314475570030195788309846320953433970789399229116808100901542131072025512186789590014529833412993620261651468856952707390350215911161048658725437790715120076936473420561455125665969409403901872365566669406448237018152800451974774003135919168275779187577469779601655284539852866061651847501515629973349436478866558719684162630917624617316634923784986600316046381535966751539895901951482412041737971809947332287267682891930771542672458067966288238003708549702166190864856799235648801364711772411216074385179772678907030044907667298515762191898083834104753907688392618221709360413300062097088017068710673319271475829602538548651316737785177325308005529616180010228251810304160934004165849474099344532364410261821899832868374770763477524448039431128039700913857237265020597289368840549009364491196578143550223295469916429131709669152164921962002255411405586794064741004498977158364260147349549804435271814719605939908443699833648161919779169151686545963269901798988516735758355257018553485738656922674797148541714036540779124582317322441342395779039564288444563323242435656401311381320614814881949899196854975629030319201566081391159003203234746835214945061542329843442727480278545276891059467790388554934457893555611872569748732043141968445697074145410366130408791501431275742300953207665315402765807920120788911634729687823859152815488538339821423005676515724821812351971024364932620462416318942504692599808772809895810551678783073223217434522887119690719708217825121099311271754072777913439599130921220714729952689743693812662800898006530175288902783611003181189069696648132256970755537591774962656909420993221853860394143902969249882337852642650531254164126423005372316827849278055668724952819585189175654092988840356330345437637826609423820470419255724260213908659642075074165147830136864629058271973078061061821255645334230954725742852242654857860792200539710331283314566237993475123360319197081376407225325476382103037260127980684348620661563546657907000421045077848134673399722199499681591975486408628425062681726418809942007778257319694486115073769370127976003897621537250338016373795652631878987697274787994444100446412205828554626763669193712150368388165817046953085859134620196229754879516998540302086234168821038877972123371058732683542893810347524411786955937329617519814535701311342249227807792639188561482785349775937551700848401531190419614699126031416935805381012837532285066385988905733893067627845848640261030403893550997767571844015253007651573470115503671106968886663213872036368732076050373185288705122277927317253596852885519445449180969747877102280441190033545888507268459008046069113793444894702951230744313340472502791335300199644062810938029638434418259348739246870858008967940287214661753022442651616755351125576113809388047146948292850866167257436449414411181380051780808722587801906165715750724103013585291918762213004144431953282393576524020825624769534639214006617215671805911771948671926468076221628642330095092024504052681866883594159480019007137800500853034745981502028347868785919337242547104854515193869034987359420920886688117125815788436597526606924186434880165553972234572441243149006279412974352071309854063039880447437197621549035455375032324873484838372121923152033410182088557062569870864079903148001333390337805233859520973229390736294058933517910922745747446683587978732047771889771721679980909364249843383570659978600695893975006688592029191354616891179774276230034238547151980072964018171311462625441575507628584778723291361120055007071376475419064974107285628641236614239782502597311877851455393298743091212643706485882749632795301246235650649224556915867288303923234266214255760248287801172134854350803212025067559030320813856043179748413741523426814976887152833681022418463489529499589733712131856671045895787595089037011050364372135943758932572021018367596595959604901066712133590179973583200797163842978691822468066363288546517000322402727045000736849695300205218854950235496214375747594463147643663663182273969109155838615725801197687101356087817095943353205172766057341363084047733331537499939507062950290749883268671451938372913268496895361219453039164364177804871140530527355102128380174290053305716660122522190990198534640302583541562202266589642253541883443199709409654558879335226651959192289437218023758994344665778202961337865798285416947675898552358886958579076780224505476322045123324738960872655546762539008754538546626212299199020992751139854235506225241898369429378392884616406202302813804557795264620402456918288009067064753961126610516174590905378705088727570165297338946226770477114722019124016846292103205900135039254802477890167086670953241918741853014285828998685519070075842326072510442805487475176571016575219616751742338485078667169528476226462396825551433612954466998816203651269680479087083589825713143046508487550661188181876399151572277752704443410094276982751912630635429135577316118610454518926942761513195388937947646683687999319392407455313307301835530770182299281312859166770390081931419052784125429994484048778977600559792214790110526564800273262848618147923314346120081188416748138686076865245450465409339959086741848575259216688651813808255266594677134498120743990147213012609920949957772060402549152898958293936341315005260625252307802396694093286625406896657325625671525560075343429595110616122632641587789723307891953681424881791531861204885353945283188498001519883849690235775434570356095242650619655312115827561364133046897920802614413880700826003403553462055948848761084675780715993424402369100344450284221328281904849657231811371228460040590765475639050252754319296287432267491337583755250896049539286679048406299640696718830031404539466316527676517298547740086664477759507751428644509604510552875350920783657928751679236610717875976448708755615180076637687223141292089448043437238944285449088435770832780425527855126880728870692558833673177502773174682791583746799437984776308937080742684136710651405770233273115627189932655422234312492085585805363726778277057811745484153777092286645316283071706122534294498747033511727587218529436251424276082834897915380357400748687521664305949305937342148054486938795312429733809924269610269580595723526198655691927087680207674531153170087324628861408629901584444206562853474965193722536157795393784640492324919253692891037169702499516983879435370507009615557767671818506021048046655267661664402131378721202225432546035224047487326433437942861127445530838809537830188183851946595104298505226486255495173529571473529593638989927935299240738940009229459975622275725847537536185833591455774005133378659213585744756907864074339699891380482077350389812252106962589138551513950164456995998952069522248016419260603729430238804516578899543801763444825203934801719557853441214393106041762343251032735276065893322279408222532407364355483090009980217249173265156000729226606201292532659693624069222685423264455957270490432726023511028047139439054001060202794755255122207214819981172979297266448861150235431230750366878856187589233558284272591022721067243744808584846178716066705612271434832099199856068112481000452945707130753648121843407750468119203844827870641389426367475448576187739998246150308894238468614126126851294418362273784752130139473846308170858765205379715018433038135492763482231061752313119175731466799008407499454515733590051336857451633527733713803991358726598282913420315869241315319792172698371004758111207286535756635515048211248513084367125279780134892417555931323363663648298577413728682889165921856935157487578247274018556170031619681257904913959512431913384979223863063301035001279220125823510874713406381588625643834630754985461269270000649248776749939726559609756346415530400814144800442120628791018054133271773833267679446051866977000761147544917579516645921767290300834259448414881062840201242789253373017611736042350336468914811425207573724938675627038405131224730298654195092382642549569712283213122005075950246477910759958514631390182021489501440617287647485889968102423028930945677302282473293859661762408033098567161637136276182760652929599647903442474534071100639356874470497385719592760733629763277187229957449921490026943028921239387947445492363899199585303527248434631897454020963279817850196632446466992970839352831159032484133074490874976447819102217642472047221938430836468881560740959963258687859096286458804748555543978308883753068249006565437816976339799638629335949763844187813985267938007096880120782483827651916828504171527196597604164855108731851820256048747590267783870566460310317815516991562058121778531311626536869864191136952830653353038712874182819676936411855761916958781338793363651268114638779928587553331984148889112998503603047245606006271788589997902347094481531610938223972640975560405253823365530092678056036542927527403939451836563459788680462256933565260635026702578099930134190532301153155388469367753882051171681916946488175595897564735831973851984642258623247493357981177790724302217037280348717400989139432231035742276670884303946393015167651927665543724056717150419299129911954622576266989510733436059843119425950695455489609758088089411895549036294801419146943702367247750090807553111829759387878969609343877590045667085999093977272874126310390557946328633107776234988406743718362417586408261517480316305888155073630650260148686666618776155196398338065812944171402624966643171914988696164110544386606152984898774729016897871741733370264343530351235260949127474547261903580125982954955323930647266710174359992816523567771413570897051309735051488844792657201928008100226853261092466088726934360766021629497382112386134139708459163527049278174898064612311990289185774214395868431214033753670513235949957993613260029808128316463261159567328149744632948316949172489051467795722719664706989337221012839694663402613356714994024980939723593825606326863213136376024310208935909340528209312719173166708490847040528336968836773213272419042341007407012851004313341755311768814612786539754428515808370319880614641605662855319251173368674364431596774566273043623400969004084008353181306684095561758797006681331210850205880790908402319974204229811975080604267649764978291650338747695571913658906972479247153614581943094461945969880856245834051255742859411247790590772501753907946557739092117813903628605983720166690227545046555168534213165032654653974477942229168237934213631865480595908038398002991034547039070346456276919429272370722513521361763167972670291252904076251133133414330719726263540725027836649819080761589849164689374101867328883562166374024831161839702175649137086457653180925562701832952603637019386174899907815322303740146303732431564904485001122198885955225686378933774594717779892987681825123862461714493630662487029597905971488131516335254043399387652266970674158400382956362485118951134617824430906079292386977784375099598577372781032755525320465083625955101190123518288604880750188493869758027079305702022676299523369138397136276917481455075351664455881577291873687022352639377180878570873259949842754212605795182659342529433298829730025185764046146237406546217650831690354532331988241760495865121873172714331904719452784054600766973631916626799664873736879524848496102625370896912204820540557281881141487811194923886951978710545171147363438664429454470517869030043980334686775544142162191873923845754185057807576147427752403755260066185012223028151558434714714664656064782464251942198892758206864595785745456416027079003602785130889151576853261435393815747832432445174730540297063171112580183405109470936367993224132867269371517128725827514610089241412848288193908954231316352686537269858358183521926501610132185314581026493354214084584542664249154607180194956845290806153677182148584973482904495761548065042195453019446664931822595714590263686801173508999020981606565618035867968421486459681905057004626883240290085078207664387016319504963950380746835408356903417875915328817968583791373411270820811670784478258383863894463939361806729354367870516342741666558242057822335581247598944163471633241128076278056179200463749987810966215722752271458608349304454086916154486181461878595833564597322538491195190368009229125042991867696580620899842109123657942380895752851681875360345650421640573592549344275086740202439101327803806202667629893982710918097166705131295478116015719907978251878167258894695848606842753066675867842849487667603267423660188210126506872143543737015403198463914667013507303887208072040487067573847997355056145733505048575883454188814054905851212385836824261708324035369373358668155344043202436724888823432491201428989554597741840930858474532464989070486176741144252977076749447470846100239780906456756394271458131519706953994724105510855032075825973212037712580788976404549939174077287048034751548828670563391636863157245811248416496589582170398902253990001738833012387770185478582745710777339300204964190445481708949953652984509290064677444637109072413424944675690218714418399252698271419154249186328907909106750950722728652061768255299445510104718149548931381945567957178068733671394688909689978626710511528474519042542829274615868507298771031529357601226327803102703614214682675772903135351253434793573112739646528067448758896839848632458855744003608117883253479906421753429821710411799146581862542913684546211328177930659120835308165188697984413417153680087287561309978468885666192156725751240300411860687648588079677746240628342991090024980921747495742050199996652811252588782351039427469667894408902288491932287654132323357422316437752868963432872762767880623687297761327767641191946942137410830281000654861617254486066943372170451623671734861012697076200521751949979374090725394914841490152593220481917536943117164889385463316609567452201965239944304034595191811793424392275268431273991021353267442361875473921441179577701320589290093574928735073193502867118193788939335345894413723667523576150460084427488906229211642834813502208197931274355399468623947280394802807960950966598510649927284913052027607194923457586281407407712296785747474935992725179034769604195144198511016130341621548329420555189806659820590559199546631529639088594180495590712630840125973130444157168408909069084562249097521377467631808705282107065884544490379108917809671951357974501910359498585962283233961737179193360798218918604692561259366878171201384134938543763341684486930434248166567484641211638586511148561460376328689007581312857451119781099857797092243977024275196195269017187622003472248524531275539923786425681427836265813920053922766558892046577262758340476765076669190513911039786479745871248777042098826185556494485280542680255614029911895540749460700588954918463001169162538384772395090932552482279528501638802608749025007888336683799178904108168827997634751569227594821740688725665593947912860603733529242383238470221920720416625810079120917902692780451920126706104595291421625809098786354245879273412990106663866620586118593588346153089420832916377906359590075840679865421689326526351140766580105750417936127302708502796498398420464857781314046195866990694678973228250605898831165131380881876171423535208400965954584780089677307223331848577839169233786132120230670094313313469432870813813566342482288422997697922905898393356928319368365752261626362645223829686729431302574419243303764889109712402858736408897021835928294680943592118211552842946033040330269926073632455101855202482247689756169886599364598595772315449348528785478247998584675085639670638539309300659660477864489885962212815983336700330652817371127969311477454793641279261423381146828660660259147792696290324974992302635700520045777050352545010824768086463620915503858852590511114515673312990739963580962683142078333264587661790707857837597064282919599854267890893927970199302446721251686300444861705406479665686079154290605105872264709309102176561027697008183287883742415880954948732488662720983536799140415391648671283100075693620684964271492287337819552387504443836048538831299448091459776442146514181829972651156790451694529845924232161744997363925186090778012058066928964583787385559760395772252908576018406168851011790046718003972114218581009505149522922428038096981299469747114890282203279892447956066050174583584333490181656674284467328286131970334473317963399696733781117238759642353778724497337534445041441315352481105073705712037009168618265513751706424052484850328717932802885464951837756419811505173442327511141559185684345333313715882662034709824242888198402247263407977312697823513162389266793389757502030506969771840357062286670205791533849609365473110642008798545381038371132049595225849433596350537791734729132696949085085037697216607316554502139428979858109328303610829484441982849522351022103652486911611732339583432729059181411098663316034009288335829914650225885749395123619956853334643435372411728470943784126941945462695349645606668080763859980844884737171552860563805384453681289925935230011244467566955851948725552548220915495036323756746924282438037798200675834687298967925239661679104323710748711814646340481020713617245850213071477996601766856372795023745436541469195569344242755424990427182460186703582516919428042781489870736611205852001258818706469740260022199696452640122130059897486603280067971575275868710725192729739735498174282120781316946491323215590392893025071666812607801110631219441142330399932707819814820861223186322415102126159649473691927799509847813702886979530999190697642761576031970546293333555309283578463182668578501666648723139137537358874278709369821065814350545852545043982237972864248310886565637021455563305126508564102707315120368739002129083437794777542545415860709763838761803202532109781455937858644812104459220418637184078354168844729072086021343205910293206756239285618436465953229900562851992903378225366879261615658517942624497285038716003362824195579129815227861969759061277381569764865498432156322305567236705193193273448611581871416816670917797213481183176997786361358705068269211554610628850412670865913154145481240558634569272942819113170754056635237349844079391683627610697164980249974697405299433200123035946520573026899546335186731660259936727551083352844406289133334025794680876300939516072384468816005398083339375308708589372183777588812206200975185485241635169062165777769582852051420390452730370163592252057196124656308026641101650026615280701552957932364390220337087217014860868894356015380826926854132457783630229915050286803521245819293281852333844666994827665558383445051769890605467024751740756331128942263235433391709010323471612751392117277072403506407434178653880577573812221439054508049764088273176119228604253271296046658376625609505082281510786184571239278004140821876012097028927582708778373085039501875734373174777668993263156302387208297837534240466247281906563249881574180354854390326873958588376774557947232920546751927177816741857199578581957395475494810662460549068070566823273746264549619660067614877923322178144438513419954142697025767951099924430855788409653562417462546648692476477554284120241587039038970414578632993585874234926494928265205723064282079274151304424073303635076697259915747107418057066405783096997232677586612842128353772269578393567238650826003512833895558046525361417729708720258183528449751164113240315209997053227067474139383941094256244256900538905053639574133304254529941635282003571892169274409021150213691163524202879521426343180989470043294535778325028594255479728566806010089229541801650353655925768884339106886862446963913769046140831774392193881007805855651409705285939408724086902258554751005290926870929261817842667234907142347890760290970047718032229335133585441036983778895397558895022409784163293229302483592621532711463417518926941501661167433698517372296405402283241251377610567181547708780116934257536639833099981897351984193725795319857896926746043743731851802041340387631211806626713820183930507661522376704447973653701886693623168662512603705979231665175863301248855261791212194732527727146861266411709018492644387382020777745516042867387964949555357719963397855727535881247952180917008811632152069694106045870159370569177628645369295467319672627116217295372940552527580405590347239925133003595994825382084512717201399351103554696616572545169697732136108920422107005685139810686209527024216799031207525002159494644088174334277322022717068116013924901578483749815043742561399398907380335984703909572619078797864835062856219737143877464084744920126601572406681127228985007812796571156261482566836884592791654185005016458608811845207899206958786565164117080641000689091081978688993679905619533788584815290463465601308791867920476269122854774121121668009824199253132253089589409416823388374124706431268538778659276373722338489381331833890891582928294671860695528062179584091352896145287140409438021405485933243386719832665013315703403545164953992525760198234922614454703230298405446736394341469469050515006720743872112900510618628706010125750875315850740064773022488899327046198678400843608689770494049955774091656174930667969916522122442349369815311193443124039946810324859664443030991445096320632037264224100435241919086048732002719528941420585580987050452614559001563015794036058003634530068744083391705648060428143428997652475548293340971953484615616861115264554757874729933720659555580572270908499369425471010059187787576356205800684411010951099744983413743430742565882997444492432322176981446087203886140920517877076787430599472833819588381786817433277017143579136983843727941526463795521596905287386609039878861322579103704947487000670366048199894160902116965887574699153373578068278811408425390368216979736057700253741371621154993781356132091566405030565711789385771470962288325455475828033204748494379090374102834336850651217933472060745667531841019316926254607054556658393441230520517487880765260816515852839942096149031177301183811057778350338688544713526116870759431829184291592427870419997175992712673761678387921615671619689268470075201852463111358781570938123629128614342826219252873560695486972345193768109297812979233469998478711992387906753752445348217219161852102823375253395517534248176313584442667293689143430371070361221939424433578521129769975031098096009280298683068003507753529769041719882753308104869332833224462922665113583144256979287714827612802881345958670457216455929144110643131776584795928767698994324816843751683103773293337206544791499772319855463606939300609733649571146530249426414257406545258281383968636505992509914573904725951204519668833290046516307721130985057371106548556099552875447594796785294450214911520769258056012098079386963400307688640834196539697262343020609895134253775828812610722622328358072563538171510811391079770516803056992340750771002718546823716459585088215173017837438187866826527725169971499521625460472435448669938847283866805570855553870056860860761104333411361389874397472114583600038676328454620195437482929432963931697405469069298268064608908396717412655566839920780427936852554468042724225490369046281542657954611644925232173415993336481601792094948550048378936421011740417509572885342093911560729036786046997240189406844901849810750973896863759848860460332347680606569653978918596659636233883698906439027304885325148691240019837342338113001269222887904332606154630790625648790749617981782122535466344176295439684304407829410780542842600202483535191047202389146192201686037825565980809237124295072768691998242759701208748741878850006824652945803314331960920592280894749928789711377212584278058458917204218709228662477890427316770918869646903204676163345775691539273206123139859862060868158253550808176240685368947261156210146000082015233041806101145399818938970944610820803762406647409142062177666938065333764993920146961618007945250129891287179952392608711787381316256557495188720815207066069782904856703206833467893012403346005176975392306230992647746494179925402053485952389865580475518143463593391173047545330878240130770151903235296894487774831289739917428438679079043554764305416794541622525256742283250722854617727739577603260432651078020288671738138735804962548051903310316820893649528049224274988471130692342059190989017341145680459070587428711677505376186165723226806116610968347793275165702739793987511419880882693959525184839273445113974469874908772628430938025025815973396993886616751396483178202067722161262329096267514003963916184888126103170033251801860466779822653042957171887631572689100015205584779682518599125172739977178007819169106415469740854739481130386747138611844696474980729099095081967922716274012364707799760120254844180336162946401411788691857002910523026366039954208265098320515932258656385823543464411717555922273857011700121505028379335060843015322886920188938498590876275480625155867924545215110757857984475091994180403645131597043133083272884803032888570141431294086738759593713753457586335444509906527845249741714043829080170459343352011972521097412810217978972702239482184991163544529977453241772853586265875038794998478614975699578565974358089168481597844809184968703392675337137243693700970594812330389741420860000880492535513911643281621961757672899316198175927107966102589805517562229913536274806501972797085441497096331347376248118629550590502576841223889408722985705991064358148968289617656509474418798604846677436091235368224532077756411498988031389690044068919709207167798101702266663055857998946593456851966120451843236966540153540584536476091316969559647392498188987909764658421682942491014579306047502163210038131766863711720229860095339928141667305441632476099206527339594162855414575545593612703165253818708298568734752863874459302594456017121212778367365301543071291880657679892022561907608711899671778348615073283038934868433769515923691728530714646750888894446791809660757438215963669455462139206439242247234476801622262251286047521165218288242453552600722892552715510593570766250591542385733179349666894467968705371227202633586267278197152655299505372294634419814129220700887174813450449783977258222443921272840599958972978915891130126867287866747560598017339416293339780127127799150646817179452364249147481308296400434071345953217551812872684915299994623526376173251119375554289618581648235939166205645519016282531290406446028206065330752449891698139520559006387037335900770512438434186084462746280981677839028227323791193371914518034495697238673200707194225550074970199594287111576495090245814180834289701067608925906960506323014792114426720478352339798406481910092953697056653395323852099070771085893172839946950747549961256568186621733416981819875508295431037544074341376326933349667633985375718204374656982267162847308885495074013881613217345321953675454568223247187094900205332645661754190954746975625726703159586307240436057112821800045696934095255519991446810308339660889251175853200855973840660228916665805752035728119164754272699411132490474085692988158998251799279068710467593910849149781875923960464580935896954893766228635048577241829359287149500412683307395451985527041184897580729581680575157344836265827367444915024346671863108631400939178186679581759824754595950366356952836568027521028755385085380998587053101198996448014871934442450815035625877816874458882628096837985503063654001169503234448811842681255863236979628111066135671682203388830648677440259102201977096806669415239668327911990326059549074609335629144380944436248088457261186799996433884627072889581336064347828450085001890687233502449001961330748783363070730599044244129061280444407925097526183794722507516196047666285622127437823660571627637225749431188717082460345358141857449983324780429207080700904184776614582768070255852664457163876920996090630698311335846834214005204279200054702345574321347837440235642648827723150488679153390022296909174831108976603258410394949735738766009760816555809616916600325357251812999598341276928859740468885555032456411705574850310710987694774947190866855911539245020633397102726384451841824404670951177562715666784571800419456689032787475285816013647342592255726347032023949925489216644893546059175361764058139245078380095239056534309231248619371301297216630449722963853444457020325062505544548331233506938547272021869102573113931283866641208157173987268265027540117315462337205294700824835734607424725389310158763986079839175229030505086180336172670787605716472201115891680213366932822767668946293798393425111091745035543037920533222753900099486111182584413430388896784928484951418897301545099625485418278608677647998955118855422103847134562298203180981389383606796375002906398336978379643986528696136246128335857681631511092032125209141302137225471759969272932513534687803788426728716578882598655291566086073915931671775821206161706546052125532918239590198852040344611099909840671156985925641010940494483673218337417206748160585506590241970308073859875500106753585713802496020266880482006680779670930464141372858852334733088727353397662353457152367544551752825834152496418096047208701777536532305843059780550191041522300955441638023734683153607496302687461994997403827383847093479663267876398731941513435559001188937247802937982183288101731883396496354584159928065989084725053796922545582474214657095938114559755930788792559961851810414560713934352023565776777682269301824610334691911215491895415299254640154522139786425051102236679182308884527481704868974454863620939867343504345482841065446907486187514608316007391744802076481886375257240918957212170178908820370623420255412091063111339846262131966719650518312800442283210430998219148832222766718696306184909305625442352264268785664003643913921233761306134563682779513833575556146227530629101327579299730246111076441806843567120835896345876484140907614270098558681658216776469476154687766747843304142909257033253963583436131273718623475211303217607508944564585011987488374689454980750581057216008476710470381277313102807467221535498635727253699638285790040215246004279989301586089753085233404717865289282682711888162514881250217094107458918575713121695021432029177267767370954739364425864812582808919646222323578986683901754089375335892649243813645069762784519816928893406713749548171164902550178044871504342883419926239342065444876582046793625963453993612796828378261239106577386234668798260201848250655067983412821328089365016574180240789560987041207062574710677254812792080642311098919465038303670011926432709147272897720154790477598854555634635822385195115414639671372752315255016957528686060799977501532817815094883153556411399179432703790363699958198796273261209794063579542326720726912209674593259448990903742948061813927645226416187798073050785156365592262632894058103363138417712474078642056902664362025169188244452334284486422607474088195967700709893334584534818776676671406174578255029839717794552568932569626616589789691188437300476084352633833038002572062782032540032089793861262425778530462817449903812546129682272460637913777019933798101494881555836240993566866034036824720995249315323430700645296176090629043486045783664220058065236383823497165308157183115913082378161324652863359125618468080701945423163467626472167742186620634047698032804103474840595042834626298445953895249706106918486188486461901516169435962490764083427043598613567714688385441472035103748929571961298742717797416575923454677048338208130697537681611791801512919221813346975823680517128219045661079351672551917277063770902323457936962824916130425330397116144900796870261169242176952334728535471432528291632505967212726742238993572299582108914492721911387778528486940579700643399688278545929400054997191569635146509722698387766622358288261203085011181138536258223260847644484591681995701231244273360588300114752243255998472910466111407014154500096381419837004380516843321283675870133812859181032269336298706268303847950043910525133843265132639241833499493963690851003891636271280844419100405844324309896077530497754070820454244282167535942438868979334357722656950632323940230920085424573528248700453028697497515375399651513243459678134803419335138775825100909586235084918189723273649635686450475810481706174645332310675596539907724872938376274529042095399381867335488582488638374578877723699709599483633332458343704108282091479723039991379054082979299809221993379642083840529721373965956853175611153984144068443999177172369941006103223420891288879280205007722210033906345675731869502162504285187002282251126970110924044337809305910887494399109426246341736621143031486500107151665082717907300799440434145366078461157808389555804541342556820792256306393165197418664579553816343594567228623762304710654541529977695228397672500019064077153532244504778923860935427247055165834025114446461960039111300288662587618691677227755342397422240087989754008966746039401377392279211453598979918772450516959528314333943780724216680763729567443927503868030531776814538325912418737549409326662468547205239241623972451910573965381179971512369037334687146481761328526400437318322287874673871819880355197551998926087674862821938922271818477762099572683362731375953341097052613899718152535388825593148665423462265757770043751579635359235178208581936590601079057212996526112049015724199461965876686130067760289633427380894804689225731040422673876601427676082609397122240112997720811730933255588302426654322494152962240200901004172425319443723410829083179427989490089582873677391394618990978762773910477752689298393464215368387800565885961233283347056636904330180937435368241467196479365502125249506600626532096474490883250797003016239803535969923367559520658738151683013392860508959334806592090250389722777768663085949806087741354411801683122293483438458686998117130718549249237379869273745313142587260952659393570346056559058547044603457301057085892175975570744450285498114427208849177678190157514197448901634528902958443437332785697946829850190733906767464991588982634399415980797617137512416409062970177103013644807681355976987907530021562391131836039108506278631822499877458709006749240416722689021883570774114438683192554412785881443398578155544438532192336460929896177676837989477318043774483819669165222334777318871251063714749659509597960633579412477252969682351566617361682961278131810526977964627205208277526537441784576731529562519535045131732809906889965188716261693052809854528976811164889503485885068158683450974138410826263868887696016094755035157017387308201257998975707559671933748738845619680760944943688308645201115079632104219194809077069343494244789339710572793667992566053765363238864855920448152765203545184714997833602213201881420376803684905438626060151937723122650177187371004934538801063473899577722113691434393386097991910059199215527272021770166517986082819697818301395378726067217289190601555561507020678249533505571780240264146816899880347575794342300119058194118900098532354727387991111851925360135991567740873916568393504466736550534719888416715541891307707671731189875679181649381081029083314222874679187170129558270415018003833854078962138969189431773676886945277833724131444359137828018210068186406949650057992612312652079323476249664881446444722751536139847531747276252157557942162225894904977024880837269431401251689289599913147709720698918313295269589463398393275055773749531920143150838601129687879142535307159951322014973664158964081135138866587110974070105663859595290274472440219535725039796501727856850014368236484159524876304490262869494492930704107910980299755217044782356979564945178243510391374234419667305086564721936095319842915951411175602243774246975606206954907167194083921907283637128552153485053465913498186904823185750656667057471973510679881836698281870814202670795684464408786812595267539590110804514425508480980514272731038274210179374660499665729558663832116124537323640468459012576113237704041381869944605239371114912868047669872922964850489804029488584783962796617732115114036094238888797436993321197030244149478386712538123464210916659374487779369975375099022948114120909514512223295762888435584529850035800520951768656901803638412514702486785844724853644699410290138509340457798053571087895834468285245138992518583169908427173947973680632413144251080451662863957838365390045899564320301782367643127066320198766326425158023171804402116968601497244812562603322078815611099317415535473693254725770781576723533333302389748876195338741932028435547686709785344134199382067778734249811983894315528172016645605060193658609277176745699419933756873448562629987748717826161563830270707496961213374465227849258392668271103256187217506566944961535541668342597596679451447525725716169010791523648783726277259120721236722262680465581464243129134700878631725297189936819066784144973361452011322611787613410005746870385618225329431799186007411602255971433067210757484146518098987476920912736416360244497262099222640922488950567845798137437611628432005376876946398621012801397051099416390483294950713801105518016995680606314029583895047071790599895410260859599710939509258545956409517323206331336907730744402041640115520276061150222856286042173505591290322549020377749887208085039838224512138857430553043855036604532189610018508531131814774678645930720648557232788727011828251940418678644479133860343075406083986852059392416680830434318151219412259307664906752506023270431100736170757863055879213533256005266649633665061858705320784512871569656223868836274643775992719636595372308116823806491426658688033635029941416930881970699550684933668953597736610516226651360587849420317656469984110720645084874897440806532100835349463612821414669545684596205189059574796808593548865255346392820164815722534197857360143060714484536741467904488046538124597132722130121552467985998906640996046302819146891404338848499947818762879099466409015506199771041083875694867216635444728742349259702990618037959359574484590887279891940010574896951803869288543424238151326057877168229698845515570563892333363546992168231431723363692624165374200823023485309244373595071726411721611360462401544678538312820993612329098821431034518021098688166353434610449302833503063976298541512685275997961974838284774212416091178724102122120687724454767452640788278733172596504722019583193291146498165424992996797812052855726109387408439403060494662793210304396282498769164875948787028046124826022791801539607215881905192843946529614292282792145758402158239971076358033817414760006230316569867404315837347870221704456116648382720456534460786552310299809515379442780165153676619542853346440596586468602177667917802209045246952021821935971707514553607684676438997858148987351993240811538535489511456993136199131374776440270205675718990168490895018860448947851826459434113832290388962286023375591340364921184946569481026903457098498296547298921419244386436016697832872507250272515279349542934564098839919918233342622535035257120209338585785000312992171347576017064376346727188611650529366091239687133968516919917661575090695452304987571769409573576004085154096648851821452648326213494793131663751852265143438812050384574084070395756927574118894186746092768609314857123866803044481320359742162231257766553478547174389804858499492947432340996473059908463365442739494846944606503439715494140629362102133419973933531677898550974949035535693612748515246391570529626312317202122101852920740519076282358519418778579436090937950881770028642857681145645483623285242976028498568230037333340214655349905502357025932984204142148020196985347500837664467069508647269329366495522569952310527911344503064992819746611986820959439669675516831457766290017945382167778136924456228509359160100379621731002426948995613569452984366472471219576069059992910096451132873084231227179660699829328548189719983836016045530997557039848347502993007538986362788795335222224441665143066726426359837202533188516273968650091629469370416172644078057243096694818059015692615928022156380179917175513983086188226528716659034745716538653481044997897763972841412602048908881610421753017217856665047486105692732247786378820930285141544380898655479817744210451617841000691988555468042301538113760053182853161858973526902949171356127083980414368467079247635418961728494811305773591159559893131765902748259543543495431495866494024344916835599174680699822468970152108613017245800921235377811315101964789134002126710460482422182704553002697079237985671894347655880228753200943281616947479042949662816099557014344425533452400008363338851068198781053064809212493806168361169748677028774630879490749798846541924312008259298932677714158506433310867326666868815374410806517329473475027195008369694453783195737428211602784247928627942877849899806005305611789567436518561883919970615498287050500721236398433406744585614942020237266992932564835827911955489372286687968932993412499278408359809827362305016172191702500433089293042416869224845392742552569247458295811678005521422656422801004351920982780555074671948612981630533673564136470271285009459597123879914414298071229536223919361255241115955484871287052009383562905459063552813239852557346960326511152617834200652822872261472273950624588345977275869542036773203886675634371681982675925924588636126411160745325341330653882068211116364563572638553918404745625667063006054445039454610271381465554380177624730795092164222578076892516432990729000330037787176767897660392384761546435317118627618306297559251028837564433587680140096003930051548990476839740094940680007400375624369612100684218867877492464193796220457429413791084528028501891502972834866221099956070608648183101336778723788835605068147507776520938928289653722706787388578828232766029707088666343083574642617280810556176865394482167671521979844076722049995379882607758552804031786929822369644833456318487359581466425967015861524894823454681815587061920783601162900180408040141283285605763301985222232181969922975764440985799873592994710903534903649038810747134282275136084336316284420810880663271323607416700541522678535740458401062459248027467133334506043501888626532297268811392181940953598889547701835510901362512336706508850294502088529040144192858559757105370292326227022932405344541901244856857973771864050528285494912396981006851142516880055491017760681133498343669602668673039482074058183849219448193090359322664952131423488175169226478104822232473791702877590309869260958307738632268229303621309798640549583451860278881835031384592514912591766266279296687554079205160962936070224743012441303365078307941981915623982025741324291299981055748875062414431268363606600217407760858777539708121171921501659346068371360762254680465935808482723632358760575925018148929250272186472371216347177434290867479656014535384805077220106547549041644202923283571792449469142762807014527286929666228660730290248712186116789891967253049674156620045031053800099447503974971206597792899792976654124230384057639575685900202232649987749273761893719337294018734710458532920272769637107325641226581195698327052977064189671611127509146060276162277600195375767605884538445004372962602022692096878072617586853462017718970133424156507591883003598146707460056283490364445352815042018879727424653536399937599035426997714433748026257034017156874566193854167616369982515793361701836848966911392286425233229308354837439425447995803366897435947278350160502174354646457438539533906450845350765246352851376767362208762573314188989706398831405815440115362645000936806001752046091223907034567649037295483116103110580264643638368819694241107091649367466741549989446084950957967745106357675824638812828457254074808164651615810093752822497036059470040056402696079254817269166914024909367398260551853462595132994733468573850130032223745217923092488323985354439748312903061619009224169526719801307492111094522913414979214566867311284632144634777149316628572005193555478519713108430797099873889827746616886160881013707317982453206932437439882497740398271289910840910699992751302758387739649052827180086670402199754462379811837180760754187197690370673660158483728508430241211457219977233224612679449730588755175515475759215973039659813172618870784947962097520818725432448923741613934333998020048840695504595314460574882847452415818112648483827242856455774497597588287268786188086072492408815662944516469853628019371957643555502830920244202259879588760755863971167841465265351039734818357731203478531087430103156535797171530738352811102946800008959521770746264510927130548663302903806848543185180826208199463446018496893429887854790570672169003997225198360012149697444986107203746460890168376740069300099507755654127584193228186581245300414059075204323338338598882408917095765307325095501489129275630571707593690388695671614645495199948451443929315972551577875589136964763621182291460834273011736166173263861713178960574136002659834308174598270691527085615278894033829745094753771798923601344453564405687136704188437670520861273225608862404653118731146541934397036244266112710227710209144076426429786913231191042461743391063170327114111193143220238337541390469441348821631041767999009738508169440645983632792579087782123019971228777513544578654761033717405101284494964883878223856230649138725824840976274311851172730562456628840912466447678171340958603206001451245244251371090009277292929435401874624350328678372673900684189397777034167476769669486399662005795780925111604855293567336835563422793432220737715581072715506945873020849436464196919002140402783910847934730763636786866587636148034333621498800817233557332402278351550352087931965882106636694909628247355239267212624013660476223457346069954079815364155847348045801962082007411388440273012531391641208004845976985760655554932348287174061799013704497573611338836249803352983426314640908381857920468698453480687591026526820758487998385236876851364121683737808191448001547869635073528098886403790560949609743883503198288889951837531871345214832017535819291685611462143143979052299701865894596405856349808876975948571137475967587999973502405870048672849818428205745841882162852071503589874486389008604247869489927843775326801696213858666332470612465263893003559549327242044580717418046762614226816291160444323053941776066494115976981683847482786003716073613130872391322713578222868673931332000846649800352906447059882386968677121656241473731477289658405692073615564060629862365268957209509091746086867367264230242976594844093400362162382494118307736816787502915204246418363043183815982527964369928943380795264526560587167770839837954609913961045711223819664460168894027808767779713361017611644943440995311611975955821080252808534984312783267571758471675663007013500446156579368136194990247503497523960949748686830035945822522502159813223034367159190010448518626493182537415670699573352695227446667087580605116852031589739511235654214602501289874554458377324427017160332905909376822152405159906405222320025663752477114888615755210086483579461686153416703104007902231024521203689747969910317112251139679749294382839568898475088030863676540301960940026333081687798698266663565896657372554765771527113744411678990067219610643214205087769404390518563234442883666506997106388624382597532974248375423816611219664447964080597061007293315176143903289981724339280404956981774560457448724256101712170984368479064049916827492363614515530640584434108521202546175052191591017781454555082476497533114061026810173577867206509580827811486167947092706976214577579050866387043071000385085499013890848132637697156623392980270489283779962141159106123195351302180289893729781076823464258645135061074321531958263339350614751629112681079212238291026191634544284086038065298410785419599174763826914826271832862508891128418225053584397509647180148004187927994197753293010255400220890071028690217940289537570115970959278514223381375758050097297987591537011933105115963287494381108452249507196895522758187792261006993038052769505164878365964248556966362855274972982256519055089360841554924896412019076946180648802688205136685469352370976797496004506282102095593503073464804611223918457383181132813884016840076086485202166580215476887576867110450420479308453235615412616708188253471669169226593524047668469868940997171824417884431026907632556247729344653954603560336816626915999302923531726252267257384102879099795037123524622899112959485208154763492364871580276466100495057441826832767028866965294022536656163288751933464776019700551390624255368643741696308854835335151844867754501977290918411041579320357500198073767527155199968960130389091673028789310447076077688179702585846016364210604251929152568331447006052185897001731983653283161158359635446516316848311549887766426702696227364119062677372731674255807549276702472071463844692582566896679693356644620057151534137597250798512643267562568632614553047996162821847058312989915341622495822730261630734820117751004480369038032859003805607660935814634501544503462219455312933466598164237759156922196598471630437743837293582196517409760359427036632571835858942305997933167666866334905200081017324231085791538824560183974810296579823499529935517656307776956007316839716937939177993551597922336237952975769975705130116139929256507631776072278576011285537827139836526335937362861084089944922594051259935655393859463478212082478062013403808499924298462062113399327310975234523334214640790220173852000815418908438909270187219041997467754938314100158329273971056511741341832062038267678756275171682739536246379346506750691287746455467314619072889059945666863661672637694655771272549266349161845924324087205068653056371463485271223525020710603985659112864918385558368706335500692599775648752423400671401174572310840604018578008591907385190411976661844355533879167400295097885714226562923691257768935057235061784189045312587152494184340212054678613306887727847400323789634639330109096867340966328451692379585881165077271699988544696315280659259731809601501799945402736813497380404413997970457311124047783470639655304544566084362570970517115426333488417662273611853943819287759977534874672081938338301827046781745364528922595291983625755830020695481997281705116236929322071742622398817179287449987540863027516839458732998276900652077573898717794912850977461949410172615235395883792213037437069676113325585055541603514614746394388673134828662445793368890545606875643280904838125441781088873081726140116496585207776957518491353248522610911016328329101826506444812400418583313076021982037127265288255092160514431018157586890636152267688007450831652220556056723606686818631303705873752597637707054190029582654641816898781462631459573194893967073110922052030414899490990842068062925072116438976960853263460576227824940553948803736547705601136791033460390303741394078608562481384177681390088142444961605776672694179897027273787626098045847389859233767181092006865626405984590903371444720873597255491062045135376322945104952341658163397278716293024389699407805457934979568651262807559362196082036149767900445232835837282354919198085261789215549831841811652994884648732280127035279868630347837949752221461134691186819308712262927004878524628239674829439354568212380013658698616471310839622336405871648015118135483651880139396499194660611149947872048629245961785433835730914010537544818238782623709469478962404474654115671532981415460122135451027735516142994359610265699793961211700482092756034638436391981284660899078704477938978800275486488988499000821638561241280075830471135120228751503663863777566947378675743361866222893494109074339526659053474357396302899752394007221521359435246835377966913453623949937119832860038262630771255985908812926892000272280945428588635896552905779239155940078573332624505255544776285840673960523494124170627832431676681468343918979094953534238574922709139570789507990306150577786739630182187086240599168449852971817227121600596299374578020005085274317050250697264346125818906297136166068746168754051534910257150659546948814707432440505499667837898040240365743915397567704004309350510897557102589556291691801627666942192103382147295372068400931178117391883349602916218372174225399162026370449610429162870755120218148037719894400320155234890691664958643233906151462309696958354690297434027530261646792589929650400475607616817577494099672922911355881748388012743162092824061571940321011195882941900221303428376174918340526614114684974137014512716253157622816242148271128089861185007552211673772426092619282799110987171788415411094765895008672451262876836578058140577485093015487713307262558600702191130688116073597287452305635227817973593590444704190038399468506645018285623524335900251004351599672225300956386210290167003428012363718227937494539759429595239579643246131958533120461361959905259866330374738373236731011041139166104869518963171173534256893328199528540637029486439473561975855907850623991476847424990508526870457360416531959890326705422533044914057511737487994361912893285444351697404390947302760039791672010915313091987705018629936995952410123801664447172855240891521893195796323597498741365609193321273190342402284757374425213045178179383426049690236221242443386244223542135729669050512091031647954589745052691710362444131380358465678686288732665158097317701077078623514854288382715949888373595107799226283794196563552447511755968673184948072720048388717696273197054617445993644054764820169970516217887908019940942226359647354950953300477214770655381344039471539045019863349517115486124669173528425693715896135101961170617887508195949315747994444349759530313497369300711775061446374226343925201010299414153204207650974479367695815481267785652116361392418643995341670447462698930592768163723992763705336035142863145143862182553553017604611444506200299338363407808639014975683890866536089387207317311188942991537325648246217870170839090101327408215765355782398935860444034367584260989226038992231307530282569977764117442380910263703031360963389454726036496918839926796144622097181678734422781046693215729407513760541238353985619235796709010345333937360144349479666971867323331533752594587482970624885494106162265422914481363874680089918699969999045071237587064651348761769640362444748930553553840525425078120139857291286946405637386053193366871394401015726691531139439576401695638052152523413638703516664409286307378946675002757138782910921401354449192612166005956421389578932159038970789369872277360780152005233717693398536968177202817862760003457179109493306562568974328755270331447013748209889483864190032226869650492139365002731105348715750655012785195475152728595185618954916631300475648559094246301010953271915213328801323834213794326979954003603067310081606915513040943033508074321885916400844536613349940056389953345080524310046611741329267452203613210765925448475983081339683550136115129015673479981230544309694522313110057159116034580490876517448750963945689966867083406986371402361291591787243727353048463841644720650086675212589201650350759676370470885840002006064359716537462779233128984726465149985641964318618793828045443672973826932800184967959849181607122332104895574946662021587125584751106003016875346071250083262661997995323244139793116088121424342332714310306049404105907520019095256727029413943188799980126549763131686365465898461601682735970811484523439985346958187230257197481498304921836104478969555903459091299506694147336200191726842323165218383768298658440800063325990867684515453462646386689205860546476654287143535942002040239817707387136115453632848172460117275509181955682246650272040888908958659839223112817832518374445976776031600760108920247796497652380374177474670663939032805806213086315049764743545483865053928781396394204323138343838999302599909188543082322683625195288504584189892850262685768997529517390711593876044755127594942198906805830433042468779628435108606883138798474991321094628931856218604603283476035965645754740994776186750569349211100442136232686574249975809613249812050274057451527661985717263143491648230793544020841423512191729224958086092894107404593009071106991527672831073884263737855955324153499118536244422423631775621986967106915888739307106180129432871812925079552089801351837933365033539695508275152585220368842291196969919734448774907723054083119014682019415599864592794134811275786568663865421050126462270789031012208690254936914968676851353522486704947582860546938493869765312567232200424967186430130310029053703509405264633907829306621861792575436135231265359907945481091954315008575592398715233457678578013340147263916326080630361924138437809588261101046879941189602998449759904310439748715506673312294654276674734066344627844784197579059166372746667039275242491904698148891390130031550869567103374212236989205220333676245555308754450020135569141241962589260779773941918790185085329516446687498058075763529457292908420022961164537036225397359447439997534866931362069300605779291664595305754955384134115530359643674898745580536155059196012003561300129717235085490155139199964999685484734997196907554168799788649401993510112842207435451405366590795300384045668479976485863844229307479565214947572287436910897372763207961395334871440839685181251865778939286384294967760870437501257587139380280740215918498692289837393058023166805996651334582018973395825751301226002318749275135883221749842671232768560000115093021007330312825155283159181607623521170121813136608935711916572634022519852509778294683087291870584327059815439640562367812054495031129054936093804581183087677220353648272705187047903402101999183261815334553201084618515351683146503127661645401452361238417439932418591593292586557008916146663579241362474878760785903144046484738034701126211185242789367335013463362771107038639519952133243142750263116541865978821904916161692406742407689927781302831873096769854042781935372856163893363353590919628905068190062338634965316967943810783343791817394827416965065953583594131362771738870090707548195214515935354456668569126417513228277387223361524773301990295137139759242283385992947994021706924533491333045127502842928216063774525552815156425988691243014651574610500667514179647774190420755352348753633445735881776551417278054156563248785741520974966540908352272258741315114311478657018897364212779971123836842365865825714557693844080776679869952343924003191815561934350960435819796369568577653450264837576624069290583597404971470648564734328488503148261633358131424104001622112065890859413980976232615872892259671153313072228423322264961970746949658197883087361588330783237753590988936994519571557009679658515214807263122703671254250847157453156407211813372113143967800610056947477042519180571346791823593388659179565030194719283895708529361349393603001068486186864546302133471426170420557908827228994212627519350156510050222831685536494674210666168238375836598858297882958355284167119658935110524613055671387891163448591302681230625648681356203054332275376406746933409015280780386737252402259470503332870216396674664460353374289405081724052654816665906820134990321868830447526971303738976267506063158028581268840424374796466725178192584335566101929994941314767594888738555708576430772702991401702477292794485872283496382461906973494508010822326308875807901791508374687894711983464198875507976190693557064721860804247085412121960579860538099122369231140914767301937387364266919236858488787370824730658986158266651176181034381213316915201528709994275072906460841701300151890854954474725703713111436533913145281980963901203365404998980858558438042952019522937253329646367821297531974759345754323261501735770329750422849882027534884034365844757221573105061737918647924470095225418711076519700749686021652867005466388758017689637133457695384208532321117708721507398423166877379114283550452222051288509995462186065088016355093414497039946872806675104217364429132116862071029522130877211345073128253180898843923229308636972369577156000443631078346921480958766048490814756043065779086171592722005525465676133545111836374067194725599487169895778852015701590906961898865215127522916616809611200350553840988451132090408027973981305143395215771407352473055849246728383005439285735980823464767362904834225194765974142585065444677381163013903741084734412360195429055279058369428901762345662701755658202505313273571100312260151357786257201346393309134652345988178559319725575309415038233956476718818995940565410593559585109795488350164821310038815597208127469825586550896234424991769686765138441415431100028919724858511475306795571458371942258847316152902708348193378986771538400327711702962292212095371049093514892028428904412349269155804086396608591120574579627231895068470757639322188898064498099020199550451170818129759005327066616035476499507462984090700438433542632444362412785781992676984694530746867031645528933822230778707410904617134474339661817197038135649635542169020634389144752209386846739427268828198421370905999608073027871953841839139440308720010418276152828381117288841718993300151015525012157937246094913978424929267096586537915382511585557592687195960874189955484940539568164076430581932203896614990660528697055092834885658269460969211779425502380784643068626740977191350073589931002773337342285341721258207991143911144731231827680003465664156629481480126739166247724464680971771562678392711029793447167773460089611459184244334003960479429060682050842090338217842276725969181970406369207534162874613113382188740611688673262572873658281881096125403919385668797249326148708815073417440909669715770128347480115870664952851411950649869432929031007375746555950338276907153004427010222689126035454660913671662755902151331719374272500478399355127473072598785662188303108631361955764982159715299538853933906409006757950189483057253478047306495356605435445067850534825858611536388796409726820034346619266865191520615959377275033672456258958095727039823818779739469245030830046988042030337756416966996222401086568772704928986086949663521450267147111551504588314267930543074108945109547556532647026993763531676258319397845129906309148287834221989933659314180767152629380262416328068354525244087969584194791697339571045357231123549925318613416520203704945264102239249099646221971697560602571356681151059321780405527514986051985478760207399260199612252781853585355779054313262940577760561875818193259829682930994373702237516098792626751889876496383798345396600140175178385954156538393591511808050114933139601526583777574042511679201801652456806226519127243617094184502516089260995562120906339108435602967817634634289440089740572162421348939505789304185174639293194250672548485096028959328032235698795023216854565969577493203356423480752856452473208325669603021942878856448879284405519680824591039285792397550605925633635192226047809567263856102379949836598431168197518193786336811537210222697556585396842043989350528336380785327133588511088177009801761140291800682845259124382042197355825484494291384486383322136225450990818054161653784141921967470471683039798840589101679784900785449572846936176786569162470278090785564996716655774024814934217596326860903563450023590636067936757738677453084319924843812371877043075735777632205959072572073384805447286774392253744261291399230718392986359113815432021178070630088034710063924581838837108022991531857559200987495584389654720644903922507717717886575910154002342401824026340693940962810535796363705915061024436828037885063114056224246861873481057326989325792233638301691734255007109460556725412584811420138878140101536674910917603507785647476763473673966153526859857053049072316201149376684763301652625494797568736009800211694581574496018767065808239656470586522639212538410643636256920584981681567018033397278223486522078581183230011030505110529798837010881853831937032273472915346235579886584534728605490608820638722449157487953390411214059856613307848292406237097638055572559220715239576320196861309185703482029333657679311663204976887103266353479460758493723492599253364577276842659941112444028309030991039755824219171940590609713523504217578867195351348048533465154430729938361925855594467303892315068499352379517307522217241515120481051669415602479318103403183695236113282448751172647764901696776723291476820173629332951339672059269901766765184074410965776749748759538779749368220719187461629840825868777363625543090074808692272305319183806270781205533412405571352430870570771274825002258915128849875140300150384851760604504774884199225689651564421126034659803185280969295337609367602130040669561045141531626187836437703400240079883469256583925468598765677152187961900950733105241966850213820707513791063554135372445112774244645757027087967050599881781065697489576506263897368970579196286800390166391213407628692158913389805098915492589151152668647055831056548029617617844999001758181419468819436435586372021372097328833713644702823414671660702486605960059381343218514717907450349550182510434912670873955181556784707843506548793328481773876078890323094279613161451500730914561552704231243389623298471892603192836055721963825792711768861126633477212106988617867751764800044124112543587546544247965757151076209633015823436636242023680630713703032061287259314491065669194620258252296182182942059055622493030736480069042278786764716500924595483102631789363259749643082631647914590098432059666151127899265581499970033687696031648728937519986024047068715270690702557563560666685114699789407413081838654539929988602427184431181072540953892174944978080353529886309030300110477142763031497998294746591055625299327005073222901163100006690256886701524304001718658156265650556432352404111168706631810142968635220770373483947983753774143684997416981260042146733325331813567648669247637288893060433275291398530923927665958137730480638551714238091018928051062860060197308865537832920432916710061398891123926515834627788712178834778324901807961599467853952487113376508902745252002388929120416171961462960866019543596735045534265047378714252834787828313597895305196484722648988904206008188324011058960976890652873994505079607145900925059915509668941688371033995626597148891133216844523019830530869580270293279668599218131468311012290393562329673032155598449491261527296364166595573494818981234169789425670019400552450426246240046187376533858383057963297475964405715151292282415103791337015717834130420500934866063206560557748127835361618229051000227836713208402710904999541833414921065715237628410720685920451180168042781464809955362094151445053425288148294722988262593833421203685120454078025834530220685101995497770164794371366715463785012216826550285240811890086118383529241857440143271916027515211184536391119381221589970177420549764421620558184081320428124083022846534550755512203221811129188842781002894750296536490909685169562749345720080644984246399290924693656444885524242407068561795759264828124500340722370938111899492574370244900426376579378653563955102642330753840020236093489301999452234415569290239240754423664306694777953563114450661262462606941773563019453168003835136269856542721995408051437188597526790710513295543624427422052458329018254333428410243880418913419343563846333662052370031094519134852968701464709914691229033771461376530019990171011875479223857328343918432429283937904941947644987693539510265331694981204714327728584917829529858828362791538971632367947864604613311841010745993124564168941497838224805858751179702777041698969979360498390172978020912052966039812684263128230749685758338452981974255931380185969935021082214558357906426834755487296202945469744850626760682322849261251774550556086158028598613631773691279414589961506402138710102970285274429260972740088326257689435822369283701116093478830553505385500010406369611225458544906661391604478396055381247128308869722605559226626402823281868156693774646173777929890167952277204281988813291251036649244501051789132541737634513401847241504585705152394933994587945073173539015676550004035987879240742489868832859136697441836221718827451534567767931120919572142368221862642259354222975511285837959505436214993497691878230731070513198524893193072873742142242383951773677550866862334457871355165899255070580585816233249729851839510561192283529568434808946565888996500889685983117022885397024244191199998241029042723959084206262288567312868293013023806984358379055355359298051199993368419221814489114139298575322073110129459995981909517028100452445485798053236323475145182235597453481558308620283356899625476646541862484973376035695365644183343702611331931274212631888473165658713156805764469726513061597131591125555858363300556908495924990380115326052577335126972054994687984790900964034152222497120188812099875699651096667454256612514279227847654083755389545654354573086833692305491809562946270748984531959090668803766883289556841074334386951153152649770413893432299184971349661950514780588921240620108297998931456843758038323398656767206563060885446995257928293123752498303951926676167998638880207628977102299658589936178532073581880057991207375870722728585307530311261845097123958261593306609318126564893176676327719920353903515144383741779905322265544393732305556887824789907864501049325196531239085740888097203459621308787495592990950396068711374072312553055626807871495092929744497290752968342694619582404965001795709492181803414464249738791187548730971202069509371035458519776655946141715589805989443949279975272291464833780736128071381842903201566140956950082502831345151824471450702228179252083752876597348283411889957102661646060557860128644377691780431766215722243906752840160444162385451630712206847404603499701178981362471134672927744208985724653401224155808879411257383980773637327347745048747961734985952023071157509679639005793168638341932350384155425409985463918448785712967419660669049481911893599768220117405817882110665748165445694818954248179979983871100273277167081188655892748618064410088002189344385891361020768337133432581722062410582525221385674962845231036321210725402191504008540809824748757490753378388671054196424246773774948692906363611538377933540794649599463089116046274564856125375675449694649687943375559382429070177490802053696179058057965781918354333920697283013715893998152099977169619526314040902315453074151408028527874700594227362285205248561050475419110319647241378600963646507553492996575153982659520684864465598516944623977942701665529577563930887623091664702994617365405908533538884764148320311846535407818110441756294929152482308935188480109373089089831735585718360141955940367894589040980144297022965080998971808913177261843007119266586043624938656761938592483079379681844888396914802028884087647108005282961560946825267905487601213301658039907491804168841163106082365796482146999125880490628079162189321814791436662242206475803128167037298332832969480610653220818174900975190286634155323990157962309062502727392575235025171597745219941563021847147407681273834598916914936430319532551973660701679297980884997113531571418342119753905156442607978867855947759370249006336317841098705430131380641263068362532489192076465881472391056790039926819490774635790772524511800981952136896067165956774925460783595330165004356143858766124766758435412117930070472720931069149588318732402002827503756080672147134927187389999976621460011106986791837957855200094649708740107773835011541260699808954129227537964852395143049572847963964505847742477030978708268080726688045690379374136445708131542919330451712250725312865129892178991610294577156958369857383184439297848244913368124896480015547811879589299025004317123058470873868400972462209117263592906746613673705030058352429071041600092288507488444698082981686148965103190299389845414793396600080101074941222674909677023155048438721852128793051360234030488128838487827264006341085862895218523849972315863607160352496023046792236256976294544688155103829994956699997499511448208258918408835718020475057697429113846327416122006743611214060718616000193697237538887948885332585017655156444687057122039321925052379156656228848753375422191442376022167497373238026233857989890398297776632092565831591708215918560290441347161638326109491646927370573120399059064168873113159591012850367071493345978826552914110099637237981994846047336564653972253415313400701170674797716190352550863627670514678676366025422527036188701231377123867053206064141966880029690549981907344698235037877010785841708537659812589972797181956986172901684151888291369925802800884683034698650111160824548277003663403041441152802319135694145121330332997281543492853185136555257720621797366379359598710367504925805026880507331544470588917947117454896346763753614234260832885923993370281110048448436968389379603309253881667524127762416861611522996250138816869337676950364219563800857841121599839364393470568324452374720792014164056185033096812205357642546065091688312153605754815661761324403321059349462139722067362946921609721974183517711284000948867835168918322018911498249434396053657680905033452829267573325578437863978529102876556277927015385049938566199028249556300368805788688778436371365651031862406376412963637275517797219455914709203804417682820267998334872191003933196214691763765702793158917207168506036254236239057894184235791978780237892295931312145974736479788032907308155530258835594838054065171620235738148183642188026634521866825264855779781610327237514889913888546722075414024060158630112555832619952649095504506740966495546477831780744292458523073517782718352745177720325616051750159936004170835154055584792334697251707769661485723166972003527751626364183421287251488669217844281807910309712284818365788422167081459989971583240899127049345025347770416160714820058182067652064688909702285188418816557560426039270198602409669611282436777720155248783131223025536885294979074524883915652400678337940106380685998879086188391396163660732457588891456248889069385558620371953660690826969306774722773349279991652379994380201710533214757339124021615027618816215519772244516699084342374449494875380493721701816245457595940422550453359631090732688818537923520895998389908423000086469850833391122639641059525735528578400078074365395218475308332002057870705931833057005825253214063427724767806217442869831265457970244476039424561592587641269094501957853840845290636898698935013828386298695336475687894665086072487214346842087289624811293389641521898077412531961696132991911344394627256509184721906540095970768418624117469683437838489218751008956108517748924646378375517006857643546615347477502178171897756457014360013182505298643275752857201193017971797986334562758991643651882409200819135964197981921261942587433713661018272555155475135119667898412288281350937926220928235506081377753568218725393510541809620866668877735088306789241576435973369788959841513486163072294349428986058387535909356777530279935251778022911092949233345298044357978536413186721227805373446536534149982234248104943464151992211154445241781151680341421246896760499767494756470208462396099543574074170727195641634038600597095397751426880975143264098198756399344715392354050816654792924689775365517804169665811313517790575983206475867181255822088017764687968550587233082796333087644877930330105313886504956564005054095231170933738472660169571300393305262239420556113878975508359469380239255217113259896062454852033912766933485978556232712015410344529606951781381818810115937522070166153542047780672323335510067209483654667614623837672402847685704125215372601565477548708323905598105311322213416983750899405206921488357628882182088104056314139173921018925223870541719660892393583920094073788636209653560992096822787229005353773004575249925919001568681580735730518234929449805801516558980096350087937044930705926807128110845191546850958842316233064265154769564044493220981789101001214321908414239390119519613166281571333483796164079732955530005530155875026708542908467154520091339043520354056507619094018518781927636939499256421336036944745502972550552494855209120103084208712811453975401563531544677713469922129408050526890472087295443596341902586807254895946663908490299398190473596983295560848038733142541689966131541640319077779648068026091584313135976881049229146474046203151288189527559430416875478252680513048836462126327132496673239047602575982350306780141539577096774419296986104844426540305704394740281449042229130575029265584367433076473911233892431730088950652162811618111995098469917672703386945519175035498700798801787511968135494851842226980813324533371348274237708369441108092105130836777883277668969959202176227938428908734254751874940365481336336809912225106678998157449515924417225254465021617120614368483072597532529243107268545378793190158582411528388438183743547033997742425508280323907825164824973325965657937091125913634241693919740332180753169818908276916289754674228640118509706890100791220488557980199799450578063391272475168000171622766880673215171318321422438180508290973800101359313850363597489943801793706397539942265782659051657510165482579393477647637868032851790067240207782201304456824526020747994737548553082478821650769150282088546476017682699486761515100963075260878363591730302923024687716170685776333129085148984685065363128870611305902240426973078618253365798900228362865474857410566092258558272754796414476775833289057714193997310547682248708093282778632673021786878508571740958931997763920381683950599707227944678761956991675682848340384080029758984704856722971426910245355643793734131250142994881747034475155968475096964950614523609510520502470605805472715231256323178349499220012290551499044823536260239341435653073512825647769549559893089473236184050932806612108149868804726538808260724276152844204851638599233741353068557224309638759837674876998878451707459947324017449306462850642011997069927443536669048937370426768403673248943124284967353321912342891091962431374666361678708519632215026388587114402426519784383969747901221635616453743878664942257884233431751469893895408589714482788298500386309473733802857211320112446470480013566334542761668821859854691958914924205100907026926481756733267348685018963140748374907517160346738825930023835315098804456212671702701059923436430351568804576927629712045695378845188351664185065500061213546118375541828772845794440789534613104450692826871814893868241547290781543293026286931311825474000425646108105347590720949714363283570138503829698309860381305655625375462827754723662312016438732203049037763235963635527875971914822315930746646193074893365815199469689703042307744068741920097048764320264474508347195363440138411651056822525878435812889127652592697741530375535503902782326492360569244664625759734092310758494502012450300120573595194374141490398054845828333263157299004403081703009368953841990847453659899983255557816596754005612621427300786747960096087407048290579496620813858164104203401021400469712406317756435720530076988236536751808751191309029482423562663314808182225854590325498364880273176550524339782004602418162364361830093429549524701511266237386317247077051227109639829404834206024211285820020336917915806062626179124399497269477335470207204588269616135263831197343700465496416765336292919577180788944259225632070288710494194010765950016963149759945757688009969536747254197020153455293144250396550082162748483517403443645037806668454325370880008549897647961737673463834505443109811596047329306305259928025312529768974163283927109698889510508400898917364751095271245278471486107961629744964911445996239610243755027215136395092955867458981535397089303562802985200246852648061553568709450043999052622331890674786956759897704361431449220558376133282664832126774270868920525895987509691017456467184090324222225921222027330344160525029194578180901190967212285818535543419260818420888149395174555635825423180105425466773474785908808054930733760384144523660745920743101607090169986873734506170352965969336778033990821443386114834439339344406102634661327182548920599391861000587203569001568651938932354371158186408504974982321567665782837471430862510217926139479325692122438147129624564871146925013490036546812517063107265187157020890450456662230683788244387785613520296180540524585195789384598153515111948071767966058567237307925518346633536567251228851259156232703788807123649970932999741420326334148346312629461072698868471163723547464003163493101699377681807185295266468414890821575722238326442424878755042010476420832092257933436205756409372514058701200175124265575454781734418337977783192005255405156616518952690111840753485570327964059613508338025149950707886899205952627964337369483912467377893008146579199992274734220435681738689206695014785089953426601394579138993089055555544138452350777298050456470386219914148986538502166131947136382818823880354902805717492076849127907398109680159838534985567510606887235848688394355654605177716504533030104229409511591623465346657373579278336024020782833980403607368004668077718184726307153184011061916347101073230765782660622041428803687262898213057951658097516311582652483201751566636854029286285934337410329676851717536535278344551145118810255104875270663296535730469100659496526000166077295590796046068156071873947656625529448078296483916839201082354023661946396099811550951383883236822547088535735406684578602488085472623946911507912094269340144863518283727033046469790717547204474117976502397096589401467340940479080381738196340623290478628546884283478085774530081886733698266762239376945000481867611118556007475604730130431229456853024379454054882445388591530011889223798755593595026460514273534555473513528325101790662006945864527257924178609593328251165974673140832577541425512215764899474835465274695945744738822276709166726226926728651636952965805896213172124152816129354607856762162481892356862471658482557551402306475290056819684765699765803079194628044046160777034175556950371790447781245958714039788055838236356148466289178868850758419913172813197317794078066291228168823751066287843459322684812124238640776310029202116571769759942188950394855352186862745538435211333940758654887436258612409241439341522804562146181920604886223296489452660291533132073354641296293006102304006416938582243734583238017187142098317680301803370958820751816960812183274271326076125328016157223707254782623473543629933859031772238456392234339519271133042496485101476946396718948288910756909482755994881397736967606161175577292563645738344950030872292903525532505548156801034535375488309574988988041012911070223589284746421948833494544846178351932570885722467667318698654354154351696158582523784225484672256018713532141657798864268512583881545459886370047195718985199423326620959310105368930458559048831199614231067170652714908696880755487893379286641637717597073624402875159421103835991458411073644468586931633652312313499174478257821899074079190009004676333303340385441024331607541463049279838709137500056680909425194883381040921645681467210257621668174588496369393866277947779786236518985325510187445896177221306173714402585471165059557169442959680980285933626552201451934671146613483549730203833700920816741165941691889789849721975708876512358304019165563955622999476985837606972171212559815098469569716805114123569789857272577773969498475224783245844623553445515422275432131522621502194898416154001755803360762213561401243186441374031161124111301557202974829101764701534397432461666282633978068821523620601202954215420070910210592051999315092810385671397039294874549691837304968200034462712354824070601537614136031861626139420837895944706826906070755327636893344671770628846779806039437272779809419605634551732677911985349932598215181985805144611689457059006010549589859281270144004910816834305667900157172993090987357113793101007066213028527075265492173025908240688447970246055246020384103039100019807804473674771348352897184252020963977738148626871345708024425343045780422053917690898317870077628509567144394770063489810231660181710906009016523546288045363747814896438190010264740209851494051526357716469099736471852357549539253347560747770377705696876803922173087086312470439241966076755434542144398006629161116402613025643954282874613869708171871494167717087969856566745601442086352873486071461874878937144622288540596036826011212777694150671022641890154111953198949105013528468585087466928994015155313667412150263600435418730227931171653077133500023749904457553127966601253601805440786421269391766666014421165279025441953266366808326297735030645496482257604203793773211557704530770705039969772239663951867044299871914484014577618434873001082109970686601439989713658939249192101555565919856486380173145675566821842398875989002046207176593723769863772722679789572633353839037018806948636949061954875012055002931544848383536880632732711657727291345039847273711053958097856925658177580063538097672202258361143744267187525189173306779953430187263207702246995516241016506496558075035555992318652656748033614565701442958243214648295134238624304131852003704210195643293212733810688706846181372963800797942710946600981841896363894015061301145938476606629888992173881337299681483941470314010502108796588930258533444297267393481827387415558351627208374902758709752050520999005197458481073418807181774105181858682276922995009293894534477832466821691436719969667147205071073566495176608934213737463388926309018744400142146144490827214811574582556563384557641164771678137565556613883565888025172767923999325753643398458736307299215542503947652553168562315161846964646778513620855973720093693695956760885966393416639126429919401961686154217185221290700047001213110497105436805921073906650103233041918859727813435154437970403552151162686471112615323410264624989514053471978482551970314724265747818928356035636869721299485488355560327825719569453613316080588503952071570652654060284879816145366899125640906340748589417636774214350972152157984608807382727105865169113340635713918303249941360595675784231575527964841404660858432027910140835297596292380242046506721714905032327707875887563624779197589919743609145727665534326966616961786446570407696026274907835796187648408999163631116511738665672878576927535479446494568432563106426877792574582636786616135960559573294212374264886242934685395251115124094506374669329072532773591201488388486055775144320195793905407639478240212532268522422301094601843249530931315414565254568806692126212600173653780911761092201255477851015560251101725050152026849213201436673416690267731974068295836560551734028671427335186132678472681733685881581540847673159290386566178777271789611454585475607859707620764377418700865533256581287858435744648391973805551943926196881838320067361230193703850506799161140654670724845752619533498790464544045293922418928746366212283698141885973746484891477525525950420201755196367642329373069223936209111173322875419365954274603170280097209359465555205646124822654392605270965970492693875873418955045585435631656966744121097016458023657410460198279699429011593723889255149026408559800447180541042317711105941967369129715667259159332586644545044130869799987808630792125121858877055780812926697908217828263738901447010734764078793578996963217902747316120889967632307306139040880505725972549817067801535341200185235281275192145986155437640160130047418538337076033518542441418356657323364893441084091191783672663271106204225166811780271513792795276671222846880647662814019137227858836988937228718321828726524750902612692944872568845102673895585835391021345175713359464278027096680846012081674876382106369659588764452583683942534814391427995257911196016327458931212830991149581764177453137290362096603068507675894748819807590505464252160758778836896922395374511151441624544379852704176808109592301737143271456759427047431169359261325480258690751552278111661418414583370431033734449108695366458491747499457235281566666454203659634846839981557871981878079682646397754064750502429673929866665747314040583119139335182023295016001767233585887046856471068587794374235282056865771657242481983294451044767136042286799624904282128146588501230154608553183006752908685339865674788677334707184871565151319697167677652962417906784391449694415799597835834005993698385368105425538913139217079774900739900714679009485276889147945290311594598315873666478388871478615356676631831600647057131090892249697252121706093500299765367862345199782270684990373112577550378309897684012617259851197620284114609487043097622757568089356155286829883253459178385615249040469211847515315781138203489261372951125248276280706876294865129439781000273177883728935940635397874758785773135964490907024392270680802608213116465368436244336634977973370678590829515018270240169436031405603093255448091851185295640593227659180644613565411983548377178896820720374419247693198070296921313779799005233614162821580292880664851795105043533683121523556918611882833265114486957033951209489935571293427200278968634365760823957636332082064963479882312997235676746747351474696295657762840781205997636821177490235595966104713019734348222148838953822073165714042047095855106290032973471320782873076105934148665909646297887838904508096651622178752490128475503329065362517149778337512707081682105609485568923919483251894021352625449480646249404706352041618723137007626584487535348747579415156205703734943660951464374674040195375062724135535972614860242123284947574857945143918421762177120572502401003033051564210268457857152408817085889056290941540564887519332329491790417280896999458288847043752880489752406828252497603451096581234725854855070168362323394513685203814679480522474864971187482022559505836534455132342390614730869677847556761269504487047116620357698436948957389013502406202236232362807567444061864611364049708290195869491033074168916713073701207324325518057204742587744424681960453629117874332270313946702396651660956238314529910495945214848917832329698624192551276721786989585489647637829904884858843570666180008383587645507501505393556479496522964479628762650797857446025911403152341580191031671665282955888816664223518484777307349792452555254285865315002466284119085176056860281217827441603906977372390200557006533681261486841240345818480353303985775927982297711159075928685329803014823476501338964063272751000821659892709016178118129391456734622200654261950770862860975995417478097167682188911820179700156863154965611936019490977922428694337465621799562181349401619565864121397196044755800244881518250149408861619727460109601670617884086778979998179907324779347843390288120114280547186352808973475624128214073754002436464253370603922145006242470242154379945833058205891657652047382489882155831455280662900177516021178189671751749389062864312456722633129527863487648317370594383640364179596503220167959452020128879686073727128425421951869816009629422281824319417185568975672126323313067566214738417654116763019399161053678308118592857459825630627249635653252963455228340619833944389776499121682655204200035142380658980815989314730288739754892543309154147715617277985013736274620707512743597736650551678282094140325832599475343327181376588095630213049476013506844517334522996709156406118127450827805748319900615541843191672290161495018729199117293876358628188417667590878272134645247205058279695358392329441536491030947620846849132425148706959501222909697224337534048581128354551174561658187686557182260856177186218675106978068486314444772557332019848921231839532934236158004475895277592071152216865712031736067958973766609344350541542246929515142427370987931112024300865388451376534247080681757486997064790156542124625661180265745041510591677341462609954676156811816478740253099573834852256092465140896739724793159939740334227927941670684850655074205675646454159534419075367187743819771057936112829266337040616793334994013924127848000545786362779595156344088816332272399800342424466519001381900815619167466705378627857513684587783504080099915927341078416727652387776597990383953781125041462263250866732379334254456304392769792424061723551430340142558098528517340615753877142293095456285481413912471651466103026112781540891993981478312176655764590545755215551951069644290425437753195829789927835061070812312255317494798339371232494543321136385435334275197723885976814959442526114765793404331391817455909154825311550005006413686774099919876144840061399501445604567976771970317742120372884199632840163988667736122599285677677989135290583818654504705537401764394054312465316319728295888120589492223116816552882192472618293793030791503394482120530065923669864967151436341328538896105999797263862886527486155238445976638414078049030869895346423057567869878420238855047105645358956284366418094419165269357999152256369205220439214138438680283120384065132907908481674770566482213794349050128665193725395014162422753964881765934406007049114772068116592999958432857530356052164413801524974271419278927117326039560045215263307606028585431802450946550988523077013640441938781470608832237844938067146614905970435531594818157797367489273820517727476123703075195829688824326024359222479380109882380723574881217209940759310745333702097978906877314063401032803972934690025599901432185079875682432798769182102484020255597462042544885918599240489597227489088964070803136759171041177459323518869412289410323315575246609175950009244274484402235917660997614073225476608214211373428794805966917661178909603103750016230481260744354906486306494705916800230139290990660624428736931392128182558133957060791839680947554594329333096425643520939074188394157873856042962518110843625925313278753013814793341450221041898774671552614856057084149802782279851005228834486649135507938446311629904401406402927620043975195800500225937445690187983495825588643213489358559486912083263951116025361504175990755604195722984453048557619884114516325722191089555104729113986976257874116701661324039234390988900524088212761960907432190197497577628265383299278778992194401070208889038825935568387653966824781364698981909811672872724509251985740401855522479648210138524274306355639725589496750185429308128063687657374798633724738204223239954245683503395202075190671994051263999863350347795268193059098514716047233245281565338362377646596257543728320168960019811945290743509090601223942147519205567496356928861044940082243873505809894008128575490272817721522572800811272533756598655986306171305346820223554819549230879459416601057308827943641847967290573316297031005432032549795757794187767866872608048847149646512868872626903315876243588253112219919234618051102426645401442014012190944180463493680482868546926314096728297108555777600098703660135757115733595092611600202611713470790025965563792569180946590058205765005793034594671248577900883623624128915534013234147594340720050057011415685836268221113821398440748321779897048954963390348752692564998683184285649322365514215178244703672250257995028728974201635957659965160631908157975802489157802905140675988775872188861104888539133593033857623526764439636632385208114126060163621553095349336031896988931453705638030133401985152289761985045383761567765872639192072018433571180352921345713517379908184352196522006485988217086498117587758845521279472521199513986460134259604085821856364564241079432506524413065326724734640463807793992369701813086311249609628064490398921795149540788624931414735671372785636205840254528697527126898569453833081484745756415077589743027405759464650175192235053274689602847371869221272061660059022069563009790984314810047954184730173414763038556033873596643324994739988110279101836329186505793146403645762121850080022215877969809796610879187017197619145671454491497506589517690865833608985389053722096433295847553958111543389488837995551061131396808094810462851852645338185882605813349370214189279238938733211572620825328629184421258334342619032055921130515770394462517804436696406557534068133539022937767515012492623209074762348023852107385223155741202675828194153978884999010223798429134053647323829387184444595049406242111138607273555732974461249023455561071146349970017145655140973886399350287968993352905870222335426706770875089724207493289749351696704521111931069275992716950539122210574559984254865353689808009897896947786151442511927433801271064146288087813228137440586140631721274878401581741925742442858185378044421816373155333713259133773014380301756396623228332043990530634618983332282830846092324457788325077400398126715652509140082579589736794285728972525848252753855877378577282900868358308600422085914610359172011566750755001550029443024476490998679682672923713951043264923402549597214393834511356509122720020846392758662916006868318548156941930524928496428989453666788490372257110158435483126889471280924142133783141473588331710291834735733173728085384828659257015347732473367090975291855418565383200252916617835347533038911551865561493163698896908269733303909030015649469230643323288743402168861802961553767072779078930151038902076654210470846691554929622998816439625375389042273015393924978490294520653928651708880910411646441167355665263306298620470760502577987219038978714852294779467080437448716216769157847159936293298175860603764886688474524427837341968770690715727897691661136306499226299619599996386216261110248318383475288499482509107203501551040642865260474482466005347046945858175511118764453349277350790317512733956889598650778594128914081066030529999570500922902075246424315023809734282178088219013899193837557364608920618826758278601703182070692005227456932534253114854729918912857752033230760147164230568295108067667140276026972728269065949248506337167156166594713841704465385050160278609231396633257803881096244475161282574697593844463138640468041598617272951455156327805317147282603378088895002126298994826352754527386900105941032634887227246638095555515695111822028828475044992350696426326383265978181939267131263365197525068202253223227561854618403849149362025261311262245530841628397668049486378333532874889441971955857892991305472443367046733966883838536484144667877343601299618591765226182608658015053903484312690875822637398679581610508358446963814613561786069700404536816111722945733899713855790283958489902260645996503590357518573568723554996928949672154809170552420167367681206652975633491760401463179113796308556263603617161561079623697673325836353680793989558283336039039886344005081536916476646757034521204379154486950839393477642076093754500198725118642259081171314662758803824634868646694619945039869352952814773728511994438703460158005381716192500390024682195367620239213378378300290988780628414734560992835801960223764636934332727277827606310048540967338696961824007086994535351123087131653963850895815637338757971830154492827265503020352426765728062680990172991870502196390366999795010808414360985799344587887549189924411755016929911588174814290070707719732213477162374601485037551309030660909159256477413198611487294118404849062238404573732379841478228092864629966612486581169399442976818468616472382865436419531972104123011017742089491725607921776334328501589422341069552455107930866587634230467017541144463911360236109103622869151946698663617071317870476244829739746345460079499202315935350386615398989583823441946796869737266696937382264660867919253094383002522062316181483775095799665734135436874544163573679407079507038441034494077065848432997214288325706566160738709707150964101652423079895816289225845222790945139701140814985301747009745456197851557042771778469938954401915899500428610715800816822009270365368871659067772371832225931194484463058083153345329402596688865336493815474171377613933265653418225608908415631855646736284993398551012165245431571335255278659327523975103511516617030766531748587667167012987663452361216501877249486721766574148049331709455164171919269686526975927417431305931739468903301267177278808357731752037284868448216482022353184651177816614217652759379884544161434890622992739445319075165208241249265877253957780785911523237241372652936614514048867792936943654581595058065986378091405683126888001222771688424396881211019404608415967298228298324649815112203723483255974899718572045150180762215147987296464275618935020704063777748875184927647135460091910899803737554773885982382222302697826616638718021872213955252063536278726509990687947982521633887695918994303765410051021603123119489639714439460762596064734698812759679619087092047021391510880825306498689821937961979775096823469034201245334306324829140931485276838436207259469937684276897625115198095062071179926866234192557799467617570706389225257466473639438490019988488342844174708091495392233875564261557306204983763790046868313109795517367965639769415140499648258108790318855193472924773153019130422170327063807516156574500918547252437530045698284796994318637807370506480006503289858650531947887461022726198265763015359505215046056611034113855459179395812469849671774737950379014868795894578883507483534037503944723142291347289398052320744319059241637760418168779566785728406649792115676613851411462163558398096329630477181467317858386931119953895652704953771369848545631515409209133001749265585904077252100322787993183182795919214303517683778192436668905318876950867842571387633998244835698970103111316674549796119419357996447627482707517417613681069059888567064269566034623317209036828556094527592557863359654299493807165285364680637082381724053561369442169125650879118175407363104454616967636224953799491959075081005116701511377705937200763587917486497593812524949253838474064074451851766979773994925992084806013652478016444454380264233656441293014620568090619320266756976707258303217876626662225278087271002095598497332554831481526231873671217841528733555044963422074497047538913313966980939154183765878949414301816000821585756506847874871744931041855621544247868479270353144180187842184141517033208791480875881811330081729385073273566437696410630176315345937346068670527279409438998492067090758444578446865004036153697727673983726210284579980891055045232930725868899347719295060062361905130323588605466279198785534108021723053380670106610003578150080190001752167744009135527908232760548165494555049744163436180246309075499263945483750988061992536027887982364883887739137396339328728533432287851228978361921338251691480050971966718213929378932425487091329692498268235610069468731899169022846165104447079562374949830293148582438043927276287533952271331030509692341112103659798161506841836977657549813945491161261251509012024694422730062934299051738445965497123295873055204505832633824830962311409961417287456065900345640797811715408806425088415720358688389465586175520315683055010906653425457489942497796696165917298048606535672987396658836165865321677692819029888321679481072837474494568106464982113379576185413897219154548825152014831100868646291160021814156586339017484095623008521926932333980968637583224940598546976417646657059280576457228292584705588082302754180099196514929855778732051047834576946420892198908260373402773115595202234747306999463348185624467405348247035716117478780641880111981568054741102559197115123354161382292149961664296598521198528780941929492655288478860797039059020947293396797938612899097177418913004289862910664326354123177810516779474068765117219214482017656697199446483538831185538965328873123526937073772412575797124224992347151189128324907630016994389460035118135873964472358044105619887875856692073675808610712067179870412285950584368190491365055075281661174039728609218272675637158127512669937301289897692616617915417348226258754585619420952301436129078216547336453282552156047294100521346840113969005321646090832420923722363081405772288946636678856024138489161058598155866753190244750238220330341195493392279951504159899171556363113879801111974919909218640784722629403363347652555212841663308423389801573119246679908986346161418038422123526495324245699605681495899864681943643110041090589003125868326420748296392222771001962095365925079496752304927738570195944541406785759834705016505252279944154968088609586229506649078298451113767717551287197591468560732050691260071632996183261219184929075708191129770041678369462892479546779737340395663413342345039078083774409538420415308616684796512114037092612413406826543701762755502935140641354065157996551556742512280293094355947883833343779118461548200903852716499232506138344270646893816648454263672700679086417005101948274331869823753472007716975164927070584087866854450883941384185361144023138124112693097508619336530199269632272000614371592094271650090075077991963815206751805370416084230437870769238322719799434380601651398417609704902920549687606031793141322726569352673262835382935664306164413561114302245048440132531080352917004184808191633041881145024922938933774783642277721547639051805623705166362389381289318062982363587932358744411177360886179176672339098872474758983427621398308746613387544407238233512446326114847494139991628328104164080213609722437396332429500671955735615942966217674191168909964822334448628552848712177915819352392460415804648560494399240888080433702361961809561586078181752206580850200671786256528096512592427572285745902350258732151480050253570154987692917512963563407549085933187849420830753892453557640500924010802888718142390292229980434959610908528904355265809150757309557027986371937291813541688863633785106268869720572034958366310474166586317213533618820418755450737911146145745474433472710793439066683327957618645373286829773126372353877739467908661835826559417629318993554179197501345911358132623222273295340303457593522399194041534598251205956538018167008908649661564651667098570561339644896411606938293141101426731990519212525849731556749586785370610425352743991000556564823160977763200324266597075074025603901460200851058213295024118642350088134132996762848748040564866517309446132359152475051660424374171857293333667696416756707709293452044500533018051568066235721067361099795198262695633732750397128075921098930534103150757372591999852650020279384228272872286154747490580457281985026569981946599317316824476932608695047065522842290719092476806402360712929466657936694123646849579965313950348399696325930750531857240317102839756652016774635518545330490693776230504804976705840532288464828216610039016146771060768333119641257779557578659797086891091517562993230111677432915335611957374152431655723152776528179799704030398365124223220597872588036132280623991828009285761963707646909894149942623576760887400010161650966395545439194597460873090599417084745524767372019834421855154538747581231780791270662263650848264988245445917554557149397233558626330979763998983026521083738747029915607145306202045280671398725794843545274598280517224745772483440652043106906780186914058073328001984793578358728084627045004162007199055387343603288187148178213764759424894758193693590299797635845836607942732336673167406568262097662417806159832450321378910640903511834952356371661156515569145493339238596592249907382989863397880114977515401038824304637769301298890693438027084171482615243946244450845716683150339668081407742645293927855972859794707759037770498907445887727226508293901313666379657457813928679058321357979215207693434634863937671415683498685820159805235008729235007130196098236075197282602702908261287346053328123031694323686137401886282758726068105139978973045250645084182623168310917883741164830553362800004374383681264310837178647972839758278909123317337615383589347610239722532438623722622804400661861822760736373351251507485624140632140965055144496277884705342774800690213748857771702109979219333792453280809646852153848946907717286052656911933889566624695675870900385811851738645323973571496244997020723743651935500900205247825792171953480826800402209518486185073533135319468892114758057221927801039866688345854205197108178930784145043740120683360220639351159731311959632327033484693824268853407742690972517586229025986747574611552682268372186687713386105516819955734829051552002687864287250041972438664496914270748830999269413632704939985926690980390111210378778017844935738018094047809287428456065634006086556449971532130480096248795037696601050755886690459711885208391759138238082164734165496229431293744841876076236670143722775331733175668174399237309209931979841984059674131793904723410779774920433293526075154254409758438232784858274363452980682336919325883107123728009318499767259897005365702515591376083431832536830297102232515959547119227776074056847923612501626076762901169386167427028110051671014420114855212634473577203016152636136402069448937763098454539088852330728583067613715275198598009247642159713350545359966156925608166935515836637643668681269793498506786032013023222441048187264256050039171389295458724842385838550346984887766279061143879477983953956535627990885620286671296264416753078578650570531258113580520231317586207554307538880748927957477440082796934844102867973992086423091436234439407894332923447069333981688891175880380897751976844038066503584023061500810583745666551074314752745528258762916317517104960441443478852670909953042519939617083858434758808331204586017804034874279841559129674967480942874074629864732907360512246990977415996788198583128957088574173161794676567256982696531001948590367824883185653295107464468744138186299392011888174632901560751851035054850246979286639843167766413094101351491437565704816029916875752855894467002671909845771701485053148452739358899207801736497669090151672367507768821133220830335548302505905305090315109236770616453014954167813076852066048635300635305144013856854217483725009008518376898486645979660398656919576557895413836414298372274023624954571309767828706753769739070792017319862924103489639320880154270603122332205075021805679209608408684789321701254917488482464826629832581830165099257581447936740912182728711134169884479273780887330603087890964963507572530796104790560879232777017384364120738215537387707662149213956907760198968145236898730633682327349471058466516250392542153366413454734243919858822781874854513386365618591749061219624950268129891294670230627770938049278636399530062893090653471874041884837450441747065376190829303561812538813864462955847790368304766044085025576283079606473771172614152209331946400606010665568716538581290706729819064836296875551698849631684735668984909827407821364285254723942042745796815929913568304856085044112970906652187637237861049872155434789626491162972623091788095989257170578245229353956918742069519092256974017628664726518865282911977931739405280112962281143338603847097749177264032384857843408649908567222947654956029064161174667679839285210783065602845888421241856321977584745436366688148599994666095444523759303192254467182741079828629523429494203674465247096509535497459957546036390460611873304248471067913373413007447858286717157184603472928979554582154634064366952317173783037254266629026798375849786100517393640012618933922542450848205388248850389154969862944368822814966444688543918992221289893381983551014151946680934298216797215261004902212859683113391323211823603596099461879729124413637311113480919986691674938324994536136475623595838187009737836072277636190038966473150064152406752631087467889463843743210527588245659665472058315187362012237658232628137473485217627830007628947391872107236644379227296313741514560943687026795239834590564421398422274073693841411940085573620805549613949320113358995456961810185568363810880313395438646909581935291299528233578338234471363971150754983089821215125779590996406063205210587486720853608243863363040528904660925331486996318889162682906764013400124386557253896780379212434092954511967997716833606921594229579323499227434149765106578599232874300246631538176880972501017925507481263676985806174074065485867726957726136924918073594172858104345325363965950960040180568395069103009310140933270819130995322996136251349788150628452592906110202802084738812997817417080254956296578674761185435966719989544333381265480113623066343900926545804344878378201347854216556487700732716383901667855177162027053970977822062587337372426546897472208720025515772590103338957634446308706418240630882955845704993438529736583237122353048169188737625988224948684632980605726974617770396442886997396027680358480537605698194203830066496754250833427737255008349083291743738109036183014974360526929009931454864352388939939096913643634985593397947980376748994752535036598581949997503403933761376759096890199912701466178347460034903524388394345856296814837521682819178078887630614228382645248835177115183912585931855485468464884277077860352621420921877758957737831045883955839465537817531248897307464345559581679997968928039882844151032560787593979805346650626513552538450790943558025885462132945661702880707329821123141113880844834059215610367094104629683109431511442926444069368154222349886413925660919004256547866739610560697105292082710220660691865384983517283497210746405830618693533704283965996496571032496521268734370243362300703015733795321702160721695849572271669714677863842872210062771772156904393963900550226147730332991925891338445626932507141724336772233397347709454586279839659789802736262600427482197164436791528035249276173767154985159888011400668099902028412539429070261896563942411193425783779161639547035018539461632639714934962048548480873042044058118136858055536731656767763499574619560626048223889449178922784806223184194945888267177740920659428558807412137280448820818726549322265510419875547037807211649218438553817558106843213025765981585633837633510986661936180540491159192670227607827829030270719651386005145164547584821042933045065739530702481116717390020265902423753755559243488672042010171469962544717767295210847805522213905404052255667573519232456842018981181485352755640056047779212719834166193237291609522755558126957817766093011369681274060580346177450852835476032947577793107753104009898659041366431395310753177292066959699783562812080837384203033142579356820868678038353256588356768417676779280657262155573992848853712798310675441947406788052914015690530418441976151699424587144455847947461592219662150467730652335948142869828974122338335941995351652083143816342121817170924264837329871266028703038937803842773527592483657615769148832618963585851459629929779152028519831072512741956480996712390454372582946606892929819298410283146024254541522378146036177292999350979866161445468801337412067465947432800853667053874559288160229181413245425845120447224118678023820948846598677833822553227497466803480441171841473013265334181490068154795565073407815622935920227403405795265234511813825876457125427787091112776139969405589520206182545177676473059405061387508892659042908325839370385340264915024989482844044457517781527873754193177297405026567954006518792275476949370601346845538738083721224947982422256401259453668991209145824763082778830774418905943896487776617211396068691616921895059649903204419576913802615101884587613377515402720689197460560840800716907421959272985008141423080950604226591678305824180329355689722647837936337024497124504244046388855173375644651100653640833795639086008501062641256923676319182846880285972215288277016666474654655434078366243921275525281802060669825670000271451567962303207786450345600516876165978194295449537275156238016763051802894136264362866158541815114857441362690228650487779172614036810023145350687528539355256692695166903623727372635078655676470886236166802578510609678598582329780552898986273619827640963944616267796729392076446201335747025752276979930152193778123790090790655469431670742507270140860423059967810952772615514081397052090210733767724183704392657345105303644101936307986187537549236436009584720521755708625538662753964113338263442337934441574526911661514821110283914603153926132724289872760115885413711155742807620677339113849788885319729817227893452925895665890193813665996033539508894369536365653798141644496348710075088679108198474880136845375145424439123822293155610561870995717572440794235459541644772008488090479150996733181480103451890844116556278004975194134459022564024888989614910899722178287984066695117794323313868693400236450845507589898689850793146258475173265860288013348198190468606380675648286966441591724372717907156063646966284457098795815265954138080406971989317198937615746280957388413511182416630958149694996269227867581132174216872546892185514342468437809680096337348948328703021769269638676127968054015630370349674417509699768493459116286357585036578881200431465310256910589056306024627688995220943415666735688065805669530492176956180767626544298817734279533687436570017542114564550817408294393415015506990902188010144561791517010324618204891282771746263163285496636816380445712708274117326611270911471215836843188330976845084818411834691919945938864501381140165075469081277972878784099730463080622656192812467816415766292985872207382423648616368351853568684831926581768422899664252938943311449002959031526555323325535158604496638196357725264445344157362362352704319849275343000852325072121429302644920347171535649280794204357066727775610141908696443017009333821410484041225765044453108388713272433305776532680648343633429737269912027347214110055785632472986664467748526676491014407932409641375876093618501227420353879651733320232687816801611487022634239085449848336903076605588527120720490263093415269106486298977433331533124460088839241068230186719349855650947571281839810571894221734911489358120416564012778060267002742607033964610208170393919023950903564327397722735389945228967527543374682400995697514856189654168352026303805101685760679709178743692133425566330733913350111304514983185928730282907605363508869506088248652778516028935700807495440132718501415579048365305020369544320237630805853624885718097556185379397242862050968721874543423025376627404338563139484594233507527061162445718928720728842495414431155561903284998837340035646068129093714925193147922766669817273196363096132480213981898632626571668223073265386519879130358979140265106291058383353086319714732070491951648241064832353921502575332119415695030130164952538677540486880239111416284581861573215345321222113278736835382610606447424791511511789567858022758024911004900520878487699038598709252351309907852805942958378980600472120443921883839853471482195149682055585915540284037072455720926011412399814044534517533512237673638177656547673329174900997281175623655847647239992403593355489165225769248383623916416511858011002663525355089113015962749603894465132057336826561074874324349238511520738349747733113204769705199295560055813029814166340413752858417572744378300949811211296517467217529104739453199715331729972433411349419073455640117616794994427318862717360199715291429956863828039361343511068184988677885255311378486246293093866831063272158645874446046427604038775247284593401494055444230090851055946511942640751769530262966806560402905098330980482242508184557595120885890072940436093765452438627365187108024397588964369740675304759525245956259245662278886114245521494063377633072912360626124270173226261442003393396459235377233542021574189049366700000520381660877799281333216605396446245871534824867763070875459095950835267206813380302265735417969246324964875068597858331705727192470641890671523586344341449972288924611846555006236958669723736937304089296683293127843956836304813906078053588052959607156225707070723905470477489741443086294570661870148817678916786178423636169186961618087884851270322248590795987058734650037640646981048879928741821992477531445450267670841891043483121751338527205216657300876421126661141359855690139375964287852794373572339276058209579585932274711943363478856997978804725717428614074957485084134729665638843859686559043301659480030603857900090367049395406301165486611734982643819394485858744730549090755851999101030037234857986531661542424985427109670286617691732247605577372988707630729281732317963264479072724190609719541602371381460168114327482107888982168675697474426522101602720954373292664858500829858848055528474773654550138030683051638065468537611131016145865736545846206187130812884258130879039699480903137660374391873149999429680988771027089489810896523252107937275328496496802837291951564866577274119815398594598836196241926605774072517187306288506889960649176846959047328485948192777285125118767987642292196993493154071003784822681102008651910937223834231511480688527844590797905950048366714653997427919018189939149302718736331686757359259622204591175145088267418071343654070247148376365676670585072979688978116872520299263423791918620979836570861129230021152651994244584108218604868846971384522292456068555192432153447328453546379634116950461842210994318392294723849881283118546220169438990271405193107305550308940845661412007440483990160674635496362688636920581112763086676069506211744692145264173118139516668244957407081444928735239562889729471717060753255043229943871262339137688152948324223019046834241931496367845149208312001999404708003705941242017153587294655734185484177294650837968357242234982002036688894570299165715017242653673605327630643016429841099207510097819986734107487615535835593020343442245785577513822053030880485850514934817748163489632139629321815657870280847427951570088894677725658189682132463934632964493095227372606217126325559617901685319428658362186445123992600735457298916462395643523109116478541947754633427194393243852161639388253799549214417434331052435517303706136653833706601327389527855255999977019667775478702962653256522559864308688402272613555814477492945176675553781872114743063935689035771521823382485780142635727001351457664516165770261051845520683406897031350117337951841329099028560493363905189919585679126483611432012294078564538491981027157739732416593215434176796411963528854182226498434761673230523049427285482757289535166027977790201958823154377476855299465413554791978884527957295680740903842370229923611542091150522474866667803630333118316171049270868987963795082606382753566201660942486311264986408039387754447088197912615905892980484050103392087882038511757236092372135103187553940663100877989600221468943532669410897081579546264807440593819474162147978227448911703776674354853631202500633771328091507394948716526313593168115842019465430229412823709199097257003168814656980523916133992944413827419234593044064169209427258168801475572798451492210372364527773162508965107772277673528818634144378407769639336340319380711133239978604440148746655878502562495872008859235836849947188451835578694491408263399554396631017606149843114124180400379521337057674702463278299374414930634713720573428256163437695796832871094264563086364780356551022889076587190451098899078504071140188615081321457201288845659800082714494419383074934369811074687813902170844880095579798329223688201105403872513504405472482873998775586618327772152276925131057704497891826780542078661159920858954522943400784986370937214222095381345856064676637757949476174007491453503591307330909673430841149377680600858412098558396649060592619446671894448884936102990625959515525187883590654676516051151560376796207758115132767493805103518316184548544124551755128933813599679870751565519663434874331564603764544203095557243475830367574270332690865995899352456704413381396640890330558678954803019214740157060123782514125403224956219782152839431898186916529670715788183350908827148924760920540709053897000919665143514466580215502476769109007608075454131463704596932826458989317167417582615687599984505884722047896110387069868337786106221693307952171468780636174133179453110333131963608763809802515409159735134950837088735982658890463586820562263545495366794583172464578363805350446205126107246353379171878894856476950017429215139094954550975706436825468045225642224426170521530334600269732387982640424659752817829543725177819687040115310121618804147401986718710709183947923830220967655191189873819998538198488056585081623541830586328954391136667813814226212470339958913151194136086879500521089141324236705072760893629647761481561841236249774988070976389214805839674207106169472617026808077061797870561500609528134174670065732160553533834546531451076395761461257262900633289413294530746356871048851573726324490953401248332725174047771651285453471518342243390013162072325052669504090019151364863307015345447102043105391241834882565591414720052786946249692239412788631042613779591758087877855015290403447306798356955978880777519571467593914791933451056328051187999142409228659965901865189442494831520825773228003890068070319564703730904746899837968509868277569766258632758931875826981683343191465607494586672022810497713362574375576690533515711927371809176965738588155251452160724544491534321307643996706984622708008281806112926176423651897048316336337224733346414973277385356464620910266320992718324634431441576285388858017748446255532391839935827201182545331186785781130568807910060478755133775081526081994179506971804290630127079618874561009161821608449291870532842055664411380568033880642017695349606081494654445144966231986885057317875682499970983015071409914034347472107774692806328657366727661998908246615973744271695370884895335703639110509721758985634749468975871268195031166564447768693908431500860037270047401394162803454763643784640189449512153925625632527864814550780520674362448724445952693290224129069171431747498927140400058251758626288101723786168085190534348789607239961219456712135105400701183483989139018880593506368941586018308652817206856844401337321414775866911084877242288961909646104602100374467945288122627697234891131115517119669896012866281598970204812922299589772034336920185853886561201720535731288156171659009515085068011635657919526399485431464680877332246659689947954822618722948448033308125132467614276886414117506923364753002406440798732105839238662538000741489013252175527060849709213570878867964479850189047634418662187586641163109957068395042406483230235875464560455672565227932335516832042615558860134671241401324883540795043754524589261868646766737526663906648924022984578024550205254468352516713861513876326882073999857707217736412702969495473962461256764503336123448935110493293643228450767615314824629315752320828390034563725720155137595508468254722334910070594852937042289978200904046625234821220534614041114049109472032858202379713873649714978172409221403995318237664009167301912147727770629558910975542806344548005698240227483681746618692035786133116149214063005970615268170168688800944710044652488391500935346123593989120031960459863333003771061107086942493667519506330970171433486650763723689589836170156837216306975567411542873754490055402027661869077789263236952562584274579163107506989109534985939371304004420080869980304606632049432499308095421105440194475167010835902951994586534096451847671962401809338300892506668878990615960926982527881258404803154857140135377184628727182530566274921561540535488414376681428956487981533848352326243917267627612826770000981421070838983806694031305781303521873690904546044565733457935095874720984639465924864155940495745186676305409372306105769005683394893992186816125996383573001078867319571950903483841639187754153604998188266386075207330854914807321929949658159043168872658130380596178924023693425112428123436103491431801984907717387086463710654473642112660225948410430967838280798330055001917388082515548016522461472585224965601957163474254396119902749940104945484931798739334137326909353836037928978873166630333846027227470411623217073950386398723359666079278076744414407810754068348625631170955367715914587309497913792245637297211765359923403715644820931508148409268147090723002665226538029776921810901602981159105926733528535605500052628753890168203348159804105307974928208683661252180372513116168891509472038875754270146512335568627130042536025042284223359899250453857005692640324678416697500659807311009874862153463537603051671077681191732753405576345645242480954221328739530776064424041283497637181803841588140275583904997117308355339102833780769756580597048897427196417998450150851619647421915461197957187010005297564433679320814671339933966875285526564206664148188541277758234715006708289358933301374256597844378345898752236042571331471095111591811616267199382757080657024798875826952511215105391625829398672284356901966026447142495327491841182631385611866643187014653755705450226349410071669806432486028328905674662396409024773290562098791540803648455270532148906156910175885257231846298218799454406143634751112671802014783172061847741042092924110933650319771898790080903328531877642603511531045923663856688425862765910010647870923979539169575656110830007355423308608294523591367767932402536874606584955601197825813924399655758792397640553210614245947366991875851345523326886775640462248615596463221955458425216400579242164234429956797286918653728229670134112381514270999453083785222572854795112262935674509996347454674413075752079558140948265980845083248641754304094644017166809174201807907614564362228172530261147752036059477833212216674600078555257191503057946624422488465268222056473141444617878669921658689375121983854963306472362335311152565464347051215034589760921176671871028631197643162264234324844391353309278702701022175726281509828501840289717555315268052797949616252602029695362589690763995187734875760078916060436824824631588520348631518491946723143508461615430495974520650598271268905863490404214565362353940287299075541798993712962855061814460460913715418393137038302432465742034061833372517666743654474151188235800535450436682790073301973001800862138043928466330786797230957715519603296231895400654701532075926591291767789885924384013831577700595651682692911046043001045293750548255498858998676474107333283387184432522425931914141023223549192909488372873948682269477095040998469815336968831174801503704511121144382514418713296874154090300564701665359319164929496427015330132339184826448664111958344425449619265945395735999334722887719747736706409702353289324131452285839328252118296846259431441856056621024536586965884601974985268344636484465290814739647976977467631704448905448184795232583102564198353724038124852888244619916885918438539786478811779822963142808938385944808133934524374671254573950705267365778335663544658071056488288540833702997460969557328970395096564658484182876301205292992595474378184474395077323148924197907193713870438766105932916785760295788994938789331595550881451104391593843120328741205949215081302591442933716379681481372271656432771840031176217350719121401487230029984351021131008757013187939799280026589502302572130922614298814539863475500245305953326413902234353632770605791697876094772131112074418989784876312776635889857540425986334928479891446518601121386452278567320514147067261463444155504948172651432755468372500262207322957697012236368523863113129635177148982557312797289705913917891242109960549724827871890742432218073246602548126578933136191752896603841826625407482642512252013456832907241118372896769723888408189752064380154278116432987566110520049029981691892921118436944274819637337245442422395148077384269535511595195431417959030642022921625089623725517297917671474756265682038179079891739661705980489260173072033976452328884826290249584561147584577580102247549855017792221532017089576885107710450085407351322954544270328330706995608732769703089700587816424111096344963677071544258670803529498536000517624942885370987632517721041008995998626659570507505155834634968971256541915417229852514555839621563840490539565123291605136281066540939626696166466773245385731468417423608132981270056669808573746239810384899542611674458765857307714964748758830448741640384624220644215131831008448623477710618513361193481165099036717834517570690864001029939154212859094802408939812847886153678232800159837180976687811431999758611616655023463764847471249473147741872834102060710200304422117512035952833789589677450212083773758417982463032526942190518792688473055302112213258493158080933327057163212844018467274646171619376670088628091069635940181500361524000652152263232447750440441075105740939298061041430918360512629172806365797948609640788628742575693143811102253917801193358005893651154913123430582400168708596101541695282151889877855515061676737580220718298023202871787639174882463467844127372472020157774050807028477539822976017653434157879364366601959488680279359610977124830528856186005753047340693573105842234972830469769452958382297217036760228408624391314332947353656893181862767068364813834124730573486910037684389969090580862915187771310057812640200100790650545238015207496590669558771394843769753628059740654156479313554879112489473728287504327106136020043212218570137817580311895389312102897547469934215872095911189519970442138321829921961959934373228455126872193064002403857429880756171337853726334898911712009212345742808668499421495958845542872598533166016247441092271008050780069076925348588151984577527878701026923796700271232772192244784215968348167146748487829728316371791256483316718674348654918902285833217767163971059596086149908860422969768083961534235326223791818115900876969012113885748792053664190223884736598937288665426507336856663170184813756535482091267066284762908086011511637518880848502280022685714441871837989289847149201283094670015675180382388101450002877873045777515148708577933473057047047625462413563273821565867310559480475648818349714546226699976621358533633555586229041741030304179647870636842087488188211315282055041950091159313980506928979386746584986380265621825915168596649627082825535450240055616706580908946336819325681949146013492990524527374802524320971532395927523010691863648628460114139760014963308617616763397307122334663849249329384202419870364977060573392494139840548979761224337727864083947653596253174168891304161967298866573105496932034013103335225896834595638254386648698617586638625825489016379493493234400632458817831223821809231090888234937799912510076286927449479812945952224665442415775761859585796430974492488226132733874047406410603728594438343248640092779282680464724121730678815045674214848420071500216703368874817427867979644750144125627506213705546584897109560334478841658601879427322086610166630744298172788743498812827201874745391671482474891824617169356773371174813443701957975146757812551561189317399622058593301044411977381830014375680998831173450471606052941694004379233958039570130850836855212314358797650774783869494900777329863642890612432391119942650644176216899055950331921617753750962574278567691554126610070950137827085517113723612289326537602965516399119208864211289887197655173085549596845139243632599621084930732306309220772067167386290324698469024343167317873436536525441369602611193430205452945658564556404588793398887091901099014966918724448181105535275316086682254686726843672937211294079160514605809554685796849036761428270478503834254968746903920909597906242980502744762729606872658602308647376237634647110056489602985472599017720619728783443256545102240082007082659647186587794691788284566667047704655879789879659237713068472358174810259851352804868209223104621106778793595470811581486046279277496864712749879211837675857552722884856651454067463926373526596973122738224165732150595566478008708526483198376764353773809376436239798081157962125799564540074368324692443363523943059100296310459218916889038630147087162194387143305501447726379545672925937529299442814382745519600349486090875913265374374521537463392474626253672562637194372665739966296797367346633053971709937478428218930153868114311144116760562589856693614621598154326000919777932026894279748286201721505262513679160784563977938998241940770171294823740899534246098569164459379833724115968011285260234549853115398157342962569960063748144127698696787124875776227716999425392484173110075097731679940612731485706512306642895324854647294264828643150436370238524696413166023006416288069721865966279259113089879842353277809523897053073298429827245466960135747335529706462584229439392927440387427141787400993271046643739352825546456539619805994815645801367642717764491749284754265284348581293760136653625349068261919888014973845069622751277380198148430404179198565106951822005908605207597044192914175415189049399441213438923330335118051737251474675926367494584952199999181390675663147368201312673597597704540940103670715885844032571300870743279588649127514784942287692620299280594463603843490536978484114342254517789427446219131566081665145066261144820014861102155964691094705164021537980293481972891544130065054546714174345126758500188791619860284390658044714604021555752805504250254494945629220847762798426554587441257394055836809796274046958036714580247204034894917827688571118026654453350813087744620956318577971638244510516679970074516050457194789884981148570546540678057624946549675470248867342235994139393550965351765788465241308585679378350342876457334426190878582233869966156679803776732880662696906749325428597577843909253845851623630699572968996830206323228512081599987729587104139369821453964997947497260101354615690641703698661574948820553333335267546849883496571949138009067009019614449483643927201918562950707179681478146120526924223751186064979978154940600382289482959301529037205607045351054490369406599756272611085330496982917960410954043120017452668990094926034828780972419507176016134662475048352845470902282839767300636568662213808575857325166221037843370368012450803134457984853431659754447359354605410562176369752106005983776808510012671941467519733540420439974113465657696001622355109183394606572043062748807760494491523661536811090757770762542053934138810631569297018115373183474332676772127357999201932181931743634375479475334941511975098519408715275525439884215630550963301511630847825685389315554426398346467953057001155562337697967414003069291613819123472745313733685699280025431176865639544037374078353542037297032381757436918118671542538802490730277619106717320164870159905710355744727429020724320801286305842937671898814218443960708816144727233057057366350117052555566988570262523828563176349858548063381285056701444379759925306127497419526010037753702857350690852234493410212197364440624093751233215816214916665501283415158280274324443218967921807505207985122615756101815255250204711242806240364419194928685210137560790029231955882197659609860901797574225495768610403534456065738728894813524199799026790120853295996577288965189740268596637016795116997740667269351138885708333784851593749234063149703320140294637687795861112302377820340223592223136149004431918542512665057510633128261297439547090870233520732874693076537622633414258844381446636076125147678885498349347485644772447857352662149501055175024955490627011262632845442619773228870394971846663207210933105543166547779302992335085965174925789142661388984482719478783683738807216519575845742469486138422465230446897769733430319909792277950438366373856039645189805674937326892347296008922911749183705509984311175238777488112036005887982258526071931226939057114971730324673678805682967887230010514099204067986261415169700315367252409773514940259277730637741745456675746674050898084304251556500226015065740333367384705060629561819383212963055040857202177997825131678385633384660338578430248060347413916310291708167543591792543550795621626463284503874987945415435628672535536541936310587139464664604332321791559126854991744291615602003455999930380472663402630579967852672847893661149143580605981615623124000611353208068190808165922545863691353165394811967893934141335180983612773468535555288541315134530583682909463568769367445553402038969346323171548379287773797874463873258872317925354394430801731970796015403054960907630643547859813059279683265035289346058093782984803137807140495259433228957438900838227868976961276648755445547996537062592243239441683357453111128052039602866952854308540604724940223252776720093166936727844003230712430564634770950508382235400596070729462069526177199053644740194503960729485567496038185722332323143481748231933676841732305207948074381807079556655247357618168152301680754650410938812885997628459157766549607475224728552031329877605901415677191706379717922955367526474025074365641406665019715142989106551099814183784967625748758841456864580625942091754491271982957610268292846476031213818777954240610844247578571595118521439610009110451044769336293560378162205238877091971316903174132894097164134091149828620281348432374811787683744088488464279748397694865912012913788018253407310054280089534409424840059425468386028265950440222114526069942042799319752797363487407893167504774207276537870869129948446793662789602986210587578608428278580661116444964627436606830854324071388860243703788838236823940080804150017175329467340148646843541617830535796426990580168859271937952083039903544038311158539680881110212961749797060694636127806174178045593937979840795650360552803245005365464089590404779280842503226158505940860226486055447965896443441615380700445522277133943098787302163907287855246771817773328823048256610888342237260368963347943777943626080776804994312231472880378039624126663037597324436347288405432670219278351388507378547217284273286809561528725256538301574037505890079123829718601619176877126840741228968512551953411610187849772324825285042632479038447793186821714492038853700108703745885300498033855507558682597752318493530461798392162462506695604423643165113967510890087889383723251157860959679102837956342349937616112909977704018723664177958356021540473048345326224847651988733237354893211436062738955618003351714629001837904324890921861138426571589506468925975087890706178066633585900192941253026078234520361072890511263741023424848958010048925974066808250689306163173028593872303220698248114275726794071039692990882873737217162168141814628082518985521449396658316609565154235153554878997987138633198910873443173466664105720156813324176876366059256100468407373311604301999692268974879296352946187374160926615668302585587268415603433033578311712737138911682497620588586871003693148833542961544317373538824355322991594497858962955201889731830683332994646456748207426161572314094335841213119990317216080061391819403101698012661260977971046411851103974208709659654822465652579892226947868450189822653155446060479088492032438521760381276129785500852746365817920573325627440652802749583075256753514287007854619444368016489795896834139569863774405071200298282031299495896658696265671732043524641565700292997271433804105392623950977424324000348527776274687392212582964205962386063099434005158796929969970440544936703037640058340544606987826124310914718162507606424280857904945869158970216071215896016095006449417049013798622335207047076750050747317958962692519493998887594850946486980257352821394265508949513435402520751143428144195039867908210248315440027638158091432915423240202671468064236872927100447899942858610885044728415261303756282380775867579717551560548524021125308440765654539765364016978334046370858181917006229611634387118900588565532874480325033887312119345785495925788761630496278959607965859311954605480678033702236170663924106911093756224120588004608771025066030383502456729489623127961931053733116523834762512490461950049866898427891512803244084388494960027197704029321880184329461665651465697395418737118767074064530853807644728462376604773020247847546295690870400919014267634620796215226367317588653168286748526571315141386122278979113056778252510049605805248260015070572150193872631286000482558000127160461681941749994717654223181175022686049994267925893195391861100197425885852264645656837091321624666566150684125895128834063865479219012819227904767035856239286654741576462024451339541363229220724789557554402300188569444212686253880689167585725419620308425259079901633687535758093695275412896619256525388503210662558749129807994604349398384259964776299025138666965718301036706686545850699518866268965592478528519831519338148820375181697691924651020995217488572908150299140280016382504545283209673473792238059087683446943553197539938495954489271236198124321022449051009216339807428946631543695885748099932567712503809331550082245846089594583105397300899613594103515204560730644872947012491077371673626522129097072897042520889544961057113844116933494557778139744951292234959781024190443316348726219330324959493316757346540213178582593479340358500257385312526282704245148882255129957523371027361933617583108662711886662261944311926397156589767706512247743266889724423665124740244097290284702127394635946218126438911534868562976062607913033543783821625230586607575656517062041343552804905051198840871315996675794169010032790191565945656731650452452370093874975951747705472675760990229817871473874219926399979171487168662358172972074784227446449353544012909326313021844648547181575954160277859805566343630670913431870055100627814918843554662685351835820925788531341850988604032035717830584211855884093417296221146880378620632606191586345461250041830915517192699686047329688899004314575672348580888368773470700628750805399920382019559186793816388821174239805670757911611980725723867327905810367284274829948805563923206394127339582209972577969832592996286120311786627857911793800051505162410925406496906023633165442322213612923791518457723978107221479405306908277961573070210094681353729656227334798194803984639544054088330583884185860751495084043970140034155946677597168045167176276343726915302367612622032349389117939968082159542484493940502127717446613543495589824211208045170477708891639548611942850145238448807147617739218536767251605610173558256879102567586782343818035709852854578329657644957325169314933709168205857287014443595546086591261039432350943797876304805942579561955917349402489825016622257799192868453903465663286802845882696510687721345810536604920666732857725262350397197053571814305320959711479071230348690197996327903682495159521365128687393149197912421458832711910892807282798958980517069684651393863606366893569269685051937977146548058266030856308756897054539907374599290240443022689505051686437380444630427539097518139041565688954686868237632744420628691847595158836217661779464683065084630211221525039265376772191520800280840805782294332854970303242928340377288795641064668167491960000946018559640340036269194937596010640183886461395817342293686713715818273416004528145365607641866343339139461739482660259914246432157596915233778013132412719776427249448380225705836855838912380403943863107842252701265044859907468491065596072626522206341578064768068495166802304387936828658590746230126376846811403982805842246308467234454180492315410924159961802742950922976827210768504608140486166429071505632227470709317747998817094219870029292623424766249827176294769343151705270241941396382087636207735258583970160748567587163755250093260037472558950612849939844235481435742742480259455552705724487613184663516417180863600955895273470027650592556653229688528372736465045545370559674868984550290262642782267570391665210675741519707129811901410334261003364545112582236434125018146359407114049928144514859442166926881347600872401813849741410178311112019364695468599679015092864736651328058818192711764545223159461851029344629655223482914305039592539265580791104041617640404136618639223607724819437345110122719535017668480060584930466181397150597380961044793096990334535329357189227407783024109661462724822978803372817243320546926957241085872264711342101785569036784289573040297544405057831771316751218141150126457758855086534545335767630614912208916959645785019763282061684455994618046641410086213798515036553880705044609453369626400286690542593291613918429807341752753327130923239308185474786394080398693302732785404461784831743607317282993413509184692029017895074667070298113074213610114387507833978942601192552013825558448507379646587100498933851832744586087192974866070301548919588211733679650845841598403209264534444154707705879117890781814333644722019368096899693733507163613049956949437033651222353972039616734074816285413753389927258952956191200866986788730465658535265400328349266194774052887039371677323577375883997813093137771016352999263028325266194526709274537606046263077162522748790376559097010129482791690085143314628688946325313032776296349176626985199117513748764010025942778360701893124647646207803836260675097168588602151264480214869216178772637125842325030957350271412675561079606777622710799793351294703026880927024563152712596950279853997666221229855775979187678972722282402655513735309650084817524333867887974870206606180967203596006835162011372575132371577341674043787040577662523977040832942246575950809932664048349805902191676026894505580550607704418226220546276547687295378238182932738549181742238952518525001816141034582616584488604357978775066359719266877904987611543167328304494687589340773939661018647479424069684373729472290618333786899013442112044339593007044597441059072872560808381611331580648354352018950523359082679052774426395587053425658437744803277272671080581299093924431231823500461600333798803372766802570115004946917412753220903813706905426811025914359088428110209372267603939645471343587312628597224739556151638466784028634848213565668273646357486243651491016034893174723591678444649689579158707733129702314265471751915623771564330039811216718511830008448055197913901776107936025185337725164490809239571366100470138939889854866973250683137617645642066595346196796839035605559951636545789128624760016791639845806214786917874890418286919088762478897207980386144707526326419041557284602011362717734793998318332846037803351098551834990125825721251735655661242177242973748502915710280182605378598024866570821729534882004300345891855652037967967786974116080191312551238485040356529856209124518912001170804211281070566487211990081619919296514028341289420802557642837395598204951074126441533733348117766905783767864573569127484788374101622446401146830294471211771867418210561008223924809887022646932090055525878496577009970391886843542395888767885594625424146415477056303094956475667974239344218356895534840894145020709909652934063540490567347451336731660719795535892582240311115758180442919571690615520699364350611585614752258925678623255286054118675151133213372296471658859518713396640119451289428108478326548568267703599072044855450893416202163535798614379328078036435409278578050962706496940960542938097933317292174781708007137118081205043269047156591026085922789500512564027178443240043817041666097965002684623346626854761718644881792065893615609369090894707866214171967999505660408149635377964016332831573829861469191226884749487191392543833785478135308909626013444857084903838736257249627587593156288885502567710127932588784287914939246054434528205047319889314497338446600765533158003193945191016858637240345023626235758018205786320064092085029240356313248834521825700242675386397430061330878687664152075961259301863460507288184813745596180817501900463893497087071486950567006657710248259752503228797101384145672551091829749322715740831817060707821123952920860019722523405902041852569628475900882366085627868815116463483536429223258816347892915352770021143973566743503518099815871513395084588540162651972185176530932538526379744293044184844370013412246798115922088742328140823958125519886728077188582616694574265081825305965476518947475719872873753689545119281195544537700647188077748850909387589540217860311998921734140169687566291686580288689211731391505367364062003637045267694501909670087904472203213677284508167764409253663924183118242006231877745644110992032971503355200390434554690645431800600010777226586734841930408563814159991711220183960981794901896419464414015597827922406891531292222414270807536869072707400937257778631941533779973229252117637858375631300346612776819711638724136543085881940435062353789952700161450229244907883841032982917180268660285337899213332031645719361187966033772992266796009682801589634039092463173510738476245709743447310249979680186188637438964097492906827050875931218759647115411111167259855608899968424007985395205823913812799845294162481510241083067165957958885026520524891487906348331641309891034308345459571123022838699725757556342260393004850931278710648040699674096284589795680829046280461202655691176145270470821799639499147467093213948794066033625495329198850147599100329191004264391567442629605336698458637308400290559670208888357167782737741932398318436352873702302138929034474776918534432208968485578260506860124466083802803685894699542232186839977970602368183591262159713428521857715246015282400158727871287910604141203073469313366595092708542136355252882129425167271630122627233971285140770057879805867926405364252735416013461691968235070017193960692932929907088561000687413039128986418612759538710036287726258821799413173587558229400289663382480658579078045133488854400018064563965400389141616466674061439002173194757893221291952149642824406692444069804034592728947095281693784373543431283835305239579034306097720978380649241257391637039613631590891668891040062513966405343802857729277177359706489446304853349023187352526759254305994472271538590033246334802687352137475669075113294083113562581767863716658591263876750701741313520300199495594472655837277508318932899441952900450949425988180429292164651965253551688844380901732701321106946093640349928885771595103270166727757268130683737151860851304559429673989225713673568464368492295244906331431508786879197527261456795510314891316260761615102106461777124914525614815639712276337330598526199586788399407182506582700720163130499095122054176867299001814788828998286517956749083765147341575355967673409928121376102085412319691067492775719468684038835508073761296078843942337109626605867707311930030578282710802793853959813787441354010058722229059132582639774126080299419229213220176409978608744224287697323590734038472722142514712299026568724383168030691777660270246888240992800764639066886482575147846686393042051254271593071096029056665392030151634222464658560971182225599173924399908919546457490812424612395331366341422333602057992952410236349938308868067302092635103333570110916104499931526796387800627463382549857908728272309600692540287896275675357941123908127508688727353089473272724134401971293986152125207421603539127948918952438325596005937031377508256264076491577791331417707497291368310352689962307217516683574845660751709860880402276015863252451068364387329779286161863275681984408916376548301219482375836507993073828000007778856334349487192534334151333123814414600322603825405069894357890792123144031464109115867434342457669000717213601879034880140534213160119746921834758899972902228751830870577816304207183033753950801379334484430639432058296552482962358091793452282017450566155454717199561191026544714001608330513155161902931697757299632048246467094695709245651697241499982144477074185873740076485842510558180335214516863717922303244231695788747539878384644250770053533886464244688801580281473155633020443537493031682679342080879343850232352302580056273191306159425820194984105363449429524934540868835123747765452563608701554456179710897554090759782371305545237919972286363221259195651739045780726569975156026727897545637067996578135011271546439289158330169828836922319897652796137247012058113262929994014614980195632987752958493018694818360647386729177809849793932534281855332601649195130029153277110793651191163952255432718616245844758504218166538037578364953444190413653966963590568766631810146347030851069909812910506498666596401037770812230092353115238841654954532884346315722112953771815975072864326481287906714956158372551389699359816779165582720494655414776239307889420363761933333279256466336331761742198804234210910247853552076029564192049052938333881008560453234857367611114832179779294959251326304446400864123555600003067715221920088012565981717514474641809404055159281218163148478669971713405459425905995016574105762008878493690231085500234466208119114286720123730168746502360812453578745801895516335996470031128275928779917954510276375420153677547081844867705673517104527403881003805294663481230508463970340884230093408207637506567114850989393882042390246974767394844059741099175605143801714522349168895963540936182945823580359062533212698098870730491009325347365302517965639371404523563980136468581789849219546050212529127945766452036655783631088277842386471887073705445100509884460708991984750975137199369291752535147737863512998166242140716549516803398766642189379521642758102047210269510294420603697835932494937770821945298273379868107514269732041530050769862572104157244361904723090729373176514570630819035677623775325767646564236833208934699403768737969460964101411642561913866178645347237634150413830752966581758095969329650500620802088097222709642571350109325853022575051350172338295409824160721424758706829236262984678843775553695937404993943586356890301634669219750980870329327919648459112112512475683542585337720811901090415111431991619246908173030110209172959366775604265005377362001130481167890732433039203601175837140698486229576555901202478047056985083402222278026458044482372333365263451443421527625233698661256915882724569025373008844922431961016560840270510946899906148297538398216144176567128485981478855638800137468369624086472234972206656871613119617824482397314854378273985987013563189270182963811061520526626682740352117517950423341196666830812021457911157411705479781428059154613946282162002964954913588232629584386094725032384491033933652680201938287946352563448467317882934120400424897638643960012426736763109128601029668742082501222006467144187749967190642508314933769221469345550197996551860217938697696715964888632033938884283750785755220709999477613302541087317932798740827749379852778630883451441542063335348339642477540237458942611743294149342993992042944374343815304757989741739840446736418086572658063464405215444833225269847805151764993515893143616508692015219228533616363939406913973554550642938457829249410338175474998816109543503939537077975050509580969886917339780828425594930281010953735203351570214902315594975200139882714715732027897081733894076814460604974271553006399110599758094360213822759518771912645590429946462540522919902203510562928003128780577506830825490915499787692133296117571161358924039541608336114531005066898260979248767142927467840419098790318026371208244759762158331310408491928197731700565308570356675351975557113406320596911075072459654365388613927683809357929218339491857524752716223154370323154980909454377607956684253116372760404061151809081306065965690208739647630179112623143021002354841888803086643868363950490724121023580218134979377884697180887430098061947621735857759828690537056069254156213551636832928097691308764473963247693504099637959991450075431957635279498692104642088846248591765346550410406179918793933466630538420771098326790570724466090346132334255007526109279707043314865914452944784864470816474199469139775243520978846633933958543701639609148826703041584988969692529702505641353946716429176392249385453742469441393908117001211087661577660985789969695406054606942716691070433771036454370117171276891531079077134395250149339916180852593606199297279315954073475338978535906537594274131619213838203663909282004261945953514561385693361631629629788137981473914797876110824754221811789580427044794130896251503211626902299291984132294919007575426661898762936312671776564967297412208272366822025177788394681423387127094357005695110309957868902686536271525341028372707635225107747730826154639073790479919626058915053337437597197850076980929366342603802568449915619243964909206013053316226306008568539731892087995385055803787998562850169211278588999150317436946919923046746426152177988763281446327066836708540978322691630323732106582010169429102533880168467517249728068335606945669759419293257707150460073782133635769495424018629068539166813777083697721640297767840420330226620046759148565472025594113472341199784514560447642169844965084018715338620203310709381062216746810536729256609044733992438283936018181623090278733162650576655865992603561371274967497721819557736102313423278357712454443701480796959863116422872254227939624101103642833356768036157391252887784682170725885101220208804601306845349512338935606515481036226485396205938895657656284509840906296655390621661521519395462843126161995287531337500730179415570086363874066142813966138394798274897973501065647713836284253513045339387181627871336418095342654627484432889296535300509812857763983587993449351205492384782880519431546324397504279905644116506672440178640694377534067864117873632587093605615099597212977324965797295394149738138029608879817607936609960995209743476768027671968524903436761875881784643155706971975052313858468332749374032805285949143456499722722748359476926305491451586614211274189945266312913605171362324359852023894048488724156737949720836352858967196848065768146373918076324253021349874593222131001277826065800487377394682327474510640268827531568571313146763685969806255584086461579980156658779435933476260007205983313156154280122491657237637585109387603065500292619014863159999183004723964015299124365246419128246748242574452076861256817564704101224757446636854820575367266964140324479948876851293637409185319131105780533131998355928540014748815376413489920844819934940282575193570919763299083539872529177137819846904323024275129363272571060125440724020096374931100559022413044986175446152688228405524478100574914938301812331558168916971979457834196397724121836375819346151452785450457326237233063625084945514429717468942942582718861852557246298201770447054091455565482596788845560402450539277790755817819153613129121896835352552052790271099231845903654559399084824509185710967598033829227286961775587073425110945913143198538043882985612347402169944339740958604425257321151334867199097138247535162039786763180257514227642379360053734494134804474908656875306481613986211254578046379098850588169532588707676889579259403994247098610852274790047854641505199833052003224544096880853060948395777782731711409396188638221359108141627794138106303024782294988495046135086943656671963377421656934025239244461348140304700635600841339705963922830955337215665205491819755288565498405565261411949386585148584686517159611930356431702005994693955192005182131550752219721253945287989730007014349493514025567463708696334069236691488326176994178174743466761898206525142981501580673402574618542818678916101387700659986469457160746805041052575425947390891658002481229809542661841487265369017556243941057646865646281517813156820931177823877207960848697791882721279426835490701279321127657529192006769442149914149386588161418270448467460936527234526441821685924241787882216668439700849283937243748163417897904488198193093257251326619019702993918439147682212381223208660768557513256105883935374670041061243539744916979406361940942272696081320414043284863506043697820221820815357255631576867558310778593750235087009725188922103049392296647372033696459017697159033741954603605689645037122060985091725652374931865138257034113452098218594165136283133956774437366551022675330846757863445827872789891780293728125135319079695753572673935195317406333814661990877102289679359758380926074676673687303804654177236881548817424176780421908405069671249988926628143220608158658616504367693154022563658156461928850074480399203462781145540602712424259435908623641937740003534611573748908708277392785963123808661345410344475995648055441636015679945122229969707853270347986210847079971127504200235140957726189214574849294375842755105212250571619272616367593169506404720493847319025988688562609963079330052933594290138161613782930949892754225072634685919442084319332094538115506663940698658871218361560469092540606125732196564703842566732954626269829907564243874680943328936671273446735122950370452286903229736461322310955897528585176294668016112319875263137532692561796489268484226354134911694114080138125154916814565407401045787942977220030078511078076957109508240700465816780781557780363254725740385240965391032350382996648738514279896626725198329611628849511119248774092502623447277036627416968421812412258216028433830642653238013222640551361238645605617217492884748044018373282240906056107305720282153416105501410914034532972196833931089411298532256439053224977219593027954133237585915041677892540516115463495741782911436366780135051094597451866020112477295769966766043160905866297222124950474250516232575381348745521010992432291417688489495187993383643560150777883201292249440552965805532080949199493465352161615842665041123761290353608776955515028692184170052346653395223778843288450646325925249721354176765327938682307494016854268458796007208922003783353992748210102343861364047356256242545634655443085489619301155511976385756113333146567089344456846366515233184490192310308366264964151706168817582836478009027390185571947626840478550488944408050978364897382261489602664244368135337094866654756850929764840481947736397168104058876210445488689447879713302077389179225408319812386786919444889318001159741971633467859496319587595168670795812763384744872116365435866908372007159720053956060020537020424344301322873420764267414716956822673906836487841587744049020059446922982521013192591122154703065841659392566336206059043719150528093828450938242906268737733178174517195726114315989681457303213737646340333680439331706514428583406038421958069117552573191909310858377238723961927953874878561832884087632821249414004072458543532335484696589973475640495361793991414154152512112908135409457947759582535220201335028416773175581574657118640144981465400584404458715025574916312212129421477034572433218667887969609472766353183894540203669717593204127651879072012538516928629309073659994357096998618891325223793888796602072477958544871387168896356837471118364652641947141535347044499819557298594741640484266567201820528662399215817055611941437773403629829898902686524749706154725186576750528493110100323997803194498056752634253557132498769680682324394324826615691349635211528093683854134137511167476850777230232695817618959328178906703197054367344817645839930200791765471811358809286333158488367724619561136290847419446495854223514993622939584596442629379105894197682958271707026173442365718493235094874620897824908569801391405927910209673888324542586992543019814374916809409098147461000827552092292550927522520970818191313283585124653487161031903785733447245128539608322755926564398663013981742571186759276831965096042368696326339499748917266074498481951706763560149063401607635634001551874943033973980189226578580502341423839686008291640648150978619810490496846381509462304033994560633954104741736324499634463399097526821577619708300124235746365127090680289064756856240950838398946734184567386486915698388366274058473961046168941691814208930078735653678180886672278997816439879716158656227544912490069711978777054860161416110193208186969041927067013222671875170808884397891686170322580869842440357404411926206945462088211284988237575332613664036443490510349220132224995458604840665854586628937803011180746597091415104335543885638775425125013104575655521946226806422835921667494421829224246871623646468460922973883580578050279959398314949969350630326218037910567177790134773423154796316318744423189985610091526207763506589648692176846926013268410308395284994818662690706012298240660557987100236151095518346287284787596119719376157834509959499575875944932966586907336535259098502652682603576575392713005636876885295807501180258196352414984229691007186531627231892316456821285700617103541565090668003352402857242165949470847204492699908789468141025165498546512570476671238550285459372224564912470725754569403873666648984707127629381809877896540008564428722426484218092433423891083762586045176708250738587777590577156234814078426888373441676376724255868874995888197132622838635859836671207950002774577984870916880895800558969420391913113884753660297678939819241194879028147395051115852394240189107978698535814958923572966789749916177169388364080220721468453925456001799844377604673654074859892546109273646746741421618450058636721306860038534917971425954917515036266837406173886842967413815470025049729182034659197955980525690691707233882110181159910858232464380465696474186282373516289095953488439303238691567712159467395991951862819015910525983616786516741939825460638735800202990304999376193220140013578145277109646197878083757782712811523204069375553214296623953083119736535059921426997547344061163718334281834209765849410042006199253024231024107566196326096783577262255601705145055428754251841815327538414758291299144047759401338479803238217004918082112620918961861339255646480577625516017203779792487944982590272430801430767471767088480593544776573659104400345066443430719161375694090190070477152490308059587873580106506468808596444504554839220720498134535791585742637814843156466776686839792967977945003401695069550652887060786739868391044221465121524734889424186897150011511703327244130909604984935216250941601349092235359747021029693454764593745306758061131777875874327574951165276204813233385920334000246681810942486271609558986621437298671606880483427117638400366630992805534920929906514857801778628618228317572924829497494793460309424556032779793824438502296086837140818681035176767923553092724606009745011347905546333817139771708407120133287537615532988181810275613404503428459693139265706220800841221063721494074919105939949114744917908779044072063329777046018240995820586322002331062771609593283290843297435726686520860147160179173058627211849899863830896630189273095907506213251882486991903619089475249463836172949103267061147644675308836178597992915615044910044382534210942402175931654018842386642670123819078836563223383877774512452554509524644660074089979775910062519475534952448617971985687036622320913186096372831079094339114324665658606442771874948804802677771042276234823257127707765602272197229057175810835303294938536331647115097928425496791922694585043728961756494484882136043907293800509801423332439404210811677377951062927460186440983815240353374076170753866075232004051333788612711099290335515419547840310788986879329514796428415263208109681032144425091991140164287386119265023953650021719578974818182275959223473213076556606818111735650861153391691313839798087117561427783370712064969971860941638017294782847875142460909747844749056259040266105655865010672083456719843156517126843640777222362027893934895218331120394861946725037570011551393614926610508527050101837255090806787858793456096736959511240181105554542191613171175375979282175950929685830692779413260048123680856508574032207643675257747274510640625899645614116420179414160574592293421173124240187538091755877220334195743274701317082393380124987515510427966717060516983381125735884898067859212497906062139054265355728669873120402773723187610365984606332305959392642303812549122083417991691222823665363642784740098152993365854733819689833931862265658801961813346941364670167146017845691056630952929858945132791766320746149127067030870484227187637793064198202776373464136547405138624551104887086809606404795633232609487098878531400167223879144756204703482188653353478747607211506837690098250092470057055337258655061299203013442295279387611566169860832355265909224713793400954468300356017841968781928387788169126597498287429696969976648126864992986539763120043484524345834258354118147763405368130437101019875892804587386739882200143773732349051471988118139231338308484906991858977634118515887713744286722045679419060359731344672607227204819942876970356186216256192732319123593032791547048731779691870050429415923729346365356923283880230022054490650845887422828682790704918433092179246031282154681574427957848212747744394393573390870451639521695336717414997627129496928504727301586178683300509479411320531759117320319480837416386447044451004279243547847562945488125907550738247611333531549086903256493251755750461742421082778594500413117736698845459530031117034975629757529890826797383622949317798130993649231427113901329924708473318930470595054317724954863647056974202845636414972288926276443345690097344304967146572234555878150819849302570441901792292859759929867461181440240413050474401779190043772819625780653602047026747538619161475873563288499979541411841039430512256190726107546432871501645753633075355313332052747525909705772879631573723084157962204177332605492868471936486999235440233805812860774127887041260782771459051642287958286987476861998377448605209595390323210491445752296988350536943924312932577702656045205722507520633543836910621335812733017723047325998786959883289576765213309193274578518921191748370604838644941999895035904056810685626690504711331282590531256361532895953307891532961547540357488196151829105128117640369680039559067664283084242145842676432531194598502196250720415679600049761379068421119116485815010928308175926884681551263899644071627531748431050165417899990807510754206343509691249122237347941894516720313906216001338725148691633542896784089405311653575525848432627194821579817047637710755366727134977324318077629179498902108486114284604846802890352478279798082176631890377759748702675461661189625892615262772966323273009144456563177014486937523522398553108437840118588234966502403479077461594445899600742532820953222463472110795970082718136446352142816467928899215070292009130988123600923598322382612024551149470376283297070615770471961379736311052622449261615534344668718251350294730022907218806776932154302919130991458718372315957570763615276535166750749928580698297969888742250452455532353538749795340088871888374903025004540012601052343618797387701186280597826875817182039507415435916553771459112351533490326832292585192047927767398308187191067152269437678304538252468140142952005668809987566651914829874954074878484049753492045299976851316213563243553786954232379335350929797413417160185655242941564244130134743935892554033089586545939641891215208766584624612184403580029757411764935350472060310833757536599544078998756284567220165598135044305971326779730868874632700939090961933194676192517840389698920002648937731584475585761676778892578720731300939335741246196669517259120982225401984628924613507963345152391909140167339697988358659860792570410580156410259528131133903919933789968894820768473005499541994884297212517666833861538729885088452506553232563958479831643552926849906574945653466748572312543047573829861470164762806827715199034733862712834519980229754470181706466795385701439160078160672081208152950662420044667239507198145360114130083648250984607517307128635770982262317496004169034173416090588112429059020474009055033713950336848039561275789504388642999966474728445605540164671789823573379587261647937465489375671136402300633965320858963532650707510171442091244458770213476708753718978183421329877850156513285986349609959424770580402607865249092513888159709216586502193037723033480028843395516583157620248085246326507736720718687357794558939448203988445318135504283576571668360153207861590946695113224868972045996216632774211803765528635538395057186928508326147504593095627697396878319373099697471807887646536475060379188439845359516819957466295888060245652001747685555858110769368039894118196619726596925211799152708047934935862431943316950981729072951022170611899087961887899556651373138426585000803728866286283127781532350073861926565124140836644293116089829854559129126355399946891578116114992719465892775451447653872060696690943434705257950823859330679821229788648559456722078228510712939034388731585299524082352072753734824994516601050191595136686882536004659010048408222445835444919079809263915776772730671536770863444376750115864944291864048460640191331698805505361151048711327696094273637232049711406527612357496991138579374675788754181169362232597369572012240061997067876136869505843887625584631634977331361629727700116670281989638029493107602966056108910014269103262334305447786628129785886795801362453142734300809992506180945289939694617459361668143484841956723009724978900573123507685994127081194065118883418231058927566663809890464484803847251220669447713203028107381803481867615503438085128676327922104516780059423705598435281380134333955152513290252641614972838018157323674496522976398659697237524926176935904994670720942315080963272044869400053742964998332398326764551091852595432504662872352411085088870785477352510608042149807211141525804605219226949091342397698739152296287654437000977486162199334802285703457686089021447993092937560038736903375031106134077846927360721388301639193937221889057405851654399968760074367493362232404905233968828957938049071357206879891634868732643962408519908283144053055844346336109006698782859962894010783733558617429306951390183462549299835434731043716323640399270015624388544081062624337114262184387188353185975718370855236213672503376487353961938034879537243833132384878154433342819631612344524939624788972522384947746073568349460138056721306440260260609499527940491218608789820205280899595624150601035935753670896639461715122111864849531213677397734592603961495037662686621750302258958632684275140126277355333740464661503856246996374447821609307442290352840154508933556024224587593561591598761486449950742605243943627432377000729288004635698799263889399138180988650665971542533332330947841033230912195013939384527781290169457492935761990195561572542255890912139184634142613286131431673631007110057707304514637170537263097538969753991623060963879293958479539307530007001783091146647079885446644431210797781981606440190929945200065386433387627738336527873027379391120717146113789679134342867890637243145199067500379561140061726408367966054860409640041493210417187837780469717414742735418634968849400937509820945098895699956201172576938395373236640514150932741734106269653621997216072444439653177806569652849398672887014388491995058583094119974994245886064283105650273088713460166602945751031439144026755345281782808344710634143369634017754913746153974780134889740550361755949865833585456922120667876390888650133087526722219239702848064230839515397600418642955899339382111542404169453230812591336305559581291506521437350991951785130378666779807582304489369742562748625983454811371552525238071694867715424245543107571775295835335522033808084098488978061782841032148965870919422091256125751282772222208529894263387695718839128189075725971960023672125268689458459428514172840424217866308635607963715783617424127562965060692711730010654618145363778815839686252738067702061345887887719338584345193903329544795251347770713927139131254418024932140260705453923669919484000912238007100853885930415045771962827362624767113033055768657927863754473956073035219789451594763661810761501472819879682511938321596908662698323208582739428455153631532156105906445645486505349544986685034122335683821714332309661532988410725317507501320791246644751712227782987203202942528588478682843060378247285549999658894642150164821195724827670298738337402429880428258806363318651543190015560242424961557341214931953685544039175727966833217259369612914441558502970528326298692153211782407246678993203730842160069916304638162474977843993883855464842205370983189339025216780146539398861476436872051568902620470773129861174111675284941616616573613332042045566546570959747507415974709621052056593519731273039936722678260531453408794290521259865488495049222969555522023787612249810488623139397834910125179445931967634989335080240491599759796203530821801105810047931992369855266925522475714434972787124298445482403548440503217864063082031538582805630539903053137783657903935362987796897312625894500734557481210354618161995025951496274582113447175852721301919893832598509278396130950693144693360724680223978250261075919680900682473461653177532659178246544964217105832776932219708509045108232480330780956469151021915411206587069128383313470951621334829878442418212361419482998890610611225577571960184606479958635565934226546956775415090198522751335268828828876529126280894714561439221969766933033584359062354843807756094957154758930412906942518481795918739407417633319283433569351758086652667557490763031618395874152462973726014478001395994487782273467016488662293394036359732250532824208982230382834314600164735980504704208763433417653765249119245089490319369643075186530138100214824652070829500409624025986713223012637219730512417605792228691841341424427143852186240241638950515087834215952913534162185778641384844064445138333649495355218490065759392882088913642572021417567302489870669249799080636377433819995094157198029110857756233703113681484065002134031744480465174892914650120543510875113806498247200339311534490429503959361543226679680130416740098996566393398055560663269794414107122849263089620418631081940791635460594302114808044445836731383998721729022371942439894332896464969742030557177756572690794626921864169166157819817886604906738812969256840025152432224515032406482698879299189327075785141432751967978925328181100652539267600521446921384244874652888675068307023710258759346278615051323721186626169301842843915261597925149679899883783973636827304936954476336507340090687496713132654399493064873731388036546614103767550874474231998839012164857682188800114150905699061756570888827042685012217383135201023161345102778464334858527555421400710606207637433484538145650735188829624978747507369618150027445486782491861468936031762537469188549405392796103796955994752715776628594191734244734730287688818339814199817707385797039811953829029464168519455402981437671145266088853294547687493293779107959716351373149035143096794948250600065476854246404390472545611970439057511278364542228169227231475119746523933991633078118156727909646525851381936057345746811547907876744859989238658027026983463775404930326965244471145420502473788029915242977996745796285038149639529822251118154008994550158963366747461255892952149817012901782152692120594658443512706357626844246766446631431034418268456396260782790018686034649107180818596245221626843301518062383447186522309771017837674251045242322194194096976981858716456374735494743606390949273719136916743551326615816220918656051991124841154884007794966288249403036739398943351340676288619634105168731825716776410141556715452946570257320944879801468655734280568464586123417099208151482612158459450070980001531244098758913979725683471528855212786950696888721660051934286612587775882111691063047962663945627446880286936516956206310701698589815016356434171050583337324619741109194644142180360975135897874736405465965546638567821408326236152351218625426845855948039434122125510862036113208994030594842657992628324566067580709890184493721566942161814641488768080182951390371730772448226731880763954377414404641309850649667297429835506819510530892286232259445698940102254151359242424001120501204680634205198380231236122408477655512052917525571806059206952864024205132266488417840533687985750450011143505249839202835102967876418397928665365941505539456580057345875377272397345427983234598679104422858455805451803349753903019885775228231224357364901690969790260273262626004823000038774161760381692563722035367990408091169389664675717788482639619141436478471198353076825664585806673933262716810709431056204565933497517955054692308711214099207655706757745557028158445154686205938020974464356768503166889959693036355998848572668222619700703475052971136459142541197334230671221327776090153330576893199897858145188447361457617115794299335883055853432925907430097517053990088859630610279011954358243994249031886997474979146774995079689252964378386677626030895445869676011139276945883540743562831413254731647672889963192773342791172422497336849445854815085144138646680477176551193096583604399989061044339643594430541775472298910125431452083457720299512406724500408852736990580312000879462396260005503659761765156709544150365351650454963035505735685908536663287740164798566685783739405182042048658623424253782829179283702936722426331745479289636923425854995734204874559022644138689224342181400663404307720691445862381612253749397414438733443650892451923908046028008682827343302368639237130432264137840002565715411708724984268631826217034078423361320815589143589020575923788100129399503754488995209120603167333882422924701851538497195345860909743813588406806157679870392289863259876993752429066566553368929371571180031619479758539637208108984670046285584800174676744217991009420249425116941796312512307755183539979269057940894980594869395284941602294842992427937954829040499397504843691158829430553716870133777188615697226220347772178891869031879579756275876210578794258928227908754529351358288894301785243939469016798473246034413875842681583810637418132473628483287899845974700921209154836493496928955556686778636823085951542442472994215634091659565096943519205939834568375302035939048188504915480531819922285598122253372187036032584065874371980735063379397727787798195484409910528256206543809264176397021826682727963736650882657846296499982635943074003564107537923728810831720052774858682748029668036931833512317504968856750740524346818224116127760828075768073344330658504689571874389672963238348981867091268958373214646334572203626644554573018608412218593609963391083278870723265699417789099541980841022714183420329149209333730563160703751455966186811955604905082880548893752265694068024730613547185805791908168949190397263015700521317945422573248180930130265897301140911833328201271837885472842677999830736302184344968135789668663379692301473013352468775161445557960601321866877423442298858317031873172380908822128888838184148175901053542798636301089775621105737123491698543245081860372272629777375863374474952359860337697916133140773427165666277203080813808534700417974201244937212780210648445128539105420115822814176845302718721300776437968854945135165733544738779307467687520175568804384699429597949206369495233231393158141158039870382131323906405564473465888556019830645574203338700055254663652476456839109161799833515685121799621728786793314705410241344519835876775663998686617420684079197074985883412413603513992130765739088774786975770741138955091851957686818979579130195235980324291131843200080284040866053400490617296635854839178777252939020588363405913438877022779020478649280976470432174216083603095525663608849470894935014600798179210231503071641865098724347301174810630877164031427475062297399104010346940332576985119115546309115604284149449111854967105053630882089941602801595750914228333125541255588315170284395017628705291312889558698556509765646217480179950086399025313953957578077912124480513254009112150110060458219153500196883169060552662678508642073393915541269183898446733949077546884089552837033768914803964132148333440267465009095417581975865286504129589196740912023138861247753779943139389562885453144729284184767850872564695010646126340781759996064545655296666707095387579859313013208751282207349388885382210307713138646689700862242623932126227353427785535248792606495497943874529700751002029018374645905778256493309192152751797932870735881718661515356897167559530688821375625711515589721623202052690487728451784552241634220868444545340887338741692657471315845179675462010375357221633062875894320517673922186333241154279048564064522619074150768845959262856042531262161429684795625137167647320369318253220416052775330066852166732591280348773189939411875637628148827673331253643685212955077667993802026768594719229676474828034098776668725338442547680383304428223800149395898116597884370614890581632550771800359531845529811884932065438753998973297523631004218734327158300286227489626500931185142945945782746571157727954970352149530291383382704787164289390329647776189324138337758880994706604590081180643812040851762932873734977419151703111199573617367391917242774837322754199180626001759924377693448326431084268560055669523731629994666957180824634922059167388912968623567821875051216589889578652316879312619003071420108070215566110686787531216579186678440717104264281305147551782081481007632969572749550132866230717713329469031419733008479788118538717496712485250496934302753909860324469660802891757160971584012743888715329488942161512411843322526664410208166164101024820511873468098097628852912016915944681100781415986371683718937583069733139619378809352300502890379044878379075320915822512962181808886374084368019178350358452001301705907352821937111337862490517077371429016847107975742990257840250383589830810679163096369796213833123236844894037943247469341992150593893842254321363366642284623583442279034626131126222020569614247086741737176036369080098354433323812947960847019291194428279880018150069549722709747729460021904696466878573086179884295764071632248725664975608158395911732719094635353978601309906098558158097999948500588108528945901464201397459872630816899222974181003384065178134884810726565239203409143678532207518115555908965341371232724926496670848599061276035697934166487123023663370794169023447416540292069788149591952310484265437440198696501371510027028775227490177572435031974642048564510821741271195877337808615905068846715733793607857285133149491336192512736501403281344959534711214283558728001020748278269462881249981688948528944873425797623159003014346735025812156679456574662675171190058550516387710346460100478036813483749604502125982125258606003203924985025339140763506401963375187462972145717673858916053611839822920755281984277946716529777704529468731885450054473639393346160660770415484032579275798202971655369551572531942755523809821965634880592658938404829801404520188948555464863874010910784594498272234983415234760419588831624742498140016144618331999251218941456402890664380764350304424646438143374650262227031775345799980851400852020244686075493030841424554556907910907055162268789129486824801620772223419925219538086541814710025285719315936993596922703615207925359390933216607602057531145624319183888707446572227092833604231373463357583299878610327433608614665933181381113064213676232880190172983124643401703341566429362499874470463504875449622901925624386262414818902794955985855444469874575473038013198699683969862434553783387447066038491014167206149973496299829516592193497143648803010955393264546507624002929905579746932452027502572499716662740841478403542536825855877521671507329934674594641209171282909415267481387212791355609237740721916214928367236008216274883772682791378842954356403123154681253152358836826487800454361207074126853620738602614109835999169420058678574124750953400519568362660816947885878852472290835815083525053312263478374132099888569685091500637000811312898904169325411288095419180707643601146579313287892988912043005845626313329545497541812326754335137031018905971579164941568822781606421730645824289406515343756264807953768395134058006057576219034795324209744338073712681248652259120514539293525708148056424789914532861346917612384003014951875218470528035166140232938979752771321213248683104150883088693404150975708829045144781686218587717905615676337366458183628899744585419860191783897661120115440599555933371102784112100348356780429228646656823778057911972212557246569344445700766635681736006156974139262468915426292406039197705644763669253365750106733800904331658548303999183921440908806659897774204441065771661258753085280448940453069994621116113976065716509190382738792553775801032646055336827977507097212173641400973874525212835999063747133019474618530951016177062260392454263448887519310982504279815537201764224915259380569864836101584362038356543999295878952375892815423982177679561454251581400577651918540743243217327541711016582958919363186227490605972963519824853892968983807977189418112195526943223104975363972411936847979835668840644222711237609140782805036675604038937566660236010987921443387793408070131282105187814627149852544315913164441013686571550831575749009772737612629418107122232938609601710681183389694762604069239738069344797823884726968656219064947367514543768737539405594858032645842126768752920302176195415590226321201346462926866435482643511018512433665314241072964759261642192154036030851029613574335029470838609351597793665974913366572189960332701725322449972601550589026188928831969162607168915441569815255591067675498505080866690767650554096620111623435672108146975889694636018092743209300280422092592686749946042456854246852304784766417210222136467839190807499424187288993110493568411923580040525941327503661094866638372547386602261237838940167684099375787288770780828583444540811262613672996292161549850385507139062948344408119790330362555391025830508254732795154056308272825394264205622844793519882965259596288506759371482295931741251319326657610495234217961211663690547670650839516804331821231046280126642850842957101353725107685539032820502072327368096129872125190770322015981386358738650290708642607357679135352652120601840561908051737940176391083531219721064382860752628541329887515002748807878726637211923306551457529247477753778833038358580854920713949991484445836025641574457249162028358139513460840441523355916732338627914277344761594689245624283441066918773171117578052962046917579650722763298901175780553825040838670353250777389787657361095325462423608455160722513593709150840111072213172722525426457975216800873713511616220043683917972735523950338065589947240006501455225207908478341192428467838996212344190668522245286768217782151588043065247849093915333239412332356710938125392379235669967881388031184323873380028857456067836746542181707724467910456780406661714815231071187582367795534115401376153044838278549467362362827805912250356953784791011255019837034119085906846167526931475265170594197802535165768370164537594780302251637241281084105084865508423522746481777168487498722503001396611187835957805775382509520660340251089627129588036430622226077353290842024604982522852489781639015754661591839252990959523993852799137381179653823990375508235594472356049033442728403728841672251942095378242752726481592859570494545760424890464073991729768243002337728139776762042310283129856308939610914366724498975480404154506859379255308309130804262226181648741858829393957197708054300078023199527404633542254874553113780921832257381656077392455482028879086091221952461290912086105825410890587503475545714697410162644367575239333288388442762511732096969009996065173594072981238129855255916310841160473378892893662612222911574751558854378893816442760996147126457927890682901927280947380074012063754697876684615934330860460873349245607126752642948168847571202564125356139999098480264961195708254084010502717126175037813280836956663225407550522432860995598628232364930964639155026316184484270038671058875257241301289802375365488828672150413316237726388264064747953321362571788186892472624487661214883680422830650543866434503733542555997110672182801642641110682375039655201086509768516320976195568161277496284502662474315245263463616405783473005162881561002031084940209239091039270269057159435834209724820726256263693978020294912911863296400567793238617171980849121398059615543241918916474530436774124421705947199432365150609074675437806619261295253926088374417663356014018899265981617684365225914431649988631608527132186424185206789038983218367062417878778179304668159459393482216278312196452651423707011948606454091288060316630334575818477410175451037972882488910324031501446731732292442770173557215005060444711325127060170309590392800486487785987062732944579825994768738069917855395779101554113460335538945236717908888347170011197562807650345023836328623761288187402471691987509089726922301560723431413864184165400307117116726021863070525589252733077427204434008988454137794614702215545559739040540448636643061111721724938491359052606261495553206957253326139391595706679412262212216805017347989427125536469572604308920741244978799784350015980717370453904899571991396768484803204722375111672681369149653549269583155398030453312809139794597979824156794264912547539530080826545355801091175570690149853391987600776636545512792902699401253613760761235140587517361577086652327922639552511025173520308381239557335302961251483059863843289042081512750106862335817845283662150862628574891430580447420350462325128727606998820436769617444425904713806347670835586934920652031973444637307236265343633466240642718839339001435499416689640036617211745725080088205869434027789151224187830516758406053408328563127944573218127412745030719797139309290628251302168878614749031667189755604156706754580779368570679020714341591291311136065642675696475198275675415003405039786098450634890286324252682289131606705232853202361621543441464984999090723245966416446029595398305336371200403947877195156734950846762424672217507857095328812740276147123542737243843969978719617792689261724487411175177495587923594571665503138699329818653667532176063848532938715667313092901368101594446446435176620604274911892503139899942248801962928412069317250985478008749565809946614389528522909305309099532630602091671175694673003070872403715461565134440656330537737655157878083434528472400555020191574655161507435556990667881647430249780347886432685048208363360059007903374629450751234857379925560629512744206254450463066142487285463926771877959635657221952156368645793805460048200740523311718634142843444183329359876081013359662807575148222210122482546654908832302350053081651205983219464002241341986932039804995952858890630884920964980849815171916435741152002283005177393322903510524155489603488914454489600175831197768702840769211841496221776081176324175408518488131484076898770740054216943455137681834481846460653636122814929298986079529122438873890799346865794465907507776101735934192564802671527332111493121436486013309618511288874611413911519355146368781362841709846418411946046736255480462690818020216701341038490101379244233600494377719596964448697860488606805561157593677642989260735292910095068495387164099655842884918608214981519372391279947402266961213168959740574347385920333737868801925521136577587098872893753172577353307174531928117635363185707526769031888869428157812017314136807387302273755736633915140788816119907977296266905549264825305979170547769867213729240427976984351514912092503999853390585005051109069725897910109427674361548182821181652673966521525324707794904729944302186846028816923165200637054132603928365142121972521514940480025860656431627564575044463316452441344766419988149267510893194695580261860096331902359021922014563102538111396504604062299971645513061509531229060044026392626390723042115243707625828444982209257551701971956681344081973570260601807374254678841893677432973528002545843663105117685707511622332365663136309062160038507653529133569387267431355202642409605311771729933457763869224534212626921450459793939474082541705312525795293184136586993750921386278339079137674163554643798690054169748880378402330145342594141011393921675112740157270528841946937201843320667833884464100752351150517649751857589858965532673402807289591561848054953119948837984712642402240951553815310245618652216029598141577238996348302393107014148277620762957706651284859853439752135157989063296567533383482170431923300128187776242867934812392133415751950966540663163747860109075273820154198193363015425182869862371242342615230590529911927570308969757740260478705498203604728541012220729249896042225802054262694555434150965868205248877514099989686002854442666619811579309546102791247008927322076883294208407718570980425617196491346473372997118653700545318364176509391033825594998862977122354400099658159216097809320579188948632471652428165811010314127347888361996742262491239637592499242251037492441052795018324251412115499958051962080584850387040326966128037229223401474838199071425121150865467251406808538565496636193916212127899166594968895219280098834244068608902028312074651335754703759938021176290606705666306365952364958641808913192374079493918027588219388157612078036666070379703994465837694299924494310703171300736452310094843721421469057601216924523050772716159228615240834682381799465261560995629993180592616705361000368142855531228080593758110438458401806709024092929638763985521442680452973682654548427771576607359043398902503580324570071445884718788459333882701560857055105983435311366747039648073028715434294926347648835910476791050681540193797235118167835079349827099822822264779674107905345923881307753796040241325964761313250891369988077724186894245154422093206949961805645115221623630863992832378626993035488599288716510613498028916184206631519518342179938756521424994297857719102906664335719027197256631195361226854460099417553938990888610515799704227792986600583355560989429636713585979698536382352485632769768209200567720039863077971373343803282051815884869254909918877105311356462509824122310617366686406349700477221500861512322162461615205338466954004579277814218001058769177589826428695139454406047267350320486983043635788125606188927689018092810888381689367958065975057764094703869437762640137327968489026244087831664943125063276587347298971748437301468429615759470414569011022425079782093463506926416409766861048043974085578371153251174538890507923134752088087656651361299466669845516268423890058414958882572942302606596615729835364358500099245279904381774709682179976349969182237135381818578572084402759990346985737449342437757737884119396897481749716304415648117184392243552469783191997477754064422815968714533932164195613771165308922307596276251058702808986815612593201960175527087372536860911575654163180569633059901861766618447236374527774036687378358348193916910891361832736760330707653890047358254755563873367005887980351630533379994209725950299484407789954395158828760838585464403975672449671098118597276280290002410030408836297489464281186261667056427949958508497111919309216149887249422773838654459980769138239971114961636876472453613667929323645244139252308620924757539938378620384530181499691536316840770418063235340540045842806999964448035408125836870942637389507966382635932019526558445405714104191268673758214153970386317763367499420420865298348194299605630158507170791501512431793182403391190377290906498234820551490073553899636719513678222437913933132818422578049588750175285737331165500715910318979692206272479769237154330676307341229396240779879991696844744529843816518154905367677173221985885924750509738790854323004921575933007670675557329509037926200382044023693640936613426364935308883183839310700591985830828543785206874901998935603871485252695413441381109300996333747297742966812370325192646715679342536686934331689514483327041512820002183324391437503861453338988882945803886389228452982107113831379930204458138528108083436950987341511685730419355975919329919621382166956161688949531700639615873408472193799104659175026076570346076591934192061347899324602096619802349079043205259164172145252583321860199176344190965191935257992238495793796626168564771864685671725464607661723181195042895398968164195890693096711390347529222955169617580075892421445540207268231063821911197862746147097219159641520553802906351790718451719430881229904103747150179715233389932960173211172618424618250934685251011723475765040654665659884858485931097953026707217186579208657722882200617847267006889721636045922644733646545935833195066845325568403735239473124898395872132972879417514101194810197610922114221240971902595217812040671794091539837232851114851828849141990517513592966211552542485710780003530643499730706795542611664777092442351870832006589330081393013389547350415969563628096043762777675802803542320691063241730867932193610411485473192761065608837313008876030744989769293150222695253870803031948589513416799495492519702054618674305429259970720675444125041776710757029862503155406660984203224192891573576558599555312562311790760023671373164103397500882057602076136152877208463064643269756358068339637326774212673386777833650266879288150926168535450507855842736535087320660377417439742001444466939528097667582503376967222989289839409382573679840598990198545449412995968294099919539403233937628854848985590679541210458772966144382775267796415577883718884019412370364057658198246006649911383679576800166403739105366658158274896772879703699523426224174001304922287350950262741941686579121277553594506819013765466774413296957489118798731738594353704780114955827280115309546972618274588670399277854480492791472677395667536276811894430362545978536505278863158851999861164077440530923329233027564213418297129553799178591868466136680273168464707732985654169515079282101622582412554059447781678092948167907246193947952246579253601821597967021241755746668531338601601428656471012538603543023312401957449018507133506741779180815804280261302027134049391771752151859458212057520439295486503911336072277598859221207991789275271985427563882977325199442094019543325451797740892167123230374803937316676936301620467548005448860486342548658942035463241819594654445192292169965756116271251207830950381132258613123293131085183128597944043841215346131505732451214308789773219356448422159461126734895077420876169397421133773034986829828032921407493593324689679871491082582543022097730076775195095850124593387022126285633642938453429981812576879171225954582582784944063846086840577597864081937908875703168255908953018356419694937279976619021737890203895719960151345378442863885623583716027881093186146263316313106839698936054879105307909422185026037202137036718891074956781965136675627219218305979331167673295806634284179379911511696163522331282254167491554481354230692403610040509658044627831651103336661141795969800514609947874914718418180035923901154578302725648284901415750778193455260639662512177706072917918410587059319018829565183480164697443216840435533329565736759942345050568741516257190735910497530850815413718488719968256990146274063797178673314513595754902365290434261084000930254354057323956750920508480839622604205700235257411122759270611258030221318226298146461307754971998837001000720261071792553704739311946184472691219002499277216751523764333231269103775065114873051844045859514027301998698552598336603896308748090308435432933392619892304010408286812303314195137725898851530263808213633486703778133452427249956189296773083358492200758257297739531276288226219773092810240067751343923656539427074357546704946430187727393986388228626181323671300554215273658333077847793226246802036946987146632060136606113985800898945789814252911828115707874939793497644494020329326310739249310595526499063527643135081265622122128577166788007940105332672500824462327016038078777435300436333919989112004124022265465821520524718024450329457320808255612558025314168140188400878568821939771819162936264838923361566144017977878277811413294883039195099158993454184028053369848220071090650096163002504588538597606677512746588518128296987742116606880832514513614956616000913004942650705645865266496126546053803545603129159160673600035053472833595643755767505712871500030685617497898418791680765387645519278516480892618112089922134836764226654158814349721132497318342065983370909544833406252263155740252827564795040954275983006514385452424472980501474975203928210763895705215905778592614401909279516515762086628328435756463833769548847683555137870372619714507264922346074417255531831897149104583231533944973060873254162377105277004463802975773959977320651058155749386953504411697652305960487905633332202851837260257115837650185212799273791410522322502052209477650224685792153855091438160692275026662874630445988947280952755174190216551310988098192734973598587699610039647130733545009536883865614358860417306858021001319238150261929322578472735694719350280610394526183412831995570722284779187043523780964821036355671774122028381976149042994744408731553224239066567468102450313661516375058789830169207905602745431730209515262892669102803424512873974031409542490422525118886073400860796170074122436312922718378088714131702835215796756117189047286897558482663961335830375939533881068203898298407127459321915568266911999192869268791274553002568276940664480339920554569757363867204975142106666017202812436647961345124779606832601523795231139540801120681908879494769816759777636741334840988839134288734963581118656106404716694246128049994952001929434174931099083032608691542236555959001128482766029414060143017174193718028773182852664842086672225221169742638060584230135707678757710454705417819072758042974054760811878712326953052188247393010770610737342658645328593085529155878203926434223369977960549072258943501714039991137664192938328346138922591225613405183875882982697766699384526362283823479778842217101683254964014060958896385019688302754473214377556084892375835220486717820695839156206854046011709081337088093824679706886718554396744699424451924312861351457175923615425837662544614043753899999861253590052825794454206320000827565694484165286851740772637537079388510911104558466706900763519232497910034491691575329315381739275047243703370307231899582383616144410711576006248643072448916884375882210898585279488425181128959878950332872051230832007152207874904658555263399147745131068681420335528896775691675079708347529235094517700329202327648735247293203279366391404714015546448312123234576902266951153838757822057943288122085523270458280367174347677160899897876911361669510087278538311423634707897691583585273291321008965827783731816236176317363316364393744435519354718563460777149804391478248839606019915938595662716742161004202670141304395838866333347071095953365851610767660550756157057203498369543249555254461707743987592036436260278708556072574680370444682302455434939616329936059010556709101381820591285298476379478816625275739596129426137636925375868287689310237108923138820799610882728888968032564790791192129399650149038262634602793856615044762579610601924991466963061984059119287687920094259101156871592940432301878452908352631957941175355562718946454927625918960043524055327200086114178053046910845309871213614632072103989020652496534620065762408341871175083047677299162220715037451447273197347838152591330318077616138597207319716373357528137560311990587554385152642973152831738472611171705261338810305158490666597616575720166062654569882275937568734627731884727821869570536922196058602029543299825515388820080719904184979322200510743333403423488103281187898818350454108691193393796869351755992707453054616496531330242477470111872306025548990093717540753236261217622760353224247203289822363868477304822305374808044623814777818663155206071507687956163641232642937924094859999906430088403402719028589459022359568359880087440329400429219780995953815660582174475984542661426846711303007943054804073381862408782770564648038532456256225712893915901602386692360173890055460056046696811426194636877909415297176731187441207522579637477031183011667632731941151956860976519552275957605925243446716015024446559293255889901779751344743299323404497449911483069638362439016357144090586162967246172055355556777229613549661217648774281875254635147490007811841220812673156557544038649273341486552967413644727873707028857463989700359188122991835362282371862715366587173434152825250370911832031637606819877212307055963448592158734083669656423718497133412281698967796602567324847435980914913968763600222577852724533924249847271253140116417753858836908180362349510965464466816299154482363761228954599564767558756102492479086552780755136212215354182602386530226528100718682318888608285966977035096113004992110245274102674419809400565847212689051360577745196092984901716318774625588053467325554216005566234640258880951163912078177972721885129464602098444191552376517982795464508673007269928683936771279716294641809485733199539537530354499944162464786939482156910882040978994314178428088552288831627589813892772007404115863073962511125414408862419600968415902383413653159956503285001473013445573178226154472963779359108105542062614084905565575174490295907671656136026654460067050146217390306308908037426646100429671778245318266883043952906079533376471095211358381093603829996030622450820697202106909113836266472493965104534464499810334955884927526248886987883337492457450946732253389483392124994331250708644897050207476721059406482841982020467683465640312765813381983312377721351682813446207049955890856865942397671739957274091988281151673197460242540874609532309598830875096116572930082084777871045174436551987872051115820238329408570923392185714529485649996238547083487831618161266201987285477713603485468424246179079319247188146320220942464807350211971539006484147866260941413966503657658406490549432266016705549687428913088660795049787337512970198230590273564009757754651475624946766109681411596755645826391790913368360619777038974517474839937035431049700752853083004360450791743634046202711004397815394317453652563184176470423610130908580258695425158022639136576619263174477205495632375066539534278716823576783013299484752832824230489127568412928732615236627875829050872657204963784728050836507020438795854261170107887852147518732143048324919541111812297233251840559903443644804393256984194441820545186631049234836067505078040922717469866871269506926378960712525465398533276697368193981881533713800563293689928309491886946528221345255760003980034382619368543284493151952528930165537291325638710295422550900732083345420505986048726839933340039721355624844025358197140457813181825814115193819325320701468725492852418977666351942750593522626432911669636840163014432517040427735137405841635304203790460682862125022507330846796061995422724334750681689104289521140890792596093643989176471264469336186275241000358734276591357638739778352051107653612318128612995378130199330569095807566026298383962251651110394201353734176050603165065629082510062763096422356860526494861045883789328706119208043272290689608587894704353809032100272682143984811877246318311620087863832746036574183022039641870256864015106212846032461964530457461154281126321397730035203984935083822375996410482662321707701116484128071384471755844164951322511280563966843054562192134399010727058380107399993226941542372204967098661463693043678418553120334634928017671174031132854327770758857346757470133868891959913471790927051381034124575988251374065037650923298283290061629941520551381824714249284520807825889338546117857824814557484427050418650633463014972346251920898326293854357834029751579317604268189681909995538993893712642224950144416573299497124910645957617229192408225397520184509954795735400532254451847331424581790898078811190141867016425412826449370897164457396714827026311103493584754033551984477103973159430930769889640912729164222608617392671899216800486428118503370300120185261132715459622346966106885268352465892219868962388704859739990055288180085137175411549563996600626898847421984966775407140835844429036773304031964854709995845499333109433543293803329529080597751067529585609262070102494886903987179504557883954813710285525513193876462812136281974698217989255811311652460129774948488720697724571823682472854500185598783215657020692911440695563284004105706973593739945947497687323753921490051164697079219055836262287833761735711018787465204213540782592546378137076405378512710597044530842939400089587693826006137914683397400826789700152155431281861788087618229657779067809885835109650392691560917141406474470589492541966164178368060921355564195418351470198985848108213032801856605323922078765608493430457827342167771557633747193673604639094628767659535016591766353967235020422385212794740875184080648069432683545739214585549772663488815779086338409616454945596408524147685696119343226778999788047078390207667546572541437724467424143443023098593714747571904609773538365788655989417993331491395111920997823006004184704799645552834462676519775176401362815291300021104188563734359658613234034241648306048772794179369023540089350299024704493160294461440462046346297608684914578678299242107029952566788385933372446385288419074400410352571202205021854756496887985726813501742125490567989960162902505069546922323950414236044966845603502487398791589270328073371216904847318109160799188405040170355645690385997741219127371279852929910470374192611189571384184651192356083301210183504093886145059652952965295559592044738548164336357062694938708643131008896396825315036966787906249293074867245140401112235933568216859555249298262912993861073733784814618106696060110112607373962477932263360722543427892804639867043840498431092425894255625647243957828767408353971047842321351176601220529502072641005737060543227357937215699698310381907085441237536397144957134375437033925430536992718724189700082712168600818979981150383513732964681292187759366274955596055820010159546545329314256682608403773088971625968067566617382756231125504817403540324586531653770764154035368096465819167608020166808285127574966716627908531239483711932251836010485746934312276007037285718105074472002793147112124211633916467257219907598878547959293880399007423926479796505805973104685877879664790640295299862026435095011588065340522180927269543119907939341097207924164646881908641361517812982265544332438143725497670223457470254475372392082877208876362867403381310522588181989134777263490407397862279936015196144064472008180957493520620279573446463251359505624897886800281070338313150977688213994446486696011318138938586731788548597933335792282310959579524247531509389571147133707791461735966416315705578167251560132269653336700964338572057564208914112677869881783937935883706322430797139711522998648858749519156129466074194950340685371558877975468033960832005010823172020066212394682821899743835421288666533188965807130463206304759842470690278210635335851160453951443542763421897943103458072645925244738610039331211659937515770265078004413510238210759879422810693173105147749003782929728691351283415495959706175773563509352753761833765440018434864180963543849035318710532034943884440648429810998812093282355874430010367504928664358591237145278848611158243209842280420228000023448636444884071155205764543138710157016610362893556883278077263167657238375417484427419365737181157960596710679288201972908276763876524237493415691488362792626874590802623190562688991905429369293641174408705801843229965871338294443703947962248234997969846296101665716730555874044670461155950304580729372483686781022643222492822583120569516871001718219848082415634548763219911964535014344258976095322448044083677100545158890024365577382831526473038481137639331299111460714702676154305273452332835109717232927450043948230819963283730637135769625697999440686872483124965751811707451629267390989845474861976435573678002178393301798789876159255517286510362858212799956773588827105897782030992726126840075402001668167604101106135095666294898279954941317726952595570463201529576837664068303269021946422033448781741864988192234810788890666806761559935428716937495364995761558149235902070037403178913138327969970878404139956346298842777483824059055954799712287538464553759326436920029337238565046239052290495236977428636914492344567227382752602747947406544574640872463421859024723522581868375645263968115283428554163579143635485724837082726247803566375494929911361220350112036893796993052858161065763843581119545031347852616421100152143645556867397941244232645922439411951016513410886243389748417641497882427376200163688327777298864832789237710887786423258349109028489848389878775319117624225841374732409166182837282985284391920188835752839100132226371951871746747073090474274879732668857182481398514729190939647261987901019626321462718604290940198377580124234630780856719393010630821798026416033130263337468203715301056808992571982434100358106200514772370932344973220196150938804587048813843971256941485300036971074780073574568845549936300523326330738440212932972384842220339378789948053641235489765511885875781604442637542113372645076033784865269816219812409413276822769083858524492969472864660746097030995693603513411031490609485069520082946404944451477283097363917575965551131576768427511723719241025121425223961440828174646335010472660750320020862544786789740315154363150169977165083404141865905437060469961380287010425479506643062372162081494250193548480030679637406509424159743229311796122735250734512564977592451239889963344729005323766305927448708739273435687269552478888686817248482502156170355233988271546184093953256009967951322081159194945489181361762780861657914675257866269044603788676871768005657285848175913305860713393426073201135617391776803028546550058512001026871616660749488510082138045726367955821484463635177443620438596496792849951425529257650397952075165259068157740893984734471529097247312557183307934870624987116464339485927670549485848630988327429707919309435654492931865504052890860008829801983310698903345232219145707423321197015359205275147444686083550908247076846283610443992320517383124047577361107410069491922161542111252580667044500114064926735586552092526040600310054493343226376810794362835800033611914612611445144699048782451373394857191640103115092232326231586813522920141521931742499170970557708718303972699152123338591077774029533512467347140765770578136585891026573766311008197724080518363032719372127205844453454528723381381364406741205567407930688402076807408889177418722074271480048037551495287744284236316413177185786636856690466008895347017194233766961999308748221882145146386536252572904535842801228865983470887978436169838685698950671818666230044960362315888655854225029595082671872610781861233061915707112168081151887759434365682945314242603402300086435025510171913444492044063960369746100237779433465482686090240974268527950851035678755596308512725841702682532944320376549809850707553778124157851318182123274278343197685504860525795676731621954938119259676040728489856066038526883613984525253951030445719879903439839335498129663075126216003861964411011070192194575229962952645353176639805043587341472949666478702395272489903902800438238885968148546169736963001079597276461850297589741326684320258346997440262142133730629750821286602489656205290860178281827820979868015602021607214529021753753369306261244874193725881173595513847036729631049543268580101094464121536012273687779081123275589419871992087995329233229881998790765557807008949804606397820795781730745229874943723410252353071389348033222872351390504286811039155401710781301191796157860925830487164253764153107016279128181200920008934961323970745786336812418212586324238919482563380223114431391649848522999222074662696048615821042243786024211947523103204173519481612875156227829751723884793817351541234398113374623892817616003738133107076304180124224329919734191055294028575312750731413660537141860879774892575701351916250730158324670025555068425151334383502193789753520700069896422265587052545296959959222463902720234191217700042373234809179966938858162355611897249972635331407409543046833676847431570140605910074641358503120040926368695970423601905014589241459330618407125041688624492470675381338689086402498627707900881897460308316981016884656371775318874667610495678789382137275593849529682516946353419865403281612808926077629093486291800932830674742764813704203237607542909237257650129141981249679498663276639709833386034974348113188413266902272962978374238733603242549040265324562671441497950399658259786931138960169385381888397091366536205147044197082743945202103193774817723965220581258205845823735914326000596599390574630149294440797167199781442173061713403957304496437194882896209903861552559702306087992714718944185427566577924666625240871757698078964374239369561393977153141868130955000408280700687326523741093345044574556771718909655748575636450573780497131286250667083582462005541613645296369224488775586632931984951846314060759706325873302087496827006991282624605832462169436958688063633655708755843644109143473407449368312258153900278698378813249850238797187424123943211316010757614275252707430132656420313517873000000569739728611154919898817914132327351809487043608500948538883860224079097662507178822697887517756813441863078385821211069844736577190264379359723797103446768317368846669118686383440863638207747574284567658124447703072541847245193861477147163737276284197588591931847697616846684811469320678947943937495378142712394330696762525257317117501118924016153252101364009733392168674383372311686893597438170763350798587453389190919785595081953721369014253452899602801580159391678988040485389048570185206389056540041411062096055088546002927124425296988591176931933394333787086687954038103119562493552719544259299973049425069528998381999035904011015295598692442990773793205647757362515812630922757660921141548577289705504674426925535764872298566108445638312705235052974998013452242967483884678408719964809611368515422171331530324049567788909391173707961773622039918458852635472659656076911639452999511298186558288893088450178272713216713772300407907428801686794594499948945324087489386743829577840535937107813296967035792534608476677985517614321893158778626216935688640117879976659395527032879409720642472041832258181488078383363158251970711876151421518884969892288977400950823286974574233821336614594596386097294976363255432832965524870119250940476513517363412848396103587546215510769253410188604629602147014457546468941994506123030601416564533554179215602387913485209453976845468548335337749138465384227638336427841376810887888079757593392923381088508187753097672468469657987407892426543586211275051486637466985840115169821217565756139769443978866433852630205106336508043633875185062665397186249833558308868285260479865986657447936307203380814058945365406585841553268356676910571205542747452080409069751353313749611749833357181522209345019681130738063438940420151773721712051225367743874556679599963753379936883081750169911195819426887200775415451273440251528985423114209323354004030070148888374614014821648826802941420840633346693652590427143961401031470556895815498055453231633565510577546339857635026237794059735640864697770823868004461561782626278694402419025913896901670732316893541785752969927024539725702022361880537331912661566461612177390429782487295503700549925751577362604837902256949906210889880927042655849402973280636514591933121897311022521610495890921763216484137816551324745920763771642923951521166361254000237552644039322000373751094650291915425495365255150408153881520408893422905219941376776514199940722101073165699542332588099043199955597182664757990347681320881647071221750996169385761500620534380337540019771440296285213544351509947719433282457624477996780127500214252423171634213191726251238337651472401858660971311929753079120163446938844637344446470400846704747456322995773013382306229142417667294474792251533774403826859881488105915213799219018108096983256039663319015784038865271030126830830976753273802118174005862696194735679467278734341521139483489265899609742451996335266632149322339411147453271973089425838424016124450052782621204147828357338938466215598023692805399484405263943042336911391680992629926463549491979435045728682453593838292327707478424610092590522547785605967352215689199021968654118416250311058679024205457313287637357096614084101801047861791013593698641056125828531228318905282494281258369224991099731755933916833423833639642616625878832486667126994848187152620573877416574238454840390229832699693553213065839180057345934481289621654209183911531986056918668014982527280948729040702186421366551303119646375962781081540908078525309079718813489149717678809860842453012853894286154394865134943558237685780248306802091171633065433510644334763350723624256741259174408321451889914108466443538227726826046432509361702115823826083760093748765045111244495288383786372776783400122499177156066098695279113969945609592214010725104683347845748052207118242930134173561850343864773069160010014377815451660697543534578789475891963929428841174184883326789979935627405268622812845040925942935920075634170223548997638222473966482498525533260829249709157224496524836385385793338592268905782654987226054612105623492139333933602298591681088145056470929245863141651532601950603350225841762006193570733572780101745639219590263670348910697646139786088744661302193386710857276421799788546382965739801097999360075149110142735730703767380678954638625634460242184367444743619503062920786540093879355586122134481162050594039809878592345739663019625735703505695597814511109298377725539973464287121137135927767048371877929700918780931352104516651525308100886702185136715843822443050008833639548937169742724464499091174575462716315328935207361937618728065304440002674211352602489105681379260708448130271665283194281206083677399749130938612943866115281022620919268533761506919061625370459630124883097333427960058392307140553367174106350212852520792990253100923570921269381593618159944460077211785029197167359482427991058061811620775478166589848225177695872361429769277194676941638290946126447287877399460710629417078442710195808436581448226062330897161555679994249941380963511304415390880618107894494154331585431455790417884752460390525937983352372252338546406984785361524616162134023186968118040866171814521245902136096183740883490503029949171636689114914992821956600674294185270692462257807033206710276272382029123017054127255149987698118633724266473388481030453384943109251419864899690675984711421130966546577852481049619724420485616998034246317915040613725820703425565797929476168677568185930719358546246733715506573506375104970207358018002403005981382120308196016349037926548645444543166759848828495572302911679849967947393131634349884632606545989085276628222887593265455598526455784059459352223190340901198269116225028229831995089163920594555057465212309709844616541399843797954703121240563225185025425779467905377180883591197624719981525333687813497950540945026167387173685771144320929364944083688762987991382319698004824201987046859591910147478243818637066462206250170925203542186805313442431562771805444751807918021542653918072343580117807339829399369946427334224687966650879182269222086585250114872466713941598583392271337467849396483710773698393528254703620181372655205931763628799261807735566348764651074414294179027335090070150179203994890828602411693471268789463008118602926483467553324322787680836889616775910708007034223128943866209783184989654852150391202764284355887259412421775369625070161424663367601561542254981117184963587284766702765451521709358094539126789478328878956314591138462182789819316794621157252136755850802962869498354193719422852770876460009771325497737943961923024503523625078044901488637101643713466231447598740844968513093917816700748633014715275280431266989764301444763332176305869992502168089127161152868866431411790285000574045956242923157162444241519744862329271460481381338858241730244783818086788348849902528082268423969321351886226287256399497995224018084111676808763925365439529552817919754573682437317833873855916544882858560565995625879351799616916107457474539691796820449308918224909681183469474924972402390287848339169401681490546044087492960464493446807125486810955581796918169861414781796147499661260776034496897618421462805231720801485107844862008899332784933012614895545810113768705103583733622459227855895058867977425291412988019130806788353592021658032316456844525487622727665094060081202204130261088584141110239421646492425264442370944373036249146091667015737157004751692856070998110715635819007908706152680302857655471636310570942154566445862273828898895495609990289749865631291856723987036360749654846124751931382381504990223551708481243224070765454137727832649860449353149379744548073920909779002266800655820462919108062117877216509951889031361310342448331170012883640076710752542528917025914878190072275122468429110197389322492503046160646918446551430198928287973365902821741898260808716597326541054925320793186641053949694561748102051049655932995127827213146420864035024712120211318483894602166124718783840254365738108648982513540540681058617781268918409430526904789445320347835162507476717058613148439628392021701364166997353947263849789916415697807805851594415069825862262377645974705016034180883887032815931616751757117632975848628731333303278561399375846381811276119396790784157207875150442006650904815454912685679690108375239231689514187110401859331730462890461628726158713534051950750599767077237179856701288210758595335363042987016124250812965245480418286564181390097023423795290309853608906273814976458580202358996096333369566156641244801524956148673655885680793681245967429713296778986897298289343136823983545585077520133371199964447394389386444900480434044248443322939364815141884570634932244869613964669434765411476829268204732522178789036569837004421026774065234698120408906209967245353129941674817497383962482293480580573970969384844855965441458444768342829024332106859974887085121378322279817292023676793256900120797412573426540639342448710909451015294110907206069298714142328165525158821460979383288623905332578124586295389101517035616953026511099117351098584580357005885622339343381072611838429332848855438481615512343797478570350060046797325700898956577718876608137876001262570134561382821985556213741457566630972634527823613915279037498211710088503149445933253673504839824695140677523683436640874743130932634940643499163706586705858550475849166274192430806486777105605459271074413698247268650657566963597481109261559381959896720452536142491529966623215857795125936433681238183798298083623099765838307731286858142155363630945647882933577238383068851706889574395463686090962373773248265742821437393197755723685033882777961371809337647612936278201220178228166681727081925951309447332139177291665636822468244533086648236885822012635327161961748575642454503241522567088177287402845820323237762638958887324043472789916995136924789591421049338153270128537286338098286336292528896746888606260026035522320460999101988558238545698282340723255381672023101977667591868768659777789092624533724447707846291947816109834474983947599066313236487947649842951063450023049697560043509728994821788717069740456951661838475793522020143618738464273781536734613813862969641494885935732264731777839799506757091068574914720734979041267817404158201623662291207091700814452056316661062721257723850199277455420692545560796890916307294507844554876148970246056252839930613939152485004060634078318282772879861047627875748333892921695818564234818026415255536275882265968022130557091145268730808159893137431751899205273689729446223340325504263423332259292097203667606993077347995521500755251344112655634346065018451832485513618212586084635073770682085587467641275056202967690813995083954989193140538725437378268946646728576557643344126397782775773669330094045871835605728569911860156929201612080498577075076692404137932144131367873463926953680244088837297845112913052699872571902920328661143069840961999730989737959158379474357383898819849474252775859563778124992228615970317452094524817898533272514406893137242518370319802125266153106568149670437108413432962203135645799187139090775417076463541573111405267154579994058404382918816821540507100587318906747348602566159053832466757367225622923705887492284731556194021860247933972191561057875054711521043706293596361564856976138719753646453458835106561133550993133345478196347403894544959530362280740552214043451651931286089942921890091374853252537899454691085547313477843584608631216212331564931335539704221582481830615553738462370222581188985034718719054243480419961122656494090026772788260106775655529067970027388293672431613493418502912555358547443298917780142378227487807365603242163947633068399638299238120066740621507596736917298972013466746014099599742669857353457842785678309189483384941090028057975603810067502323893813800060983937262622553011027226369871142308463192692068348977387065080336789785802201107960043904834341622191265034199584874460988688111041742193785797242752885188966855150052193661853445421501921860074088567919208684207113022830308076121930609154570908682152791459705948017909957894139919078907981583434211424268020781172171899751901310833389724972714077111374322831615023987628197148826692176913132956065992334260366425125765267098716534509370501741632443655031530702269663025378322260319226862052447875105765868349342654242767985773091225079409070012085464880204760205984645630678484350307212633566129053173079568478088120396143701973358026851057762458033740131875186982980802713659360387675623215613490978900865285159351370445045670526367511899233299570117421414495998517832365852748633703697227425147508166266487174290085141252282863707384284635637127293041324016876287970090867242542213451749145589898273125946619444769825139108596781669278553672057825715946033773250333262820490965807858787254947372671764527507280145204276077681885044540762545645447419407247318927937082948697670997062437533691352621162940760717864221778764517299148206069412725787361686790134813766128068045382443102704705805139827776416548340411833373596073174651165959914952057180646280589572983566394037344435991768136914096119531931553796071231905428719783303189576718433710378081567387050581361403799369913272780395766186720733628159336031798346916670300210928671841890376734002129278954116336568203278641706477547864283690462848371545913180803121232491081345511734332577028451858548792293753325441559332362249174338150465742963768407089685248346139753116899982720285344183616315970217567560689615240386343442862467110817037368869690016223212800447136353727787017955958407731342375759489429738445916010085729597339480035827225421406477659679826164218252903582640954152534183992019698699537989384907323306869263416772797480391540279005271461707891482372526099395570293429207278589967200158552419499759205358736345273072955425371200847103798563543295592616066383732917733342360920359553239753476348673916084033955180087944665751681824821849147591399699367065627318913776461681257893738935908777635464789972396234997170835187848157662214001297057065198172244493464312295565762263770716823951257202888594888736388816177271281071706841208870232337747618887087850952029765370564168600736626517232520410762136380443054081673532524503406413141988761498241922472041264396994930855917462629467400096773882443560482008011303793962010211474466593739345505337294397240691715421501278868712106034340270897640652020977854835349606633709236677306488626993713940846101887760511071328754321645797906426844569563429089325239371113267658615977657104669171969178568848728036633567230409174285899547556330989786701587093302138552257080036385728656447566853353702325899718148433146226572621533360202115859900708717341907578275710938950893405420584539604855806747927318929834340949575214381365570623863880503242491144872044591581124921460068359427909562848254732043378300155028503509925748424647716483617795537009991397133312136486577803759032514716683751480968101097341384989559288418910015376240341961335019740584996145410377812053073719746739393047657957906984316336079613127811244371701557316759921486033012673296845088704408048148774082493681543276510186956149809189283945766516763236883334475467033274099253167602091979068369654398224951850712151646732637099848528713599347453033632137187351816411389867669789100986650198461101913290944833588723677385396612940669245360566513509216692313422669939764398218610500662263922653147004776017279563270297314817361026301642237363943751991811513984704612842482914960569958662461583615317036132035645517782734379792302277773273203871830623501266650486813112680063814161300199704240281831790183977857564005244974352133454461944676332472955146535024590660244832277280266145733182520802159174276918860463959418144930833496543385841228608513452227795066489498884991801936687559281877849026897583458528573376546088541945806552230734358953293572677724735436358675950242106920281837353678210888969547732908684073371034694413644488510400119050246242380319121288965976666369176318300707529425599736061041376980807478124274697209693328436896368475316820315175186723138828040707203579770005138527099585310241843187425421785798982111708870612435580434193226152052498366223893645499042308412188441568711309458321123588139120460374370818811695630532121611234037562614405635507970236228585070919403150677457096364886895688843023020956777190202879598827638408154863276979009016371061509581563072480264103163672055482744224036411913998048900331051852144501594230114313887010969162457808495549508433013233698591407567594379678959865164576107950179973602503680819498741580369796182939514861279298762346595485329054125977397724599175374131036928562042752035432867731798743651457471555904730553732322327597731317820186485097264100709621151836753732816555714168267510832799134835362104721052427523449071508163939288418034305388064106227892081491404566530879229991166933055865050762813195701420771503995284416572889715229947784752179054332774530013463103637827147103287078018743589588987953807646076886712975123011448328594238329651356355969500463943134890747462233751936562444124208294244982227450953383527066658464453240167143607473832650501493243905047081836819229134267429081590362945452480795010762365463698536784982656363879907331980216575208281293358062527870405175447152942517437693086339205288099035535996488733318658595894621713466701314828644588856348457840932913355695852850234851779562608025405142112243111076136203606695316342822339795801249741969955309397139817114075230492876453796683841435253342774704195917748408685469370883543938292819389820054608791427566675433581756415557842879029355209368011437645006352206970411235723405873516594049432236070878767769390471210057826775733799838262585131017911572716679174735351052507569251861976177460033763199587995471945405157390632968440468670360312270377987066363004434553738231376844787240681681519881023318771782559533101539933936237808722751056462139423885436323399183699596107133299128529710560944128272788110291504876924496349161444889241293500092606506711620878756377122839822070839828790509692934785134326666423306392428923364208488868339482120364250735174526587857814489238881418116178636603644824619846785496645798599016169169410295706591845048890212945533506585256956708135614937879878611839986661987703579269332835324316055751808008185759644114588934377377803072480826071115122128892150684603000406807365855262599305037599370050173511222700419136128148449686902020070758903350672077274779853084440613383188936356079045662805429208514328265704854841471590327371854134930225367704519731092852887799149810650489528173455986696881274920029905039585118764000935455135578747692252622174656476774993577366309093168812156683116674736307914762205958158964289190530365348894182029847721108427845234104206119146896746410731202371683140994327365696075107050716858549850643908643570730404071488710513261467286714227509145451923469121817493923014951733183174980250107242295834345729026573637648358784034870351120492379254343321581679284934772338529316959943540489885869962396761363586771247108639773422299901810100499110497127714333439827013312722202979054123429914374018855563828396522077576430141023550813437503549788665907801475074229513330212019342331850679101468847089870225492137442551765944677891998826641107309266720575672174772734130930347907865334626102736567186388754601167604688317521153957206735746274712338352651280179133568755351488404055566373967033918695759689607678574454898362470189637722635876056341142796702865038982698158568691663653986175592772450985584341348729179956490781235207204100489716952432857826817103148299896082582353143580731321251808086519753414291678946391225076807703496644674823255136539128956516029040275257989526712343205818840706319013492198127232056977368808647472904680051731229620427515117719186915306809497307651243264081177155026865612534305338424319449372584411818780309459136482377769303469717178974392074820413344123521239810568171703388179274055255030233115613277477472557181534052918831431798462550758618023645103112890993885143277507604803773055453599755855424783770509832651016683285859635017221024882492079003824970998307868641819830931974981071054575475766060041134542586097416906265398961056217801419060535477994016219841907799968207512429689056566547559483689241370142727250288997086798123038462115135225521845975926414932801685978056169170551822469984292789637009752306214780990614293154475303073512926881563102298908474984941384703318458269431649780410329550660370362279139710690394164933773953392754705210784228913306576151473043949418622335869267557866896724885751860558117988721106283982180144024699587114861561681467599713901741267667107420907284576881982636322703987433858153297013523640236772076565418612110918058001072648069116046445158133702983209081075156000030770314485945124956703221196128876834905959935590647462457708373409278969298821579583762966497490603193041113136002175703605648158226539138546289569339720125581013814728890337228408019301816650219466446966702090571398553777001116229567782738350304786218034247108440262516863364142884500605797768476936280328741809607631177945595537472736546223802513065839854946218510197815954723873537753982258774795663817008406547319326669778470175891150403286212166349530642440442381897280061723506153978700043986196282986182057022522598080959527795144556077663920155474699552780574709851257534079877934571547519329865139962301283949638458510068164828449540079925257444047408837401782906177448292202156505870467883401205103230935794894432612810492479593966862879224176493194336108211420020324754001157257623213809609938174018055360795431830967270796893417050308162575026217173258301031082881176889468787687504373734388671111318964460118205046520073449392648616674022512426782921931191982995780635522136212998150228484538849364634135070549011866298911417295672238517445517693339980903170238760016879307553869998971736573197160480788622709601651890613293683560511393193510111077626402087548347628423297446357674258357686196987136790578583682872206326258404906463262368332507720364598828153568761072687282205197954089687103360972752213097318602465717471983057457027605092714680111955494871054983422373172558981401339476147274448974025512370335627595811203335133741679827798585164952079672594899382279723223119516521824448964560434876014748425165238920760802809038244862494369042107036185301407562884730348541377269175157572186451014313369046730120480995892925735082936419699638751454924256957578596306545720771369962383733335546332461617329181021492860673593948963419677249644093423270713886569306601836242829262216920329371630245044448058310829227084224759884314636380603930139375157255294171214219607860293104663597535450633858073869461945244515500426548655341771333358097707682872892591000715500926224287208380838342663681999893645664662666439319912807661085941516920528683980577459934673648294043636310638904366034808246801627481923531306760392515313254319736631531913741264402426547154857886515315445839191274257278513706103406548014651000366846593374525388479286336893994205990018760243735748355244799320693975222872319829553485923429735441284585129636111311787742189959690998508864066863922733873945723827217309432583782462152159462151323275461772353392702852471178365039900798587762442622205789345031934713913400013268550197517564720491429093712924482593427125171473565078056440685581780410985963253680616762797878419200100797166684734238356978979267498764635642782006879899236052154101889563315638513839536095855146952590165695791556836998619743878214791552270503130211439765443865056880616072582488555618944140603933576739105224528429223731926968927115723045542933265359601772482500014415915549589980306539270313583221570553439068702043904099227558771911836336495250858032150013573036570744502131224950832380801191260402283988752179969829614618948277107478012844742202296358262901951550141578780348227227821867136953613615390507051162543449332098914088359674112457403184588004770089678151563285075957478904919842076994132929612084807367416699481827065621618769936414387130010885855357578089181082648751647573840626636930167814246379234181807052907745652974057184864266020780658456841186829105987909355514480374161928885564389892217090101722475242347889473595508277130508784562985121042334970521583271615822458702905491288693176582127716745143652916345709332894652301752443599187748205278163678804314574044569592810660050468832627965148785588729092533564403521160852108051438009185680148805675353283040717215273090734928034472390688207904040512746884447567153888297411327636806714544192519523682391847804105463166255108122284768567143600881231960975409638022926760220423791938574860958288409800172744483241454184189373095642257846457624450256008237938583323820916460777702471317923791229166957530071636319280581780391540154862933643575997760768107867668277500502755206344131390884160936579755580624199419609705299162440310657493193425493959051266572227785205374808875035697412521662657573342802537763328590680992357681075350823889569874204310589088513998093387587322028863012166722757654578024103331307387376355457879003385397625153352334163686050071082676524971495884649577280202183100814716369756296300064243280521474727165396898308823208590156166877547737519904642366623428878808218498609552282908270182229032620456092032027725505280215491056395539071432222402657419876754219843929095067111269406188695792394561646476543398794730959400982903173646026206251802511218663897895580746818287387203904385044340837788278306827748327361890189175105653737225830847171360029528674892973553868335864120079580526654396950497261015013295794876159124292885235048560011353946971743543827734957245559655097226738048183059635883702797816896180596505232711890278796845086324194252262053724702690065511753915456609804173216871162204417943840161088934688550553345424808654095477539150432368486294406993843281724158631051004324607019248584049639510262759368285841758618550692903166143874615979527320822989532082391669417013559457052389055706334726173749436803801297667636615086136403288160572268759514048661255529469304223071454727521715630124860037444134269811951969320181014026901965161806253878904480741351183112695517768707216012567290192847909258152346489930889325462329082426114089441015849023801702960835679527965664025329666495041551251283923904544003370213623604208330485472471787366466539458514462183725464437277229508077602091213744998606550406538205301367617851707398550797654408730325722416097790634020851250557913657570052977905610348656576132983741496370597774469818916068107524127486929982061687412858680028479808216208518695680361326513442742789949564340231488110406532071011733258455260771426995609176412187550899823638262915882379089671577003906426045088780593360195540750614743755293657723908807369610029934368162876962438175714501915958502816909896706764016113278255229770326472069495241582694070669095441704811653650944506182817829013091682170520720093264328567995454359306552487986535198816293134944657151143518807037885952585388764840025263247685061665671222228329389137775553643048731693880129959771153011162836824174560308978692163610913351007786740669767780235050460749492351094038795793597449397313141699388074220196371841337738531687556433846931235808453066060650595328024682613763358332794353443135126183245215074248300666143047862521317991035028243959514437751238936521516384725496662621758881745361214796976492373936823422337318032614599369026161459514653018383404151437199783982164564584842024988301076678854540068593921885738353943505460119300542582123114223753629091571907437031281753627877198583949875377086816846791208933205354539436714508055595997772553421630335093087798531109741788738101209195704608799999901314034485375943283522610888841998416583323657929856835440883991996255948785280778674098388098235972825081364442711961433400684481963373876908029819740461467928470541869492576669722923685685961633460397464590481464054690248226620874771258713969142088146465638721899854238933804574852705651766785815787485852320189507559437386651380315942885086342034865680074787838345089169850047238551399255100781651180545004105670775897472824330468675764638167865163492113753380907721458124525339149089405432115477934134541719195301849252858856861968130446146687630615283274183780524368860079793899183722224570908223596661944784216518841364537035914643286787588700178142158834312528759071518256034292422555587724507679954575353069851054232973020045492711044144055656656596579164716445819011589227803548653585836462047031344984411301319900648211447361114635694928041162407535533141072791653038640115757426979130325356525585592197106152578337714340361252646826129896635603438950042772581684396552130201109003765871821858898745616430551061899153754376137032798060572135037568516573576702545844444511535259522387635044685121257123505132019159965016020916310021457875387836369759941971030893151852372883915016585589172615814732005365983351808532055294514720650211704623998629449368572116116400313505006577953656988694186497528830208124085938609970056277601449303663558594902890645211421852986957508647273462077247748238961024530560271364726732869339527115677041880002329501139350580870308586458265011662825597553309380867221548449858676538664936204372005280649258706283557820838945869960688735354379704853124822912825979698129834773296797742809589806518232444844653628287079688281265846186384017261539550800880620429402783394826653914105995920913575978916572230134332464520772486670888550533641248770765651770948195805185243665152714337076310955981982136635105516978016934394302675226583685461507994253726349438600775440712134379018608087455086107228162893184688558585777482225063871290900115864906334243653097832007655789703434760567545293840281572891315554847568122714732324826911539054841178544987588549718184543563744371880958727423849948788479470982139657940096076484966108909766613415675634340465183438938456679312023786457879907118735257787454292306819404124310247755683302543687325785119261255851002880640163585353287609035297414541220822978290511112688389790702367729426348695708510660419265419670886170881887833842429213976177964367214791367048301990603944484663331186686548518709575740158091091466740835075061388348707463406926547681779219110142171035265430064012893423595378706718071937900233491395051259375838637957423416026197434242764305210526297862394941204488693317016288234611094479905687375328441197269045746806666703578969261196677149362303668509071937339603659682043028976762785846267429729974682012598412206442911592604682549379227921983091192046192056544201724847389579804219352089993552314685959464481821132399983289437638148352855646108234985652467907369522139673877111542206892280178790493425124052597480009930033357363583309222519956067750279828799044504419267376323988946083607419623520626679075570664955841841227363915611749997586434226280965499727829623431146787874562440508563599987765375071053830934906942154189727290262717844059082107055308638013286097182249520246386644172968251584425711601476607776513328771312628721909779434035403134894732429613727031679731470615699509234362799639412469188148300163103241796008088188068392962276470043894249370549589992858127355931842886822928626573162468610938222026967619154335785355525954414358214700504552414138524977675612463961412035467321635149824219552756912573489712495182131478637540434259082730193197345246357153191453302189288752463845075105887222355646154944591679536568971099208473421945313190007066794148221897201152491827724769927558272713379969993572518212321812067891570402201075321897980633262863431385780197413118239556344677772860502553326547293302011308619062276513057611123958730222618827279086854167038348234622014225570796018891264519156148132734996208288055318080074391692565109131253420771981804146161925050256400477426799578280414734377010179101849757501658081067565632767490419767849315073304027495585525588130757919170326705427781516224249253351618675124695470703482633135981905072226976699400688342122185870980548540039109689965719864142938088641287304074452011778616408052823908547754979898981462372576366978419152588281542504228045901829909118286816326519997301025635767804630323397939127394729424992228544494830175342382216232194334978214129975617348147419521619123942547484949187542039196827217539372505569613146250350034567566549034884014782498764905307398195910366729464777178514992027024908110707345704154080533428943533780821370891716937164747845045983297970844742374177053199389089192297419156725689067034208356824569021914803560186849414211285522229120551441884736155540348460260423161746956881786897735778418447996734395768609786951423799014253827918019534953377528572238400662691801332511813876506949168528359763906147663069653971718214449321637680215333531219733340602755268025661932874941656956039827460254463298199497839966707951668068870427590824511601256421718664665606095795633326505003942763346686238761146471768478674724841484474088586920298283843789433176253670834913438874065707487545305302177247618072315755986192826289485978678494252148159500922850227695636353602049719040411672041686021304443415858085887791969626318900557910674855136111860677452823426260739913770843923626586208357517880985085729772383842466636188287207707255845788510287526637309872141110458099787517311555810435390273803868760925449834278638520798504243846285683281259925720478536335642533527230975552425630549070627125726399446226500751867238218222406592480537061015639209606553631959296168896280535296518786782843824443710814524940861391327750503041825809481769966524110310748824051292889455389488013742882248260315082533511186589492158377947827693083048250279711890734057523021632832348037506936870851600687438225974336159405175608732902471711215946382032759931192995674911738718806616492822227750182354963424602199407866096271428586276411643803774137135146291902539251128610227667151995132147530367886459452869735901113785944676473402661396647802075193055092547341339689778025067070036027916907676652018765549322431731232987822920790267062232144828044888555798383268734287114259293859697926237641060301276604681406479744635848250041540745469829459531605420103032963941597820271837265222159096581495951458903533146412092768210699071028765009567365693252114004613576373907054438625866235162175070565447803879211043588682909138786517614450246398111867448264553933420443822567613302447285904529297418090626501502965105995765529560956499866467725097779041817408258001837844197488372960899185005984591253134244550233312641203075094130917496529576003256630776910749070426193717358652323815038591757265393355313649797961363110953032305851196971811757075093275622526773996260511219775537609499481154143274804364935365024206507797788511876229544359319469881871831143744104199737195302503359092372762296124242565550901444415565161406693415885935556748763877995117342242475886388679787011264963146314855672754457778687995959392230987850413041131033050691370732341530208564319549880003202564511461073057174171437494022967509226697051954873905510573745759750144541797479567519518735196109237682552652184776772261173807360487819456997757773419321931418688536853860062554586352767108630780411379285987336168118647792346304538174491633529219218425248807205592540684249088607033341244089152018121825809349591524163958551541527246824030862920679551062950104699182131968385862847020909678853343432351552420405266377556099394842343393351609308102365538578657946620760321159635609746931946125740356722055356277262038205841357912254503652475481110728148028860464955120873674716736018667696484046549485683842971303494895052846452033324275439730526746743191211001343438011211734207989110035759274646262436871337047592042095586866939112303483161495174018243942764661306390384544572752700177135605095093167677288661441699090954740553562840934896664967885381519049246140201242156368424386014325113660514466763247522222340768840693863506874044880030589327935275197201143036768659662733070015521532762182664997238265884757352983362344170613895518638156920759751826933873542549531210646872715134890342190486071278356660161784971053412068956451329507353862431662109907950948990781051607128360409638701373289137086226700760028438217266934406463940510448421811136388975797262016146874484204018431939589081330636497125957937592441244330360656320445216765894518199996697147686924459860123569976078063174437104920775520468887925596484805034417807935209724906661225429077632447456222833902813137868931188881158311039000075199201959215030391335952438005478738051676766718708835443010594935350164727114803787903098583037968784206711879106386908422791902592831111448945964840977342582844315038661245142474558125942652091079867741359095142604657306816355191633878156262168382722567384503299496578759797257702733010064334762241919338725882538851875068352366613745788099635717650759876714230156953249552714458170689409069058464319304824228587430029796573658770984978864252512183423782344992849045072809128561548873804975641725694321154508620350759237344685679870136618226515072338744283086533212660394616195216262665374642850149280070573618508753346501771796360506708589907694760465001494861380279959007686110062649627365161983836945067941217812344829164526822924176268095141884207094133274618231391127736245097073189368287089975204205121335215241781409332904610104976019700973345975296497638333186774300068374297831262867664201052705002761603403394179679656532732550344913066738878660482430487293040561777959246891929683549595938465288458177601763878957536812508298390770190399544631650971705422217221736120085268054795641497475100621646988506300465853085510802308907839288278788621188982347881267700721388555059872242692547220700193986112777862869637028125380131542658381912168666834774031663595069818810481867226134635490532598809625569327732595959790631806904347852839109540420915248876947807872914376258703288641399539604020548529450375153084921330783050827368392770129176968096038257757274191472635850717744108551885451974130703362701652510435840878109941335351929671720300470442235452758883488439683843715682977330491387977491976595401356753476196731307781248919360454014997558052659907882348885312656888110171468588123598145605401617399207276297113001280617258704202592034922287099199233514040942047172476333198046226626223228265539071962025112880430697678772434575463889905496617170679316504376060211209508524399172687251140850063589000003486138915978614366417730517083103387041732902843018824715729193304118643370331546652690917617350813283818107402614006857398532613213304943450064143468184672176935142747563411954112033081533766614250459266014385294084156399141005637428151209896515626468465915164568096230494589647255831369480610165421271962600191664188516674860467073779294867036947931005195088785277612376486427257235784458438793507431469261318567327307704864555329812767823006310357238996457348013858957374904414885799068760287408975632953610893072874562323450763499986291345965599462124394867365993209146612155828262931177248378387549914853094661350058848240101022467480162147664433980683669376727350352781934597992664032937272543020923613203146531027022732969487404093446235392400742960131023767190237015178003300539024777850116361046498110617863646161732780297965571324208110920848730625816836512938595537597537186091094649957128059579525595316348864977677511623882101199803741161462584385431396651808083450947187564522486219264502138471027041535061142145280537459447733645381235843624129083992957777618429227015053864497085357018450377660436053397858839518875494241637557544931429935282832740699106265333910583384379880542493624550988812090050114199748580161932838526600609741721598646893631152836433674830014995757759119907614708046901317493619707152310779952118292173436760333581995869089237742381840092229179160450362735787021835668815073560131461593881465339331412368950935026179938001494027213544796597326981062024577145479979638239856042878819065593254034007316137642437761190719570967927240361944964214919063760958087465397137267667574587221952023916823542681394278506473493471434590309318077540892979907231951267121312884054765194547941487686016052283483618523618459213312143237495683501444338560030204367391407501592240551660115012170725245815307722866713794917676670773942987021684664503834479226767138674430769761942153530918191854205765695537535509901850847591584777523015925603956650403732747139016493869713996965745630646934923289339831854261488599100043798475377855388189227284115854479512976514425080957005960852960261064172375894280939171771686328620382596247461153929084921716619465374387120889684942857729196105224418156643332122506156678874852084929631428043491663443535315685214593152560097645089695120896445837026214559882780365642623048966233920474737832300124558557249291533805584164231131202922276313767605675350250745128466788341738785458224531116938998772412754589215958785789811345815505246558905759272988245527012718594608551072550876051233522530208395882559625828222431783098584953553669225652854530583471386054834798873099033257185732447895546467050036789250039577477658305478174284196741896698940378734288961035758868387241443225714022459768232492131737857263628912192866642752011400376655574946441744762544226507526190192522071501125929625798580211787481966240459863668962280900156864831089732422656191872899507059989436048786208773493327744794486972590125354878266610447763737376571359862763864747474263542567212168933418984333906341997890896742666352550792545421125879659251476930132618621885578421637442949072432831734122837955368323669957097158009474169863184801723402472132752795051171754537051866658124638985934835287252737330270123101301606532826162417316843112870407424092109907090735711388288862072839186993347516455448714475292097218403204850324517251579368237532396003676482461603501253153546947929725294522812627676207513046985170623502313666765758864314207533590949720046087801312397958656908012102136429147227266811356619359766204974849144426627733491874897096060240905975815304033230635280323254960439653173881354235411006559817863722805218002715538960846674956859630622333170403094756091785154164725144598271057246282533045354657592952228599045265060424343569660894874457303136395614363791428270754599685958578478063169787451460607962853263344716649961928910143050528809987216217123064517821214443827362984647854720254001637699689747220084155229199997139088034029180248455505348031219631447349056416574363977592428004309489311890198501774405703464739540216112137964820835455840703731854605052452259260289533534184738543921698011726622538069305163112399481539393269319728400959692333695778248450894756012072697566295927225345434279265920230641674031343704021965901245926973530343842262371388369067590529897171850311394515721846594106868353115170188362016604106118693147043822618342870280139482126565339543706813062762674302988656498762738096701489780009646200774828763737100089895240390467642099279736550975716914486122582880042135433876770128759404505126832773344559823270669549217479981712070459993798904399320332812863668392007555784999619407174507366302510828259230010340508067606938410259702486460744002828775082655800079895525524181618254978323610463673892390481284139764588834490242577912162932674359253687909485617929320135107526232142273530820592884543317103174614950320472458285855667360960259621027203830669764154093543597795440966560874787720183408585183434341757638216972659255863714566009511076302378113976735900715835753751364839914335687868067644616956201502342305863325589692502376469575790132533828054741705074519689866140025973461982408321932509863851787707397269979025430497848975763493067018734333214310964335760158276863761136066308756356642384612048419155055311701260614639061418589833208928375500947619148080394211123634742246383003561803190874883720439105955628539447864300921610515852712812957440688156779019570845449923234129588612635872451745186623875349934056385996177162133907832211056984338278047050094087440160769133851328082853107009045787002203981814814491910863869861839033313706329028755089587177683843463668964156566881257461384917389532225522894083314526014711649981093240718794085032695724614442163370641130154493685969608239893814985364013908169137242680852726357574358546427510577526266084401728184551420607322035086507093096975638558057284743367979021809358091032528704824265751662521322946945254295529244726152059968136151607730841239075970154339451600727803988038815187078136052795614827524723853972353410980560055880667176824745170078262373062753788979089204653291543684369843286142056341449741960943063142673931626049391554054438603498145748909941351195034707528045188301449707428684596188478548626176853586524944463120991753734963299465019215998997381423051279984984151255927586535655295876465403707047164440431058277258612614770333973774360567301827731729063010624742876555332033145096782198121587778957238102278855606522258348771582687161360959754892244938207905069061066078590637939846611621316752880691156161323733219561824033427318921078378382244376981170103456543321916096249298412547845874501206364535187005990301573258327820541163826888934108655977246354740086630446557070660388917720218950619205251155106517056926550839272655691295757735375744268912336583699860462692270716747203191116081974580846514853250434383213180943517885825076874948178803546776383981058842922614378511199511473879269752596691794800228077403406708774941957152055792700589915743715499653913823344419809449276023545607746166033308698912135607520870543896745325551968419367146113199779701734860093946742334515658872743751218339179019316144808130662159829974268854525303757562398582664622467151155424959516670314788607851528146992033303736032017985208094719995515068192624581962468933821630999002087842278714478765872827169255032017303593232213228788316972850255280959453903437854304793608676189753426708984333624406833507429123382213773439215135693818060523149991777215216283658389704353765276115595579600919692288956885688763411876620060300867356720934806407486293630217983328126866995440511915688788672808116767560172935033309733021089278875172913913446160231508995427152108734976005136846855056260595794753055730279485041764292417012200851962941267240910365404978089098828002168654552723774457795259547421817689051110060920935872716311904346702694511816065752801508638688127205040251725369397882137372719223960571616193959978660519921985192919408009154864193832878822200565777837429123542974581450342858719493092969496777784836893348053962319903665788357541328657018642736350135844759773913613369223297558854562265753546104199784017970221494415163597331816399758278519202457142586309684285777233868747698619402248363866452750589645783910053336826989879758803284837443507313629922634630840921383382970285732698145345618170655395327524065196914375470389274687337838346599628856718996538884457617254756403503633158832560866407012167841782679877720680776125587109649266490806510296338687524832832788298015293808010350840338193696024821522829841609671753877351389351854888098858694173764917902359912823328596854112834279865182786540949922416669800500070890654175274412339189727588019920205829183971630594245002192855863594367792894079736387232354002685932172434052677849177198890286410544177383709512777851539026336745533578816059387568684553029748580262986088228528983902448436961093329197542343972678268800658963677032549170822495602646520139369163884013596739964732863369979063197477323843359769992112218685058547177007686856867202221038853811561993354312390678915531035181545586022933599360533143628150194565902100758222849003282553780111138428154379915611917661113060788154491189260536254664189973896338805899497591078040872721412101198112086956667885177030089704337051354157151699614401614081208037316843396518204052780973117352356440365030248615533799500572984867318603943226203063215245271407298840013948945378870021461213820425494495637496564343686097361457155815254974653857827915817940878183681641921982615548840481976126506424585185146529572225877216843699545770558370675841472323968595855577519770114183755052003881475194586354605511431174991536582170301691274225682346659541491208443277658222403911340130681647489390638038166786515228819911213384985947650024600006693643106353856779328386784894357993987039875447267219797201031926927139322411042280827358888814600039158166304584661149601240506934931144478059031769058017694149947026562285259480175395400965071727548619188967442194163511160295645939527016803458631919269698522029952966661924927700702313642968281722705582069110535726999302350645163709213895082814881766322248151213681586684490620337241396021107727100178899274095526764701503431844796134236948117189473437861505374279928835416998503796375240502910010238122302338265674307070278410198471416174755033043343728424818882462828928399215051644698575128879586681920246995543840695063115206289332599088867053667259313309224737670654045719024962546250120939121619053762304060193888414773718016498768132517788742545779357342646656572949641312206937979612416734973245759632763975658890961686207394189386834944873736594197734651958395472206769309223496891000578487041624840445898646802100169721652069513919703155809929931403393884209919045344700545407366384091913285776889780703410673069333013586574806322601377438405731935679904070520126291763895865664403699760483315189122720295114122933434820335188833439252134903447800677330191016491450725268083587507201695851053761640369553258267525276443078082760286458963354223888943347001928582233946194778783700933065384115514411753734157219471312044543477732802168665669207206994213370121971435573659418624022236420049030522726248585090286812549105918521108940550880327346981277617307756946552784192269256872003760581796349903570549523859039064387700492558549061370473834791149377453483358119041641198218370917834532552478048593149728272732845987567705822635282636629454124831764023126611531859284872970883814201697915369016140298806106600785847065366530612277492382764163537535569143937981478419768165025197670377501386672895174003039999262497147147269698822000398424679271860645666565801428439573083434238740587436890384741535980117360553857909348033411710751548894210214837531570728165322088305116217931167957581691088488226833325120968490386278019802794591108348984273875638569639466923080166937817632711413686786591724600876924908706804116807033261728295206181214236084521056514017477079349145661507284795185359018113292921436074437264968788971313636331986546731655982476404645857243126266156863976534737499438207210266418555600885476920530354763103613591531576543576081856544566551270146962391351759287912130592974811680718822785822003194278614208516239772767574671931304504545570785251399113667851154159475823167617925049882119034931004133402914571967187796605012959346278763996405677904849816159580329883744354502601581627717679028044634246557912847008618733991844102725723268815594374656147290829640626875858880562063600946650274396632677822057523773014060510355784698314131585265416336224516758270031232854686437661022854547142735597575779405713804586633960995170326074930328423737022015525987830404838223595637473017480591631896055630657258004793132967013244096205594014484912024106290306387969883494047517514219347015818350024061219159743447843402741607800679027124536697545524078865159354174053595361580513391431340595966644943362904732198835523310967369955027460078774642446313087233782900850549466867217081977486063295313138751324131956367276044687834941445269880541670724028941159509294993866995730341263599541808265519412181036353216354589219943097049244120334500220386933003789816611375426361947031867103822600275648096136690792180035160584035543682417416619763377519173777161802395667473068273475258309787396769885794300788240617006351238973256163262426928893147454373446169364389607976738888602198508599175817347275170147946592188107279917591488212485201324984735471787465366631204107539735502331076104526937428581416667892701485523679586728701182432921814060581408581747978066327297096369107729467719974400858684039709981262031310965092298859437068487954822440530670823228716349140212859898317643510364781892749147833203602758346512716671316922991263288618994807393434978255018874913877718456545097298964343325055618703923741078343211680774576654629030931651020220099233590051736844827541326752664590483702652639589512423668690481815420569236522884060593473334181002403881983373750580363302233545115710665570395005367605205325326260612600419032154380516343564520390288449338116775091735749724724783664982009526419994339027337172774081204109750726706245381050824004099429375526836423875302628882073855896532871503306417451380331896453563968941726958756989140399003418811810871951762974280201518526631253776440078025587050201330534243852538410640995546409026741847320823018703842713166041739596648529467867762481804012208692406538589956127392184388320618541756692347411422622477422621076458988916200487831516169247011269650845080686298324598674383736414133014705065966299665853506054408934037914564028085612678022333492016665687575308337496355217928501345457771235160596145935201551735024775513641007790750500607954758101397853114550847889011301182942159510965511173774468085375775895926994043132771065792905930081122255618796759161160365566703672026845646389426503720643442481466678040271215145053908577793412865582341997228471389328029662618911767880859399126635494197238436741325837870344433894269125639101694355942699278735442799526348229120849720001957594839054106785074559638518018421317195772283018362936983715056847129280999363325770826173482399413385403062902678089599115945165250816174230155252966280691250067760197708787733392607061681707891067106012926480692223465475219619443965209807414113139326306589284740325529519366072463767582767760081535890476832721976109200727948882093555543014888288000488267563598871826677316643553711920832031448705938349910890916146748746329163180810672673893916106429651409559165996501392950908926069951963556090162028947794377983987112059468888446777106579965931772180168878447152598962132102228523654754343108915198296264910199367781927235880218887741735505711950979139381511547491693256076219838336781132241152924261111176978849255404138446423345312210544794744217918455356676659836963610124378769320610913215542896349396829449984767387335698121968946659883563552619641011737932388685227737830650837416055146152790463711907686212721374876572845942819332200148843962435897777056743091406061941275690060876134706702364957365662209236908538557079245398214234272819803535706901170056342382276050894379652059241860136515907431716240524830898910907958780595539281136668993594866092925127664596894232739201395404706670048081357123887903675414212793127773190507153406024317480867117829737077107182815918902624917691417386516174321197275906587035941263776103776636313786807203881776991500567472513597166221623348492125705439376422636030733486523405761455123810364535551900342004736317556365091663243628540960783077681944023480942851323963736416264533553718146334999906054430284018738311709950850578390824832174154722412723828473013134325764850829100478875688052995668734440953940848589316153602089648840616281023708716333862237307295453744198510347829501885687314555058383948177075779695756614163450528476347212928518277628419228699883764220916085503291813591041712486023089931404523425910431822686490908193267430025910994731189169639134043370846408594833327242567502786351754500711137998472726875971065596427347997194338970597344166255742353901394124071245653238006294869488141755740665987928425609453378890923843560228590806513764406264680528846574158376249671574804794515325792786391813719544985824923734507240168273000186189895494915685252210268125717809746416153837389020974446736104619741646919241870102524314610371013854668848790857654819328377164732435761169271834947471972534105944046017673325786637543369965073720812562520604700216453169240736688907195928549634685882914821453298277990682065818814232747515790579283062049624138729347925338361781082325271096246615286472073443339339275416977318183079971780526158262122153734549780992116450121361909713335055131010110697336458180313570835094214071838598329178189264246169703216301717284476210867214695880511855938381934123929367322794064706112751164445070575228492086695878915328342914395380804335414575669594240726621630051886407186273724994963821469372349299360434196881048553240317991953316333107959540784684209751615816069560129471059235852108102329499756819782398619094647159321145546762444571299385031072872885392694639145683691917923480773263482933629152567066749778412907197873763846449231620256344321623361779609334648750576388315727539133761202371623704194511726161155738260517458843253657301586515323049425183360729111597309324689558760542767047129670373166976306227813458793994405880164688838815273390519045952146715806889209752773259257914965304417032689744704342640202838125801769961171024431779825524913909505049733687367396832209550694440764274807806599213077609697987413434195189147318261816227410394718119660414818259765576724824516415566437838658990663995099845031615064263503004357234531657381477146372007203471953590881790184945756349537025378965954433532946415344365349025208771673131568116366143962165062055335678167744243096929132257088476012389388897559530107620621460080332572668361059633842056532976625810956162018038048567263495559987068244595284828624840941486455175698760099898715724950610144064233231792367639793695723187771274095394240367778987386155987093508104624080098808889249399832839623448375121492689105278431389078895064847406473305084721268239921920733630035492946002349532188967925894261240764007196725238272130816693279706191021148548936436165121632920206678070148215555988078257519824093176686945664450075772253884029183611523166564334646918637554378783988077486195913268613995928308618502370397791927218172866867138675405523771859316947817255775560319332163407330890704521396704202254872309486871903102265669002854733604129013297577472308539752897998894474761439731479593393489058768477559000429537010089928152423641376872743220834494097038287949638242808867396790326312037502290935524887711112380069905109968138121882828800101665723903692645647676624845635352876293933580847615967963350509601047588039418824467510099551073211723035222404269655655020431344960531661339584269848423582294693301890035770252104323211982821515245509914565592662362708230191356176056137794371539715133288676528841967729321660693969023618835055013923152080162080326690784535415598686236458066373082094708556365845528071318227579670282161438659598986109820687923249873779687220613632675856888418816167914605739651577170670075527459223105241152845099752356491974033907310389941956876924820475041745205374795922550511161871841133777080892879697965840917073186314176283861010345869117697944141246346372873888544931966980161432877123958580894708496326065935049547283643415598925352259579615858408579063532623960811806342769645035189467916295201988225386244638201045635015457142035867365459799890810482325192301807839263095594764578412905106493772289558471657954331511789611558989577154319489836014021648836953796751720187313906307747440485348602929523440742334996576736562706446874712330375979708644029274756306404142860420868058321701315033861931053042817916575898347341325348049516438882723458424875974830166873806376310316775931237202948595025824419548363209083152922136366625090393575235316191680581479010795629933756534547794861870584609749180289226313409879730608748619811144377516469153884600925513462955337441956453714067988482188263049450180872989471276749689731839071130961288877730374160988625373601970785449887083900232303524701085702573488926923786538314715405311431325518451739297597180195413145268651075137856919124433643235684144294319867093780273998204273762887887567433748074032421798470215939547841770977432072404322976163444530169378386482531387660706511771231085855174289038873035241915674323555715871553761081673483864597475755177074032543129894830442551029612484964072969254515147935502282878678982925843176583727145256317636029737173063505867579103578416886937479801551483391065373865957232966918557834239523576939870453214439148850400495962239774592358206982069876566830844663765990020459903277292467284778046473615778312929744486140531626935063919363885096449890161574823868773538150036293247783512109792638195136692469272890057771888435615020650652072853052358350001334154733342188008152075049771964806533339474785873448100128320131066074961947014613193649145225090551161107885475249162512986315889851970789307639443547824551163526846479856103137170708070215378436926887217659648894539239685813878408438991514328981088773880780729527606466667795826617929724657859079597324733124466082704281890377289772929152732552785552346124429822969614232773624426370519077085373793609110394505962292689133692390645623632173084567219136970827868832373876381493476247661083786311607551425802061681347409864200590822497697419640610051677301800043764459117617117571900761337677268526212257088638170324010611778435166889606093894223457342676093416874892768663202113905186107995816622772001001812164863335519965374927234371659505135580912572980363891288167473609579456317435044458137180882670919448222199784097711909328446144542624176292777882811011181222545804772482244530435276531901640703356517023848016863316124061851953762612432226630806515769070267228980889350491586669129433347585403427111978270088172692472740248442748047607873725219247541858054878296719166193058549194974317727469400754648340385620992537613596165573335848898488870173694446068077602971669564014077683085726542836399842294743855560164743419209062544519843240749850279099705197518411467076652174915893930550012135761574471700104413171913601898015612087545915637636924334715309356801687661365073510781392119351117499927472065633299970174898223258153508902410978445022609208488872866784582466127237290384878643021441713288769548236408050658129695728388217941419199607512388125913594974120083031608020138078888303604411356168577376874611642411808162069932823340951233251384589032973619118253454463618149685703339596825836489468040352257497313955733359715033061431694180115332690960514086251520033896647873252255318239464964276518229927745615682143063161221969988569863701973320381178139108345749339533372707712082527115485701201237481917715451242327106677470641177710152296559375534508779529750755105968377871092941697425631508373867276232517829253322860983853027724646623782024275867841270639453534694599888818091716078995951023067968985410073826562985870843040765977089024936485505581858946431272382402525700873422534415182955897860585055201711631378661932755197782099884558593559143720229275920621110938925724499748776627726473953463433328510532499499286311241504937004617740375014695891419194593016438976349613587961156550353745043630829408967281673671188163736655812188895261497304253681554808882068858309025276704930570072151528324698714655091672958170701384752471531646959353677469333200080726401994149361068088619964132965602288100353207162244636482517170751744029258323988901120305151164244511450277474158476211648633643712186286081127272641004955132298725335643881192823918039724867086605991524159189006903352946868010255312100945295352602082885006025251466365614989545523963185679881327072332162344304163063475725222507887444352471810549116852444163651295151166549987764763922538035018196270294372903355641467853420537760821433359513695397310675430442498451316255075503138417233391309852535417585593620040524027375087381331976984823537639323342395967042616569437008114750271891019377139572692878759819825643999086907666701780549176865918725199351780243638004040908846373902805553826110059443732048257589636378471751406131905519080232995850228944259074564216175108110214566469533361164580841276053485988362735983281121304954976430365940079524555330742024465774320680909384377089523005069665828558216399244543190959555293943655412439720346719880944407025471817167613793291931502738645819730917431522975895647955149115227635249548607726520589294294940351335769752141314858708592683891531744151812261156044564960789010856262783621105538798847672666866557362021418466917418011300933315174682275345425287548965136537795053109088838224194258994856711826837989465845624729524236708607213071312278475000232152036709607155580113962039160099908968953131182054963158737759559394648538785560899098728240661247824363546966618750556525163030734544898349945902853933344686221951417691671523260302179483273280173419864048664678740628237525962231006842526503676958786549645615377108717130653365556515960501650905276446408989688324445560596285705712790468491223739173110012594540301204692563477570810386990142637150678615645065597805995789805144035752316188491818420441956858229267290064097655549512014162958500666960124658179309053539186350182558918902800119560644147727434794147536239071670626726507305274813908528441296136082326031273762820862241419657243811729274007312484705826446109772763258627432101145110918014261937250694865696489805706880505103375948912415911984975505497894482753066876530140343952688966680529574630100645221028112741553208520197489619224960330707596988423311097350983305784429869313429934464375624866696348731205233460635147206794574730717392610734321763181050054333181710555500617895451208296128611876079905660396232142599565282663579186902165866340326352328355863269135947324182082651192530560338580469162362237552951129808868874957658489785692927200417183091658824868948995474683757223199282456769164886949275908750859928490817471386071608792752176347994893560947990017314767186371742687064081376638062780025583675479443671998831977845344566930851196509245121895966913944727067694335339138969532039107659854455113880988224822172070737928928840513020048402569303552372967128730970765163538404953526653879933765867880112106660548334298898627153920651368209007924786685654277154016013677901656006362217597467965487546562821999666616909506048126985411417841232607725023237244692433756627085464732682519793257899248805643528476452835314952356863479645817765343372080147542908814388263325165551443785454197188600108133734804857914954128290114949649574392630918646292470464628771076742316463710373547505910974683101231305178109730640442068570735565243741600600842432695027645823398023439362114261446202752838112418059868911839592315033312283984637736377267428518615679166740376067594756710336798429606046662749136006522082437337670789320108324633555037975087838946189273123091541759402590684078550410706033236691841057418749052473813832795915140222069023581097509346693876075211164172080961637468379814952661615816417750971401184764613220631571384018776263741479170957251136996855149760084272527817125679220436008400089847948936348410225065920276767031715902717989315303012473715209043681493951498758719803644722727573792832075311120606304554180216203079851691612411167112796084965234819465989443162673732812108391817216548409533142073033094453586024216425776638572255607212002504363651367397163520013657560171616419817017041694015022714483154018786634316918809051424540830051143948913510752391221411752274818235327148032921793831893784949965518158135739136079700054283351946403599994572721647217999411680920547556782096935865344888364270052022387931129469649454640073549907687492338873679156342660476972726760180656373725316038817372816513713238623909705860505150593162606169321287742426440503420625469590740947748113006953931966303458242670144055902680743998518209304615084819714998704671377113174134271241726743050589323313882597955243998261709270510834493389750774591810667547068366976482997081327080931583027094094535243523332294800886831205360988200178698522430790106441912221851007252947382401970576832992660099911138504881279113602283520441290141273683833054478583428798389495553250190695470840615841639301947492430941895377506989980492877812842574461488650293455543650677633997601769501088284011489718224550130365703336234926379756189610534548193139025798008220621291223295745868928794400948722329227955114947388800794569660936418239667100444957491192899407133649317629732687774098852542141005557587271011786400768334238973763490769395465646274222636799121078698293993806707794390362733600471593868275434773219960169626260049018603977157736633822619751612418639074659425901189458912817521861975548971134022342331664234270391064936628475132404142602272559386309898714868706529325091343574038070545800520638665168088579174412181237927268161405376921182784465979132282125937747882184491719148084735567034211104643490492140035018020773605683831935144723797665630424007639517646360549762079476281670825549597440357298084982647649414272362540155590153505194583987063234074052107949831547373038730922278972276024788423732282002177465678588136349258226591862960295432651426744625871429533850839699516756975840043558660472705204580018313823757527672074792718448425458750117744367821853971869383538433693974922674285876208666061389673797432506477224178241846523753587741743432687721400680722184654298017083437543032002715942750533853873867458135737432011460099898425431823448476989597038682011062514312378934643508118610461802955137946077995667479018098495848505160485858560623816665313563691420086066053609726291192837251606775054252776999865358012670133737998745483346161267127085896654136691572721177585984481616962173825541397112443134937560488152721374570208324352788712161716005403070268243105051241616608665374689534832019108449288008798046361903869743570109804164806639460686584867626248799142071558749959808012339434026420683343647893469326833921967785664253766617091631384610392068347008837507894188704915766032176798474408172092318719704891224000101853243186477386536924146852353475393656891753840426433808094128692205329626815419846997914438032996201999604192118901830312663654717851739931528376502952065541948591324591341215026048742886722810380743106616311456746716578430581507369845553842680694465680083192887789877148575010982999873819106820253694931416752616543029608062779957973083455453606245221801337954180170657571982943478341721131889835846251336531871912840953238775204142234600383232572595956686014092552024561655900709854145594713118191699351819063021085542544704371259125396670960498038007337924132211143888858682387546151337928728887831706151062766394735329123997423170620526024863748250563822116950982409814133950511497714296712684096630333709244090859556185415897528034282435421518850530774098725534883969036139038287293851137744592196062016949705171226672599793933467429325693874567747763015199320274033759012038011838433052789823030199466343915855347118761369300135742223765609336544204194483093222410782685878640083771113382250485663032721711810226159300445331992944254065051839751108096676929783094923667727492063304104973196587947371348270807763774662643509546011703955912432000407529341624103564530252437992573374531941739617907897388959621768118916622796606114491028206312918408618734073746638569380655267026911447864659691741787288053884289879771216223037347368189699375732815871327662003884543055255049314030538504987011791957629737561012862849124428139859160569641210783671253951937672310294623855941512817277781567880422835758645085560587510056864169777947153305238859678953212877685497429556383862463072446400221260248738670965290786423363703807747287973041660230529115383448118815048680289124822803837752108736609637500481706833621577159823687792267595937005660485502094556552564177495804972624904506893426375530640345570021865684331477516941694144312771769268824489651120337692946881942509870003175655233723293411414995687140584485776553795310783917456398391744819547367354791631825182411947599012083073134118537240443648114097753634909623748153548464359391487925990562573149282475209161313835614378309229992379754083942071432792159701943397985433047722350374765103721762932874793690548414930538563928518668635258132122439467597687363590307459766355098021879728804828051806236352432643159636030776041986095975295099783530329824674260905019493325803471391984499947634401589381770597259756434517401491553504470169078511051427732021039023447527625380787888203976782388268891151188265261034187111283662307313404295608106590274739741852659303838358931117546828509629902782148200292616317555548550599755957631414415425702268712509351150057290699433017698012111182021054850771293018140228375015415579537729306452477461706427696307317597293297737098113636606558750290415257870052931405140746006164661405508482622951889529731047654083439214640401079947577063244490716682043274424896449262810273076358082422226273270547933598529786677526763418851340041381073416055760912478739669276278844546950592309238816213925320807678653482540359676223952393872147999157286625175253414754607149088338211461528065055989172478898968493452639639308895395884599970143250849063907998156610642252367212517253451631788929123530975827432840853228018490674694053867633098076734940305776903740880307501845203131058365330005256192606441585071823438945015207097828593825685515249615788896763911786798775573577014371493603806173703463155560891087457452417282563766598831295300175170273935411621872015335072168830505496195578778492655134790203097201988781697999149167108786017297707393083731441099025217587491520527069950656422551304643557610277688787518268331553845942018640326261355177317199417857307503237643802000658678992283735096146247428232175683753145621886446476670447801760028252313582999086409712031662432668387917513126478263352007588689135670396637858240912527440432698291248248147720647359450944455851098127172173383494920537831688927247095184354222047586960973202490340431395271975742165894872329802923828199608098296810312471266038700704780616373134809480965102448618972186460692493538663412456149375765047574448959182926155349969382852091449155384862319726301773258177706453337129095043770587924622940037660273950201013873354286896357673509204449961989220111484263842085221995486029345852584361771962425293462013220113892126794203923021915675105931962412818659158901227307773741032431594248424902426087694172301191867773247197500171678580652803038590500015826983262439372056048489348125388892787129302046178728720413289268753631424723308504892557978870563973474932065058567548826828948664994108492950758880059482169291579700066981736773944976291630715739589814776870961571138018276330554865151408660970053932299803993858694290813346767648082720283645661031414461477456359524545721461588028892431581925309423995081198925416031656113550208221660315774223624545792095885378999221277639955357231427817486725977507323289856826973901255741183525038770863084964232856141771453176024913277916108454542735688287189514319846366389302433240343779600431330108312965004750534279655902085291567235961657402047256852536485820746196673181214505969751922706851790605344890832483219055747068847596589108783624743389450937685616385282799549967055891974460584975004852791734389442017080136048683041052808901937468008800167669792905770828268149971820179938483278812619293157737688043625559301711073162954288945594802587579820982631339153860835164300783615311580104534493129990730377931862730610639744975838412979485941366785383860816126449125201782726085181586240814789468429037209896016297398564322405460712287218595228634899184911006912753533913010160358121109272193971503524700704741691804565913346849140787478533991507248396262241851561021896234243544777528197493549426079117022244110440962737197434370849508054272422069907610135257736520273993658482881850518053240581121304181136112937157811993940460758661078475827245344455669740011069640001346546451030589968767761997160617559064876671248156723439040483144141267960728516114178056485509310196220888195368578781386262140372381014197496410409413301201453374131163877153741581345702109931797546580463664796229460466519741503118104577679777542473429165225515428421970777913222766598052219284977754614809718864282182581773904032027491643985951580768904328217866568669821430616964467935705724765375304539076338516414081352324395901786385348874224975369937892345166863051220841111256825707753463702147285993659069824452771911538673529631477746552254394947384503230702697871576566880801398463169983824483450052300192535116891571378989481314381287568748600817410628012872272047008402284375155774825342593978102873453705759130801280005517428348322283725194816989792953771823723935660653462470264091355205203856745074587692503770352364361767619086348640156638460748503839729691720837878795266138252917367724322608384009547471947911359634168212600665291565507143605033360415956697739982327550550173887017671470301994250014358672291599594939250283942820578978903097623145083116154110022916975959500774416559168988226038328117916920148089526138414931257697949567905253528852091296432697745876337526696616523118872798600531559942333497850915427319534834124270102985334001838509989838695638538757294344820676442229253836367391506235325915723592693994922099161294357016627290380224814661440274852795508279957512053375759267463462097343773196691299924290071029950923261153078993081874721374233270362972927005957926505870115140569851165664885743257945018886098632193492216535486831751005424982012639504809700063037587313054114181265987297994036975746767992503129749916709334897804310259614844572466978110744166212087747583467669679421470607367232187724472622468145157423302780469147399507629335412509948138558221813193158860757559593479261730019879247926319146872933198605168774733996243076096459163351463092346413198184531784719832450194962282165627171048308372230048233042028469897922101661763018486169216040895057968703036652125781852643040686594861713444021935812305728063619444544021079384909607204580919435927352389740153419803015383323407393677587076763878640727841107810154660049497156224453926586805742030613538580213361400257238183531941507315308733954396365542724264567429619631888415696762804889320019780877007509190939980500682143277983869048803876533069098329206053351435088329571178263987536116651550823385597033501911118603416549112532014052586919251641934911289409413064093511507438795525324011947040450738055795817997485668466492647379412027887927074703414301692192316744324245173658600120660568202086558470909319554673344161003665541707101019330545898769314829111405044774610594495103112722837692994309335363448902671069750456858893983345921022037403851726441920265412077192808772081562799661671561203336787363374991046306199482471737014064551531982692387374985357066331493616259822784322357025552627673068817286242078376646924804771142919353934043523020169218790700357003024350829814274018188219309347733943484772513210353812897306782976200860520080314404275543950142506685192728444053201812790408418166988943745174453781869164192918387154091746352876206994632299197361632209872477582959349392657468246852714859130403740052657317107422460557411905506263383686012007937680908534543357418919676271123655143460030783135678482431742825748796994183665836845887747716978006807106017961933532571043379926178491924995199567558384007781354628778614458182486128477538734810866734750702515663302157053508619786973133081411826162175533660266778815519098590169732362944818800836257612607162537463901084497357059802362203031394607045419596810109057399295485332116029917804383010582465877681674095955036921352761822606606352623715030263204840362438701750675531840132421900042304878555589077315332806766686397333741167899639510886958888045344942827127408282908897290995779874634357650909384987597668577004283317823019473393224930455282948359592921137038503925013174962076611776278336516465119618731072895013491702293954063215623944224722937756915419299893087834747451125393158659450679389897248477504169094789018678480116261632218712667493880072253445786632364333002698782706426587214355223132611453236097179962529634718043241300016331096612211733667129721193255705414773369471979826512773598988866426332852974747290452270032798640268814575143841901137606046588001869753478366993795771195032326217736151109430107051540768547401471710778658031337769208364980211641043285752369381676198440968241356477381523185027191999571894039573291279978335544173473124302914337191245419035013971284424918067252286353611962796322500732913981749198786711780892434354923738584830792438053428789919121349051554093566573478353139988382905596300139841821941510454436873762082755870463356551984698194217281722613553010108846545613761168880670255527018181799526943404052373091783941334496660708202820937042859463884854101708867322985003160747024844814266665882920473434123459794440422762177122020900396663498014809965663544625215741509728274097156428598253156241387249390818762343817630292091483357072143553596467589326043323445098567993951940416593205219501489060947480694358587483413943872108707283502332845736684048599933523121198138663005689121222174538042738012125318991255958212136811224909168887577106834500419486718070277504888867398339190414746640589772336108700045818970525183210867553883851033573883592432044154692137671637129642674050132671519049845494284216298918194269481990375279462436636091404417155978474067181515215066933371722077580291024184722959166594187313346218989180741716152518908798512872374574459825843549156239367372038630230031556013402772016989177370428182560586343582956822734412945528823884306952572485099007532090239743626831905953544387925765551383526890470948250599437651084448643459245764259840406851115100849266830071717362475314438662844452905051395841321599266529483630151660424959710076148843118686773025746711243047581185258434802062512639085990444559690584590038559835230883523744462998296415009668824368414917120730496653206769805579740475283928497646494655572159956914019435689604060583929157807718519033856323461565092065776063910045089681490877961998700541053211919697597525152004834296267999598792886221311532418705611261229390969705417629690327549233332205521777459996848969007913076357747900940604503455576392876520978592456896576547213971560401938712560135213589857117114840083289528740153324734360161377334856113506816127826206222952544983963895410632946696330951562881308615681034846966149201734761723973320769593868336178353014222298730119904538557180972214325947377450538962942464919908657732564652005985318816129642494190559198954811766932500853980446937973707726061669195657847461044839840071938007913879182961488160812896375069348334636280899758896688228464011726057386054668086274765467798034850861359799921536938695249915631650690159046344413536048079237675027345680915110350858086205763287986173617187763381374247293746662034939850690414008715389364130929070573084355937183820124401720200342780645293161592576699164469333955277739371917518005270691515413170769826690420459691608268411727359350034726618700981906426707520557817505377270436960599805345686205718245284715091154984511648949590946207762275009935164012338939958008254524924739477156481519160791206148904582052280450492305222229418581486353496900674036565558364045856945277936529642454154129372822070822794928311285398971188982598841435088603459338622117359039232821488018901766562404648536121799220146299172207899019563022329213561064470692506022105362378016939666781351189108508495957442445235552204452853358525606618990584526448054692274529545849121136055564824993862669130559129445819081116045475399735153479353278238231183320855663262734521058637306475271076934395048657002395207676391483912508888735980133785444888812391146617058870438470532004700344365825527173170471274836249136688311086872671803453496618346653896130718731461898958629841204147000447037218748869293340260497150232302554655510297046510820386726556535293781068213734407082665045862213968830387237297600756078837688627952271590148377004631397832041761742246983722367761066106663157857361260932582082115737881320720612747673412560453764382392652628199873600043933397092465683206749489756285947613717989287171405891453707499870503909134366722049855158206553817980176122237197805625164173527965441381116129346367285890810321197539875047853408894626727895870955910089359331944742297535835059999274940364631591268803629072501290371305340394859725663358785048581815648501699382097964496752677808497940543513138015351279226741165079079235778931713916887979687883871797904695661828564901417594076247114518819630767158729179694505267110624390504304138994998778793555571101946737398160232421116694410235483999455844675318066643544425167032017455680999323661734203430249410189790866748319580215773485303406703061912963056297898288008788915418537197646691291866781691997242723261238277357442290166573477867137230143087635766824972284051280206101946138209251516262968988556417992029320079248125043018706531463820294796592058828805868861365334852716038287570020634274755666141784553762766320951416056864811403913589332979767427895533024861024146850482116587827154972876338738293049893098053612536567823196889653379903226063665517126565281069103935365641765975367589384783304162517372621287392689337839064254988868696367435844674736082311149475746052568781853636367110221957103048246012664660750663306419192119744577833535974248381296920784240189367634119761952767641495750388017106915771215583122252812553710129698193292890471392436253544383157829657059627601424972179201104089865173692700807288643164221285713207328481819618080996437693949170956331346682628756109355663994894908886718463744091872811694634701042101113268952299629553909668460634165532546776193464411148581131683104251498029176020085041461180485678648966039219928366172764951064089527023698514382877630428009895404486952396289174990856297615822591683884027984827558047109686566399060961246879462154876374087902288671387439830351645349239534277997688894412541553274641563649979075378831692584042938938924170179272612774003620769710716762490132513861593093263594940894852510317600007495250614722726200924229669492646858666157363769842894686241479493766119337385397495988140962324810199096936835783753916447506335756641839478436074685784206869165725324976207083070587092516482125786558520621406592425126935023903871022359951425995807724323101946256923262683473283065686713324522337754958096662712374542087136326303272649169968707338163514230219563481200189596663508824870913942917255929892056448641182640302562308790097395600898644737111938740667264079953944062707728702503722288609733116779250683392293575979818397801897513047600348376619262743978408166668272789333506496785688114610712526031573739954302119433083934880395306478094367864076902122398013771501626675375774014600792926459253509583188655870506171276109778162697655259899342644827760451311170553657872069053453354516314403507820287341334641530092001434781103305273528566073942941256947285971778961112057674044316303239394825912562193041109570817508359724832949347288809460528756795916023844842418546331328434375737145571750090023237038100217962972182384636325270352956191379613999344853557861942013272087708687610572160715042279850558555949761069933088427680608357942627510649999779234932421476612443781033111936743083067524695123182508127101321043517693879987305396468977772861938798031263375264093035248058962853536425574112498708510977620672863288339898770676103536617666436076212354385403246104809342582136869495900112609856500103294210662453224256779164495840090780583868468859007687761158268049358991402425106377349531237593350301709945768083474375903996652431114839705507088156416967703170811407872117160734148940003021204095501794446007764288632630943054860684793754453759076300508658603132639033790161931702185703355171659647367321109867985594785659019172710215109616925163851612147876801186562948262542229986745739574479784898632623383193768555599288881692505759609613858608748165452155175251879951612326238328454212989911391138584979003907254361900096522402138301732855901322731408514298387380767254935515804788179366806557922463268012737974190869881913227782347483250082221791230814722368637425744561093452618208581230593693616878934639226182057900615272871635520901427757488284084538698339908521599266297016811918240679116402651989803680246988587815795278081699009675864506709070579159551604439375181988033712873427689338904867895736953166555264939862110656960221430507863288066903090529529547630843968467447475300757743094092345869399525190560841233132691358340015716194224374311843311121860613074301715619099377136197871081153222576691675074194159250700069313498721448031948974720121206584105631122326260103280373379488388337879002115296476849312691001697438872600786666747542119535758560104904582289019126128230101398518115598554197001466949080825060992642581465181233110421243042375786943189949291973617624215461055468993904224373434515205551930960516684727122977675457885369695319071133487282280632621477133264468409986929784875262413151823280352874115364654783221872963120536962824008665945781986337896060405298875819127179801470763644950311029040665917887002275905264029128697078177912867406932571588061514050556104555192138753373183909539115218022574979163556444159895403302023636376619768900438370888782053299413544584593701332702261380150677412932933315011408596298423727114253054130191362820455988698171158209445397480391153578576847787018299867531920763483252201874716358597758163773765423185569453092807081855851949066719798152407904120206160325099204694810149737319365222313935751699030709692354077451764711978922079585683488931205630334765378428738551039068221432466817037768040038200954853694730857528051654679129133564178927545239808294744526369882258411301611051061583783044237023903198435638696313924967285111176708185056109317115046735178504783409588353165601310683716482061652262004523271741275207461091349223870047180058747040941866871015351669605691852496313431961938290592202759648392995544560880683038929126409485169236896330244734680804345268226409673155340160909956515685898449928364767238639364657226635012847327367053789929143926724940799619068386223923820999709601851991435993555736976104715577020630543068642282302054563020835113163545920075220450715337412369632778541617935463540391118854899450475654099051884446898697958071173203485832762799038503389441100497226757627025780561407727237311052546196521520794307872851766918907773275856193931163723332709960623954851529949815720063044472003162399405116928289700485528203095610929733254293280299639214886506498889269397680081829877712704500023660543346430209425850345833992789924193566829737694012488114577017147123749207560641927623404327882922583015494280816832790303086920551688390888734392608253207669786935475707380176590160838271157357122321139873567555534358089994178590869713935267579678858223882238091488605682258150947715977199825909674771582350416429353297626406697730084035090379360236800754077743261897160653743254572827804266565980733988612337773695547398093362426641465985148280637518945337194651520082316449395740809449285170164970606792340111709063234338231019815674316135877912745695390793946808764377211500291737951365147186651776472440010906022714025944358822698690523459765851810883727999109464790147799261093939417958647284965022221864425722607149069752220998746953733938128177736772455184648098403606008528334047509200290667961734401935337776885693446755874832424571898666814834422497523729509609596317834115986654686757167899526410359538480307485051045824903479232465566036722458046274402018136658342797670415232682969158110357278707615875115483771694510898967281229722295099366558779549648525362905369827928233997359358594490250119212375539605230764310868403576772841535931305733392107155237078202842557059913502011924018273208695368154049404323115724258952618816131286251815123097039127322554591669284037374089556963764217173852468348102297209546125126514834376925324879437837921118600687300677392863049605031600550684066904785521423275081301163964363351006772316893150080356679223953127686857098877176316462728050667101780336417763438697082024114877680887860239699979774524908249148357772521125437868866870230339339691553628241988947183522833772668255381558139806806413898189360239954597695625542167889285414881948481057239547475638263532004658086927412802085142857412434065949119725767919684890801999331521286165274909386953045025718608352406308094074530623708672134098757151379089856055381075488526824216334905084738892401894551596969040002941953160550706581092868373036430897541934771518363573150289381183290633103045814557174280265632293816180769535438865935330940835823178558406982245834051777591369911782801164624738569605880709636817593667694987920627312410565420104473860927288246005792057736341500304984342125792779872683973846924011161906618851884059483317411952895797445781732068374242274223925452245342591811512462320599404749836459368251189185433925720465255705270174204682000426552612169002478262744711108513658599156617716512026177696115992512130168615255197398379459348722036712923542880007976354624646515766801152011838615726373961303180520331606882897474720375142216231196210842228576522263049000167175019556884159469902825551562398652008707154074119969897595476071023818282219702118067974439391069646014376393074620596109159253787899841197336221770491931604919914726353669012851867478357124007177712212210735679017960547837644071418419940654727972875873047584347257105531715160546684504224930432652315848245418246158822322533814523496749004894528338764152079090108525415534101164900031618579634640590922616585150860155087349566678051936974762647337355512228090870609556527892442191752895404064750832480563754220070821815817411252521554418000898717651090208800567858603855662082315410831560013618250364120355643028080221641300431078063092786485910031652718459786251633293938169565313964796632902423773018949723655051961505803314583077413685898625951285922415357627986983888413409635218032578699182343343289968447508089637878884213164990452918971870418969635634610357462842398818865446243042492635163138296055324331813742767764148299794145051378345443869309683995791411609489912479762213287847591128646407489742022674045214466994687881174289991416341192027480187667776614776835267727610169171585599978689570495067386751885690261483571700284102160818580706136114159536687270354783406322908379584468748250455125535725569431345242875698089726447869350273950007237326027982054012169871089970692925304969719926659380683683095291206942572877068999739326284814301796214845168786546673689131299740233160801008988348718913780113473884531584662335149989369814918046013281697253212210695341728648195756003441935504679381894270443118389753722121481549416619184504196982242441556117297578352762999961283353486909348892086401417818422453650616649300487216679231927074347819503952417404462823365721538523833248280333561616024309616898228062364144315453470562863835117459349447819807761401498276305163523633501648915141758301763006605927376673274935278488409763425807846229329023268608536481381611144356857889560235276525034223668969835821206115346964246362146720219249490549587624180600808477589002326697511599713283351504401552665677412437074243997678367479968119877649360972516767478273107047969934671012792092347966251899844155544454746869154144839553769246275441479833014443724526395519953897564699698836151909841391364472831420046643539765523384486227067591426023166012334413159643033362275388587059850826237366003016722883645524724880192463916417419241584811381858660408068083038828996078790775681026939415330540740889589633242942768642853913642771330849705358286514867401757476879632748799987985903383207450449708234342098677908469203205228428915162919630855468457510947278395239444738023365738758056928490799862322127001462201911551300021968362890587667808385187007477722817108424808335069307114844119968279411926341316047469713971256394215475400611903170041174127713556003134620433760055612147101786534118180693913689736943486898240410631903737119514830327955753652536818454957470003772483452400169669814968074900872622447988182831011224235197312514588151566093492092484256240238963829190461724802843107709742273700756767788400408805819229370550671798029820168238043734243522967193421360700969720515002152487241651962568311876686697810091940525444471067892693700390754101598972819554927746516183200310821504703437091564726413023652603640882532891711584963823841224792814938497409249986987175933548505220362028078711256475381380602270370627096427960154679357703289496190967145996585913705217455941566115610099018240827229991234883851052403299374670605997651510757539967350895735270486038813228009548752688482647189546315937176775488167570534023694820384805103226300740086485117763289266959743530233859948118211662469437353156004689609083192072728807411017437512941891739544804624941153410390650630087124647987783171131254000616170892415643258133053099784390741282759874224148478629144549325611162115564344808521902254179880103228208149680387709704998375468467315916046395138900941253321102792632633708651662916935499245730235539491926901867649717852533715121615539179185695670242402832970736063172304754306755199954538498990855093719248199664126820133951938063106562128028369483835555540050719334168133153476187785321771474550148253779303040711588590840542822902730562308425167387323325962961231826666494938482166197451316786262958180567183251807775505616208013141867419477122250414488087498519266157558676941290168054415067501286128617850819558091136693180691172518106656952581821045174748967406718370069908013912487160765255458551530312448993758897492734241111401268798278039227865165173904031626047223955141895021397262788667439765346534669848032270905930211767657453125665168147196522725665181570303113430414913126351572829512231259454684892008150720698925558599068983083740667266129522321416917726371620992929360464008063727222913927732650095152301681135003351205937061109742239041156132566727772788600713243657569564696473335390598506734165694507845582467294182359045656290348512734510744473228140093577230925198012899809190671551320703093687008361846362570907785922326534745344721149369085172375144396858911127401805468186105751330729556442807321483649857245539172373102733308041731981124981175489975641988247965764369290525969134395724692593915572714999461243517381177662395899846327235656260616675177288885605839271668144454651740568062312493247587583735640115488488855533603493038756619476467423394968377909381268665631259124064215285250803234479699173488597369043260203466073524941203359533902587346195882012317082835995860910104725033721252753649624637271777417754110990268121005290187644760869207256606075838545310337626880851724016505058158010557037747569556254537004508455956674735923237722703775089104867781668292015023690524723204584524609498866411265221500416496820888552619129792093130123592308393323420476208838878985680359793012689652944372494997741800435331063782785411255001166718177901952160058417161932688374509667072233729931526906367886491723436076979542069130072128688434349494728634139778664851321974650618433996731257021534631748171033891922294741316632722276379366881421733701158725811479022124857783111794383621683876683030134031130919018663623195314777383784868031767195516160611934980700254953608930403401291225740542735161834913068363766454668246906212792432191936601820212141605197193049707475264689558767776850736338791970789974924917372621592276895537987281487453948615036847279996144423362916513204908572993240470721667201590457607647556922116853021230102232539063646115747525760529474856824457278078910638929872242177259896670764839162222603477698573315922883809761089362705348698426008093769005854740517163939299328803356651603412179838093852703222460330599567335736315520137038423482021484970466610702303427170235779640026286808373945693388388938907800253188018293466236274696812065040717728156599507379956481208823653161456611290753162204599625830645098681544355161570483529562328024995788319217358585744448469661248949273534437389162098187598545774282600516425706305584682334770286711213535312705035387610054027852353769336974903865338654561469398524288143535101316612102274178749226241442333423432173549077357402887091430157095862832694284233514121805964337505749778220822049772278898624225900787672746370598522725772350489731199795423299245124219929791117510765296454373143237356005131852453068842443405500670590301099132281011703689123334622661040230723900586632999485183943160619433979926668363456367393766927808895776127101552693344451321475086764584292435289905272936790938785549239699010640297713207793370991649291039543223978222250313091812423277187287210734595758955080573139683203885701250948835224842673210358837905609816644721777552193489681367077891871335839269981034912814406323985048738069309779644091794300698785601640700148722012297567706298773742389990653691416918925959553503187066308653157463799568666093758054524654105461876193801240789023431296357059277548549574378276298668649945935601316387004312937320961041189887104844254353997972690277496379994044740237181329834165043886773677407044370596593423288314377352637545048414602993215710326056567530654338921755440768292554610465181411206089341624178379829038512191301626193909475969472433356096963852933856582971700458394100858275843028170741991285280916875559915482348130251055647641866360747522121365363588578234926248783192876012909969134593254163055597354489036122783271178292552342638450614686309140350262467816200644418820031291148263044889761737226507062989605794046472826820699782608967143569984018615327738834014645642792914225023838811548368997069372527888755913920388927318931566651197477363415581875168601575824233647495454740980566762426818936376248301614313450106117705408544022718985353781908950292210223400814320320632557644897043288446629671253101398665222152492712220183922497455630853593311459528533524247287984695982767960941357396740342696808894797967858219889669290662398981661709319016571160541980525205225910958257574410057987956275945440489388249327968161257337409294557333834041656472680963432300939476721457001788046485634824322032764826803633302097777859461217217276822790591001943855540842152548324727701212511541603837105549508227395008053778664002897682643856220537478385039441688202216129563016448606560989410724924947149057416412658989748327587903518534397253074323970175718811475694367017581186599848519580306808372414763410706498081893963632957783640650294418827094878478931932718774795573016491635693114913093431281572850423906506854190488459263511976978285534219908546983609924850532314434450266515016131276598402244864798689873130701437040842141810255611101028583096577680079064321160391543451838730815056855657195573701363373601363226953908073863873521198006770880711657103158857684137099517560102480146532343975510348102234053599183944518225589427247906290131140940181452052190624091071859303502257594344288303528271653163736880847058825728713520935636150132060059686785676711946363999624547588794234052659949466410391907345175850460567102601635469251946917789897700354965884931761294685924142509256213149122414360145189486562208552135706419915224864130783556034232623980077202932935084530843281220501706788708311144674483727461222784684115160821584442676736607608543593764202250043122729705829936148161389054080678272289471875915305341663086876120346584092560148943606815693576226694198585015843163857061682807047512313252893217539351447962480311302964937863074469618408348448251799364043872349411529412627477811861153224708215501798148862872703481105878430828212337646891297990798370812293893701950061243536040074486127070009405845055727140502211843745807764149570532498630002506802991038818916559736814712303014865011370641560467833251268834103395759462376849474341411850098660106721887709470718511123047634165863917769967517875035681759730643333622229990268604089032029291749640803466295989263517824116242852433696631882145763166182899352615157113071005313203511539942702159096817528171248513060681284049094636281916941483759240375089707489872545827986626756543392313288969938792176677194279968456955308410477706816867499607389414950990620775553916427283700962201149876317531863789913962306373773991844108925675016939257762056600288192140166946808257970312718931645086175560990521484247966772045271738864886699220464445194219443202288456706953474080561615964866530771828587783101730028082246024318561904997880134791797584978696638842948249861914894788119413353758255346458233454222036648083683010574658293342788527261720922165881066157595773189436315449816358779415926138619650935627574492667954071288953126530767759601451254809200612750207133190741318219559467549759299789531014080795287961791065511351195298052781156979026300165946217961392429104367340901120062382416028415527113428255854498382918279591944948049832090054265291276311713818441704490286462035037034441580629042793794903433851892827545529010780855982068769417569457454130451322419864271303291577038264465417468434594573696380315849793930023556058670026466435411611291089046002365687731156226770294725751629025496026821281759239455937613180912387862628098111688297813746648786168914999035930146790447031194408538733069203007978881129711825006221147486240265756261296331392650405040813698993279883488403123701519315675517786380829487802781803507012209107327560213449512257649168575930489520636725609806620847067268442912619668841012880671003593510033408400425362611523363756290287776151294778807457859993382951581238834734771726514275770087233164496195457157537404016290927659891793967015157608048564029843624018428489612804323855500770408188741861365998945123632358695246110645260609361175619874577828321583430482186449645044818913066757210555715723393929791126916598709140515039444756550888459769847820310754404066354717311661548870222472845957890744608063160125391946527711071457402582880069253831450397170967978913438877000550303770310300047796519531322287180962123150395081998440172821234084143374928137793279221021221556084592671288877314385220283030874125918637264781499930638349142159920249749320518416375069589595365304799885962317788335676654651622416893894478181949969292148054901277750496401949847920629974771289314511700456568617769221924122263787662284482303221786897383965520867659728971063964689471419942886672901857147234620677487485130237954515430259584854492088832208106068257446232584471491145858654501978083262464421683602943703294556913538118148629759101038847614526758326922470742425643523788971288525715204939256204640947283434539658489793772603540588784746980520472653604308684042331322260400604145174751441632064066498679114435240764941260229307630035635759788101342942112037861534652578158682579196819540826456739972052164507574006604623155834233261981761469859771145152074443221829201449450811956160420772714464874531313017786141590351215608150771438393906417337263648941362603915086237987645671982935725817295321601673330340628028063547736939375119218596558872004086627872662743361086435320124315253765400500168116170778719257750890065293145445539266005136492044848720536880831566046157250241332686359032535215658620508626197961426479386506718709726069094115848938051345941720407668476926263020891862954655021139655152187153823843157032962517624842524605869977471022241130635766929002639002464020865024969460290383221962228132892476158580662410248582611787201930750548773210822994520744196574290460339703954912866325194337215084422450267135428391473676078563709902733654549466530158529522831337588193479749618717265822179927529506595107887613261778871809680517317539597280768328973855090601730833032957770982014746060969372862916375924458240693083707609940511840219558195730840790373067764155333000226775667296198493137678977067406922440131545052517248347475470152563429925043240685324942933603140190074772717443830330858551922399259166012102746458765722286319068735560688124121503445630856742338681534710083410317934421788855205668605020595478287023600974013350461673375086142613796109130023224002938934231350421566082224147529558176080834301860823627842303438884906018251917218104637663220079094667600605715299346745720017889299765843746394326886822042529993200828970968652675801720772097976034438498594736944748062769141410347248614547440358811318460628611196246727546997325171175791581569614431166256358961422638767041129964914228279830552073687075435920092531508562297860420436453462918903234746655167387160082241255774775322918278206169900933631894515808186871795443606125229100597403038731850166747457506300226656703794812205048512536077142653084841220951688454637179132249321712845791404672571967522344522604166264977347661175922825530739102379393760676019579598357023980664055138001814103168296596663495256506734373532172937169168173052894453835359198497942226365035795361858510988148196261164553817048893097082580672997252421212933143626878899096634109251311426478950053074244577245077864087421233553724897701891313935076494060408931630097476052854073148878121854352837274820741094688511940563372878882434708746585244156039682798354952235284865683064411189300679067523087203371464515047514378465211822242653427523830306245736898300012406340350518099780530371744396432040430408840335544199170427310124874367805263640764513214688523405614916014208464420575884372641937006105681841642044451287121959219445383799947208164014515394882271075309818754360727100627808338869495985937349859664613808940957904303979058670011787457046341504923087725176707946187247311745573309793128307008670470703016588741024674706656102523319595016643397844465455886947467122339482896954781284205595450847853696259165548828374645925891628580351216778519673299290947009208411184459678607919297523556883451409105861958993556674443366241072157623014907577327304244209352783296058052142576636627298682435788823064662818804549728809033292763793110101674342143613310496458042087638534763917731421522537832355035672556722541410030250124706175785825241953863857540592253749983263421557567090919067856266952312269933486281564624176915822021777835601901257482202211588837797431254674835184242355516448299552138098690982559039982919833676461872936454571965773209866313830534924378172803454617099578282948627176161533871677207903556797360671027990426027684078266759588488163532508822087350324400682147457563050464439148347904589276502926691690969021987094049022552233619590150710657924177696231742088407679180997857506789877257934745505054789249881603844377034952467526565051136853353864793031115783892776862803228969486188750781706117128755153135418461393455663417000512695030823862362539062442051493676506034893840664658057838518963548473969309875138815994579722886563774467918681986420353165045718087569789975181473028912705651557478786201736816759695453024462654244914778026581903125473064878919198953334859000056627672473753858591982733194138685438718578864591606355636230713072014751712845286979633601336550108197677892350265681410990895244307529622090827666541330903063795437352711864397575545873089783264476774800272319599699863266202892288086302758804981661981361735710856198941299611612389048579887173944746362834080734534648702503379225360562635175664297555504152356235639620132456002487241397914867834213994753139473819046128236852997065622355837937797609478840821982688065251709528988858120354674707233248155038963732320083807703821730890487754661922998420750101226017746724235254256283910504674449776876979302559649839087977868575217382518752434406906489847674872974782088350311738052792689305917409918935439732576042697119920252276404514854001886249437256344409999853167235780696677203396533276769562587097151891845824007448952170062737554841431335246803003376711001365937472043198435179066911579309444799278271056974610074025087360163722380305450901611203443526058599636585847408010120946357809876687856029498058411070908486273285949602073315318211906562640592857980041312353231066082593522357597865837423382685381451397000424180156291854432781935931263620368607669415252425463595613917512829326054657155233902671862725116052592383865018792188482542085903062077676985421730702883569155234176611079885058258958361909319063621469506739977639556696773554120615046560725670759169388322345038213083445011117123171193280338847266396144653895662014732678610589177166224465581289289593662595304588996942454760913604742491574452341715712641484478341426124937640843953468591967503617056615431529727834172062988138858911240276825905309853998365322136473128176212310868757452120762863671566995859973905714732149119896571112722481011636702773658495241013551593629009972059527845209321942229709270522800293323366353907076802139472164064678198136443647172939508296619407419527362849415762374435574580647134519602023883991255823851309534760845950386132252236860960707456122278661084851032068829673299513462969476549879925503499993774837351697312460030839991697851426632328425260548325378308461644146655800430317356989321695603641376551302280578307615894619912725196219963659244056806180285172815468227238513976145559453764380241495522927911974591595809697265544823406962071626058514489727135844865615689016059971288910239889736232576200815497890278065575220215636572966251379032368882227897692706691820139287880338117126849745463796911685887795460812326000332967444740845842142568217894464347991177148531542906246487435951355110150753831585095217125899817722437234147168472374919706553357840251993503018897016545601731203558004558742132400785012239654774070625034315587278615706611866510671797671386274206277258473427907017508151497517006419336406393197621797537386081697439562345604625075750582860745942904851768526738753592162119342974609865349856382567258875235322570428295948746115075518291826873916785052479739325483351785878973181470563775226684247797812434327863578196522348076367078050669476364791705612148710501878940487584093940003405236120058949908004136094717778658529243052640447442783505227919805825602036093325383761371775005292845568034764821527389144315869879249495966890027789731171440489056551364656948467080986452917996057018822163538369836876437327982178474242864615196965117975373466979700302709482921311339330643995128020209947736930330309785579739592820443358957421707103570807474517450141515181481590104073447663970129554466872692851975721675030468777199727872866888099177269358527263981895896467535928076691001021826076253270367557672337484735227780821879443456423612558538452836163891870256204519860065714719474459588770454364175378204147692746927286136771274737410878164859851101182874491798059481181572682052094841465176134013060736166040777915933658462470699953104823480990289101853334245853984738721157788789366561706653069063165191031866839206023051420836614558647231995768737669747397640400618538471322106374661021783144306678960907581306908060529891101885066415064804850577007201437213493332939007017458444324601417327102986715273912169401194367837081287928837309111749482177227213171354954051547911251816786660634642569560128358037823781017266183772069143347991142204961288208181977514014041880875364869798640490762172890681881675155904880785645460813238999049010171572604262145689936239167333248609087313893770055012223596962122987367034095794572606518813710062997582595561140043000857012468635650519597672763239007172357458723669699851506615041165100186185891896257117708735643473067084643688852491284127335974358674055059011250148884573740628123734583953538666032572904888170970695615389941267599611278249910509422649887148104098147182353415707745175686733010486006126839833573152583061068567034190199838520967074164843006377430675581678678587321031689554936251142632766845118377840052614013722240279758674036700870273374508823641994864273829777547606075864561748761171219421106797913303629422216210422098595302839731197518832398836395982598372420346446596618907057547729089395830810528150809716824473995136237136489543165305740826053070120051170542457793455146503139600904040614470393451676904333494585511256442158279793352564841279814935352307581105297564430635175006226205959852298863314671788590198898370492018810487538420282111649098272511482688177234080934771836988486813028767969557950939736218228527548246264943473975482199546662893269256745480140732442614958044994831566171720766667425547554996550253950727614149878051535561339741855161297214631142432073463598175104586076925383249400461246312695640207884527905799709600581176608834393103124489768476597763317325125514945668380083686880583234680130367283361462940974410012468688558684417857034925770655666657236856738521282405885752413032882704714634712022168896668019639081063318063876569146677639299614569124730901086985497126679303998768774600549334609683700298904520778475797103663726187051247428799653126383619425956108570193439964240555524045497442326608917274178390057376426039912647389425912601163791181407404763451735428732375616537028778530730470750972190216609265191673570685034847684142796857508125868606125416895833738580172448028004484912884480798621253995555019351586406650860306727427110242839080256306892892961035646961609408842572051014244444228181043428191859360143804151335565140275523969804780348821491773720350813676007130917292041749500442643277395410332613702242894845344603329322219634302733730233110547223260697187377832568875543585310109010459928002287441669549267566869112047975770224274342347052554521408037963459088741960867853246877941098722257763872485128327669160408930783551026178408652291324876815193792662111169561796916737256496843082256736840841750284776080976929051891327277819705131741984186352599001611611548708740135139588245483590213778575360634990407716977193194228488738377473180285045833785693470128358857760574548760616540595463102454728664690953666166605384000720378675290833353321286445880269188948686251740309580639665084916834374984574660899348532963239882972616164643028135834447806317180986654405917179916998307035485606099633698023705728770118112129896222701526807817300318965054798907758099774716003472542172849096334984770830184909193272611546930435701097279157033124301557253780019230977721546819690090088995417600590767518095205708161980745871612317938412583342933270429926458036891499360227733702572986085448311330354945499615568195616340169231140234758603085657815907651823848027626474510463771903609268806641421561559013728620442599814464104498559437676569772160821280268969188279092007171475654809069586644064332793252068402263863851029563596122349444251342616854570093259961446947548323997296717983402731517089572762627171671127251375982266132532869930333538962399598778291964751562022916906777820448088380878245067646936523036905885430929755821912554727264793453419035208682389086554824542789446750962001441437341650507068359074825318169743663286538748750572477102130701644806363561671226544267221858622041340723708553697813588551261093361352479187352271788373731674447580408538858388242195431649551242308466313094079880452979167125727350994165845567439792719031597768046392994013191172549897562289896890438673962646211697113003009154917794758473223978885413593425858141486173112801497431915258428360070230055490133217771867477495169928247426115137723834174237423147902722037260422996838708290121067795398162829466648692555056512766297125428213337174223815863240602698653303609632054304706938639613811043205203913740856145689886378168019141752148956661025576817539083919842178650255545601876144681450325800408471509514201221983474247262249828623615717288976911453272347792779176481531200445853401457358430097747158441064728127056882685590600382266235372690489365693059852347211591914214421122814861155983805687023980332520893983973719803569383793241924107503786226611329749881194406639496014499378675200563907718592651579807570274034860445219359315169011365466260642360371839270151231313419416197571107283518080645640686807666993871038169204494221361176436078447592521429860905368741171347144392730798222172120755479905138825343369902502639989442831559688590873989160124255467675568088190709655873376530815386842380311865350880829487120072420945440704646769927075954386210378239556798189338416021561239022426956691595824337955523920619866993328321654304316445690593289391885817921168014239332780163163178672954203303555173132961802440462513855414094594166821798375395072202828096771305739524486478274558015844247115114708333912690071934902517341353380351607465867348042552479325935395296868582019959762659581567227108005849746782560900973567564416484758066901548303930774534859635510882870278654960355791276007467318988191616719365869439406577222381162068825149196303589897477565366409130254534880523894178521601569255760815973816461117807213582228374161421444098179228496320412776182062787339961854924578210560212216499358390629834649405093175768004772063234386973906156395479082261872073508353337140559397539153011144095404026287796853549890581402946933599312683067492395985151628592156022375633123867035387276554552653057481910994189673033678191077213206960929412249195148187921106681467621915188078758327834733060872611797418826877757775416042382976699414002503494009135184848746003523468073497405210299142952921529680150524670339582857766502167300115345820047111557326759419639186042548774057116451458904524985435853929179637699271182367868233318339500107706422780822265883512124388454024419784490394765309142965917771761400653576981711481570000697870512400729727497572867868030352174869158287201570780359104431748655326636752778824885025384403869306330350043602742097636738765350309715238390789938451103541527557489397191201374969744787668115529052195553789588728301470678574264614585258678379758491162280495135460286427136547534484620747769570704111076330795020242367111581987336742282494554479605616912077188980557275214060849473721465718147512285408260033814920795414083757598486477046000138474635859249426478430316920711750755294076066880944966803508414072812839198148093544328784604266504775876825425326134221489912874617059374962359661261684334781449259134529531400739044134922920799087748246575571272124635971316238976258319565485111133788890695043605487282874396596935950042641981916386160537624856536257658474070572256492149963269268159037046275132495967405427580548954766420784791651475841632309555084973580718422145416386664671270761429224896655751509502133865158350151912558823238217662647404561152499392837197123511827048865400669448619624138841770228750569516205720582350985386449237050905867553383379242681535274519171465553225621953759555132044666267662100284936670785092083729109719719427448480905900795537606780228435289753996746746590868958639098434563191173597521879152897425699432297656976552539816193443805165959725246034218941214546185474965579221098195066099205459132474902443670176208275376569190014486618582596567452529300778084897479014637984631057843513129563525940752754690603185731542842336200092702114549652602472091397240959110621122717961965481610865814012700005735780566086224863474657167699911527359142073146850163907545218739957820573830815039052686131016623336274490435712176361642322308677177471295995926664916544212670559290024827111772554293384042208575505317396137828770136593202721674866076331618953278111020859545647861207925521486955127914297452680125880203489912621014122215440020697374236491081996990554389010429846970929350220829100877562280891030150342128328168441341193206811332762762702262870234882618971315049396694939559125777276505227293513863716836330686406031663579597100648314763337109365852929112125745258026641961604691146776600631972946761552953295442617674704189796976271787063811437114083022223084172903800149713016026137328860974094725994281955922126702695218617860525307391920372919276343340866016776697143877772354481659645432081862449869926914239519517141725049039682729966820473651281193354298338134543195305422007938406056170614890397042588228436006774478228490685729752808035896739175781413037180150105936918098957613228785494281084205896818755951902387775780832219110192565867644481755899378303650091148593433167473504608469564184007282822563346869898619222776428441812043806501941348624618240042784562643394575237336137472910665901546528376658331106378986560326870467378148509652050770483754265871848223431168795387525280496918335869296758397231525531629947812058890654177035575570612783264677132129797412296730229744097072531477194311774945987483014890417961803010230508042519033167198094742310134953087371229398212691976599072055535643804474565983162937535491788688125983489494304047553103987303715706154208882399304617076539606498536346570416722559337849055735414649630158036197323995098013055129183475659911739933813674568339175768216605015876891980371403475439959276118183478928839108181288446845726641817219798376288809170660940507043757330181838557260977080870558579261838821860747894689714896629300156679325345202519304416277052977874917106855112157378615416466572378460465163276792377085198098184951898338600301303281988056981724208711204191506357242181389604692154901879141749956700457808011085901402646441952159270850778222948128049773078251463583893329722128157564981157023006120722669653860730903297359270541052301215090365376258078469372690153963562998200392844048843795769940733902204137491561410390851708982517211249495876568013972275978808983013734319380756125865892194136052619764236986864092787047568615903964718065386085710067122101761357250955150059302988562590877472564505648953212748438147586680834750451592451502469816942526527941450626037279513959700420194947654272462385491117352956160063035627809385455528469489235854908317059358215157890354643313952394356359610031160978478446656534451655889769178054452572818710437726233497509889200983206905719870405806789303653136567079664256589969213612269926079634875528028744128530537512363278802416066316433123992129159556187620125713833813104937849236806609054891135753454509844058199441897160791900305895472024474612934728611746912522113114463296198043611447971460697554183953946272360316478226174454853820120014888533949223790636200589025593782785439108348899476081685107067440764194922982218616387405949426393506609870892261010942258100607376074931381400969824784394377318891715996670170478222581451114657651257931002896214288188546222857211280049361901015087592964339381049483585415829167514780258142529902836010762647919602661439547842425024287409877447767122958933991839155812871252434239206540989766817875459665383811629783088851241219556423032359752406623708722357277933032226456275789724239416746435423845053281774234188071461668374062288951300081525912769204720044820629386291215467566030013257531285126590130726043970068939511945368693836450622222696316312461760986510492267961744107442646579125894336597848668212582809327901161914117387333507238563446653142995471839705148519059488128048932128346556911483156528087825019911490399421166276762771350608384917267137437622651502208133103407096248198235662442068366676713108376769563577722325767682940338094886625013962613795935542102565514987550156589435862313926333278403250191149147713942882731811306238141861788137018626005942669309787163407196835306570673055404058558013141616020348971083221487796639965062366673456965383601058696510831008605739170201942554011310948961673758335041109113917841283098059513716649078574943162994407656293222036813715067315560976238058419040589566909525670348545187448861442489827262338625651170233257585723274909363730444446123622801609461029381088266755476492991860855697538140196378752055468014865227854848922804597417977714040804981005528604891059508343660110439323638869241364817393583603033933645834569230397340445307808537252502580128374000769122772533823561633512177399567844023897845372530917547472016335569711403187085643704000034959798350573288736999437137773397471884616546259085708675069738185719334732054355570188228914666917753580091437326762306072221936830536071338364506186446472473575984373952307099387536136821315889484885198752640761391236230204812732515072700776581399529832668957760745855635510679159303983527775450419082915398143211805232848585535730334423855137717577823885563139766730156944578503249739997233907428938395535637580714771440034489660744363078843411256623970814806488958473581828695662998380552954223804606922844034291836402504318947005323005296250702366887968354597798644163941386905792017575330893736317755070594166157708014387816009093986876188226298748432171781753547299243185606323947763687084899179210467395774646026406075133387199116254063559228651807303262219941509260919601507764061117312525380932439735650504482604124297198257114319684756173678199893899124520116133232664309213315621510679487970792532303742157111346694696554191065069439927754289232877360237582511750193515295864261439022386776092897999581477011616833586183799039795748585500115847112470450847000693764316776366460170693227993743187483673065604855399076452333095750992208598750731174287576876042737748555627361710900148424755254471430876540135353602960544954048093303488959763475108174930709384454830588648837945125646628711007737513706637590833155025242009747133836875572561908653206782085966885087468923593398907274669891113439731247480140225031469018353030035788207094590672274587141958584940021307500022277083501023767594999571096134321439115772882849830339749777349054527661231238271027197914551648624894019563633020168109144676744577138347622676713695124903893866476984654912912213772463877826080098148064460064509531044425030523205347049850981222558637738964004980327857444324204892871511505836901521186046061467433947356086444311828101978864631393418003598135798834798922393647691361926265888962957410078312054980171401392656982634818109186187448087314651625247452069227956738081009924615769471149743280281957625810647158622579906289639553880344046901786465466128569015493922022268355178742119667204293988174972959499874804347849597790184784413719229333100995157940655190336981441959745134062373078346377721155926582871853491221680950874353102865756354947695660479743937631746424299284684329234027553505123470040073081812045863351883758959918621771635615263489324149297572461637179551232935015008407513333945468266681943287122022854726891719309676955579238998639542965312691271669270621945512803622783391862362134695318086705579132862312317490800393556796094502059099438600135927123023721531175199623679856710343987047427965796618247299720229582389320864416597498548518660812362959081418353055001846159893713921482480851611468400893874507297389857361958821156943949129968262281967852898949488227209309250518355704786989060870340422517649528183093761684403722068359294834998859204973322676467472307599823085603309216357363043911265461959751527841504330493523606421573101309657603558239339769546765488300730981109099267811216205516691640861022018139248906370700203617598343584945551572256268176262389669191448720742115419105431302365925603121024820025361105370717897032502570978045213222201116473660281193791708205474876808506444900385440747791635735709780229081436426986890369123692051858747297753361391442802615818106035865078167198862097519985002221690857714444911588819932977215782936292196402851271474420892307538225495719491455773854538465301242746168921567898685567886325483267426291940653961878395310145693469766249220504758480535864154764579282017354479110174146616754438454921592878803580688150080155151041447595386203332252373935384363300841723842674323876251966299059394800544943211949291771962946407499588976587367610510761997077108570601249828540859957258814387175708228906376728002792031293031414716929790192185364262904830467359525529306834277519986325285912623551703535217257455707793874584310020974209081513861336075475723555860114627402300476799160473336148089658092734256734813595136736975951938004139800369555219750539891810491109827346006358198419649918005264597743953789793629389258485046441355371296823303938515433061588043902318951401120511946631941614538715273155292686906931414250839557572966819967118610302928234778213902812655367496367184244275686269582395847972161977700445148800321678111410080633985862816439382271958532734427732291499126253299181281315772446322721606463339794700579538064578254142167750425701680931712791351853090205064018690545019938626284889535725479846531952864041838203330748247383569971329047902352673771170353312825896201703759464772150421337772197069162302493620547895833970087993139642595053213192592101648355328462976376768276856903499804606463489992440363987507756415683900949185684595467561927847522717933542628280167956134922243439414342734536280868939540407385696039882499469167092668379373595113593155611751426849167495621403978882067781029606616833319218818216357823928947441437045119111197148210403132321460520596211579136546473786316967373134762147471074820710609475459393777089955789146037413450232273551860461893033141335582222249526621542649417897801035334676771840330050357037855743748772513517407131279235674596928889458259121584697831188889193027448613817111985705858132521495110223361595879909060915508093688677759955537937933864279671754508524673959164047738174115344679110820570070855495720003145076827862538220152056481299070234860940935071437065414514150158484450253709746523736436367435376614792304148514872573281898968477921274415642259678284137701718434600454262366061521973148744721660373453321086429552986546817267503288960455333055656108710857756087496839889665910172797425359461387364701160207465307981044074601563702919393715607962020206951161734360084244753602870127158434017985723119998367261390882600452957676391161865106219409831910468531948657161886921325489730626730245341455223837305391110958569442787424002974835944664222716251499183082610362301661662018099293935501984197062767720343105539294670511413362740033883447329167634929980724787470919642557323842492055522712997029659803042725278236040415490698249500820064790276897730815756995397964803914702873672014347881806499619737391774580417824719277487951247825978851164402688573059440328055837519597391181239164771089962551207381550751699073497543108235093573711559223500102147972749757895239706012306085786396852186107045376605719178427555048301514366386942657581836941156573204407857838846431155923256987654138928478202310404615563189525626349219844154968955436025391154632718939988987226098436085599310665206947143852497914169755753707421116238716637369968316647507520325059820408693453174451373920312834263825348588585539333582493614043508589839478333974046509524940281625031955036013541216855221345268129621751159989439293335401385735720908296855731837086037944375860466427849386835920145499249222076474485888668306443639591587544663783532642797781193581093499126942738691961886114101581954903946632952356901582393080132040841914489629714908582053176053365601012558514123657607983889999519697234301469108850022503861753865163794488440832749538834113200802142351933853006292937943972012634358951112641668633483542261433375581361932468988066439893097899707216306510918417532515935196791873645529184447496256592441168459317186974384316971599179068289824338711931856568950420930473203503006902622962276290248666510298245751757770359106758394578850422326584451987006367205275225293955432929961228028064050698011053164937992458143748191244900112784158274748432759600907988423016923444248264903484198005379725408450639313152122685981660884667683869068085957181794595280044058766038782222102366666359136667431617719783476151373412026383344947940006921285345101735599629043785363776640695793409833433258952495466257147860814423279568017775383930129735875978250703414222828461838022753698127713896907902157676959118992373296836033685798844008277275569904049154261707301327600725733685876264778367176362068046562119752431391679766631647169871630618722728559315056016727641977418466699328564006298188192467616379825826607820732636776581002221129804690067929966816448819935621565298137094907060669067640806338151644588131594109651273328316631904652668426681850544797485139726639878073414906734455192275594373097902576981819788519169533963223548746568846555762772650283869985474092237761871522789393587428882246681423657914424973592640620508077620948878308177197411854435187745504483801441450852147751795138931429805638004010407670947477655727173012803388481013957611255547488201167594496183291691964159505224006436057381044920054147696251021797021246779419757766762128176062476059320545016847228819386727873868837604351649544681282847519954399743137298726539941112814552036965171701915583539904657645263682097671860768070061931639280493751324547146625013189726340133573379831974422218691513269013696375616256691058162651930732252069149532379194876815997032397475969053902431120886622327060173837725606408268800241660635536798427928114029777075696538191095563314097608246621428815463299668345499296284135706109626015391871668312288736219993401328334989638032881489012357791163992991619864440528365385556031926034562767501645451253903686618072251111973352762652426387758125653064435055274683593548022235902622924758291462225589263583897978672636608414481181374673258569968400131967097673503886357701942054473184604990974934242113412585898071025882164964645211702994516046467764838891309903369642289289303694292828549702861943637900074366415604087303952568581539544988982910754820663267979442537473451461430167997401758465338934660673770507673770947702926227716536828463301427043995998910972636935603604431012002053646695093059527482998291137080199322014227428872214138567795965367015165357693883318436362711197125002942174936768724203027435499351053133033267839279834392525188832257552173052082378832635106152116460566838074342505224125517030804995436289216428790417875539534840572171571119834429047606373292073484469658172063573023595326407908736904252708066625054820346056369899606039714058820107491514894882391178515246752114189543957068707072153842034561528835084551407941924991356304920183568085493512909943226649736728949065883095495557886161809206611821258374453080382102302172650942661661966023549643437146794635344203777374047271849004395307153383492824279810591456660024789385867947223795337308269290784583099122204098364862980419722175271463402562378141081135374207740932859323506794706973302945672450117168429124574678857152132963213538955350165294633862463555896804217938412550111529136529318725782037332969131399686749211439029540902430725540629800873303788878375331667733980206887614100940011204545314263284830528592555886589516826606880927738599277767539087779102896515023077163215637944947980649599882338609282980302414935723635708721467564889884819088463115082297283391995795534474181445444238772298606856797465043768872159399288798625045026788951905323260626999812611654846986721404095727907830179749874447842601004625174259551776232182601626724602652409147007890940024934376404286570793128041847760228351793916337943843081511679438359948684169664368747547099972712725727877552236970296147664204482254957906922508913463050028707149876133221916910985721089461649442224206418395984227613925340255305762928271433941236213646269221615302542598429352946465697796659291242009371205900913708605053895710517789137765925300083661338452633443143380696562343179649042637576617127331624395598455932572289686470800274765278778111755748020838788326936516678362239630876709466352790862280159497951260548608730479839072899663220349534174061852613234482548678683902924493665163829024419915919376510418651157160505629918616926415879211759039240730337250583292471260955840699553281352937508851478573280695000980247353830923225478181635836264801406075337079587112683172773558135700540725014885962933015414511226399008675833536359499129887160137005947804923811335246917933245049151335696672524481879594059685206263313678925046106254908520755605544742038561715163871522582797368317245786593483365603298470367797969344053189306490849758609227137589216398016560984766092372237810219245403270708929616190045615373213898639723539048154664291618982280465718242479710811073055693035137477194160910073855244947348519263521128766357994364187510563808653689343206683103384946493051225789656801073134518111490270665910004211770392219087104136141366564741213056334403826307587402682530454447200643247669221287196499351690653198479635469701419036429415598278135875264400169833374380292930069955624752467643442804556330597293376370013088343061952466906895403897050934580503890593862466622114085149973163056423071124680976861275669273189530840581489998800226725568169022354491446331238461443453926260794389253547380807699230646113464352303280822096870422129437827838682355494969847753665216141837391503748152734266449089634268423089840924403667664541513011043615780602536925684830112337243228161627608245393302141428244064530272380962216305506685885267724743259416200673285912672160592339407145045512844626175212397106916553026443217047417675659753023524312921223036624792713819193720648311097001192647755151558109599672126028942534117531012978937923348818631527178917040767519804053228829278282513315455431604059197003634165258832368273802430817172098838197099281675630933773159870053620746818795253888867641208431153930063328672528181064687867845176383050253483436448501380170974176807192267517925239060492371027787300145737637255439768501303021136936629771043313317620969802247360683515142650293194764493213102966636359486518019976794626872688716724037546112589090270953205364450566430396579195253313523900613448239466920919758849676886508083078487021269528942997275492354725923064755939733887887303234533096519026350894498636550263806025976141950933236704848435767340929835811075907267268871954869487686092811504398216880271022947322841250398493468080317555277028179341359010647826592858881104825173623683569198623144485316166836633924433546517745020936151917955801841708565009695396566341809323554985672615190093162545854655318674790176610179611667543251233180967936932088443093343986649290088919062657365017822442092086184685751336719407295918773265770638492222661574576784332599451291745395858366197510101243861485771096811444818753266956072360401732979754207953133245624358416230620367233697006284338219750558429315257026967113531375058515974585962885959617305306783865513794422838677953862601776374681635710127442133850654368831689876799373927567602260136400214255341428661138067016481746740547014484328585097107260843533292355848102783797968591246837149815074546647151390608866417864135089887894575896618804498578844610792509336464871323273363521767089071570551874130333242668268720622305562770979157626587254088124704814129190456943915638019197080914003552875354354308650188515952861741535644924759853713288546437329425159772267962904489917517386031888338286638557987356711281903686373472395215615409117399065963780428127974427797396477398941388319984084751724090108743376087358299143870839087978560254830721580499524192326016531288397437509052850333234713007521707935432923790413882387344264560466666692563516821766903734500486541876460246887872090736374446178055892341801586671849839193572648072804807354916636605485645102841197755807608721036318226905439518210152659832611199337593164724587616587628395681258985175477536209621569590464592758747036635372631254955969833163556504979328363427443620965250062937809240754262003345861660934747504120373426603384192374809136866504014053829670753903450241048759096552432125780978784914601412809824923893926747852640211813505513749355253439482578608790778129487442582893458212292850960065397362705650912426589647011597799752801175402666857999878707022463299513679087897327656919990168674440380918007365095736856623089021297605458896135794703426708636329320303172568353925579595561703393593202838460217640019994433212122727678674743511075474667452543299417705512694637609514031779895092029972291190147965174822734736164779539693956081724395893244712014989656776777570600858448541182350607354811509200904744473388735785706492342709782741920532819452551494864961570501129407110726077521215256040285067482849435151388082180320154015114466978467957467175480163257910169461452731851405465233031040554952660108160858268494228868127742371175136370431914089153348945337425817745426802148630181978941898361842234873158089983819465145698634249104007719296780746390150009631464398868439874751099353516520211923060833348426586402166325328718367428996071193911938052272756042789035686890492479331427980408876976538083795287575916821124835422931113420234342615613034007575118078007968984509201623585911237686904725136216817490000739046311525219306359304317700518684005080486903184424986860995730654654468699230772849766919944705827845360540853843663789252366447578961503650097826588782424324312214047577448837627629977052712883596266111804766123178986754616148897730551057224556576138134151393367262862932009941947052832739317611523564695156474042855911583903150167213057252418660355995401413017848855796429406069087478323909966732940570340063614304528135015479191453341035468167541714398440561841546066008640559616069145627428311819778677929052438786411587030118099631523189099769446993165987878310608310193157152372256544833811897752757745509252160713193260989789869714537314905068336217125148133768998857829872604346949442291711916098396854239007760139775747022990848118591479379931765752542098694274633119247655478146789384267349468404475957736277678661816913976159757408269324553068189038146616091423806545504533849005778121898781528536893100829117930072456639100894648572873516864964874552573051414905202017794730871992581408962599665529876643415073160751300856415529094287019756493231254925221211771544387641052063484192317593723604905961186285835891910644839008307197479432375249963987429438008991165994532647672817438646494683535619228057601915770102510774426202505863942984843767434532102752270115948094901116561310339322059230946236239849606991655499230916787283423771115076061452989662847424659105666691805295956078345988825510474821741315780270571060718410055597616115381041911728257746025394952280578806892994012706007409401232174139651488136816287779312039065995761833963815049732067948020883749108038092636889737019475194748574405231275802606555752212579462742339627414740797149981223244152648631465997479044287144510677898372861732866781214985154695259775452531896288061827852208629012394840754242801193225810948514154156836953467440534382297696030633264476955861797779117318937239183374173703530805623683383203740960310122153677892762754602136748428452996392678039406260209664691396666420872220412905783173400183740755724558472546442061842226188248714108022764630300371627975936399159370606535130661986648771997257671911876743881967351118106791181107876873691021671467575380481886134950018370165545260841835041363601959353729922741497791711869040477357745832926845201203116496554453844740340325637991014016388563792579631289245669455231189934370069317291177195876071208571115058123316806629327425076291211009307560112687392665912664646362667077944621004185281978431999267708126462486934649252263272368576559431098183323459726660869588384753847762475738038018335646776136114283127361205688576259742564917175284308654695999677193530792884832691702525287154235003331083586446542313427338426288973265217924761395522225577023487175633228528716832295576363765493182447339129142106644725452131372880318383270234135186934387971190835870743108048786039821070450131387597091544513050780168836011751565643404116729571778287296125112161082114656817856717540844847845654239577338749974837453890620076354611274645330755933911345987135692865100944225054878547423031217685297264873867027822216926776356851811300143890373806993838830629500845949592958612968702207371187963240404756627005771112461569843003735059144267534709109167238406113642033757735320097115948488849118242246624115263310131601683421274675052514772683253367560001091430786005762804882157546482521771023900803300915568600209773522790857103285190038407221716826494456595498267131604893882168310212050611067249356225923067519362244333152968206762624448179654222873522246086982796720234638311221908165664984282368206054998822136573281985830510468793703141243673597984078331163368875811043778499552507767900266774836463981752504520886081483288588738777667033629948232052137041272848715555021347441608866270266648408493423280776369890285233186764263549241145831403748270200297321763986979133416153534265043477450184831812016279921741440959454172533136791453840314572173425114258500883495967121567176911677314014113602243246045099605780963689445337064309145265718761489674135773075306381991012353223201451833152441010466938562446119475543269023976484381677878103895247991147788587737012887217175291970727564689226938155625943390483824248714196576132167889926168813002266058825845303564837252632627972458757851698121098403360402005923713961773970232548692900591754872693236427121256336690465612120419940608658249433958447348334718993380748940868211947047274733912793506266010703399209587237490315183712170358082425917067322293924945906128268104992901795822840944618852916244650715389458590627828479777640030911754727433898436987160365763548845583373159627710006374574660039131665307160984127792656710011633911985064119874470625689640012136410109169240741228588896311479319891018563275386120493360349690772665066654061852306244765309502717791692938038245253070835043995875281346330087324940423361392737349246590883677015645391715487697801483557857567179617611300727277675943382518398039072954100295420606269368798414873475984771949346846133756109280964453698022916098910318431159440360918780342834051335596688322290867273050734694482197730930607997163910776307104664968910138651447197237331135425874383381888999973350737520524773441416278636681542519384463385325477423925731666295639294510681114514788316608579422142644905493494794097609122978890038356508210886885828945414632072860729359118904247502802666617183739082165524127367869669923734197214046849773839500429622023947905111897057277899017840409356532188464339202139137612064502252549912561042323909869425529363003987694152478197535992494324323911219650994786080596228738250278548972230034507184484368424494177986202364173237481401063272457073175098694972324537614225829231368489892794503486857781738194993691145211252082965664108928504849353912457969492580705635202204156282172075329017796470543439184573712962300452419297109072195728143334335960355039567804161945117757684554186841479918233561900752659853252942696169685764253649644371771180063385742759706778403674327074190285383763851717077510773440815323640443660607830475050194260274415368065218050536530214995234241765219482536306818339593482536884390025886398184125985249414828711810547605452481383061078142879494968404723391312415281824275375250158149319757966490162705607783597900529899680534624469941563887902045936757436395434505954925945848506753780225494652494474991927306554107795820239633095733687653532089435299745729035411648481900148405702773392770577394178040782646765704871810788334715513674109959701573176896107828562315757530650134864304273182596626661195438409973815124125052144234329847315355215851943289205346832398053424532414619999050417117816650870855594398805694831990130029860707485184068821390434894037272508575234574155991608771040196345656775302864121072469377258397423956228943636571939725570298501060763189842175049452197176096257669930356494268012515999615929222390221303870415956507660270849065226611632963260177947675523441453080579138460583169176757743073160615635977113545378114639938428085226778760688065653408191217012907068455872095032930415231382546391583013759827620977457192953609646552835461222590633754938201125692085984610948420783814124949878678085904670692747218745636024353470465697312082923583415223160490460089183006921755640888574437419969199838962429360370342715076647215268338873410654366888776120082017646056028773310596110198291930430149565644621914387932702151166575064973181449664988050310873867163880412913612771259312960856263964519023726182764934205024287662517606499100189553799248017275309611259789119032910804311240854434762558760629796427249558144579730909837220921901018549790932796651157785909520620785179977908481233385322207046834438856741248384885951729298177227790409404260973520377406775341013106903542171269752747351912501257460093072106984575142060948040588536789714534280644790400684390164630933776111094091828040611184462952659387621941113360733881386050197661483056739794467782472189832738898366472114466463483873647839763635833831693869936331037952009924131980265120172275200842970425685109548256640135732577861068254049488573523266736012131644013335361118795952612797141807392547668842972965004218203316103380647008692696505758784044383399455226606484101309891686697431552567322882969816930763063890764461314427872880076669405780841839034285487881966904890967049703932427046606552255308437822087315749994082834482212827356392990929067612848033148640510342716094388305328770834536399221437723297377537012797362807663711441778161468229693484742148129127318508252942305742316857375642585264194854081661936833529923049529764393993544548946029348262074791906222965473858111227615407664727033860757793511379856386780841982081097994790455782661031999935866269603711719843164653099451644264162988319737899375903902148991116663282908390002434769361704902383399996042270705206630488423949102849432553856449742510551213779552756605197290279336139332428914792631744295837438387597526891699704085567789970431887886225183684615127473522541154968044208755873113459235553508591070466845627096286256330467654608767116376608209710245671615736930710810648472166773734281591613018205898488430310534343650772714719288598219622360704179658703529734057247854975443536707382692944470793713021725060913700864467092988217783499811464882825093482095175599658743129693931197623627058114466404560059585570107297075723226434105171244064940078441595298520328112260320815758064660350158612833556665216647870142541890407593793003153720188471937012828800984319418656370956307226974973642881572102435868880407033126579609771925301873699633290855114397633417684445112718085061306822315981306490683572396034785950760215619717358810135377176083743379340278735164548427801439995151042791636421234580333232045648651755645378716088147520355473500672692355500430488115621537273566786391229196406443797895149343538290530154398884927680333260206920104523750953038924761314108307405928842148021775389004394999861433864300173036860021900006697848108618448594400288174535782987264440836119311341109748992249348404314936854389098782336345832574252078426543090272327521665288138769841522530596734358775371622319031667463636473940481540475607001883146845711707858498046455079935614896077865395838165744265150127900715045626704345419858487366741214587182140818246815955266509082655023185050619732822640871386102732905471628327825122585431663626022522032197803816986999543725995957892761834950311346704855246272178626221116860337168609803646120974405724069104748168003066450242495580410821562737383063524261902211723616538876569929293367214050994599551327177722939275503153215254576521346940929082351717696170047812684834747276353636173970686758828807379658336883323421599074505950970960943088622388191920480130582692144763565934790643263890958497787528337550150411757056637910109157193580313115863717400597747511982730651182070333495021818579283001568083361751443032511118459974613599422771929762393622871561519669321409103404739757504371449438321130574849536702468856321628065911956273112648008575964854494068938362101408504586979611401592086941273184201578315607746517864383872025804831840710038118820071007996558193613605127420774222955940528971341103744754573408281333788171482658311823622253653084269460914022555164290522214812621295065764182114016929828689880883520423511431687719888856056017018502476345463150990791222037212148804833178225631945898179323070508157379668718697692395240483139709516951130398991678975501214779319568269380028604745051438721230193006310777197144879146891317618280574589880258941984313624024968722529748889073129572633147142276568243502498516381914550200045247647645731139993744767990466983060140358236367920625043373784057817108753614861038448279920174537396787881056285251243225853960145332029085062864584991160741006422665487834649480847660231070068091404428920365082554744099794240005403538225742645419985031780026650890646234789983141447824769224474772290919283393742998978448955716766075189589007552252339786767299951321576047200487062154018004806599613525083101247147110859061758179342724998907466915776230641114094220548186226671197925937739905013162492142405531126854996555577542676803286120851274647832320105632575649921243410928555263764503325045279000524027234860712145338595048434925714114647669227897689167216385369816303059463350376446465312264433849113361951572897132840960114437192568602685006716233102749254620999367008881742315647012060500630669805524111211798775548404867720614917657958368027884226345385988275798840865630272586224048758696647193667156073835922905349145525083831358681380103113705831733236623577212407655777750324418856657191833867210888692282292027564752928550464345087503367488502077062623170796099604860061011137902233146082970874471244896338913523601906401369822686612259098993912105210822218950555798586972988429185690249074724557819725347097507978305807370406852644685716519633277889037355158033475585857267764075172807697345831928368159489686867850587173400374899676655229636754651757737096001019827911075779098788855189899624302822485537305576917219195246891638935195143741316221129721722694222036073947158231587562734515856808034282801015236426067494415563698132431103561563584436732051105307628942137655005940342247520352766443444842932010175414487190746570829177382340155726559498797835214481299785041010020286724535511077495537066576016580281787367718624748771578532525599457942968556699531865768775044335877816823657399152968936513934337895909469769975107882835026711997412828677089444391940045505850113392381866824889823823762698859461048453154259047438141827830167184075819117599773119467668055201397100728902996797475630070559902536999293471958187874699568788429455965768367434955330849487510070320294585623606511806415869332184501018347122792389952054388261282777953320642015277226149011531845884499169210879992682312217501731337422659483647997172202541117921538191846744556195446027840807882076760490342055028652276984129611145859553453939415893222912425119770900269641527334390962000775667922587521375685701077172952425698953391474172085845531665921477620016956178207493081278910919736451605870727051518659731120209913363206280671191209843600935703346858257185382021677186990306078772603348007943957740187436502987966668251883173062476164719320729459639579406763456551728181704904243041696458585642435097064681128583703563312787659468167894181046546825626020909652335964444392013428843566411113187231735578736498503914391958301676726289549690377723197483393914931000931855631117807315462148980351165333544779594994173823095422363040561794224279761008335224758686169089412637329111554956288329448834349129725232471270416335643788544857330086566187185268864849519602346286995249051905819616809255491949585284591921479739113404881203993230778630388599294565236480067604386546027535589234493174104406212950303418204961801710163637524194306820858444634886226217667676359134986171931302087391542938125290289868683068065314327906571606505567122318602089735759992106981839750430228686408280081020305765435395008673724656312664711968199503368039156469148026516013676322498654936760751483352331914620541713379202692063593484077748895534079372637480577884033736460597629188170216499259475915825311048956592294484463977072567465522840123224574980592920860016514868534628138711131086639756489184731518637089457496158901215950882868860081409961160182568992032569076434851194195606430196476624009914337516266181999641301082593269810732182459116722155349653888051501122019805754842404122141011629104202284116095830390478051586095407008287223202032922959365381971334690623558047282814487866759178888025941137452841078889668878000750262714337387357419608106250467855786073223515892756201685193252412472884599943360559351115655929209041926694197696834924653918311253017426792521906232390391463422840029352123285621766210271616620038247741484149975211606580790784427935764681191998242161036297807798607968773759646576147549085851800894871109853446618049734657212415972081247519456229129688305678152845655182574595279570259663621362239993290158283791503328677247508641815417506782230630253452907340302038231462093631714151509949726801363231102473852909936481848987698785713518872978221565685696218318475009677176659662621313831897368656478799147776010749200514737866552398106622364413624292369473510053003802257171309307689926678555065771816916933989639723777634273426495833614406568333725634979317997321686762760814983553006505178417600789941893553809491287938918409752329704725820565587087971694272285048494938498836501246593860169066016077062676044605550705812003995991902491093296649796871835328478401486578986404473014190587753187365435452820644318407219695547540864135521430183965033583740339082334159773136228844228964365912219374679229914979986530466936760098691335952261168277517520033914141234106052124473033431789717030340586664961767229138156901185907787576778879463344374950820721285045554477635636161501487367389013664774014433426096725665239794344604373334667040158281515879512579461958649622509338975630399139784410950104657436765139274052034121818702176616204469664895314580094030769912900243840518581194773546150024341691850341325142761049109350735359228449417214941515647808207899497678239911555734790997940526179681746729273507586963797524537987337279042287006273330844819736245199985561446816250643736755738592325909901552134923977277437401551175679852774456823327463732080144463403410872821941835065148954513896587788364606655448582417548004131263897057881147602404263367031225437236318305915943150392748368983547994915873480246108758940201081484968738072190508809774414020183451439058105540304229344070351837365909845374337659879533456452678946152618492020301987215897786639371799181701789044578340892689007350035577274145459309268766952506160330764566069443885152448796327256530730933426066617134554307087313311958845999687712827619288439602977055780297892659426434746099811673075524953163742633247224613296504229411081569229661799894745195701948689079594626257054314040158004396722884960958726900275620890707541848345115680666463383571158049272144792419683314834889995682573220275419220137571093789717435953445689536368118220078163300022401803300499910371628281271839653406395635058146128614906079034019988864783074148326511185671870249439757977746590458377087480430870597960123517062538654868255073504169645929556046328211960332979725886744561866025696024604718954284900170084076579762648508949087507820796641691872544090048560433465225740875120755593188867612865990009280368790799385116358244644804391709192082734599419571381628127818366852787154918795098210758961265178930980311809955505050717532316969944910189111294737356870704235624722056685657608225693015522250606304175504702036199559813643197853425080053033235655796757475761085737035597797985902910392204005856523671475765346974068877915382345964870714783514188183443612247454511805365256678122928019951788966231547375507343297881028498823503006751608175483334503620560768834935144612404962423181962238842723121842896481958093720247018494603702486639027347969956574493428753741760890733819231683113098629600232549218783485471333715504330699626496416795233238308957569873644199130664913836623837179112208467894890987212893476446206541164155638640196109168516665605986214834945452131716562816023247137560723267642274942228457915994785151638616403620045174053027595017929980194107311913779799494647052880931752019172798249354188416564781234665254786246953599232472233226728812815536630791714910735883095143189120333305274205273651263339951473875870005872818372565287518352922889694589617445529784023927413126253499983398076292804596357383404212630383543232374887642291696263757276244131763475369268391488857113736492730815053240377557624839491257679702054203597684544924466315206392764480413109668178700926823601893790596776450387396180096316683953114185225406773640750611713164523360137427321586021709620163964348527260104167142418759852089068668852818845644709841729953770705104673883736463669583509761087711410713010340659117767152192682130715090995808255128881770338105422636592424255952798325727730710030859675190447203530134870812136174108961346780876001438214875992562480170806369737600408696648643171351410464159559032772205010599411113770372657041766434293526638582376973299218285007320367353678847615974906971126651342363649533926463957202144854390231235427947556597009958199557985989592425240413866699660923365878494283342031627437983410886949563897197390442280267021090842465946808562584553980536457065669944733196556749053586271981895768013136801210512632165557451973968131042037155376492503109604570553580413589185610039044513974039994731249753705540349309065089343422305447326645221063506269212393743494926018275497722504876030550345747427098808649215468298384735479624162305507705074155043581533529593083229954076255660294604939571029073247736014986832976075355447793593388857311210317774712282638768004756660687447538363946233808846789387683573025454131503226286278512086113709285977928976894461244422777892992118805383873979279912618603190331516256812405453726370673156907657592065384282069292407545413833803565155984415150712070807808307556436235113240343913395796068260520988020111288253940958558587146295696214730107097493754084422350513978903183851132048579270172535039575865865761583207066310238666478831329098766452752449262591267380073431678331844611119116415277439753844799756186188131603701839207245607814422995812296640786795541951354729402531992871157843607275305930766201628104118309456645529026853819987598304442582554396770806895718797551890054568860784247137919405935065515262851132771518602713005839133399644799043628488596864356475572912715362554203642167236331705408554698458774477923532964044460302093746192660940120632779315646062001081710535173899837418051917574144884690614240833498176777361346080078070003718334572726073566472333200521830111582081566693854093822464119286673941464855883086413065630712620055055100184102812734413710808512926494847192772532887489616264053505704827202310672497269490019068855763261026111421814549283681884507366510098089659860894434598209190511585599142712218715018887891244945460837166018557535313338976805157201213589583260728284866370931302676087905411724735928127219649156078114635944832268032619773857232716264993666669943805768618080430376447483296414125613755558069050674869267492815857761538146351080663852717856731294072123807859462832480755081462955206644504030774113120502100708300310856751417850029670068770741435087528094734826716977266618222756969251655481380784452981219639333404289263416863334039149089042005366762439594867786730203967877062603862399609788799298760866236849693273894200952630944915377241012437781781700241347719246798971163645175709650916692123865855289881282668481360153275098452958244336312532882693114634675334112087334620988237720039076896990995843586614300411764971097229567712626563615917425481999463165501744453695746132602502987541873892470043964873352427482916300719315367951347211264452044548800056218428291304242318463097123311738109232642967918582475531013083440563749859156437653533844041212583085235565191790444890506391040054435935864531880314386060965270892343020299627152725638268850199558828481894253182890185797651784213217546764892224055372121727642111201170788193545043729587466437802801550834594965353977805644189977338253565504428896160232340525035949817166140531092312303177482611891786182241545506477759394607065260109467015501241298857164207830087145124170487133236147555113744552888332333205014937162596249802394731902028915772039536145693131767905548499822209753225198041945701561396558687129351520210965148083020184833866320113645616042708262750007470933396230931681990229641413009457367036824713924132671300096516024600042704220706572009964034883018903122970851473800120525758450851669329801804867591674789229241165494247773519700045560598901590144189000103237792235382865702107741910897139327753256479324565600555712157174085694114472903838594065854958624510106854864011339205268504843024593705735112318194594956309499942248361988666009646383879106112519048356512121321429250160578722957420366497717305799437647314096826361428870040853802673724092837893657133850917588467672215965324321655441838016216798934203529365719966651194516688778054161346488055470532011579154136932767904503858575679522291873198287051848184619416458718485459229814463114423030693957522889012901026796010951378725119146047967053019934861419533667483525160211703900940384921197684927934924837882463500143917062698051265063912639720278121198418231789217847224009724832118976526161900290355770801147409864777637134404641512527952215051471121233215216518747280804154061346158764028489746760256689590243445878546132479807049485087713383927667159061957304264683840194071710100591830776076171886992286825437090979659571447876172847521276347924535476048060030105636652619111874849695520175166791280401794163514506985437827508292694273052646591374145013488946315259708911390029665709542202745025450780788923950963837787257484231916590256867851985859162913200029268468440697869385374614116942164169774704124865558365069952746838831907503179922556143901245669205409875922260747753878907615392583721543975913098630961955389882565803151717152763482089236452641262343152534683047765872263239825855778406261236321054164765477538671711489605372239667473585012501542428404961948107581461210573835660206317052488187278519550564575671708420839698236199994645404599037947453489330311593621908678922018607522046151054572637927754617012842738665891312005073351043082625220191557722458904616477248375805293383442045659289231543058653630158255984270484692978330407881608242264825181578045983581005566274999109057035783379894671639455990257356921666150074263118836830857325902430771243311720578978357504528833953935533109492266915725296099826479087103724405277136535369369083077053373260517234092758235725143594818590603906764477906592738974625078451397888539005668972836861765409758921277428706996979477406440807074060206427509071480219800003035450202135769121991985893230011377083492830351788716939032721644795820421174885421501303020973091252452583620093857366505998039320680172677072880501289978319893860464402769641121214706508367461103698524614131084147313236625282493973006939651451094715451914955811104314300109111624285219067283746931830376310024445674815938523989746817251371877616469939327892567516729021090124211252742126833425364995551699913032301902436539146547228750384166047102314046290855635575314490113418115477341797425002516192475938549401955035213098945053591298441065178189265887290055933992364627760202391315763191617746173279705122417048297412296940482275900817372698372732408616178360016443628712443845644154775258486170289220280103100838364899349027248091076813091083125261109859624503973029124314240530653339138170767753248744376610254298339928331708163535967009178312933561116633325201337618648241118671735062655895748947770663482488743493123743660075968707050861533075819644928094861434199175230699704947787931611190140594794990061600816026474446027954341083460034775773306670261864137749617767960719006983778602403223335478527384136263283881912079740354173965708067634605423121264989019867022692475320304160270580290526726514343688983804836993985049213812353741756763853115345728948509520342008342277666159907839537970760419898142621455478358873472494017622126899678443896446069715009982080118505297757715146654960583070708187765869202429315057396907838551347968751476758066722080225299410191478676436778344464139872581699926128108480761012203538973005450369116361961472505232241602307298600930118871664262822301313973360314699648736951429188655974479507189544822661163578059070042988285319912741712923922306634332810152443039769390754462565127918537908023155400474135989232344492794808620414079003234194939182077449660148252242401614269916726673365688689940334037529810692772740901380951022264741142088090911084843913060988115931072584597738805461541378439567444577291117475034292266295910648737326449322091982028464169418599653114523799089740304835875469224980694877239850348049455506231250069985191251449310340741194336066847098046516680495802554524323789274682950885513321828767099379081276669825430875619321593597473456647778066453369419118278268906254562445445448030619210691242273793000122538799129605160570307430618549093248638577864168876967914814981194465206936605171110177564280565236421246339215678321226627685320837249582675539268758623329369391855674285077731083654879883809448089665210471297334277969835809802476055419816900892835006910428736059760660964767179943968666124738263198097148679713375479670132810418338394975566847155826479406048947691434083132276024223129996790616375880559740259681106125293876637167633239526381008856460749846288206929312687210292511967333073118818839325915721927173154001600329517307696666923225886411052210959476946543702369289702173294410534782198611431041007103666316322707088948782713443372147264827757315613785865668919756375472462445593660043035929353815007451281113421720603795168617858472625215728610059960107279418644093946957309343223026578514782686497443147881601328508408953314461994015388508163033405063102560318550225226070681688349479178906850879433274326262831861538001254905910363052557971832295721778869820768703036509788330377404777046497964142995562897305672267452359493965067887686097696484207364920682261085518234425152676600735115571471933917580048198533298037987988017529187846362078799140639301400898300709881347103331480579584388449759012600909068189071902471284182107095510058041188787000044010686962470600457676041509945711974282760307027975044272293456459453401826924930196772112945595523637998701702745406183554775933076514471061850976774320661730486399210278195918888785516882144928803798470066801943773743966463035616902852275716891564602471840899996370450996284906648942439484630143262516424339666912211591580654110054183989214995611934229615234818687413489215647761062084239503538333198971284298445727414506773023093851510403458235162177972937556213482638847984668967078124350547237707396614333568433515802224188200731354552887237583025926815326693963863562023514660987067617914796769803894610839061547131380643067784525020689537542541507268282325434922763337802821892146178788994104883865956349522521241259500370487511242610714612588340378628838603227345250072051179754095660491139696221202996546105101257796991906755758149821801617909309458103548437827870593823900165700429539615855474613987893711928080076346481148695497711279643248656593779637264972562518246895624519521973575409107408641063732135022409607170458642712790039292015112233605048030283102860946063190924975009771658205371977192842421600599249584469629180948238445210519423060543802072719543550873475045877318479930715721493645795305746480364130079288886636338764378793470330649744481423980220421882363596437573659100945914398843559976188764309466918755216560687514036635277947459530135004081772095816921859920405281972502288796799873101146584265575577525203527898380637741799024652321784637453432523541263477410269050206758803041663814819070307241874221757620435665372453382911663768989508512772371111032571781416192057026581283910627957602773061222432250788879894397498139325309410151846252873384053507616509080063883320536419308608843151585401191084204905926503955298621601326449307686589994690129445370717742787394849582879150777321633094266069359144176533738608231002538568295220727275898558874205965048888976196068095800379943284937773572312065932049804311978059346444658164639686664193018905208073572566125038356529336868464004029235842545513029005438192974820119833089755381900014497495291544130710152177851893496791297641062040376578493102841617207831078544644224996515872640683887784482924354476297645413644311726479059207477088340684702398493873770062082152960993004020340104941079803182064635847001587742692877558696110794603438564297018911680243664014877314367308418892962778722696256284365940776934512101436802192979758438301005660909005038291666556980205081295864595248949119618781239991682798708868271881698138423733466198954565771667074917179360717534642021672257770681185982317445614995009625228193059729665975511850905648700972771974443674183969627281321697761527880867652312903473380692310383359379398612028816665160258306468393121448327388630646529277356097140132762111392518822436670237942843650042815075429395181105993125874899726773703938018052826827654715740068751985479314486828661686075007441861007622632051360804267687468789217441840334720462824843287493876177346898495643142378379306107713056952608972016076535687636204264928093187137542515412242458098293890397807198236977528499413670380689679199678122854711296486169584693843340026528969723869322647052777700803322974383393729592314689773179422694471261259041627431734626338666103862010664854851133972377715569911745204341181723856640907595729616600525482172194024046730162922268098930715898461713770790223578839531526706023745289061011279534613791957248040396446569733217250123122692358525230786221706051997011200302531672098695665039580138713975892660134742905717962382957494604370328998101489934982237546327666085370632865538103641584308651894406037092948899741531782937869090454801708908696768570615711032766881377263238918769385316341945037985293221226640350202272100939914269096546782931360003294532379026357204446307631623603914130971029053941186115022216017760385384377130001372760026729209832998063528344073981069461924984211739199889095594318486725228556835892494794405268456941390015868323803761837276543610751240190880943691452123500703993846955777459633512474571606448163856638705115196721727735266730673583807769340182411813330624449957182377148983191809794845607925221092084701744885169310562270433753276942304445100476879329174211277776654844361120179332469758892445255987913213244038646535948193077793416764446275309150544796126682447808546151440084913323743378216746330800469581203773899779938150390256142835645587951427485282343726726661434776392767666624330428796595914115809765612237318794304937483013771756705711897909753181889325515247100883046785337700536175535762804470595662141075857425891538737121605988625068302607729637116425677946330748525762368298099517193390587665641590367652208243897286618614128436732601591900866374117699881030667576672971522433920049206986209656461413596566419502129292412977901037700591157185321458887603453197865234738210915666776869844954116856933475760015114130615354414641708229373267938336491580523075620547054909530541641523185220372856678902349331905684246781171386396339314535888682910010801421180085617836862002017999275388170834126285064588449439795472095907247158287831242917311762313318799667038385872547738449182028399905570447869766858618224462044009145328674077021553814234568550162704759382309549013379708415909733397058801104928469498678137628179680387305270816431611935533460771417796394105700251073639730964276611201378466505464861279599249026719700615477611575436932444475799876293331407340733254250533539166919182577272897617080316400986383488197779945885759105207836997726304117376100266276024838737517796589995674793124392970436037049609101523325296492363483410567790221031592349739040044790836833390197042998541334830620372090025041671511215737503643248857989524660643464828288622043340708000656501300191836945173361244939345582277679268226836396826491419802378394239645015240620734997467695262047377851099331863579825863347109499835962786185513880516148590882176526752899185566782694242358764343719600809809422463214308502904024634319696938021369210928995866564118175937578203770357795361183647661698392672047621421143831501806094194732700953125248716252049184349523730851787541896170242899081595621770914885864937922565434454635773882725421039205216052190045634250710794685423642073878469591812799975375294030733662430990185264174975294037299785842381195913798205443507052879522611861595290483600501805281192968545838013648511479845227456448373296652999467310159963122193097884991420641124001056259702348358223286588529772521369138752051912674736372533386431222532511004475542139779985137229567100864268226760162145948460994597710766133387833635899177981238638221005335770053272240304896099609972905200738800996709055546615776276372855500214889077235200514045712336258467859184131957604104634608755445989133223626227097834571097265358861016675607606114609257502340288142999054786697429126182335431101869476223938248095788618159184479058981525206991140958157086465428750225252706533545917915049111627094383371516799068931393101397094642669788749462393529182684264807674892360657980399576748543378109199336089446584089881305237549531342136211803276397983226699679664689847804504011765682881805073708711546805009338533681779428396768986331409454719176770703761707310157915350084232402975285164861873777891084415017564144065344583382396477490146976040107466252126529176674011406171124337593114416071255785431791750628824858272942473344569431396811748500716273620893069960076709519925237920417361512006812105008087194794433398750666953235276646972865044399389251045746274301604118229710990359800213709009026772438982991702837103932655219220592103836855323794853461974871634762873376346552686077873314534760345053202187061277885028629132492140226811683120469971487083913449747533262484886264947033383996542959270964209088724453601013642251042677031294074746095001060833688956433687109516884942211876868106235047669342778677716625081214251986550409069958691137057486281625378864221964345415905045876595333547593120450255013188074573219084244736648539088665531203844605889270908660445411007034264596085811433452792406074820102834255823052268413979702667904973440014843046253714368490178525664898109385998051519098501423104995346920263502312374013722528976579852466053457648435250211889690578903810314154867070535824100489154031592890379882417974121179032292009055533852951446768426629514492042751223376436433501514346835831469594304183804038186353724600640197721616571582672601307136556959881953705840728061654938527827223663057535478490424368556317138926920713532596681502027983433897623839979011568397017622801221922953089752733110552401352275908689095642232596567542686720660770032175684052912552606713750303713777362253767215900846850267314347631777492957740405126524495253025373723583535636037892103222812150941392229207844657912781611014158194438244501535489365336517059467741926707609285461282259673107172213477986727420736713142153215222988163606541688387953671525580715453013618902171875453929732813115889137957696029537152173993677501323442269506453500409515318666769622947987244908719393725987102198615690845930007007456378143510988579224267094516907091252338673828092500783229415565041651915086163464119044959373747765928260177509347791283029746461214629724736173931893751410307622242959404356162753192333273185924321494051733623175013944526896687399048184565256288778401399373069804149367798949522475758566896810414170903071715908789674593872886814673461283667699069739576961685002835716999891338298189167619228935390099921669300342250411222886945479760415122816818203421491011838340289876919483320987084036355705914346901614310525634319640743130325475725922705855103024621895462135067761517711872936785730839785245600498558376427578521433276812962018913215321998694834890518925659350717832810273102466212056376707045465395024207551905976187658149302995037866602943277419766353473164614185251127253556685522765868820230394164242285533047374034485290233686127491482043790367155550496602506790688410637697950043428980036304064209156706089037332616098042781455158811342316161963885472013384470325352344570480784395075737549509792999327709103959485008227943324180630168025121931070508598876465037007174990262173618883755491703099633659216003076059509400540450757682564158212021064930661589756636938656775199476086883364566212916281382942154911088159237055810035713384028056866672060467572270626539878295809110373743588077759776945123344358583078990519117572470976159635849480807733500165824166129674902962272503882381886547578464398737963441701137452991952765178094316845564115226003225953118433690514044676324243840458312499069757399512863324773858595777647272419054836072826518348747815031497855612956341380672695230289691026519601535868304065067695721267815435373756159570316393289989640974667218352744683287603558417704538981252581914797544105676393250812236313399327965893850485800886526661048204486890327353477259014962172182961403496677214203099605541633345773490777578159574769824104770009592263641170025893250542690889041850311215383875744841444219010489008083867551176538518377127058840531089998080692948964354378945845555467257575835903323252361379483517823325295002186803994115051138299223461584459604392823363513531853756489636514670810970836313967298346462799734488320993763364025183657097020944690892804826096383746922078702611871287864001071777925703428025122477134883851790212559307317562310779337387852420707598032760848550330415078446290851066278076488776305925006729780926342511192944092270310617133967298668329650633420465754743079862278550986487493117576418905451028067907053734078891902128131567906635548677279537505671707960110266012978075909192815898026840056853405559858263293190148539154603068600542345044333961806674174415312103187611787573562317688191206665818313920232651968131170215915383139066862464454000398209230778352944631724250208268965544319549277133290190539918792413667985022975640318803735020834299152135594680414007780042396230010993845451051982715074948357501148418345144209156103999450117282794106718793469060877638028862180715330941692665355794386174008580373220269023991462455889495528912800968175004264790621327708550718394587610485334189558577346665351814227822155317312979516330091090561397000606047035968303969170351412875505710476399020145049222815787963332227603479068472850246813397440791480769900591596063570670480177395891308700472520370396526305332454083330122511819132792478921977664862928877691829444507763124285560008803621302290213516950679941932974821942974127514070649853944976877448121100163578715764308232355901074969617153153701191072075863484206849563030021103291808737000400713786218827513125119481573309713527804449615959520119134171272045926299578792630178242847277148867292801488288797919005725941344033475079840829135518972078112075678578429727004705948677380475079610959279378633225910846014034199168434168440637135032513973096993278254421460344895496804710358286840344183681748861853355647281346569209073164503749913900045470264185884576722233644872485292126384196566848165458327524512399120954407372830752747603988067405441573398282153202212074902373482472039127523891541638892570146833437972315092872729642727286990443198268778760074253305155405119745723198887520679967372144274453198017613908080124917720713168446133461190577817960276554463983540822721319926232145538095026352360630557017968001117593591476558641128777794529149089399715506116228212656520058537606242308162901129223936371713813140803806107422271776532665973016472764439694821754144612318916303068873923961142532691422720718221348867980743300033040119265314180318570375827880645175053604310571913586797752827090949405549204008816204026277307589564861656833311067585494625631784173896723321201699745995336263392572030975181330089289804053440544277489137022497931585675299720294676234685474264262988317549397192027662041978981692457913015715584729410996605554623077941288901248546052820767211740158214526535205163784877517477064073258728089237501098839162413132486931117319798341175816694633606484202692554389462599366671070609199186214702271557380974061084777441361621690181588576417703824285288054844253910060584392232625992104485097892199293347541554619673450669977453061068351476283969105266767786066751830674106566925513540518503235318149008427245585415546344005832126044010683067755791437177696791112965022587727881182225027428483598344975487392459097364743856019800991341307822819130605872576517253697446217039202240636854029832258555348527060807698859751765401519266932252790916866700967283546780235063857783903928010667957034797843282213927507830116234438913012001971796343851002318840726847814861585214850535584030435740153266756733058066300934761115449014057383580565646463896972098908415445150428684069360941670083773792537426278544626927391928062684327793902249480570937383768942238474778477990663094996341513416247947328658515297217877712902134714196484331983653896325669947522402666494471257759784504259009178014663298704255811791102962405848952678687127220465580490689917440649896611879157837042105921488761125378022615896256787296372028753762068476425508530424052306442786992965635429589299223033472014576410233738911979730604617133609366986312372990384266797620965867611913250682917733746696502869165600881556296220130956615291418515533484586353742145787602565806120003781400601977613669953341353220399786711271677115854087262025715515053388917651494162187599107295881163735178913380831406339300215231679685499509915851160593902725111886851068293617876909227574173910391055976585202328593304779803554280106092148758237870384123388278730691014986900638607117768757406397787252470764267046208962140088145669123265244083098869995317589899691211594497176123438675418758275709032746930281387184639389197389065394876804206277840976366183538585102083357460799096309158363499788445658574701058753541192449769921767096757048259068298178502635382474787945871696360126755383291956689253922941226274208909307752877060292977264751310651833674007315370181475242864559838536014790754860790016141649541979466017887068266733877538009175218526861142455157206458282145169982229408255880163313822413950220165827123912334659367544036640403724082514194358349750634848990255694263962916613843466364906421975564766980999409538463567863962067371088162359015329674654308693192677588568062905376360117471568387763145614605713160419597762509118418881555715923750403552907145103988993794716293263820066100722635173539950077424904332858829047004913609671417460341261663734852129230462130598258481798295957812326637130228348475814228412576825209437289612385405893995788838669380435217096231420700760298459298722064684584858477503600368155254944770082745297607537839437732480757081625751448441946500674948706188030667380399699830581432104719251840186605186444368787496895662685467745423779959139774521010425277035416872317145273714114957016184472764876493375148829235514753420097091242492992900394355273976187374388677129828509436421195455854388637775709054240683344283923785179812220582161677748565236506854266029457617194318417866957364911270761472562862873652215296580956499933957518049720808128089610803267325831418985650238223158146335817543441549121071216324359255305847805195250633027647988299658131346685823919803293247034119875008840107773595542108585159713357767524472049463859511626999120817830986277370829823760658420995848834535126943358214427892539085944034897702212417297026931559858093189736546899487393497261182887956722725714663736555366796716500783620204518168576858674816622982311209757413840994337220528555793877008104942326620157524494416767467680433312533913790147289927541587464872649446100321063695910306177298719505333245114566755069012019372540980544466412951943582979483951786850702060758596914436090244826769203052475167401638425753319598667467249816381181819528315025326870978035513392776496604463141157517139362744443848007450602946349760715828666679384026743026055318924721050383027777391785343628334285190982260411169449375685319674171235901667367924277251187359492689593001813374447705206688049427816930671789201138860357463877592974121654333770395838518371500490432452187891685072240495971807815850478065990825417296542487351407733336902542934569474770035674052646100904757146299270426835404254227168558002046725820136527323745349320076417025310806063032136566313150234893953091278113048958232187869501108508612664045778320800752471700075025967525665316307041876937793582589184233914701983773483421179169137310592611118563272307859833679868483135220737884593122389770142439586532567732172333466380614423899414851681162583395369443060271130432930505854283039362398748619527991959078931243446310543747851212451125162927315495598031434129337232056419242848895967381938232015462663918460045270688456365618692424177047284804815027759064700077378510992537957106982069981911696052783949307352940635992453634231403224522896836859868953340448244786783023117014341649108131495007558724120125477321597857213170722904242173978230628062136796343964025585634507893328133276765335618414571487917663475517482985558281880359945403243908798461735636395904819530543427815680770919768789701900886537531100346551163913305929571189595502980210835140359206230233676896627135831048265677104646049027972697589038350015357238244977622067077983893479338429102917104240920192696363045674135343902110508380965932631356258120753071227731467995802625522565175150524236131744108931943737588784172845517422204983362360966576385094733805512365280294348137265327791566649626322440039272478280189031850673706976582082683784374444551864994501108377589738894884617196428305131217708990093129363015590167279318555014367018121200453612071718876953486076979614334111809349145452307884117039350719652080460765872363223752298984806709557233112213669728272317017074042220156271611035557466300374996374761277333459568434496348755112165910962287064589608179250464752572113210769531459337674358304713880062566668328627628060154030847097200834785293027255673447005480799287615217075668283513111074413785918678239001968118758654719635725945355107227937544930325900769549191117541450339490890722456898482880591374695828454284983284560968862060117147402507593488156631746409019385916955350889086994182098943371188129463928503879324032225740395088179602595225217704095539805348923719267814657770610289931200444870813701531247288297614353576891700014619386538818934355942416985144588877480409155184102056461927727040655424433776276293173698449930707480193943902033072522919384468689629871945955783967899718045909483632053841348066507529256931983122268244104902995102900101113395994852702315713544157480392705709088637213258418221337317050396103612993390989887807001667450175781915079014450272839402913274364976273820351975193172668612278592025022869968009776221547950414386026217207483045082752348454082431031937380339188562582239637395195090872138893634712339855328514304201368483398623708685781630064360935285700283067839555085030110723949772110558523911571789971623610876491113152342972803842092924895467561037668682611454169861966632109635564899804622906286314239906722601381520963619603964821499174168525563666179637826959811831227579563320578914866081911816776289748866476367972327425211154920937664004513736093947494124729273350822326643331070084583863799820337998093212959771057298277114955766033902681952559596622198883685083379557950505699422607288490206449366543426348748964061419155070686210074979020276817447797818088950067843906664747521040685733927426876202493287221210768908199012220167054838077540759813055697450277911952894383314425956261847850253740054976328084849620520794287040972150915747830058100862046711388722498326782831257082409349979555618108115494503431685818602516535547441825581699718769951916690128586224553492192073725111623490644136943201888316761514807423013208414005943120009380301753814067313629569262116088359232033930173344130113396159394054837995651695752832272727118611104255258189734301645923301905122064417553740489974994643977323165039719655360355165376684100362496234941415551975880641412930863764553782235914930119344223630846555159558033476061294041466494032211878558320909629576433492297838180224277030702559220152299922309036085697773595825900472808550607825246765075841141560752909863448357006083556129873542696846654409540392734917661901019431322304793342396256546953259023221168375019543061815863077822474730516272189491265917548934515390692180694963052698114617814360729674951715416069194230265763015176583697385307906051423670365594975006740437710769869131474270591291486786477646086916976997600364489530141710045969352736370435481909632132024096585514111355919025836236289073011777323580525802354799469044252260863960448884086663745002913315062078217244101542953489189014951809652208306562195528578752604333331242757077679962464251995080367078662633309585288449077981104713559413469830467428436134965468799938420610942823030778092205695622505376745275490699357880763682830138112158000329177570633749875381560167449512114387110683431193279236582330665799898457389761301339879299479698133960862932002682457256647118866134763866876058465128056789994205838420532542740365964710189157828564212798951750751991254907310761967412138931016496099995977688629594256789366405260548169541384631799997483982881699491844167988753040226261164504762599622013912648446287421898689935256794502780652522663934749924122976569188599906024740920617711301481641719967579540488703159267655683375140227652848202290156808319933835184758576082182965523828033149848817605847070564676397189791697658984128680015638602517539205900114603411719684966624210831015540482035964182603899187683494170348275471122840034001999507618990396099173776446626766315128671841477662134963324118622397860920420623554055543508519003172548633932811846724785518898127493974166241058455165342341836237219095345407872848930119950501472237469675415632819360899412264377713547077678649897386205003107625121846538041157404645711709619034234941321993197950895550851315275586832633265517959597354847695886850566701815238985668660060211305593726263759418830236521769148141496983836023149539355664167380337114162537759599368774815803060717055361006490023446397720003375944495668019437601796816389170801881903298766139349964108901719700766030681930953261603757198063255981416532119096538892492340784757034831885964521224316300377696031262637967087402530466602874730338018639101802185490915398691894195456187009367018517424378767806792017937693644387830589169587277386606078377370464595781057370868916788012245594787904552019618622119889088653407435251163202183123555236599681065383882769731512360029055987414798964489930477836402618972193514891860188312988896452269196735293748003295052785492375359930067109003103078598730413086387232687343410232191103701856951486351701318401670695111928182063576561468255790267606488667868875859991345103581613770027747622056858833545867476614606325949606168898048586509196652937610158335076649910944042599969398830777539899177443407792289025741044184449781595753244795873231735326747032135119993180280220052129364984457205699398072992851137476656788048765786555452693511045743261707148772388104920346268184556836878195863026453602738196379722604527218197027108235253231879810419011471005551246378158103705625437275642085130394417025827552974770784668489318093099236543011783217237307964600720012908292832012455714391857962587353572741346349691538658112011263900720298523300764615659627524121318651909289989309822667117358441228487819162569850481891749395510519324963540241611481866879979988507353682354632788674927154270559178429120910303200962450398560990688387289277078296683984558082909999747536693226766347247871710534860853531809002836834403006763090051070404674967921652990379710282217109215989605199497291974032061908553762794378040533032349151490531772488322230656580385796089567080619207765461361148464383438073582801396739013780328972447578079409798495070634603810808156732200584841986789787313476981854284807258716068515271653166846760816116166729362690835838904980774137472151018608775035503721013330184384422572954158228018428475394515654734943545480664516659151773803846384164898085681012891862420942300287461048006001081942225835426312689276633794453886350906431674852011740568806390762266539494181287470593101159223278401956122750823585729322702416821438284896374924202247086848662294899175613112655837918971922245648614525082543755106590293348233538829913164009063663327783519639131539956466017542266594264821346857948667675242264666418839567172660576975454509852892715778480334965459637464000499246886104593082688991808383101373286535360839591330271200870261664593162022768032099555894863664926963585577918849581321694610081714287790857107440428654258579708720960619327594687948532811610135171143134408867401167094625626713126192615392470643646417923132465032162643085588327837411746203390092795364569588505810303149143196301381833242428553605133540366905292934822598163399483049625274802072718030045107904407842692683170608290085019117200236197063969650664678074114165975018437200029189212847938473359865142521234204146572682687638516782177579550328312382316077887171109558797610030107622880462960681172236547990808185331793786060884891486380558620552692975176386451740242794704431165779665530441665512898606189758655651326296519550107624260402440566587912803684737256943026230085729244246196469899368830212022856755683164983139799563770961594290274366737696538120697364366553228473071629280656598072801929165586651840291602553168335680522685038481260608622413542893635612215564909127357551930287735538582970266319477126215757090122278089892865671507972646663049280357986260209819939739832884772191316130880682934085134785131340873114876817208129862925128265691850610260593380696564931161372694628037005141222723062729978455469017982339203513637745922743117304692746480583380821032737817852754452391798134638579493412143106627132600955779406106531109044582386910707778653111748290280804153377135289072156533206118896070441685035839518851021584913314488663733010505816676808870656952528447573296741910132145097008195178733027099364451252746587204535699634016404122769025025666435998526198146573217279991785605465399924183380509561951132257245073276720193849364285698405779338275907060441938912981478139483045640275440899984306460324548552671877174570686356169551181521581483278286074418616523833811824540772236057983407215931357977234222590853729461907202102010306382838252106474473096954045718779292383006938652692032600240226868999849530203737923761673691733423612825826085633483027481943298274164833777591821558186461710171109872416715734335313911980960087685549504753411749457393511759354528215593845851985452744214491557807589365874841072654277852384318663265769587377292353988830910307346267334746302111553910540249012398149977010598380250433546080403122611482909336911913722003574618795739623498044112380759624729095115789037695184065587781668907850330477079810154196230156528676463406763092236552575161061251694458783007898925211435888950500238826285963829976975182510525620995203537617403658204061706897669334798514649663812540844235352556501804763373587354668521922072693658055539289199798416010672797879092469295409147452051204699577585479289494865330059850132894194353546540207981470603892195612257457901516864016212679451692023174281726816243490352001481304627523483166019788836058195917910519049415454591243603449402351546245178455808108646119340440864341177193706350246215199621017449764499604664252562598152655669667550023037157714963457156341130369511683278323741329865952248733574517673153946247180956001017922338717417016475131513034277025399969849683104555006078618866656169131384186656531484826273302433794624346858727333756629391926895676158351061004266642797832131521955729636774011354098224906953972661209846071004037716360561020200519079723869188339075506113280591421044590816289478982076413851338267144303224816281789001641975436935171678140396266209912521142028453399122068025504348481309471131304199616488704636693925598982606377166868265444471832612127033220827982268705562349358029095209258068717889499965736438137592007423008552781011956437810492179049718505120471266211264893583995505033087281233561871027609061648458568498163572133139224924795775291511667698522580923817861810029312637548606347017709291337249121239771033349733511088359952824993964941116928573657018240516869468436742289915933527284691729441864943714233639258366273038004871642660197349838445506769446235338377587407840964527824288121844183570674087939370085331405977333914623948891595114086476242901448056579265905296299415998838530854284047387467595277114394523166544051836380428038943311023032143888444823761705107498917125515210048068128799046681606647468477669141592955215161334558111294378808697973392775576316665029731462658370141386338369973671435960449944732107396042695524686648759917853008825032096606592845375017341230499272596424856517172997836937080012023100654912046872074527013698900574838597943924446214333395119133767867009379880335773256436205032845109079547320215319338116450365687738588331427385705952185154442873949820826372342191566986505086628947473927623659321190140011568133484241502189059593147507616231935455444510319186122346617643164463345774661308693650495127270425521108528278740364574039750605710257324630875250172019283140175163398488508356262706791300222464800087218474747956391983349234304129333272016354750098174943717382244266903360463057471811320167214197028456444654600142625278129362004467107065899224222930438682214214015794238439709531382147642900909883876624663133626891647373409111955480065850456192703334000267985087173031136784513505966960899970500345985771037391661630496842215777768635584408926174762238419354508623554574010961841152083885234735794419067078440415662433308738639579973828658277283442492118414286016340254320285692728693033034476908068229646162989448580503047274756903049375661997181699086198120189002547474320970590312877316726768312031544397525857677860207563571678335956858044375816403855322737784434226272055798627583824590914187740848445275904040051037352721772961321062920837111582177353602082820930747874499589332843911292546326122496497982309929030855013989356021694673141931502521488719317748521613974502530106251517230263270791244606511902283580012409554779728028367860572566622914913578537218131005840722416749487224641681734459297036094936205811061070790388996047033307275521974758870817661066902980877646204764216826576811481938525911156028127502698224901161036925002826837295320834483570586491568048162812915248510995042581583053169632590961033740579225857405561437214722912648712323334937357538723470857643638843027181784232989578448148490678056590768232303028258372623604351844544841354379911769817988013230586484830581291187642790778506442559686867454691586872398527805022188813419387298231907861002273627318300272355326256001631924478521243284185769920552529580423616363263905004562203336917823388463573656725153384671223230443559186818870260620999653573544578566325432804539333169427160672328019867958027034451579024633592288725695552630162801446285959246071991067040033833899515648158653262148731947676722363108086952750026393871375381093320715766944252801059995287925442482147204045564866107161378258376972489091250827605068919692960055769347523590005032446789988148155079018747504900070475276388681099562162035513460814413862835895182675453435686572534674561179447405540258103783037076714019339973013574500062211555342106340048594103009134778934430402024849527338747903876420205714667070628326495033723202927648273865054578553608577889510498241588848645740505942494921927106916337404639501085128373707935489900163952885110121980777360876698452174781959490390663729609628578999395926625241373745116749247143777971378055183443147999419329054342719939347698412593375928693331116244989776784622504583894723739472262416941361625071053304082059032420105325227440811168424229761101433377616636833076746460573852686497359110428846920686619631398167383015404564050607087793498975475153231302225885982925974297998370124963690481454590279052997533421560670996770679807199767190001383630700870103779790952692141126369899346708403176077082961961493993832867352991682278360696751598230057474415735290858738132774681857131231756725869790674445434827009328008986251694092512842796851139003446324669788525652433515482421054614580380187643892640849882823663026222959868345269717834370403843901104856536440160099226260973789210980965506437522413388577216874173959247262742823502151806303046847884114605599315815767734297114308976287609570932867974085654813486869366289811436065405341213163958722330299535096870911864071017715522464899105996822432052095056523219037563775929562866966739528933542002754409342410131092831508946332773093682508688744951080060938475358384023942649151404030133458873477201413948412033788373512870850900887592637773286884566250087876938552395363898177059819733779814613211026516077848426158996084221647905675541001664605374184827821826295134273836829685464028203923732546779508681330206310495022054246771314685663579296099163199444123562057594458779998408050971260308873187270561055032522691344254337262661148728783169897311972173702665552718996641330692696520752030648207204438855920517163000292805884410307674877484771072562340087605069251062725446162948074165059754967922880352282940521323718398000059724784996821860386333696312552611394510008754213456306703849784764430813188613009375189852063774256429830419938602756954465421176736591362050267172369399592111933782965770101092283068191710569897226053392622188595833641717184941965180017694033986040070691738580081575221744655680276894821089619049755662726681131162036006224450021854803996998959755385124523528749365139078425821584094391905297678044229352743982302190567650405768503815880947192650483489544459400361658301822676911323636928058618934460210424005261315326362100138948920284400441527477302555756889556105250912273134277273468785938029736867210186384659993558273340697373304453574259417698467754936266541566412133042700095500303441068400229245664222026820472948453390383115465549093338093983124062019319655696482268811815878735725098767388255983632706864540026433456612591986398701570786847192760796820087832180623770932968159282066286870438447389276310181297968311767862842586618198894177151559544757051832074574413043180332008391194009791858703698210012559513411395743093988751411009660591199308519609574117354040501882123490049718408839802223585696997251263524444612251515722083935017772053443228306223821542766282475034773218520505155973508389963403373774363025040989598329143743691126928679286396637232902698283776193559816055285677449829367777197626570518893617615683720815539680564407028136908281734511159594444114736296855837510321971614208130476379489421805905985216820668072551938494200849805306712088558329858796194234579481132934006435053844253814486206151184391878830881362395691532892573460711877297980225131977508648177189422325944934958220919354871868989022365442670114490593522762373794457348711743278722906356193155240453492709658715491240113355991818165769602705660128790485518876175615409639936281435574647052252874737536789092634099352728853608715251399887847568987046256767208946112131529560433800551940925350509494217333898551445862427424159744175454572547395816278256774070169531529251732131926729572820095923088921879691078598142133408886697776966556163155915865764165981522800156698513670355325416309707828534200735779961403315959300952837913665391331511797652834092791575617523047326889623485805254034540752221239210782561456386562827718969086800547004511857762645449864684434749278815674198313150856721555020542833387367243192475751183945655548950347212164443628110732830929267057602160316922857694320116730350305405294744514040543424370367008856417629382394452693025777120215484078385792642559404561931427637657774556692725555969394874279765539517191586040450372810328392018026201710453300890633345670722298863599464659849287831188746940966834637117336573094384542032801713357633656176802439703219638777149619005805441077620060033407071937661317378204166758717432810832328031456688794935264261425316203185524862245534933707766784633630875595064452799048682595083496231515631956221125026026969467557225452416065330370786011134261108770512275368455425349625082453092841984199468283673120828648066559236309908170178835876420172053549874113835120109013181733566792045065309373563783941651531306039237833617651452011422337603045820141607439989559723987405302315222484017714928040687421739304940078569422203734604078906961163364256727025114391694546959202155503537800333082506297674188672796380740930972991469598866411062039478880678806047919565675408983208331723250520857611533798826444124108649316391538508103098466749132954516559574837429235032273513323553502990852435339617392331676992758609837056922651538716847981580843390322147712110266062037358518036393337128425011864974912311781115059802137298586882151457639911571578091336551089310926545714855125813944854331957591417097298912548215253388438555721894159630320052569553760420511642344188784591052475598735833666834177911152600830399803648543020178046226265798545332440067099441405631701711370710384085952655973186077938325766829448629309731907652038358157223457634276036284921169160330406020556900680867710531707504509481286453978352410807088332935692541018115193825891279860530499836795532796778092158701835015114548868038928789337823963814990019896192469257927008994089654002591923429653539613672690648943901199064344306444277621763481443082616107736402679340787327112363624866469142138274751864561074708297269763972745491295827953488974073311643770593778487234435019518517758400224128041396508717784358825916152885000074068994209511577770764661553178966398609967576329226158702638849614233391731282949913069361743575608378478687958044822326563586065382567861652771131568230588816504662373912000647657258788493938376160299352996430091052522017562413221869602408669048144876381980843777106048993540582617472998789226049429967195445025767378090480302905916056009031662875685855848960641826667645908920070116952104049461918186180787793424720301633488062699304092899804596093478384183019837311942661286922344567721061262650622572788645024590289385705772848226253106786328367947616647220841181914371444422034094648239467291153745013405834947246687570889529056638405469608486523051892001028416489817929660580246296078658097871852899791408348346674643930866797283384494998937974792586424622870291573136939771086741488382830104226481091019364435428592077561438957231218118374381160652743961027798393961419211112976575061728271161996665449003894093178859345130629384057369971538937097383151884066263733331791896091111998836943625238493636033370838148062227822420102804407950653708390746352762039502077737988111551457837708545622104984195369632599126516103803435911255227507511567540074457535676664833641472451719859353317558154882660238449869610679379952092224757569370252208206384910220769112233363407611990240029853976692239034196526821212461989827296738081321807085038281327727507964429398668532483433585555947213388781372214011442775929115694235804284938133540525720786220205445770046883865933068871614133364580213550291811781852622258537702510257934654322322712073490132209252475591661451990519435071535413740775102240150721749783009227857969989522095475643590754233398022143097868077323537864904709208684037310004085908540642136952010792441070895850485867786687035934890495365517314757661922316356203261567538944440675135898079575371109824123494389751283458479664955099856404885189842716999244781261509448912823679822355542566474803729429559066409578902523554208989057431376625742908611435392890258088607931792095106916902765092261186978780665972275454922805773755925029261925280456247434804056290226383815604901412285322266975605117274635452930141587446483189538603966203257831955800262464910747092445336139247425614876252729166457821358409676138264903704219698810375084137525278570074237306546818665156396293360195183729861880928532088321902210109838801686425598388961187190705779595467062913483119034045926846910836762271234566826174820003656929215218444753077671757599682022397748940799583104067467817603603327438177013740559770421353861584156156122706164065284772325962316306535738246757165535647963350249632533980065270968821587974248177289741892913964646901117956820130022465509035784196253459201291874607554085866007243888909377877047106244226821869139579269281093474038709634442606010469100696401800588660357165238181085518789748404490863886090644879959982108199534408830948276107912952188589266727382063501358822802842156336389918580462014781828561915103140421612225173183634105816920219430407513635831776003775744689131295019997411025925093482356612993817086064844846318292793799549769249311771657409711355613875029398354665843038969064075053515083815579111382390204787677277622447724060634048527054282668500193466228294203810529365313104368106276279800108382183251574482282443187138186793456491414430238052519896222706213967774615197104538986160189779558067233996561551998031160366122732480516431927469956907461351828791697103503580487270016425369836611797487663973381399786221870177294110148439040227105131870881974112455159103647723618167335650625257690680041848692124494753337083631617552639442575627469946747215071517845892335924518477662476571724046790828050255940149147179755510423262691705580347173287642118632948853262036634924514092320616060301543353607873646401055224091094352947570032358415587939298986930906173243640006698485954065295747803913298044552895136273273643547999688561796070663178750940502278957891394356777800253732099017984357978350616865666012022889835621956484290709502623941978613036025524101412366968425404999158139676338874933542549314623311690557311674746524162414949516238591608464934480683716035497024067470766775903953868661093069294493803022961329731087900541889547878741675143164896421098422943138601348141488016321023650327617126913531604954123507225740079994150945783537180596999925865280603072339984947534586469907698787755531214798497304245909108914566014566205275414475586713891450765130100733748294434914840864466919637334562496513180132994351286396531172176194996163134406390727730022525233645477142432938313694291499610955116073705449854682037424126524355908758683095588016244658878890986584988620740025201834184598121065580020798139787556088431171725616894545190412845409406997139813935873354589050365121314325009533750867184679424616064949462313873796201139396589798250886955824566162034254258879745609118296777762699782913420855427011779112284789962820718357048547185463032081898893160727610875026082415540365869166764705558242965550587418682357765086909381689688829326687222953139083856485672299372993402195777337977514396423402354127051163492634671847962017281505553422659222945779504280774455392396577534896854133382657389625175371329836421118610931139651339098580436441485617401295438091473119716220539843250544751454744057334048246790557735529702042704089873660030990395389463555714087671346210888389775188858548420263598954379367531902658303904605841857534577928185047378154694531674489905773236708029530252736219725390006533527519766970493410931888287232349674310555300720861389607409822584195356509784626104526336279608357554655121335090586479202259944999926260565155775079503191278101129366096139962044813481247478900844323436923156046329001173371801346816357695117896634335003181372991718520175940871865266919524677853023918687802652122873486375110619436083368252520442779107542624674567008952862155836113756321756139229747821261993471932226970864702543360402450570131236849969814500254982170484326214387213524609503349095932617773645943818219987569167218108248233092110139184491637735701378145344022198441899018510122205099459816103660713466411611039499391121750889628843400282258131199771661449137996029019426254325192545830437036414940481493199050039768914702027050999194268614954831210841355496245596597521144866095337559235219702506838337600904504306682545037247309530546060275149158426308608106527751228682383309833200970732396047940389231543895161567072152476048725368021496602776334557722299469962009995479191665168111568671607968174182767538636282712230928159407687715917354512228828019818194146233064114257534272123938190124499738976285527998157215574891017214277455128733991339803004781709174761029436213491270556881213757788561985203847146611266794493878019242094965563208533878111467993416878556356206114487523306043735265302709679615281540377078534027042024219396177953038750197471816942168234907960635409070686525321105508632852542652231376003596736795428605683199477767298288289732085746669801304479318429593534615176475096752312527002534208468784580105747018016991295990476526101228246895349909616261111219523658109518053095976758286400089428935491375136153692944223241120552583973909183664284791673549365635939036630356865330982423895186480123844246965617894773141225621335555552871309858728977931526908960218581562688521566021753905991831205617986945983693426065097358542124703002748198946759883646764448924980687534845149199466831624534555795619935769984089787343671431922543301008764158592946912235967755320730529276957468130109557353647380226039304389375205875992468311919180333766467039724630397310842265269139198524440120393488435449477131512047756302696190476504012928443755471221388208151727040397835228276970760939230389843810653210485083863391194002435274356069113134642211070725112425607220074266862249051145885619368955285829540263834324919596544649507232047815284065295733391437480198105460060127457007680143326388288712659014798942134734214756490904548641578333154295584793013330871373271221420018408733462293616297619914090334831821620373828573480639630289280925812315734497917420057169053119563899583714678845008100098580593115795584459109377479022346854666780894484940056622780852801227556662197738975380428660994212683471449882525030545422372142599791607448255846074282926625584182481815688824262820779679143417526540446596171509967801305223541307900925298141434954968680410060953840008571023098007527851310759552335563490804733993998389103821249920434101516605736849800177867378025871848048298214505478767920861633641965936453467032020374062438118036478005404285482685028997506741056508271489995105291831397915141201896080248382529107441735673808308698537939284117599398644398659914053634679883533622751729424039606373361914372382773063984851270856964893895808732189041941733328726529079453779177189288205847116746264615666794848044626733719100363249028085113226389652626111596793363794898739575241922614401832091362320929728464066510894118500017347110201351325598281410990872121855812623077158979167917426454274281214128362528036402054702710805779131414643957384808733885773045504799535397511188696588367852853946598961310463627848640040930169045881568518011772202812689413708647800962687021598815433563073378874414341818790760316498850721281936268262614297109760888225501348892066372948342887780958030122449890566761029209913299935022976404105214267185434070859465905621323689593947437477464079969092063486312182704262884488815490941732052496398900619946048506851799923885343128752434873220630432002566567885904187683600451983213655074219117632158244805910804171048951598593033750738804978286967974183990837735257008456299639537275811744738463279383464701579537486359567122784700906735707031860871586472307073943911621323806881651526783353866337008797609284281291623197404281268295804732811321811009298698445140839339761303168660704971845584399459668933532348755202481163762365891606752477641761856979734877144229223024578354454603253437434905452161457251202034108986783393783259222431511482755957298803041141490201913674787383063181473955097180997241882394055110016002387382559450971214060130584051197899423708284481791443315758736536334943250615367419106218317757781051836143071717894533025213621697075771055173741980899668987524350471630726542864600382294697964783448676451112841035004853205779814164401723819484828191402387920731769819383459052601527728670077573052260672603881245438517732202394899920514851173035343038381535649465443154702797331814381559673821470273055453160528627371971550132053964669394765934027251369399765303269585376350942752644941776591248129656601340417601716211340970268428749455302222048961895298553415819836051457934473574107904430087857004024555366424611462775984989743955236497818640399420339441357269068184283964469244571782647251978930902155326395583632006305439910057277542743219149353289722774567939388364854627375702235455897944975723747219873527603939328295992464671886541128509731997902699690531232182900443838983135681657668957003174613556089468257582761826881958242498768082213815976579020043885048046784485171238477546774212302743863176865655232614662607593297239913897633523451507458343289637162162469213942404815327581715269775835608317901842680128809836542589273864485970209575663039336776903297782310838743691892069878786117361070587715769281784786575567174671962049050234193927719863698069837202635074580187988419527744723885067263181260565962940725298708629898647656026836011376523292852831448287737450099833375598522274490611606332204145595351639991771027165503298245500994487522946240775102504199831044005244077489961096510410200572488552408251203837961401950174586525268018427211748648657161818678772812760331566943944093523471962424674562716591219004429925848189659970108515043693546218754181815322403415516031363621535658421025137931653864681633606166388385786794049534180963315198034663871341755342249829533900824093882435203689461041949686015420831607720816532460901024159885231635568978759925407319011126592365873556801843239558611791367712258596979627631259098809042701065268691265826632716746118001136715543080146008328523660482279398313075614868809769792164487095086917264741068394756029020013710440499523272621042811927343602857383741694795766685254911479836624078288173780629161069982395076720605657343732626538306269316715479672026592328239499582868019151481093345373472805719805762351660301292012960442896580642032313704208539608691640320291569728013767277062632998255420161994625951467119165899596908104751653520327730662995267130228886488321181606795737492910716553461077861834631538601360698193168470869023994328420881635391806839910297736718575065061847368298648136924258263994237674565710509177992560875804929380747556081608489587165426192097902139302684076309874245170101969913368662570113890266310131985389169363673189161340603849133784652872616321068034465065293463189290397841495503202545168873439667057428236858819266477942051360180307163432303052786356609019503984049714178373351871155697147857324960037123968911628156434325139221040585664690662688192364887581760956039416959655060202688303164676507458053053335915003073630446806311031950141666688374304929016731143873460531831362364834432773951670432704949586537035359473434900251629184877517171197396710223021771689147570573734497573491361679181074185908435387145199955249146301164428958697202017439670707996339061378074264510910592723803481620722982427932733472678360565371902327555591191709313164527130256836490043376381262926098516928493490392306362076713703817399233267946305371772736753386032050002395475187992202784942079706365837231556406420225941794492115273831309180201517298621200690967496148104931104073631736601676664810912117893977454721582637009083025499620075188918494602138813594481138174262897258205187593097089453312163032193988700696709005149093305637514274646017930782614991526261802555725028234537691185680448443498070071027326256834974250327436083522696232106623210435229618979531057010283733472488372718299684265507760912295981080961016594594473253077755649663229196876569790036055987949627441958987157640586207200634610251076541690879988122233428779274329303280146700969896488866532175453321865921677333901830980018272081499019075499057818145409637851922512457384454312797172469934959682382414656669982771345064862193821931392740300718971388321646417949571788579693252239714543292709703992681800862205762872348494134977449086256576248453429393857517256121871327310615032346556602635583053281107709679267862785399191566007686395395431276772071631226942368618658854946406450831385909520054691911456983983217946314480815526627932793720905589345907258347408912260531983537906298128673899200350042068112765466656364941078338774569604811977577171272302170865061216830277766695178162132496510409878855102739103994253209246085949440433714810997083534770852949673247531071049183921992745497212170891572977448289379936351400330003292472613118237389037636146701416594384416885037010175149492960755212749829186041635641661918108499807938490067143988933808700083118505867788940634452588338124221225914526540223216991669607006116241651401002470257529189508757581858778435730637083866506552440299135384336615327681536430950658606392200947261681798164458686302961048893243117078538327791283258512189323429673750602326182825720914744495595279967008332373578411396942482232123416984947344624943207357932856762388673846452466029249791348250463181476718591106477359771316647705229202371698640827541439187225939372039490066432048987028461761901620806394865863401990870804922369143437197949062502163796477416253790415852241899794866833709299144341153350525463302722474120437986015056030948720910623995818145737095227162473349757126429742459527215325653768397113528649454398461632057133358397743019094351864650698572360424893684792035886306050261362949819961014553767707711477308975771852409510673795845401590323678811484085773911028497743818243943170774131730618029286567600090037648131528202619636596311489681328503063302234269270844465933551782737471179184036482860549609782251034300668640340852341641880746631586617722720739129004139826808105157130420268664887185008289848733646250573293289926518941837724111781322175630914765377433637556667886594037283077262983054101906754081655777600060340934291303159030612917726165592045679169387866526323668425686194584954310346109405257530464117343841756879063309483771197771638660350491751589302960594591669717233271524483505186478112550121148597256975372457320626294489308794393481119647696531220287266647871168983839366602284485875894537094651610057059706618958326388825173182582719275403156000557094546806380475840758684178762261634035873614750002519461155660238397314799782774911107776678143127365837756436012533282359405567209497157138867032636009914480574730655754580508199461810497099251855300198861048631847116477790556235046877601179647914395211477180950545185873947514345015040085566231187220360232362637945547403452474969012518609095941120512824896252475868853883122605359367417766316126058023414177349052471166711141596628802407408302382565464941018257398801480893941024115588607665726586885732561426344817740493263961288955034819421145715651901443587617453059075352097556571958189881518515373680747827735913568053839048595676825175219588176294989326519132436483896282220561200530634441895682605418141556109373356883917908458203789802928537611952640485404466011944680936846566289780087243770185124225214362079673298163495205672634763770940065492106487472690136578997243201382479966245039074165550832511045182414908660185687137132226748777268535474977786090432446300096731452776377757078940510292063240456266657865671165453999587225872846831863062868453571156935395219189964161608135940027634540055076931212018051255629106615226138787347053065852733331569514093562583666105711931765742585762292769192654724314812215130389409327468889127449830802793793944708269066149231403303290944324480579874558505296730406267292316377515031839270003104710786360760574986483359075039009406316290225815319755895381586902374749139146870468660442997891661910166567387829694381000695289453541585964332726820621236411244916452788001683791773889737864631084502021754112658414879061238006577741515704898347447209214203093566181514182098692183914589599694307061602587883199943114059238035793926741346106030682726366404274947131706047901560638092012384650303998718405737414248267481849885365629822864363767675941335452487424962396458071610221205411550686639031542795423883659962118315794936326427780774904542865311542595590407336155198592106781139819122085195926833866082373602510259767660627142178394487994122682870374519875531550193089280919116618885696651718927013638432889225163059809717210297035457545797813058594297625532902118569897252608210829446193289405462592125162675757074852415757930056887411312742480533823069042323318697415423901844448062145214475757302275003274276162347424027577477074994288424533099521005206666849205505456323987497602059916340397441203829110859999734553301281872469983458159676300349376561814051802671931021484117725918982269788971488545338637648580148719054976247281040340849856427697309203463492609303245359166395141943897929522969402367796224648696656899842160521224017174120759912732205117362116197862571194907974877911352716380510404478111415936737492041130314311263085737826020288347521384459682279363044765404540238417353601042244582273901781050097292587550035962099467806879695431692830743434057148359750405262429197092475083113185474616573445074442839453381216848682230155076184575394898603038148951923701268427944556282000596532857353018576606886938338929250968947665966107493432423991471664106598241474232454042133522224245615465985701556121690561901455111488722718518307653717500314975174655601426011464236693070744177023123223301745040642888048339097053896226205584178104327854526628799886116279476466526041969874853401976838185176686051934639823154879719764702846185672111762434816524211597515932496401970823565767560034224610082816857339722249454768625477947489598520024823082627326652639834983119772686639439204091692365795691525238136016390305298474479120490322734189765270098998692180342167967987874064908413996044469198195558988565862052189496872966315316486845512515372613452188773282089997554875348998480529969724854006884990664085449431236517797982033687403947997672125647623193188454221862037213432743917417469785274665247041697402513295366842647064022740010038423052699608535095528428594809318503486830517467300022922956261565628103807709363836693938052163960630930273241298710094756423572428335338585505799792567185464240784905490250649119775675427848037053620592030411609693500738656939756059647167300433180512544258563427602208446881341293150786148260040934513249669394805725802023048987242594065527126162327144164124414628372904103683207876238944383203072542346813859841552361121480239415289321478223023576674927023199810101276806483342239036727226525002560948731939543900637597991080578374263292307260588553768634807769191243586980770413746188910086103536868583640492117699005170586915522052851369595408777685091526839149451521898339210329941595785357776319060206816174467918293816327530726977986783943318189534859209533225212383239060093036091756534930769769661675029829453317551724162203158468016945666765752938973104418965660847849659618567058911597962985085545450210799604028589326073779429766650800692433550649327401582111860829054544001128492075654452875411557208694278625063068179653285437447057218487513821046931176927527932920436790791783729137288253286272119368291432035804415312988465525136295967379183074867536358309513601192778957431419464840966455018963644092002658034978428779928813204853801851696765541016371267050773544494025241922407615476863973267221297051956564597730220317853824706770437670201874531142812981580306506750714019007907027269762111398284955819580246311864790235774192610493336818019642598488130581980617984517938449506462655955453337981917854750861865897945286610884190370854236895620620696196591376090579511235591848797856720710966367277409991374917903739426980416838764888847013881117530101037709843241721575666606901211922174390569994639104566454866625363017040206181914710471747219757829887693639764129395173102251356144767471382019312910810151202826955439264844158066320378130644416598714371821840985233077052859196535488232579202824928027721663397522175995974467656923259626662753633557945318614192785035513387652863015705888928066248641428645572966230372572874185877124250429986349537424120284809542669836769670557750440189460844284528045777827815315254437481644967665435331996904804626865510190753438726968859814794515665678303625941801108657356852930133321491367252354829482821175631916881223471993883353859488840230536917954435804591388499224873870812205616324881630161494140433607195028971189726447403765498798037807040068397590176166543780765753389865577812920120593837832166020534651895064624423351895700045141387715777388475741373554634769402433054281146460064799196256997910208373614736418067229106246143693884205955778269573654892396469917513528580573203118129241135426693653790111375996712004071714524312705446127800550408337299904903905428472324062939972793277758060191168518506654257453390350394471778719957766860955002846105588979118370982600393402387897893027425522861455732087487838837193595441121996607563669199546798088299324910023549794556932034907641526768825865522499588532042333752535134145082724445448633710699054619716080210510643068159323949758720173168206785234427175046933828625175283666630968472705989711546157811580330297864342679960337328658310667167008827236783363341890813275497116234409046593436438623734246469876018530145857591020620850340087738707880196757707491036785983293368441803283910446207156580581307242604277843748669065681918873423763172760213474217472448518049668767327860145214068657225545044972682620807379941768286268623905168558241116610419064039314716980553602097291552714728888648716907948928890306801317563144397871200189647536382799484208983763946546757632365914453066862281193063229757229836821413474100873738772212088645941344873466672230763098134437134639845296372146998094060059678888268461924267338297972224077780809972941868100111508008659941539282765191758211326583818972145435638611754663086811592267186376136376397501250883916663968837092415295372201364467631922650899812735153180954624575556763371355046905144662727645742278077281856855522971184365569208391028152655330858996538598136042540108252092439594157185096331427873791507022969826765915705340242503154892137878475961956098211563771116176803190491827861857700988077197558110017202307099944587063617605929311340163633727642798892559588985328403046362301521366330455155144333119090588007750791899251204996104488438830422700717171836673903013806846099618126276494722898715755004560021273095724799525740825936873631950482767388114110705605121380496067368622781931237094188551617571516222071622534227513688294326227464452023003255135290241024832157648742891636464054271230464840353805346063731295184965998095861855481795881925759454583600789219185031629357931760545734638514350065655815692070675598781661694512353965131302602605277851026413793582572472343548053552563073310129731906051252926648783663922468788708392292131462727657773409907021778292541852338880537737291290637968948504509492569056594181505204724944612756202239580386989817156462119624893963174761953108031569632744125438249379354502002124396662889272598958569797184565844339910334661376100267443979795959115946382021202292130593625253989391344519592090554546297211949718691746767410924056488498966351110425859032189067380576754707126824915571665010891677544702993188496319469241222631546091586432809162242995347210812941756833792936242776151415502532667832093345608444703249611121274338846522209702297876271322712729275030489638552667976740077427910870220234343007541003965198975811001675152156801041424029578098851266604952400406121409266434515812311366433292613760337821584573469037929991937818786823649610232608429733611118990339285146699562838358657121748494179938167400803759149405133692768174733149809190901351706773601919049150295552943288838080371930174565645302713035154670494441711076459725572385277381040775244328517448374620640422966630673861914719137617021978371177913400705062242986564623030095708641134537672400877309266787680584085606548140217738814615700985253297470573663721284865080943548281387352551945790799171733822675848358557408517918794689446460929769609914915283544318328875677591722911393347231198225835391195863993184493734100871536502860593952408349823147319348728510664040297954418535936380332735302258470699381574705419012792502075942402021035708699870343928578767968267016369975932193968188444172716193112880306126273719181623157829617471683050632475322011860697267765903854828584596118989831231220866902781303591407145381848840460612748007397147808798733749424460102401943185622247195106744291082172440980629850916612823934772353233105681894711886373726894685970566563509535653356223755449245883652136087686258333229502402174758558104022769998023834878009230538224665754176675631580169022783077444158515927487013273560390143498797780592212764650777341435180372597300794560888822417471062624820348199017319031571754714387706948189162803002511631423967367297652182338780652052152647988700933619501708300882691984342392541007086422805036294174507586342629008271262167981047588700039793345511247061164440053962225290850309305983038033632353972509078313630985596235607020898272260942085643117718635874510755733968291163889988145632903721446908480453188967025542569549128535113987003588002307840393312894530562508204435801350188913196201005246508501630656698103419172612595929187264104096988245225046553177865595213485296330269430178657788089661453929965341942586988416567861793518898260495451849154753469246595897948523807229164347684367550157057091112414819639004462409862250950914996207562731052048415230033876275736348906136227395176773533567377075240574213674620554876947219648241272929178693411316697037669987927866194806929577830533285296773685260182460798573393337306291372294736766229428696417261027626963682156969284642161094443338578888224720869778684800546149362648604298289636879440054541388022829505635267801127189615329364478831171370737805481844974595186463232802600087824234827680260980062142943818053846835876172228002024765523422734306935321455373569946776219837509860381968873942913307846566699813744005865863890966469419972258595987125662879897140486969515606285916726044715376539717354865369957674284360915403435280455611372120305207414675475793627863208276184275337351544489703096807663832514949729347253537186369925652332404762340550323061806355484529211910358139109566466116244010375568446592597199920461827286212554214714488929290419995005452630531016153423345875535302981218640444425017899010954307718888294835972823972446939218263844211753941848845743242237956331470938943815414501301847175469211860169700337373325903092795194279079603715919295652812733671684702259909264698125380342995500823675331156561499283130852752457590216629293003961977352105302541887976727685021839310809511952415358248198799084239882027249211873624621228056997629246387408498153451712039766353484828064546967439552381418890274468108628999000525322392790456318336064701994791213805904032326433615954146469201954226490046604769495122904805479041458809168492026215225143946929102440084078730021276404407479563187545504171969990987728024053640673277440720400734527602039595823638123247909765378186284886796385986428466824904406768389914987771096748763432747658991040817633865728611106626840355386929469870001400713864426093672328007127870863299318209245271964737578334081090615879660064377030967934184017221122896391061991817921650824568587295668237282947762022952557295723245978178229574804779224603695611757081708174398586268966061832037721192847974464262754303291934953788174556939537084307389250467274050580231474681505720119123262011297155255096177480225730118825054908212748810879428530707754612349324224428449316005859401067975944424283339961954718100434846339234291735601205065238703491933924308276904673867567723743789368194351080072596273805387381193484735204553351427567236031750850439536009193183578047462907490303856584936763717363153161047841567504777219282936411881561527949940104169947529025623139516328878464137126994861362858491734292460509171861034382424200439655951560147632427465565545753040995691638868138273430342188551028589808284091318422730527026357118240031212566498383969788457419751308835201038121001372966096513627020724370088148395866048906701613459217886224310063781519735719161079911749652287159652809889410788999208558785387794368231990156558945862865152567179430826843670328806677327372364720824809172494297444634151349248504240065704461957533967166992886752104744342185695818510563853730555061750329732619338342113373457076135037833980904923944030269737440084546017793354208801200494326647041142008515163446023611950620755455917811606065047213727327506080486948237023622385762392331157568033828914697020003484485374372455184252871466546794715622364710280380466212263311628603812682432703645814623424833489321183143796714714448886334278305491648606827915046224201790598426838338386254190874432109617218975859648141313384233809879611525616990534054431391939786524071458366263386690735100250605197242213705002592887793875740253972810356702197247699714181409368548610104741221013427105318090360277736447160511276788106901612699166601037143770870388142746109087052164055733164759103976591006143130018502768600551587645304084006182141219884707419453244437478153455170428716498434214523153684833514727045080272599401941140979705374044928594736010308302534755731054956439723607696763453235187256960033319549080909750054703280935916170759536155358168131594909969072853552366744526041362915169590037180705935007681428228969003118184168411477052092225032086133300245667227916937340477229083045291825555835071194896642724515134849833875086437283179688731646686030738464277014233364113076488633019089775421051776178869892197670567197004171331378541848288289108772172828787122801288722281261593098166191358188275704938770796839056863228638098605472476195425305915570332707774488836431072144949206897506546386510282393600010470035126362186588394523644001643076699931429393701146704231582859778634443020743836888842307733811459873953715797050142272339087854965666578968061473205193777461279417851835742608086030397293376205703049169111309346502344040506483039723819920492294124960176865533022699309260651841328109987597893711366996799939195590357090442002662545386658259463013529207797839743143401173362017773545197388615927889434644812639554744873813308742298001731687124567849035459604014817644248560279568682082853319322093061184776681685243235832928235784167763884358958131065705196849600539462427140818144822416669093194407981159171514207444156577974854252902971762259509498548912082720735144390489118728369168200101262087110178566072650869794157383426626638216437066450704811748519587453723711786858652414713798610552756776607356418020003829169357507020673586744948506603256884004760330852946613826368766811387173905864027757899399156816179220003052119102121557154427555260785917143222839260721399431991533325672938919552255710866564112381907763150010451993340435205175708011509789795434274419831123449345897819912627163965118625078043213387219872658152637547821553728319158837157636436453291364682542919670723310174699834300601971981636955633557772647593417427823175209418484730572394553451196154960180944993983463350391367084933778198746748001824881436039966101345100564154894644467804221866133708105241905880152766943491577951625730619673434111291422602777241389653342742480677986440953904901943544963156006498452292647243053486632326499716023987282048092737339128678545250632561620965513101081114926240860314151034085934023177860827951459529127160306113560387671910697141652394006010272204567056997947260130769566063751257784092341240064540933911073951518532134364572412730835784675727675273157953827047016425443360243762253095075550841488153326976080806787178501723401811510891336617420234606780487224739787735284255373680227513126862010940968011520350496577641694888730508938949012282468110047409701452590079890063801465110284771944307270350198553218155576879452623993556649479088926525503737322611240645939632102015861360224028463918037188784585177229889139371375429364051019368532027733079692360026285870945041701537540594599328514747503043274388472419236062200708900716376216846631992539159746541541222336734297467839344219472986518826860331985678569999198476008653059763653093273340856328573539166038676578850977000504515760140264426133596645640621644601844513768588955006001771779260884265865986952056219471527167222500258744009870341124477528077518038376558308787764186099032694318642068286156042512710325799725827358611450673374862714349627799230402131430162602611588869567072208473712854888038927381592136057903929188597149078848664596886925585491825870761355589837630283266054076671582801402207224680036479368383674049713905195744622493467897032716259365052085182258400737334566340434405538633796315660533709277837801108754004556303204057197518041421029500864435135413795996901385661558443101275360126484018643487430415645567352832601699483631975919979464509098005656167012000816753188100776923878642418701532241859981057371444228161381525403924820870128833812486281402509683891727035733907823215089267107662531036848878739721342312566243341330929028491851360167325668030170351687177962596904177918628061784714874775282294584094651513014343767697705057882648929222327259852766295886911558424054441371125983554482259259329559709030550435008240339535118725731131449696922186197872057302838477240289638197562188185104579499035615537148736899555541583598082881749227196790014056484265767680546388000918545370570535553425346385860003939399778302430548479189257971936000669761471951064643770648588474015428764740025598744517713012182224289118223745536286521949692757437542668089447237312908736993906220326980235848026344021956489016122635643790495669558182832671982361685405660232205221714466146999887962045554316386945933181388402407662637700943236920392865605049385167199893478236038994256984248716963915176049468374503838911089570144901903169092632746849821544603388806172489370912679410695012879622141643211219858389783915472464904035762641651248129478827114196768266542977557135890265682829581289822316597238016332709454019371716419702717271210895682316147007857870200737622297934791363188131331815768357548005757554120000664566095126811078192595436974013176178327757013809707097437654264693671015399857081834852776807170252944791346472902953158923951162152192347188614383193815378633909059982302601891771110676368120405478598482419965038541008215023686651066648463392353599350981334064109939208649230260896172501459983755178386751605128230237420404659565052030660760376633351840058632770303749049889957632293017846123634403161491163457584548475583361398014831809568487160652211167478425554451694067154024149527222040452149376890776296547179125521420923468320541585842519734510129338497518770735347587845470150574921126346396044552768921946500325879821996264079762105109741493667466816567739443608697150419483366043296855859019598215444715149463624785931385519026092347530628007080848422019232417308560597598562403503148771441952029405491925436522519952339646760612569672993259067721135491618511386001699379754503346922426074649734342451404362830935069719447106234663843300885036117003451966172055919412841424694015524165270482236712517813180118843391524983541477743345369261247583417696369553474848371484847331803662767273581674633312185958423966157425774111462960446478202462269526984897266890897195401228687416178476043101992426094668442212731600422515095287341836343308194138194776905208522159383538112682573515321285769230649010284535694233960080707599503543043196822177288584363826021937139509820385609521821802668741261610726044116022687390868583296377800361998038589926117665611988784893150295375027707206730389547097258678799809044802026594025963010292407049571999679988257403177493049545923154684038551362021302359557310325623029409598265635523967688457263509903725732886253842571272388125559794066823080870028484759815688047757741082642540469883748065719815555478477225758224042501268683848540982394148828682311477324652270588790374021974852696669472716178382618720672067667737391261751239620332786068814006852812293520702425599621848815058992198363619315617487419686609922712592611574675308983336750156509733133887698976475716392113408425353114125217201978692780653577493587385857893419811604485584322637245865602781967658714580160037891891584709292083669270336827345612628599266565688667099457940273801281242097178108420426922352362939874780056025501130387990700327864564760854004392987016679080189889857645487465553885966781934431198581007725050840160241812746586421182673658649146420206155978444485672997502954881287559738461363633100439390942929253166228927988828423068577284241167011517935132764004441488287267104344186778620991780087817779693318539619106621000753655379972568285480526323437593558441879569106263414510102657315758205221344906642960790489517146395754904511191978618886467196657242758123904282349091402573839496425569683570794715562674294147045311581670675159194446270784946702956009711196139914793308803920101271500973120142532507527324565602961542883802697696959389540071426132477569500403826074261861398488517900878414286509441854221986842591891198591153136210491184634536447712388754501582800982930087491375422305181446337904024201658062710298849638210438175780011587027661585831100206283281672781746121104510254908607324619071321806557301745879969723183820085029823805466381410373171743174691025600906874075363411998434222234485046435333763960072433126392726457310137666930468528686758405547525148611992810160866048997788442348151205444686904919039660672296059756816846720189312687521481795917101720226707809182938562834878649360985714298221591735131609856598591083425013507737740815455763358327127884835241053117552433518308686574384331535830021346413566775448653152439332911687140800585471722358719770287985271178799608102406472780598839797438476518213777192531740912372137317359959447851251724096327087168399305579000807674435612448493172861238402728947240773186164720352677301820177630690181137152589465448334169661897073410174576391397272186593537949162547601259899080129504300277504785192148397823979834667470635114306870174659031047119212348125069299381196794214321553302313373187852274713196012737343779915951890461541389579086850588456190665371452846360195286513178123592934635697129101995546867553186163022785658855385756096872864079542270154406980437187247955751928626033715342643660261496467361943663006198685429006479871598358713080403534076104216402493857014873176628454597918631440439874020673360353092282120330521385032221781691076107304921502007395865633078253929101746953278010460356395139229252183945057956327089730212004833583186291530930200278780700660826617355140276754065796237948757075166918126944000889502684042623140878630028810760353164558433875675667550444598879949900866310815947758849880884113731838125816243287154889659918699182624620009688261908507225081150922997859657045236822423111479763152063484527787658117774932383151651220487827240229847431962674156525972114172821087906437438076991731545878732228053828609381028048153013120858622168890217942790944304098744760667178805531434530302841429868194513149050667991681186744420078589637512601922977474800934225922805947067471019409594093335598605255362140860419970840407740383424952776856674678942139134096993149635184061369477285359105779163377030095963649112413431935889317816224330985772485633169637138036181198777959741991257355353057751635994528534340261727621512705556994788344372405497796517265930262235340887465250565926454368016553479005828589521402539995088371513337101981745793680703624521770834996161356703614756788096145656241466315956087275766688171803142071892444392573550614850675471953133999637681320251247542196204510436852677931138476890214805952776620811447984965887024779148405154389080881352516088106700197707530158315069368442299398819226330138578131278503112325715986025789066347178324674603726010940880219823782641541149021694397285464210937966161744037273371977417100256727624087540807465110402344661636829174831741349746016512346265943554604068834569455187375752088358045834647275846998271830647636726525799734508498968554112722789726859156772903090741844007771399989874876509893600272588967838834712896851705899680954951525188349960248563647744145124721838628512576375021909390058612124021019846729377506563710681302253651142060558175573254184605089966803109135170393789006703298185577063937895163060554595395016043348195058364405898233184753191487792879148773521302581518055545440855304944354567756666493194643235319097377413583203856876729601306275635648118725206978828722967045240959571516994264737680714576705732489328647409864109845326753142327118573896426759798029056289006987862677121423985513014055518212391746881184947692082540351608268741176687776600915396239811546748345148152046868424105794837756308293217358424801325043762676718286669879767354084766240527820684457936231318592457300882295798316306912545620156299568676346152596325041976258025970498281709394005744563827171272592312945572224959249613997323191574763102680319465651440886041340677846876679351543318799304770058618289115691028343564046068472041353447495504980781028465909618497447504910214893418990096160207063287840374062898959015970177683926368459489211340827507770246935394554119025524454405060676341009085930348241321581758200617225128115750444123759894374342774095558270686088583139565250423932230703941695647298088372639006181093396968081193519639305246917822554815631647622722929945169630410453606945845855219616348335337982334274675441243306224580150516371004191817523504819640302653496193689775025398226685996511447185171648296868283102956024117660972194087855960825608101617359451752580632691566973344563071568106812283312689778781560456803197509283742151106455454501911809465575444514998774537926447252609026216636549830602743685150418603556273384127728061603181564852562305019407248144112872808209037397733368338069942877668653314395966729215526949650145906692210354035887438322940098614473440073863294387603008093472848705786054715974086572776040447922198896041956269904950899458632494217099902302258373498925440051202733361089040295863330575995868542278701767540435742263373164312458019688494400752285501609533765414709636524768011052717903915399545676391635421984711901852372970537283379709207749212051601150405885859832436363667770007877385997409387137337009922937897982544295565158445297139891179622419011194702121220122595426573012992621540545008852211442257157554059607928323536587120423634972327430858527329325870221467670701046557420097814945954886984978153774030274429275731193798852224061585739363911182834865073805109465808487368743220722480207744937888378705101955167463404241148836734731306097127723388582104574903298036349545776606578714010348771050020327912906550355284373998164629737546785884657245945895413763066784365293610940230119127766481202545882385225258297789487552198723915715723009414576073989490878415138342811222025773304893845509887188223514282530874758160901436620531246806929695010248122373681490965884111676544431750393214151004070668239949599657182348695707841888974695730148832919664536081198527219078266166728792709308169479219661091179713270973880562676633050906122973768816968047961040926081726662555772080233287125176348676783752794799033129334705682914745337277629863551147019407568407703815224193043440033387843516841319678723748565669396652263572211697377714050508221077699477910641121750527640270261402018029897138525922602213194732336963723910966763084245289809246934703320909715726497457800292215457991739348987792177547902168941363005226749081497756124485881806754869728049529376688192691727784269725138775989547687688548460954054576505096792096875301178989607469718624702584424891057968122438799782192874547561533409282116461820710220015127930024862446442319493524752188360317099897754680943283347140527512092388302822563284934269811828876540674353999117995937605836600329751571409324658100938081963313273085785322865912063899618241157468971183400377878361594416780847066694393333263192661879771940489561949327992727927639845548357594131821836331528605168767420494067775417775960095233011316724548557251459690272143291095171660826300440867544465920120462324195465358167298740466893891964378384683314169606509026532234395866624506684868990309273454754497102057562659110876827249551384962929575197389264767718836975190781440129575622132414839011285870675724980695197808910000065715030241250178660274451257261868464116358186323018842929098196636723261051350126277206257318033613652598153836659413161853881183141706453614228008046644992988821894364156811964841090771090638660153761031793359896724548858372121053131822610580762670679056366529038935719931349852115438578423481534397674258295823718625538546992422714825986718198511640788077484982665208504608800842910318859528270761609681472642204011017506329079322701096680650681035349066339424072938309394918619709185748678544471994389990528565250012697664275555901603629252779316865407925807329070021844129160823168345839764004955571455780829005223385563709757645372994429748111713875115237243988083578335662278996175135911043686971270113258369582732394373392000364734467642008304228448877839686352947127938490077107001253518497028983855834780854915336958091097306902672200427763175372553014152548693671061398967286630632138089767510308049182474106893772687184258252003720035999394508710386085801993999252036226354779136075265929151855641493999694773642945106317041838778672360306223665744567865796871234238782170934558922691689077318586908121273015521186423196304211691487072755031431052958591367027236765596242834054999925787120304563183061586157651005886700191585094233967544076557489037147770421442790154831144555543643433805994486414340701513471952617415875388035701469084157288278703529943439015152670502917043034910206026753121371756373036928156500908649128261447945339701710277321533494463427698190729674334214951102500247695163870560446611343090452430021883527211927653166465923125891133559325098301076275330820482024941378435222187167062852924445410442442611320793072326913783713960776656785448445430775625042565125092265850887098533049525314847947883760105696973600827869213751725434195008939843809343630064060083888527284020790384747352768972838464070029155168424625320103950980156713325321988755231029247441717042840293339332581413731769244718992258689160335492818617980685603302454691707626772532738756134538875292052644674884334421850546694304493504245437508379301151398757354114886398316630357300129171390123718223215729212769359189126694865073457397014809435819106229706154343249821216763817885625339943553351787161845182552222713307419252886789765189461462756849162609582157363797071465699913232747662863007511750511561244986913450858658775591223638413772895127518960267463006104729919109548913833053866633447973149331942893820212888621668818197661784162598582340404904863503043174862929303665934130465811131446078493966982502598181833813434221024276041923754651328050731557865183616132349903569117343226660369795749507268390514591325992311979659815326447348369192355241024002785082502103306173362236281510044275677504931483026553755935803823790180274286828124292012201235194806864932091539975909469324697551607694593187637926755653164864498006542161243269417501979529434641350273086929542907895843949455217626386962902085704317290269791838352631293338133599528694302799916600625716899030824471689697670950003543610753436666447799769839071056940989666355148892850827425240226809059971679219981833159542613598752704574651399506997371513694158778775114832933801316588850858506677865793028368187676233820277689982729591746315757760134441714971721008533000180895455545866873704118176563704448106446176952556730470943084477285504340526257622362422217490205623786910121923027782865554638190177710707645473015642462562909775142985151081971746051415486624142728182132194346974220978196986897022166691134887324319503563734827155150981094430450240336548073588471976727421174534066575563515304321901456768741756588698903294981435992175368920376453688188619440627450055174969909743864622081008132177084996121520032982689171919986677238205531764706502928213672528669330007379751572662454185554454978195326872147688438221214302938363559573211995041395100597722722414307706062951793965813982774537050038408709445768965913988679194562542457760970190732280821259166140139419931667111216046765721665138750335457441105475647806713818313267867366326387766067110552916135354658082648981760784006828711808484465919842475784803312380706187376779377511645141967708102163106224640101122356874486864258115905267800263162996188325356133879391792901125269575128857299141691185789692578572298749955090840020883504466365256368268457026005381104654975031476194229690494068816615432214578396993442118379278107577951889534380838545732564300832535097081737625793200644624476128494956909934467951065636857743127477825619980067063758855978043177550352455664687752115883649014881795944613278405644858948975168351486777765379778971653428645993778214501775990536895668836134862548619902717491446344282067472149727554488460950971758771333723877584416294700891422140095035842912619457558429762372583464627729914439033076537953653480567304145034615757657717374156091218444901131299196774988802783747180647697016868583694550532184959574059497354933894127384717546509527271477530070820640463488620036916246770196068854660512066671709030756600069170688846881953032405587969647408492090337631269324979918303147640056539890553828087760274896628790394497992632052338907477274932606402481889856823289226919160639495331769196542762829009269208844516217617018730766639272306292944682472272477024009252994315526505407457202146482876249047688115590709859148692563853202346259655143996129711769723376264873101052022518638751536030396251960033283641635388312640728831388700383321693194134560916872452105533630656728451929510411941663382527299401364506143098259660740031093268432612933550699901210704861133502889147419072646122077280294446345415947165878242296439891670451584935046478515741724584361288214493223789189443466100733869793782822201698906520663387153864080071613211190416912653165587269644723860938535896709057231859656941954553548236461777419859349414768832726125412760488592115001745746112198801058969063771869779680325783896350561062518806802243784098002568421693099656224680606441771568103257493751381357514726664641573067033680601578299330787695238558799888627404616027640555530255201693194167733513287695443791132402719751565794165802800536240166270811848664520555853839608198261659711584539536521547748159867423067631955819527781938084505104451772270745054113341693455828091105168569812103418517948782626719034543156829579810496992065038340037361438837314853707570745688296048145506829822505446204407094137437797400212700701106713479072015285311363804360204221301037827345547881373874640793054397784423957453968782542397796366228347033054911306196428321154763467120030765861648139297830001635855678149732589613396470091547803704666143782468558207609730216510803398637905846313059327329680932087120139343901008888291407181246305184100029845865128094596524162290409832875620475606321676039988600372976929854595062985184860605685242297333603585683047705907874930838875131817521347646504877514723547060928443697780767215874741427845781994984350112637193492373242286494712027088613703341555920775854779863195223971200128956412785446484362232365601870516362850115053243752162064107857527399304960466161645223529791637700818230677449647131186928887601680711060807440650822214730907251881443322187971804193342399780306676258650574635629476523065479299554687818142508138788951690173928976210372804662768403877629494266332913211380571643203556603978780207597112050619167136558543383618400119859218351133270968269406707951280358126111740121692307435617282154860813893996937591473971387068691234731784288063699965534158064764102040605330939502352449489302861928235658188589718379027314971329009169729795376492926804975281569288000943719967612103609213183330485498007309031129330576829115011885840920296142148134168567028834633009814789610833615598845740943324980708237294827891003732692507656122284347494100195594240454441544831820343495930745820025048232776406699299084074389015345321600172865177019711177840325598926309160281751321638667925743944788219731923228273185110535913390912640353433940013320984077455392117446611703503316135143635055122988815958426753204698520234718984212357318650889747651892020151701266934305095383452342640440674011156632628431926550705034974780767778395002275196223991243128772971610559196100879066188503571830776347212408520309708410297388999408854947992758809193891229763630302556110701354797333963132917245521678039491794610265470006920266173093559175252570326613177744323519442806738449051380977953035575500394249996195983638427085800623118954182164794207119267466895555638331029290663315040511829756698890167563524385463438845199844812515211433278778900116779530417635211189590089667418752255289046378008028935851671170412281658873563487355027423147702952462166327396449888072835339462429029821057577310082146624593526388008047015330138506322866684674355622317553662167280350080575517413101405451696291581147094132153660418174643255404984452457232939493071189149549027054934900755925000701196879377749006932785615327335178565166200612365241364159472028147367450603568024666853614176332239601724566236303776065817583125429825667258685597744398895302520284627363321969758232738266181187266894693788877908008006125590538909554664941324174834529299816490981749337591114403235821161209055469028999078222305518522917275963278677735209553526361899454986602678165286579720495281085597081951982231847723183745477681382364060256289797850238358820497273140515936819531870719401479771821117178960127353788801546942710880671580435744494575660865050546923560659395909131288711908942925244289259706996669820867052849826423973287814694674999553502994491248172004524028347534963898340069454438439560067652138117551179581628575691889832828083309303995861608879885215258319853530766793098740816272216444282862132812374972451554392045580744371969796126701594478542683075133699503487945750814739430115492992295122124015722261082017700734847521686596415518380348281311563622131863420789719049684297540936424117542719532184977024840223573319977759094813248165073255611878603979253300785468504062010527755909458900769491790281769681673905305457869225549862422961885484627441502126929869022577633035401373976979844060920753518478601435562482066141797671542106459898315389155380104855775325516616701943033736788627391688601666059834382165763818965532643396626301637146356141396721480796113421691075556393588612851694750950264684167004539214978489000112375816384940712208861755068119304184103225019078413531897922465946378846117789804189900696402308844363290123603142917596263463652435827894586578199704592719147123971742644452610470890811664518815138244144072861934522950729091941801746301235764081856321904817488449925249817145057448609593535505445098280517675590467260098521048640047949621446565545257957899067378677491209867261864914513045259483989181222233740350580537096187584750309044616331451977687104959231533345462895536056880636442584144193253848475727236334703163811766951515506555063623834759837493932632300668457158096940286485140195938092302096299756949576245357053202867795618269261714015078420669437549378377597973629955525167712790948073396005554680689816385244822911900565803227812483979203340063688631644841242853859772408192158450680191804521533946334441000279882107681794120124749309980287446037766467818555790032170122246412843931332544815644650804694867876168482564654110719654277896456844476050680619796586438388713839074189332151821701941678727915905062940240140388289511657300417819049777991409084093358413929107372930181101031609576605020322294943760551439879857425846077389584981883993391403448892882297738316390088063212618223704531235602305800051098376064922446353626784001573075449504048120624510895161740833822220153993354459446537879713041123193322694611777389496184750681962724142237248367503836047378887124999901896568799456770256930723370626170132247629048067418010102567831772995861570862795900582509328239951855402659195742208790186948344329959957136762643003972955239038664657297172508645074702699421954486951362830007737424232815536180781915020137391749345455502997173811133639673203076437627839001808012388354792866578715891927149164875898564364804279045965483070801002542562166680831452265891802480547486360215452401225724582074582678023684621892177029655890719030241820300571113166218564452375068907987670001497420563597230211483724028475301983848493171357872225375962366062241474683906810967824319917559195020804340761156302840470463023836114927295111354060644171280184024394840012179186677259349841510681605335278970556302539134980614257801874162780801169242095386789423268271317013793655443345758002173139717977466659496811075277938571242410054925490770383425206878007521409131993777040113678243482486467398564085099666287556802603010931239251475805494100162129884841812003626093596206929283218580301212471488445834757218246386107883085867693460130390170491357612332337743514864431943554027944504133308473401920011105262240494122825041576550561043831515764916002549557542201006358797073404486375330253682296210067340893572700424954503018680311382539946688944764942894489923739813155951568840350514781769953945898490000483556796506292175256005251968860277428095416159637008653180692401885909609810129177507416833030425514896865671534899274470568744747278913338180115286697934705419140102246075300407701715794348809205383580804933916036025902666529617290689564247884155652501949133191900833909331048236479774361545781207690314067059207261410135097953683260657896010423535957984335339891716176721948409615132835126977244305203278178057870970039668984861232954156115509592054337449693423278528842867546014564497622341388747089596406480956822766416493849937128509712825217162939803517610013676713541951144364302342898115796047086858519280132803215871617800074754862223954751397208935649435271455029859735877456134284793386646757721152993115826368955195029119737299158525958727393613545737431913539468558404019060978608338937585212226821043926949146419465528987244733536691249109857599940685036023178181499925800679221416573329899243991023549301699588646454201074618628082407669329949602588702527932937296411893254842388051277655532647537457354343945892981509496471382639353616937331596036449461899766594273653291593777547909928459102953836063824465866346622934040690618589150713476712332332419430470314715988637977326750772874347106770521683011936819081846186319579109926803628388143062524538021654663804631001036125479759330920175019574992603086497321258224037875656404928128047758443959858792513983444906640092382820794047602027261547986424047887784192605314381054430286904224125510172768422165801802979237904210697048666852087986142479244069228376975178628100147280802641727475928280900578310046580110971992721042469715700651795490136050587485607900153790902394422443569596954518344987703142737343561095639666776033783761957245703020332011861714233040078509695662157991553000450029896949871211636313010000195756880924928192961667897102404605892836071428056397159898872245742521329776596516585951216003915514373652267678305213355685695634809221014615953001300570029576541292625536051924959399885464469402711600791261313829719321315396183182910345958385719027662719047406350576838716664193068957978613060540747155565906393588718763921228775173079776368425613449035898467843021587064542362652479321516519049629162973527476449242532694174646913721578531437000083988242314356020970746742061869551261546005273459126885889707226171873716959602286835430289992246885249274163587362078929678614126919964402601598158667682904701972626218654535872085296760715141586118778967388093541661238260249785268489444533926808030256700424981384939532954843607354979824401119791121725814428405040480194277552417559260062763099036979861621784185729461088767905224912804862469866536189712270639281254839039283137732275241701159422003089665878436681395093615708097291283688344511795488579291593913285634904488389820155239896247011296225019742173222270852207970533330956389155251945278228130512633557842712547524947840518654825121310379207195829886449913101523770537559063441292204853550681025078017752167503798561537419879362877024348521947087972325733598638771782199115938360180661365350434401774213926817807633607890604535129587184816189205257866455077534493925209593640195635247614439920328750058379371821506279663115656621349723253472384599370102633906002621202126355636367107856422634324916852130293857435255011672305963768258432755700251493274622382968566933800868103902822000953113478487052009146016443586476889105500445504978847105426540590956012990554170349188692369730563915409394409454852528175807364133315874999276090504741804796513618160165447980281334132999013635568264639603753580050590179578618294137365509415895394903828849438430504994722926633686853120982755477466856789798891491325237979321714693036686579075483447242934814032200333218397474651930830813041562803119118068650845021242153851733418104147813465914688085386346558731529731861718156130355537315212964068044545165372372563924900150414629061839569083552525276286318324338986083767329986610293651784559654230238032363141920052190189708021427603111323625876399395080737285332030670478977679817274843323772447037095972880371810906417300350533313951261329412256131820855899247312847409923877728059911918602795487884300384098785988119174706032744742820445338810840552764858868655926395167676787450171580603993419729326446624569509448632269064471219965575363874746694315705480632126823289129129433710907818934498180555651494081287427992593695535996809751996989520754489040869494707389771528108804381908003728425449232620560861217895001178877731830002574648260647318854684127730316768923335665145130272703734512369117578308086289599519874204377815194406211671749776714781915025951267633739942355503908235028617560436410290198067737484646795582446812915216850626201454954036883821167534686886795161342586252939483848075074383364502513686033901074881791226380643481564840984537424780375539529345041141687200985947350382644236106435492081860158557976001531709734159167296678869147706647705658014243472449985600576297875132722975077060643592690580573845442142651809102096554049261550933530112196556081767618661515782758039216575740905675985992523043884209542251208894758141489933684276323904646253693011910467066271752285309293772731404254861768893243340317743421689280760767030413677941472381940706001392608372319406675836609002876942175249932464787410501933202850058772500861980165236466595961813620745278005992665290339174044559390160680511588825082787722991027940440463742338664192732756829895388561938963018319774470308300735789201359663262904739385246948057688587738357773463064438816175390857434705982685068631385786318946698801147596357118667324918192285436175657045504159528054681211752855668838149863027251765409302688364587857483315850840490561820407884821343243843893990086094088966841690158111249219317914912850307472638158624461027149111565198105216769250789817138449935037644067101467043818749906440876597585495301386672421450594114634262267608576342626792481224193192077063139057946316673001901859962609226532228057411896869689890133815831741278959634076521180788864280375029970289850978054284322604567061642773948543312546879120987068008304763898758569853982407228415584904127820976799099486794029822239601047368894469431318122206201281044770976420856866241478756754123341526327493062868254344152489234664394485584092678088032155772658977191057965254889608503359477817451250845948403113182125302292971400749345646483746490569688374831581799190046638462147588197485843787556694564707308338285066475100341138661417545492863765077339938368624850690220626637447697357265533617695352821141559189438991928220533768725193900840541445943776747310280317247995520957882372377619950959064257038727258287659092135593363031206382506307614249513626650854904149956561644793415703045850043339965882580033411819206076093066474179917084359933679853005634853248914372294758902124976219776308524574954176721787862819506869284147221916992994762916520911334770827482969004644815302178953986909301913542188869793379645344206800532175343510118621485733047757723065386846903658182619284178830156211973023292512345649289604750317561538387968798934415588408929329736925200794445651907181464586255257322798492666774195842599554191926525522771572213682091064972025623709842764457900863637396267765122156454557749843816033930416964688962224392632028755905458310090777398180664675530202071029119408180877987451292950724972567273595000559827561612998520577946274538592810459231586866557577750167443977486158089049040385744774831589048968162645533696478358906777358565124023045380754407379344929012036915644930399911128708786599584576281552976569941682264590823213972203281129322667448391602719519465595995215118288196151358254079713208463475536899225971812249795441081657006708586202052816413067147280681899296398797822616259719948247478471701589410554252030179940507463552643449775093842639345988218930479602705804619694310554638525344933048768157535672738779345769947816397677010349934965788226739437081096583638729577041027258689627323532224683324702736908375604256177876246865231857518111565681440430819136720970417646010422818831182795515169201772617838999144658386252865278303362803797255163948295468659143500174814342843204797206715539568617661726863680324255022809097841454246065536765834657937086624069702041234415487504314886361256186960131421774008645313295230366467392583977175221267303547684572757305661504113282795341545241073797162871079019721327697535920680898696751476853634376447023026628381772663735665051501272688062922951755582198478328126419310593366775279291506363979050136251038549881171326714872640785495423022085060489150129580885438878463147888805868421463035028264592329409916493281722907800832018608117865129022193920849111742705698737495203156294385222941922354138605417607343375138168456777327940210913950945245977353490899019731443101588233463526833125196823644939945025676851768777818126495452106129001315712533957245518576323263887653069901039155366754192942346385243466884946199631803704864379442512226935818290798097491647551447834653814547926886666744065736846188157315199980834328143888612070589174940385222116129581538734569291200108543831843197753290138569225389783786131200932067323781642555012215684357890845095825274410382698992989759166725180014488721168819198005866605913202891889331486056555935862748142322835176338791686289574145748800777403771377582162836450209206146217108144996036389330038238438416168651384572602308335630941801413817729738138005063465555525730858108935028062357875106739971017723391033067015506460078241000315788713645481772041693903393386001608550270185884313325911127478646214424183614127523192254266165500225613641504652306927090170909203228604273253148919374520842998953210528113450517002950876996353682770740125444001608593599829661065164742166687728166948834117118361858537232916673745065646589426659120244063080442779928481873082679365885467418437569425695536910061911176282474720008298061371569384509547155640207073657772125930964933186864914238753476474944903782397116066447296491601529325146981724448898035739237531830722856068849219879980272258783232712597226839664569231118417342612265946943878843115141538785049055278844017308663583915319849401401825055927906590498299589839549487454288718956390526856646045684161113140641777567058878757408024959782092602120793007724974568673131743177890817217659828764545180592549770126510802324229670354618551333217383628325156107842181262079814742206562318249253636001901715680315023069267034283766726539025289619424376052799334882047522555905742164770342251691294919205348680416060551648218045815709155512510990356514450547950410991177785476789213391624647481416826139723635560206442990619274182774645942538951072622806686010616072240304194948595176215222619013893526110868025740745345329533124234964002137546272954247469425471822954348003760062578242914653250496776525146604408133706059946235025789362690683827933560236163462436625458345439708221147608997001235223109717536104855214531751221728019655778626720940236101767376269095484732437024848265244163801827527458581429132963066541718738469390984220241387598977715355112537139116056288075158877993335429466416896424969911158592268842152553804816758015111685749580194091275664371698829337741269520934984180090255889314852607672694085268469575193581740482703140673595608937428694563599458096063909678475213463012348311875933204465249712980369324312552713206179882850326228288823702919969930642252424887476166060457073518816892690608277134530331108303643065937261402730248772270140595549893890333110458438371163726400118314015790539022900359042757758599630780395328884009093404571894347669948164461434646488275257842454724050008400381106774191411167650465906132712408677832699051330695074192412721312778618892972933935427863172270667729038230721400038872761587094500991913670210905366586061478854358816332890095113436546882379763276973340912350989175893264231539136544444630765206394785735041715941994961687081916377986375657546693099297504191481421313975155192819117577420528958160941835320006409802050774945047843483233980896264985168577934485017239777705741055252324260795624833574743302054457044882131403176404789919769640691588705902277712888479484985501875613788697749329612029058403675062720699633930861214871966095147812243977088416957985816079457019327549034062535941280776325115927496785036285505005612197098718041308864741735459573047407089487185577692125781922007536807283263364143436032281513477836816420568220407589257343153982537540115785626035252444947329593599824939923810805430160887210237333769111885690039726712528741242884197790467526773648797158882681362066815319120861837271703283983519624424488890811599890802439884229371812354626311791110730030015326297433861233402258973308722934408688988642079213234906919048543189778084121435112068161023268806933790390570909478129261028479929883748257063247232014001642310166422703149461937616236891370791057672325637020203990503029816595257258945113478377394670765637827127566624521014927238481059106844028783428080067405232669055663866035322076908085528635619913750809469784194226404724146545787390698726564351689674320840861609421674932911752788253608680717716896933628350548613647883035939854386466616258575686715551146029982571236499786359436815479232933317976582497299990983565722945238107836371182550953392250681185060597778703506130153696085251027398790083728566645833438807667626559116357284238657316934457302234954803234775407099910517218619515280891838853401999387290710118167835739470741483416328053865936036668402898543989999673218596953983491448451096368269220204645817178606830424438118156703161066600440906251353681694780968421763797178345768461894954164243686785802084521269772756690573971870008383929125492190021979915595881758744290231735089453914447676992043192566429408725570720498251897831822101942134852430796115910969736795315223466268424605477863802836093247398102494551159249933415321169650239485417369494498775922885145038777205302955675096800227814429062491494498831678995996521511056963412261688885679046774304991306051412474936060017659010017663521723053500234006309478378951250980423571885173631784688218063725876040624021360511119299925534810216501796785636219596149966096066797353253233391208499670643271270161433421259250385160110892948215156676779994311569012611053092599554995270993175752771551645063536369084204190514090769647134201172138506037981199957348674595903391342446101440202572875592328604697793333359182614292432334646846513590093689541221620664315546789086662779967978192572008917061159099345173208893664395561424598596474361208602670446943477103162867358238630464183326396794949786138808532730396960585054201672137352913999881801702519944818330270001032922421365279906117180022357973647732368078004386245176038707402307977616833026470647697717940672532207916537889695744942252503059687948369670698697580349668002863789926905896838361616208889153763702092669916118670790164580005693923244526902310103076888628424610902270562993523115503017434613181830002930808928433016423071160489040497117184240444050533605134549384923291921660499244649060895875702270551879779523304584631373580062753631815954638573688144862609245435481492564933915937143398877784721009034631729288825748315163849490933648446440226201548075543579205812504333363859281093777191035297041645600846924347168589973957078583722614233804085782797950142247775299496174542590549972588449692485773218481573978389043284462490781036483376144748566454031338257156230103938557947125874068218588853204858123216114545367252190555437531139286194253011958515886010236294852351785011480259649071326158095835063873718205561387727784171943165704755493656775116989149242292920812582204132885843720220046335914980582259433793440851827765349480284098407496500634062274220212484067221741344161547925327894283807218813453898381431698393476397183691155177292808118624766282677132961119926956254614886247612485503389723137921790710210649530462914261609693328633415849143647415071160172888355792629300386823032041547163928248086658354547212198185835539003551979777487321508809274448883953379835266924913560345329097300931786544008926861374241466749552893518066734682850826976154818212345714903187101590115434894339984991153903503501114561157640867106946011652147924804545882210666240003781956033121407138906757767549160871030728388749016117826249371448280879728276136687732166000960136559168648369020711499497440055152302327577403823374179665333945921894264950764759501277499896031200279045026377615575090750597565910648677631439524841947949803677872983294070493057847567914936393691989428779078192238110799229785035244337813779547823191456296270162328134511425163648470831226150751132941740721896129951724866122093009383571945274797589990089348972531810542546749654563388988137350342799004599947846970558757318263532436110114262919239215661167770599496085949289507057004411618064675914089465682827991407761558771621442253612927794585032799520387708840167930878354645289558762975007336644445682510163412471711703103466474461010638674289381352066670289751404288710318942391090592521652610067566194367519463782160564765841105563655321094807193937399959929484481467494256849642720601830535639268004359181317766844166161257019188200288087745774228264109487668884885313769109505066904810269762767134511936851001155149403379645754896648874142545360181694618204631535099815650657538074247180712362864601339257520641492942787569836701054412348043357213029225335559684781909280230487251503044024937809497681589206833391194680210541202886336973156245268448857959540880494770587325333778783994065524568943677325654775985823556473519355259989109141386359496545721142809061494716330382567821012870995125855643744561503316644829525769778500334449430447119116089253613181193762555855251604852623430808242412428975212951625920381314089764424619997373270794994805108478552576459559653493769004586358927613596333068378041913777929391966694544208912760196129165739723018802977571647533331085916725217917965918221007814483760259957314848783954050137263321138080905744186920880194650001619832624314792437133539297399174477266121954582769127326078640101586500898511731538504655507046689894271048304599350562940182969924107151837469146848685754741151534711760445140693129707974152919947171142878622473456134821221959087323244450943776285917140892708476374332581702962579684872525033587110038992439014893158803282433786374753124512133427318077747293757523302077143636251196264549346545312519132283277676433944718992886417830391557222648340792099653405714207576128379662311172880825456854511643578988311638531471112761448763210745469373653378350245836096138995585270587467806479042967007625040359038013177070103576210748507709448795985425573218813768530318439765778431465630132073482432247582092171262492123468977955218837108694643236633951792201742822595647833864508210960843761521092717816271999921302721554639108163644798620848669963930284489192535320380360202355820566022514718272088951239352154473130468413703218927605921855813611376486284706864044231610473388742701605753217956477168206694326601225510884141649922707941837391957567853439596294195761935221944875347901232838700728972142259252474487278825793846970061611956740760089379117006175543876301361808561252618477685779446594650001202930280040098848514021576130091963688625689538037817173782598610102762415074443609755071985450791266580405500742500888781130294272391062397214364002483189697036700962874508344320154025254857961944432899254344549879189585062957085716255437875874360492158082694197776455478442358873428247751842098319283698535581569776371974728056879166479022653026419832685127313955103745913221934522194692793815493551178097270445109888506029664453399713037974348980926932795449038697697366715957757388495411074509284659793347407898267052170753545065454850777058989691877444496216503331701640735947540656849815838796427097283308289749750398971842773911801047457279422456782188428280929582426263743087733077904717788651158191295500077030981414532539108395813931744590847545234576298514610440849632254834508543996909766728367594467974791906625704739675533255710986780471289285235775181903726932416408843089533803582117604130072087154181112287923155426552975089413502852544473494477925661427309552353869186744262899706328280272513825121106294404448890991729730631159177702649352570464293145468091927047406987234134354395392920803610724711826692470742730970645707783595411767704908356686162549361821163729861136383919623764221590061546564545277068798427421839959187376867624516867849394117472876083560682949897193856794173516677965501103194665105115970421840409727142788410228795486240314909426061496548716575486959772045403896480429771917469396456292196344043964780737180400956256692890108308526536424064625084701990775282733530246819159446501288722590801899013597677952479273154039710343676120512840416080490434494643544877135022535612300998344634320296615830934277688759986769686204810626526552117801135563121445142938763655025718049820240600994641152177559741086474100584604617325128346480905585601536178327849905189298411157525331817027199439061671940245293960797905414193726947726651465225869223790200593456883768241275975608398199340530484556982609281559975137858592620682326373091030206009690829517610972288428389264529462687774355119841240214715563086476958309126508882995383244105730375865334133084584960824209538372702421087574834993475486148832395393498194348895286433078325152916087020074066091718395293637224005694634442413643159636477020859689388607439133281265651478984328537038527678386709113362056533106694448510544575375373974568331071795382335928947355418582597080804304504027952843786047374748889535128949218412471654567274589499060208504400092010912185864595771008067616211764535645430150734326109500177483043160433465024229574778593734919889894478290086655240965228496653594110650267455429785212001525118307000947719941655409275471161428262280661887559415818378629451666652101359849554110438101236115198390477141949296494392394536777584195444422101720014255349255649550914451778796540235492646075675766567484205327148600601810577393551435302397052288590861064697449890548991341361341562919027074949492296026441132433146550784462276565325116530908230298152833295441010868580155104947937756750102867089490447516185910591357509506812695971332357346965600222205843006951229295842330016265441730359914171414896238450429217498272941731603512573549111780488976857369991635580696144677101220288277815677193150526345340206476462912113959800565596058924734295825239470350522987120404084693579015634150771741856080917142453127274088083990316045983267253350225945249707998809103061284450476199813370590388165660425732429118576569919916717634101429868501618207173955981257792312820476881955675086340937591480819513343896464559805483266298359357554244838886767491931435371197039303841943206230000007885462527994462959408368057846085873423107738968084587020940346843501157189645701183386514130824526617212091365203914314083134433984569339678117898262375259862148723265987624761895872408509556364932722106844458324297227235978379909644443251098839552146342972900637645347918693344215827816023235898015869037652992451290885930824494242239348081198478374812481765955695084947675115727239962405133113436062592180825132800194497760232985793273564664616848268829408103056005746821348545931020190820245925781622924466925759445454785008892915540852671827834941679400917653087231931489674457911359207952403655028456038334626633951452039109406105003171771829344548505254130496987701593300531645766755233655924074280900445197760335518426688525709983300034616845861141792175114663799654759706300234721980928664713223146391627954424317415251387370863878650980728970300838647905883536391449330037404777143914264394892400753011554589334537048570806038326402435705770186728839687031216168966555369024083102091419809946758606689521709982616687791486201389264951878590006214367697258854248338189690725837448428596060351012453388153425208510733176158755330357843752828178613749730982450402458072195683172101604613389461287215808371849762097723512920741410833238414230569411849866816250207979243850366588914103779603368761582204210041567138274986441127550021293412733723853481224122173000159510320201645929870460952450273318912311394976847082826168002054328108258620107921685118923539398712154221212907429517925393383324970158925507203487616996545010345613165920999496819676896780035428684412103498600674181805989515319076740785190040030027421002096069225948099420425848188801599959099253755652977669338365796537562832996585269135900348794023057206296058886438231962470074455411937047362434664716876765623135926727310582351912977979339052574534385535092710610812869915389237894202680177503664760506155589995222370785470243580279023454804019562133471015515690783272922798873666977651658332558687728213676813021765832383735431141412825734842977249361849320762827938175176989873055583167908722719309793918910122994318266312840024660356546703138855362032173142524116156543615536276162239173576187518940883127441547481014535713340326974322655277219583543821671613992241199483405958897815298675266284266636004329573605794990528070446325324544267231243650738784006634822611486966400673421033804712848627423416195971172301937088189024927439637292969337832026527640066055204430174326213627189431317555109239399862569410958756148521887584550265968135626978249706196457613840791037650428286528141670345513408796601366022945484178982858920835754243396589327633952390454223334341045314026891398060530532280386194254363990428054242097223138372539089384017694969195880111229422988593639050198628639579074621423733918253709219564791457123818783773446628462089447987441937572150651536791475985491085372044108508655891823211203709339351427045563471445395843992875175409336979665533417132679653998522557119809741730530447664442059837723713373414144152740510434086241335629165132093081356063534919771696325051924426092081604123105532899019127974119099901823424824022124408556884235739886578672512189817956610215434239154987458342969777348900922563646897712612663257550608408167146566844412687290409808390868826303033842286760598507406302770118278171119650227197565815685519471461440326609780290198070158181356951234238230603497313120383680412717279556192800801450394765567808543816853244175672796378206311158342561107043333313509358394500705599396996397463719689789615347827066461012529273483325069184195126480170911993196168676068845315954097100951072572157616945223431591172066945338788305576160945806550158497842501272961629608402263850089915223282088348887325645307488561095199700894585640108723333311008228185793876180983260117933575389419996715812351715571504678502438990768568350664158229983672677071549418320187701233678649473724498485443127789229672199499371410645394389117254446824789492419093891109911826738845050343286145735045986244343037337725985010610766643801235775504459966765900479097337974406529977781935541674432311928695390783546179070866979094916371781456622345832074764871280899779293957598485336950343894768128828407830806411762645446723753362470831135348674909918159386184840376603716519538866449426926540779123037988676819756989348690456362555752792963759252056856789674634166159888961702137255643233398045979806977371602840166217377669344326311163543277476944698779730909418918984156533614520237377862090819727584850582466911920494590708942673662267215599052361214128490118273924126749628709806933293564079854780297465586564073253223506866826123636668630319715015447812822549819016143390136501750267633040662645222346604821660926957807143175330782991476753478446551543067609273155775353037454673092439963729475091959004538704730398407240598415954971283879285059924293380653556721638492579349837576821679548261977952252274926289040491219300079114450751638184696043858600202255911711853299798104648184226501512187997689950651806017971665679130248349072603208394812526201640948084106462835038004665856167523457105913091452385067702604568857466315283675761336959458830348910076316791619529146344806362021396579025265565681114397671227644939851713473515082791666613521716718540805259898103864567208366113241133517793807846546419916531968400382460121841855941003703727447445991134931722077459882303609353903325289612097409663228007166220552684513778548298420143753845662040554436488610647269792342239742994990064245957844984880713646091661616590138508146387415132514644511816242781288383800631505068746055023641250034993429561767144692271323208540026836615592617626788345385017359254670967877279212515752138828419508569909397841973121577807508124285679124453094027460382412639606178194540696016940594381511953781377498728034050530115811484857262164554140984951437436002575354921868784880494066566701214358491775537400952418239169388092626135658549495106044928481808501485889525337265837270775417932114087659206426274554435179876553899429217137831320003333937530217806038942080087414616088663718290167719647780490526894882059716784672389403138107244659613981419907660243750743168214087289277507351709444489015073648459791142898134196056312229574075906572285557359906744474083475713954094215814506948801453157536561207743951911737566305813912313139682812802736773292629404585945877375346421008615722915530143492167901128399400286495626045473927849973958260553923314908844582745711735412668758588709637642246076452927805033371772567246742884897712726854318387725804347663244524298572271655262542607226626333913319255296985900044559217803833394293378822159059084578441045639920634711848022077405037671346269447215896431071622980341932003433347406032815700857173674646880295555938243848682273314511541770056452091536356261559188228983166091873771701959690346793138259272740920614066751417847515441341424442766290812872691817666912617554872976279026229858739023784565896250322371616528434589194073899834554184304256461549558360786417976842752194779262203499584645640788717149211485047975243397546022219558341615222918875900963549134407053652049065069331814783785235740236928223102462126313270106136609142514029910727350542207483790574392322338814240191390265336038537660572628402866462454059127883467633191492009124552574926611249085130064190501054782437980833133015696136843400753410301107622275481906640777066562837024871288820162081099156393768273688222356412278504930089125863126930510848927899621030403550028285033684881191908323695450206221083318587252475062927928422274284937100202642200309072588287865814664686467133434164025896028705438188427680428259295478224948777225393776189865565823560293366172642474830842773365519440703423204080276558156318773049828083255082988925652635005163521468754018721294238551400103685987075054252548832310637479930318181272650011939631185650717139665940020006087926823795729230478839907812904800075466828734232107549515052259450138490112508415443494898280591803934395970034813425091907518940558461282983790444034090648708884243440900513365853843571975028719723112712662343716921814851187520392978768737506619580338210480609875592247304420923905796176360735597104099798702550024003293780408526170925831276738355794434927955124232501193626986335761816029993624656231566826997878034319229996601425116192916558795806443721726392240188877423120796942919931838587798363523319282378054222366358420088623578227441143993737438523379290648113943453917113011953271839388260756098691198895623663678117967986425708931681438965924361430135290629096283374287634019330424088368943447183992143804930755647481407655749757967193168228654920314746599556898817084527083482391020121936928166526730750337957100999049716640725710393042354478658228036237549801779198250689313470695297126536482561923914560638997269726199830388368940402946372000058986040090973864796733395476459425856127184413660585429561687003782990911277562611131296850664672069842712703080178418361263442123569494525094366737141158382262725838779293513213633565597066111110069706403633978039664955717553123301212267440455040805574337246002174926735674968595408612121658876334443592923710270870936577619614763656478312427370419435816745955877324168258906924288617215247089074399028814664912125732325375089473779971816302298717335166005839436283675727916920090388747404266940884184774965646446273369972731131886505022389835268546609138615588290578110667009479633111121035329815613636814222665461352184547213026131359850692478870927834954162523670445223660662170782123814005165198315661199771863017387815478861775625269156208280665590180256439689389665641922845266747026819993137200120964171851449577149520629922466497588309551262253048799535090548864765554929879118425981973600738723490684723756339589408340840906701628811334770802534376278313662706070574189692647141585167721697618095439978007554567535927020316253175070046152226399169054570904254994831412428852849935797071476182943450579060928374492272808598038387678396248884296627513859055408266168340702067293173282793261613854047573823552501336604670062947683272762980224386202359850066642746500975440385821134598112092450520691909445215714399651656610530801076441069218424792673593033331321040551619304926897096905504598963688430743789298645667846226694209845260816135147216026977244826870121062269945728940853668049599265274587881445477980854542223250561101246398085656187295219890979655760010509943577280943008912608177239252638637710443093418394825498928781397803890717906751267111128404172436068832720397945952755968869465001919697726910786340527840342368534820766947941985422177557887855035525293679360763321608405239914767712059932528044556416001563742868140469372635885667915880080380232533782697565059343373631276255970416349142243080520085335313429845546694953186519669258562141212193677714469198450628353554605163756751233172406422462710279773233464729718572573107276550471224029413021629339220501828795297569409287432509307617407221467315390569931734915663831379438342349399792905554667322978888123066237914551078395086832864479508165838701558861023263062084515719188808374399798683930096276084784149243129752215236204801560621425342115639422517587648508656309665028539488804561026100484146437516652160273428987708279555936467768315863720484940761859861246960867150984158533513561377028375146224593988018576636751154157040899354654331490968012509756141089537846834886254381379397952769320451199966808935668518115544901449594163685430707078175763876413953334670577803711749009309789511818709580690366271625548463910280596934929510394813126240432541029637487364472430698354060095346386824281946840950769129900383087659300154468514937648371830145250174221983833248294609815095183606328583788717986226636793219352175754356609371514867742802635327727183445965256452165096456189824554621408122888347655546554568542847074840909891099476263083056848788955641951546918006106729017899021388489150064551386741185616542152455633005400778901254573114071824237317174574051903855302314559281311097426859634814557777775948253497858471245738432459970035735842141578159575511239105064943302390042770625054052051866006675282334891123598085564870312318812455483958905144367212607907692084807829233788355429165862159342075812984374521791633582212214568607637478297550219703836882530421243643499487764991498957727797624842749517708841094532175888872888287176210468504168756402927881363093564519531320292633165484373128908036206380399044689509292793060957151307487752682743597848186604237933695165427145544212094304338275072084582260982031059176274788438622791275669706922230808864372006783923068039169158129047881593581058161658950629694697135737618309135196695953844516762054745860412449675355986129393849185529729997762977440974265782467936583444648083506678460319143386433547464301958568342645769112372780574951928166905502698498522790547638302131798256883641298964525441938809476434724844313613488290548173818817295032379830757567960453514997034264386369686472913116221762074887550375756878069692439479699741646031818822510665602065451633412934823816861131858359206417870967043016234404339866241989787166604909304601917241138458919462898985755405092807761743564378734629240525991034647361740249173794365919030308256869249446593607517481613505707656163523551718236383317261037215688091310898635057084227358138738279211339452890773369732236342079439675106970404942294651177752272526415690366566935873919655947580478936799618055134144869828120708633682030947011427894710214925908947526460384818980938176875336416170332718185575864807448130516023909590818084402884000307127145607911284181888052327942165962189752929845883866901655084268614758910578347232847816837197228192591446346662844783745715164650849846525979546116508163795055476886416411196869449486947395720022760196608525193745781237102600162977488904182627852051773851785519600113698338249537738523691167978012148555770729769248600376859795566526299965898208736415951067223332979723544733665357819466765352776592826909532554393445635291939424798291449943547297504943247758375611584195476925182591893423981047823388232493340716544625956133021503233777803770475324691407108367438583390145877389434951053731938583724152664021284364318195707030614501572514321437366712737236813312820920997568830055190262666747507899523244797752291788344818567464127721148525496490388737707124764771315062333961833248990414451572512821718344049095987187693802715713276443054829561646982065538601202768142245500767464109188666948646643005330019098876527252313369580373160385930251000632378796957929733346469906568162015929352372598228682240949266424422459270186229273072887900827982686008937406432721141717024462461199626901786829938394297334718608016995546104044222374702129490286251121544045771752586632104258644805544728247683505301505208624435730797326087080106705069729332230032732912443493158306044468519563556810269389141392583988992249266823974867547459494071460638036185951955320036664024577749282746129845608330628801525323399982215690292891938921218309002625267110283487544925577055155084587682999615532445041528314198795469191425187405191501438576891704483562135860625459188251970209981667083903839599847009701667798579019198899085620534548414806774845697480433116520021406544162171691659087825631872701100980180934029582627172774401847541692420488608366012930678907442476179940242515017046059299043459585928582876095729437588500844552983999399709924066629314467060621745599760016805154144172811255491260385023358727795414558063965723989573456196736590742948603791893296416027601572286480691028614290019354986132111648949891501283249509824468785954162098164228712793230461535894237510873984221378170032434693721508451474272243842338313664466991019934077400418280290500954888607169556262167785221669432708792976595454645307263691855774886700003452064635774724696035316940613132549838548332673366084723347800467903128661067444728274324927424875303258282244125195726778015599057815151480102129614135863059783864713067130196007077016974239427136485809474897540629464486928734955402295661248842387120915393592179033382120634905440745271285962369605619547116615558812395040309979035484429020842858482099981789119083827432280791868000043066132362967732390554293928568656512250094260925952248024183081031227049174833052098618515882889547463956259954586683869217029152219101945859548347529711814432935829875906035700422366704431233364179876639650019105608124591924013794610191073090500912008185982633008328743967399317832510614271515044908540663640849195031488340528728632378747665717398914661439040331757988071603064316942208188975908676426516812711418988462382430143226373510261961645773208380972665254881758656618604308828939807072826729516781276451602157965739404264649183952671113446049494618870900105790813309355640746014224865067061529258068703815112747584393226478505234276048390985641349231978356017966694033991173200432188914235033515423303200067887256621438811244907780670883706457412588955887003240312120959286008678912238546793306586192535210918710455965912053907201981646685343573667043161838884957874588706224817026475714525386626459516044656484156438865501997542234141451639615812280341496913252532421929557884137648337097613898478437890732598290576703654947682923745957331483879561705801735476565957922963337841287049371239803160900370884935084183308408773630298291374545960805884184036879826803149391679447471929120404437819077054707863156689271037661234452289906494290280256133406849442634961672315527628433376158134152775729589052019558254738351877979608718444232578707520943839479652068868009981167589234746087744760602284915298961892500529311829257554733356797044680345883598334780460136037268269675396381853282980988165231982964677868871435065857797064743760736178895240022708407291720657266114338609678945964432057512483973875493992963630540208380685850882614993435626968440953687350344469510990897090916621132290678108996589562065126408314855155349891552574967948641541300360425485801591866545087643029732278867292937746793839622075561526245867555456400509701832515521067080719401731486535722491388066348116847631369231491275850710945045890769996485535062333063655451011134315905566123538135862588215644764893577680233835543496467422114097414441551937289925000022804949476013485644815425595460551798043459844850560869988101753263424985271530050777972036656553475460586790651669130263939829473193442231731895163414305042613630184741119891624724539017510631820432238960985421615561713181930562674605077248773578009716221322057040890761214418732286888626516294259816249358267580464925772396357149067843592898934541665407657412259339023413348011573176329853576415751343436098670560566142151238110613024613819139321635070437726962286576051763917840702023840417200414136329729191849497252497174508810160719963269566151703370218510862729597902298456788293927607326785024127641166064913194601229555626166229908515015368240606350962871419667825363851618361513895084059344631874420303432533328755018496906393982268081059599775243129492934193188292683544726884115357161305607230836240404820317203411729377090005817144168598039852660976001678623310412349054579447151183813730473870720510826503383076352790494578592221926383681165701975645409848716690811371858163243095810860241081568251660473082072785913061802302427508812462385757800357826626251753774978747330818333079217577340306493905181775274392095579536885271144297136531258844604273911639708228419565130959204612436105596340111335815883797031297853780904659151345573565539411364788192659132496293230025441781265418102063063009531864342733512196054381536903630846093280834829965102921512353765909771881211180565419111611987535621330889345642927805769670786505369339330840543840456722607586272002247772611502643110404998088438391802232141531902485465833231810391449383501355837313998066931816674222890896662723149789634753934704775445552300276498146720906429934397597787955601365135614884288549755716865831415216727696039603746543908040390514871634340884638493876687631408971511450457044974700267514510850564811263919707033810876935090607150958724678361306107978777377353158043089123066855995331284232885656887376475929187100381022830506710438668206731520230367072636307398982514094585216727792465656849074391191028073809941751969313308607639151421538551320119746566660806917816378277401189076021494657274412191332258097430208833431552024263743131363111773933158304275454910424280175170547116842152156369278604841618321044965337431651197477394541260452262390475558982686709707111033353693842034424616639664945109488281092351731975445734939642036435139655770854483219304992793010258591320988244915630204342137607977295487975722509817558777614320003904428691460655516355867918307614770129473783001626755516364233108188305453927737293323733326757066728194052241445373258193720845759426474210893050720608692026996646247084376776886700051233856915913252426840234214749170962057492297003128573042926063755377113422502161110384617411650664412603245236456517448816707468579731394413891069006896621761637148926834272269680306039093646169824595788903947726362285643631489663443094076624109851867302222485450930763723996165979784346954605676193567484780469443728741033193472419516853450242485007528218705482518228806128086495000459240832677278769049191862561578116622112835762881348307322194664644030193189386470937150628338655042441077541270995915188189354445786716871051602475075008936033941922347984846849244986348114109808242855898970795478803546495523596935933732079877455157235828551213796391071593911149426985811420378330467410941018917637191001580303679036710778928569416991601276322701099659014272688935796257551206551971955248649387619008817398188690232024271026441590829233181617754089065055052541194686932679356904049004421114355278897865563732792090697348986072096747029432317269059732315161226420713702478997317796731272937336460589797684760645959420329876822483950214187672889880335902890301794659410637825282586551749522572455058424343654295771874549736071121537899547672703063295289499434088028345954671747985580217676726386004031043188689337871974831224174430591855961104480767970145485395592236539422414041318778737654590268967354989999303813865658389171042071920696113467729695762245226750488895302380550850659163646798509173557185157180061540953606293315632224404322720616849893458025554463224484121284271733866008237354280620666400927642139538559047863614089501366507034241570342254611643848423392182383890805727805154647854126754175579407168403484759973013127715395274391603467311704732249990446905018845287319343306222989229686380929378515423759143540363766959049802570607171872730104715516056238919012578080203847998173580560084505435368545679878524311347942046748977271449535528529142267941311748609130303864136399020943426973524393817312531255585777356522320410575656048672483496971183615243642430362253991389947646372582003412052170717492576759907697493850183542184158846361941972784041895459352731102418860157780286828508999403197270495294599805456502867145023133675194797049273028187344000916527880088865473581092317533683792964448215359970650113833253481361841094824999635418465170977869311801672271085805381347433207299269835987986289192764435147411476597417536604915255740066055846045512275723397980869106129328638727058617108886073474021735801718915013828516368497941740828798535938152846646082028470612899365312968777625548733403923493056512804972114190434441301493652619102416130207023121812302298180944061091266394780453815013940685254277266365594387359816464854110735011029668584925888658224662915370161747167004212393902826172687727465702033428925756818567256812955057832366193794791181976074215313567251895249545512698620607362453529785327317722707708835794048165863526526716061430294735189619268747913052350413263079760860940686316349403688049350719891868445565082251831316238905899198388150464190175162228713970950190351200051730828604168958367157158933120945898855263691641595441836358558125898343891553082028854114180595480847141880109633886686649751046421594795422715725397015848785110019441659157961817495699741597537917437298893386321868919019679463178831028205027276911803964593760901034505846212915699915766044384469014506811979522196511534998801125737358832890376739178731420598094921916058277350868046158770117751965868275939464312034329910210178067361682531570388558265564295426519459122086846045179459081176635786059801601830193295066317685945046244027201208866047871281338813829332365007452774903492915623860825585986738254679831429394500887222638078028979732954765927973703209291830554506263369425287406151061542435745590001223197931765450446700518826626130720535191744146615831661290297042373452207707608030621382109090050022857897353314315620850316885487697603576512172407147150758786293484320198604837994899783815811654747487462698735630066671728025986575727212220037037963373554306288274095885922769621372637908919447864833563224433078151350453281453195242486107745680127083762833997920478406934957020177021952265834517277885756319644701935800463832101576893950955194142310930944555403870579971843166840427446256721377459535867423256844832230651715834813770727619976756470803073862858931423474466627368414880390707349484741942714359284336863186918611155545018842145454658688613423269694154364901645944143296988710532472134380683769759081204023640463126891699470811105513234830990952688478423564087761100238258966132979962100040703295383337882654187743070635128711755452590378422380106798480346905240711400613016114999039553008089078690098591487831185732255680869527130525602185885537432347452985474679127021687508059385376290091218431991437746630228492105582940679701416813782791566706795731054393760276099160963566483795695322054590593267837616242042053707965722241003873283041461634034915216657480685228161992866246882539153901702433360232207991857878258232688996585188530453634585437358542630478444364200627279259764279163085571586091436113256985824477619458641013513953109763848750947433063196153253940641937323650311593097121326929771903556922561813757007233870046124499104154807294796624430382545433837394091080645625420769503924388431577256258538601627371556573601814500720351804848494909842011697347853407912551341225408197418618741282342425299513643220654857071826221932983146956707738065523065219526603728736763021074361371770236849809666457389643563230251458267154736521947915901650206775485860944342225022347326749343290623069697660660334753759424082529289627351934204701297595536795279773577998260748255923160391243908466027387016926328896491770939812522246669529488182044772453575234240209055900364843116555093332979946213978259552524299378452515971365486290375465748418756145984689167511551284089587298217287781854420930174723050770603656201239389904415985030758985547085051440383887243042225737892588800592378404232382788444376061099686656245215584324064554999749172344464438703864570787442821377440754828401284864748261742707832480795696865946135231574826237227292246156332639788536401384112115567521461728998152022576480347730084779469388619521480534895055255639571944148747696365090246913640268346465041808829017808011752480754807169582443768905548375577184446967478378379470535300205309665355064584324294546873418210626419497757927673650717041159603232869107402619571613536009025048930924816980788434046556646639643517942019283398975353179241203870025802978262381656331463796087621846063786837594699215513046090614697584931151398814628955308168901032397235720103781014394347244361109367312440342634945481808294594426065649576311010662796513553114771892372186147254792524839032055116767334528730320097794204673214906936647168438815096713319783490553409581094339192065874754296638471376086357474813816465210828034136744812359251540832794991301440127646583600386595507612717177494149131042757839859898961699247039495831588504395724408330553288631241068970791151245002765723621206379191640236651112123961290158264853186266492314400470393456109835324333347758923380676425347720421892131858670295434906168824397953241653818906263254305044679867788156766637453881588415363025389753914460418450046815905306848023706394183962250821510180374056097380314498930918864946467453421092501927394781046087055552738689824271134376911531156098101573377163557277213718526346327575393793359769223754530805510579034697778522264377946335888513470747071399327096493387251736983611307030050177800742703008849281880250960985297628448416221459183920301622544127937825914092361763948347516141257322060291854285241930478278114806930169636666773019134144773891863699977509562264311670186019257750879557024283088870370687370288962897700341283686665743048041644336462894681008161243662757342875798074319932307527484180723799305919155303427741641482650025408232483496242569463133386211950090225858292904057609149000677875538507116887152268165157321006695354311724464392029955396271085304879776427472545831133860174980342453434596753673507033680357520288749714509855045249314690736342259132765235207152578209496326738181322879647033158985058773066557119935010870943715539848434593731533483103941651693748888921538335147685523175048398850308752156124174749304050660553064259748952199887730026914154894411338954326176386390598833508220977542000015063680643821075143139963900395652709629721503224597907018859446354157554857301791359713987274935724421207418095078386531370882014865767853854742604374536080875929201585052847254779866532198141513765504580431475656393599059315049575008818438619175244434777675063111116380770594227408116321346337462250504806738264327224418074635368838705918273266088705520269667344984947498143347525886265999717469055378368643196397422917598093032370371561424291393359687382321729285937055958690264156322710066741992141006222620250146165056911647496031808751004817521265406753829136702551024319661033251945158863021720847342829479246550637688991983886706988380461574676562518666628966968403345721999003999337153642914763903477932984052657786907936960298539714558890659033061586686406964216800571376409032595979376607219658112421106240477095220745794495482464960930685986916338461716934231378416245355878111011254507801289134553353333972106102084721904876224233229613497646650007282065335591080400811966507439208783233338000528285773121654640719250509962592612858809750710887746715479319732922984739806849094948847877755840516388413794958630155842446277881822194804034353051594638738419593034794839649030287314695176712753323527159381323729037492039571699222184481457844663425848046590481951187775348991808720886423758582287834870198635533030562066712096187859531743010081339180652424337439748256626542219901630824070290430861116948834996735647401315741975441110608696858241523094861617271609649958496143185209021997437944930064038109415428063895920342858582707400364270333747626260588439587004623450066436933394343465170416632485846455139241338657692212861010432207147272919477487432087847380604540874832847053537827061301442945000113987669348776180199784489245496627990774160434499691064571435766686361548706984290735131659650157579001881707128468392342003884284642844923638739325812881777500672010014595133532291949946391591452435349320391418920012821030966404835604423244312154576798673861469823354428103615184980640874654747494759653234255680502670513596027502790390930295605415118644222653051897409451737457988534360388005637236786112177518181987457103263176533078337017411254161893359865421966256562927869652082368502014632891318820162966536512822910186590852013397198434231007773411975951611439427137006873815786659994389216253148208297872439090249753042767807835283852141425704857084609436744744294070811371937648611602215086153854574026932344473780449804474838796124446625919293962236608177456216004307506387171737270333490644953416789013693622429259168709174139554778540101786641747665007646499824988954169961171046050991808047121218559206757576813023813344536986014545503932333182347385672176087714858845571288104400662661279219689619160531378294278165487746815979710777771452587161357987147786598486225318287543465843111726906293671041063031058451504588501223756331930140413620955301400857776451534299885264529152689337754908691055423789398738756255903052231907517622587934751206269191755741602507208205962045800634694692805028218210795402642104186233097152791998031334651935299296258774532401652183936474686762278634335235601628516094162328780927635488349551540083242463381208472042909336346217067503839824954291108586999734889625165725968511771724873915710849862850645754119310924643021390811314284142571766461705044293561237359494916653665204161342520801414762761945854654782470268484688105139488818134985880973898552733188191671006631243722538246584144234175608842828779032191247390274713882930752891528594125743870372835571190629453819268598166369831287992956871617678960881549516113260469061404511478810990759640083309286374450509972339911910617045840243986676971630430022460271698029192095576660782733162002262106610430822492027858396193332118862641742739559512901932603803544634863704577429511815650709615563396142711684546822866503317249757284877251022423539983208435101460586844714633251269866372110507483056745534509485856388877932638058392742270874548395088332098933376604861377931968156843676428366781998120715336641291222852018726660495780824454264008924183575220101167522445820192571302215394031096399311939208018165900327824904973484458305659444047200497326349257739337629035054086425112875039029499497776760737732475086948221423822681760501081484122046710798234054221404195640632541865361479987636430282579866452732061714189355058674478812721412824228508086102477862085840186135922308016129241203980070120802348369177673831682543510486360033420887072028615892217736116119392816795245909933096084952192444661256300958137537002083358292009974721801438775362557504639443778989242078107848970047688540015367590948601228140902736111487901437054815126745718581435129200488648494497748107562258324278248367219046819302531784379990808485111630532084551382460651576037286462371068346113710499371135157741121222905950465830521261366096932451502161677033307220648824806021350147218930944225478826050782014955207879431003621441825737441682633009277096346077756569429213318685898223560748561253006367990323593887425728933757930293389383821561646210633211470459967999600980038907728289398112857180600520630976156657252326755229460162884917558977677884543548852336342114461289877810417256389834760472530677277873864484788998400824797217941011749565356491758950560095335255119337908318034531542300985655538429775086654056860580045755285867030671411006706793950896436448612368068621398845723324427348359633792080755028569783144807614096103538695606438956914188755489416259697864462729762208186348806398473901509168731936429230632830241770581260994379753356050435869439791372255681618950790048858148828669900546819364899955494153861351096300273263905731075957356302845211852139225287607218190903073646877007364001060765792890181694768623479597672240188594570392893405894062281357684161530158489735180023615369830798791915115085419854978850495256896326803250482500560974346954052175406097584971825741083540094195306195250656779431001867010163567740509608820189271370081479341825761250048220329416020987632455016073435403157268774777366087125528301714306383867127947831890602464410802934059980218568507769565055990929525151471275189135333935240966835378441300758140187703867278573580615110089483331768170410607320090989219667712628565438451453858006345420599544138514581404142963748834263249222842415021633970138445137187208083649344517287629500936985501899814965882138765712614118502920569370428621484937655423423496150139116217445975530866858048090987272332761217832978020235517514855529694930854432512955562871204900146287764695480444025236347554208868524200512464511815598631337417368573176804789210837292692746397405777021439435795082384885496640015135051773694917715611523270652448620082300578436495989395628927290917350312560009928910119662095690445257369768353845674611282373381351148086648224861690410008779811023498541032951045534077885613513156308175078469946220679804970740433859620243526376711663607810149455135822759989362457603608100892565443168391200082896688397826576741132407760124391144685780202413096300096954080073618020829198460767193737170767244608969579638440205551909774543304212051493933799509558911423549600325470661101682139946374804099553524865748926724286984682980602657632159258894609656747826169489487862955310543399519800376306779854417848753157616701229332964670457807325399793363614954520510401992579885785859906889134694548881867625676540196669068520576200048105370818715098848720078094066420384413648504937150557196967336538651803998247976587659872570603993377036641235794120052315016264561145101122577479562957309318198503459516437142551440149823617897085430160578109532352706908874027433179176035675153117210215127300158507688378311118348840913114203231771515892554611162159954486019956773425964704835437429957400922879388882042017924721772824521037797338962915418761474181836382306506259099006170736320874278701595039113511113321876451403674811632824192959980571854245838124674551650010262556292576671278835491117167714540246510300273121965407175378743080215937146782891013762431365862883855399555654218034452294581567157022476112004927675471267684839582722607604192664077190248490607408770271813373495766568576675351582941938978496667637254469135633615540382304055000128575125811263671702400393721940146738880685880995509889592562148293569293160533424328317873963510676616614627143178734526515040943130588898166522090405262556530179676360472187690161123751949687261396057034012021674695459581151974005116818277949508252154375988851300246939976190179712060520740790793913456772495231370367995376387238151248557416035858625611097295237706403425186128835276873636024720897320525704464516501995203312885707458656700302988463507554006542453766143120628349699493501624563146419414818218954246345300710357632853934071831310558065979937770482404803489610134389564997321763150434216375194614550457839168415638175164256008566119279273929766796027920461620893826264549598591384214598803105244227121407861560915210343473917070448573691778699058646252702980705673046376986732575622064604666247098564053227487213064404864701741888190530403623599421516364073481652918165234049308873970940535544720133491342644796074886647196900962318455839582551479552521471249909114573372750618098610588438237721903859727498371212244692334714068003000567206973185877039090310214725772163433391977823201926758092021417259477737380477341775049969905609186268394812235042371906541286833798184895001427654571977323628777950153923072985628498982104062134172995981035482889187745596371480171793217873670533807702383037786852081968530527529516850382247435185949008462870110882571874978343820855675188268918192813208460995268941717902165206871504118940787170173954419097896901991933059493845087631303588562472470714465887784812515047208811418648864953512346511215417357040939753261251290586601776176473226068170326726080736066148215219773436224259081813673606525141634051335059408734105741288816057139110941231368365139455603447107978712018491873307579247608160907225324900138352349899806807198243530994791837267880675031955255849203624862580547918499640372697211444422226629529834656973417521719031790724831708754377083427533434872813824219083196096559303373094171341511814485367082305657814650015761670865558282550481816297182867871754378302144987732108707038649253198539754970571639030539547721432971052504238729661251177618812373470752258580651057834161576591682989136469871051253372743536963989431297839082994112655367905236959823818060929670615501479790468229059080270523126560392690319557898306106534631659637038420441172444643159387057260149685677778721579833181441797968327756848058511685887172593017165770050654499679661748303733668318326925667162550089361670242775373958594114093770615100368562520310119942905554156099373511871369296079928145040883773983125099122847407597039270076332960730440536326220798760807701600004617724430788273347651889923979577199401698844630474760283267413244948109628715938904613619914361781511345175393637385539071249406751223572145937913365788210516565018593538797192113731255566912799811057090345754267903171969205852594526852023591372963127002516428145755777205193551397140307250517082102032200742400733220569313881821212773400083854765347832884268916522096864078430517928788358345061531404569133919011193125896618389299219694745178217017820914845698246793124718858545306257728441992114924383422321637123046390249628389233590972840471430054507783686929643772170492129956214126428661704983529640762458610240256928045509139686936423291620207848127468763494550611916002028476706905656122808993012707617179605337793922931812265308772349931625765882736520276779912205860387197802356746406019127061226097994242495365015699762790241502271994776921396188522166689248326982184044035157733156862236008333870184447086557959586273369108903415939040146404383803380685827417909831785704996626113269269270404926571134262470621328932613921575711929051749700861224119850850041437526731337847949482452990429282067367734869832754643024118249315549879630131192747269835707617240053949681878067283625583115881932117990223754659350443021568882716255094901362930974059020489153358265564935541042803295399034369177840121431800421129390566115177154620370197909061907395592192205266262052730076787607341353294189980747881338422587562962226595982469239477975136857188196003229792804500377749129998057559120770545261698900694712762069251328599436554846515442051882405268410661634857676955432979031209514158815105361513144694506445242235097893689907666699890628640006392626374616801910396263834080119703937552961545153889178151583695004771655130466878148732777394132308431858369647913351365808331732146155076390391389327974906922015086773404808386424176502495006727580450055706561478102611801355628681101710261005554504902512375224918678202533465308575199388004264052605622166096742070354015938908955406796647052141372747555412087670649722000905584163493915207966452972477082647538393995984258403200375370563531205291462798755400651309345190494089001858475242064920860405371972589097369892122197419717385802501328412358085638378587943971295189800977458462789902320467808667301322708951828151784315191855637256903751332583345327349858039469423300411618407697258963206473866735986658955212050418874943962109924658242965957064570362022987655769086144141821004236277702621292286543236724593360517864645348617059233997682825401106449136766525009353692783202329547578540358240432984003109001269376318180401884065720105943595990087897099351640658195204812291183691601199875502972387014116193644610743140303553221836795972182876328066026076522518271187626437802291918446747737579839975247102087500927507799750399458013191331784068189124648414515960808991179081724734281287228035812499844190940473496355799423096586724981183547989333851289630406264243314441203090148498241693936753796447259163265378144682443934706201107521754628099899859281671718179777466732317617689314211119911874783501948315780750544639283854543372258541573816930287595098961620860229851356910715448010819015540795081926461556485895907987861661877143279667741554785769851114495636455210682562949332550881105120290547087595744370370796040701943026112036138200180219248390123744273964486140025996020254790225505559672175917845521969177292185342883918233846964415507507276333433364456885212174830923010903403761060087101933884492092330323010773267740258414681042435317420094416668826831034342654123861301915995097929568110784634769112261301942760882477486371981998381981972443434930137738188477066083130122535707392827562035375012948561626704124416862778431154621049909853274062490500261603993033672684150483632789916894929450143786067418505237082026369552313887586954763075224867982628062782044812130885354593089356855759724995092477528684095822582785607792246093711412846508280787640030456563047072715849643016131069796381533497032494226596289980069791924686918348944610462975701779029575952579977597724657184344567398324077313931500050722623397339449571900808166417274850882157396178196546737427580764923866241768953008652734108390484359146715042750225733200374172361560969259317239101210762148554676410783375729476422275656029207147111660728050077585061172750319373324818589634373137626699691617674401473776296617500751325860159788654359285537820884557537315601664780903998437595980012741019320500015036842571170235373056281227016095844404643804749781181834567542699541734461340806861440514408336675771084007718363159728600919739240694274761486879691039989281940811048175517394574282784130170574846288111462904898871382150320195177954065913202185739652517988410181550364467776759039723525677632534327173510856233729412334691976757522466769920999121425194610530578296925975414638033316162202272102705143031117260548128481432941899735084684423436054949209108906989824397062401583494526009710939369181428606100650491705657587947093995450115899967578554014874604896364295051370897196295515267719861619313424071499683837969037397594432287858779313635758207519409333049488949981356952303614129800587025342227213978572437349442373062113087318421943258298095856051126228342668820273123226402801759208036374084731555375880854316877503307487586675113411787248554533317942536574831305868841162377958941670878534023896085081531030568516325087726931395929369003328624359826985403805050150857633857473196388445243389686301164740108218191431825989920620758075135746655923354668860535297973724086854340728849010759810375084961555258663708544220642635456177484680533009867197739295787519232267022948530177656951656593972587814145449714020153549883250891588715148115635172138239507837918482911094342276797106281366302601655011763150536223373806364385409963102588599610580569165355726945080766797745864529460045088637963317530762409948033187426730416803944719191071567459553324154088763989365487253222285537878097624071190021200891591154951188478077721741470171496953802002768459389649098932698359065481700226623333995199251589374850892486115233772800940721831035660372865247076531446106850454316510930438910825268262480236882328650811966588534227704388073834879204855341943001627983116611525864387368737746863464531966853649227365139698315592235040548370342675255902007756918239536326995286240836586281199542698493379801524489600425142883601980796755597212620256733725756652677753243035186144565293465958563737805713648723649418310251437822096053342106469076208615856973939969329377117672831000357871996170163565089976718820367825719715537753823125175488494325984903905298102622519508144409578535726651803037791309552711492415716134262450049024747597628524842474757918484192425015093473360854486191100230566559507304630224348887043361210322022338072215327898273330611305923052514863314254477442472623727405617074941711340939215014082249614248645759312391635534762078989187611750285672728398474538751072175752464099385686709100934157285075123288502552607597459773226576854293332407924680843338023752437480898295610015250013895379061730886870058237039192789991709865440402822014370758237890019822308720103274092877560785483026361411800402644774668796966624467086893116354873542446349638060103559504985677873400245931645218132720216360870895199929992960542863507774526387103204195814507067514140350652709554336436216001367441158572007583456211549676764942559286456616632130330814287361519417870210254134041013999691104139115954500102255908007551192318757120053560835738119647690505766662629020106789887394213312734869134350436350096072854869364499698709122242739686629783407639308157413768010003914204633075843428247759219268146947166536418025690687734068846487487227913236010960802997003598091522733034507721905076959682578662606123509653791492383786088923336312373684765742361156701576463382110188497607263922853389557676749432852001339424911339974425098009423863050041925492178135566113575380014566191378488878970224579675702293038068848285458151543782754105022014258306093212432175478646169840740038850981778918547199039631367671351430444386233724038971223855433107233152739429060285358443105002309123565141179008500587542249395388463750775736678162730899336305453601717637580943913401729465646280900189306852288804224782358390425229224246093601711825427672834855703326187704077380773625793092505864498276784687927679036724128222438285178986462495469768562206199331902588691729884802414647760332005951371531412678897560378447445969715010544451362029426029285702032670572904311936724264393016546371819030564909033799643607778079012345314542291178632962940534898397778239843116054163102189393014116271565339756606451958926183446376444167509584154754169734381193032014464974452813321395274496980278183733791139083673136968892605877587252744581944898212086234933133161709300026604739238625361204853559440870822771205945990557463963102371657572132991036741302259536183714594128852367104658372646812381590437327395642046076129170387507834732671850627596100124827160375193124336538437147529350821640234175164805196321898699980616534424648377706910598488038777595431862663887078764891609634012980388776535059784051883563814227579780497602815769277654896385471810922938885082861237623173550728823584429571511576961057123587484341257581898017192497022949141109334930525570184623366455782350266732999180118015848391537765235545623905474683567182219724957114856471401285861591964831889602707271579398306320794443729859849600446139486877020003325852423683067434067626696237153245877206771294116791642143101112451662652096081556878181826801122263093507466531773167942834974264491902337632408726324731708584690213847425218143960172716957073636041360527266176443882890042683153574483188258949730469151244371895530952065249447132901828434058982311171796021174192546300309708809254363187078697931914652089550189963926988185169011314929544375858831852394618976626443225079681150329191671728435328934261045192198291110008383371900487897989737095711663346256479200079235019114165160796626711599857881892694193732216023564640825128680011275842472029960822360922492479809892796487766419971550266802694675471152387916279098427474816498371784727106861169330095585256268283384740362203443020176767890248755753333002537317077963823556890733997678987294270026000966323804751835963394644489870430111678570064660389488709228538375889102507577010847614264224503266633841135422688224966119686501826290622343622426075845715414935777503958127688128462427425478365517364878518335076809680153116462959886833777534820067734263270196791548508653511842021497872511207416148897900556819772770858548519191561063380522470411391748106024235799858654599781776051454264175439819473297299499480411812197334592484500852236763308603940207476802122953072099037113593871909103037593087381912081234638395840320879983206380301348522447284059687387900168290578278679886739225164027010759056747373367501353229189047596713352313108804483095604152714398502312617794649998919449343307444676227896129218885799381023575140919874984018942106867358444321147667556096730296589613909543834520727271703910807004930127413375313931743884254233300933386142325992457872002452287819834103215597439173379078607564106045857159305664194070370257222154159374866822238452881875516717424938119378435417278247585302309699744137572819380375116983723052742668278212210922959684511160318764063358036181575769842036796996676301321046585250249948786353546882218062170100495094865341599668089255885905891995383921755159982194038241424611075618780514153634519166924908152101575786297823783187197059683590707555635144148977569770781126568147900725202504473513612552074394987004158165756144408132559746702623005557323694209133498587904428777730908596497798755752945245063834022437630556529452280451517786994423893952858780555020437708615602350274799173263317855958308488942168160235422224234884959174730156899271283370820532960925817602525342412217880096703180635368532143421049791207692276505111934376883270054226391752051341458621271756282918049821445567574252329752424066710056808795772951671395074961413249517420630965507323071667869053273373466230574287478370080620542058820530215616882689298314262313314665336628259670923185663792481438463244311680269133261310598522703985951668756095031384252255325793819434252084809190015457644969747317100766736144345686391230781315259000084242836440444571684491980330844807200998063368827135556339593566391601662950472377365061272227953285421769430694562403124503272069257277804536493441214133349419657015735891223982296301563772447533442713573079076212373932614564560581043558817872267076230231377750342598407553957049989974805988948954826225131190985106988929601749223762381030853571202192260073377709486211608432510819697882365768901827830979803029199525297759386297953565917931106281077415326870803549210706776784549484756820401789686977441150549524334321950411056878100476402481667804062192935619571562828818123822096645744900319401627779357123176156208081870126047455768712861541194049071527220046393335193139329627426967628350197439114820965831849510312405194557881492652989006354711334592220635839359645307733529448623872042165185485816719154363552767507256173339605500740591991215310556888665459093502629978491332685057797657590349934726355341441647391663471939822623000979738082350566267643573093611662960830182950438242784197868901606412516245249867116259719855937234301733165255830930355781123124981961194084802057478062320984865832655742781444280458895395635337887210498660760538870908855996987410084890292541573427498941047109109328120586219665118427299509354371965860755716881697249553862088351955780896354983664798580472914065168467856380300618173542193744106292924699083930408727652473815753149272506637688752276857845063927442845332567601507994332668769480619944601971408697737146630697588632686955402632875610172889349994345655492501557596652826953904632355971511761221327676876085242321718905612363524111096766401288759135012778128063461591409199310650376963267417199638613405483047508029885083331558120440811776133036246984038825610367803131214849230765991520615149473978263801365429105979671468706110115255773715136567071867896490439889557204994334808196510383113835522059151510026611390371024004642289355624507984461144718251786231254244318207474661073582064002682731916395057885672359010020453794817636240984020475185844398292363148813565212730325036171608876136557472598890681928171917529277280176796876273360255635854226281925997025233232357712932682337118487984419799927133164015139968502550975563274199976199125706450330780172448630993890881048369442863970009552790784786771096103976309989131820739880974891909370557638421087969131670175609573424989099183863669138456375322070671639366833285645534585356139790518677614216739977939112692234602120641998099500770490244113517556530405663643498860056830541354839380107793637455803400728672905744866805795586148644401673128895332510208062613841183171911870492529773226807014479965692735194055725214294557915152711311376529275323071908929955397036447278968572233123820170806621198627369480667624782761314430827793517931462813264410532899554040324082395758242367835147895266060629795390331830995547954551865455214907000500842982855903152544313172183574675598531862763804340876613854615310969911293297816686092302774258697839338998727560489932104989109652403802512962321007103212523354096519047897291851496711870709646296975574272767955055752869117046854988744296562151648857708986760671274531393748697181369594690808782860498370054755106367834900224684748721802446550486848430220502727555888227931682286887776453063924836836845688428171399773290834047137970965904416143802499635110502185269216698621827314939530417666190819110134745453619755939258151636957781729071622094069961856718429223055951280791471174381664694660086334109864100127522304766087144744444858252449551563421954098614906541951608726905594546394050129874858742791436378782678673298581097407349823030122753813519306307684891189966346491448734814884378881022303512977207626795699885327025946615430824808313848353074586739684540192671096771646249797276848527839091074897343217026781459406394453408659969758344435816064336194220162768014735652473928509887881527230564563867383295774426634878291287840717103361801633690939365547047005592995742710331100116592534732555931197020336120630385851176845698626683188714932210026181898881560986403549524797818784562882886997252647910450416662433344226439613161440829609919704382841058405293538913150444264430578340502791755766949153338393322694546323262267882680712233966122414900303054714002394742791618410967090814133911954115465589045309633479060478094379283959115330166850485601577437708497804350599225793508008169941815256352770775600120386300992518505684899924146784035904139661170966045056059965144965920883260835505490961847193545559405113458493112067484840489028592903512611851543266086978925723476158324556284579301314921971344273386353436815940365060792475143935461174631629558879312651641271059064538429272763264616796709034203831250495213668807292687984433446505932883711379483992768696198347375707934596170403427461690091126404417568435212942103734296695014012456250953462440780981016251907266733647984755404794994606206832002598226694706423652692400231327634574735214967260470831885291859006998628469668779449555919112804980263010465620348989755503733616987820021997666124573983871770407191444894992504684476970177278043397066987390917723738921494885439449270338088275538614293537280679651708708030215841214516278024289594527555143809006085375006274992637054732199564416306162873126219424821730790643793698307899139800773862063131031699782037086361024320456397209401724723106682640262275082460538554060218189431239406248587621978521307529790113108718890458963624237470304093678340603137785266545317243375458495077203499023574768988363386433359512007539180323393963033492345720278395677554122264955535683147089247105515761217046674048203604844163549267849768483430725463957454066977044294734867766550430866158399988497766478866909090055867550824864431206301286788125866102387312717494474017488881918043137781282581967249399426661711621940092429573829662168859946796410313408830796002646849218235247831544781764429922791216911457846355462774958640643518100966148020690228200056184890066678376741522425499358582340564987264132758811087421901798753934975811379741984253628960708890795426934582024036642768295128537755191398015396067326772225329752380785882219710444600394748143075512497328821689453665633910387409751101144038861414646129988702992676709346920921662060327840762513860730912486801293884126486259247780043539424635778486395570394924377630072734714753137902179365709587051784239196692821516560343611168783377161713675209613094752950289667293727392479007572562257729443912093781538621273701973236674476656439647548120478107050891793124477296174292382791874097686691373609971943055017171431443081556671275086691987135358337426426544838322193952539525042386255668003842313810466155294651405257775486052568550156957118742788309530104808696176728899477210855609325112212870976153403219009765752871913000534176802726958006661299729194603470542564242133149446171022416565702859921490127549858762586731708356218096057119653181104529249155854728557432880508800263550986912029059885229824362300679051675206966076641706530421171484268873434099714554731103726794382897870746776065238805165636921070205899397706014679619717486605702349141932896163997410776986879898051053949649454234830736056186703925589497724090367709333768292380016787866762899136085634003995056419644720779401693970756398976215825315928384268264050651092243947271143478499341853088901876134415413041339815627629248349810133442731593757743295523477951977232271275724751510239845785483341613201250447072490716817572446660330967602544478058501355780384278994766457085803233211376146764966598221789431756724051832946434086675742743275319808249913106937304692636376686053279811551357644443399704881252883221266872007483685910116500494378701877653110541704394491011775055781552465457729333122374880270960739480552108887012762184882268823822523364028102378442471776785239563267583323354166330986297464295038175857260595574724596620653590137954866389213013160191744466990921278937600645360903141992278505696599308198832287743805901141707248230843880645677493832786163177025625788550203708349028252788447221512131196657643100038472135759938037859952560145697353768680517118068434963280362511441059538263584923411532017617832999581420584710645369247047566992320894322782891970273148338965014845016739203576366685910906853702576406170980599792170392702466209508187929466767489996330181501931912633510514029953792019984303701997921302371553361557788029250607170952254299520884285818089891966227476982634252095454226831497240902566112776988041814620597689706570150217709188674598584040923904243668596388633818098273449926456662462051832655662404176178149029824396065943406720365429005189309142019709397792173072709895591707001737557241654681831708836146740425663771799393090252990064353909199708181535505481850022183340621129808477335884759037760649981760762917676850288436209747226028185531513540975482056456281691838892387760846125365164932093057536894033370347755621160143836372928965435014641863508046127913839590118704662812040919096111366239196633606740889228627227562873921390870918032775306441348899767204559116741586836779436191002960460748035753387889417039222812053620239546862658782785206124669135248773361024657619056335842551120201644972628233866832420332206455997422037103561543874405163145998631392740999804254705690952594451179206529048519765701662462153275997173498075605189280498832049788381388409335735058824126088190196655268481283561125154454478583508852992194462663049214025571623659462367999011821533313614712302005343331457959536864054113400489076748714381529531860063392112836241868393782477277434295630531853869994281205709452928855268244109229580828016781736021990785300405203155408165007924310092645711441108332303047768091312257983870396058321645090076492640401330199288255000732959741087388612814254516769486560775939963485265990645562093481108532648275894527848896641095020189731430230832437010444145632422793441894573465613711420125800092781813802052410347368977827897069133498196778503320271316276759521930069010095346017719996196534530373799743167093276168940527702542020029430972778188002681853535740028951830573832650177612447285533941157973796146452187115168306954938833501804058087974673567858906351341317151821661737879246369778725470342413613352944059503423466635590841332852817718610110200515387498801334095495550788189993832797910491999350636820504525673815934636775044536580691189082276604549721938586454647051514759213465415204642786702360932327145125614286953008343044958317168643995440673066759217746430180995135199737577392455326347514895974626644596322627267162416446479156049116031171220251632420378214101195474194689901667082800243961352731469135278304332738369713450483849454588640719983650412611250739651857117524877844629714878906234911887760239518626309843985034601578203579174768211229704756128744878951034541908723952750898080434071202334133186798716173586299906029497131736436326173125301768741858910358920507391068137835163804740033907719178068543366156863013772569412615836651801297445641489444794733684659440154396085927375455978431866304738096834695460900512414653866991259893772781815054073622369623698984546726882535369314744096036723973895067806134524669981857164849803259647776768162140415338151585081525502201614622598738181944616059126333942605332000068231938106540676648363765105640524612799812139234829373848777778131645460236148250001686896713198563314218897192296236056052504176078029753865697222823552675236565840111536910560235620548307560367631472482189648279905610627460455373946880209402330385882947983826524907997408413956144013831997660497537014466665848328540458574937472483434816002214156967037026290129595261554539645140920314656101353395537775295327391812363781669204079740510700565619973080246706593838789372708620012534390394675447438748960831389171929531764867098974238498607845689475509551302096517806664797904276990850453440203110092943065431609933669210341632572219216817666275873186908367509108840066897499492260712559334100608309149121178481595260863241958603740128818677692823086730167199990056383616823489227187072601968756086629158981146574253150274436164707414521454667121341977055718440426639607849213879362718534126253066329393637466438597092870624293675021401655417349067107017950667303729911799914771163499469879172028913268255366690443387237223787767430676228783813723275549842376875672859563697894285348972902362215016823858115784893867288240836475567259728064303085185981515825926724876414622964140125746497233991692329764108103685095056804649200847703288305346283928611703921436136424626236921886590963394487063300085607612402716031809179563861955410014795420391847803079561456391537328227433656715158522075583526746829299650773565657831988292650079892490925268744913555663865501302872034428188077436836349722542109956521645343867135330915341181371663675413563452663052180028657638862309892391264906881263684492201631449053277521397775113831805884978235421064086628540947438117089467780732651846112011870681139047618898992203139243254828429412349052611917067387817966464325185143169543433593709108739736292138797096853827584243501466442885483178383224891937612886937972823986799935444260925064394890599697939504204179420065477789106558683468755105888490085250982214005630723913825932875852129434889608889575224868525626771201547004830243602335730289705712524218642074768812155768755774586602116226852383262461966517352985180836724180283593277187697523627025272826479960602693459593993458829920926695539147677357571403565990024502005048372656621768154661538094340923425978166000308853921656404731290672583360450493102279523497765392793599443679436775813005893472075020745966449145100251932096877566359217530992989908601563667704701742983618099264683262191039148907354978045211193600229236171704675717613816816766399358327020135860649892037969213061504286043928815106765095636162331398906854542547401368610697524646966337390224574101296942872190888781681968714863495133810557764942782508578051418736542755806462310332636590420182799151015819996531779548600516871003246497838232968960495918726205830698850830304864467215477389980937805770723005587946362202060180781599178166073498964466590749999506038939801835241315603465527411640060783603767608190777830720295117705392342471323945731741334599478163672968601917660801941421226582807797954506236199428970886128839151403867526218750000479967359602286733832291013385268264886664478494149828183074638337604513662130862211512637935234356731882136560227312974029227782354245206363503147432064537427534049836090495597569193817019808451409062887453033350013116020883701163431921198208192770594205252413870882399313123076281065307330695956218610657612102391323906084846324278244391775699218924303686024612602288500144580341898969697185326274990444838131711429322851750546661302840970618243116525602164036282173903249546622234518348200722314178421120136533709571383817738099872450852287830406862333787048458196225938574633488564349164566897074087322009594242013037075507651340119142725895776156714753941580614968881503582826015322448615047129273686328151878384989755351823079182846787057836722477739394625364870310313605223511885927749997898668544995762666002414895333918836577837232789801648543975040380019050879747750927520696466969052681442909130393544324136141855388429797357527045488842880395303537775636654237380939376037713787876019541097357528260423500584595117314538828012620364690119559444336071571611005475191300358157211556415427193820693751294512865397599407260222450617049675936242928537202255156066401872401812889215727964370013695419138183918028709336476437452912868719258322130046180602586776906461019920830021629002400227231278855785266729784820223473258897805920757598083242319027856613999304691977495691778152427334234206929787123707694473363803896977856443987196045661310898846423883209225700992566581937861975522654370368159261091069891315529917948381835722482358287639881628072710858047590771743334441825573631632394348282214816759740636692206712360592904953641147713866241955103410369839580054836642777582953752199177184157472957774666047864811133415676426174946656568418881937635664949263258597698694843958964889215841407090478036681082533319939789598798181353311098025787457371050499727205942650202021943709135992240739896286596326113315082910032727889548927663915539806719783406217449199734756705523035900121453825501831811422841466630624198873094596447812112095432990915654257544315152756789463218709468230754034538729380094150002959018168902306990292821791866004932165219754360693402736383226945800997707525148038676398842478488803178106695211036121352786624260695764010386048564905672608198329152361652205406786891764367812433449320777569115490849879810868160954503139462751056695335775589296566241883743399163157182349429385023260811280013526071274072271870394005599923836256278323615236989851217445853494985829929371821320872449710755428905658779357280221578341025676601197129423433348649510206636583551565223103402636198388252098674868121858383148382926801110309562912752225671356014698259050876324007097803038300846307998663796330008389193366919000171919651356746668055154877854993283283494297784179446939392717670382635208985735731441414242680433791674825219357546760055555932675167385733605108312872116352062707148066319803896661586733945892329777101434047358506353605277282031125543804636881001522513472911365114521967988032484809569603100067380476262497629068109627399655245388012050473666231253475909683478104176168169856131893601500317097005902169814933191477231080276421309574995320332560799868031246736944368169193168865369515217292917242361769529030823121441737805789935266368342292197657547731347717649602206881427713179318763861962757117715010084375438690751276551833321067107405024024275408848684349761224465597970736780465498156648170833365762837753245915812438416587120706133810308555218001809211519169147394467977312240107479531377263757050779878093380672700204619012861257958341830767716597536939180871442663509586663962255876652286136212653480807079907958221317855500725463883331673712230321404186702597610204183261761344140379845500894061320214302337531170008282632953736620271643364474569951022247446661148569604753964129441235641516774115186512915562364391911831305215071433707042114792164530504946785293030319068626923425422094205498472736156827843330881652748524134338022531267458629443479857797078270935320412598089208401730977084652683731644505770998947384399834544837063466882590802039441799277039601195330352661037959980498763210580779271571555315162962466700841190636673779031894267837608178710767798496719441893214334471858573950376945852593213752039284599613860797931595096170213833784169950734232819582223020639570871712372415699729938905009091845335320563629695570846345965850992429623119089226155959511640793769210704182862364642723062852557050677949331813951944618549299119166152049781480483808699303238247017346921728411578208069391085937845424372667971588867926625672990661703868243307150585167353346642415399908859443530617135338906773892831983115877899430013029776404492717283936010685915396749066469524804838300235326697893777585912333519705305074104181518604908827803847478899182746097617641629988139581856418776600566949138610546152509457931730725956950517231112822260441762798819548789388196786074619052249682754420800188013805271053957784535399663452467835433679006079226879804384738412462772854433884168750060668368513601537629970646390389047793575535961195477226150274591482816646371108080492419372901757928118474417148342598598166385500045039978770098292477649197662561101171099336673506920316514699936419230434523327498720730744331789767020725319410631526990101448851892173259715306946140350614929270346128954840655041570742436744091366697438045135578746355320606212807377667454986226025403595808505444793480516925908281661879811260756770193360848341169493154222610762069778792866214542901119940207057555106533956197156833739521055515738992732630321587023160836052891795528798055735255315473965590012302468055792396541788657823820439149002435428189016222346476454121327913190008776377330630296282402967700269117754758966646291745486812062846265138912727703997093895892899198996265426477181723739803960479450704371358706850525473841065844221377831168444460192954362163553939897927602800811407479673206209584002365379121069005320078639217861657168089016344754793050863734397360458790078714069836786082479888764051160241156024778068650943469545482399146077902462538468552226708684062438815416652137033212942459490969401084459949331727634075411248753722675674358635993270763608234168546726795752783475361023896208939224131834098541249555849642224315051559272603338602764420612131315284613612229598284831118890402371961423249621420727837592585743439729306314169394518749891790152470531380487790598785090053877845623293999111987112095186421325552080449350562738877166503387757452676850197783580891295333661130476104459994384095891923025901638715367070913815819167564865812872990154841894255069785980118587292098948355725360084535459313798815354792998393343672994484609331914358931213197443958685898063202342058302431891490192936037846893349906244737574691424864058645631758889599393566174740392487644612362827682203679011890140779671338836820067262630579954014961053927594882668662059869320560910176429839062707964984024774536187491482743481273441065437657666593726194911085632202322777878322468618044095336833236025875953649415373152629550082177647233936587060836808085306235397849870522631105960299937562990611832933297626948406601803172036786198010964876744022097801620485875800912258745363390948557264902192983239995822558505867260790832021486749962947603935465964030151196704072621194027983560652091482242148968481796919478044371223226252405973786262156216472346542444072708775339826448049011944796484967690505673325128823522575103882880682121526434112432970783818919559794891051565950071150380123252094524505926926610359534323488677863773691325996340390026377753910627595882616448092025558209468157691407723814110943085952992566433631051985399489193609562535405577432642450398819940571450012478147741408700277838061118075029854580018187630549911896743504473943415169491093557715041612143751924592233888009204685657096547487273106727159523225184207696585301405500762073854300845470211112442979752335353602108088217586666427339244831913050371350379295105346249810545664810254994421468344726675297215987621604578046235852337159097620685581476353955402607210112800873927961472570381661962116491090920423031798456853919177572146068734393288891327296088169455123231244752642637838372893388252402137337584011169460447885904305145118816966781872114994197840155699800130572492276753681220476595123678239386009738834493256631419148169466723185077918321107951834113040712684245818549204744364530157061913025224778627561573972045231318912293342908234342739230521793679405970218603113101188466446003981648972506743291385324654119668131266312372119902985764193738332914831067753861244424961176766920877384446373217931771524004115564327874825372467857347576237247667144306816976820783566254303342438890222085820187572393879867192267887129775626088401374730156581001080170339409112576038216683788526173888502787220095934292171718897173176582350603457906195271681209524236891276051054961415061665366761123763115113642196707725850782757421820363729069079121923014997191184711550870475704060452902961850550237828896450582162165432320582338885031579440562220455800932405298117804371432573967140809761891021628888790886021089428224740147140960659652532583965288425972374434586909402516395185068493956945776630689865981093746784746586005819447256811568684806741668477291089877991363603272999165422091418690947497884950190319495836716828621295217051269262892464151872458798997740000196343134596875462397196740696171085141787418706406225073738699084613447467545411845711397461010347479244040532858783349080686119574492072375274314667877393800843918433368209484445983479453751993676358226076291925422092913817570832779396300498572044441156766205706033739390642392563434741489861055495573732858121927550825218889182385043589095815901456528681861801319045053025939125639900877500716551261620916986399644374199837191934756404346205143314913349551958216237293673392921596720134733246896798592907071131939224894778938857090108811785008495568313302407355365653038678399859907844474623466361095729184159400984307759933668712008976372730658190723862627389585321288219551416355127262515008425917743796184073626969555643879882619270122411191261886877889794400864068916313197105438002882057602780884071162958893737972565719679365397031977369333296358853379617217544606261350860307550578785175431572961538221206450119210161370421045467924225762100413485173452128036616272329069201363195950193514228897390571340151957047759566883353784683739691233762810226173226692414159696931721169201777230348759170875982776865476626030517609736194799966063028498191568291308899551794781232722272062874020091076555000081541575401839495860293362571466632078671436280200806373788926690508746519596711102798822362459646128175996024566937951833749142309199106204432592708432236543216301517221089096605355917203347233156599146898050369631302869044898652751470670531820277564884675156474764900333033367585826293910435766650293774562451202716963099024706986639156378598134047094025481832538198113610035518419636563104445169435728392443290866035170867034279904876359615705142805913314054320906117700476174554989715978710655459614843154135776345458086027873080021063495355681799143260802742566551648181587180638624102687076933085637583248619575884509644887206826623230648264743736851570201406087525361377848004412775300099279573771827596472371335016678543280861995368739426286814988815797490553985248655827648439792541140668982518223152441519761848081574934992678202916131997916975279183026149333576596470527560594147054670537655057374938608867289971338469907534389638414397587303353180796766749657929748489267191938197082893891456875189633196111885550674975440563629677958598258875185475841992272574687398955738778914130846536900399216717193868568675519563935368121342386981486253531115842589651874587074712679198853728357264830186454799827776357666367487904896878686297615567448800074873966207362998238721047516868638829889364258065354316389680664568220891773993704892511235292207017772808843327573071651804091860298875877690711200425841642306546583231775519796323847744364956530180634795805097504519408505772176889095177810420491201921520294099418379795525562181277219920500348942042481835969498010835912712578386979648513647957506719421527923364788522932699046850610478354566710704385460328620376301377499793463332905504845512422433882424817573281959456599895833852199798172072921934143852598910210290748236184016813337206447842259471578628963284644880832233228048588403093811085316690516308704641002828446314684548261735338896837175482036122710425183326145254168290799999270705391059710069161168338544184229293254424564551055211790917368906850812511005264749991529609993643213715880062297926003561864263949780138399058420057156350369983247968012169081258117529598315264890512516155575512485316434800431945038973781398294404644385393984129373372085376215140227700249836845772925648471842415776184491258194043264758035319357958692186369981240413310858988954441548647210032302845478271333438326106868521494066613767943670156609235268745515211189035054095860241443446150737309328489926715783724777335555260776999354123808741831564492472817199588632779246981661543618193209142611044166649570394323589650290202589183679333761330108693888810963725073023039645067899424797319741317976367982249325075796483746005883725949098659462149278487543743537095836298896654258439008920864671729763039463864288675587841549733311950871229795339073250432212665692854617091330020241701276271244496625378972951394461365615284522182057857038861704183784754440210006550294789321006743351932178437160424022762415983772308648637125118331913294701768369129629221312697822232453541316989088728416784143498584014786399613155230897013694063995401530711700174112667844081439476883299799553524046624115400959611712638888825047416006598509807580263425075967072296632691923020305651576933274629752436868420295162149536886583950139811444010661378263713050353540735203798598293647347516605381257333297293967920166736442229299615450118109806876687553652108740325449022111927624191663614927307236064569664244582230936829499719446041768399718902644229320893846417850582034605879012423109300149229766722927618582311768495427091493223774403109830091302154352034414348120449471252581662453569047306850706695451064311870155519076979413677929090212069157451511970533333741927700245656661806759807102404118788344753395611860700085107143645420618150475243223546724091029934172840880927805024335357634959647964562464709523977018655421763037640448247923499904540536360463439795999023942860128224274604464042650154513884584890348455725509851061544061460168748630226718515541753480150050119855622573591601164754218275188084583590570938999106622771844789142970969863201923857123904753259479240087284312685276872864607930937929655606321347891363362524868880284540698210957146729196886862917891505887124001086479864402201995058684665128983167122289728254702669251853290313252611437097326983401369188703279784029012507847673551203583531894145725276358103073926798875068278528142272406704124630869734452314825876248054946889516415961925492794381883302434167910738836801013908069045357846027827814424282476692813144507941347702846580351489302959479809176864181171301527184765126872146858095966945618520817629788932399907393712655347040346851034842791938983281709770492112792673747360598973192094301986107697324256830009692157358596480267700370299160499341713077412449672015278143214365172927411351462928068883431215936450629442733417432326303381789587210885981548131182907211627300523708524072005043541594101595270971329380748252447753810586906982661087371492624270576619931042475528253240505255272771919713158589178140841824769638640843815099212123678814120875655020183745033137158591076973667205672218177602336640978738281070571072980865065450897599866770584852170684335905866256716727033947947226917224789402443870501244684828754609744851578557829648300792631571597792952098956922910128196545797007472567136517486140021294578388887190897171435945681260702049476861238958401518916626836985541169383429756916023133607095172149340311324191196005921191800466449276438858143668867853186960364926875461621344592705383766996800479907584806436273561327613050634840740013938468877003491095917143077781909185133944729038091881802442961118142725660567954222112298406983131406742881646253186366429262684299287824979729344391631112388349681651666471134066238587171229763369357846519152153444914020024701698971363110352520730087585781970550205510684187071061959079493398285651955732226058898261024952720622287229526907355702161235494564187868174836236668904231616688449273864802877068367460676836262736747096606496898525914493801888455067162846567500837750163860148101483623246446161006038008676927549127437685131413184823882448055859585592406545385585142113761663897344319714270926987801031380574760051582012977513564723745100286362167857022752292668593052883378112605511306609201050738289308126761952104831108057963834912381586233709923472153480779907723317208584365275952696768750815316783172161428791691041660783628568280886777353551877559479641303313498751292775410827380107662113355318188631789986863250793813293352161302345806672597547367373016694722805206571457098145148148246590012123661587906481401140339046176418695239811317450935667342327914790001493984974034547320129444606784001619117875496797594577514047336307907408806339699878762601122484549037818914035117176611673056866746284909750937941943166158572734984090848138402546704001911244351121372182787905035486315340928863416449492929884824276379612925150784234652835672614514699807846686289718834552057349885429472835515014500693164287525692040327223813641882091171929119905263606091227643264103036375520518700178413973748509760960775094686558242994818370215374343678961150645602595040360887302187394059304135419758455962264073941720338849989519282459517264563952540361761904016640254408127347437403503472245254523874070876527157681480476461605435991572130788718796678096590979140278686493708232487085898653349991980840986899233889231705799646694280198928006682927635890532169229851946006160970997749334204650299219816890824062114715492279544423777804266774765056202245418795989855872367532423897919681536985452135600928671317513828526393879078570194825926320417279751591369658831671127112647441534896249001632409692976090194508018077698977258903799325082054452933283666772336412103710641740750720486244052003955375450154441768082366947056521527396065910271887340087304620782244357377617348497674180977233748573942127774670820434657591324459070528663559171055630285691953914423124070545493578085908011807349801749621326372212992569463590494225113931472730835738120479683022519224893711663177916814798540983445792402973778324017430543940176045800043088899425207294715915219861418235717937478919599500552811277217209605034216884738869993555450938875744788628694064135321513070866246495596799744328285759456400547657576270886761749518555216368272976561011707213798464268972106379792692137271427600693522059903976845266405969273496945015195635482624565168473667936715143911980916015897613190373295122870582309864864611060600794554863743043725680810553327538804948968190203092759691010618761689597977834048009972605439216845995915322232383703528764590852665537522728688030334308494028237346065610067375147102617303643857504181398712773256269823394485930741348197863222899709373945721944968315107027488664281170888163226868364114139208992036524030483616350163385047142937214559788795741229861121082823894032347058184871230603719035579830354912977221518978056619174858087227949599198525875979476115019464463083814035598847199774558843602291852033999783430817377916777577692165707326958766458935220369491723669396912684536164652362312284528581887453118545056524664355430724744844166595458909757858161881676988007365924603949828636853384726524765306277669021889102590799240896520597813660805254837753589362516695341158628683627019350753594958697105282660096550339663346433922577079465584158543528850792835220208098213443521610075471118912151703215850576139536624139903106695680598296605105301663877053195694462862268667061987766285398108653472496826716692125374006472909957802427297167644591436909630070209415837288925702457856945526805738120061082756418382367984482162728423696747641271201660563827035193368126758602287785480112577697289763305185183377824173811474000722726605124636845222690215650586645772910800571487864843291521774690934938894955509686452389730165720827390736769354066782019033795449328663382797381113369057004651175245388282208883030857784942039468883989267955304344287220514446734068267957456966893593036281494482213610538250296093754186101892042411831670549623237844706990121899677040633758486330089050762150426408316012599147240064985356006816256207141725351174116092312777433789283532950867076581069670685201326415839558265083198555780345783841068642524497171605623914972958642494976614879435531734786654206605940986171369210868102536404031189432836170789123012351769814549734154657401219946604522484912654046177423099987951991021663315925664901895451429226878451439723571017940590577641205647782125277850198450613762456650034525964999302569952190252458846212986850117579329601675344525308594615067349274766702027334472204580076650560239832670862606778860791721950812800458754636609855920989351861460062106633577495669685124180390106020897413679043265184482101356409050720651154812041335304261568670107078110742657177789290547099790744168345042742784984238873146612804048734023476147374450789415648170455281829563564305280303006567013639450970943868059422418602320129705533459648097259330058321283220743458220025714675355423889789783654477945544240098359386787666808304946229117718227467850429770300657070786285499881053128360816516506216646122566540758771133608225630034325196230037123353681137882028176762003845450935102199276905686633175720998069390722591395892501204220800550826656086704749556085011200627205663412902261155844975121010459986429048294961426408048434869468263442554458010392720569852543387428569449879869519580069667713707327985311503598254910076548206973648146738213630155346362154407439923073706918947604216992236664902935911175871030550263370403115690356640088290636426017170682829372112425276920127410511848778248810289174389896828422005703362877635067492879165273837009845456451125049487482083257725784897641594679965741697884125096704189137717983590009049314915695497489553205863938878031536723412175806226057395221553536627381835452463663031160549078538788720168416253222457498212302228590181389726343044569450044234160186172526876287695736651162920253508527960299439618966160436718780102932274198615592199380279345792448991841093304021592380360746248750109486067853687033577019453944492529272720508722548852107503187831949468289689873723770236353355021977076841359822994273617150349643007531095042645576067269065953267900000755519477530866639134617934226424529244282134467638129604955068399856180676798277983835401771361789944715674699748154358212516145319684203090439574787223368286589880500848686512418182872969274963671498326565457350634297993495700478546013000044443664344092432994514845358643629753811149766423902467997898788539339128450644515030929005398847469641250708770590535461507404423570147037596110825844122675654209093408701324988947863482209494557357887717716957375830534367751419144909160905573757848314895063554005104627251963076814715119049204330742649545032467474789630456262190074870412415675694905703874261324671544767246235799916567906216686869828289839573880264495511094992951912306982069543528921586117559668397219007041780856880968925966432269824700143167278438742979046376413265087631657085825418755623876642244870906843556271256833005224659785868895178392275116249652427533125483947208385562918207335805558161084060138910438754566662848173254874513055421569831863730781467767442236960071422281148712766946685014356212039861043996566164373942915172337963106210045099011042080774532997132470107437838345987698776744210636258799104649827081873855049888931967807647538379281692734780750053506158628813381315926210378523678295267273285847202328541138064895351184341401445555262849719993649562904836047766722242171009074651960193771579183677857019274064257834185937884435108679327732193522393714180100412756986689077270903381621046780181895299237895869258461538425825861328474860090974370886374304084858218374890777858744797074834487588592530251018653426597773236720972410896584075035051916919567926503756988052081364563584915703597711174055965748546699458604370110635921286696129752870530020727108031353851882260655705452352497292522959739112721928628817747029760864085715167538379316327420602889364821683061783531467786720262251538172146914688795043282096288295740044666632327832529066002376166131520880581709073103705029470570384720994937657780522530085861599711948518233989499028837045561885361855685824769164043677291412110657882893537145987875339519322607036012075441143952665586032363003348549230061777200747191271245009089188475820541775714317101288205564696997412462577961760900549144533252877639423089142859805609544281810459442814978790331900828152625853525861462740851225226796281764809837808244070479176812600570405948956838368418024335216992247989888933323830093517119187484722642096693003800134692734747973570319249534153195554414812522208696471535165827260360601048323529211627867689398687940587527953547915962762852571728101406814864759366877880241757770547791747411990776015930591501600782783135602598730731519838336121443341156742430599499711457693438606486857252131783938903989637281826864088524372535857635766872861181150622777860058339140670722740491938327070731205811134243719187441253628799623501155980113822623225323915726881347597371209819359270350928820035568762020867849984151627146930478002424203104839202254684108282134159985032201386647305151644862625825157244477578175333749234791820028663212631484188252917656237922148826805594034080895107413413156096552059971889345209930682975104039529981191890013201875086154984389368895644650838280935525311985797662007752618955022551392105518878360733267796415653745463435118520268490789801377107315745121961818451694742084682786756923076562355039673159425932750897587192760525804035605191218452099283194380092663691217018335900389360167263403758212563016636348077826164998140934066370556187155027434550304542853551981204266039793919958220654742420263382897391581760408369788371265928741036658836130274645470405831267837240489166822505191223131647116729009669922877538279438260802471878204426252106793169098720230104102147041355046836342936494081318272167551172806173715322889024445080003180925181535442500379653004665953709858298323036492063609268776611118100752967290264594461610562246739015559200742854140067470473619714198066352263698875385580101407872332053579632910047893596917769255575072723695434993034570849893010277746682514855327264193802051695723887851362792030667777676252897675181120298508868590882200315229031453441555120240467863593076556241712740199118075091227652448829434471581132209368455064919699688781733926093602963236960000367354213496706154789936345839670042879742337147684145437312858157521688005824957582965328961739188719647063851690406687719212253296467945854436657689090640434705705597324663806077350677128792400538021093070449518177472411977647574214453648118070182910317878431405736948430949533238003573838663494002303361202382946331086279764480922178095064380018876016143789012327159083825498282206331390864427782263315054723893159750331289876407896944276317668342774296409044721229734996842575113153000245049083019163072049279369074977876750333455275793138570737877676190200889287039850421928842267503386641023879645803297933368741244652455726499967738095562543183156696013525250079677877214963551368660411577809372493877907327067733223321167097365597237258924137570771783928444493753282128595831870579327514026463839179660821157383833583244614494972763905928163798277617456678249825876633177860646682661922633774717644316392654934089656098365738154089936507411326706894693313019615100353840436913760562548939894248493460923525984823938335394748549359832377526121605911830500012848957741738335267129169231900400299796022413665595190275179560368375403046606757120019472086803622865402125066403673294332417020065404176460294360580739042209486127379931458419896709284856167868635339042087943003320824072142405077201790402321869311070195664460873258053008671999626583530978215938209533085442792876171843256509804014781325915821172663997682325635639353468005481321279442888870438394586266768620290089594019926792875184425245061726148960981378006466212269168798759697269800967511632590911917781482064982953591264193029952050150842691362195936296181460802365967332025150807489618723133185030288347176486055367923518173365013709866516672905336889349553154025546241915297629944238501101982524518403089843962837274879734033914892265255256382905808057269887548311227167691936324068813737586061459408844534443278327320669199251010452767190782008525400273674839404910506411205405095110677492559399239317228499433334247084028897611296574745356140431511517393620131969966954637539866756110018271801423650394665426919927717479573743395961884791549452197193298596078865330562116346510297853821806015181145967953884086620885297579768000401569015929412006257389594645468930245301030090393701602975213589327456792192380855125465428033521956308788728216319125167062243225936453439209239624606567544721014363558830556150327069720628818601233818530469614906159588124839351194572789273081654823637398002948708659615498921942173061365928247910171958213855324787354505953439212570028638819110884902300041564052359050254518070115389345210807802205350536560060501556236037723106346050475808455887881330813465227036697002318184437184204040247483579967184281103756423047226751737447211805395248485879923461171291248136520972623616446738003296411106093917536451074525228727617232705708897024795902540341257140657555646567497655146742475172372127688535749318942180789605086353148806861689365792394903954941920849364570485473214052521426135297251356196211985083265517773660868816407840955061878593918564184192005880063116997746226050185479661932884301306555926295424832378225950514522533208830740747956555258773714325383067423168844836213035847301174541086797817696918110660007922799381953180397323354935605036248997829670905043389843995875001611688898526446408766086420354722493646439647457537786279783638182876852714045231519724839141259176941149198645787783838062148361364081590223255801545995758091889837352785319648540764237884646889754095675345776286731529774351669915866648651453620559423646787996427653206793116719736378123578306876633587648197507831990294305652229386903162751840901152970883406707623051024119272057335475979653565238887418632659120568605980405019448810313669941241022769007984688523888375869719720959859682767663571457515998018236819376188969482611994513951388247170446155807442036211816135199190435314453280607653340058902203271299534619796598770950236615896245889880087887453105017359260807914495146183141846804780394545823208778604880924636584658008850624269149779874648548809220493546464224503026280742341251377942603626589893290781495212993678854971758386851678990039836349010283650086200701558028838777652903144534469829658503278721331773951522568159179157934593290240481276793917193616433167314333549303394420541322496132234057087239549938631601403207654494273563158905092023095338183237913912500305818762883349329141902917504025826366957512258851637601671168508402900763325957456338544808551033023213119135354932179337959176333233200039309253133002303876820526130496467623865487561571536856215927228685939279004546092885569183424418713352765435477061282295344817496748788498033600526296812474214503259446173180879489531099740789627606440020326385157430483142233963526794365890400462143991285643271936955625408600796367026170954683327803651999175204792398191131795707693540061505064749726935390901739202904826261486440702933269776311547799755087528335460820597298558918985159765758564618235628334943483541750272992973350594467999195604779028869969505109224686652518399171142847991622026390083057989578195309651247880519819729710206328029321265476046338124304354704265524711467247557227901988697822026591046285067842955293218534675968254637097378868489113686921972455416545056277625795788841935021798236871078073630026314613997824725035513761566812237055278786830334006708799637494089766928434873742540024322174169601130875480130081049239114952605395075339453826223526711867205374555882271860666833612813823380903386954998434054249063246870953581087189873127575582696207865131259519947548846370447506295377271525764625705663497171906567974399372312705437882500697253793091471491356992864252925724368302349114088166358647591363596683860972488453495837235666687796723097199540082141546571298208675913368728101408442833355878601486254311542970376460733649989738246850952790366020361945203449424032929846708102111642748996562590302043328863263243699516540151875341813671032296831500926205280668128953395125878027929312794847243604418953858914073818783568175236266026309817692970923144378853723380612467317282451828239636328964201584113933519186373522772528779661732209981126047296166880578323750004061729591993377326749926141341078903583402994430927293802894391804417452383660812543572763466317078778195203263504468267280117978706641829485714388462701328154987433769548052817987889297394535406319126445605149722909072663822817990011912671695497595990405842124330232565464465757125343511385946059189692659944263345710857862995136297680965900414758217189364240180771744855672197357081311885004523267288470950660980899840126245545137161425536250365324815880679123698481849901643926200594957969269633687696653090744787951343526506720044058700129358260749208409223007479218039843784838501851452068131852286182432874074690783159415243381111266581331804098043985657209725627716357733494058752546950113221902172039461309345480000144198825737740669050359868157076196110342308498723162691508123219427521443049053195581040488841795887545345279957091622014990872619573251427377332559496350082948212896460170839746019862425963536929445962279893773015441680712392250768620933786095139153918251704451439505484888230917650423074545960709759046993606941153002455485824294871533131242694250392697992796646745531139964161267878405853099604761616610833977998734936361626417212686737694184413338780051599612903757750980546467673276259823418866460063794688806556930850037064237850206421774162613119853332141220984638818606478573276048423595635895831144358014604788713622717133941641390485172934703722334223229493986163457227851917530544676757494135467045284217484213261766447443099997373303081190328359274580024392130587626942904039813143530151988142075534182522013892413087164653876707668191651359572068560400393413088297837453333410146971216450833316262339222353129873266243962996187669133216005042946110298457335499085104322247229616454662655160212925803362558533791460898545665510982942634155827323917922350321495420956796790546479266145057128918606417805136063208860761683856459493844928947337242180450876842308804434469243127810955411038947609668808570648192798941389972120635139440018103276872325658995021738608511657630445587895555659385672094217566816038681538835431243766873453664799248101700303846097985697359978577545001431549199041903469691688181467823618308997122313461551742014521557093494626463850155333430757038208558133013448780175617985994321559975001701003721651842311537044027481216353317138188486322619241496169008024376270799792784795888995405013537213244402720597824474355629821144632138163054568786047812251002025002710974130156822368612809135271761910409418846213284960519674740041856000722694279021368207394439667474698772866471869265963655255980362927038177262920802495761778291938710237722813080652139232550526424964323133756789142707364895429609450595996618008255035903039677241119100946117277507075123867767334818113728532573845916190644604768867009720353550059800191654188805750314488634516474487939566580272438812241048369225435940609071273263712116190674886402674798156909678893795510805824181894128573082379950180808372903448024329394098938954196651137448087423412109171344865059109327793640508600982734401214900324348811853064150045076237748288506015463451609473099445346913599799005018153554272668485429127056630774346431768227250970754645860114967932906957440535796014275393243740195356215218586346239272344285483149993806520202691305292289824476240263887889705728437927782819357571124780820140080903371264846807988295072240069861402588795986252716495139779436216973872254362104055578925789675995549816954965114117826471212546363525404273423303253617800007776837715463338470314225115988904368566187320799161483648135832579836860592486429043942717142257680221607164334504914303439489752080898207179060038976268577592761936374102353555791732293727542394833029819001709138766388222171973120774659280638467118709535295470068014087838977111374461190841193394176682785395088784189050370938360711042459487366073389209332273407436526459569933375932295244423573993284691919957230697568174189809917859488504584570489290171334039325112071857563099970310561122624137698758870739288060052082932403866829833271072504809774166218230350314268392450788286551202718856788889034441696315388039703140290229955898291540692201883806816876022852895933842392856109667641179451778086387176566976207178755743964683487780836059488337786663057184892360433794977031983282865619346498383414780511662981963526679857737971471064546731596058558263689755920472625742702877199053362338259745457276624583523581325461844436518256703618020458914243354684924980267693216744306735875279715860480821616786714044595747718883755589846983211895033603791711734277170086493400243479613658148626917209206774849162049147069990020949354081275353479070934205512290379117749723677673636071691927114867319319675954066593332230467457643973178644397764609754817431870774842427235208702555369019594123780069194451872125153547999336578752003758518685459343209930976801792498587947913430709546102311458936874397453309838340481651015567438443266237806710678962800019585784687336996546281663340639581771229399432196874194839890825209662250182925269512530733443698217407219075323666168064839900713998971602803996824753940956140581423060352941368631680390353273133913018211148794401324429856746295395154204662310519095672602985124448533348020170637838213985998322585263230418442843510319295885639361543014596333514811332647489986939517390947059260791319231854220327937212793178715436632679064730767713178546903635951444964981874333847319522044601239780927835936779412070205211696279573994008157879600003922353465978545720660378993030473848398677149106701157037955960981953369276323875060570248316418768930641070821575530541832605143534144386579900404169017178917204721903898828369840398450416303683470095385153595673593695178828810202721362471125386752393440647600370725193586073705117518893736627325511409434067217989315154121752162281476495820267467375325380226213372346105788086007898369883064074628937235739542028775785834366054206313746748176237607892551311717850313321441714838092815883178075706998778595608823165545061678684018415540506550509465881156839812860567129616147377194482449835635238784858991072641779654852282454707051927467844712725033545758265636613839835206564511924541370108652821958444831543341211501690388768918501566266467679692762576969343731376123113548672029689506676609333975856307176413672554791887638043887690978482218956509405710593500477624995552012906116665901685017506197991727381031298657837976122675386426810740043580302658341696372881139847789171333113149600506170668003362185153272022949021275563607258290957234817218697691682680889561301198911234405204846403161408476808800956458006176224600051588174593876843049505406495711452409065868671578640256608402894084467777337960905251515575317794990144051051555964689643987691943519803481232643459313323728368502984464923863143199924363631449069354947502586784460065603493095002422343243401966600903522145745341566206412653249437611888803679247581738949244014203219630216018764061128799674953713651013958149516264964361341502465939042154531113252813307246561036892515719463619052288368624800901978133380075825888174278501983820195586293522349982818423687160541973499529822876829622429663030135301607638881650319259113615645364931182551707435805792235386403953721650890034733036276150883048086402551832363164242854246984308231319816365090172295773532846626127418539293980557039400727629432627519223971865846661777962665039294808925725684098292689515103363141050983379984293553001740805759734874158106448592370141883186814677782626336029690723869875301928268416533640405699208605196636570613636538971859192449453354476877200686479659917431550499618112618617699986341794148625120006429637262436976812991120952960468215568534359344055966203413442255494523591926023439490164751664003002016593901892444006319118007703663828957477591169545814802770492680788073283547149733748991489880543817250055469370569276152526377225954255984252439287926846407411972439743898967594097927402318328372269392485131323565049673413848711702639698710669194580801301816135511250824478882087712260138102948072153130385067527338490952735596089423585084797158471781148945185832706831029606505498965523115662834642918103748877029740846188712063264078823486851407456052413505874703564492349731101510323164528027860277140001183548032923851390663017466121536317454354357309627997966386374361337533001328180342375104095841695397187281223708813020569126767358926640102227748264062767318190546622903774076118161207773449541899021019200793742375782304238056462544888340226781958953235131335819976167058285580617251419368028699019617742494419954688051974608983741901670508685637116570999627519686145648700288830683758976550562195242801986967038196889886663329335970381613949623614776993978811956441994018763548521219579940796494967398187124365991110211047157211902335991146372975122927537543169135968761261898640630618938647546807176869777108516308138271520807049690964690915875621909071656980276747497313523075854932698783026077587884286238894864656245275192446789120609683977595635417737970351176199322868649998977159737604950715492575224930187235260459609544311663191077264533356808539902393339197347989564662648845347661866439232188569261969577972024138673538090807733361112661133780543899049749212307100041329873258167845930283369888608487177757440785714580692066429025912019750137172358946020583502945464043877176997247628466842404522136984024590345927279865030203149956659939457021104513522342445944464816368401363188059984925608588153982185088924424526375983126284264563716275575691076831013692101188638679672479702529722606990967008000895625183954966736993609848548237437331552862974346260925900834060424656379267976892556631346057875174720535461383207674725950649730004334341402352896385534208735320750477887418780585444732983949150846090441220306604378794663263830257602550574773891074668624245327251628030608017355780679982638375706272121864531311639114037415717056766556628843767334590182334207508328402714089438547022273084556472569133807099437944566194449778370626421220077297888726236423574600471268314242711223991028057505628163968490550748360829572144491346829803973974413950603724542232620417027412401224545639988905339920202485760791976159792449342734527378827893269787424891767119410302627611916988168040777244836591959848392905146581817488796148895529740069321909341867240579241194778853564579349653938852256796108188175757265524117620142311253392408591926133277510084850125926322571675666462498367450851419256079389578975067239013854735009338194171490542790446066229781806990540635533279115785526854925443114954547667594252335839261614562789690521521895122762572014936518684271207286780706824598743393828036823805076901166351744767968065391694512317401706098320677453250537862947935062001932531367002448913956200585455086189070361271931029386592866310575314972203260002085057214656585582489792039629519145154252201142959486985453382891971891987653145470337952005326349265750096706525127482421897129690166399432946939599530750008391009743697243594845472421676179970367433600928679527156153064967099755279348379535368997688093466436939432467025499674829133363802043275440537934384192420824949703349427431068415827875631007517193275602454552830322564415335001059474464551055052132276230748793014193274755997418526659939291912201213603543413589284747450416986100813305295975547787810703860513450301737358493889316728580064941889080003081040199991735863154413076913530121028060592670433444551105424482567250899866480760112907347955267005979967852534985648159111173446551020824974111207597013821577671963781101778072612576471355467797641753215195191035170481075729393161573569332911768895559162449780120558862689714142786563496051919112143226107565008735097302573340098023371777344324387566005853840465356997543608891758159409952498720378385330865823075564337469616261849350555584483537056530661292657872837576540868186335572434311961221908850344442205148899402904122164997223076613298210346587546146217027618151910136930056668753746228423974946514042050872704501771666133372992829416871676030660597192682723034983900854526304626106465217780209674565277971974024874059632284236722987173294877722961565513847464581238895788134019652272783185465012256532262883406554986248828215733352518792960174212255491413668437887077532278518178033260120835998705990793851132656906782197487323098573092097344561849008974088625381120090592027003013106718189471761185731424187727002979376805100466802668600459972049426128940731450611728741631131211092952375367004378229075962241086748300114092438913085943768472431579247924557083574907418098168656886336595529258459533372578860199364610665212769033025940076202201036866739236476759204316699646987635479292454385394026335653039842099422262034622254967686121467694007861131212546730480970963755885094916029605034706978537408047992670971967394118406588712363958274497096009233101368523335556923262538594418426158786130463277104795763361656051745356850995230123312991182651437530573201903520919898396674642179478404718708143041766828249946771588407729634405006900924532527451059051543682235172298412216377790649082942811009569518726927856410908541302689162547255107074700414969141772878082007905271189358611675927206953489181968372418101243260437081640129068254687777002107395382629389257970467828478145252786081617423975942794663652126427958119692444128110423028139383433400662451982757397348418188640603489642456741290021773560030077909681466304181917791924398961009192910085297749386682449076785654023382528613776658253224226417047797374209947933179570789246739687378119435726700099872408121605063764482856724815877502967754029297873607217125351946119367379802653247980129677479510018859760876998897838703251652581616418528650573917750312290363161566111465821047466999227056316249977719957255726993031794239472523253392460929635256626934401548096326569509186517676258143525769161922261176724059854259961883795071621180404890579954045817089751344801872472961771932686775092241466653234822746032211839700676740042331960743038348536745007411824112901703227892428791376803233826162845414545131145300272830130632193112307437614924833859511192307875083201656477548242134990196986782249962016944199165419960825550508949705128039969062212057440183598730079819829283072575085090763596228760237925854651699203421487240974546041860777756924248812771461531837728802736281378709606878156719640725288974487219624030991331172652033181006476166760272482528891233127513087732737270743474894151557191544876985080577500421120008239925539399577246928641994345197797584929985448596981084251734827589783482971690391024909154251479292851736787462077451112792828532996553618836877614788587958841807658231929618080407875233485130592254479899602483409563420858934305673126403874154534302915518667747320190377217180911350768105013737973773171353467793925835409163696331616978108470187319386545386992604629514252004307237443053079881370096821496945037506989581686669769130788223598715343632921125711200714778945698126367765927390102305836801696457324800900469865350850339629951450067831940231022410319404388932086889843677465270479135134213161895082984359874292098735584735706977119304633577089766233296005306080493840679875986874382047476633713028672840605639786628255073115673695212838780642272472582008515509240351601527896107236500256112096784022903831767997854124617726037576997929464068461403127945625191242183634360346349777470740714158755298602444329381732302295185501755615782461281797401458571520858376979497260191207883518335605886183886419768577573000272849508650038309132542839788865581854105941172592519973504444664347755869352716034522126367499245023407723574435752809916492562605668483891613495565393825917127152037133959090605208484206511707569958319827000421858329089125450905070707396988212289121538518498655498517395232699739489507852246834106979422914248021949791196217858837895309324639215308854804264067963838822912013018250247688848266755863986503936776282671004525097811246282975306499921392734703962070100705030395774586981669967122685884331351980410605110724393015095738269685057662195293313627404345555372864932300256029420667632725084707309521544277470155617839002375197680672005651703073669006732156668894245855501553352560826089857981778671789568391368603321042747910709439318918592583281416346255841500334360973533670610472937458388652107834685909916942090309415386135770014605117584662049171704075232826955721046507673931637337088564798089560743267793939826835962271595487950898933976088033246918109700763451902880618597417199280741276565644702769787368851402651377481112195866666306711191727585016377187276950666572659482200479489957625952778125681882487651896628631237935930845323564721617404735406198605474116243597721975354244385428771726926263776105400282936370287025632948542641754570504520167517244541548453793471083551443968499872217520376323609052016521741619798476665796918008366580383778420286426382638463187192388058391502504869694118829721879394606576872020835990662379852907366582853660837549009294445193715530514649938761660163400858196969980842982966087553995685346783221446608269641901876089617821913761457833274709578890248619056479950278583673062737212988146379390964403859325463684799771729978137856315322077417943101141689012604987691574204680025811436460308000689841180390061391546008019108375662031033892330931564960223408807198063948275268541664498640611203001970491985817333853621725729037937343070999786192824276372249086374649024046909664397350488818639371580949657722877317356134710314756503159224012477792970985501500054332910219816905520840901418337454346236971506180758181762702110747593598875860105415313488268466136150271933443785365987292980596471875572666412170012675542253946354332227546339584159988740462814822243585377800129292351382417049696098264124618855963672768232328292909688845764165191103253970420039646175509946451547590931929941481254970556872209873554511807745228348913306728218840366336187733426214561868038343215198065662687133162673849624233748873291455201545710071187987738808024163925457774997904575522877484040481228646474872577137618676884274640124389490814465109540313715587287262666886405497774770473463424431674275251950035205711146995223878340109237480444995640955477445511206018262268722464352378925839833701574850674133140029309588076969766529524310779444213532282517208752952148938076392196536505916538096507243356097685024538784718651797264372773236232918908300418705359597831975828664767171480892500633333574009519148709741338217824552511628481151191009575163542498384102034772265189559050360029452001095473082816337655592098762703487377696211039851958629795697378627726576470806886159800084206722239124163496513053319315820430296566320076406936589435400397271787006373759145967755801616835061107481931922706938467423381856302760855720792300645228827925572068914672662244912043350549895123691967221170282117860676101602600799647721683821100891343350793001172297982396609987294062966934644137063157922848920970847867495624408259635277744409497747684988971838451535661300075216506018520133168604702172781767348867137467999199139427723248111892047194048657415629780950163213150004344995746000509755582485518371255240695541640717676741942574829539572671340235111180334690402178205915756117400488300501214620197319077583990433401739062607452052580101559687300914810158931381675707337241265703238507670636474608775283856478765535601216964485919653195178351134512936407345933342037957380777991692915844741457302871763087734430591630204320277094014570088156511914165477186502927761616508000196804323945384634724477889898582806096013969340004848980394675669870122303269377025486361627431931334052785321907626007259405371966194020336021320186541952534197014769161300935364172516181449234558085952105620418801466488288232830972372794413234759361529622496313719818982916339747874067544390577592949253854478429473145356180102622926057671335119520937475382144685996314390080920641983060867817404974142113359251919864735389694485476217293036512766551703007863921111162060485039748628944646874915075369085800924911275659142055892574224387525912474830211287032000862677321722851439028656095378127337636572641019255229882573567064835763328240127842585452030145442932577034084738517290585671920978204114289415636212684725227496947688492042330651739249404844198675968338570772741079448127444014368731796903604149987907046430129195217049886800527157476770232477309267871817484805870390220948497165339175325627628321803098892693007272584904136655547439877753572869885424623254742656102355010977814487199086208931277321671095329774041415280585746759813420351424368127351072970941316304686648387875338032216680772218615238387345447251576105349002906884499007871225606353637180404000236006122941443683970120369822635715469888421473560569261731644744211156460087334630454646044382012305262723844079501585274275216164594081099382468578256006568212921630067064611326812056500044873846858281410383975964933194913125464344049922563809731189644236295795944022126308680104566071715201563424442849195464577402268152085622660523765243900638320338506013116721772062977342237248909778248320220864622440504596263628143117506968716241628116256304576446690478169885396805049351750990226950172983880852195044229940000426126252407300426630471013069797261466221444974055273256790357173907359873123481118232589716025014957064794422177061550372397891667803613485969989552593495216577720423194533868525672289907226449280476257744220839209840867242596641351989382588284256712586695747186088764072598956531918245597527876962373644391389205842357214415110605027132464736402311127176963167209537952021925112703879218751895913232625025263770975146076414832328229915395782340875832843980185655422252927227919539440813061242766340690856345769385841514935862672409606040488239768885888821206281343689100084823763631158817945922933270753709243904276815492489706362182821020375285868197230869971889031692984440618001316487622549832538102585468617162106961484206296712870502793492393797231330870669182632947506967952766221662073163474336051333422738606015538853210477596494825433714195784253531094531006661150396323158227895114548107014551993898304900268604231139709108923118004182449759562985367983032290157621754320450764965171471452557890059451794691940844570775632633564893697698262790302620766075067010536676089205628147589914003692900158237093185996319800189128436146489016570611941170727479083483366118023843723169935711082565471317404998930608608487589861080355805529624757662062240066669723347044371695007884670975883264449917293187920992935590617612979246690570638922744850521738223284175557555063631734031216533324315814358729011195348318539964260976677081070379553416682365864458854733826398919422182391548542371921910633356622238302233378588251086080621872107128113912085934827020342992220363077169619250029917246206896337797334228999617770583678110404531965253101053498125194722711693348836760113449497114871154869168969743823716897404465100178610242238265341384674202052179998600558226110324298534541286520887431409558864848030411742217311959363238296636892418679561990178626712565461491730024481125431862240617671563709221497612903936427250170332900754991361790671586664778632451913874622448154668757789588499503021964357732819243833465855915524008304781957894335965577714406329859805752442680175195150352832870516217568785879074029383343082512107052475823029084907525271954771225737901817192212930934499613905709980827129027264634260277794518617779495279670918058494647952097222373796624805244669267437957436486562102162731936491979350647635144564165097952715593019007687083695074424194988757872736906899494911699969289494400883898162761696453365245693813038374771312385381625417996948153408951522902751103318129406656805070883784845235590406379777229633765696776254555596857677385247493981830464932139902909926478478503633976207186190278388139295835904678234726883440891328385930879823486339210294818774336317871260157276815367398925291017116724656311615274619468717299239697608546965924199689221647030259171820066576858133529358733743294407069672195248701176465460193496547044179448524417952570735656928726137695554807436092919331365550542122613859770640221317857248820170145127868820506770711509797790861736710073380625553639743034670703640369620798457753491725643420015136382103887502749944607088418580192099329198357851655487828103435982906850108319175350194439147473570438810485876801857701124594710874078792625749068659894148109099085547423482127264723114708490619711458431174006836853258938492224066386377823505823638277213445149393279946112503566946894633620581198518438695358702357438669537498651869232348459013779139532872198964450275503200679507953622124173195739501234614761154519411631005289790137018219624282082426439020030946082852385221335763705641609411570865815233196198820123712378010532435370266999191778756890044229509804852623350723043357513884075125637168803473213396444367300469885379523026168173269531730550222511214533077979229042668160576707859138792007752428490628310185894212059882042031688535538093080073542488777493642192464182521086538925727427157291075671930166337680566277313653491084402427892552674059236537919967090796277721950379743276683896981109115633813967100343941805092314882380570011592798898251214517137595298489876419138148139808915450715920549398739252039713018739967271033716445562166758776848738110437003345043999508867600580997623344992985477616260196435733208409805585064783032885135964475695709332000627690521430072949133414479823226029232019588498021991114401736056773590804036881326624293278429496271582171360552946460276211679852313409007707617437077722964529287443121468134618357756909889210677434761679807961975213402936781136367402313453388140685264356571089790471663408097392852206875527120262563603768842645539919356414812732619248405843126084679262750544196140486607020454542651672042712047190723671741359733836270665321140750102840408098909167018806575919345225883467968325378438127914260635697436812823506307272363639290202559255710860902341543467025471430323353419913393792606792437957674487096890562220970978200266718622576682238757859541847462996757542579692715046333368489416025405285495439686328993091907757221506280912781455202033756549170078548375198207430035991023695882433760756610194834535372151816607421144517790939233032000948319903008453067252291580631807683633019088389388903597648441000369258954458261035035812657562428171499981925999795551607571612421940886648746806715389970093293812936366055984986744756314992016108629710668360938231975018350011938773155552586704671356453602520573778772797997794788752271336860306475521544442793048371194860872214982734367253984522047851892782296870944880533253663888841385178076925972357190382954978062204059026990297270400970655915269447783561152239906409940030034819352623962890456713900413898002592386714471869961345789827963038584161463648880597589873217764192631113671526255717206715791130419619874574643657639753324223516588841010990454220605439857548916623026654396620705349322358510370924940972664648098213939019414191305214682117762642799922854355511145695993702510666181148561150387597698548428573546078091561531219040178103569474016066631501170046317012445232508812521124945057304264709720343350433246988113217649947941880653727432858442264379477891648237289822545707823429880211622556801485074047311385903549609098770688819750164486337124677340261768856331710191991068959300805324765121642285774330602455032525298967568016904630034035070791769159911178765816664645260876737780814910973288828379818299696100077112479980405085878792956140228975768440361566215915747805979520560573872587344427677686881513967304661510149038422262446427132989104368024408079025863739104142969264353436673331329863282840411523762769550969979466248405412253357794099797265078315227802988595973523783554381161791467402314772327257291484375185412330772379802078884409869141662843772365942701705952340246078773937065884790474136093110808921540351543775803916651979522053723506516968791198764669198279783436648931382315054194278268906224977001069365116350292417354945110912016368130643243258161265831055883607716684965388994329039913798975022302902201870081374490330997789939723854808491577178167408233962546065568118149661076315371018288610978699479080608454123389195070795329291873818614933128821220885557808989792590179082066818567690271745197246438161191117247934461234317553813341250486213773863323402687960897979130840557711676311491645787973998463955001774226352782554413727401197190331186784682126551461253807165151353790768792983939455550069848798243995904428812170185278628493140806770653253762460455750342543388635957512819609428580116151865468711178286224030868083545753227268975628830405276186632192539406506577758656397203934669201258488002444442642666714338400000573430055068462736325340028541158938319616915963396733208154238627186312324228633672655757318364910168746838865612116145541352087616826901317339444637180978876697116164018427763388075126960162841104596866254399078634927308764634253919470284754570516019112514989435443875871536488196734637525987644035507732576734566388436816209290654362303992294962697157998422109667466402137575388716702903070931175407843553167869717790554863033461036911511419234241148413686148986456773580106163799407832140045138868919506486502057703625345845586543470469878392346573137867934253644343419326211131729374185380904651035314549051322925955241708353048554797861906504476369980972697384154859181536223621731296873772880432153710577556880292569101009336676917871841521435965245536235964816850635806406360860491566981990408256378028286370029990326623117460045177417578135810653771751153027317996529864567052630006336371760020330759690010859852724901153977715892124303861851634627359218189425085390761408540583406983199095479569237956414618321583570129977934380052664468399911740434037728762540125709635094551286324447430333207645388622836099188410080604867633407705259689263590075308292319781281295976718505324721352734370699881368852345889070223824798621066231834973204012775596434803543689925835766756783467400253090880546751770342605371790377597912690238186638150934532206892037854968674475506659328448886917085199225770393881817744060836161549422223710200248019828140728723316157941442970311377946998965435270917089211108687183963191176669501212670280136172902917097763534429318285729514599984292367311452093514677994245085990628975763433309306320085850858751319346543836046782720388119874705761496976170296281542433733764818364958657724280737842037562674934260879627282975390834205005090671343722695017830216707270500893740001923640397995396591483366949428377972465629278055245314716100150916922724528174479116666066250598351681691886991422014009513685238476646109015903488944541902836744132353486995642276556142295066170010942738640370422525377543188345557468734287727186705350311830242445706473200539335476054612879323549297605149157890002891463498049897177169164792472181513643508071520050560964510391275374605163811673610421580020940034245443706732234665237394238411428539044504636279140176374011166377749711516564698332222354309403507120589489656042249175901041642624894848794426323774962399629900031322420811927190766636195645136108140208431510797826653938167901049518802499223595026597402835547712441140229939104511545656416243726103687728110878706108866680752831134084886145228732424905252350640286080480833971361899416291647831576663329929417408348811980063207128413473078426646781332895034502118077975057769199913603846712971692711412027174960316372922931561399639164329120067282003616903086818015046711822766638195223084959188640105470831114462633228261457914297201275749112579495355808247680033415994630227970024496397760993198075430284958399794227274711600936345318895876798462611399313959558595275636238972656260280777879811849402304927667762194921307505462322319581101714783900955824812846340187607801365273228806482427931133002275773831803686301695297238971160803349486923691358649858747748261138733512581788242323488040020171343798820890513196651641419251142916231866298204238468099802014029173694299710334176033418372094374112536821103751921875865974732626285046247846871607882829016292540975571496709023620813599789345836606823378464789065066242936242183020023050044193435735097885081321633678917908588549387662124300767475111131048938549420243683104298449585321884794051810111445835736065311738343890448261230408858245876173690629708779289561964321348954260111911418223020602247783634417914205263366306949356765427435111211068678512746165980861471747451464550734873497714746887593997519737747720833287599155975796387191713667352347382646293318524753175012366393819176566854614579407353621223259098034053312485197387681519139363499531054162450361450214917084684074800175654919373975095467285388219280994985831010431740988625408231435661503042906727177317893654468644559987190183734384633150470414866876135392292321178731107481650818748394222402755008882022265589230208248358963068310953415878146229732596614945505483055226864212185891678293700402509481700062557229076944583553647625491716503770732811855431740433497806800266071979409141296849109151746010419718712808184429541169778041720259430186892034718051215445203564246405183447499997481050289217036314208658234609814636797552872942243974319564142241245981035033854433267179198845022494928327351643211566961351299760268247037114209218550986740732844374116661083380208930804451117497222630454900097452386181275567532755017711529555244204203957496206689629479779895126959501848814426264201516806154853938544535452546603381115585759952544464442235948420745711438970178396848507070761553706517896342525462683207393515566466938285684459928394244239370958975509839488154850161413562947117207290171411924792587408754861776710412129938753289445256635670224216453098278413380300023709395578021635128342946721676010432682732837810839065388211810907593229412368140079114568178105742109001351060872916222240166390757652441763050526041640258085771110814812857565851094793234310794118755633936202265079010374792896001478554528224074216816810727965224069506554812974501112983482557526252962895725894757830364061156878763976174314859605109166273673425874218069725944787787517547371361551682283941171972178809686433576450613719029579415599437680968485623237496120389953042285783100089081806269428559863326420740637200542444255930030350028796804515201833243948621124187132065872334242433400131525689988632704065504768738265421276547738946988442933672252383490841429660225164157331746509470216120483389265494437339944400461973634871657673080567538632092313133585091399685708102757777455269604512161635836859725379973760360462710374755131057057299402051493110588252363106775988906843634374385518119008584188367129665584320769469496602543108352495467316784399429157902618043321120238490568937244791555023400654270971234283066857600639009171750603425260128428522166932725836991354947427515015017771717730839000483630776356514556220389346414577867792223116970210982768437863007800640686314165353180368103614696920181022064744523624497438159782927459797903922743900306676151758128348161263218785266704300091670658293779593087087132130189890489740875880227616254135707611293645348292132291535143582929373425794426353724468038561136983371612223447405988273878876221768544433082743525442257123348506358455882257460724207037415362459514193985576190331864161303981405545880820766150813746102921777544003314235981758147939420214888148114704432964989711435312146825244481669744251552769987691036233099643435100495894765943801369732356023224683434059292458690121269800167936229785548215587835356433861670760329740925283745233658396577555673236195021821097799685097915065179190871928898567044915126821037890835479966047872377838287206841414153732548888090104625025776048882538014765277758107396208393319684096503840263743624431519374652528813927640273989564852342887903303229270097740132329030093572622896461702949799991779893722437695165176505227415020455973847127341494381342297564864156560605291602249274332881962890312418364845474609912616761429745533610552910072878976124079483201140926980315814838558245088222101099518834996247275500890587620476731996686800039371548137863951179175688217030576941737993508695676801541196056785644366596450227326173869516773596269833630179328916997169022172015076412949757166725859728556225003117945955491087724549110675869016905383191189634664970537523568650664543002754215265800681617793126666669315062801727442588605936334641999968997979041301195173232236217524327850052218718757310326809776709233465607952415807353625283546310912986762608179670699513450108205723688764084275422739987720592666040915869709431031297930528652044405654090490925942944041483727126511640295671486937460229556855949304541897757465449096106966676601110387746518033870629728723465225352549503269940683770152887061272695281648135966254200654511690772745138902049932405197714570568139687401825637352621562245868267718914815485016292344526206336508189523031432097600016189188595865363986446911579993124983699992649365763450806042679429416831784005825051899876739617118024263860226857875945578203451217317109413720566358593877383804790421499507827018379583342849976699990095555842428771164081565848579924371478781596349601180381610421718663926013029725551764657958387363263288235469004062472959464762597824374245991131890032415309073983796963351226945374783990724954538299206552862474717151522044721058250456591838419938675624675527823199472512635105638260745056594218160140292258085992771412984019460746348629178480493850004483488119807088719566505512358130003689855667644475751252148155511304526828084961800958972562274126462646107126534507499441761607453730849250490113297404531778580986318139741593675600934061226909235098906947400424186761688808904751182629372495162512965196635663531041926547957621200330091505488333160086572379972277063606441176742438929599317758890105245100657576116649090329270563116718855714258410838617667595381964934534792367614542421298752827176189587727714213977462361775047471052189064454800076707609518107816887970292760552035642542781238146251371842829884836857708498555391410140237286411960029072174370279956392364619265312425511405500451975587294120982230370681495901771113762594621208958927650398740423578839181451453291126984560546396907724939045738917416033163639798762815491729636569757768377289568899083970452591344073429826001628617441493333908935571533707965152013794152774738872470341294319534587724595687172509137070928713095686728325735906523695475014848855095622861171162335745320239510135356624821611055810399706066937029385632983771485554653924682917985621822807517353584589302994727103521358103673102116136711958981572055169574790436993128560328394401348220570587037033203512384075700973908445670106753512915274791259726955680885111327302960630092556277694968650161528879337541590316628842843499640937758813260424172025737188897769126631558445747443005812845000138597692639336853690463702960594817024944411394286217152078214573748436208804586833699359891336922754272062232541853748272767028742552595361735454513672209809001544152522340015502825765011028094309284900640806670698330167218351551047211911222418668079676172694462159928353414666364374385161099352988105055794778915541854689735314633980249803168652052169771621181164899986779923284145204785870466156845866322586716952758233447779512147933095003406888403379030567061392461332098688533962362858083722636656743812572833490231467375469830090831096237019871489111807798797223624672538124328368771980871965446787976381898510360039707259500858275906111517111130471049032814938303218644390320241660864870327108542209126300665002087253064039716179855997182287850501903382334275780799261910515892839349056138920312494754840825189917009976061972639952592089527214594129122699651798533377132113767956675141384341386309988005190112018769895764551586973189679476856503986396605643390244742527911222114169592350637634537056344291497861417651975058232452521809711522122896666855748287856271958698016390406939610764789697660131062330753425974907585624873448206820211247450118539148327141017771733149265889825985327022512403699839183921395192948272258933728752159595001045717638097664202651427789619328800594737634195229128148690837445399405621984994757110197354986767539749742259549168714675783216602451372872391164573386496918266542563549930861255906438185307053144130757112802845660395616141926508111087123176272831695286149393182498754697335459925606518716369346912928702906445917306563401969503780923324066774149180730038584331775208666167333682595591787684960500183376914399179235316843750338111640508906357246246571960183480086385603252671597383379838286073388984058036680792972195524492388239453664970975530148407766540191314088305815639478665854686218561512318350618394031069664736616677242102837070703796934642174335102297084755563674244274610735725548116693630046501283495077982185379862665746553789530355087755502958574772285524402193117032416030930820384758724781817026566089309120112263571686239571763981139017862464693850685827129807350213016917137765963421846668477022626793041597213057589121346722227970755435228709319487716988106691301019064240107913950289878655796533899527415700206899448292628107155187597955951579041207757991597064269737144894647299681587349869320653897809351341410897725431867941592518918157529499729326624611387702059624430733945819415633843277267479979692409817063571750336531110684043450313758759335032626397951556569972628544876606169220665579329076799098737055120705180296185481262414803163179847507564834816093932093274049558362408772933328746476410078015041326599039054336825707761182835341453668211629635621506764010764503680681593665392253058652673859326560861190822184929726642355456893811281991422816733457344121534045605674463491566878992458570144859285513642444391264972825097600661752805567359967690963004166026220380095719365835579622320271787454379015796513103555543450961686620566672873100801606847257523540213178813449010372617967139630725245750127341509442365433569417030816385498035986887021303411298381930595185433805326113725718267573818947743570337290966250393389187316119851679180101090987768899090154704394919982989596948532416218867650840920025686934399034151767013676875913656900922346266409773145518502541738803276010851145019064441088595079108842968100394129838494286217508668956453032225543189581719742668313528149047381758816856330311488046411030735342932104312953996318853114941850712903889867091548628061569327851214761980625617139854878194357248879862692731603695928352060679145094024347121094676603267890949070521158497398372543364940360020801218887014141826695815613562736676111267227227479858879747855810468912375848366042958367089411208934802250702307229940166926607125676452191192097029140406804552018797912866583571963739250349143301265807794375182770299468114311892045723188515680572169690255624010586232236029934861886170941897764461747313425208658060646147096492067367691869992176690569819127404048283461552799018598618478303442686408321461508429694809439455700551197720855153447817306829280597807998281811760452940510120728952170877864085392022560477033106681953295817266776340158182763474828267213208914837556317990250138671472698630742188565372006559499458365801175986814685611345347894571704160232205568223285789388291014279395132019581058327495563478499038660051433440020577992470486137649605670855420921074720453355733608959014827607556053265484245590005786098609570218891248141510747309715310258848258425474201065883971642853655922025969223446477862525408524881708512333355909328297345156295139366551773497210738400578339911822371248382543805063521950816402766414178492393878725194308030052827914223986252906579990623452972453206087295965338847106491662853904865439239318832480671045914433478352344032440822220016386957835647641416638804186524857216168468878880315955985879021952816228510566588788046809906304431995584233760938817624882701312798434503080445910130219256143751312312283558112856135854179302063735711291407705501051960011257364400720871788321974718111893219749405850706083570057039125215648101234571395961962811681723037166091919825520883155048583611427702345131156885192912315203084879694506559952374386445487602263051579248268630256555138360606912007415967072078241575881445486808625305990840289303696057330020053057951089543805566850457397043332822738338140986716332266092316489895109378787306291426899224296350668197086144641769316300254213238335954284284260105837821929542165999196170783622222622291944911492293788117474395348209104834177256903184504311674373711010025006922262900730227379475237553801871394492993351571260561945761164372646458467457513347109774477478991071423096004854654157482553744128012084816577321844514620811284703342466564677998221714088248111908682918977444448227926090700168167936053691936866052597340706739946579028577181416882731364539513208892884726008283587071972460765133646161684059343245311437632971795787882570215241395275364928674981445641327734435674077993989525265309163018424362089651502133389282752318736151174395265943097587189564916193377542598691691747401485905981284715065895296106776911440606350510718637991319063244730567093671333334591743106400182951086945543625945951864001181147967081956195381427380416259065936466833831020891892910171711401600174978343532305104019207067017857274901056585067850345880878505978124653145916041453372117549131115519017509512053094254668158626816346496544435445267229485286412169439124554800954776564540275667162221216973592536957487972200329597508221920325483952803877562572384458426037974122880393245664903482967348992766857872054308992299124200491057595309612231445523964565420208825474713881139762364899095517553552410401904365379128420287826436426156577149024936333581115201239450812068638960273174114511023612606832083043852919071364937915361818493865320691034728982802282287513187118928676030221422429288908284343475562230989889734689101872820883560840256033365871230190968573100372696189076227701646811834890680164432524086323454703691931457236186755792082255152100211194385470621007007402711641664536630106538976881757239589384250337289076403101892668892914989849803166999271272987769227936084126673734907608807340717888864435673757747180007024739342263509120484240543339157704173272531523642194936914482364581046314030037160322405514036906005627856153434082561622177539247722103417771745310815220242896054038078677432846612163165800354509611676865619792840212492234008758571671488350527193943109989370040342974201766413119112312159609922137559505839753869784931124876210447884163248266089517400191165865921722731221874610411799412418336903084643159796969286173911023450067637091684185907366908051351547702262558033649447663069137357593238150252784244688945460720839530367469976312302192072758107419015721401617886762265609746235403213480791281026653909304766963220673078433589856303414127562770973636794611597768308298550526343592923750730722419697366521557128465771951970260460430155270174707440472559368560015369570565121092113729974958592820286313879293549511430244436270192855205043087907123827074317833511981573429370992912138201367828301826841115457281089676353752496943519433222951118233105982603823861033581943934536849253712791280024635589411249608048515447512399490674472041551687717567730550820328260022822050581595296972501689112110093384030951154239998254748115462691913521877259079054683460879353269056678859672349923172986065455560450563910105625769325555911940153681141721455147985049856611004870278994082521410990681405366204783562297772297576512601324043676482463842633019374804077266323125056368774199927695454635452529025293696409955413956027140592979838873460241362492710514993259294506344808140447067430252724049274917706382600142571782984389432748906336648228981960687204298116982241025262807562336794665044521615472845633678778348540430260675837136961376241758628875560219118706423996478105193356513577183045168845266971542429500066421014903012274936481793234594603882810018977167054987617612736672995888336333975715408768003786154907366263591056607344102301367428554024900687499965458450109774096202170004055126333237972569312814384305922503342346990355735041720895024026094603962430425043476850938892242870746655446078570860905168747006395452016928676485780993055748426057987650166880057863826341417637437347148376014861783776128634003551265130528407736604910785908506629500869534144892800873687011750381868408494154250047090585311737314830293174441935293618487469093519019394305695918916912598042050014404980021273933271683751565118258086148078397298604299345450601627667191932368635046642119615911192106809177469243580490434585076016275981251424376166418349917738650100152711943945363638378182621680768887070749841392186077015823947870861004944948440628136348663672155045771476188689082490809943475468100701067881406799739273257798703836110828797085255545229739870520145218101515165586689075952231201428316007179353948647191281222735949988624504461914491033039562997571474303023933044148581861016333109089656341368435434485550712891872225042318952496426555787672343290162807373477967962183373673022504862871569208798247331004739629460594981644856039881047604928320487694485810520620504915338673774418598190277831391101953479849395741057342799795104411444820528300916957194684449692858807734038898340684316991378255879290987516404676746886563954821799761312221297741366681907557373840513901688038841727773426381787521779248165907952277358724144769635695836235515534379482758112545179089692522578614928966148106099222788154121513670342881043456478484312188005157759713668717894148313865850060395307604684228604986441039060636256938935074179222165207930634588407140586865713116285605168248296022267094836550631582637086411204116282206599405892582149427886575355105073201542468083363784849207982379697293325552000508634870420513928561274432218166976447624753692865120332144611677732465561107047641275390543511214514063276454452991810658173316247407138925283464419552849987854535220592854550347029681609692845011729291248437053378796788036420555009350872309453036036448881157565272626115827208799181067193646561714175493468109882251576837876035239624483604803467221210937347173910603551580618800362212993016269973689357972003660495104752313985903902364168532773419202760269781882047838617184873229550527175754844946968798163257368926338206048193672846923565598957015063907741207595482931773606833062216739015294506353350418800102563811424335878868393269498153498128825805568108543090992684562953187872970666635779302280611426569142881981357065662746638997624521637328830048373523979668185476872621261005581638809723125711781003083059897920575430970697726380201911649414093197123304650912379124601713067126329341658452356041396537031432688761166981651374562684869793364938500927405724116884137151244622674517425648499719840566602721724778193738626217693368883007637039409040195525411393005890195365292889850569257307825897918014417717024351502693757263877852066383850364629713107261031282743641656283206803474138695562719707834204546117520054622029197319609898005101208182274930039460747455502968117915727771803929131120711410505956075730669054728709367652232152388859363363089493520352323945997039340067979785184259904658665582579446511402219287773377993482808611207873275760933681795231377007754256356218243974059907067488209691096253005056653887000196656074146922100724660880165673461765778569971990209375743826597780945023661114015379935507421701550976146607803845939605295491192068330887658916009603112192630049400036791383168396637184028814880740898378297308322415772249803501607651183028127494491505089506257201642976664208531313411726112186230609964755959801635238123275119188208330438118394196900900381355827146002257728422783585203260088250908884816569607119016140574073624769064775012616667302022804246605520216642726478291780635513750317680716144367618699709188769323922587075389982117179279378421317640021277488037046793862787454291887125996640433629485846539787600929299226401813600196807166771833336652061871900597636937103356931645743669297105506776730949952502667707041053281294033145383043262695500107919142986291555138637977011652181459707365082635334759895745374482395719217530047987857772946100281906555319143367703475508087102793446814749936532678090414005497636664034908076796787308224940315454498720039439564472566564663163330771621886234391746678100203259091027455888626481608345997184285243626589544225305666383901915838181535971058769046082067967666831781520794226659153732061312264822250392748471621376393328912427254598361749767280339720612292543298147670325029415351858219559013744109575914440074123876033400805464230579772514161059105908361898537072727880843364856091968521364461093774823747777958505162420869753414847231600370017242173817921324278359466076730584118217331778937330073096388515608869702509264463911916496400790436815561715730839640654111829782185095102873838891606397428664379520851927745690769438620033662459965450085871054011209395968853027757901372839741405937274184445355353941695727285021977253469293830945244443488314031725821546533393119545398352357778494654505804674038459639532741423622447824533680517682591735792993748004654166971090188804107052095886030197557302228993851249750750341682708909756545535734623631965148964890757450379312937293674637138402151686386423438345962789848484280273245385950490239187537715924346172524070900500135951739609775879798799292995082721848044376554720912145289664247644023491229897389156028113177730708650514821710856018802811409953158832456684613371102207643546304419238538191753588786285161976278160942507418512899792039004279426074912794088035172809351206640895162386062468956932401587011835236179249567061811076488797276340409594165958904745327776563758510666315466418924306734647248603581811577495546401778629826998036562853893029539691147573047803902250605155279050723754294509895747604660667354118168773544691607319120082332488372766194481512406199697062161254167855538748591883052907680409347858290702591366211283599308684307590460956734382633680887975248552113006306667609051560859031642345370434573075420274994928900472122997733503037373102255422703730992835672328383555098647940845876677841106833825933513859070228908433104104839643367181429039559164113094322136032277812403395801546815740367414596398466648335813574787600696925460283868715251288874321061200143368102495006204313594653883386036244753510919037989476571437862757454116494776168388214357300509540558489342491442345307270268161643084165580843100333634920219652634241321902678386265614633435122409634970667960230949984060289389235622291049794410934281286340900499537989881683999939688887894222788649915511363895271069465477849471893204176918473877391885006765564050894292132797144309384689085506459079323906794469130958526606097035982972661400512227901072970147244930179093285252342013793254312126528051180046225770628717273853917728544432093264332172406627625427685597745377810024541979783469816586142335497103181563529725777921179023016606289090188936479710338477461677194590357182131577037779684458061316517283287096672671007946898581236869736662178879006591131632737098178841562647531240117820366117979559247974220529756910431552475027463497582736469751520263680058322758959832891954121652727122804305443311997557901162140283328248043834603636280232562602140086182353526825398738685187428432719077246516411294933618250667510002689619680543973865663704979604289236830944955473430896900329205411870065630291198095224644772158336161631378456948783345504900903661532638548048655594914256979059117227176979216752745080760600047493904440040986286508426260909036270125484567574380958098032118338742886469850085824108814775227867121416861234640940339643282689906443837203372711201830478337952555148302553144027423486280571689606134573328332186108805204540824464559639900834664601524869718731802655618842540803443369021450279538758202410246164234463920038739944278527831912650666351683191479541106251686050916441134108801118672992600740036939023710731732480917219311153354289811563192641973428462272066197099957625005610778908128480148707952947881651273855735513882493660174342241709184210068926527480499519651176622970775440303748108339703067693985258564807794641575515214660299828526879564111212440358975708772026075666482709261948360853435265052508166618000057864422735118473056755266155577885054784480780658080966649040950506949159207401388726338595570226879336455745862338945228242165206589051522271897022976113378186824444971433580463589888797381692983725056997672777284487007143651591264549998652740725428122269661198044413644531796231890693748540756273307495757947946943947409218170024432056146807044003546145608444340124994477341755985979709418910959532420838218226407218656415326148094060046024574700971630475521214465898339904868389229269205788180662129265886092586615641199322089124918285142915166601411598397637759366926135000307379530737186875259322325090097125563609543386020340503193213749060451143017229669712282427351632957794627471821825230175825635583791349212959048191608562542087942701440785520718242611219467120544455611168204255506853090696895100620294054049411227814984148439970305090693323217915484957402797643365604202277622083606543522613621162376010067404721499867389102726597285576873799775928454460689119238827603063332896530968767309719579764715346182129388074991266555781481833663370800030629920141521537165374348187481695641716319103051370572612342880028180848327099141928300737140280154892645307363543963025018018513206135052216720917406289183780473774377314654532815503432992084410763471096069720851982702505398733577054528955560300740945392312632528568816603358120812782750202409750206622156972145081823860307831739498314028611439997028824905147217560230265945100719408839978448030865376254398570528073175554939915103294845809077053445592529925452726161235499676956741727953047469734593322619677918712994478049249399807502886044958157196890491617839049435014230629187386379594357980785692408803322420501306728461233160445728948346291305212505877613896280023953835058504761948719973895534905671081444265851417655268923619705962120295272993712490910209659362738460322308885667020627018533501850734043850680443393975201093822412961304370208795613771615047554882396431205077744780329450692323949376438663661905178136980729271458872459055779725820891897054564831318171516228247134424331209981859100280365070445756277344237576500980007336233170429648347818182734954529271893511002159409054900013819965998697383668847002022985505519153503880745796440633505536227081058779248779734736305218516410250949641244620115767810285766950397154239958872872358216879838065408431653694258176958958241022548952632383211852102239544412530299827740872983144467698873365388986607822140844928122943493157845505456827232149423576168271699203632625505093728211992580738671532981478706343601178594408023561972131849972367840511233856293656060051606646871233657558219520982394068120696334928954509710044487160348557959886389113624221180758736846569788805266269195029971984050225231117418207171467938949936099137384033415453550879473235833340725557655326765235044698945039060427067858512618133083431897568016328096417662629930222859091086574176644093974435543435262122792523903505813011043476667085169934348968099682852663174541778812091896743070852953114509926028111897471198114667532626099691163585679679241427832963939843541977262349799919358459818922638846835302506420259228243191536877838720069969693397571511831236596024378321150474615938296441140821167175998397482596515638817595517479200830129564279753990004873559147713537739041043748771913669221947512495748009692972901290669105045215332813464442633320499450117429252017130009494632280145808427396047176000015450776315933900335462936456821239453222792690046677800864166817687491145162277896923985192622790248439738003896307674943405950853784462938918189597045450831668638138670789887429274036857432707500488591990963975823665316079226461455346639400277820059718692007003067528414907368268436965194386486372363447678134192227706571132219558191778153006191195088867824585141493568647544552344842878951700127455320663111106015741525906848490877094652478453040484763751849793374312404483280960522632155559525414224168993185344847965422539519938329825034191519990250787341893552628619368370787142736295230557454569418438064542951974980953766453858973413494939071261978669721070988099178563558467294703274301099544813824330713454050471548175350208683379917081705063896658157293999105949858958706361217710131056284080210734249821385813523261932133288350573879115169076479521628659158947040463009327712880975600183988896759831358736097111038040460947812425130812912218915141411142929450511127609865310366739251743635654872902068853277793360167088194843607884890741778183424437897798265128534877526541118105801004218422893663186761418524293050962411176093441770784178333310973633375276879644515102269208243933639308046357639232916236533034361698280866855802819133325884364041262484215118725215887699361385375507173504321836168266195201774533722283557109072321719517901178478440227278712215379566684524103514139937881839760432588895529624097374479628230771384792086917573318255736447343385124999461334190495906426167724707758387837989113396286877464369880290102033472228950530477040498679025462950141221509095973490785799084445799679672065710878680083857096259620769176659054805659743064257095908715849278165324198728818657482404917126668104440166937470997768599518940431638529119992915370430444228373575156059346453961550703645911980423586969622763973297155484246932767555041379830581636099689236841253789146133693254951442343165345486084746510542668097781256886969730290740184825311103069236846374865298649736298665866635250462094302992742904631978152875037982796159199698955157201443946228437939208316993322947724836609835154734418164993384908642192024573580453149406092018652179033114691932627966009011104864694748664683786568284478797534189129042574870256410488086762201927173674454864003645331769334357555531807422526770145327478036402667995571341743422480149623782550660929472280059134039437333852169262297072088687830951959853646511757480757151702771376300184463180123379669085311711684713876222187771220263057059774286451456552517914131042461220272310373611558030458835475606485851016510680408460821256668973059380085481440410105739813656701234662341729006953888431274288029445640905046308410278122097348191237619889780426248301595156191329811853896368501726848523240860708363348492657740322435415169821486409775292235584089830479620162603220549622614603762858718648180898881575842512159024264429170343275847815733267012924497282116161720862644415077544816002614682726102609137246111402600178268905443602159123350356948562128771482144410966351416859921710532052568098158519721965058745795493173793431075386785160712618366082073212493468023518762433067496770806787711204805491501564204741487627853704966575677118961670328525311061021862246691748900772451699124882416758106491381419978286253811492146316463953280340901643236384162220826793451903642665651782134150280883261143653955184694483300830182221298600687976630613384458022071965570800218452148710706834940783832522232529926794541837394510146051637330881742057125476026395583169210408327402431128166113534546666209093525375194340669205893435706678273229964879434863662718282229158089303277826193975902494644635477693708847413250646015069972669861214640412985195623008356079937162239093964156759163502586019120075888275652160091945833074775195538732933472051214294943119928190263006498077515712453126282115685080756587017852117457912346175282367435736143455119308723566311674220868858885053099623288452789549572956076444326616533636246333070691765387518300027754225443585086210594180046302849940529796669815453082970627804363453487684655751928954864299712494329133681137647801628408199285518272967474792956048861897035342444845657940167302006123550052290503955249107858075877203457724204332855189338412437471108513922208058364610513196574239129902131893704615254690295023207955385466482428807153729981867699280989428268886558793707115371580680281725421326281868021473224559391294295881303105635430604511865200462081629882531087966729752315046872432712134224881772510292616791335185532638974762155857503854360229514118554141006000257310351518912415313439431328475036541025148812568929140515897014858428708272480133815056944789238794891045894981082773520974053426688217708467827453351378410813159443770392042604782902268144300921775493791108785754132338678386256296586816859326303350593806024696062377615812344254581666815275795903968836322414804920593648350337099763141545724615369623233380094335240169884018214724820738527725139898054881877276337322213298059417713110516668078417242182966582437306068653745368563645803835566579846013913882104292723623135018656163524630548637924380143991826339771684026536784449481113375725697600886182433189388641536395079488688414404406626316001865309387161390154505179145816673317239286185145087030305135817752956377223838063038586387977548073891621667980286059821908978002588332157865330332777151440740690002399184211469453514984123573371834494216506309043927686382289972287375355969950183458379693527666643411364660093268642309051886847728531062120471574536649040500542664391743168694945661055323848738679427006399742006142614564951426428636037517948831245048954823212570945531834967722862686120648410763934665400768196062674468420759797204055517640537437997821142820861331914914512081647293918191421953199338989076276936814231586907556259396455775299970143412035261483786712216372131910705301093273985611829636613769268101248113153344494575232947737968604857180756975475753311527213687549223825833141246821213746520193516462462414255919932994518033550039722027195934673891811745013017707175164816802689986299435412585618852866320685110448702937721316890919706413532858427849662702352563474910465195697379727630381512514530142040087461421976846135125022530385602292175594792496092782003878667537236574157428332082971693576994491604803580026416828185612978164517576936922233917726217226523240101013621289712059405799195099357847257219835406318274430235287679362497627979687091058786732014852187824889305830118167789604443424141412238459440042689817995206854414485054944724735349917477316605552023160295091298720161006294075817531708760481146555869916968925860619967679350620830682064240493628972074251225485872932557957059583557943131568638480551376585709120085119102337150641580448621780515145404907684956986902592485377555868598484480075325900456581776904827786846814647120489901648279737398535013085788668636934953499577909060622710760377801656631656405856509549259947162404491040910607591729222142949762123709011736376903886976651142771098482660062389375684463788600380434980571238320833147860553316245584352210114664850040663586942771827619147843746986919713422521684981658493339756079485013851440252198446582836134653264485039949477026410768948840601111079768567147756379576621614175515715101976894031626930081909447789629560669155529865565962781463916009195854353857668391078556722799534424966232436145514442052139956852973337031283565335773473622124029608792683906997160584032548697580838962875357415185524929188567077726122962609189438877247969524458907088206336392806573439483057174731294079199258641794968575260024290259921804335876561979626130995779440831902940252888760257538961428999179467295841952516534555307750074956690953853697606436419899897488716769419322553836471300149718531781423277668898167857804438391090033533289323692542121152947291608531636754059503001414725530134588304348619724527651849691885492662228219233177794363780046200124425312183628762878398370253209465435989450817986134297412713638013069189142140871163428906861799664111843155491989505936939120334939665209333376111303859068146702230460524711205221786277839696644418136595673327579200826107616589453702162937879002725845509398605473258087241453451922315445083536996700614949775607446267763060209015439551829033399495075415784916251247988411806241995414944516692204551032066146881656934425520014245610289937845761765381543785752835878647781395693587705694272470630376167513784138299949759086992244259278969873541777708784542857220214671889253222161874216806326243870286554342311182339577888510995823664828334057073527681895894770311942360428259215256761298925925747543363826652410355204661311487893878826007485177384868643666751812391061568448692596224922950137422321544232223631583713943318169396462874412494828570702549735428770765137668690539956848719361290453094643639510684725996083251601767705074189583125155400949932186823867772728396773136219385186046067867040134329199126356983697606300186304401667888869951178649517124292956848459156026066950544908878478133570319475880938035224064287530355293766555720443939110015154016107509875544192948256104800589474205334361049444717188050679423914675372052556942121422403132058273056261109191227908803029284556064426592289217935020167086915470002525434305819867460991632903202644442968148688764266485822809601801602461425706138881412416729406667617970875448687470763957159988900076590391176015281084505471364356670794160823433189695528093157758031482991733052307804954391719691174498808081904206045205971135243186049790642483536257505820506357638394565995763353208009335589128405606640486399438952898721242373440751016417261252128485889549820973249583572883412099445371149745107263151181084176632302559678497302154645317718987278225055768008664062686445680736398351250201764385903012978356263904046273379899552120143573319767682634148286426414461745738644046071852129419875393661765827094917359885939803327866272491605086016646885033678262921884378472410616751584378088962740023033636037595735079930352429164987270056662837415229167002651705878471179935536636052696804458340440924353664727951621206802208036948391791331903200881387716846542656886164845657718176499490373130937795157863968023971725794943885921224911022830134754163009109773065750569053984452636481584098309478626212454692100264401492554873811544009117460664936953310948018786020786739373318235382106136065280125817839607762052359195422798985229730311458436167958483780027898982897441665980743402507519330563147261445714777647279604665094393040665134092408557154673986281384924812673825070944814970628332858216216840630336735323018498702380357750842759972971851876583067450667593994200712505629983277964565255556495342249117907317158595621531787445074811091899000620201465470413831829924100587364070829415467795276207762075389379132323596640689725157406798981871202583000016934011238613337291534212810824334048448471945889284728035707667261755983067693272912714697775355312427261145413012154385752245388635571183844044194874202928883025820642040731838658526390224821385547930748834075965639223991854204461650240346285125646404545505420146879915834814516897929261454209490633638441169132325424070821735222373091130733313341865085695101733074888608863728088377941904971306294370589979034506412100368848221310855842863481478190278685634957087554332980754001634260500400434156435024388940048480269472493291002163743369160440153304458621165043320564264041012236264957396851478179217753490114651821019026995140295188734348756512797309742276836784740651506527188490515590365794410075045796962596708718641259818570578962555699589345199850823226021593381175530836907016643913583429097375387856497073529729743598988434877738757214421873633642761904453236780867336769093933901913605727796821681805786114912698582585898624511569269423528743581477420910012301572403263058855506653827731706470591428498039523844260683330245760210617019442401133176286801210023924967875774518671302004835404493743032111055842125927390620243925822839353624170187021137072275012875618934665558293713891743557109545686014977815105019284534046083540663163828545099454804584256311681347938857758005974222064565240798200739014501835597356272980987282807517649477357972050773475414624216528555559025427516311927120304750940071011776600984720230251201459087283594829119895680639816619749090016542974547050788006663577129000768814399274572134709923338708954981402290594649936434048450245683809062652212134733646513001473777307828625189617977927216257217468264903408599648270835704451981883440352534366688237632300163917480176469514035364059860610304897023086927997343168282880742143237359054225233595079586453502527310445101147000678730671734854695424195459499783592954163153459318540062955785542324907019753291955059193880537484643335477709172920226394849470819478237348060348625093420783780113819489897542238332709355967597172435263303812882117600582307335465150392252239146012981044151244796947265583455253099864368710527802307054718896846127824800727791006843378409958874895186525700731812221333731807939966879010914740546781964054960106379847829200554974276731506883718566255516697933788604927413985230464359245586298897875249465848557168576359965199949705913885705324417481793809486958015296910349270270786851001954148550792790975504686268475539626786872602445711391983050818587254713097329481936465128659830077539811390881254108054544652064738085718051112468791731975815251788288177465657290115864114184467780677936367716720052950772940093472242624902406227006246457314082644484306012508281712759838120140948841259329413418071246694401317207769661646099889052081154444608408482026665823276813638533363807892533784582219879540983661391556273217523496562305933831427623003884765912833093944134530960192598050550347808057520725280032523537637600630054091139980373185385667915613848761049643868319552948769669066051258574266448037531859448637795026631515798405828930717644328672895743187979670248160104968633975965866253864444587943121645336433969578626919789213392017588316523104416489271054548131847591381119705485375961516530919240523070494628956598843600857259162384330915647207383983764614117191325334427131790289044347338675186984612133719615527295543077550051689136769173018214367321688338165344073228909968654387155168527631105872333113262630870647806216965589680164333896014025489660595725702808082251721114308381569580257062339054597317654592037199999335801937198346726408128502468886176052844060155849390235183832194239096986763819573798723806081544330799334221764212496385859589126961320263080565737161578372313322791000739832053671379711849359724209180892506875382381308071811083938570633797684493136757214586084376185787498032909742547187026130506376740650025416243562742220864536650110342437096175197053092561826114312269674173883890637843670951185126391590897306179188367775795784592254053847956097720856190678464815422407960601928720648518352668995664313576829604596169318986540858275869236108749050593746572987189521999841895632382854400734593058284804595912004713970841353003219517820826396791300626669873422221844911287961058014170230317981514049245245917635306969421430750176786762653743921597940838468653638640486414856123280629432029082806796370438610885178549396348863941016858605421521757219611482548550815021075857643787802269401633795145172422690742581853079431960578745860385625322723483813466638783145149172507037679109180571016318479976755636257434670382383466559993048760510125593652102173664537912699715554329787343460213061068915733632901329380452503773956504394587688760100054790542724361607165981756463641851429248916661899981977647356818992906682916704245092144125892392365880937383908812946170782723445840829133305522632535505730555044159403826614921412431561900654259247303208099474207894553687286962597567042395546217844520865562375203835411721843284795760331612191869560595852005589670358957491132560343151381074905437822281550869188363496144465346620343284085477955426084453029629342372759511319128426170162055658507683304265240738560831836846568110269343598808819693771958408564714003414628412150121969747082738281865550630514865644022458304840968044621359496249842549179153881998005131015888627760459707659289142434091439219718493998769946796208363630222004527823641164573334590495079699313562617561572742841652812484088865528380207569470442248560021046942819086984454697000386338348489058177929993534736761135326777941979686910920880495669447132365527680557528867415122673635012206807697465124028840011739153064995888469659977558196822221455359641429438111214876927367443443320811673681555032075013703471209858263653991766143451010172081350624229417399718851854886419051688735494416692019789820503350183972426891072614865018147764116542744488136718448750928275802986113935296472483387825222635831793025836680776512850954644894903020194765914802187983063037879238180910235156583401893104795876623774676512549205000750583592412183892124765267321838498139614689821205736597339952379423988583954848254457487143547116330894879731455189086892069505789641650044161751635415940257139646121330497642474944765770830544936967705499495926787539350647541991142452479652379047528158101351434945159981135180984390884577828610431389170333188088600431930983244230544500278654570856415013396085252721390329757659613190567893810815574954368858162887269618301889499269315775629179014388812011452109355479917120517288021539484881508144665002779287986528571474858092087961853456603685455493679767440661038861455084027079119411136577174242904659636010651319756374374659273898623225255430971819843361462812356676876244526289294353947306267097959588723753014131152859585752197505463168572162190001667244266288990659882025596351883431627360642091296716075573151680109058514385083865177413818486551557541578435183270888101408668125331987560197871835116303623973879020623111642973377382370429016215016377069941178544848949508001295213388683748826178867692871618412778150544297380254484911760754376333644605976771180757660877774364131941293539950052315757267631893940428520673200697447882221389094693924747573399460726381623565356555200496549355778965391169550576270924061229620108174645457199668072895634458578284802749543961141442368302205016225139917345772272004079786425657662864133757706076376342579669766327220180321752723715606465475502746674246239320067333534300613661025092467367956067685506992209378627532574078857378358170444494582084598775058561706269280257085457812125743764624160100812612839631628607352363685110368575018515917608486083513541216656973201074296601113999379404149402834398338851950331426339872532704402635489511950889538192000132914072009410141898351340999422200954859579498371614108368015104052741814452696003871805505886510251199220460737414057044413095404382772098163729308913130193681421395756174607568935393103377784155802169531703976643461032325644124183575733605987199486650584566269641620153944529056110636323975230499991501620898041824033988572314898237229651712736884695168845269164709747432622867214256439727895480752605609385068622477212866334118885470183615414125424625922867801869456655668912326467390480442886163956970800767213408138510415882473070272026976687948180334880640805231938231056118974855080622287299483279085048563750944753866840608301762230752139657834774208598902010347100061868378166371368581970843985568348860609245075391404307304575509863319818611138124008040177428699646431288918446579552412214129111109982136526666710016566671868773540938857855511145275421888647251547444136994022549509319867240060355071831935364056473111495516580960577830091317642951248741653108882998435210368114837554164563046342316179260120671350400631665059903157166169306802161982321116530295351928681310324532117573835217165173574364160306275730388816099438993643683737611511696281178985868350633381081597139774905787129302631666699218373278506832041378202062073456584640147317234453542445189068513091839273897388245617970130180050131635292928449208039782413963773513629353488261925726703633567487921300367528109471388181989026115167205077669447770601375356180860024817703046976045496826547934354247765531080147420190025523000012413093951987341704294377743241599214383277743213465998136142020942243718169817635653986202932200581013777919944490663616245707725346893057842075594438446913525213203725508572764632860602296863340014674460833833126655636277499560221465624635445405865113384445989661061148804260169621878785112107881298421999453686492018790115010095137761731716334733538811768504707765188191086018796060889256590028692867729075701325096113278838455506096655917007802115318580337508060843320507394570914683817571202398271298808622236399626481921378491703795188645329588409019162982222051013828245884465527176599561420733018375088490026320744712429864598552149339101332745510551376922427679481567384584916969227058623007779137727733960761650141433884840817097984321188174575915771461407029645864585362926732695834988926025286685174718163897739950338739696729639552449176107257034271976451065270922858895080312519168589539457113463724819236214068861106302840246284443591797071672712699110378456763091084950915145260102008517389998229078580095672275376107433269297696484120318304654063658958235341326181075953400081438867012673546552739533843857432764631941230456879116317923972619543744593106205816818445722875872580277485147517242157360897721509622740765697665595407091342608680574885374038173727551571656495669357957430127892639437508389012004890121126093755817204233540611838093887364338001640517759939106098183881766961727765972607754382128318051386908175553708914749696381069873914827105246491540570495004571112506525206093979822481771361036192859026374468464422037339637806940969901915306278340478515862787293263347516638866568554967590758786025492856488224085566171474441597898277465593832220352736196837384038535077481738621234057244631201708820417874382811897111107399113760883279100648081570256140106740170690725558218733659896542434989733260941681607969245956100314813207787808752739424340221067725112959412180309404560796120772805001028989758976854716373677440226831504806295390686736601566311892925745022857209488699960762352996547727151349591592946689458385992382500485261821684293131249588099347194599064414783817387153620684464113213496095188546477206473693467181112865690470671496456979607369603533766680195550936329302180885412701821862052252052297295598579775513104871780350135412578661103176743367979759809187594144720637037780786307135315982188116508157205676269159121786840819152374978576960670015294811750498941888532649514706521109551913006936734887722369740118481937350897208840374800856425608689583867528410038226342730505212744301747875666793921350285488368402905077929620880720529413537355880206272156483393059981045482088014938958569173653575791896412037331311465679116951402846376809743725707930287909120351186856247392912523440428333922802043846126974502008067721048039919116655110350655427135180522663162449262438806057570455950299417387994214367714581875141921349877514901505896485049981355861038368811995144083789142010521133450315594835081139906941768395073533542037379794912155403248889875621551035581064888530211795745338268300990170980105091756097742126515106349374919842151220675739626539379841182796390046950547496254833753091967531314603676630585373254622495609898763670277205252024168384810778551249261348215035367295401649529647672984079340537404696283030371883295724193466438262089514110568849440722979317559617936536046448258924323361836857145295416899541622018621399979639376605515686513868286865786578621105653207627145189574311502798923677527270081371099250474388909391657946021359056019750317546329657983281949101627335094831708679565541595594763887291044586129792907720202112168982347952304294053771956348915622255584747871513575900468151410082586329170612550703632078309862438443776989656569282879501547236542347314434388347904040579135335668033556008943311038774523031434650863301722842664511125631333187264372621547767234044976930022431282334941935218289666011828916772088566524388667551262893267820160392920852385374556546865631115366966816782724519645030562151444517374770494903914445729295888033881769379872875105644148233628228438085137683664106192562192096104626355200673227800654073824138254388581386123587638168721044893315445323518680032200947213020248488870242854949846292107019691332535267300717174413706017108358186762152596714677907747170680368933477531527730679050945227199106484217918309849702130860508769460592260020244285571106067679146969478852028391076814499923910435803337279111480315537131530638115996977776399514213805486662570669506079033145969341851573002416676017377525884490653548253686678275358723961337580805615385801225420107201120759541053056236753849074837753037617154503092201932047384033166242956961078474914163369924635847174795341589619251769555676818043635035411056566600427717556121013855609146866905778868710798648257346758246454664648951604698646626643914738221440007675188454718396642460061717803367238313063131895624280751154642637318459268871531495463079967946757572294361425473490100225762558069154738936711197339422453545022943945810991302761487434064812369730452099355059123466519135745520240986291993320679527911725432266167888939468900491793886756452363588944584542549977070140010610070878255544415434387227105649956923709095321369631739101037965373966868397638717719919454473312763162633963380781480210312849465560765401979466508896965856442492886906124307326702513881712789995995103125966506095236442836841462799437568109616378728746516871854642688473894498434148541336005558817920152365214311906861078737284261742446987523228460561590587662023584307973158019792676185031526023999902324530697195533251916972357303767456521011147311724418651079970392117955371394768052083285708104926174574431297731688969813776845941255791613112605511836422706191570742171236805248019310118164868295960149057744426735966228405703060776114382898622124480592846300716665869427517453707056387292993542510336250082496779564090492667806686333411268230822187972223642721400907721835523568583385782620499876292602992072142227387206439221271552100812347220312043814470398401717636181484188687012350746706982670529455663840733236329988175100306605234494327144292799800536897555018939471888778365038555350313172577981810776524301486733139949338341517094110761055900179692847892704142661903250937354270414393476204582461729079176120383329686944996347506002600988614134844511065293204223579921057800817558916210778748330066749056663281949849507241662188273563240309174282573688913702642890136325021340162023471389534437562631099638107364194473327132786394413467255540340267509419840688180428454600643079106231843568515110619212784622770949718627547347905313684466069235282228535932316531113349971165692387139290641077710553511258832192146099902414130069039038993429170524492679648974039677453338611419286614152352228933610641900722741725888539453228918385669631641807565118929261719391970759071974114163751250680811694373764325372345339128096494699815850746372646552834639607440336649921360484467935066980471318348830242902025565977844182027676142325430830682781076105340868107026458984589994328592716655358919600688772490557929763105054616921048390416352775222471683727140573223431507624475120616378763002453552076282964622945056857335956531281540070976333691524407053544637047480801314540753004053198293206354542972913381484346375122644455465943777927402121281118618767085580834143091631085340091017478739375177901252491073923547120425270283256859270012812018456256951110842137562887332184919068971038807467441850152155302206163484785987510131067761892208094788796840151383006747393729382867956371287724269421452868886188928475073661760225039320301658450702277488099372931580598645341284874297673803786964335048875971650599025042829894746837608674492710514644082500597240128100332891804873908383506027870762318513532989309241446463010139673622282447748108099835304050431540603669123480133264429590165506567069257771085948283813446838861192064359579865225624573018582894068370391197261312535486392466135124481970446828335996828089861670620974543482725597772589801055249120761190367240897497024819413767733657243014859800985789592268030861327855476407842882765733228459332313383319960598906043236156889050432579051095810170475536431248988433393157247544770958431269074302003009054285974948969172840603136023172846607561770492016256837125346080260893133878644223397806760139374895958818585566413141940056113882625077828690798966722328615250911388805150519136718221220736331296821013757588466605233417458205382877298971769760085508230535080539644454248994061473092636865715315809269680150841687120257926774583016380190767208041264869008991882017955543597204656815970161224895965822718010036144279899216035846763019134287049985787023698246392949621080386168750080945330356582238477766653762109770937893356276864038016582034132070717792676609460623902923995646469619071722860805942194068407800823506823316971350814187453034424826243980389986009076090860720123246200305582957430022803932615982532298217797754590173486463085618248022280066529768670455353265493095270332923629316074018002436735723272196089395031720524595019384855013938805239025760400820958011252491105827603563076584344367530660954651979117799695913013176315861453030967468692252026141115293427697967208644172014258186780134357490224706774563147654457673712027682485430240731328884124386267777333233787019040610947128280378770999291716522317519019238383568352310417956778711158649908281066647800319942985602210305090574839823710422193878919238561664343203165195793330974272776828569107892557023741623055382975164916483537697902995354241915579540326902883212676946770718578569090405140793203112150576512026890963683051049707785023834801985413428038554056493120518025052398011783972005148052536801068342613519819185908674193904937143619118790419777922679469823162109953166762686351677814963107967059803050195773745415509168185311969964621054621812228397797492527117719254704608847222153609454496831243282000984929107939782288555743343560643755619304443083660629551870710419396520272464655660207674573222915149241105998698118780965901995892124718762724784443202641509015185316707714279422833445034649314007795491902023361459091945417636571709392000885411986702814392179103074712903619892043407852407347101347298336465307909615501703533121548428013153868567159821878662542545193619669484327063211188002979145016039991127172770648846064913151074968937102288745663432744705307310284962460905557707310001638139061442342316309738040673722615839874748530537875816174767931323766882128875637144461186123372001964795298759678788170153384282295468116132694465453139976913425166889421557868974649805331874339749067275461381884596795443905470872885151469332809528504228624588727285267396288113533792607616574813456107666662010159054606276317105631486472002083276110135179164698239076116201305743137638010183181860232148105535446886946714224865036794879816244130765109974630137271576453049669704427790416746012510427451589122472976946715339285797753832099333818832264104167560757375834339000207875970005645392679744934888073562357910304993355758096431836083843251219162291997563271318182155643417002327668029595452159162465086414398328030409352532205368352225918763908490069662801189184255194482892105841404730480725138305996162122133191968593301135522372157385181951472179411676661378929996118693239445595466692000836729045766590441578543093213046479161816020047356993420251216879419231234442173368557223083698928987920573022985286141692121200359675007722200852640280736449195858352013116207343987471996682420780492320347365196685565464598489551397382512043181664564910665965794269593145130941067061451074347178540982943292505237844031142365219981957091618233500555193521399852677312564071107881111796107541612930390531016913121060353340877652772337580272829249584631954872791154175808910806280549771530973686220140099878631017094073164305641098192406028369525772744627645392005018730308174639910625628308889007997821297762780198945124685593386129841274435668284905177385335523623399225948155788164984685417219820872237111256740855114583168452522276130535939194141912579951170138069426225507214066071872970846492576048904035894749639149422779958796053989924364657034750860178127214032879351714017879007332630373004325173463386480054657058393051586802917414762761237651031523131288023679564139012659811519573238635998968285679267017037284522521118221145496719649948835751866066983614128054985861130578974982721266331429838549037838842094650971429039436462316236452360349250713102791122491683907250162464724572065538064294272363140911748736420215801988086815953991749925192088922920321656005282215070379372178787127876244695300111317663545395072855932311281193336672428443368759666373712088245180339858100561100390909937771897796546738469021376278353310470896810820962925984011751370949366726521804242300158918582612704373946033118290852435774451038589229997560853491322979805420969565549766673956587700619806354141300911854776031216148555421472752198730647847127896175803287298753266508178822089170222008950704063400144401921317030881449532392262229429971751153778782240303887821529339472195907121528246684622195821284227749714023261795481537468538518784504388415225240044319039209057490319651790994948435658207508165065508228603368483688019910529879443936020529057057502723009481866017231270128224397093245334301682690108375600190232543946788086659491043893068904588611122847121931533559026076163558816962487893970344998412470769225730090087228051307587543111107592738111008204643271415974020502284598826977267129170140603082514910177289237417468081910137958073594084947864004933614139792772896411134651218795296472693375257249860206085777771058772383766452377340087987419991082850243328850865471822454959539499871737152353469175711277043452826470947602458075343445845597569045652303311612016385203812110562262912605446900115560411071928702904036013973145773799177055471109319842355675167781127363614889293811791305570774397048140427925041259162167432123283328198978365469941953173574419420471461992615030016349713667126279548437987710993023995698599092158832233026364324863272032814734466474889719225095596432090314701681886793683964818147247331515348470073707357109877079115717649910988768635000837247773506838083237861819022536004926047236065052942529024460739324431070573567533345172468596039004906577155872744988067819076223975113482851062648252038870588783143855905405073749927190113518050651324656061396875674018153441378804301901869806102457573218209812527733912069475949195931208010024737277558697811101270447102577786971527099603876947779735173153245818124181051749495206769296678209746735008550070530943925399248112786936026911103069440636868704437489229181849351220733677267895776557695451608868349810398741222877954893836574692215475087774732752466459922702246796907818266807548808327764718746492894876880275952337376075541254272187433700620603498741903470399560616326178545512728940883128503427846411970382181285993449182718339658569724323584396327497670104136638245396257565287222727840228040523451332089231846435198545307747668256360631209592288420180121777814154865958273238894916896659349814979467933434808823820866110445733243668046311153234782723745607720548240386469699708446778732480612811550689521854032790356690260946321812233209483166557261842435776024252066458375778280975468976382919438543366641638207276960740256063942395078269564867428066365561088618146383459454583477594354340399011349278553387407427426306975679644034023223012527141276512853665973596375475982655645153590173056862019265197654470251234837415726312759989238035133539986817291591743094879702196609844341465027021275676838641997184754604941934896615891842700112128929885989394312036263266523638142769047905815921188007094993507626549369677733381321878208287186450335226389171724453531856605013264937676732421337272967693349437035715402663758116645175408082848331102659775749030443356605149995741797761415365654323397538510215352144926088973659436766589783220855535060719058733098110750373792981779169870989278699387526916456581428598195250711981282588987706412561405581309029902427712596905759934369625746362352106925355906716382380082791674471199401743417859366485416600255624491242953491090259208904667735554884738147855473796196992654026831497472658869769320073469983140174268988947545352193493921416446611918039530045440321741111032518669844325153843656889399117171398224815814531632219682793984753315812898331895597172021505120995708260219773196549627946055334003546272613911434540712446063351199782665941497298637012279527119411794673042640101907945482000773214395816610684937349593754007292363080216382304826697744901170529622000016467978758558471632400185003155772793286262845183887397450626466929151962692484715797435598599356668632006919277770488590121689686865515643262497765820715633044407223916933619609156429509985850920726097102371294368872880145276053329221418485236974851768190606445865037445712280072120949493251699451651409816294150997021676868207726655031375309533612921587161705739902297750687757827129913038229940239456729313867483716649779934798461751346969909000130144912549543182846159492074585944327916790491875624631863637087484664039532447065303007924497914736916046618193843895688153881823841572282024968593881706172724154536901470077344246847713856513079261341409010268409135664292461408049584377727859649838024527993994991832106650083020291669489496046497288935409850767342893313737537033544913693317308758033020807578769484581993023674943878381493302213390152499171372541377594657374808597567145304365914776767356398483546999205803867575921371858396066039249320150920445252295429900341588204500024708396652608498421657861300001368865856680747220381462145310995423750999383069470272155423723251455417102758136648443361628638291139826851546310172815552826620739376846307773026476524169222703986851750937024742017473048460658542120498662390587437092057113959622521316574907909282212318919268135258471786664537552729863075280045830991079182616762973603363549283387514574444503560412206151269493396479881860504611153571524921268050661778654965576960281502674178211635531051602580241141549109223047617035624542325510277425426703367374322934846959265179129961351294375394867091331742060191551759721270975488844566295135849837351391749592677499566780839776641840056442274829946034193183348278926433400438365319411745284770404353187722445824334367034853853084678578409766863402718395703846883099816827362557697844287354260362245644043465751843687340867158704896557592428072675690145522497424229883759249508720001867918514641457266559869422385064508313962503679866240792662670612575908756383955427260708385128421091196666416102315725591787305360674955855912477029948161283946834044155650550781782003372306989746227394801261426496818756146831689031274835312260646820936561543707828794994202009026686230357272308258726516113681236887542862687074638312046853275741450639308882051198738875682185674716236860151758553742277369653947865158341510378156774528819981802871828258005974051168966374090947210940182845972564749151524318149873695637078973665554006733247266309848294503471913829210752045379055667897717272849467723110784465413939805730968056516566046541510856584621410812973355149182753672375684011111804954234904892432404420558127089199502842470869392496378922135357231415651334862159315667258466027698606371413632920244133420618189888842658298130124064136660812782451530409019877518707028426670958723328132609021493039796929953539564712705637865949910686309203371002912903253842633668648638093278055557746307531436865222691954032962930192556630943816185137573833260065617683721235453439561864672084374991644088491835695356011553747716232380769582276254941287641082223087025142580305960670673306280394633242266326329475375419714250811744957628677324082842453168993538114193587918526482260597251111772897430891355028110226758366689951977421154851452194109161125761569895921987414438662989509916675115834401817220253334786780395149980869351188222250495158156682781393632820029531066845872067850191524217763476238736821861400509526078909020503624461812026085760130640593582005474262996884918642067203115805620281310628720289239828562173374243646587082188654883086933381386460490449986847854602060835443308558146590570531302611677776130223938405270034870268726667601446674271731794922236321835474049808960358027558712181747574481373411152504534185460008120396328479295934632683144310652522084532738704848328624903116039403124621718354361641646632861877701347917601821255511235908890241103785725031246063786357955190668236887719407215804438334474199375916817300146357023905431592138671270939466190848248008060224779929241842446098995543548049776282221796797744411417158394280504918470122616210138660834321614566042767565401553625029861745979430796857653889871874062409163466781525140155696320138787063538973673536810954303227385890975432113535704757821699435009778368535525761451003596021931145510688421435191363189278788257761003432847273176477106150929142129351669248480292958408250898296300843749017269521964574857035654113333523363776343428685317519948889116140546442772929652754461318360120302645941702586686154591851348153687333684768827293710860528540139243338638372035972677930251875414585050175782792039203865672377991342814031644170167221292600664964044137342843953903958676031764262239737206593955296511768630751094518063030830806861732483402929970335081775952184886984120303894142272440660590381447167670793057341946167254811645179250838109646996010163632192662169033086457508195160679674470849633123839521137686012523512299262305758010858335570277381844733657712271810146776667075421499893807469818929188742319957193427668277476067481243712784481950846769062266789713584544823055902989299487240189007356795131117336397658746377207508200289199473947361045012296018993265947515335455473526477809560502966295725121421505334512482596567763754255269520577424134268216681832358463335874196139513009680349816157898680678709429390689834914487086373625163858141001949957092690259394626472688953628134439791675554675540100609746933431766583048734470168941889395174905680296429878200771354637945112682585508824432410005455237740989187501574134084626293971206564000850570132992105095641578908718507891887502784519564929113067527598734765372411925682606093238863837582003816547900856203506007723929808657956314217391649702946174347130512140936177967273671324141021611649908424335327134762470064034207315040373637990953346775988864871448651922599050123675821147831320594956458931876843660249622402416271079965227068298263168997193908967883044098940035792468144066326972272327547790009445675170022719117119886290423540463285196721702963123821212069457371610545579360618492156912181136965372136512062916101285790287053963713866528113915943115213136654090533730557639378882085724368495438752335103829481574910262424009019018338926344422634258761820628733557452081009984505752467411996851239722605112618767754084146604350371764881857005890202718051739918261241249181151539605380847572715726574274816785468463582375771302761201527608655130671594408403339281520152049390947074973047684244526365255484816822903434394016337437452160470418543475546360609714321170924063332702743501885099456476660261268910844242595462157295970985208345030221016540254396433791959699092147182164860960983063182758048976731302187940673552097821488306081350132916335298246794246386909247937627724535184778278358974887852385406349941229023217391079994411287796943094874987871768492503776998703894161040763815707904267118899570428524668338057542366687324235740304074880271971235268127354001863076158246152905447483219902992195194496953544083187950278660770244919281205564200297569155548916617484272053967851928125199605499197247763134449568552882416522735048612032522172397547871576680028948648526777800998414661036504082185628463940516143684678744791298872926776555736184725925374490057390675622458899085708181609943453982107031591809030380361294621552042674728362416419191134797481940014851424686505829199079908599754927262803441436715934975964071056846464812405496360719119934944001424281015867836820016733924037036255723977114809725139475905739456202557009007583159722021492347933502902142968008027975935837411352945408334551046116654203957058244076897313225135968308529824110062775956052545961354782558668491891051591593032054405922460324249655135785823409796213914107248412813229845054706897472561337299918371568867392381251239128819966755440857679101780947425934855405800841595052270916184671257538066153246329790606087577050170372760520545528315102679749696771508802654426665192500925620721996659368786483420331874085268376350033724147765087070588604730198461845552244828008341611155722221836395011039962520428428973394017981040828165409785144488073651664910783897819551585435036359256949714113889741942039825010501726527333379343763004049318998920199631580708238530592502390941212595275270564836584817384310140170013538032671580229001687308010582953002641633603381620984492884795527685211194536740480634516957537405709473616660216043419724171251305946140726944351301620843186310663046252725033722326292418585471898866329754507882179491376945732360181276300280467914211398221403242360437420481132844645653982805592132614037962175687826047874261259655272193056537725758828011270336668009436886512134428565681164112100480487139270345643175814980687905197763525989516911945752014162640928055099150979758085608274403916193883857013067747701306871626041571172002042574861933172433051653629313393910465657506184495054416823027381151961853022327778446151509901331513870374961380743294984943308295226515047707303313408162195720126920695530470228123287544410639866810380066938896229259158677888651748510975965076580198427597326359477420435502927378861380969519798619255599190456995479104458969525051168427469691202972345456795228211877267200169315177319727421277828013892393183494535673599844749288925127236004526751587183416129314638285225460828135251580541065267181230565952433754531329719904113929638788280063557361388316681413141758825017396386077867524817492506653989319420342183514855827257445911655639458048849217552151504600463235665140709195560959085827687728981840648360373104512568396946348399826132431523745269072989221411734277848905525604655688987920336755501508852869346425135975638376542830132208923041548064024248245642537882737918096147608841868852196437416011157113055464592233698382193501355685951596315876235143177782935760670681758587146310323713863596233397756233217023441061249733956394717771878720561193427864545114234416420426270618425345953487626144527289907719032004621432164778510297462204972751911456596181528824794706178150220356802691267153168030369909916686150816890209805966873093102903246109515248951856169418388751167713137994467545995139249323178163868733177436305391135453304524458681940476069654253719788973333908597769617938559281092610616856471434527420942058286051733078685469569265484560399151496463024745130573278655160529997797590079756899812602185290059278593535734843120906340851906861371885158645400202652934812482901463083992718243478615655761654577054237575099370132339192151932349884132500882491646563621197531838833432983122567862876985558492718107404871239183220054541296837008998968154449458972211019525280859731887075761052434300624877398862724357752530112159091411966526497208868845526532725834927202595947362684690090872004777669289441602838564379057933452872712587640336630479104155031665073905278045706030148888118420946909501062583914652688934679103721954607055407179758461801102730839944824128273090642163157936115093623246644161316890166615921623334637237532485405206809127264871351704455755525289825982256190513805249970390776513134369748868880565802356085193678006150128510749329692833386691509653521601484735994407154970703230335426772352231292872344253150774532725799911082368664327330384201006542389200436280827885179826626487011017368364875852168131830572048755114418690179675399677518953365469525459128622197401690885705116347873098446059583956164720251859643792188393443348063173712702953108680627314295674366133250819041441065785180124360888776817409124424362621347649441844930480415627039299330325078912589170935878511640988769070684364852999721037663192218354573668371890872724438869834376155858753582668941770124807282970004729469669382045794508055260298207896288535210148911431410499275687928480701937182417481626211536309886693858935279967204915569900362646783494991713301622578432573906156924179894196502496567142307550367765949866324639887925125594055118600217962166853896866540737875919296445516914316351628606246951644781046436368088697162145740912908319116000159662164679178523058063506764024094407493955340690231088266916280507508191096387087681372107587897039254955674514320066982713051402371443411220737578335537581489410112535856231710101520428300907041504503226000664440910254468153569046140188827732767897053969393538970225565133946797118006751127991453751991941968323166695681448222414905342178054303293539264689028098215478682966506456987185929906325829749285017183329429458633224006492723267530567116962363908838457645507854706509751621906208672156164984766671780703186981622063190403959920356209555516395103182439003801343132531333644275083538019098398466558712187823878454504223953018500347101936738661459993312294451286100291750025496690906809699529382920824248096536212219801261018793385191270868512618999851851036686736944957424822955829888703325900864614645601886805253976058424231702043632508356692932457059866403404155825957811218489917710787227494317217159720053965182206719331862006249880467042807216253144544313192505085660717599483457790716710217458806825774810033019499565298546142243537653811430049580439053374589564285066578224153357809298114018810255908084510104462590453844879782269516101210581324062677487695572516321299930708222429331384504443866037409979455818097997553900744654605715305953582662750500878903140211370619654590731354300675229502762920830511034346183278964682679515255950993187991566312561398454718741302903010851360023060579831009948160901009241750478775127054345685557383700030756993935217923709866397294753057749414540373480732702559009698200633855329428866282073782853620614250126744327090019027229743062966530386943549728411714881876105150420692666250974698023279356389340939473563044654194607191186154587063366057333420577277410336183841255373270433593824211742708126297859603257522106136651473145098435654769786078209927009886437301932555635580645476612618192257889475863556379927041250894834151431715031990037450606706254716688598378001339983611660578904976028206977853597347480489379856934125192695478615393610839627917913262935618167607257621102251077802004900629135739698660404623216922092361680346790507318402075396272399723060998478871145321933875033772474373551599955041445117536546299487843842545611383088570114749196381220309551603387177759906372361179258382542706173255635957912837440287906569850488113505366102184867864184760543791990303434293280867565489176113355846321052978803718361712594996641192750110094642345968034391508083848318545137428864824581040702320152830885891350334750516046505227881341133512703029694793861360039500908877676139615766430308675723770216990444539022280799078420059269095325894243915060908498850013974710430780903034860706954208986415061568208573263811041343274209368914906393259320992271973180581484536078517013094459080190088850545032165792383909800907935582871181663186689299787751175038820943000068036890249049747905891372966875619021167881220687068164337702401852553983512917525622469726406683339405901784774197319584393908982658831039060690343717744773593094772711656216383576154982816471423704367908468909008449210109332207208606682065538189603679889535888933582853524803903461075563626009131682254714696103429583661550685392744491877826639516862901965352785987151183711394842910828908709544271889150197681315082350428919536394653555176042981695300333565582502697606337420122131304504789239516915017957992507542236568405985299870099058558309424325026137063693068802167189956817433111182941798946091798217431385088576589713693124862545227464416009589358891499317433873349986656867597068549922632822319177641954952422860938993760641220585232793372863864075850650564179158792407125917713997321312376623047704315026775532855316422537685459306382709952935256016072991641684391256647103896316595283088590935699912179007663797243039247224194678046373359672704547457617812348757334385606449675348606256052091920065899867671070148803244665048670689924803717261005246495868942245648661629218527413917304382849317390410333054198775493807252561893510094566445635189470853723626511373548279333556063458370730881331868360118178893966861434884736996323169828895352173660763644028035360568439026081940710531871076096021085013188811928783929732979951363150605450765404184135965759130125850711208962001753810154734438207303341247503665670429880353452137967787805696350207908423329245025929828917692404994206922765696846635661183704252943255750093287073500535053440025452295366408894353674964632074867190242856229375680267948385860128964063368734339487588862182094590602802250510370405337150546442562418445609805412432197050625843644851490185716823136126179065149775236124574584597106369616073818231422985526656467528424858679425383965604114531263997040626290081469118409062680578534470970859357258287454438259544522221484470588063549543518406315197366087050760428300884690995373112333380330584882478348250631873185144621661941234695417135011906944458695093701177317738078035141343659188603255886729508917693258149772814291614175747583017546467444512553608323383589495848105574290943528310475083031159989612425729264108270264007069456803992995822388737040813398498445777663576359526111249839691645917178904235574155083477081359029967625244591015940436824408404700069703694286811964987562422294378171837287210281310264132935204991589764224319198099045509850575167941273619268737880954210866312883599023586200459647605865020182964469978534549849162189352007971137023533886779032374885215062970014177386160052200576319703282468375020762876231578235274590482299774899834668216015326518086444504685726303444524723170291031094426576875556921158334587155086085976742791259130710802991153403615020397810810747335605605471612187905898552839440307445167242180321567043795770215418925867069664699125821741256694090525366885842205544772656700159934747144606344673491722785757059212474808551339859866160672403846394745405737639109246757008070450265851220543678343819642163603361567312563982750754849428914261468406985211160724226938194012710717854754999115043802530268835556146919669302301092530447064880475723477092660176722605383424105943372526558040129188607187695366247251194257423267278526858437812663585193896217569703470892339934254717334651814077475298557837711635574571524015045140390341752602619895053229607952086889488922566980377847256700893741226191479518082740814704021603803138975529175467320298263999322041305242770917758564319883100215322266277994069196673422039168253756860307104098041376408120708124145617264086155500132855526189546392462925865887019799802430867698813816617682134572586004540498489431260410549823637574060493657564293271293309229457162938394635676598586122308951463693132100173308294672663189875626068880631231875406285618890410027943085478840203450844203803383528530150658113739913274620479545546484578640420143942064712930462427435647809107647915168470975336688130912969843291923725638061308332821809980350321383377987172675538368487718335432115314522834584967111695238806486347599364611490041087482009524518647908740556519285626825659925591490737084305994793717964659652053159684023526007083039487396488912586468190726030482003861946243734013625081093090928155170054085937586923476824153431656846679918436216196864276459787250028870144785000680020884099167531744022763727689815794195290662126654007998009764902438842638601866312177639716418821382298026632811730742517599256010295518390860899363540942759862833300545966388896126396325225773765425453784476049788137386304580399431684229717792430391545679918668168093469519692243027503813828520350147159537245005200858912645963248400973114903199450896990270721311228680875688080850631379272304073932791746836827011547304227160132119484114711357618346649939998675172435034507162656070569942474551115323655521993014347116041975915689364419528006782783957294226287629895199421210785201700306226842656360939598649118483431972301176163512557060318156814785815605932906454551443255286792044768923661456162253952474366961822725545435344829905597137389111234505213947930349979410810279741719482609737812913470953333137232424062296822272540850437002082657895744491438670003694799335133414479911075281599446097274594005210598754609712658347071302830881434619762468812622021662048787441114791522276499913071827502760367483048776273367893146081859563360555501845004899072546301246408290434310633806295901977635551629175361842615579653823939750217960886865813880265996215755887710920221776300229571802265346125145180532257070698946723153209818037103614847592323071083024014135804000748614487820732280356738226405297027875054965370687953698453812408282486531847782862202096987587043305235756743365469315165180293820289827804003538668174593240859972247176867624625088861507328550168437442366064494115093573719870039253539540643523187667555132408532116641986343321013753602514194708912406928025124142041668240845404783421911811615860319415992849386160279138246050808929491734815167658045604038408528425390516553128600774045664863053910186455000948193717305804511519255883881079540113612262905865029972988271757055572641085573874259335523216607435869506683641457273155452261200383924562891824414749527021076157556621199942749332865130542544283691636380550092065302409416423392422734158633238757834839806344810005960381553678234256801429189979648042841485754234783098712194752283186795273056113567320798640635420169708546704724512843173611422312047200916081341917093458320555840137228534415484895370306533672565660660625325413755286099087752822400723165944477429113573454199557643296255405923158792455479241336125419556407778481072975924101964365579955873823183445557907723020063259046006800404734716247280312408345754669248802495433664952342625789591700464644224912100172810328696928263273768394433211088363887184091790933230768141217868408223826765562925342244660171502786611479794401881359811131018774308972671191860882676701798704765731883165961043907215579768676039075664281998725050017241419246564841773501404919920761513011378609670135031999636027925726318052944154900265417992077563749428576572813447184698007052537699543749069849956749115089937723935277003399103685096284266173387205072475533365649089374960865437288932345276476267731521187359428288561180566538302409384968406087502688314470377292391236976871853102790245774854499726817498635279320677191477715445694572807911014054458945378763424012388781474758092219231693418625246574129945397643301417230439034536971055032853796591781864824994695745093448058600202881002008809555510680005454325286804482484073721169218718842465033505204098245135930145896316860632384272130377061982703593646088621390735647275687412416700594253276095390922193893173192526960757009012472854530158107021019379500590219650021882940898613932112616511022419492501167043961880164026305183289849375528429716212187372807931664791288727745963875366230906132373200813223795587624414467279877200329274703738340551931333450259184170925393490733907958167703054982285526291585018820935420531258182564160094338995484552315338575388356781674584136715813146094661177027592605501808275089088749818402243957612444985778216432812194107570050102412598553870005750996508054546656524270459381719052953118884556174225557605664858201182893133580262012962904514560052121831869775149944826476282275913877724966650310924752402686178834527252752266666513378071075595473242958761504291232450609187784681116132079425661398916933990806856259025896306565630035433099289186756708047893951896563535371291292602350271557101677778739706295839155585660772736126623648082735913966326307890174283457557029284706920837258301247238730663992155774800562224760923887605452865091471835360427542048951381399909787080767518161538927618964249931968371561975781836266154055516591742092253227971130416475417140615207279275646231429376469789966089999076887224583586372882989222304293487513355992089336290754867805649578046828677314525509473971406866512301257881233581583840833201737023851022600382044114252035341449021726182220994594264693942388014364331943159687081523891277220704402636981729563698409335746072683820685290563075355960527077674427197797129162222081863056155351359095035064657218325406778526286202027436051973126922178943195591425700486071039625222387566291395411382671181027694937900902011489769972623917951738980683910817301282636674678994475784073085035600580149360361270087061801827241342181992454586805159379179051729149428347567183276076331056121449713407465100727883705698976791621890641448171978199394053616270598084705478776105083767019198052369618252074859666535854828890000271840233404950360010840524068636392724896836982552476599685984925435847935513141015229321493434146267210237628603993449917354103321456476012158912454745196122761802611062280910557695837221902532841426795574022136675359623988333673694497361074009590633120115952179833237471453842928586303720543970561726501749174770146424066780764569842601053489481116576689762520346476261280992110652292485355710924305404270953586843032805327195451774853116639056277977585696901219120419125009209900914010684967951472663403105957154463317959878663788432253575072532089273169797127496922622309915451709986101625581645442839963974827720531548182620786769449292708371308198289738692519232303555980903024456924405877507577211165842355975166693401391258952281546464031687823105339578262877702386683167337867057793881135267256089552177620917533411938659009801382102409444176594081818714326255559194785329045278771852771336083123374898392852737479333872686827586761989279783475919112522714601334510719005002315376889720558819287131694194373475390773538807352578560577682592711044554010101144659524282933786098138457023023453010273713650621897472016748272136908266196693088501873724203065785073614883540992755447005742493383905466176806569784912828252676689618049550197288859313723593147316748353805489260392348633023713123631503845440720944561950086295488808920587969643353351945911170445477391193484303979482171545544923863917013128640885387211551213332675431344426756563448579470701333733837267362308397650369619242799807366155420773985283121067884445685216326043178366880682578181992389731197375531129025024044829342943043083767780965296142015197082526067981171939213958650008341313682219710248067034857115970039447740940438547910530850097885933684023471943231884740065807917206566067716250294900266270077960775439008250158015823714504506498837945989133046865601444301219920410742632577374653372837528336517856997592500163002483556656303435617390443191800508282051267196771443539620309713991593544133483020775976821714156085060765906072878681144416299379862139224547894533483271105987267543122910771138299123290771344243079620327509737524929717707301154815833685272422844352440769436586096186229890449850540763838201947267785952868757768353339882483956007797885945479118983540352762260788117140398254795727398025788209198139140634921883456020764765983522934465760389002176531624992727124512457604194506815474814301822358135384607555424435037472374530780873259006896332751085313734105413529293365934229882108338083254327440992730454191192798819786897430251649168382552274407435062003497238362010011100780194447510398984231734350801540674090408421447043554988247795556662800124475524124783423510308440512714873560901571461019163810145061235228247904689201047313451608705386088736116127886937824448095714841767828956226413169132065612713690482931349217379324950382204984407559871342581020437165346827181629953377078205098351905544783370874821333290619853839561721365900969791077046694620649878704833163821973875216575813804738897086872923352372722822793449412333556704933606545412281095293877745829340361293596879129258588253731619161877791209532416765374712251348997780930179900566269832165316804722910418416783567750846107882186549101201057821535601809295308309303109255871685429907245332846156454924595645719031148637242666333028365922578040253561534211941675024274811517070395382279592289309271669201300481081523002376864470097414562400252857720674448393178139792309917808625366045582524722492726854846376871573508134069341530044534878329518187770064585833662727173618246846055327623041829873957118041638247647292329501391006881627185602198298437770634766448439795839086080366739341919829919381738961348942144753164991392655610416426136824323523817170753238347217801905923745213815042082418720097418016065655245184735127779341220300721139346967132781275484325424228997436381288564907284343238254683966119930587781502565535090644457038992016330677736624681347644489809675342942397289069593074202377853682172121018925073739775663327117365156191762520564372944204164721394015247481586119753758131198499192255587566168007194882044792405515129432450624868370879115565762181049659172950854092518306628891535699421077563454140381088924152055736593961914826237805789235438336777613871289829329242033465168205693864612775150215305489064602739131057358938644810339496555432296878234625358039696540596845870282458448514160330549906012331677912747215187020467832364701848029046431397123955001377379256034598303019682777682423503563103526790762937433388698708847995160365054979200876668020294096629379822346724519593826028716100171630721163045658206480756737645830391623016500145829342336397466271819760653063040600862202807983534826360768578991724569299758940064618144737657891940649431625928150952028756914537258741960852179604446458950552003881651825710239262015288429875856236001446917669659575342129568282612773727152986405172275638298965379619424157315674489929855048492787758992491705230239982587139790251519281330726482173708867197538419276994489943902307651395518901152655619216875548141819195173790953792407897581915116563900678196891009318301205257468474326018654253559133918861848844209633651204936763089176116948204723635034710722818249013390850654306720516927584614435584236253601712114419884712886856644744763260536025112157843677949328542804823431668352402442594066171382248169773630434963826279248499929768557377596618053333866360527457851168553642961327168785519527670546615332841022151182102572765206784231750448119641895588163293249251290207650598745604241333383248842133807613980490510086549826874811314853032492016929546769944605289473385716291749756337952248561438252279704491273541496671856824285546854304020180144201014797637034426259966346247808368480462503394234200038114151395916779045951765645619181702401073943578575014130810304591510922830307088274534587048555795985580086278376665396511407089490353450511342606837797584134263350499680607558266993152426954950589069674846348035481292301040864607400738177414230377729916398102755988263145554199271723018323172121793925639321987257537899240937158985280363597798636389831315455158637056278673144776358036746524487886765511929975032131467032215672657031667515367814493579557878926557622443097818617405058362888578511252246032902660918008756989651472149804701154546349681580026105508852215049831919330945271255381736501962833588475590025770498202068731872973090310330989703163979759119070626343708338993941981588245542759568079100028570780674881969716929252310009086033685502300699368272538756712983637351215051581619795178551121052360964100051498000491653770014849603674904834954364168682984867046299844797012162852226983707199567625744685631722268535431513155598047431533768731754597021791271660496417390755942879136264965823794393544697370699502036272301009280374111978303089515871917376435287343447122679405016410493601885029363606511243220220816951036191941811345972624241485294935129671362090724367186228437295286618786953229729615122425549128703506357730081569662169357781238279360340294712222482331075954152772898581101086840142987791778052553498077201977928784323278070761165026905671112785135643275315961711839258628138373424934199789244851155940243603125832644818895577641253908589582344078472689265130563584066262828396558075430838480505627169066639737630288945610427763868549321460460284318905859321305220413795943059173790911636514949934187739623981010868830320791454187809232760360529963955441760021419662578850264497205017155396959709722813731902788737402966385408401984337594759209077152491004443937497038546877852842054471514033436871440470123836314910625936925833467139531849470781468546707319094013049958657289467196084746878549128540428533604794819033349030559571405349703843040195309862253151578301010748124170245390150245608631998542951962708850733511134922447651600535985341363406545727577292040260614506198522977498752181719809021914233558646317404763381767577939292125957223487474802872405123213504093128563777967649961096382380164722454783925786222937327566168525544264770829989223834409429369226151442206626986630923003807172160500604809216954921967493563835371383685079064316420424365736410455197392171458748204388106138867984401704140604960457072992709871399737090067775511241410584179002928716993430631230255244036084473739682530510913365692361215904599260235655428501006671560942458147622588930028658527626398744779426365651182598094454190834742042563072065701172015501568307024522663298191379756145133055467622175750826230058364561749938595548616558664999414354970137117739659448097414994715643807283479715473371266101370227913549797285029837539268858518181489893976287147425215057137666271272253537117229331573468973868530907303080013580884137683731110306234794917692204652959154858025371893376904549125516118021490404725451729377243521991834150256346101463456324746196217700109351882376465748688010371550438472548375793286809969947014180645524847080946192478990092430958903649640587382726849779000266497579270392257871742779214307076619163370174293859461329327957997602839413232294304500181635086980062127675901156699421199886548862466980972525143191035049335368996572740833313731367609734020353584668119580629656783753833475815854647541304988173594018031310164413818756708292337679738831054104863606375990879417410887818929072790727015605973584746932988302305830876141007168884275729189352941069350144608164302154485600058856386489161763088037870712673062912008605086504812414530720257765040081052730141828596240262868956862903883736601628331639390842741667698738712054608892033610676535250719776364772008149585848873253106401291749852161950760796534518408305817741615370755035033599220027553405819336228730050440946447551636064002841065971710817180407391115157555915693018158533693491429822159378059945299036191680807612518016966642279077698789158707400540905849640670172652148381775272103906373991500985355391090613872227027683946898859228934454630769713022022398923658840341348119723523415688257278049615348068903900934590387410546471333575509843095588195103784157039450330086786292444431441041323580245548103554214361211080370474179930979233881606528338971546094943268005094483022825132648535973022130403627647170864407619607104638386772817081416028590240820724412471783468077957266146517413211777211851302248696519037413402489399555589368437655098458411457146064581379082794609452628079085383148321791226296499106469872208033031806190460448730153027657496241567095589538105758119677245272119593357749585611567494181790109029265020014999601569049838881028333371443944886771854011342551303129095482412451634373671796881057641863744192781139739179680708900096356475241877674165970628951467947553835857076678122089043420443267174441896271849219687837762810404210728449717797183608251836599526044553501695975533446771009384746272617167612147483159782151137567123480086129602322889507077653204261582897378195171098111104538412563959348635658082556566308074626073330280611288133128753369914336505137859081932801879841288404725233145406301686491346939092086428129030665605306906226496481101239195568874039635987768547378494491990704244389245885383666689350438460919127475769504904870697267438069583550633884529082986384325794831223973803068525929934041503633525214555966571575123292314323126561849761558381053188666885520187835401074715143927614858860737710619718267751741988702496712428787378055735123681931714453379434445405516381121142463740347135240083726705536312244272618164923122155187999091080909675418483107985977393663144776825119140256190068240617446814225085403407695970998129026749497547060101374084621714366935469511574621297628713284220325622772651480258106643493905533207576322550287324333335406077645370019113990350844189107597201813333119423721460370885803602881214514379187861812556389074114779530420122766963623327665197543965014452724606423915297607553234933135178947541444301139902080001695506154320753178221774694619433500788465901387831533840349058444661455158717092440404984699438138370579891598624685297830134947847441417505537733555821664633523242296968960339731787958846054755374924027847910165531462590896703544100042012257536625180232411962546595118183955790242050138549193570575158116778753731596199874317471688539318234339852359725445638290907298340965598072902268622331795828726155623066717262091322874260303275005120101754210875389538001683166379363090895825558291831636989539908484527608563031646734016798481381128741955828089499016425822689851078641987315449331408801101959361412085270585498580046170102647532517074766434920170156008669041856039541839053397450046008544522347791294645598801898463807538407751662052431751042487497588249008243780410681190678444473166300445901784942653983644576747155503384321281654283849852474772039357789488961488806670852851442199418266602852116326792750872031458026213502959829608021399783602485776295913856955147583808346204877476798295709108898357157776974659061527332596046884701395496114881607770424812906301184960511128217555271573914915701680397213216612111926912815098206223659769111757996896453695436219497061664189068728826026244513102451504002596258123570024086508524577339498415220513979460519136930392407968819493500257266990181905447074857267794951891186326707750048574870468101343698919509237454093294461703105144772179874145739781166705091230956663266282655176026000348949204622770546785357768195555867449865539320325895589464835566296879790617510021765718663206631163735173979507899284510472152228337358606196079707077942458582224601167944343268140061018139633315809679541750256044984855652002233216530903684475189375312582718927932255777447874446025324918131531596754948677880839581422016861340392184977010737355461795715464726008604097886795605637861570623866301383193571303069957747482280897800029690335519829546720773102730707675691506620988713140132585793563477896364261056412139098061173896842985388532837095431116757372269051045870819177654202827542068323778594178749079887307579815052997951982846793626056565638308172210279930650690403342779051206834199636214944339330798128944959352163051323144924498164727192750854604558284774223177532880076084742597430896900174055550297354003518294947876420445005395836155193582152390227807991628741303098182605792016595726105095393728972409467596969111150540808974217310542755347289302144451308489382600486835367885911284138046332669267114229600272617456715525360849184229534015849060173290339105874338315049729068138760344025543774622565029001423283074168874678447177704491441614875157801230405569289047290430071861145567319165983196969483099737622795002553648570606598756825193886393742605406725579933291761744166495032326730044946099813690175344972095884937939833606763056810804227212703550185560813351381193005533739495020239572097273249177128077154072923046848636511658256083161681691752884477268665910708175300668050291861763938921171577176889599479453821237264588008945018504487050161901269031818028099489392920894868756976341474896162775345512357917088745957848935283859594004340606326108173901703036851774988688827624838753788292119905717311968754880870937704760701653312978609676287180768233182321188730151335350860750191419385431305632282112796274051503533465811512125580401035769729838273454932249349397294636058178075946663608310460263401253703445999558694564316876916282225475713821393188968372285803179907598508855417655415573091522464040039411950533099293920073301769062387290886274701073121987114247248445866308228531135673601403377608660079432710658013273988958406688173068895593923112790584253215558945115949749707486367501686384325558359923757281191383194934649289272654112844442889875244756279364797598714691680244998258156617032711263175684494718013366072843664152188542056377281896740124157050756033384986156967876338955910111942091433869907514564577659058131528445471905008692824192944608830481863152376215944007720554829285716622056068461172315345547531752937067869574478971431253630921080298617022071873078999875476820889149401697507162223742031460061725604734874018965335602312487011600867310925638949377096000693605083693967194709681104212212322973874117939235135502563669503657550573850206878180480660835551460662243105256867721993629228713564409785204722972329700318059273052458061473518557653128748136047226660721457071776814141727263827961730733541939696828955172631143670748322094329984060743047009082467506144019163545601493257402233530978719418864946385048431014536780352502418240737700976227007073390265384143455404203165749112253482053378466557296685194425374164664251306663753238446034994255269582744510081576344103052558186960268261305513171958743023383257664579668732336274727524321495833085975016599450286399266163587077330341540621028517500547564583952810774221993894693083381148613665432743222231366016711772598856954221107425867319656444283262997792161704007563959409129169529761073804383139564814756985542623911749825393819947267990604821647755149445592954420595008540847258599378523631360566285478340682713350735666624153195188604219062671382963115889115867652114900806342421048135350504339943554339871235674226650496227759959817551710858741024303443260222586431686210991472932636491497422380573530801165558183646340302279297053713218791417928148205540473633434734782848878511984279282096973723125247431415703913275169489352653363036634009563188613742820525382062180459623592758513369925372549261400631057190705954929650711318790131704250073256802107323015249074699247576532061085520245815396086945311299747671916218918663541131667473162456369408468302067230282359064952423588448530588486679477264649480687335303678851100878437365275456241287451719784515479074367201952501064470120428988242202076103758904558876443829083447246241205574349001296706455715314600767456814155975997382658666129302092492527901695695745359406687843717498864509877366279554759658856771181591920052876806523246896951744129148389683564833083866597907366148905444689374152079476127483030731041313381300126219495197101324821491618979649547747750627492263574647059179420948936935573295273937419506489431321722268657448236169380927810634414828808150599646415595123191738286375922899615227101589594453541266324419133753105269855835297641320143436425082799640403551777407410044906266202811647959748512068127372907459592056316470125823777109978257769957033812117531204013386396137546177594680584983341118399896681759930318713806454570956897783197601651822442667246956892457112799245610092757976121446156395521547838546757526000993679712615989041455690274224112954319923360175328821443022462433228225981808351162742524012331178550570540536623935533322680424733066974485678368922937629472314773772324538546310604792543306808681628632561036401474644606854437331946857486158378861139741095805781628180077660981793818736337215563814164025792150911416981229752526057548094494880315222690813259790282961176115792430955522309722711586187089600901007309223924211006685708949248116598576612373210022465437595893938411553541782985171998620939090186379020197691374293787584208275556293771196123852312025647091456459639442791156944992445524639748162875335840301258412631763134463722924133315321174678077975650232985467934590566345480683466569192373105859900348006275196956698607336014829855580598956077834441288525474926125713385796193948092650312943953541672869696922123791586400967556590298866465823257776384077244890197780931459611423524401848204195361802443967644348734095303726191927248996566397208260099337833239652692109509802026276868872886909076891023751977199107144193285892407542792224689341641875789358702314630678575509291498625640815938990792158738889141747245000114203479704663022380474933404305924928053458053708214154553804137209273540484010002275792552804791935401166084975037271423308809808504130814869692302735007831900584476276055566861583082967631834183969929674034210484619470124706092080640622291974405274192716611930972696155432426780799455916142792818288929605652200080649164447231185503882199252320220650782275306029385616429512352528996857704760075359907597331527244830933485873289410020161482657658418282670518349826978978233312166841964702941918842674115166478116239247485053190190136442265118869069201413593445347771609928617551407565303826327079047823205284498003204977820926660124615131234444135668355106673961845867572617277023235832942571520757743617566596672426610409033554021118010896943259482396907010668331491234480914897090642419475669086889025571673482295571707311193601242518899389576995211365334501042768008441626789759128129325417063693830452736554504486831096742874050052809361150138543229523078205508107774575655125869374832349991925739942825673851640334809661703378502172728481233138591078682929799447478769907649615396266998376416175449417952393736790045035902297044728638525407384332622238784591473202911474625403018502976532186018987684119373287821191796194753210232220647427127813168933219408205108523517614635415032538892253261683672797514662341190889789767791512008550920182996866214856173147864401751473749067803501711810150613194943324735359290927425166336728389021172584196357423025810291544244677055616730066734672097367166853876984389812802822028504278673021507972322898506787589126255699015242504350662327504404895683643144238471757224699317631931435909069803947178592581909488889351020160762257842765879104727864795808414269481145329475600724573847474679727001292382556332993255447273314049395471103907214190931349694097460780269408544593567594500171326808041863104267475040997453619156918172682401739647724242467568578284458484608680275943825634442281048702530452387147856330575282751973537499742519572666983555331384973238956588338882673515747705706931148134181814174646602769850998630056286505884103944941205066231846641289742275534765060740307925602780059122138985571051958554421509498042233673036268177708134377786791810183268856913915954582630167194600192861842124969364193656534286084573039309811955642457955778884438278298105589525080822731684374417678006596626533881537469214607991189452479135122939696500506501231905406635794065989319387109003005268034988274612196022190136729208018522998865274136482297091389585524904114392861672792413965427228815416076229175894407229628464496779438943582151356250642022534428320632921618839281616201587989651716005744827441067751481601019431867612251737152282808460645300436792029674784542069647528255379044291831442371888523539523510707868162571471782482259424029155940365900520766257021832928505256925976237664350873795845830760795446405162853657245160949488362971041900102424633275722986238798008587771445431456131029067719062704447265116398886571174440570646973478281204017578276227607219379868194232608250176561836700351161616933675805537808715115796008797766564286504478442064547049398150538080536234781595525983614236618353255816489246430755652256891536683526644344172141270462074661460102510784947104304931260494294728006712418453155273931762873059204788036765523930005525597208483109139416795658177861887898201570833101579562542220923448401305504695504221875475650393985853139026978617472963074582667714974373240237178050594537237029954241167030488392405074129364463450342310247055446034306864161593883007355292313086182866185343754743194954640130481805702678349321896518363093719121008051282702802588090840796400038228008582782178045878316287421188902607927154196866764365217843846010681177658112214957427786186421835413430275113818915005095976540074357456413023264757407736695299338401667178324155347219132303643698440007693993375569528336219506067242049674166657068943941317048227140997011483140017790100977833907959632847239484879186580921854977575170244752115131097923555109029372758204795460046196404729595643059777783974428341627607400775010526774428747616263509981665921613256945658703932376136416639121411973628335655070149591947104028891190536499726759632735339431215276306101992763567881440973043150559902403084416056768497811823578124013094973114724093408464708400452677566961825294400437748465604694302434316337833623550074021644532439247385405172448870552890069902353343323037598138636633068003354568443627867124456248942011614273754554781174298988186595498790910474022794792262381440499326991204222024309569737832200264692541717500086294537587212853020289261131775242675496744116570277106169186378025043189182599874936254633249938804835929477259861705136737908846734745154643859069987841868696966517947526623560367696705631342666171596770164657719416851951511720398642539767909316185153380049350909269594877809766087750050224530770599255190265616296663867707903988784550007905416538617434556512182416457072316428982923144929131086118404860342335448734361413826408121984881811124572690715558893240953037758576484801806301161481124489699824094100555001654920352635998115522367336519865827407384448044645822001072153743934430637839136053866434179343305424126284125931491107413524481275518941374784282394824336415640823128758762565211758229407854980430474797002689057667976731295803572376115009293398407608895235770484143677215854627804522455925085414015313380004586401551233629131443098907741892640907222572727894628774689072114853704939375163563665282109450326379510852291212138278135312980110609694404012725495336527858547090215091464696972698408946448189700584484161386210007451062763900534778874125649023631034333609054846163743955298577005863797476287762614298994525248518095872691223941656586634400873677678484700449625019075494520151411914315332128893042034504967002147111888280058920661054602397790589781211105195255402094151217310667541324380545401455669234509526359458821230436995636186990810531537373824168101734485247122773560002954798026114316458241466075132603379584282555796481563729901605438376093524830715346471085098257440233910075186458664099098922102912133770895796127000899971079277120186103671969872937323630158307871231754898336602325028237745055747072641860841123936180947895486762685855467858236070792615072991646045867319464163682403588411029818977625411580751147889393119734052531743388897393872697598102548074925564797201564065743112274331784647615654540897291608326697048292946346657807309582309726796911978052467152028392621511286490124478850248848183986285865075747713326620145271114677174565786721456733060468874004051568998673201751866820126683584386606803819261501731706246365476658187291218111585285467116013651141919108671710384107426789875657124539376794351119617044941072865159585595965315196989830023671129617730349088839516000106050446631743247174897071054142979478017458095284593432833137281211057616145173612480692727430832055708407581142559702634432797867296257153459330767519223798777257717611014175865734703214915370718477624045409442311591833978576866389733410272045979005991367828578221064972790871930202875016100391533380313216297418726650190787851593949371386045935373670844113382711183087312494864541743574214686835928754927235870979843335536716200237869823022986663547275110584005234112405255881818359664679303101015620658196934515871567137575289916462824925597062818418582894576212945823611438230917700302449489133610613827490834964477621787346447026499769726247866127143343221764861869136808321362064200959619438353050265601860862724814547647117536346016578355911090458928207651437475697182133161855351013923980751520646882896969543589338572821108081307108665709982251394704172609397765670106806676991367395239504661263859914729421915215609673524394036466372663813680416691010819959278455456814674464663795949843874997705183026479468148261393004697414211377913151977700231176390062584117289327038267661814273524574898201295905792155435004539255259023827819221244965651467856879554150282227034164162144980448262322326926996115557946099809848913006493857625850003933959065577042884224564398731584167419120434036654580693790187702459668464977517844234433615756388282451817815879183898015569116291379749147048661340033910819376270979249353296317211029583514651906856081250280000060349880972022954641056375136617871810906632508996187091025564369049330411368675276407339561782499467656681099175602319505814399273349863999548711620707941073497055780502004675963350098341789186113359096289056964174234118228430160048361520981136367472294933256702745806272914347186041854105589229299867776150667165689302842955396469216576033816806235268962063752253539744157969186015157814366195885790073062166630230910166959367024269792481627630281463464948769101695079273086897892940126757921712913910008396411378373795431566611961510643368433088618623290284126110693124060250768337091180111826849262751092163545166710727947257693668586334486845419876371906109953089277530321871605955456393401929244574095363544312979602986045366686186649441540758219887100343379089783089926744344141352016268692816551573281559072200042366072247415418996628021252444280114898557456736172701556935713067756468528281744082141312983771137727631176566121635246797920078303741677352842643878804143607192758873116877685279206166973942025648833705841582256861120629117197744037180375282411259515120262857331831860224413059075381128154138164470162301120640953802469693210202598881362740977310144706309596840582224577738463553157606685956863009275528242855668057257700467941823208620752649276136215125901873490057673959657031592968881842796078143575612542859339519737597285947500940903480008745948637675533935174599153555383982085901710466925497095318234485767057271489489142993067889403484217784774103423980317558435089216390284430651301527041756892648818936534377956815443021246521520066202208894129267119837074735225440126969607192812429663858047147462653421979869824000932964139277355184568433942865833510450368348567344135137337762776543755530289745138658740521982504906399971217360158655195310558215203224972501284702837664399837412863810009930299872516820906033732049705406081567672618534143387943087757610723691425716245418672347856194464369415528747068518084369239079808717974904728936388684070064156099922369507178258396109252884762845435390174009939657124668539118312759146653902810083182348927750860828625839139223212311551920117373462440766816421560509699429316867966844269166771290944242617863949960960875946738460203038681800055309724595382293250208080317759113116714683645909162227348445623488006071709909091630440939414205023337433041908493860379529957507348664898311991802314402080917045282194840151438004517185537303972747525205359263895098287269911999210087989679651850689580939821352230242143153875424493396492492818477814242846910928131700609983211382987053495293781389426767774859202316701017609640549763887329508491161230305222970635582515832385213002890418581863228783479885364348671737693985270663214723309154903988673552587827630695363376847912420886107923648861565180129908884255697389026205207647285255001903981710279478871148077013291726232591935682455431592483696303417254106123712402497766556127206295847173012805987245941675179834203467271081024867877357637950548309638337542375243659608294801757844083348977548224060569458804542995267231590008506795634093140257611561888637442302896122365795242674038454488455716246464489700068089095946566750227005127869579675849281723042846965397171824347619224825204613373645114243684606488128719973712639405434803931542442065797340954290340988000079943797349181352812220320432284117450859363159107567547187948110269726611559883631165404892263941300683147153096175043414775342973881868304055219930559368398768108461861970221950278379127729462775332686508708991811851782075017940252947470254059987282458209829453975887240621008829516363684823267153525524413087644835321745380463355005718460347700685097585579851718688258713475006791301252981695450872459086785198826576135646215211423726578881299960329483772552020612676070796901392096593181749968286075909598021308792831949991636341365905987699183076932025635658629143687278220066943746757265659507991037469662096182438323047336370273547997638265098380045063452135204831549319004377398512529890444214658132381472060298567252220589132671975154095540834421507608718083364607838746417520559588885925773189501515093093049539322584488073033090861788759920024982043284794799706892517084460371276410511494643758509268113958375256515120372889883954314610313741050615475495473655969940644454327697679307275850792588252218395986139888563087402557939355506636563770753223240698535605694530620027580603283951078250999508668651772558114614083245157953246649086117422742972849242749989456776679297552200660318101778176246293213089684254148839098460925661801955979478719983019967969564354248493412985328168840638176598686551381775634057042032045793238083371456318545437528447315496975837824134000220864871948342208192131055781684624165205459480213265451218439577501343491551733321108582886736844026186738404125941804196821168878764450525502291747956350617473773605746009015217380309939485039019557731338232260103354910079245588956965215170205408318089112037601993074020360154618908526663963083994619714453942950013826012121384880633493228139622645035930530259432012606667068906468095379707710069651235135609297125461098678098515761513345594275870191220983963009193684607818591150238971503352932784103918427213661511785144861148462077802769031719568470269556469070706504940093288747562872761666108071060920504871357600528651544028554878896981863632519630035180876519641192491947699110741034318957570426393608450011232288919512200232864711339000775261736594067079269869283558416857102692957475209944324163553122791847338017419580830290937788330410599424207216658923829845990598476197043021261409035772836881636144201855537424750686572683371978367556662422325940386138256001836953594102056124521268348098932119189037401900858020720282813186808774882568755684863804971898437096399976348195500377468368404084687196225611301355382013142217373311136380459903820243276057540666901897832942616937389886157039681006943566776935856347420086929009611810061681921855731936822713231872590654287806767349273928705568258776622835316989364692955212607909662582944277188867221568035882908548445218452657952017071191500656456663438588211517599362600929824833696347813550923345022256852115388949210598678997361810933348013651046279803512551985196270736655666618368103764967722841447812142108524647098953624906669780901095172928884674794229323960408526279939752737888968623495424412334481864455141106151854849631845791470541812933847121830969329042239616254971549825747934948577749562189130754397099686311305549485771910811917978011388522161336479627568406155820955158740530079180929856308505198458906975563144417344791373984698771981627028848301805623234813066630917850640115970490051542195195883187237114875002674829505677578223750271271319431936881727112523272669884649008698833901063416354981630358710054793689436137443682764564126375577728814571037281012309566023213956948096880038688307298681196022430621913511293666333190513960332188977170409824270259237510132757502266587589840212790176276751221063944130015583465852748528575197419552363832081880846786877790247832927835803493336150200448831282912118955512934044071049125795903563905295614735400942224617109334769623809940844999406373382937003363281831758626280353965091671562245001756581344212780442510000242339341268472016511110397667333853671750888341935217332546876505223758533659354397075959702444989463519779564082559511596138419183960252539916391868078785569490430481485477870830276015216614407196771612648810851042247300260644810402277151236957037142273056807911316718675360790406113320007495607320651491140486684855467136098377520813568579345204920142544336937983708978002030433957008783446708652433555455151082720568386798920066414083455769078291098009285994517608160885253729387659269595624815307401180875219853270674376053418673915686785934117152066216829420547116962770730357440226437480503362868074004142264852360355267353227176510623540175231677693740256536808737249113611932593850181766604911006388444016542679877930375438981678205105212044887336498849672778936093280137528189209231896483175589350037757201670680264462774985379776894904660480929685568342297743822792929716107155868379635866142528842500928103294297123529483179879549361895915883961176744565453893024747138366448579340823916412585189950787781444125251750327845090288417196308497392233594945000438126529025245045875506012393562623375536638538981954922344663379328751779420841758193223426701439643012408665609436199070831695889609373546622738649808975136350065657769639163490976832094796693926159062355347490049792927228511757233363178673895064018145893737069250264096602365951701419632951432680190571123382237407291013887991148441463180092012451319641663240086326698700206468234256300465121874220111971821616112874219647974682487754600051751594131320224822871449951723142974254719746980858279128080800808021851361406556610587860128900708642332631540185829347999673827296940507921493169776668431087818211659460255882937942021509508093651883404034607345829830471246554030757617525908472419465897159864328737922652270670396954347575433848601581223836277455306620960199702428327753892762153179067953434183705169891841533366137428718655180370454740418512495770425711733841583993206314172926465951567374681765275465018772578399456912484178104097622061926208750087985319809035159551100925079530570542945616555578938700610140305794984620914191373271634048307878487124020175726797155480940633541422447764118359684282976924750779059575876535991602613931427851148413697475756051093066196049508508298382145138844667844693051139114236833223662635364912035456742491907107269512231822525090450042579838773179837675731636747707914771952788357733934653202024930819916175206300794658304929657533935382042739978650136392952123071512478629436328926708884251019850010187623176708390107684159991785723037964475906835935114735760827144825862547963102778887399007967812130319846486830355846534276504519858560395000077280844962626264668166024088855189704986728270453736765697603023799752309241555008280716127141348917671743412031229789099370098666931068767262344368864899644584886081265364803346135009323800807197082147070314234469613270933335857818045941008538196051208412256951205105319450452928676045743053793708009070693753432980446812629330900891323711134182862532642555381137274523712500377222179210528416369897270882344057142113524382056783371758204955814213936007724365909132284361508852308480546557803718756078444921055166722888333837762354152904378955545074418865219715986333035585043436066347639359874997245712513942147942656541573432719271308687331296543423436899412493108325123791804933051847145797901541892021627099754538011125201100522945304512391225522495259542133628730245731790407481898926902099675655107584807693986661545028099969876659383648316852842859841810136715073095295800425123916948295412467495045238015625415383091918922317067688660731419308682977217962958622800431353705186982284962226301507253707046712198054908704478198683587355106119302151091657447901183940522463604759108093457256362867678467534938222664272458945379895098093229454856035819143622423392840318140544911225602640736931992014702396176599459606828498021790325735285722448670919628272856034271662954009903360941479331375525974525989213977147459510230086811476818884721336010112103117632889536801245469495209502146673788709710674127317994188227741380908093703151161899130675841993231093900327309381036884092493793661352416113356926928309980099613143283996714340050012082820106858223230820184972584561007337930385935414936026106728921317713559318165650678974110880221135231899288026916635527981948643232620003942743955169902657901633999373067418808602729917780572965523994204645612797505250044292922685661392274483393847470529609395832666323578550789196809726996516379073945043220244602516018163259765951420886542485082914460026173023282891456539225564457462756183377804065635082775305447773239868197140774099786589781906634281697868553092143937551994117178253168261353423444027238833701380787590228218006500163331645481285255100907430785143265735321356506421372308015594664172499582393519142488971436729638815953016780472462186646817857746410905717907617977728955813543802405250639435906867419259684111679248636931101086346826466228190659196947364258909161348961489242409179022173080408344967606791716003271157138685103389395017194771803451963726150353425837616210783559725921612155194499172933513770560506877557762347637931815872087672642519992486597532594834134812498635146052749875557277833399676698066264724791161250646223971650483794859060209950563477105665875610760265831434697472058662571829555046889189531476130489124663306440431043699811696301976060328568317496250278102069428195566580930827057480640912887535290427118026566317295802427219025972021009951739022636931767689380708559988392502965562949540931936293364465517794479632481322315922724315221678401612316537840501280067892550590034935041089341773200603622198559910479975953581369945114773339217144831857034089277197041409281021680991000253060357161074492012313086333279045477015384657147652356139642791322178536878186999636095936424920263072040973625963451659598201705212608356136464020754318079900117017358925673092778556505831831609615443733217971095760219575229208117964730715475111681594946986265955468334228475732961464585586613521421028438206215066196119289463828486362113233320353925976579249854580968929610929096722761029053627064293964773697675541342833516043037157286012178219017223541136360556363692787074512528054016060436622824973207065147096009067992846250959744473238368735985668095094309987295747258712011911655410496984557281656927843501625587965384803375735580881073831448659661255232284067693935891038469857990771619498807166984001165731212090804122178729506962966355392595765933575095745591161652167218524038607073256557621403205882723458969975469273527006670447205370689466171537818462227353915291427017666693829803497794720679479720341408484343518282904444080758385046418660859535926107854833227370631650238754141307078313668995704379963742445834734803069525523258137790215030647056165427491537099673414148948537894782702153193156846814908584024000401926701451476010841400309973113187113061207014148732093565688479944606005895176087396138168890449295920628063995897774713910289047589522912482851626160337798365088972626639046843004644575496165860386439986669985920469594138670943363007195296952959627229059830572470667137189382898056973873261695261542575215629802655964663494968330656095161383388995096970464093835830121597938476077171114877397300397592981852000506570253792844170327209502542826682370878829199114594703440583482782772238280469607096339581763942295146362527865638466013689644583917630780149900126374072455182281774243404323115311143049374189660700197893813131921863946790318983222100232489944185853705091444073399062875477127745474597550100227224848188870844160248840906388945468109339956249812962528741353018604811480330763096232275854075403828013866661446306159452304825306573761641939105463702481459379939827511636105719360933228721210088963905999746086667257339916913288308343949485310545030459917185264416224234823054239894987634241305416380286467760721639739183198987293165510828250007699374007867377649627898705694315062358573509224481152616920360061285288327302723310297837384687493988981499207338751193862070607920829538894558684707298484616794455370759235935504317376631057142979733072404386941259596841984455284020555754974276115096005877509977150466944336590127581805293066047280603964501480727403104531752468487539565504572186441634370726934649040316344566643371348710626990503913608339280749516805726276782167321607583148968365977247817804658062462500448635537474013728495593269245614241167284753734763880173231636010016052484279367145918371744731584701721984922635808058011195366189853588102915279965533823244211516436946964062275419129589817432780414382686927933932320313649153021075193846001416084265599530790780182650215141888469320319880840226999972835486060999471424555283776672183340139184311684798621281862242138273176159633677220774510177851319886799028501522619834365344281184890549144182555990279429184817992946948858749382891011296612522434542385847694939972033114576590352026745404413645172892155782689661340545909427807368552709257775909299792899178105506752837457134903912633597744389188413584993465205118091225221024421517630420159634420715320498970399875408305144205289493142068286060369816134650529249567516269368031709603828463445006956588521498258729619065377471158773963237123122456644628461706214214431108857914747309093762691462391695530330636545855262689825534202976406730923359316869871635834111263900628411171353572902820481280387645545467557424051563365372793296062039055226803015308520241802620696991547252424197914943796459566132385502916379119592112503149462684090767643768686894467028868774036496004068832538402605127782336324793652454010510813829620966705983723820975641341253492943034253555203777551206455823568220442676414430699274139885421645718517296579192800540567313485720229064651751925523011185511682044716959630893962625476967616740169136970819720819881087697178388203684354541226347307357952431997432403096901486180718588618568797210692424513021226994985600598847686098338907667043369384825172693583750275678726699610852377090681153674825226844770602349217038977645705540321752829946688446377624270829181717509746128955626377666174626610538397300056268638429374530855414943929102071191601609031658192699909319740000791489210159266520695217566720682944912325615083175172421909750475372684847945085857796524069562516396404343057331952712455859089551540819910999467255048122936962654608121268453857010803865183748697375900949391373304782639039021126664352122442796742694814350192423694231669589949434192941263432792582189483061692680975248292299792467726517161831481778321584740266799577724145864247135972634327510976150299049815429389210511150043703435380948154458937874740627470508605504070736734113401084435762932142321328930960289013684174793847595215230148755070462589765124994379452969205879279960019916600456000583491910255529559168884201356195801247850295943498588843468732820532096608336215601165478993367711113168329064993551964290005015719447500332902949467151348258503866394696017735631766260343351110672073223713104323268936071561800955556791456098378650418285491829141733042282422029176845058016883880917288143822399268055803721875115831124568623596277168348745670348118090898862548778274520085785560361709661951581683737765169259981643778338351255445237618362418852352470072065477621782705102900957236624630739099915903452930527621540983724463327958126872577846035012542049308277987348776579927969526353843025307799889315113206750569507681156152458760516224111896697447609215838164326948425096123485982074733677470395207752433212391902803018310989465556812727091081415402100248644520058690338208346507137259652145018448599395506476541906884057503085934108269939115739149679746970200353907808582633809737628153805111682092876949952999098553494926630226583332129599713139245762475442456081984048107267752680677523855031230584227595114922221006335091891631979854039438900506100384002982746419907738168069188906535357769938651112198042298170909147935902986938479854175356410264316273443782909118185335270455305559138522571198960949420656314893910486671949150935370778427694106020964827940841337003288940156669998453246491706957971277150964303763913097743593077910497089087544301509975290334211155573217150487764398348897195612183911216803300389849238252129892761742756771268301091285025694422736677334566037850667380896541167909546550179039605845452657225557311069874028789061963109663771554273343350133507820853797388763781034235705375952312304512211234329267576851448259138272161800029353221728598440290303379876634954618418165139731664200790523026415808336151567358788248439113518918449310580984402255926178656297598481918832966115770713199742616503453901065967303464280780790437178354094970351903844579606052182700744372026390964814235154639488316376918921775754377691667709520104821051154308580169393989341728829414801224868964375073412682804680917006382504412977592639130472072569966585633751442909465103340382976025950487714541887445214915479227593380672237945821638389993909691868012800390389117911380853131302018743984220964668653938113599618765330674097334805192199337219446701993353412491255259080457703390338934426824436719427976018283128114434490734625143615421355725286511296860665710581807478867282231124784295308261994859154644978682564085706768191414809046261485758811621538094752686698900485424279973022258374986219313551514253156879364239352618944562562853194080267834973486350298435431933645099281325915001358253082801489760409579552499229609670557610193106771495648960143101219143365182702712595529064332608861065141803542754936129013924294932589987703081629855921385884350009493681794719999991180055939341655956725887609460219805438524196433643297478013390210461762093580019024119679947184985795938455927539422294668128916468283875737723568022687946414008906957943743986754424738011947535731652975995588613714610638121073554461854099686411219151599596598400038298945799687841099529750268628867026336007288243658546869362129733448877221408856490731348631732752141245039176114886649670572213012209739566160119924330541496535077604711745348421881871699259196338788276280581989872143895480580813121360661503206565600280525907184833569462951789433032634833414291742569294608713336524769860305386407695223661701006345362898459839823507209361732149162909935090011216275796130439224526027991529873878066421131096748460115277716069867311117233160150027945852621983334865175751256317372211041750233515063160980838663207879285085261281849035516257765043964737608078891418535589971732328134178599694317909436770987949636438388264107693549094459893840988541195496581630243270711950441730660127878966263807990939172069730270150221828319360335827167331411241593041223813537443033928991999079171622332100258159264170489748134093919462105556777106498191890369633798029850512958525994470211036890399744107984532612860545298003226669858101572698751427538087704424060476645669036121035295938007131482326880691416802782261359219287964207320477668561600343240537046894259694329809963965780897742252706518107930433474243691049276580241215758552390512942702433870409126447890471618629454688707398908849312874856600085885131806900805570587423235806244189566955165114650560040360373750065894460585242918980575228601724525468848441237656691637087417974001322118497905191238908340716006663850089289930607364177194021013058049399528159393467962116340534959346095260913744607159732506421574903737310151936918564111808928220408533217519874503367537353141344942447203609451872809248033831178618939107533287377562561146773699020032062827873367870266389838812215213299424591522219547788152645473232211181737293788971499810252408754276407990547849967451996202187845750637665011327109380404117430816290360642534106564009913930526861759689157939323268295131231022342230623606765659597168945198331484021083101217989239998264755975262830467842152958600089727290933047141022878680292300337322332877436836463797811232298937076856649181622248706433428528733951173846145638404430917133773999045148500398032819816610700704883391510304678589344636890807439724059067014431866716038378504267890840213697517064109099828022170389905716619484066967828765290869326858555950351888034396692743064650328907223350395997247956281283809142618187496971891806015558336341288243568566315479533162302253473867035769138043969799375525960334051069611686427331769450140686958033546127005241802239863834806170574449783580942842464552003631899415305360546917923957146729005383031226791041794364049517838975761663035300740309338490938593055025274857824683661486662079381785853173120008079689205572434713270033393054972265823690558939775779138822931773904652220137481274559735994226053188605718683926602273544024174598122860131508603856344833964398792049320959806688067878654898401800097617113179486135835092501509115019009640859332179657347602434008666192273689695916647853993340847440126800808643922965398973416381769709493329566165519904136383977151668580694474866935519547080466589945189521958443517484847917561977131043286899110749145027839362166165289288763706296857284895411766366233238694572953219831979275243562382538294449382860379449125889134290905786781159124146309199207604250362345655557342750105865379776770211399200557922653580092086799255243546806078776898281173017994573132489729729937278830362120937699512871446367452984077558514828845779511119453964132085869787095162064974680707039851786809620717495971662415712166503077665764711749394104888951290516115866452484517668556710387265381764176018158050795444002475254370961146104870494462953947131477220347350204018647859446534939448024626999138542254301203486322572027488402880017341100203918755994796451549154913405460923431088071792049360959948454867474406235540335480794612969226406060742494503190335861173916570860987437021929334240387076626020042335632820284310100312110099149329153428939325512305281209711958873498092260230831610866828314385076316699345197727388527070170087338431316450276082583661524139275207058319643872232620998597133744218569724078785650441502684206220391154611427452400332058262182451777109530742974575989099351938167455393425823285120935344591990797088263388633831691428886795361729161938126650779822712774565999359571009533809972174147257901497706862332751970351451327590172629106347807519355853245949002246403739608227341401962085506059426590055632413178406324362389068023480408750420472593320284484725896156304227975820926325144746338165426730410920747151655617106967135338945804341383180687917658720911245537436446180344579284633152051582294497282388150629858034958291962414539678455803833173769412111276022719707983186993613279328757723184842656914052991031595969179867553161943253883742582221234682983247194297793582596926974577908167933084873239762039389207887730824049551868373911388757878634610212435960305715407505381857896786352398598502531203532987340657714352688085097002776583303482394317679391765725469839230572614790451180377797737342125606637067531396346915236005597140078010155538399907207392217792470507617590991009996353991436024890912645450758733872784047489394581739906185690235792502682932043435039854571367849831450533544788581210748510561398793432591945870205249976726993822334529772580545781640985543893399827039164371923816637499000680445395681184458248574237395054434680133025892001650944827978543384142932679518919329414231239811537719857635759461162488189644377607064792969611952275927113233086456562215195743079937056266502352140971660051950796823460104604821622699734046250003818405394465067388736713776820731786042705030633505146469685775982383974644612167668751324262354673507434502777010826241719047892476473700773909214790356892450226614444803127206118735360249790393316078535463977095800500815986395507642002391812280073380533423476979164078007172964992086191260295032272949290593006420302557780364550439211905942293195807510715486047418105842095469577122665562291794594950955893371590418539739118620205698866699485972475209082795866653879540560041365741434798815572507642439232142470596567484431415001010586743114367348560543527237750586291865264686711792988181768580162289658228469468159076372970274898168097886456786145813489028295800508615803547688163305600158068176872014420776830261401403195103599548488125266036327607686482471768745803555047104478572498495646156069821756317274706907486305265821127682696894516850255701981952672487318465686730652218228000442767660963373147708270069528537792220718472868569400678434686950002412055742973665416105942663518242568306889017110934768739131718776232545415148693284169115840394613579255005102972557572685540015798132419901861809569601919755750564730477791014320539264670195292481209175703354711303324805320177166100447006979588126075783732342780821196785995430740627661554622963920706925310886244742612299436633435049733799599585487754780757689371907959668619640913505596720251176398135945854380415568453280446300081247369332468036485217562964165998537106867227194670752560103215061417722924656961738969999710411770029588631919616256664578663289423178578514263010212173420374005641658147712644102780099771839030114801943301526219908347588379042010022238383548968288658927208362988282612316449191613285901714007372372857226342278525188980394928125312021430963270683462402612703667081450462856804688429984945156185257749979967662769739347369028530614920803533499396110109548563965247438251854969088079369387892416662437605500880259687528193010285700995629813753682056037177593343005199469773250136170925764920250204017990381809958861957419741354568645207804982827357353102848184447148944400530940859516658539293329272367349656881265013205249340216716650997784430524320443107342073887345899998720429520207276236105149673141503946030975090907787798135325690064396155150919270917511968159596936495233651774643349519438064066668853809427347177443653244309029413745745011579394206526090002935206590426234313169118114994480301959073953846680538535723313673662595508372039534453980136299671938019754868987878344597299476627845962971015750929977854661994233887919221567669775042921869714676764004425315451218500299556279037979899557573690502473772661795095769286290605671049745436374413858024632301696295622613475521256768605668933435162678998762560053703635919481679249159832009588870466918361121123554846068805702783498779335304226812268154140443007483863259769381298051776936850581865520850579526017045816909363240375134909175854330605417464566583830757904560647486869289289793518119918985620804032709478139802102956766225606775593553339731898792306367001844666848837733416999588133747961746863819296783692275050320423722273300818536159621202341500411348395147193573253238963231610310244907333495810427966895965882754311465846967296350772042046127701237819174656559899715737048831821323377659447011012411335316403049944743331583729945030087620069106285767371558977605180019205879844339436927230796435958017975319298942096439363095270526388064101962261546104991587665732204246606464184071520613746901300230924253342678839229669751271117266581040451826314837825509993867360312695032040265819474959420096990430219495605009313022191010452057264824302722400136273048532932953183076350024911896813566995614505208287923353526715713847140738816578938347881592968072460573650285016107765823464039732822003631146900414579757889947507056846893386212309092911560225865977733984303150974950683409003001811126755977940461604292296966710490834178625860217338113242861223062633820403791496468599742337878881690127410739729051413487277911332398395378288377837907888732675913431514913305518162709584884236694326699540909331334183660584062659953442893371680777406100353220214618114657341260751371390534229271115636458312319686811127047835442245722671092980758574197455596616533618193194658219946728000921945812069555287035741699306334705165104377096834893871143269551289707217452220460519742831521099880365635155816683684884532587709454353601185457463736439102234412212464197231652974533796356754402779401093083688890553866618385569173509179517146572853437091470036242336339032773248708606580464870322840147933745311248978296743077713176786393733918963832066916961234160945555574560012959364141612308922016815626841354669017799753964229856875553365976969416074681911088045513164500279382507162706884844569210747489406934538641052331179894423909472391793477335851353212914570612022356695548056514631531276605851390496880347039461066551136067031079135150145460092753360455982499105547382836022102382530687711804147264106165885288233420981072517552288571088980624239441843083335319634117892538365319845199732360332308372582658490171632197804257433470066394012377683773814256630398147453657723484499760113257378745703190430047023440168602629864062926479510057300833344691786638302268431323864567697024060944031445467376768090461168473412894014974464680054666438568937793367957242106060131228367811633412265994999794475044962820249985588152870359616244771037451767889826046546657406539039978986998372695621690632447724544295242628581221915079624678383960733109918174944048925019882083057155396321426585751088471279375369552800375155973713161380646321083958432871919937328543202635701228932822216798989701353495762909340870136853701890714640714540088147801258221740232018657708814399934049107058435028518959130878020066446194142775044522154457203391336092901798233579771146994509823505785017837643778744713481529670082705119153731395954402032308231462154788460039169283658072103749739321135504597302682747414546868731748864579229963035130753268273320495009880528854980018033134057903979150015368710337108523971801855734013457021070034578013277367842275145349263806002200798929446390093851004261345979493599712506290257887332906896543065403940245092843715772930278908458558572878437659840101655824101778297197049177277817140148547851910262570674393263601228106241342547693636822878033864332564513837157175325012456982952637837076268210513411982442537768532500780384194941862350531817321215064925231416167229703608421650933087628860891573601446282413162272854308306815450604814368401434423283598281214145668763567118750717714485614260167109162999094009093037687674603127234043812360597818800800852058023976734417983994651979181790403819000520888609371834513374727756701850106571235577997953251988989360048970150100414973810978298723778255117402526003172704164151825439028006823841675805760565549147189630535564850914443514639576462563727950572998067037471593851054585633522909936890825069043124980349663369132978488186182522378899490652047799818330518297291595071006159025960832822455004545443484056436326470437487277528137403359796937386895748910613146863781397896078013184362094930650857274431574362759581387402641996370638471928251957285586825242417805485020372258225838253070911266665414633954953052684113580182057556370531598581441981945032922984064684070223623254859842264089520606208602013504730795527536834677555958404198555270702640155017473436557842744580934858300311751425249687258732636591944026054041213582904521016844276355884919406891126302735581532321005509250366077545155642167048251264494761637979608530522495441049071072586270152615943478529795570500576614254806805534707109064411844868165922415983842151316412116007022069711535703578855574448206244506168386193478436494954193322518293699368140294897650666235098884923339256470963971439673625443077325290584706038533415549295153292096487354737888587538442514206584336311442151100882696638470057426610452792810187631484168841014328052216164258330735528796411308287683486788936123297718566051701291875161823726755329668522697621558143821315728716643855126001640906258616924935782697714121437368419086839770809017154894287445407996816854312114783103650388999408425852761087305538757898399695670912203304561037512758898164024752307221487465389522574295518190467920700153994663481870701014768514805163389543892065679212181705277772194540194420830809919337934277518602276328884200345149231640843691121655626642551264565208348655689350474884694134139074562736861631220531205665040779598654763768828898761883689793155980993166534526027366122260047982405735789381323044568729314814472732196607767108721531120969436200912279558094358068417369062750361977612413184265369596897829760811385248406878411361139722377880513671423418240031597269929456060648451301353232506545072019260855592527456497874049077600351504085634907078815170565062293981297804557676085145519322689036167166024492395307690366461724916173532944492940140272640187737669257412979642788244018438222618160144216461354478758616236744474373382285473615989019477424335697518375008250499571579116628032882835467242640647083271748099695953805804937380316901876464995546175641067143775117664563137306221634970227212275573355008326547535446067169032466052673656762906724970108993060578289567585876854422658288924779081128815120590691173487983216460733487185984208957057622578566633493997204233643919951167950701285051709489517309817027913035736358454793576868616826957734482443650364296967337584929423912567514921044211328570937252965363280148832759790154181785061103005857989740863820082606716248754899986440029044652110954357026500048379656704643014703314231981310283451582683505784849963749402612006996754890564017136507674775544484634068826764056606148446191342521330947375715123894734524533955309047991702463912435555751258018947621268136885076947436103643607871817741872442324214900340296426430759922363678082278840091514240527382314088228076508000661543987598159050458382190523754956085390513814195637857352899424780654204578107599518462350857254889683938278382503180274324007296917177899362344274778510429939593007398824962645149942114072146328522642395071088441790361027300316689361392370374943666418253202592434923221033315850648122198716318093071470093922755376941105324107351617817755648442030032970895445331868403862388562869161824777417183009459795014674207535692004237335217672631178568736744429600208864006314347632720672824620446392593975449247103543485897126527708266601050852049544660215254831566856198939158960172925369813893170030647038919485859052650968589289384814279099018448666827834599143849632287449904024770490641509401974911067938364156463883049542352363959350397430110172413062599235056970363512974548997709602495926620287113166836147366337565640871970254515633528544609173971900831922901727916000897805274740140362304903681806924398852067252589788025032344830853179097699561977775039169150475475366292175464137037128385306290690091506866470811359591036507824134242149765574156787372473155242351155815558233584680515925184227773507325869833734987171301707819913437647126787152094160057869372522896540911638069525114740710723353749312216605168004625276928675128279083728941908757500937860854035896514902885761872635195124005503517071213374486534294231165996861617096383623677002432644451932863699749831586073815511174064013066189611022084705664834581427554727288525571701773106512185358358699687545962440449580698643717748881616437353399266073242216483411291857582842648549291671934409041214853718229317156085919303677180719207419730140449808992730520586857282296275579494281009818357428513968992567907652716200254118891599108031584060841598175948371206467955599567798641840524686664893682114347111232813337723039896289886179475511779939358286027549647420554599692338697097426981764422774437539070038767161832956676864316711594165284593468729112046261462258206672890637367388488413973163158840428156392397573374053699500616738074455450911578246043548176770529689112832761241809136744427964551613851689012490792750377649246005764839581966194300957288194870978851204260025137211298452418226730820456685392845453090954094991992022625840006610447271737158492649048573840676822381484350357548109937629466527483959252107913552469961345794177696197721367692799387947507994711274634923375997990751681104709438166386488895929709874406755211356624269569087002730537429196191320360027602671656278971535487956833968392512753634396060465716818732103100003486850541064280618125292917029291886371741757158778116405993543467861299415590793663230321131237430589264095565517924176542564687989689457580008204466952750049617729912754949205048497571774026609424010255689040165582861812227179811614869248067704873597956417570839186734769931760592888351018784119088114737863063891981793486363199624144927851030253077826422015939062830043248666166974056271422898567775697100243985731032377190910081189612780398785157124568010544048773850113474050830221411684065993307668710651861363077355543322305880455341158677472317420212092771797198329406730367920153989102494028902941155399875557621784799541748308262042294849510006127055578406525907993946896690607132712465803802265525159247317201290500279770223092441845097779229810519321719388520471359313347103101155839580531144422391575941160912433493822582232346486204988475501578839444381474538982787963430705796287695079279974408299087683742907692014265492205952159441818378110967633307364306785720157087319823027384686219194789831695377396397096958578201924761834371307851481062174513207882875195722529318941180698372347051320161058208396140907719131820179203338543481200310129405656390987340261375678655558999866308554261035177970845760779234273872283824161221375811130379152074335688771159162974033898764736667626641002289452458047712257166666824921207755473065382620799871309995674809372751225251247633059524161262077809621394427732935080200046940777005698189382252411646964689661000753771922442729473387248067266558867183189105399724444715037504335949175153481943638619082520774128266167194842128860697121593491911899965714592343859024730207924583992597934273313532208122472171405659231202136787954719665262592395273959093938892010742575212651492501153493521271486739435847138740618163299578908233393758249724390514823227903151914001107604191540979442088452946610403738090171423930129851979319047507915696804088030419053972754627745785835776293531824466694188781015457207061099104982411145424130205508876633323342669708365633631958322991440120606512143721211231353593386760380045671557719114289245116307045660234689862757727420252847703078325766116410853841118680878157664310048109957368391781665021992177972477149451690666024940399074585351675399400390811354688982506587543694927668329254544737122933660372103806274880512914357864514730076957791246992873200762295242694629780545067317219024827182222882806314309142111207022053235438200114988335806744832040930888305092169868451884749023505259462138567142496513706122391451167288069354193781406654140310447197454553191577729704740950313885298625685569280876788078629527439423779056209972600443928081157438793648718050956779448413878351546994999535393396575089584510008055289559906838044894461197195381040735865867732064641858296666094708770659071417417660350390058318359364784583303283178867948123942592344853886424290405552434752134973640014187679914238994188328152535886749765554169439519989275826458619854321326772242145710496563513438559005877917359379557573988589100145987164841151437575975700105693897915792100866245889044668415470039882127498741626922313471788267484503725556973372341175282019517412361056542388832804240040753831450464187751470385000330495801799051952776768247968728537168665725113901472514447426594239306306651920303625924330925871856367638478398515478779999796731670936933392026361026258668267820754571505543646056913356519188234566793878290228529379043986333535017062305955113644622254870680092076555760869771645805507493414002263568477394890917526530514262813830147418692930249235077977486508202154526495549508153217662544573573857862325928567226457902041703496410744548828855141040093043011582209410022903564908624244535436446056585967217636533110153088033053965795806382794288582725302783423284564294050683760088239571116023645502176037655191548643066716924666780339598398915952319854634435157540472287493036114140967199051063422267415083653515996470788634163066324341743464962299550036606852147516749077762235035887402356275173841684210345166687647062545475790581221654370314078534041836382846196738072278169537593396664606519603805457432944910867953299901911037735979423361348544036737743517088597887552375558488593990364033928331722937066700703130027069166522224526672383663766109885305250594127707167346317703094234103548519095935151999010773140454884963600093268425445622006167908726108654267761490856308496994879388108292753445045045964863401390751575594996375979386096886995245371417709523711142316332290938577635100721527332613901505019044755110298634735001669477255984439114175108428632160992149963777856346711922839390308462210451771002267135869026759573856573825438680982229143050889001601993305465947868200243380613782362813000908224491423843490738215629389439589959381495390765249833904426789617195768447022121799958098760026482473576162153002571427999507582821968217149029741013297583224652771879393675705855672455027396767650287781677698719010185169527108159923042143834909214917365377885038873412590263213426338958166390090592768231388497871623251072667628770583147657832895031776264779478668767121831751916517014895028711006877691086759126457478699568917502237792092736729534140153300687751028426095916934595624806629687393358517094129997692979292370390113664587799270650983470055630555076676567258586547374893052825034483626281011730660807741712553628322308368243847241755321084802640015582069946137645026381881626218616900513315983593342818891010546700806763514982169460598646175635436108457100912894087812995335645652842884659388628584859275214089358535163211247153306966775588137113529346895357725223912692565721840933136148591632615526117754012143733422796667352169960161701861741733213798489093014643726124265142505529839817691693282897000956542600816005098845509400658122173466303880528184394665158888634459404311251512240414886715735448896549768816711219421420772961704482716849701231054379681526438869621709090243768861749581827127634145177076723314026514066975474033798421860587856121737426509091874795147120777010193792951754915831683497186506500154718550017740929533268998417904472922049405754562548169866564114581770322270965877469526897354235748400670042933453624384246458497849354200596469776674290227303008934910224193189480257333087702966220897052139190184230384571911922806419083568772174373636069828388605734004955343075043765814261842088917898575787069311685032149483054699605574045188640428127659237389043563548048903109626936219405328762026673675830243520143688474307290188640777410164018745972501741486882689244454595809726076789551775768641171157665607530690336485098815048943798082075844169725895281890685208907572208994392133682821693998588100873186485312289606081654320957360163712393178508269451270678478360304295484457671233805258589111661376330610197637450666570738052043949914932251421527878183214315785752732322795499240910592566841628288022426539135494434792343830087615459419013583692301865536374416489486007623443712712298103357591577257366429871796872692978577555016017737175969709352818014216896608768269480479065274494376875959433881229209469384259833277504000106538228145939766598341905913195473569170863409411954736717053382551388959016384571288019616739579026614647712110704476828954166232865763735615028613761287029209073078043762833150446873180224600072842927407432302041282139584089840525987045035151944024641807574127606388740841633370533412327780754108514863059277541662728709290056884793990543092552715716150603562924824775867282196039597699886993200275043466155006378595180214962817015565860590460081758026186718014688432129293947714851147750602003990493870309306949911257977678322353810232969660076858943250041727191783017052182838024807822112208715837813414563995698657325768530487299728460335689856231584903463890069322635238035112402510440407639026066775526537470508444211370323723369352338120002021447232233358144952266244440662488234129077383550557525693651087366336917757138832436089402515370974196944846037623908726519986254994259147506537548784864711208872094331936924720151891568590852811474082414873263802325481100212490976004988760198969657219666150221935320194190710998491745335657255630301857884923482772036697178439108581876423024412898703558505575057935433980012776768239914387084891473868959225515028133533825854897420973382428425078351779690184600951612133511334164062365325708429366046435848496552054916030472107686673918913287472938279201721319857338383243866317294925082199118749337180445903892623167188161462223259341303276249597467608511621335477697447372962039354952631796380266867072585841961435709020714394558610481146401757841303825110973855849570453749071943678401021733417657896056073402025207169338677631019143233547608689030558606189680005255006560107285954494014638495544817507964885319941024074920801720620265313358950716268517586539341870953397395587888781634478921874683521473930924155522067038112764522546308049390902712817642357753120502238272222919028481667544869956930431520322651178947340364754139709507003266455752806481563101557443735942843248411635483481899693022082257879489158067091123150062644702565346382181645922494943215596352558886868088907375626428922696972789728193526978061555058217987695730043410566243134341942125695361510972817534168826643121262372251149204073979667355922749897490906832206280279308861027889730412174984507182863321423398296723299513383389315997071056496315977899789998402697842930409437449955123852313659663238206003954886924361977521138935499279279466638945353061619377022856149088341728683564442889628014756132531282108835228134646578761763969064698005217916095292569185736935874722647167282985422336647203605158488624377349697051895404042687304417838250747423561159416324640505304944500263947488280498978245501887376507570250457528871696713511122321130529954402111899081077977437857453522869747919081450022136392938350352809130142226562244695914682419204785155096036568469225576296626053561228843293649958379557427474990422568381451798446289295082096661247424872243649153536143941151453639840065127222751435897790547084570539356666376979310098243572174920996294153529892407634062175166450687002706989772145497027099805338733816675391848707227069853060230663699132390429866388664154833796029119039718129265436888454299966043128941380383258923361479722090429515314792299463696078721559100930037342113010595606731805509282307509768356760013902584401388430906358899593028443588055664372557024563975787723044571388686777667039266874411184825859473712566285228842285856406656516482377178770343052175259008346832786513812975876254833651546256890934322157354879293377384183376677362472502380352596166114781725630661134234350858870375616258575881301450124181534641838911786907819299173858419875174327395892235638311753349057724891554413299679527680729850414448515069429842035127049002931412075060719536795656479391634677374751832895653395749876909220932427098474677651724508719081072677119238939291732930767158755904268429574030055401571846252334651090294217068271867241220680668189811833797104415418979564318385034006815798805169123384651170654000276470604685104833409693683074378341591596663163120883062470409643727353383090313128024129262488893747467574900387618583295833996484672763601131414317964426109223385663702955466469475028336246385987503009541176810060533416334067117398625983213153585290333609254981275453308797973530304660940009174272413881332562283892525702159410424435632641151628108766476563907686508900527962102349397234556799817500167088028027125520326043899326469283575269802692006261230225454999971097361294041874338245703686965793928874553789899154189001408660470718848791490745678678994413198355565809265476839549980433787731445261947533965992145798001039278673624727382206460622089925360091082680277173015739715417664442848694833957895490776207152551771222387382552272137177608448157285912968190074847044404990768536413466680783620675325278802229299226964057568699152794444032499453454317201355466973798383823191509865743749853148600128328143991227176680219532846421752018206730848842150164825124265879379916999148889323692123353506852693995525896463125490653653782990567683252299495900584724700366457162735549613240392422580555414694784356923820973508696658813781643298586966036090706600845455712011496821164133551313298310600695235697614569098486185801540638947855560082024355313587167168928412593686964124045064140174741034339990146677577931884917728432751386139056545918711763590858739039618991577260154133765550333958079877959348922550108896660735764682729936552153919512430698535963568757907651566798613459058841483818838099561685164412026277799988349101418572397313717969424819558779103331922995068013213149181386229637223486151699852690882625711458303007863756560907855864252455402457957961904902738948604517342922973866110526578896406127665565665346917584941309380735674140028785409501062482242516775183907655923557125992362120311123204917392712168774779091300352081309897613057728042573251860520000622586081271392340818398231630736658111218989864741966033707384111961682526601530066269107656600617083813362119974518179689330009077292565359614531703373172590458062658827561112656872349918930670313654710421555695540650376836549016739839127500918797198132461439112694250671687987397693595596613463415342416757445276829545915693987068532686058041413902494089099381191273017557355753281819884563511871666308635378724453809441659155141719202497474851008293428879047047522374842280398205594796703190803436556975864771772402916595712628715466012066581672488525902681873234011859961607457461197790397395339158912818108056202085091215547526351121741556036916146515418913166129082246214701863256890459831348188487524898475593398145761018881168760080272117397953070920047390290332596130508688651920150925562561756910166635196294467640842948341285310642822699041580554554523358678543189698703780603256767861212709881406261713350744250125046730066921814099354072805162539379688281585788472840017253333889468922092948293889071839913114480848231040358934498651693771589700214506910343858294009419694573556326371664026730117604395855312958376679132636721953345942947129921438485488166261709677261820363135477561849000102326643710270437974330400664860275592798234276053074035973790887744622889914311189289520530146679487375330008376892210276833475751505831166663145234911483408538510095002258065251363771033450819631141705785408481716716442229892789670580088160704354530402444558616209212010608382867932249342799069881614736967091205252319622670926652054581508645295439090581836833404699822305296493206672660161827972622675499142380603876171699369594795573406650851444509970773115490800149166910587642430474932094008557426763202808543966235348834343966945930378811915614032777897829561489316240477834247704429333004889148074405214055424290746445015006902229429559551868803337622825325110764497224202444102699175810257970558767857402654345704761827095993909245095890003285327122446452429002200888460675161533924889698689050846868095666881687749365787399047176749605007022255939239465898339974644416935220135047890768153886524995191484172473104976926394336223173736135009976662238912577840781172820563371304251191955066804597385987207632694982982574916092512122491655330456884088244274235959650727577299709715448948516539979203337639515676289382101467713935719402489642123424605259292257062577716962915634196276295145638941352966717543445881519792777807788958590324057163405661906323684044385671111422625863299276895224899588797909050087641556388630366666853568545156861922052163974968566524257074901420478157831664311120317580675327812462585004289679196220529147955270859472024383415069884034775427845365381490309319333795743391653015436971359817272649308804340467486183365935469754399923203728997280640098846737427925362048939223635368395052144439159181373419770135952735098501205166428272758792232624925415138586729021811662636353570109287494998353810024188448670846470996919176531082526501792605064998336102334534140145257242953556588113409711356237415069674950795773095823727453116899620968517343126613201278767138609731887688218514082869234224301363526500957817078633395809220814216330231036010519980088892523131273043561753357862866189396712363148179006405432738167770650168974673869246294283936639100034402319821242672506249749470897756337036540691428137671431660684317321231620639636092348548061597014719245760222743333576088426195229496139767669084388343933031147325038541034097868397771665705660407921069528335102951577870948492792185397891803732224706757208615567149944164887157138345910206633452080216546747567495773112781612404055285375542297140622883808347547510584139669272019825289853501591990221538996313065794488568064121891693464441362714961274639880165366770801084389598549194323550352981183784809308027908597131711269859593171147570438555692347077780836587434048663801511400783370337300770715505830562528083753179594662495777332051464078073075876317447585911089363333271374404823228961388543918242106089923423566413308155368493058025780040725040883878300532886496864963829552521950534507996451945285120300545281363688218735175889137675185751850585345824822633119659120359506349716922245816615740513912350481872406859212208507511703322009651949287286008439714932451837180083947707990668641662357751297637199361183189193779977899671520456401820347421900044801189375202704322858337982670668296219932890971450219906102091161007756108917445006954416804839853467608185962759610637952962643339422052047164818033910666812952155181274607434194473450899287043598848713510963627212120102447643825675045875303905706479104135671054923732032159804024962977930120789223135917495078977868337446393641912165621208040323908925626612585842079063361890992645162458364881834056047317652469523971234048493639791091831232483632564011932674134085738384377675623455040139600489120176902369035191927987055052425512194832011506451393216537657188574605962286612083182774068558749817136862810919827751705650843007115330627130182671328443164140679384669992884456973257340657180966485991757082661489068104371618995247556841462810369230670092257000807773183368634883724624406023955839757298205415232250383420022723025248775589352414562481693868566915119134834999490535652920939295779872226089098704488471004295000591088748375789427822373817796375362072786947347744519447021799206508371016138549947197876364692178763810003508798278427482805878386182539479687663052260882035772568932011276318347347853227988982547463132251170951820741903830445364082619599520654430033127560645665293392446323049857052503186759427849925706477371076352817809157402424338999264263785073225972338469199687513533565861694482914556707890742668677098180552316575845545076504234805725657433248420845330919779691474623451985540933604178163961882268585147137531351449106561555681159136416503617938176585694310156939145592135466286401813769268909120129344825262873475278282611939798348262595746305912854981755108416898188346673841325591040411693885089033786056396902588155344709170958304916028586819214038260415248296099821127126525771410677940234192727118855186358790873273218726230448961382699424969083495294778692530011458156241683121445172971777650267430902866134653726688225577141783743712935827330634144206507500444574215856161045033312036014089832012573396083983500778231707685448315536451512008039773900190329860149728882572106074906118471104619177337784012980859039360435181287171119899992891858144414129545620342558236063172601482227926826913745642838180504403889027069554356537121924294435111640606713128434411987470727370102309938618384326001927027122324193436151014620205891930947268419297750583184142619243970568655280286114710554843090204256250715368201127828954411156188633777557564967555450597754588694531649762028015000880891749965992852133303519031329053907244879990813350466681736703650997664079605766535137876351602307247105973568414558335838598930313710219761688278909354184631447531144127856103996137454744535056252174314620894363589536037656992932286792440883332428566289815442861408619688009808537889504967795622521271044166503355827340706632151156067249067708540348132815294029898950913230584212313602322890002321938019839531907240316255155889254055543504821086806358710774147421545324123452182155790284937089727089088575189792536403347443065009202396667490679726297268934376159815184437691554285206976866588663208085562097081665528852455095233438050953807808162075626520482101517342336918992735974731986502195344207908107178146721969432810564460623531177127827816824034680431678779466360771497338696858461549630609764537081773623061796501627229270441821492232164262123851331784495682370543464536875402795765386159747251112472144037789705938775072630722442557837198027471782038485157443886597825945373774930619033291756591130247090738445940921680178298485687817771075754195226447076259138345248136345008624278277534011252339804574455039204257320841798347052595214570932335672845122476909531279216400729227831947764115798689092766602986578823938728625692512275160191093537839661558527759549630629141058532043724082298813131293244752564697145766299155985617106894748255987990611536180947473864266010736801025434854321040815034347947845017039727667771569055481427206529573753018857963880782819378396214692897965826858587470058087988843211250450441088105275728095243775946940563831380713823159690888553620955219777726924159326688791265557267947374634553222612238161097228722078374691666935362511141174706252912194371785600579098550213362056671118297106861972843704092493003568264599352895588160723863234829268658023406677768808189927957853291331703369455393339610479322298105697059262728083270708457701265133898357146476831121182764779612732502691370968189031789908145162391923733825747037514242304544222143979324229351379296420448877299712968722784690411477793391356912170079026765817699668652854247768432017981684818894062004223127095652669302204646993889281992847091512875490969138565021615901270948875495225917444866922645203829946065671886909052301319008280503938016293009212390538236912565574606017144721757282723371775121074169632413670272046958423428716677603945453466763712510896719652139202381003497654130146458965979926132545154149785769506804166676303660123032361877968636219751160075085618087044766159476276739030154267316101519043579637292208575596290063216192947962842187734660645102116302971165791940961491725953071613996653561924771072547774526930899174699375944923423289021791177325887586101496631935955950679743016806133326051476614916610418907851798163126582608090825419767605932314098705863543100178944015587198808740477897118394619790491127343529358168731133481764198654723356090171536110528083151866128352553575842619694504775573699364337467511671872283975627062814936244910105667487718402194217982307494844007632388206471046900622036608026127811900615977451225254712699964666150128499041984287692365645544303134869572008969980281851148921014258271019186452283404580909903227020085052954252917733481923266265294034368193195822730822521940942904551666049681796011402512634160373943068426469220214270452757237201785975187788404016218721532748737891129289247845727979891466019692052426264122662573573501441483896271062656188036389074806897248674943267701827657196094214486122521252239581508753678950653244874799404765755013115962498468366911065807653795227883257975352689488781889442594721064467093304994464287739336140869794190541841032324331229522972620195020963790480632913907671461857070104202262422407764936832707124581110559122990447089851745147709352965432064925317183813500251203992331163367394834800820499797248490313074060231418883589251709910761866924077841964898503949433930591246165882528432360379533450043448172965780640024742807566607008421321651568492222852403514923082460133278519722100793456386479530026181958142364133866235616825140040488101005324351724669473724954788032942337802637226879845965073971510221794402092934890752872961619085253158897721911679342131858273108934346823218288330970523411068468108000726821495926818301406147722850520770951104896839937359260438313875007934414674566767827855999942296148493583331801945386657041705827240871736568159878114027892064323985436043695790492976837735292863058987314134210300499362677364994101254245182643435550238382374453866805805700597750131672023308301381084919143996641979293092459576083643428701897840614243667909746385139864657098280922245524756918423559581654469869748269043387056573346505459192770239374416598131042757424831504381588451207334940842354508542825718875586371375711026424626161224128183299289793436687401567055331511309926011852045856927608913818993573662666198299107417224380238915383952214146097662008165372556921825921070093583626398329144525299062737252946085804480927074256912942258906254846690974055866512597935320629175260180011525849339129883692629402610973854252000854603702270421309721692695284542856986644165373666353466520924712005496086633741408910390401115485968691256797976786149907200084985033415436159181789962586793004068042645763870842161853520477521581995643145813470739099541799812127186760133507320596784332469098573064444933256381215185930083859930155620718171051801732115955560288407062216754281928302410595762708535718199948635597093256454289700230543043435799593337323725934890965179534609725951523834904203891753465110643054652173398135067559637714003743210529129172907091560689648097401802149238505866343236591355006876716372971309125109373186069483818868936498882993851346500404728735339619864650745467947015292620942844413468064202225005789900661759202156499393374161213208750466578924877899114657284986286301684079661804926181140030338646489841573859809733721245326175330518536326778336529152660881378074327329629463251222519278433302619390138604179561075319348565618090982730618562623794621326741133421679558996034008329573666605419676482357875097064167028615522242449427236437869080631402654996487515377922133184710164914411267244893881263656670729485572902232377763799808176974139170386619247966483920819986447827676927973315975815937822213134245026691044677975747386512033668915966864180998196644016180359182417105639186691016992796172494492145318567525607175599658025636134492975952612699242183069645442882473385189890978489164639157611668930981252142930460019962090318886656533816199168228294210567003335723942288139332596457066628300774175882333745689191535435549598483788243356810443526413453241195806619786516002283796641448356944554630514279721857082723119197021032766503188386978014254168187862318107484480246966686077605229677764617183064462770583866790361207269706693593586437334994542205246285716196286249280115567745391743193579344558286223806075675096818298329205949337549250903799680365123860051287896468839930603213177988902742969269214862885581843104996294543048316104856435884612396192819897309887118881777480679918411123807391012854201304046939942635449977505179470120911719814657974024515951390477341863513886882062745616186448467353025098893111671360244967443587733895726055308455449031599600042825264001013002590218104523287361837433287504950146025103817108837674772052037510313541792335709008678288798178358637613759399490830669776309257818991563781637070485209164363527621951207574147189720694494746781314840026365230490068499343784510873468964259112686556484089959448807998579325935455061402376646845473594254985431359067606297324845313039448508568767621974894299325339403647866179017318504214080398907220416932506810485996552684158066170498292280965118729077433897964555691276745371710148214631070071350291620232145582859638764934572537844913997235422928709475458174068148539491852919386570776721703689650865079441112898608139734241876755305250144811876869837727392612753405770655209076178541719858078512575361014808262659227602627812783957298967450131421149921915599313312529585218386600396776161560783032157173777769707235056799022003437383616344520289526349908398798777593879531842761416933511045533869362041223860514890572037761593359312296594745409603071591764865632065538532724504513837651687452178846132802431541640651635165262519836746486288235634934949169647297656332290092083224243352398222257170252282741919861900207763310067990076828921353515187532455693051482610803148058960934437326783948579175700325887897849796007194857648875217120822254341134752953469786310882758204437882986190950315475750776159866195441254909173629429003166795565883138097412113557983784120111369088734176858635867771557608666474082771809434959092599345548292174679895686970905536095109100425699549295811914401328831311480730495002345703429612556155969425140056106611081920238492495479622996936554949740843368985473159049285702728801393758178478818307246706527863569939498171126317572312620214312303877135105249074059182495745078270122661460555012105864592660886043630694081279553798821285479072149142890866860243757817828848934265869427094346259371475553404687804538902044456559100950800422397007007154326986563893401081956793225741519179343832016396112991461006382763597824350467347516164445313709251753536140007813963035448791346024199521011321648793627205356644462942944906176887197334045206431903924974391901718914290448073475029018249584569402438269582618100475357268204293025853195751755731028895426152870247926663343948668913886124378906899015398132509321975518002452670211394718698946825893777286001208495504350605306461488851936896805885337235576351016175504531285808617730606842077325969927899606111771288266641947981111878314772687280148256296718183748928706097608946293341084026644477822516813569685279226331157233866431883697228513448576509600000846105875961866359135548321195085496178424631531704779781199840499509338842605004327167682995140359670045309232648660294313929459154000021430780040324575904413165695710673705470840772619565481550374948691120343848344643966906974550546995973578065100681403986777391159989857187865179190437726539773648079001300897982569459639056749353309832959627739391335297610287494729096357139434638554126848868334286526588849582541623089039086443211492076216221515117635518712721235560378022559296567402198921370369618871360206305481650978433113399653329218888639357628200026434353964057308463913801756369031210079947161932043699325131462043186419101016911706061564215364517248518218245275954004795051132540810018519218661786056125851620340037818751998327532105740273615741550765119649091849307319460304438693419725865872972286301571661152167503699762927129650766408477580502203879133463365903928210494732601622126754619823806410556743805375025491556842831333506404074314066240167228741895852267848594961828704588512106457136173047750820468938090968317386201754007290286919959277911660455029260981902545522806170830933697371960980492936018362952421982857195193358467786529336760376883323215763984819881342916796874603710587649364072691916905413180044332376147424232543343289113993418674017470433059314759577969362505650899533866089240797897647156261156206850106135022712829828788485803154763065794035570735875794659230775533708641609586089201353969886838453000625720857894744715781884565611652642248931818677524742517026322931556414931082296720874415401555033677864199089448990019470422616785782940493936061847998429735073105237013697027820289460139576588091962537994693138217451533642723555573432272816339281688028351141997207916996748813432746401589361342505960156479176657316246971709368100217842102119209641823867729570920710065662781512094904122609016958697849851919431523825429000713357579371054366062688717919969841735431009675206565393836304131468813752460679736405364021034641084142112471081493388735972141998940773476240825701299023372515785410119479380777789762717758849985293350143030583095709661350780859613424495153316081259210605464000304177736284426109898000383302016433976027721275878594241073639044322754263686374432418117435066688106229522015631861775088014250990269793866134840511271583233029432087844627094902906642174483031346891961506269984956692300946955923078075242064942836688615932970255612948123876995320512347612332002739433920863861947659815589348748063317698308798558267651780200521390258329302669437593386202493810648841857175670122608366382905107752594900623282702131227015502614075120530039859637221333827370535320335109257836772382631890709495335851945167842890892821572669710629413176955228838517806822190853218513122990482625266266260536048343397705658349561385367076607894244857842603382791096841787831532057316362681318584933277733568652121438403852622278308945047202307173580795961973102089894246149456014590463990500956499164198207722019441680294514665124700824020572170673117508525513622994616182007000668731213135453632458661965906659825270181537153651370087168031359886951816964344098773727929867844754115909916333484828076455411494850258825046420915440035003521363764434501638815437643422358843326308714151264054924224397936413400740967385217031652230290148918161112163274683233824276481365770636893682039935362191903455383996184980269924936057334540857888539394844663671489083686310512994907125723942931495704287486601650196286713363504818288380584512460993707422490169926936672691535432827266517601701114422538911490182785204827993459769564754325828260065425684644741674834023628234172288092115746699312694643784484489450177526770402574735311391076979713015073709965394691943583457535216703661254673578676426617925634386493714346463784469721852867729598472319584050683088296579574208845654735668839428388638106085637872350846740196610519431081336514036322384300630299941464059892099902027710746420739892974761265081352602725798046809877593877963547418961108131732062326580879565823981496469151308074020930290409685169502432775378991415763444618826007562727570479398401060304710781434769104886947955889516180041839856755163229270710107088077736840483815357474211885693428233933378002284305800499656079937331771916068730870288179806995965045255553859383614721423427146836752555951855432485352060896778482321824131055367204683780854134671774266000992550142280033202942640016476204334344709175981016975243622444260649824017775923198163124598304509287069584954036989620682500705810152565990989233834923924063689398134715587506103523303040635284555169766066674392636266349029003096743610389590880683711068865384200771099940133068723059899036442963347729572053438063613484782384494385179894334721845860166195136368870450053653430728771855470448300793670288659542166967745644537789569560430160942549011232393431285563544884466224522972941555286729070506094653408571717239771784154520602899427584798664162014893400280099616708253436876365842972972818703082130206722309074865004580295293611602240956388915667331607812426531816089911389882784001762327516090232118818132363306533844230334151773108504526694117070820278097449216815240593863375981849490835242413025554833370665418076319067331160721707672372727416991600226410371571660407665912935900693469181430986907504496144093000887616881312100776857025460996810615237086608655575169414684015117138802307613016837605096642985480983753059876748193669389555593855457136878482416383627925902824603385987726399547532339213277265739747294373560664276869319010467035781037236631590067663215793253179149838678422747904846508189668192594362904059505752608817866783828671082533040453128191567128816825712516964272391271045367463174031319680079412500188359471048384002985892400231460705649528672736336711918603936389951011033737594774389923056253016239546887729216819392288227294621643113548154963147848934014823979364311218407916857579548705358463681013363137589542370241676272162335764886124336141826271233338998753979171918740398155968140738535107814264109733024884811707890415178184405920022831342996868845190844603919515783640906377783847886095092809640529000561274290134251449648960034606856141722449206809693419034313856213188040024550119202701346217280280836374706435526615356247297139886922742367356611407020752259263176885589192923636918771171073053084994890955610990140430923144020345774337324033557761789598599507757506028802670835952129322423667912924943928875873897567093892924789064110589669547219509286983269217320864775627951695824394010145029825826649291904415573394361107677822246252578108980790647330664928497221013096930390814463577147482330249488166235694380778799649964552428685206578215856451721791386875822895711253754992189320748900179736513515781170573715740432059575605504238427171916898376653685173852290636144259139784121827377379659225434457343137619124843138323682626454635301479323579735893941007889230854094785877112235134454220102970025000903016221799724890027659537366596619348455837733344346734428597658596462591463005252987417991236758494400478605418715596471323542623017900582467133413719972364999692496948783308215158604763786731103226882116304415731606949722524090442121321932762346150145584199679039535975884192929458979100789675033166485545862488886225578881879562636286152916608231340322208821053722066611256899490129130520747460686969971366824745864766663211188828597982572172540857119038146896515636306845185090954110900340050936398368587243210840716593952916394435847927071349144097671511981431627342553690814260843135448594216616225094574302126602418816856781400487129881251414924623998434227603904781555343253102926579271094537598771078175305870887620341599091852546970790734864451851553658922698401441928640474564801373705290688619942076527169410770765118809861691872963993672395834769467899167641602688575496460234762520522362224848095098391020538706295619354889069541842187478524645379974592213788336660901073356226583409581491446070985554887972455291261522572569303113939514985360681771566714765497789302216465014003370228648007178946023540251725176945484563362875324820022931443274797097343491906581230065328571438611249574371564207089894791799582140302331871320575303517217054862250150258467328474681296113772003342634678608376112453942352886960079630284579082059215541536520973876509248768370979206022558937553780696380430325318465038781561714137967622852387239496573682201886477406911873337911567579672373036769104695945516032448126837945024265949812588542134719063509224095782302613734005454394536221324327467744151015150093780420783099128159185214722387666167379984438302238888693555245277740062796306840568415053481226650089073949393681861358437142396744696628618591234475040808445649548326353679691459670569328309309573784742712765342259739911401677329453461450049637011340144190288865998848031051159851915751440663233317470489012583892712807615113623141865427698736318836905122486370823353060312074113780221236420627059245036073743520440800215318021017089147231440343467074259706399633363657548165785779946353447943520227650141721345242043575236036005519244243421132637231647213028053315167028843309431601116683004531613441079850723348103673276645727830553747309615243523922995752495012230086292108604856312444351585758155803959617859607456808952692218799803939371651949414346499068287630628278415844445627147109019255734540703768562610975616115525124108730856484648241775226317530066419806171226488966732039869624092904863688279205105017328226112471113465817805369078115451032755144624727326194962117202410695651257828871725156576262907348727362049058854078590835936986419881614798186958235682086997812057481839742224425745988408011791266640546410505895090624543887666944039905167114733757541143013465828329992527851665707112600003622945692459888505254068049495990859747265616154458989177158662587366175951469728929828707581584236579009272435532018111913740270485662930909422037325320449385738593060414446696215987714533863875015022506834937663325554255529868109005886760538377912275408935292237871581843854240321245685965513974834370928121503292531638516050372636002460322009184125257424625372087789185063985131181203725929183140315308794378068076667672589534608693791640650045358332780746808071537920316618476386913982121487209494507372806367182097533101335342182369464310553459249539153680789759655305485282401221282639447620242495758019259757539532115220429312220605512305115081563168348102201962956213920653080052008783344817664322504462029246382443588603029260668274650523971611689442759678887530087972810657446989102820957347729106674768523958458044563248237140216298077212589513155245058998805372236469857927183633588542535427746826666257891378216652103154491643642651358569454440676316249070072633562294240654220040313859825263104298954193645628581747744097872824686003818489576326138693002959576553582933724944182365543829458906073500761102519938982042494900788378322095852020468301570375469768382400622107775757336061416998337666431943656183884425835583019921800590975692290763943288046732190591368973332168195465994064551042324570790668753404558871907019472136087744529543834762074512707782163393324439728761811419416074909461584861522453161524845475941911820688090986117313654242527809670666730895526218034572053073737386842199387247725033826684838322926904899263696277535700655468798018880714188046510852796706804860038934501716865185197564992891896528856758676009588049987919042006794876777693371748732022253024674880541295832215040016137089007289041773081474048370399446361054136379783741300009370130278215970287710889146547484308711077857783627517056182160443573138058921971783845860754614727416740867238011202173368651913838352871518712357091903183716280812784944029054328181048229862162626352519233622967541186609646507779753453903854840194725981209894917096401312478786930690517822366144654188229150189628955517331860674747016410736782777848524459026033110968556812446721147761449143791536023649761850519902558935017812519888890362633058159594160246865718039257809007175493804308769933476214725481247085711194337925661296582422438990933363852619748974809716993154133747076221978992799782568057141222501742786547592579738615030263737099405646013644683092531052250293635572947966946477307494179582757707817592934560260087678770064052900088411490555406905232387848320393957202652520049935700103099825436929914224731922021813766239723629203803584947855678235473300977346767112898647642341996183186989825640845594105153969023067399256554980913783096332262649282644010531877295285604606132164550735434323381115823481312858686633172925323468268985380777136972479774768199638375534675553209869555497107001669671204518637192801635985821762133433733052831298531317703811426937630838640414059454802784484393366208267590741618156526485199593583143478254496070478179928314346216342932025315688637476597775477667469335719865923039566276077187290029841329103537768216333699005805603490105445565831159804106182014493136431823967003426533128176500421862660851694199098463241806714178063746302953962417275543736703922583437861996145364358109041532081987645271296705389076669373890359897996868265285581771270043250625175669547277660974354916222504150351687025828269957133218630894947906145369780451979974952292859653268900460843954839910912129709271102435108011278101846834575688964508271381097474881287665729959745626399624924845081452893305199749674858533302778639054631400316405542899784163006137120882887558716455884471636906433338409276663926998734739940872939529828333648262198889143687673165659914846563319382914498974531946542468300525647048321769411525867648023167793639811271250657655012180504156665103700226412549917537901000835462060670146201831409621045102364296920941254809508356649262097511309990382996875505419249416297796781842905949421010276005359890025662775084047824645274711404922733016305742509681719750182448563290912295156173268887239817211902856255337286316767655140716355130527694510518926589382138001130484169029709107431777857219477358370917728945331319733879249237524751590716152790287673751775958381716637144421562438654683887841435496600496152453623630684529017894020159784615510661012077681472705855100200345691081593956004565248747263772369555962031939231580330041611586977376971010651984141986249744021383278902959363101337108622991152441634443268597814944206938339505605327380176517138385043949062984948909411564874515316205427140724339050954200370214326518446121786400275582079375899497219362993013764558886906791831969583243157953646385867992477563681268102455451982167641750052817393419480274209821605519522450272636014210405167486410906422893102956570888258211666685070372314693368176735368099929294930037953589760460684773582983302092646545324865451503124018909193296282192733703606319930165997499104529801565017934381021509564674590848107663194780732433411915826115894452442920179684756771576542020637062707700742343256314403512435291872585185989156541555405926772963337641818444264772773969903669005663740225628998710462123380732382338368855251666433220021545394922292828805999103581079574908056329356112034126009355268860373110099716060232822496867164524529784045511072965026884628732194743755469076379922395562992317944344164087299956229018487744773287581794712599221738005860847985170138966007006955049957515646910917371297631507042894574998991505193143043737053558692979577293096401455701454313973806693529940545007003421545224005500162202614996060158584403128201960692982548866142968019609264377591977633063839803905054102486605806182678400293966411645183228600132963382526793371528426539421366756089255444189134621951708200901790768127086632906864749241044510853479810138703578316573826236596846434852106502632850681250579391995870263909198244909319334646878050836451316708355280346410286117724675973395042096466568338296339543166006183884466583103642895830405004825835378497357282906266496249286449251965099477085779558145168150589187594606879018650007827866986897131378728220611481568391590447780237028150946850085051373238377791051644803700882350963723457410227397607535409208514458999484283324922930442529727952867436488521433177789908868272629423534997885325156975190989092404848965961796333480593122688617590769911287855233052416292073202138234410178062336919777632560077574655369834610273047016017014214089664288904474182437655317203185007350198679515721668698961780575483190667413308278220951260463788215472592783548268203615642978263040840949577003188048446548143754911554023966562005050232326471027446711462084645248690843198498163028318053219785365847411879877143348873977325194850349105429083315271694080431088535086162549860635589438218384405161963664506495938748578176423284998588062597333134483607146840340192942107278386781863633337710681511776101787743815841055289698024327679517487857403234217532668963898788518820744632022554303678166350337203667465495154179027518598761336637243037582856332241015031995546409031061930676775844390387122473568805625453217843877866299668842434679756527180173920140017740611959647909482189083625972446623737451204639762917312999058794646575753812645726779617898755984599470528212047030538303112338239347141708494786742047344422463264109571909937429844826549040120788036544385540721288810653594329091318373832303033832559317476177729410391355529536460145760316539876340346428086877536537887834466829667638013266715515720132562197378055145344262092114866583296354589867446898803432253941312037089493404151020103112549150849524628918306174756597665138429554018252846044070143715434827157122251641006922143340244021507024731058129934299355979533861391371691641630795223485557173559808236391206621576255280364977600166368057043293750364302045115788919790868633943353796806122658791740045691131908056037663606025706821719373405785575549728654954856078507881397673911717770807707900067442837020898950963049667772640773526553366230353409924474056911865579192500811662812601553701101817030527634940900258922177872159612842406835558105417056937445833787343758487551870162613390329585284898129800018941173114440696377578356829464437983314092007358129421543338328745034683848806437956389563385472651980380525845181552786993478434755973970194207711225703349443048163387174305731101412039768764306238798278197123967879453270282488920386707267788228329430696133754715731265511488055696360724101758695589656081770693066624290798991060953858652244738844765714582828696599069728190349302369388955174721812496428796245499687042923904913518597024720416939765520517184407153804284415954423096787273390468063711207893268835290861718237506172561376398064251657734892306885864256190040965645960943725714520118995533039704492121538034509022393336679628932635915744892032851200350077638103183298512173929607155650343717701098069699035446383729810733549549862532907454648450979260000110729909139319383089929490869493004415516052011877433542940387303431637501340287121602340054587651000334715426156583771135835956640721115047575302107202469836359351789899410600733909105442811720290713387462253330549097230851228159570079243449049753020056512182494900224346693789955056881984864561022504893543013848101338346374193257645679241668759406581562460550316570281787079917012964125033504890296640958291813894106116070792466737912331288616594311704507777564475206756495886256541819042669827246253750784014038456127994955865608884047524307612356238405860345345301286508566687050421940333677555636799488965305490506639660190682596082982051330209078561768299301585218403888117824887978445805338660008433723635989491737723615378617431998962345627757682758243384837885790027648360407082993051040164003514855919083628526043228260035304238794567217978531241716640899123937229662049025852567212610367145924887606890030616984959851593890334206915715212678450692478550246352521511576292646985150614831972768776641290371835234374939016098245070363912550535678774449463406631813782281599643268258999861830600313569355493973234345828848230377021388737475872238639201395737778964025363361282449683454323457778388005361917719032673788663944415807702692658519598410568682119577300760086236983750897969420343907793413580119542991833061679591543813408111583137807612248940375884203680347700253542064582392750604931729017747036488598794558642850466824651060134569036031548382713482483400347125493822318325113614976389006472934364866411395069736349432550264462273858598720824929998577778713582910380777351991484957076905505377042523998440126787543251361939071625658219586860795650832506451393296673859811533266523618058622419842816590303348076023833660748720650603105359188595180568687775916524631631452701427872431073180748776156492525338865242598320654603492825697204620985979824132031231483985645708501670811394895695978032561839983640559563999033679710675976060761657236073855558967583960091155393642230870474685065800796136994873480915720590220079851705658649360785320855630381340813367120752749683138559549231739036125711353688952529789721434852323171355171998333804118939518780434433644952728886240493643414120476107633342359836505295010060771164527382529955318266366174035121113898293491974261745670591842214673570355730813762357991913372724218395085344217083054194634784778477918930654145517248671950879662635057930548772694527637800418285704667150835615916876606501369909618397129121292053647113945515857172535382068812801009893806461895689496508069209175505848443456245308473271294266589917410285422078629057640983472749500494543078442843529642508791938358045605280686582049986621129266136028572309004730536935690074651450147699604115458312840129541999392762593395852236292425155691502409376369299231857382890047571326341141366909392034689361264268778744473984044730860529001946148795927545424541149144475389364454069343912434929024791731734599554301716210241871478774807337831211976962557286434406401577273862556905292465705509212275981859709990574462332213503969223091946831350765317164727820851828875011054489718763031586255136594336016320641067309038583510436930335413839896774870598780250600834709375934668034847446837341742033219576582796943954548462375987769892863381563819876705445455494393935942836007280182379453563576633564853024298721820289546569532708401698474462222569236419812591595682044955110952995624892983567763793871710385713611050493689369085857365823102161000148081425245945953825956475630376134071777783625040009381208721501158406217435469745536291073971392835605824171941583931006150751337563738447650582379404413881587440457811499695444119151494699611572918768374664936449964565728803670521768410537523965170298291720758306939538985217489636532607535049346729205514923891397724141009805752616762529471918858507878850317928718734064550752394367758439787348931588208039632948113785326104156876008856720139610798109782952221392043986998799942431116030099655156294367966509045922411773851466726075791140983680778115072595691937031332350907974576608218399259250561919418442926267117481967920285715481597589492265075431632122323428647144222614396933611159714903482886131583446368385983502163682890512987499314746571901852422332921636615244632901200511694552461813512319554402459095316335326356492180251183717324723253797205385963013737768393331560373228991844702687385493862164360700992849886349657209759295110655552117992929593909959608797038277213654502309975618026479425507741863622102641122719293796923780417502159032105435454462439065740716837778207214863046735915329748941133683503646624833611878063579037275994644034495429123803513834930680775672590606258268255558753938749357603218326480160098600516879847203654805979545534445208922092818970996043076240147327337695912685916167713866753717138595647157097806746720946847816511656524896043449551332422567207933986442987279547288764961768600646032835486290370352117811427511269234639870714266301420731335910157664799925204745580963520898430556728941737771461850454185265224745239009141747030987917089994787022251201292894155656220250667954257121285116162336603572668548433385854255100018508523216184683777961387200553482671106403405866956216499172277281863708578557998144692803202768140775657445676257043075626719424969737437377394675315873340067011862637823528117644090883604367492581035729630355451532189192558494568219400273974660189897207856681102770886441264994833950126689232362009748172700262480675109912985977355704332916480608110960343847233296618451957691518345823002173258130657018814418902187331183424292951435583299251291204459107522256151742207253485711128630455412277526350392216537049197958488734238609524097743482572793004286057836575395681032703647943596575381220811617457838226760762957076737838975379542708166577347823888805128731527591929814956210622974784458401401601905053420727426676050013146730486774730398031051872664475770692754716367670556066996319537853030498149038753934249902539753691431625099017632468353559790215351942776347073129521325157117959746611272848243644342705386550469369074579249192050328421906294810455853088398940462246700765283001096969243903865635504773350941270760662688011596929843390826291895981169841662983034824298475933005407925601929131411341954523886615706001023177345741264495538527050957003444690583613868916461179270431226719828964995965256582197460310078130589798292202735226650068778872131214024309205623959092742003530407378222057954305922598655122762562915418181328548025084382592534228419967596620575411881525972965567865134171887096148657820463959361139085808256596437071095202730958667458605021669127667680400460969617623997839309960528244359772163977532565098329131023828385352922692432347272930979868051280955317400689237832094778822773268012562296857245631178532775700546879101221920738596124378459831095833636770077430880473208158602339014750191346125889401042281791439926397608773626261561164784377095185749393840792960192532941863257301085239869628098859495363943688635389773389808890306557882155983813791324484679292663763908595202349971998925360514995494946248294340195978752698103699508812668451657044118378663922608182401070397925231928183217466783289294515397945290931967297931469825616873821742581946127893986772442952049836881830496119035933738171878914151531928949113479426653328154633986937217361931583177175055967480628142512676264449903938895967932603411349878451825211514344103081434155953795977005378996356618720690336629869184054290238361900663410356413390441202700954876340467428037121481637648895545887001860512376779011230970222062859014062783788294726281060911781984909961512559053906651090722574173541941803644124653640737851319618182555410309583427977434385954434931628619005314366862012921517987670424351093912333397807200954726054226290088650278959338024126396383629286344122697528056794796692960786236296879989658368168596252773572867044987834594007599953269814746291051746776779429259033679657031218484361730418076976584944359013032377532807595559917114856698598873603827232819585385811897584395336054811642023832911726784698514816865347707035261726060939293850848904952316117377646632841060033663081031209367056230882841962411989849213559670774354586930801810835109401475510685783808476366720657015389529487355177928012675435403087039992326454244760994384345370650124463302008285548925058459510495613667157735986145855830858517025938051617316697139385351583104171512450741420418276351329992614076077696669192476070272081019368313602298845235851051836478076001542797020198029847755551172705682605721549789807583479061553457040516326220670975163897385971048666927312496300705156715032756574973651431539232867822329996636479344014280212981443149111118602159290280077794999003476152972025715463529923879967430773753467570848111302329643565038604555942787571653562715090329676968431854176285828521363847141050141188594091346569943273998399667989255838384677382498774516120439650511197274064910524243948281001639092069784847134480499832986911737103691463400220128071770233029970960010838792706755091155044793668873256789401231567908108203920353913552272315964838820747432842330349356704934823261495639608895144492773844383993828407855881158257905992454601340287524139518961015115682640101871599368199009144423221184205657408242704086657458105979486111644256895244767119282442350717402046091007646938892618199359051428573339336360097648810855363701014388016155598593246920738153658220297185866206175941392791032629607310699985129732110422521327384138149377612635428925302129250945075386218099054254717417908341906498121794392408046708726092135902806465796146712177133138320360873190909246997622837099105781165875617858736994042001324633241974912170412926136608745593004446142898624113147301444457016455703329898368461892694581242242429426497790401080581324233341560751119797449117903399712329827289854234246606949406949948238051288077059607722080183715779027940385264294652241477340769363702917893648040225712955771862886779391966863514619003571006248794503688344818797459281823895832964480089874993323255555106753287296160355768166790956770007972321499051022948677053239291761084305457387321772277856138420564533204727142710076881365288597625349914502727542108953199607922258396533872430763801793066774722373756038268031820071555314551233147470344500697790843127274800763770459463959855533915719394927162727669700965457971712476564696992178711484307885384592148730509105112900816175439493730384896592162425097371585371072674817556825821541484665624380419081689276546028672881387625931743655716768288675820548957622839837792320477359370921374380058008988641396800208337381755387938675557666044242589798858055317102705683277595525447900580117578193058171006097829654984540840284522293380062919538261829559291970043157608988760646549524091497978721657801479753079660944535780874310975073488345196190894839855396755704432557058077250403556443890594672326778899492050797172294993711683525968680530866379995804652302665774702217184362734825904382517633786411888340829330388610623348706901925212011745428361129446721014743004060143844090268765317961046557819947097169013235895202495781695225420481850713528020265252129094365618074210774480629311194585497791805716589008514429452567446956551612424579088304290778463437484411552242868827554409247387854324870710167589724847377580267850943858725179380968240041560885929309318878961293180365828100603268106489043576615482371301952415153960191543495642977949619846332684075376751695374964863429540281377440974281795767226188320369862663828541079665489114103719942021252081558136456552878567511980564699676388960208018359710084485615805191172536684985123095594160304837647517620349912157495592916422789821200160239618702286549838171130400335834337209421803366020624436685736933751641357177713727771435471666356950200238370331792836101190044644607835409159149097815697378023219029657231446453784273328195319608404516041203646436205168393619503557659159584781992836807765695848691955168104283794799250035072242315607721178973865560178903684309361454147678399120261285061143979806837601843520853938146088149216486629435570332379454767348026557809371826959237921522594029170076253288945748900825299108922181652693597718165776874233019794356527499459068646630273464605509727472652397464511949121865956566514316269073820108217608713456602033981917756048382736401282709572138603600453576878919548547267892767595266708055791296246359442558040802839674022249244445113766215230931568930500092902382880918945266220109158644344319238697626670410148255299268224220254928643949527487124869080540104451690851340405150356824284251194529650309748831070791572197871170004537017407004512609781628046495798409846243441248643716015729912136731309266035487441182344552216134628747512103139138571978353691632552843235610290625230247226252302179914384712148014353540079116850703383190173377936397170296669750488689247121351082793827457256590660044830478425396613978711167099039916403271796618294116157683191176409601795392054110495640737507312678668559014594458588375764725038034873262852977296012054825000254986301699407718380968564532233904697900643286060454772609892315386988791739167083704978690563306400485542320489353554796165301709445918413837556787622583396137412917198027403183947432097083838517912357751134484992045813480689579987412439096929022819948400846932670814918627193188599334738594642128923097775815015002877533103568755714396980075386790010349284941406191009251701569473095238368024818169294231530347451124873490912595359744720317925251313439622175195770004357800616029154670366371545198943508825311667498383984743014462102486191764858737267405579569932957386834229120825614236544499395847520481944005508108059565530468690741265644315344781858519270752846757458701186180444146411760092587992704643314936343736984476109049289428726932318272628822287326192928408395253511093530507656460325312394604698257015333037655806608055667310563661810805908058563790510185609167423628225669448383798204932079364794356265437855135110474525042184557600197465422328275569339204809572841909065486884870473394839352062754874583975102046434985336538458672077386431619893332357783273961929907091107396723696529403841606189448551843268107743694847744546013547803643731055922923641910884043286640071719553386856718700364705204337316168700207219342204461589550685762493602043034861370513857280230240792221506921014205271766953321303497851032249343091517797429261490134581305994664284549128704624066576760393277150064009050432178114257905478726041350983996979180687235364539635518644703373966332025713499966304678780908379106352266063343274420474311091545201247330351700340368093723200579198625950078958712278559866680687992613100084602223668492461431066782093265715240399991780990753770527917042940025752171081628530856292075388475397092956671150222883097352904668357102153036826838520152929997773366189882349771563039732031928439311814494657371744600975804197778759107835129978646753069455737960125085970227558344913222731767874047370499024377658747576459019004022392694175846093867053062386225497024235091107847159822343166323721464076842660199809216850184103601227601563057788531123950873765955784540667359063304613213520377229750326542348667637855332886048745034799149975789073704942526214669048084669934810538464718512359252976345437055907619465848076871796202398071944570264454014984642819463633037547009289473566598892185453302707287072356853525371790110113930313511474414967515338320554884050676717006574927285581512235727734224247142632543062483631127617346058159480058838914647816861494004405143160927794975443707878196459675151790885161660402162975503496805073496200504792800644784380462606904814433123344844636045772143761787015050323035911230889994154037073878737124007707906144231480939016582126976360409195286779016758025586261865756749403660596683349653196559919089645276180796566313504410430319696731347179729620414491521870678719999086563958675105563600761290857433996621253529572133949721692796619241964657761903533118926829551598298272385884866501832281630395050073516173843897688772714212738789324559440065976464209331852462735127658375227072624103806506608005207457487472696539186991153822801392897883146645767291082660457215962891000023691356434226672613712423074329351571353001611090177420136469940634479704305576726373067776799723372842016554658493046281846842871994977567834918076461495758910012544280157400741642686246860331020653056385306036604207330822009306425917905952891702663372347443102808363433630332741884106311091688962606786711602504004377768663848372863127524289770056350650937969710262798721153247063612195439371573767537445983563691991459488652177623121320645250924774685595367318769846875046516512778999717262659175928642994380098982049269880221497685363969428705560135762185977211921833202026629152826105010722573162880118323668351408855653849336878753016304961062028433294000779458637116917286618842486100881013162453785407799671913381329046397455359454053921661831111837440344110354145747150681494711151920577728533312302236403405930512253997526917297518430329695112519434160776485567211949675852324840178443607221440266641592530348275047820321587807901584195457328483701620977587261516768605528228221685767678542574909920993174822105959483223363021151000115573066365930116298313287012115519009718124964442160375074347912390610601311815693743466541176044141215910763759824766360025388255545957247970435407866404474560747157142404781912899584051166605432547505548954094296530907747412966065807117842421658927979831610691067751626170811427263846082804993192163906112993985001133612184635454110763662899911418200541848324464603240891428674441173253017066933657916423579131125840124909648071307737882799178435588503811042549487021098989758390821139422090885660516940121154712837382467841603153326286830630975469198475105509931754023163207179705608878722715072538875797485958946979597150174388519274705370439836770053961866354050875668321702352870104235783718100905215980590573163713234575728752822690385234260521169579416559978687526652388692024168095526939243838046539577849476323166774588443528343683097682718473596691483647558884385068570109006669763976576124310846711694186520477723408136978242778838366776702761896121144862537117280809609357207432383254651792122228794905516861544504557094114033951672090940344740293543282546544178097345680117015046065325320464582978718134737674023362475699692663878352509955162831383685141196387904188889861188806495264606845217857273068146219148994897646478625086200813356309257265810434829330049045865290639335676402944901197293988490908779096331731394905951628981502796103534018125711588549513750258824197222613307560110034394036107998829648419028655057187313217732094021710611449577515874206417542376211470189375500106440450076982281931973250359761379765523852371722693603415361758952901639353359596316487432001584238376984942501530234702372825735192911129456650235171363016550588462700247957979871281167004614203154247645185838347107929083742359212647132144739243719930896469499798548695158496373452533524348429781510117006859516579543436595820878849777172323799007111199638321888068483043708459335897667417528380810319219105797790254207548603687947476305304211353787938140225944368483740772278267556163653914068578399728433887724401023207947043332846683589961458685132238449124613187382134012855927150785393490109981859921991633070010877621021187876496883016344662652596569681315093993370820944578930003920781722733562799024825461209443093891713971617603361530210755009854919166364345138353274050123246262070063224163581805374465219014060890094804893633254529196384526239129988750483257741055846306597677752498468445411827789673634650382134459445810934378679678099407471916849569567340234025566655848006492152817013290122785447450178905526832837926110196750177414754437496896336200326389676130526934821439713587344376446853389684756323191240048861537835997829893319928006500518028709923286380137772107597205237821879699281239956134818639752029553406330097726734898025294606567655817092640303733984806725493438859131046878279086815687961435734464327775553088553397041106536041046215584731046403703602389735107944102812004323316464895970851756140883297716700476454221349179303277405908932485649378392131155137093147127842203530538297575707749856433557274303433359449651751340792273831459165675058521255323834313838870415719404198640642208654845182768542960578731951913447166594377250347361374419614004532864621044393472304925996480275051887444694506019360600951480429117225165498048942379292137915612459072658483457293564260681110039944028876379367070578098063585214353755615164231264805732752418923739586237431377624472427819517428022534872404580458194602136347112638598504698218460067710093416250755753075439852463974510106321420956230551980081608195297900519598317611827160683312611436879223686424490352542697163775740746570151891962630921192737019113568445475100191276643085855172510253241902488454347948695001401358307992644910786689509734019588569018456005361347989448701733273383385313076398932775869341552038305525232149164072774178004260357211017293820428658686536018666716217678404215539431625122656152318726466081658216618451895340446200416269177129986745750355990758294705094211735648953076655362037917574628889896987004079887381544550008781822048788824757275146820978182586065087517708329474527261220205967847129240075032310337601089608437900725618939800578003478812533233777138500204930315517200483826856798621871228921037350785392192070248004014313716955150353430439994647891180402412200346768371753576093628926543326895788520904095785176916089160969748073952895011607527751034338995165533551841613791666632086982811793314623233261476739435114313732773102620627946707202568689510604558011491733483591083557748699392689325084055369550058767644636769897949990525235872830375289401719161935903994225288415011084892184521497463337616601294144849693471404336925217646954493517197917460142387492736555418788235230856086465019346961892823714916127154565849334571662978739981046390269433276609326650846874097724154983890285143305527216588945177145971413504281989525718910075590084309601497666227228808887283235939796836320639087248949972539271267526636907827205622570644312379226733549415017278827641326295573101339973806001743166745025847448880314386225783994930010230149412423423126581537979862833672503321347320488535378621135380366871231085291204866739841475266235096016821780886672230019757181611270557686920712696957479706666085665734171651765213018135054358087526258195338055812020704719415470331153882976483398062238085551804690739950240085384764015083141797820015957227118253142038713936675717371056655038752954592927254056979111802534811809505300078049015381664762893780096125555216951728377589374037790593234849672625409444999518657564938632615743663146645523013403846230507242697933069624028719547844516866985736566755430920180663935778381366435513586924231151627414420409662409250582354539716306894698148959950822374169748213016052523262136902631921219787872871116221262960772395304093531232648989305610503090428263592670727682251338617673279989287312173862847085018296309258463273028970728967260143365916269441492492180482983022989370750151153780166508211560197234306947510435662496656086161862101850678824484804766543739617575598229795894819407869523328003080474326392889530211307712317837397991290527462856749097428549746457774164810820270146664303863944502685042166534908650460681238454215176375028979488836957562683358319934441273806101297023803064213310481992317668998237181734325154607806358227973171584267845507109281122522894796599434854463746895744139216889977410540317769192463743634196445333295091096388898739562815818713207252480792260035410998767496755631853219363464929182197370313745900635096252339596689124812402220656173648713470549767868278190269286312630587947450179492988643789545773578137840307657624824738310536892882669576550678117084653959458883157841910429598638891427173809302472434709084572121177981754208818947225623802663050269603513517798619847192424161005058582617871303429797890717400069961706232583885243987004019685996239485635990853708979834809474475771167570075466838431124928996014746498826512051913976019470737858378313978137043608694600707736583716393936759594448959512065746877753625290598581614844767106263511362642348702779890302916823265359331694819488910374772215374597755412341865970942100630234175805657532303880662217002229971234486989741815970080362178687492522251667521919441697449460629336093406902828624524288648546729751205510722321685928971600884835917016534691767209237124190999202318774891277920830475510263837687840802678892785628092248199405967078912173878315439428471242287565006339195792829300731730484664705840911083819484687167101555332599110077523015831593674638216460322928262281774324138758203063865284449319867722296320473499434305863162390500116367040983532997785955582194223890212085748153876111222884649724568776667434157151458615197018735507726295016194135937167874430554676176370508234692407474040721867247604201322771013585202245954450977850018754727705475902313980909417227183471589347573253921999724355106084592408418188406024217523301325520758422564773769052531677037060236202523950068827155494840924563801451354915929979156685716415898115645492115923839671773803814796859007423451323337126443100071676400637300069161467452411721137646491126215131316900392282911447735952553220004197908797951263002623499377399702299117569253806133677252866423979242424593129151277735711449762690854113550557956510774596229748463021119315713141785440576099039779976975881671489712624332031405686232789403366578121455845221918086616315747445669218416908300796318026425335884053178832070477631365449624789266185425789777156355321036923342439341010059350978336083532900123698627672900604729189668910882777279841822302325152206581074745806469161958266824629142477124959530859885111829458932789087427628258044603072595456869776801117532374493196358589520508378536095169776536485658407776400847484393953911728223034658559521649110826106045473554530714081561127051017121299179021721246277320579876907810475943752798171044543767467844891116596282648674062972495599699769785903920848252814192411095903752929261352395501471329086866666755207745432615674904629854799516257260047932228799582526979842355785347051045118538710679738825370975398961291873475551877959037290470408915576590533192874432722483687193976964320289471206333461057907079222911429713407847377618489650572307753080612712861208591582596773017800299325178892275537972790334241523749525944537519353024491962263778343254474294838916953438776675270100268750643284287502869708975076053802033908894123019437963083107732370038547522418527933391881222691504660806273027509831960955858291989168095902727045242182618287422030988515685991049584933094028781915699561079340209845299370161587525405317364011951344204095851571211970448209609570870311971088165924136478485712117920574971088977061573687373517084122843338943479328748503114853970407536020689450778943262827584363621831469564484391228095447017947148958438213563403509524949341743202995704464127362431485974903053670717337448627992174029120046432140275843026285622483771368112998398269164433744222972719694856930645185080143189623659238143387914519721927688559134252720615584464979997812191437648919534771181629428249725005896600393027154095413677994547671912275894484217273640719119730520256809056367823882679909818249898280686179653231033994729859695566161605908525063572697009459759650092504684035669822648739204311366933135002455231753455514910719962348159769607240138086072691204463211261925839094840487255068685159043998737873642585212136734030588102794392938076940679200101095364709769434853638495061158353163891226204562724922534856257890430612462047229793745460374350411332293203661905819009345739386138846283703966385770482833802859852463368228619731826274238771151459219591410584729835247466164784633709851209744576516176971916864897195534818091040411811505283817345848456283483050458060512685545095814657613864472658237546446751673521597847707600743823509651793922029403361879453346178360648340950022066709094222112742436437623197535725976030912224572556017401241300083786965451334509262474883659056492890860754444969357007265292354280456492303702832151023594524266245264912216745220751363667501301641944981235875850569503333268743356439339931806586621171775668804840472423338154246152714793710099108072983759142223095653935613625552963051986839569659367821888707064710351312255225638136763159565483301104764287666006180777487785293847630055992750460884819220707927522785595163104569113368233308660193456627832530496004340296431406435877486284970061243210519002681639714183217534123725198438609196514696520187574363119533315462564542756542922168105083906668742623225758144575759943844811733130372662763031502370302817792602217987204779391145705241941946819999381073830209697534169893716578718186406017780748593962829529718040898171520874516817291110521816884488384819022308962651025627870068626825671936197358940038574177594042459989783904121152812201955523276078380310678825273123259588208319725259374699660853520805447651904273826262124264081297494874713910914547894454147331059267028170237559142611647590857080673930648500914848749596429608818648771490263910633414510139538144272934742567221942901206179948593290742197976986588049699337645178988302243482571701057173916893872570275198851638504363374977172015450354869471151910369936805217140768190459448344578170754356428549246473835333183924090409814832968625954551211207862451885794863295384560313281457718790099887679879048865049962823178650639220476552366969036236710000814751205208477632391918664412131398461888337217065221795333773714863850997742820572296352213505375007653930020464725757814705869602947423956774236626135468872386480784251644452420977437111915151247729622413290192521796417043247822936855751486633874113307573545229921515786805538862197098676453735178303393082641614599595426619960809122065613555122313208917403346222680431614565656485066407643908703161629179649382647112763060169542590289278406006363783944920359840861159606561318771498194281833821608860131247026447315248513195657485565707001434644577616411607774859517629471623222752108431123870814909957732528389336136556381559603356041022880890502569184287758918865258254133562517554329049737212036302497513116132358019215197643016878778321454389036249375923132452440366551534867427690337005537603345316760454551224091823625045180978207040656660909295043892136955787537235623368649583425970387390479171412143536236160011489456135519327184363887896979475026789877356333783690898002990033664247788814087424220534652411291952577829861491466114973372034188853045377719868127744555820852052533820660318564411601821149388656872513824293851226202227664541227179842741910399069846513180685848084608779142489813291292278140481032424410705169445407411844564274189893902268683263292327237551392736868909221920456662800434992014627204134544699909931893836629847999724930775136958684612750020827096094093767478220902816233677617145412590538690607804841032115636291094282006319599357175129656273316350999980873363500731970264080794913342279928379969224164808555376246155250349208678995726498808684605939790777340132074420163163348974491240761339868841731332252935325918069315738934087347337563547194172937301326014327502379355378513815706930760218477319299037558121174927114941624710213749964342472454858550243569388174022261244033303907044667353704279633984120873118509957953383171605381081463439973116149346728595480711913480764378308830118026637636905652740946425270264813606252849117803722642764562894072746926075250675720440298605918214695259289263691248808982474741138930008304077928906688886529991479484247937450313493889106643868062957965196399001541281797929085555595006624622782190331944170764600990458296851405652130509926594901878617131151910039398984931753982417070079651486107844716106558161858146161838875710148391531897827312376449958802977863396875187159294853968765800170417065718306885876748499533039328734938007185137087720579703815357130310172774480397208347736544710749060140847539736271138225638359507963932542937665331341275071881289090574676506184615345357112707932645825933132588533615072675823426415533046982852727440732617190493396176121437902736053874224718785902812869793675105038042963029763589787178123243468798554182156196407441429270641488860619917694050413153727564145657456175815590278875348628074088876202877884803938600615575779478718120511670671139704037014697284054090745480763139302696508386038889243309712567659824552568052649569758128618898283441193627729357684118521897667350536220223444935424446369150290326362567464774764394208802688392622576933931010282533545472607525077787842046063073231019773101110652893666324760638386388111825783985825709140443717751966103050221841705194030175146781597855481969967727214756844768292632375848973435456462283019350416434862779830195563670169240512030024205624024288146341094289527373763559804684384270797538437680503308644936462251903629194809454668617914706417916972588698426835828453140904643930473273662980482515666617771558181609285603517677547127033404730665796273059557538726848671752115975584498993236424157526202900654823157991202730865506152234399145463502859366392853281603543242670112892824718822597631992435302967175900938226833286055413001035814410702687877942734143634211491686644705926292248021598373071401212895415930991894064657460278465065152737711391882905043717820483461788203448768185270047165552713963634797382123294889882486278005772741712209017607842013924731433189658856951477695508128155984876799145946868820839375725817983462971140245047861964412040421761367078484392396755937607928629803909444417608258550362991577454854404608068383543114884956758265811117148402212219247918942873436567248943087272265610173341238597495163158102291911691127639803564938240920024828193810369574262985273248934518411094440758322019171590330145955943698657842230812597530312427703171409066586118968136309377003114468624267162321511490852072414730915182910436505931218425484955520209649769714508407653237321727489721932427876680331538243002000337228240813838186658301538060750188600868056228783327252901745847553616159668411539578116799165739883378315143709997421822015246687206595017241818138042174304695232177301344660537676730544010741213878441485711731947470602052604190064054769606279963742693776513669848950935224549671478264853922566935016503410068168771595933176413930406638744175921358679768608517291134538577250955999100144617885784019003467241791520021454317281165030567325247044631118855824719762269045090066276821690603682632955057396670494971553350178014371002511475024782060474528715195745330529964036006218204269100878048097831676115543001611253683223110382378050115779598329904547504398022822067216994062704282422977022200461468380638780034718452510837453688315723572024893826271963493127302027516560481205814263282657198181585297376860537595866979222309993927566360839836066565216663579124048598696402627120643611644378088929369111538066459742380594072140837254417439828358658271285185944571652111073797154391515070342137892209425799311275444181150057847123648007216002565663747025120942388845983649709033559064296136762688420436421989961251461145141307428230181719965763010970036355865817521095404610619362734684988275062787028934208905004814872010140741735210644783175424087860843040970215785624706403939713848648968636089588117149121433907088888326324661748552211837132649648765396107247046177625795891898438784367654937414696596165304069419099942696844886430714738978755164140736536283126419638697078251362761239725416177190077539709560823229723725046415024837915296958842794354509710662318983770824874298838387483896144400875541572108060380679401901313399747044647832334342611543709597579656012257489499394006201328070505056298457108043595535433715409893438955864259829002365489240293952293227175085848383161349976219525283878147519258164553893172764096564412433966457037595334303733560889458507630987194592106286494666959495646096220554184601683638119431125092099519313913548310645347354141571941517280622017478439938716520715152868758088446395280534822578748824202880420918103674022960389280395300104077594334089326504736063600493223909869381029293491143455769743978516906771262526091543198149150504939747063208720176125321090110856670069435504864531696417833585243813192972832694624440788587191186957414961537740076218868390287435629598065838143912292889656861248402655358102043170449318227015624489246110327807204194883603096114960674746960046616539120080090378578881383487177188365454335031770021194768244788826362411570747224182004779465198010509010139070036747797566084792434908763246938635082133225732238343932716198001302800031086235288261364488752451329066723811100596911453825026738328093016773855728913804797165148446427703236903704752898517247354655861441613479177079714892460713453768883238992463933800236938626887141447448591434494151763188007984163870863759099728094531259034623500897191018800967324268617990701726718425095635840634794300982383725819405549485915757532210378431146521049476254553043425174420302493586920232755864984719897857038250422635026521012739565859163734715641348195717370870180034732222564664376364098377624914627294521057473004280971385340766544299479440801931793173112298127988404940401272256350944082202265223840878069468887794389565805368132654650339641088517119237835397406468154079114788256712916778376590515567564461042012653128993947720889905911552025334940911379332871978530011890680837530149155486517164086293096935429884290644901179370002408998505852953601541262057175818112890911744824019924614363682538054961516422625288449916357955629159472285643799702223682195873573842851924648497418050520862706857682020561784712664998454370433561860924305132015637203759921687395239689644507942315276278060972077487653588597212130891963513686156249892121855208356223518886279376227938175571034378714269187986841096087621340350123716279803059356650682811679971495434193288781267306048396434277670759067566611917592071214851930145870198020412753679260104524365862168444725922941222890903166243099784346266072967533676252960034125346822388076721967300996469173669600297071687013983270602630891614630102954422892943074586995780568262249784032191328896934559324586979123367917471142640383449296696709965051213570280233416022573009915757094214910831800577261806007739695888019964749047219127778832289417931183624996750071880029120296049872157307499760340994235265633819510120580626901296269540496554045667266149693249167262097970928738125906165640715821639286371989485794368898768560926703217223412429615732522430542375627372264323538586001275338874400562198486407340229265094406072990526678336755294044354243238211441635607109906227866745093200454039836086654054906170820886655608052007877003279832234498790353828809487590865247047287308789432922569743728651785029601419777735585742613163126096032103223372538855267772104858676944713252350505189624560485645719583699681827419952499578180260311385759869348713755508191730460068004960665274188590058309052619304471656035636204862757852136764969596610394667438981467841418123452299999297297364426284029252852177520748037311458698795982614342989750795303472196028138369377751199909759948603360745931140968518921487376902176253101523378366264666112831938821403639521858429445135450774724140353126915627414713543300301840571630312249800101859572664658450420369881392672470293037700469557394988150054680789216173694897857419016832593636402952145329759508040039421934090675765812449102597779321887968069529610741993800153662507960710360818840719949046885881356245091719400531000797338091122136855462242338091470719688488705973754849165074380170871962858689781403756670703624226959728014058964157080502232148827702954523505484595672682536463226743413448228705137239773065044406658670870367652069852861640179297483980695513758589732986949454355570866517196296033589027707915671579610151300210609359517123540676526952069981132359616035831979069786713325876548818686294560227620601904774329869736057219334999935410078696856562179205245835821769508512959416764642744839202381381725108198080536791103528929187585927395591939177871199242091196076146159541468039347622667521075068446148853140947214714941758655333133409695609703596427950827345941535270668276271390040353923048323351464012019799582457025829089296626938374365890407729701180247434566312320388618610774442759607107736472557722380933931015406338010215202233663865550345136405291596045242956559843215733577883271405810848805700902611394047501345717586003353438642546500604844533554762552665758441723704119324132707173894719426185661688806148275358696136831459845601474625454445477226059993564443085723871595610838209105065235772180918666271390559385242254818585638171293329551767528084964383614276704869682677155659420327367271731439225015558935218551234533293549865356742753892706578676615223838857893621589233725864821472233885402586592622997544077121206441738071425292069579248557014606127773385618149805991411417473806796095390986142781595953180989552888316424917546043844909457120091969915939018928862994394471622756271670030554903303313168846705819474898473365035166374177490004824679138751087811721313876309004338604281591961404480529812119730310639341597978070158514288109065911697473099812586597639561318855528229736688819345281324632661013181812464236214787582888625667414133942976748381239061151248186467350124278922240746670504913331937646075532085541965834784808979970472077424331376152940054795680039670036911493249197999502032782414482985893498637297235841067827874752149109360176725595565336981906833137116597934065367605778582090857604985765895396669743842712174862625630876869920149120300756964784839784590016906204537718188027888775226596531856888410016797200875060213486606878630188424050358430099504593245459420300188118949156192390652229227773026776085288625511090548575691203562045587809205958751574015025874990532139790989224690805196082543278254511501954042192315063698002471947192745477484112494615134218055109282710247621788341931439297860011688296222998889090868970533988092697469886830132201253552360225588083639812805141388436847730652993120114349438294607171975275729546711031171084719554114630276996756950696099495385244102722395516164710488323632563522214326393138546805708338783284580561036499667951847586965027343399658983011648163822714366371152948971513848335205269406889920217386680750334725105572742103617935979638055454613502782787729611818861368486832570433908650472216142332266331375526061367114312173902970047536199389589435317066999220148000923928794339198459914362535717064980245170998401363661227779469246949950597077109073348944219414957327638630842716705340723951475479652941094682413716658567226874818744647866570937641911223376335130703847463447286458586331363159983782770156677460941890152364128754616619550219886843063396114473531443329737311698568796607838229034119429790974011433146889248470751648317931993893389553462808424118434175590663832290147957977049586487162803732388538735520321662627120102330383965002256047735547875401748139826714988896678257833401796360807354747858136848233867860299933527228557699464789637991511274951876097608231041828422491616098617063644994264685940903752791319490153578357935415391284806289949446292071308116784843318782632169538572157762227921541256434737412578269538229955450024796766469699473347153626577773620793232896318545162910218485312874876278678790452006272952373007823599979454164708872821802212839507822464079519431015554077539329081140423994739160884854017378823644242714754638564484921741647319573579892933656456466121405629115806604503233737412413732208265196780747735971555768964026193186365267529512250219574998127366926073219519761558969673486557070557760608164196265708506117919336709343905733571640371797721994446155180720089437785473072263869929310156056759091302756035843563898877365479330466930821101240023784503930934566505172146337248588527246258979751247000623188131459862721242045406133703150829189407530817982291359628057732720712551856018784748497014519866284539451929408680905359121771320439850053028582194543470392908387417418844539505690878755333247207488996141542789273734264564037941893945134609400165529419637631929033702823223421510458316275854461205673973394249389250051750636453125268483879104590895571605576870136137644248059200245452364260874385357875592749241545176130763422427372766033683276860758147694371203296701495377357223923706110900287697186311458029753474339323739923148195356980136224130352519716357383698067773099135567464594046373437966550983064698147402358108915603321222667086115928534876474285795646180614136615709105556997292378629155009567457452440160739357477726358970016520891945848167462033525955823111835568797610384119296012201649282303549407604147415561471781977724404763007894837853795205083558630299257226841374988166980103513441649463615909151394202361087016527488771825911739652253770922634089267826647600560054419399658228065772764760694240784230158651095259048203273667255294527901509393905452406635911658053758782059469709289611744346550278184534677611433343486377378547777160300712367704591901763739729123963983252026218398057324549057353428008445484068656984942476811024265036310482445929523867215427179640415210012881793778368741726859250798172286080766411464870080793458172938189696134957475234263642995197764641953590451463177484060210543916070530430313631655263498723587085365256764083544571201048050215935895320072352216756407603214196278184366259206882118665135722685096500684790825232056676728076063860861119813363922154116568453948116195308240670908050290979326609461038286569028380882256231884939150494917117212773587319926017371328009313390724176568969934196099687401846021349595756568353477876694188731483824151166685074444119007413582989230528381398181075284071163328190760583648051555364352964526481697801005109070368800969505150559033732385573576863504198276590521834530397480531382863871436936384588360956853291727156570004008038095471123972358735062441576063958202798867075341961899501393812016216732707669861335818214234925703171946850957507102563157275633529355038455887612612515182383102111020639258929079621547682963651496539148771411162400523110670194073664373844297085533049520319370247217378020733339952946735226694289796199661493366960465198458733606838519443675708493767462906823291496488213503039164359456686698925113462534992427483967952893941925965359787301092898905665182017270856843644083443301029178448399873239962631626137122144706203139213567917975222868022620072174528731160046093832862723780772725999297306799308654963748722684468298166218197418884797918668603069369633726764635687809769382954020697357114419790536425799123642336754705085946286407393999783968984031448512400826348272499555023461377713550871730562690722391868378243914953702725519335661794812047513582296830387004054525356075941448906997118218389077861026758513256995467223663407501263422195443192406188428890499698048694380535827865714342092096662820596270816486291954634614593081202606340866147760918278890162321929599741870686270912925499441504695632353297474393481543553245737388737159467158530186421613605878403224707149817789288115245538697648420294026816396716489092959614250158770546847949574958618172231276596335589887604688523628987634905618063128047978465772339357825262037057590553555932369843885109529014160366217133981618956412296981528081568935412025216499128310439333405529079777803660981642734725181678004960990386753523612214030306261856912483574109570725853274956629076787351378222686464716573322891645366612142348293574560417864197390218014177560188944602273684959470703330397255182144949852063700150360564316059829299227098305003286727474269754214141216481107445587151611831069902757407919468178447437250439285033466692081740746909294530329862319357443033105629179498219299485256285312373354689651448598896208861678128180913114919126587636678366602674780667696222842278861441056812571538612269526603579666581690959497040716315629874300892795770412979325681269727943655517294901706616763323453198582239574903931140144945414492697000547129634572197323154393330914302619489874100121677393514465660368198408876287967650451574806036790635468692342623719883044436253083121411996944898752056348864160436295605059507516717671273626789642174680136776057863259452802945622253701815339481476635421293698198641807644060410834885713395922200094727782275644946352996970001288628677557453938487142898167518422905961106719818061487664027228484269386328197338584224584180721861563511903711151316942477254078379261469500956057227425480289972832923703401331441410858992938782576258740484299149431151270347320579548643600519477279553749727727000958769395981821825505928017318246346396806437605054134303039282372929806714876928653341498486870523209294238662301513141430768286636533541614114398128295365776287740576206000810948220828209110524970347173625098130848219189212330331527651882867211055573608642583122444985251083074535549249212100708733717249413586990567500280875602853087866711673233799325779283583142204185830177402493983102775761850695194728811176789660594393487573309620732089908222538188757453563608372693905612585828194426985613137137568253319447325897372321633158886979140466265572394561605275623846731516932150070367734706633721585122116302235379421160191731305866392147333944335743630204749289913828721785489273545753731152288817007513466661430675996089652296681646022726337747141091118157285640916002002506279604849198090095159508644984674537821946739576870440713219677434992777135566446610219466738927292149134580236454611080506991231816158509115819763441627638637673702947318633209090298483233306880322737793985212025603854601939634288543411796811061459580192213367862879044827386888542213534172059100210755307282719973294932733309782705329577768609599492233430787496868786118775946574387044923941752403851391986487618128344079479318280683373778569251355654412014145325185618585553607841288169261449567179304415868556110448444180527032420301636409265836617308646513746840486467734041688635107560648737722492804601906168952732548445531948358580903167723282586095070895741099247670750564993154206589117782876937667143040221576343954669446557572594826975432843455221543802261065655175058161201145825160601586730890706380094141816771942217925363164699820357802884685154319553512249866093242432185943665492821963514152252747416543579360183862111718058762781572090824267877193495283730079169181124143829224084373482013377489868100114648568110888460040597999229277443147312588847360808878146885726226776972401886154342822907270437622777770160201662034356199207126384626990539552144613160247783859789144069341305400139831424159998209406482079076346074064218366066164316487939324930241080537388615481815574265601524745647270526073095241536389990673097349730723735584361447942459380875723479469549210204917450329669440923045681525864673566251052582847296064926646794029272793369933139386657457865585924201797504404745937569763164107803160285910239711641651099037733279535238607562660466798194155549464693157709818155246804719033829550334491785487027784423941911084225153112711294604559766419260337097538546951327928910667490346702116868900806276571682514563519677918430786851992163919610976304415815437075056676887918536733382497968967677957847572364179330875414627734742212152022151125840552405680102625463476528337128719667488761854160078720912080567671604544966495170424970806457700873885609927269766655568623506058249709944012988006985208984734137144019912867685034330047422604780638758489720885847645478124899221394870756784721048660451922439018746655765362491499912099673858703881864336978467032709335850374571597609255687288258039900054670446755598134261881307373991250384630611495784441243267164092124416853458158872368485034101538234027816268155141220623289990150162120126051940616033576778513017232263150777859695389018366880740988032326541315042644034942171340004100976311149307434187373247110388028869278869196799507271212733969097675448642927112911872583674305066895570032974332467418947632408330137407704024681654569919662687476057123065160038699966799415682626280395436046774901113886790599704195052398030693570091701100601073844617596681709449880070351738079507697926505058872787912962530241746387029859194774440223012038500402788169178418640110795325294737146017446040211337329912250724095525341271573081934854724858491246171376374134993298369476912858163973070546178486339481063225530130918531410737757989565494339923782625267322494779823268126344183286146884400246493036852465328959447463117660947227082280849389055072984897727295857266725422576072810073341579449637363666277753833588334208882349232578007775321868625200255741475990689484822813333968827957518100787595328577567904770666603544583441317045819515920058739258140120683501804589272049554398120903113309690778885952776899263053653576132503043033561039160437874233517380038800937629955605768046765048553017917464193139132442910791940119061391064874083828957124222069197509069298888307595383203066011771408947837076173920389351044662092801798188782021669071985116277374831393557421645799783417268318042543217052136377797713473493050578410257037105239156503123971402925830904516069007446702567079314810124443094307418941720205642247189909395681531886900412290285361761865991922729142343335566042159120903895543479041326566562929364185647572800729513257385304227142190035564836858153921632770543094964689972355890235828686639995982723995164518891429464257713484678091723709680236471750466792127618298717975762078328499543262984813598498986268588619698450677905155289259845694497590865329358694629118049133324672686961050824723497015402185161371666939860217230297623667579148905774311200377176480601899692336854211295866086425687713209321741446710369725543504934551801021036589636713984183805592279853030340609987447690483393690938445893736172663422339081117042953583269754099329490655054129199938071098769050794367616128635353023602239970517758348007554770316135171414530465685520287686834676795410983343073473093084793427852768599617674305867965523633436569109751124317453728565077372805076143055002708931838751776319520541381421422483236803954386997449482712452688513861231411592999176352425065102126659435816345378204560666166477875636253339185908422424423872315607074480035825393485885519539111473182778195013264142078716409101551110405937568040072158058815142618031323708078923123113846884327655643066357610518187994700003617360640013570103149871709201845197049364207987285592302636921529895834347048611594811498325314112950738134864030502386896644857858899784465950955377686845697140525044022950763049312563622776482526697527841013539765801259582695869776613243010182375735183785383756890885220009510809326291347215495034879394927328592728277280459881422053966551556799933502120885807546075070236125690794118722292971094823796077352956450427914095576825853693848951269811868395826529725275995851419171987503517656483772325031778948917516899251801416195438432564178123547298042491145948263396258333281397819830178559053615147464354774089696963969684351005777542857263988279487313078960583909877321264331448771805242181176320570323885726109198033664099273081800551390733309747759521778621127587765154892086007872666966062941069123091279026757829270944780213357412288666939221493702521457942630944658297934184713209856195221759367613473808594469570888493526713297356476617703565375382340005603135090435975223412374797972174457654181830834896351528421547352380988724718627062177808595213636218078219244225845552074008176601651997201146599964805243492301699178850942156803884154831812439257273271216711292067712929824474839850382402564869740101333406262001092119149333910202390340128103092128964548704070657753003994799026171197124771318009189189553114271419493032369732802260564160306058552016358208358171657264753405610437477412974297951756267026172782775121981739609743050433950954017946712886984161733733512849197658394048626673556104051045180379549612428490340847477305371755507430515099872159291291373777640666581129957998696035963399564003025014647675361592215213514223973945572923039506577046177295155355805389124440444871592956516752821611549427155083163710827708580435163535757655375292287749595515346404958355147007678176984537074392346492660512349246422866659415055335925234311568081178460266161729866160024984963479008015289738109192626122761201004438693967184311938455507012928555248037498192929324624340445299134282363313832786261696063046162667509056139437813456644327497704904227935626653096320651145874855513949896303755357440014084534266839806870692199532145499753738522438004643151315772080662953078354760118118624824663080832515837344996164349265144132774660405670412392340840060029325703709165844473136943037333551516343380988307932819586542599006002012386858533140452249014817035330897281237674049165912451614681225304305323726396279166536994639229197636524853162065572496311314076848622779713262715370765991913433355537209353431736711556453526403627464771663110230651816423777644834125234213611891716067312608035055074216848886279297208588436294560047529379180796946980791121591273583333474660513932656086001746193008595886898409325621128869493311674215739755378550876156483623566490531058727431948990244834412534235704716521090366019530867014507279765287490016963718872485782508038053479405608324153689854860296120031263124500268471910978559248912837862614536072915348948489292493511627684144126717272680437480518081681839209560016462629536572900657251149417894718969537991329453684594938410228089571285717881631568748035391716150781286463108906843698155590777075100796329651940681280472421401135418679605182826024047535458832558141285142808213624534633625018352706683681118259501728461063314832658616683397997095899285128668733685299503454556774355058368258804936665951837335536531661705173743891994826886338654645765061185913550509627638076512482605643125289608561385186506427902741177251782598038613478421558736504095751335691922655146462993583120643247292539358269235931080939186490193414418234051073633211929240732655313871938782007250949721263313328473675898359589194174566359682608047575710688081332419660862767723945742219151025946012317287360503132083185929767352894482064462497742436169959194522580447852570295072322894313607230898270193505692044733947344407547213812154293483779526176635678042316910520970309104527598419336579177577025003076066920725836493482419441641336322137702615459719806232410510959039674026068951018935489055172209282584475010629603927182677255385818232780690417177368598743123464754656594598273303137189569113508773352927774939140688429425224836117139192544698164231929054080381434661881188071088768871977227187109664637514897464582442587434473335745708165205120124054605073916780844229294230466042988350332076463660790257607001609981886005024601843380087853626757580229191775260490727390438851354731190659918337520018979811990038238638187624688097714677260677274475733506831821045115595264344401328331225148556117404553812414349245171861167250069217032889840671764043129371665886005743738107560272380746747880917312680576357865267310304244480735452043720451003713644888303884908099254312892168220578546005162180504698197646038609168021998466837676634108922205472019408088236336585275410342372908705562654018229364157423596427658730741543315351164793730056995723777982658438652011756376051889137127363245420304479163367795691238090021838547272740583196861806075626515354478714312993107571978098959938375123227163659253811009546719827027903314013318644464010957033112452349658484291836486508950455912112202483859029489166763186462585744900513339728467665771411864070781654074750304277046905608200101497497058226931397750209756184353339674656521060138535657861191569450716587007442548172429080760886976214523501049614068230912120128530457974890456739516383499184863590826899355322397711046680044036622391158406768120465888471071619278376498048039571454537195612933360933324756274109793695194778286785405824362530888648596553517442254950997992295659971519075062838457148909315471657622686031047088992895362833904202591945332544017919179406688823523269135831740891694235286919960994473163466171589318119889504922253956072162840208661361313674329879098715312948403405019825041126131911914846064237131219921704815408858098812076139675356767511100910537812196014326605734999634008167087904977227987326710484996762464596923451166462743226031907948071624521520644227361574395861164136239200661138441568549408460338631525639684165781554788519335469699502525070333359716968605640817422531452228149876112048243397736692585981763227034767100144431274695206028739612938790009610576646017901357180684745388710886045434635717668410044071797236049301522951854610856312110072799320676430547807646395794834816218690783871608949657447716179815105333592272302920138271822091870501082933878865846540890010868431231950657315945506683336353343846224980900811584853626588568185970972719569584390442587407940837807012052952485296123764457214456667343051730302071106480289280258750784294891146960958989041547287563649688495540483169762623859785075780865382701103715925146503997036387219220936024701613895002925443571793940478694545132252746606303894460685258811091208344309691304456332871394107371041071517629425885750654012152174780323745243016055043358314159753462733304251895432678663826891953818012717207445196458109590479842310861290536675647528537653524778418176529660805069397439655042185934211954804361596361969285427732970365110110213228990459826243652328323790837111950400953162995112707905285676834360270932026035800513757756811069948888167671623755596841575837246325657238366591012648479456383624383619385409694668114274402092910493793599965783165671097635011378405665893614192947165222824698565439293108672227455918646581352643205372722771140984504742813453141359103611923560322944447543830269842903834656605352183315631339587744486052572173703902412333788268772254965298921802343210395227058583206955341541145656103846793131077407427520426231522682848622236461526933640877227541339240905920744323373511859353056315009408099202585682270072295658062632551631259960535856609786352988617949995080414236677311437666582786498732669103374991710407376893664195546037244267022086311970038385683563181675281155898569640372611027857787996384908052195786708299946666893631963476368174633709268732812565978766021680372056633489169660695628106106493903795669946581133900878952682934394311887168386070246630904168166712136780009541650383554993575820889247831751893174654031637391956158150656679724802797210526873485171428928200306355346417967823149508011178420099677304086531245441247970783853107347549978762648374129148680109576743690623106490976677460608443321542391545284298107080901531774723241680121445356819888730569386211346153361562092416036658320977949827580584533554317014879501738918279764544516064616773588878264634219773050318508140072355746853086156910036975122420846096204497870014826124875273455638357733813899926144405142733707221891402282659611974602395578284219835408216669984425066343850912028889117878505148168205950828045777986286410308932786422457507698019289801707991970482852676464764065447190158615314387542185703972121444822667068433966454941715814819362117658819479033149555149241663117955478968883453393236572762743842013392231864588957222500605525700677734146996181476605673234011347462557987806079771369805961165826100186175960464630138624144011393612588080466323468597727251823870814571189286510136958597761047347459711814500431909190840413692328921778182632551883759372666144696915545083154516040869066395755025523876683321767449501440037965281338584621697906293241489186071542558199690913266768177653307749492893770082330903987481594337131508264438706385592709774362324443021887161140659506100272000116727665584505143899134326950345155500291020630395442136052133385899660587390773662861805779300902034913770929719282229330836029695385631489196106575603940791553904238755726237965093658378811805029751691048001680614150201729207748120253943277790113767871100200302360185051819261814576739646351686234839795221443140520723389563187870575056948672261524348037334693855916792037601597185586155178684277691787446996056554234145857732056369913850593414550135204974044764590614673231115943384552563538051752312788111850056673713896349054232468225227044859870467128256714248883539112489393132555548106858735486657838884070435584143444829646578972215147367799761294751210021533764049433566913175300339887408374997366719759759892369514980110600019151728820827520703316851888518120834584091284566223621488535529210981876153486609044550071489748258401569322171278572658743076528593650154000783807381780412576311686857890238049261960936500657838698330480765354306343198534665208986176402392460064415110334047466499418888712662714997113731842250171052697037751381598433766418977911502635812909869031003763720345276643745406535033281194990889100904429900956641911405337753270811834573265070211794014858359173995367556166314612830725778985868871641781196362958646028395935004918113484296556654444448263264950067963533457671714166597906303295810809868274034770473632909071114411346825467754512706218708510115274096781592976295053680384205861464665430236217077813354788640774701950098221434646850641741324052409132738135866498487654554736950789785635066678400375084768379440666124255855493775362410072338758489860316060799287118322951871687561469466137534562683648651256735662790096954040686852877733435412641963206580064295134394549528713179578692555291242613207900592253581610925456944721008131241734401036785108021969344092533676843891925446739887439350528196371246084159173641127114927513940407194386065295880509968857871945843125617427463447981445376601811589036876932916817479983527161300637743090940531585523950937819625762120267023439364367248719257692331322954189580702908098632829652420011882289265850994028998419224706201798858820032551733323287069390090771142907996441992884889541722276819514367370444000481063686336150003534290546069499758898212102353248756128274743615337657946884171046964119949594629721505475809069890560168470894809449742992925263499944357734138346981101886612279384486116137597213968110656839379506763666208870421476306426835181250562084874891247826416388971132916951051418122600608427994456850033058172847431639433542535336029684444733938334215091039364122135530930062441180540005758037376964138754427234133456224941944511154371107354214167183225148882625314248149068850438127450286030034161844426177078469739359284605460466137664760808903712354776661881490978755573535442925125694021806139728743928308966560658726981847471378587414204445808630846652667963304987652181097605337837762713939934751839823586434479220814589642651168181700242628274083085335287490703660676228437447932465752107616937869729305941909069771420764661317936259977235956015442775965626351031733089011995105143032395069151111485467578276832603473047023543102315439539260585844314002962779844693605352687751751637314149587774227013276185769022149438597660442230846890546101124772038099222135388505092499861492825449013001780995243827587534063526106107204199797614906547549224629128692670007190523346471654045497148488436596768117856108057469651673529563342880647497902623855222241347421539609278150639990659470361143025046262708479324659478995893210377927724323402186767303526986862198522559663502680956422426753856101593855624245568875529779193740052453346116536167663765808204277767703196779570480747633352389009642033632928845664127037570366771514093212682033943065794957417251394801565308142072863446626860583989960479553478352227512971544902983665135563056235062668973497241810354283648158904693111854444366799534066702935416612900383816489254629049004281228657614545132385221812297746027526003399192461432917177636020032700827896100447147945941271029440725868918135779907393488756582963266578161625966469603095302475119405820632637519223381603328899079016626825972772618027838179820562901558395959174812502726754563703406796265873603335383382391549191342324899100462792964782195708137246899417312322996138692020392616805560553521416398423525569683837247828382003280951595978501216869161214237536734123629560307983551736489119068368804341532546688785698112642551098988310070640234791234119713443623215415132750073267542977272755599216267619194685817355614690470200237471912522522501968031617604717052048908392820663645052912437273756947687524265487831741525138954307887220604436320822373815297059245172672482577807967714911848483214698365779361224504111363769454676471796783409679922200282667636359213611962516747051749557263661915391560622326082201456180484539447992783398958547057401871742319111424118398088809221097484316087737849840910638350502734406896012811890863266090768335498163804362386751170950038119771224940788116290251847302223807934802466025378720675668282569144928699435312263155532482756530167325155643088193683026433618973657602700594411290884510336892125986588960334078427200302501127721148693632096660417625170030425950717213895337880390643000722572356447212769862999150136742692076049389348923677347104040726566057828669723203233308102952716633840165531888688998062764047233218746324863131557433744580815453136157892889160693245159008393254290761028439001181634784063371195723827450190082044250807138430311462474344032663744509449878807274422893884393083128696493237058277350677016414769078293676762528902727433691461161186952966284011203831607670259565685194137411967473995127597341325877160244386608289566795888043322305624129066039307652151860091938927226280287896516399074884958447849742895102160389872218373095713311487504277891926899339232678004581694402001934683695637836453498949027067200359270544446218790123682489747118961179138395648845514339519209145505931861594375591836688783771214530706234051919192641036920059882090272803583554162153485389997440497611874312772786656408439180922113446065096290322540121435322450605265637991844287595919282981416578081660258166053670108771176849120986588720818225796285553673658764417031615068950567508370827406567787543269123095183632410587205954638461611142726827432770510510393172342828915212679193092657309954229805626559305223065591789734280554946298443350069354813171135168883223209963436107054662653363938057409179097939792403265923119234007029731044674944187023335431054946850890705266378774157122608115820173886367538100301929378236732956587665982444029243809972104260238083535992232796734631890540670004189072987825630845095414638209320800475912245447721915620866060301728081683173511297002209155064841878792541327004528900757574924318581356735434648125125559388251291603192011007836201674165841827188120672774380126660945863006168454153798630976237312628287731006818573033819360099202543624856864433392271150320067496578194020488787130911440817187028710746783791961773777372972231398035066741384845060249745392186559503372008205496841516061670706002639692105946178088608271449433474494966778313276316131695582104691403241671879758521125917261657034033282388335177983192238445688069761973892762035438483543245905438795457308187267786210543603750882658430762073974301199096935026567194364739124625335740248105011718727579895972676709887019849476589530879576335423790271702987660801429936250157241804163321818850917266174548824993775425535157543754256452956597343244612408659292146786430805168302417827727685216859148543029346305081443428149792867566042190795939982973495875823710260837348211893339170029997581329159916963022340925485796905847588407479764782860082391804782312797112053884758137397398492246145919004994795408945304294118229343626046336050038143353575156374872717561895223037164643154625815414748447113731242390802691002819252427002384546553501822221141861244378309524918103445449569983213525631439027029194479633660317980821330898564106357011134016480592648356934837120061367403268565307323497655050366772647168997404103254994873623637353089226436786448447172083786773199112751175044949947745626733822459148311512332540199612947774489029675097954940086656749099233123554003486457934473350128029258842160708095968463449315219243973232621447629263968198084049777254358864438707082300238677060072165456358945879382666780647900775842736190192256039936409786454432650114326183657784146217863004726888221592200232115396628916791372006401847316472818462260239768164588491033063817632746843052650224995917093884399472710639538374899224072488970589104429087022265525634194471695207525311771517486266215770967499521235040533727408508538644282036258313494482228391040442613052911979321478621772467147855518860592666509696309913332696901817265803801213904444974484412602846023200390982003711100876593554626673652471671371250217737156421699600498609645496625352388175978542107546801696655215496756027761700068760230784728888500116667860639557719754694155163069078763531438607508062306493311198576494778645099480424409305184920647545495811608195148982937540517540189318955517126997858601617765844608086503268229183003021517530659031003539883740078684965958593875785869834910241208309311122721781851076779922709911352705456927426213432693443235878979870659601040709489275066790767297275692402357535846710843365947911952294980175241149122768133420387167242659445503301240231391640169532303466469997629501976667901245675235788871331102550246850747271771117792512250709201038265330656929623614848987217941845044266280605757127618261972765529680912495099767918771709692365708315932214366514791936968657019013072714509546347508749418759866879385585648025883139887542791108292255064930851661984720520501669980925943151705895678870864366226071343311308003080935579556446396736330456482281532528980870627720928620535963560900622913671551673415470151146998116458767987462119184968243725133500606458126244446388656801324305079267029104029978993608796902786441507103162341107105368108619270723924881184355343841787076524253254053417146487651952952609344589820861136252839137037502923561702704954386757310225420419204178577453201295879988923348292335866121532469985473247511960039637801611959741562942753856959519646416794366352893610078212160903126303992882069049003072819339307541445047850084971705366476531359607037923839227378333914678150670212463825080814700341987974875808563676343696440070651400494389459555315887066949004790425758460941713134661713198178549976343372921056388830598971584996496285819861166135059417977418606849135524766133221428852684341791999474136875677856780450926390513791131400083017344347465106384483414747943927068798656997273747200477899316131719764740911760132537504015544274200469477724978566859642296687462335707940197094274638126106296087383308308941416979123168126271669928565028079604816129835043870898596037082796635566472765434068530918680554934065508973436690964832598141256118150219470670667631624163501631306669748057889206662894070413694302576594850855003919391219176154487473574588980381041533949890991243093482963425317894555520754753128115275880760924525026130863085836670166554089975280203613353612538865861185383212525385074400557660897178311833041536314965089282445391394694299925799887543995850026075664730427774985023248272588521153569085485986942271256569459953438048494017025112442599372770980474246335792601552127720160528011531704763999307878353489074822505552785441983560999947298871985923577124843956482167012524090394293369290845303868683869168403157289609029536504335745111676848472404796402888111556167074211164761949125963682084240644713735594435905564956469661331318139920447553023395423292748597098909430439789751260687096156671197014736751349959040160032095907585752204934389862635090510781323441784459172823002154968083862357178727049467491920566299649741370734496639677790573067800068457380608753898151457468078280576725412788846596958053908858721514759470070847399959789791505111780166345103979209136109894468741962361221872088329785719731814632922321925132684012508614387435795413605414898659576404617240151337616228315339265756616649342799026607329269845216039991548628460463189073142888362201730747799243857176152012697177140617429514997692739579224323640062875702113664402634116423255076240255920783710183986422967003217711046037254787027951433519776753765703306566274693599075297759297851379154233839539778533639313341631577871825056203114018420729770174458262925241239650672507173570436371200880835688238202310757084931549529274100495240628528356154832159063031120320178533313779402132297995058205986227017303967884214377584976262161000739483221811136879380586856607113169310219299253836921525135325397008204758513578640328485180749665906596872075833755228505519908091690163379236178704633394136976206699150047970146682350185265842812053283612849040653268663022689118942724315712688417288896621263681391974274592808633200055821646637669513336903041766501621973579979575091859465091996159186063028691460466853841842942168053329537074633411033293077264796135308207665182218723952475027859490347014663566468310969450376981562475154385429842278696106936670815038386733114042918713989149864785087263981782289959342513040883184833144193936544370039116872797281529554840936769516123521897703848103084000408264668986917740231108012249835217422217207162698242178816587647655106958631859913458219089210871183560177293986182766084837354600726341387085269224168974754632229689584486432690846514733188561166560021998915475394480682542443886292266150648157353105641108863277628230031693110661628657381051550525120860400719006130068289378249989414709618637904961992327466970562860316137657150317979002788838570469876351314628342930033529635065859905217147521736496814169529015319531750806266016805044693719388476715092239919933545909331467326752489236040224864035850503846389030689163620547134781720256714374302412327279514422247749258842307539811432576427269485475175907678179963349616100468784476652446462588163383591114510585303189717507273947332001791923594551069861211940637904607145436696967274971084256326216678674659273384694820399721599713328510375034502705794515874671660820361332577653513568192697889233984142048088579969057007963657304685112628971873281938821968070208740665201167451196776469916935780909805955850575074360766778127740153806444739322636970172263088597035448647187808072109146952036973746198947098717117971900762983775331837347592921383029427125202933283968002733803306559355050231051155391190533813758924024721012764612954190935706804933350086115452260233934970627259610146399401356657464862006342686300231333717092963086378714028921966188972088394968822069134854051266370101665882768805065485022769131826428333028999834222020527922504375820421513813707536490474562834041583023172944397251429453943886196937139203697494335692112439850720319303921459120686718678817537996100637234599940601477032175506339541468654677985589923007064779007505054040567117157518934065455335287540713653916100532349060431399358074871473663622628806884782393055116618748010062551233092804178584928908296136451041580996981427210961290168064071867759328258316777627090111178752624962741645495516467796189385564569799895358755677064155273557508643509275569609105124664103948999899041395958283926053473298638055719559581709673631352636576559688449484773378855044928703775943468188666095093806777479296166871834384048195377474531051462774583635294793635883329520972284433293647051817631817296915146952258356700501063588752531075795368561780230843715033294728238798150511102849153804289276417192945608781152655115722804406665493594212180742077041582130646403642941833823513880842850503169766112016624617009431736124016713156938943479690397479755488932991619175428359751674848053856209743734341295664750317822216395173681434067559614706605271791049571045543095549742956461831397768756775537459728510519429998452811720455094664626459124631580520279506092206649616547978424627911872075276131388943882454657119855502824673286196168504462305823732654516604351614416611479853446406958934890583344402772272288066217558603042476363128042382699675679817856036997977090412189669594281359662810533282378982938675599058143759941337222422716514270171284376495656648290188510916954532241687968984672230143003168070289300449178651499941216347030813681319176122077824884885877351176504979376392873787922279241826421114411721098169714018884090844732872003419392192418745500433963122840725588838984397532946573056514978693701395002895517039813302068594878942389009010863906489079325203631450609095855085040155858405087794639526680823196946921449091165865291625347290564925392010872456424038584762435580698310168483050161137951563566803019907237657848904110822383620951160984359313382683970641183640530667157638844362083635498776682300500845119132605676854784801728032615413693866452230168960026194291231626094627422109524449981269620743822994638759572661297832760733307124753397142913997844474208970718802617546716283533653140616067270348841115572241133284432227510390567748739724114303297508966352616242874770392664479188759453466395901279445317814684386689993559117720708081606210067666215042068800003848719676651350710358016089960139119579667975642655092493196205907734601115553646652766828071710206900619766166187147208510138879706130243626569636283796446367596675901546858875660747526422123930411857880800543879964854675617293369633926369950903574224187049699052948253688499846691399406255500954258729956580497592588035503021151486971279541131992495241848091239122894525655300825746529517906447849902728287298005900820528350569354357968498852074294984190949783263827525281987410411910398471273029213809723093256774216666685670318170359947992998750250397845955914092485400035841886104535255795998734472677989268209705178193658633596043280225710719149362098851070295269712351247055027305958928818750279378234988742365893368745655673732002425962997064103885506172822742566401856351294704729020735073650830946978531285612897851428863569362938778214240508648713437546448602125374054854600320398948254569596365018321389904768938127397058717842283894692308335177270210346234612885964475410010928560066696096903633433536282059955733781196005391570641394766538743414787412433594041612339215787535918276433631498219261989703828271112703194569624464915202086272512158789132257208340686225546537472067208121295393869056782608193391071627356625973226382605318745156722881848458011523793021851271010599837675565000789081830762760103376836486290606946925125387136344029222225441914707223696303018554258248962393746480888234530403634415781558616661937743560685351074245031059837309198273213758404414683659380065992369530496785102783742538995253803337422392509178276441438461837768142613748645718244852704308038291895303678349186582061668699642600126544014251591259817781531024347145681858907052073147943960852128791236106253700095246054168363510063448343420745959530533593216245176857109230174700662099593546448797608505480144736648221511112142532115966765876667118710900919892281643672631819209026437678643994359629524351895077120023306621550339053985588995522937055898339574422394803317065538484461552650757754720952826970368735669493281351167657786169529714182147196447089801724340170802327210056126524177541963597626829133103039588970123799235036239003106836266239602953130810362544441879511830427509309056444557035299292567268601804101291683211969871896861829201775675758076755026514324098557600174724095808863968825981408419149049975579863579023629514261299480335073822307140550139855366185128439873491839927559503937356526579174317856593680260570217658185558940511065864736109078069163068920129455666496256454735908137243767211694078721029780836570628679247685016548033309433217045707968248742387301096937359856096418278255564857820790011020977250787169100097071738159593922424050736539332798051332547173578265447670229447217672896169648373435918080157445048035054069573067067678957832101759268463238004056198525109636588161060743704370802560312227578888079096826995260032940419814327077299676518111722456566859038784112899876897517328984960018887012727455078743368983148400884896517285843588156414012347260565003308422423013325067174373800321149744546588533532107291336904061184122809897041360002718194068526637744001958619968830851343435571466614408962922824819804933185238816494482709464832133265644132445132528790884861277191554716288899049765543260969599058279982502531696619736458507731580013753220629006620888392834896001655331051820089911765592447433983406843402814626401355584881538740886409374147575382037670171949063506256165474284544914123284874282624228323608299551626098404186357120128149050060829739935269240360428739411807092340600148342580314473166100836469872348277499187358715483683735605866099076954946643254302345904912186142492585893432960328968634393004639279458295977503777344254872593443811399163943365086045865789303782994193253775401472821234021667129074481855065164837891693701889309025818015128567535603257958203677559244127716410863831058166573286068899951921208007311645674881442633717400013778286664838019255509621141428637338056921682088399135981272193013830625480229210772066671050643465658570189018516565016832213758193562026408612716471744633445140272882056108158631998499174342000733414686903159928106523078258536302036452098266596864905779385648075522209166573208154794327147940303825228839456359567167748467571356508021307826832044258557272247046159279125961347309975011616425507337746807149909250054794985690275603589057609875135113645099617393123200994179335095506316265636847237987417824502235258085086240695811650655735116744507513835939143073852023445889487756953837919178046177943268429013442081463785940299848232257247338051407807810626677147624949509762424651787874614209358473277262010736672412749910412484922713523050759442057318633214416110569161307884306557400660897022682257777815852324006466830036031031255530765527668812695322568809177405056062294221310489575824183353103894669780876885268518209772190477506213195427952634613694161586586839874775888317912416355921993729583000689068717923753117202134273296636662341170707646444921864387143446048605725391271262704416099608001416301679432432462633968687619020426348101555413217859661372303447185385343533833082758143120598970490041702011249779182534569120652165102444120469962420775535531307480913932589494312192503462846796655767403621451365426999463662002068601930988436903231408070219389414436485051850355640537293764476555896985494402246448346608094571915958360739487752766002387815519969275792648456879310006783204607372040803156043531353455203944391825032649178871235980583528984182066337965286038935040028801449025469190762118299397006065611172645806209951860372292289559976853038560765435917309616392026768472369932698819678861878091723493059341177610719762008455517983438542130033953195939883311890071847756344910280900600774607228091608714086715098844706822226578953755749250846332746820810747483289117127993612530878254893295604081417192287374541201380439621212141700190507750567917408547226035432409927717242343761759477987758342561511275685561101851425218899860573725491714076287996509721367085038882548814352769663740209608420359951844791491868499913738658523834759405449451931583537012663967595961094397921338446930180123177108958155895347653407181656585258967468876576026721936447388463150448834660274670273840651610601657689504904605549054584644321993403300253710444176481598776017066447114410327863555179538104692965784303691327538058715795945294528145070545769886236224762215557001392103454458675866991931340668930735268926514971495278460268306241747441131210529755755760422221281381832699473516954758283659698966503040039469035058514285340519769084984148443676437484380246100365701070211662718304320809006630475816243574647987900601351575259484231590143212909203744232878886327296034410908301648888725263829330733185741951016032588576675414615975625267708791690560179898790098144050093303301353176194026265331048745985239794276084192034472213246287638908623188710910789195571791441247830551398571014351712335708202536150337381895654935835934205863447060618817767890435431784274086700399040097363665760573655141422907303327298619683384971253622344006987545793772794532734316273591422281026447951322711117690144519613078733664902412312685955112396514867204968953326579605854406553987020526479914228117042954714246509158108802545836940969415842759414820388592407099896298586660807158221735784997521188149768289037721214557846382075290784867207094587685317389515345266386908618556414047509001198577151667124369979526560150187837865383878542173156124084802516804062298985305050403959340039987008237577529228267329004548253249507448833719777571539605219807013155643089352890919976024380799369236019020150826504255683366091936304653211446610970221047425710316615832526569086823699340326171878628642090720496881510047098414534966464782283652300781261889599003086835616193943592998864393200778619311484415204251639094713806873802611771016504012554807053157327071335528443776762856938969544011430725987066931158837843760264446468340310576853090866403916809959049232953628130045417974738067408570365090406899207566227094149412433363511212087440703838183166980654777703472452520921382641544716769885224327182331258171015631039516150894745568106544223282560659367165949058432284926877903361390857723052046955728530637784502978233887064526428978739189217362760435202348590421580862580304432745342771738655609327707093059966530979778052954743085394606326501191751942501781592894284222820313563282373396091251885144937611553486984750850471136317144224792701789327983167467950124597797931010383702875169511792919995891655337425433035859192437183097504948529570934861091235885911129344382303409204657769921365567405449001998697127454026448233695087699435285809620481699709695166521788123965251425726238744421463639953692150154790041206440931973406729296135646246269376937828733155983612318627146978638794260558775137071866075749651271200935305875951864632622662938261726764090810524525581965242565547656623225382211003462799272501892852722703540527456795416697347220386359789080491813358715240989823383756111768548070487542438573342030680843108107624745806771026794090224568774548813052338122884337525576419133266714671131545546734374619041481980856915588175106737138732857195236663887275133338621799618258825886268658348734834523623816433634592430870273820379935358751692293665778013575438153000798259653906120095799088063077456290332253921196353369942270866171162831311833808699105988225878275863135323654263553993660015247458744672184656916458859315501830028972365264061732079544299935210282331926238391907722971615832499925796959104886633857366313691730298472574950542271275261291534807285327135854050805063723268245182530393433595790787873456000438288429219593541274968501967377695031974686684334361576150460745080622423327322501014847106125118886741217573109534071662653115212555527105144886585869287806601136623164708743390047159984288143361154409746250645676038885137551100894202905962956690820429529881139987404812227921519757631286060676308664222262739611428009418188069655813583485271998214562483590583182444042701678101619198577195254383636797600354062107013685470222778208932024576205569200680891686898897555989603606528883807585981746037684741200052175095493544276321340222676444187989069522923390062894930039594502655094001622932307486022320756212508847329983209269692723773701147664115945621988058059323088711616225344408125425891302466172119971993044045282717640145399482216487256578836772980686425098643126906782700861661931381737327166314094291434714556666044521903674670794612398003335788240032679312347269325717625228178821678490029167579224511354753030439874511703644149857017831118316161756009154793506548615572959282650138981762128042885001634757244036146000190368722213275077568648966062228555991651450246821859608809247730685764938549563579528478238481949683484925319541965616271265323764717002341943535963034677422213204181204042138056385418446149476152367735137756013874692327774603771364681393507114835540567589202391704760699318610426762743354990155418900596410396125237619278595475898715096971540747243457597305735458522946387841081762029295092041362770677560410102092668383170706839074661153645572376253726447478261699468111584013868900867313809269686165618081430183293760025685377544739972622238813809779597801168248556081927560679618362132091602676449728551394805028660826924904576651143371496603342920692917261288620441040052217803348248495785795642363436172367493613745980606596622015517128572609303155886405653742782886284318693054852707271188930145818306216156900592778868671634343677447300774760064515202614494781602633501160954782492528268784307896340227279864159697934218205354700104889124352425522426603437139778571874850723913949914542051303721995147221685385276560275344346513306004867992121711411811733554570489744076147517137644800583062635017764956234178299956896404689640996306592855061560446916532399258812564087611097096146677479418009175848148348616319160540002059132075263342734935044106573592280312624866690925119060663662869433801067502432478558687243475571856824325652085284314751551641886416162366358256330530683578533993831446376392867902491912547126765890617030924080192629275701530467502412864064253694200398654570638471548295643334045783110745262986081098028597081619079706770925891170476151153122727063121530866513873208504641925408356165899175628997381388183578930505019522073170590551647440933894020244352830231356666536270448189511035067363134411186887204550266515521234211147805749666839084091529586133088560692772066758746830548516190550074853986202093721315324304607527397945593542165314273613103104060041307039509026089199838349887015768086828978991318618594483594285596526783998517322959381912476638141758243191754666360268598863178216920557287007446049003553539251771504561126055246770599019573327127435194556930347956863221280845132176938561846876032036534117480126910157246715307126529237500221495976622158997480179636141406110278418859000623915052233395440693116625530801962962162178996911805667711578341788187032775738599700251248644199210365112390139802653891764190548031966295190602644413182435679084251227140407075931339356903665579967080605035857850719895157537103379185994340523186106572653129442209557161263784895475369135831818298172115331001823884373012579463707597638657316764107592785648040791258905576122285592892795892214937266988051253077336269417446216664937069268173710900186212995720062174896189326076741650395600930061279298061898441790475431759020714142285350036054420391398622815836348727785098192651900415050544699173671380720939682148988741712848101669901034315375953156126386200928443589823310277446857920459465495228014725149350239127893581570154498239083447476554303079409486506246954662516557633014370904738770717069333137731470144714011302527283230104236194846814607987144423365443009775185859957545785704659445694198279101101693092045264273155696860778618764820589001164491784193737749474597288417316969417737067792267268181575450701204167823804313774742127444193935850430786071573478894489065552229175365499635729870379006047333814063757869292289314633499520694019472225543198563510020037427020800481112007596302750183395052714561961775584485344585311617172280527366656244755642203344393369123353684028004392109933978856965448174585414799819718658258666089909788600072959810699477431423647891267953214025241243856990686667248426115554152392950241747170200573694388370941976489732456236290624055097671491170718602421901964034194172331216202281766060604573029092095608953916352425562860187536369343875356037340799183983635387379164712580994557671405794049049551755645932014912771601962033803730153929938231135638535946897737927119169738105572072578545687860206256641225258119987028458771647248253173985680645168467239781262449421078377679017171022085336975714150278820819795299759732353621854865898249303627387770971963477041469505117556666472876340415837857449929519802849767466061151210140288397305416482531884564692155974894614906427537688794456451594633808066693469641921483987729555544069251783825031422922491236372025144475981132101945582680210545169990040204521762200712801423825563010906447546977280519934537910394634610078995835623919894415986158440421094953212199785157487805024953310184436568230259330709112438336055516858061781804434391198888802068896132922901423956703265005066113681659608172941967873876799499951597994693198302896419552802274123562094322593466230212253818451609179227068591675870637900854234082922344098062298407025236895052772058997745220475841845350180011095299374709740196252741231646025605801615675394890113172225630360647453049753207106085716236020682439599357362809129932538731250009983879790298535753852261722264442412354978551119783382256318157144453044999913273802221399122122223382812626613761009288090449007607446650720318164476053966474794543876742490324122002821979425517652456798424518924367582974884384196390355577183183713024368377886895788119161159125583858231925610046831283153146795560777549742325247403011010903085438799242520636178656517910825881271210427521487650152277601380569675630247693731308602088185430047584160084686762362688555864283502977880404640725616882509179055923249569070358744896011210731704284441416523645705030839875306378274539836442827712229364835599633985394796181361618525775689136220765681873318651260924573663376593472465193844131029000322085112709414169513019806582669385966256210748984815110256048892531246401680329790005276425717500820595355473005104983223427051345597861442961906982483416676294420441585958221498714188600376894260571548910056502598015112439031977900181904386579329079046370292306119604287262021304058132230340835020602521097286956530900219022917563530216718688481394566591875566822724504494002831871463529996331922306252735741549616697824848697509082850042053544959975565246483111242694733714959869269760790208240943602367078602166744264879761609091670166984855815360710523936114232680311931762535460365343948221974211743217780701551836158674197871160521961221399743629535533047334794293246610418493565302212608894634469049899456777537401413696090980441142635030191212161452786781199210801003257546719597345079498131374525222742571227568735652197058181642932786165006096170569942638316489098085254697903294284174852276891739397069459592588046470771160417478377829497988712400211473469570864180425325551650035348261545838317671079788097858285752267060848730605482713734681431931748014187844183994045477196738141226573208421610204499960821963150499120662662635052514633435851307319790210080109766976310149078607176807949311073800809147485002287885406872918690267756875291245115627580405982527498180904157377993289346246733297904620969413636046872998891283067978686691022242841027014133606195236854723928041691833853026283860180793957015185911302664231581433150684121700981668607604080885741928755816133917322242690374940831146310511803058705803197986143894330528571925273915639799591691890621041538544560660143217282555666515558166304669947947274518472385010761701300178854827523619240562328459268560759286683240795998591241223235573033991395975174527592670089789693953529754368052156894918987133201375579066672041159199890740606006610757060066851469276237328760238222087882347930037034012822769679119094673966312734649154375548269578912563257555452108510191756650858161100069454310056631525685055791866694076133894900704644370610794112185271486026366674324807858475613378226327414969168161893227775111789157867249524858569913760594277664554700738830860497271149052479766539290996454150399711202596053513185671032428270722561328843761948562549171024019087284628180262210741537796879968163399608469795698276782489023876044101121694152145965317711682758773991551221518708531962945857695282856361770214672868360801271850822221279482249485425289258775440044714810519198597574371882817453975922451048088824886038402588253857820481579624073413715122416473647909027971381073950938341502919682270458793615958318337241812288635895969256293558036913675180184769424084892627800924186733494463039857780279163859905050375803544538283873690070589191724102038280748305415583951302403537163605905677995758865224950996288929962419006770151880837984049992229486267718159968403294167150946872352005580403655700050396189628620582566296214135476333901838231603800011707226685624794760470834915020715111233446406460800148802827239457949568942864272275189496576690521301163606235308282885642028655391386071352882502774760910017802072419911136459414014416458590242656053826061764473166000233764005079341400391798237284252392926124157041823192765690602960301960188807808087531332937084202486639112991338856971706935690207063708574245626240882513941997051975755165470121331413602883579012985475114389154847264494010947672301000558201602865278989639012581148991829023332044836095295466281351671039623748711565642339614830375722014726765302052754309991655957740249256552080378456198232696839548207136526489806025885092176998725579778123129567149090381064045697090728820175141232025840054800051131433931097750065069949379145924513082230589894924684993765012636381005983436633911285911679563076695134699187055503869424151940627121503169092506808122358205756840113726162242504631201849935782107604050324990728978299029209939916414308179261738368496810306668863332017713636328795702046203171020484122451482612705698007567078328604401426524150252780519178395160795962496379366537714560270192113386480224246456806002671619765361820559006033876227438164705237672646066675415499869893645070125664443140925893529756065271883585071366314596742809526480794218446723259916579481593718960191232685311898482643817324098554833573543750641954087523824647303217889987220718904019711260900177191729148750374493974115144218157138642172294830297353963964003964920037750308656734104054283197584939613676218606456512621602998142399768863280994396432977391139368959790227195561125472211460566341325852575822760957794968962455792057493408374164424117860221075161662263218969724536758742092234126680562719422956016024735424916339114025653930862513976277289487138272348948260375245759562426156503772992549372663367422484438652723487751683907635503465375472731110314126063927096629514485324056607900755675761880630491893305178624153044926362915915916463818809962649308222147871832601864280403853925777414754975991387165977147644583609187444887692085887269372426144884402458072277351312431944331995203095519244817759683345502166541702234407520517200347686426496527925572038634758554384555032140613279509183350953086027642435610258763126933833367601608851527079071520889736901406163976218843333393123949293237879870144739556654550313257030296129238540178704938446384979555254302615363151414685053843081684647865777893621810266906587824322056822390654325395338108431758306392902347430569212655203265515012586525916876218469815924672032231586506944923021613504125852772959114716924125069974288778472371278050668826627005406366461355989770739480301232656337605063124220325747279335244141689254691712743409722322336899682754824569052843323500925763371348828387672262719736900099302750250077900709244604853876540648452252231415622421140275717058140354698667950171106898136790394344811495351662945938923364607870697000640417119209728529386205655007815618060871067260852782376415946123676970760857709076647752943847773609470203946564751323637862908877774896964976970505858193819981064475907772029426740428968794694918029822880554983426405194001380569338772406213526976118744722809918730569718988694339045326537651782736693800180097334414817819740297828494001860286139929609143560722718577970535991089457920015053113318419200160074800563475488143760533485173111399164952501499024470653150858158170526189144941537330149570832202760034487701763231612960554691074690225104521929382522702066087298696716661837599973807823440908887407502828193476731850605553216901600425858724593192319106013062176290621749270538472403595552095002447582952307116214735025294464788093169115477958151183280031404941909048509531007021080260037489123922964304343049118354591455683871046956361054724516727904127992568648453401308100361413051952268143446153656718299185154954985303780762696184246059878476746634415823304282488465233900217724105329449809903979342700032445067262489393420331185632274880157599694708746403146825555056135993611878452657859150916057313314259222033875013516560226628869191568753329382864164161170220183395250758813936266329093976896057575435101972953484047251736253410467145465169260810427010764445112435687711654495141162081051759157753936986029496403619145624826154459489526727180387627093758000144314788022471265168068870962763735486867094376058992167772188601249004602369496791286602033446099897532875735083559486060533940356431982296282946689429054754013918527110095068389287302526627675717154744473656704266838333100525415630545497052454557156044341553786972518333674961862334796067834737066281169683034484783694486612375545054886997415334713435817775274648243358531113136539628264627499749905066776452472861924251470446627384145827260232582938969129216660401779165598363843737973997489280668737573875025816441672285915066538005982515414678452904917199296106404332302683741854437632837920328885530082077466935916577887381449168746846266435249349155320713300583308218384784406397065328451311712537740103038946660620902676640583346440570280041297786378742648868069412096681766968591487583505975713639296798604267518377796594292119908149476437781004106033289217013501854025943709054801780008615283814763137245009289881431514149271895488390802791929992913609376496412688928236410986334958818139478466248331833312815080570242780190032585310291580319823909698462598795439764572646060468014275528290971055975608344192713300307637279531565330429585385385731597735904452828140746578837939628347722173794609979336294291569048887627485846670776691747973991547804874212168340215720167152657557118183138532764569702778707351815724366737654011708965148527050926268265135128605868579466388979158634969999422489234321461414396391256763985984280248471115175635511788940397060737373199599747060972954337441892806399232302064873534707185106327874204260167873684013092826422339621334240336394373886167125259459796749318442222774459595442552341940012675944489173419430077020447837780729551040603934996906486397224529260463687970409288584865701405568062790105876568504653533227772872205701017339237547436187870846501244633342558428428830639642700741740477792653705273070330650971786652723421221444001342931690828150731169951285524960999020524722406459480757145556900630904283206618881710850516655985335408310471360814705489968891544336219143672857754391313995063102178574692479116432747238966043426944113479581871626119772314927458460116363249550832186496678550532137173354068080273684513055292600800737087925337336410742753544376453858277141193168030759299156431117940495646548675018267046485848907224693123322006829937214928122869913334305074572226224796425938906835243932174634317544989244445121242065869375865138193334534798348298778052163956232893533485840077627931822281838967394367292490874353518011271697889530818628152307747425479037157679896135940352035631530099596242856991462147695333886416005635694764545798402397699666894119582831855719524765199778945749094319827729914522526826378838226842793863524435935310891471842779522608208235461414635915741114544354734766686623885901071460447625200300764428246677851494336702160826747085073618565512625052103958673465892310562693559045766823378072567455820018746006706069984620791327823437590034471068944766032003407147595358736198263665629467087378045735737117242351340297802057777522769306471935959158858576952424232574561922031796055148642369436175363194287610290804296333823933133402821440482847190871312396081729009206123917104988006152262618570083900304784489021296289850483328789430089137229819924364360207462365881563737497854483770534307130873423278910637861874837470637174756635229061241653677788039476232632575181163186449596001200172108563248545185837406728359222109720440550990542600293948173151007522209076332477076878796465107189203987198240172178317916410319849045170335108062715542380829296567633943783813589696529274691246060862965712095585863671519848391910020556686085760404187903602587864404379020735613458002597858228872749880861765619404392918869756800124472595932479655186508831682922270860292585048023207569761222328329034955636529793078793764864347452709595498903957092700258126166873829628225080393526170889122092011081638614934283029664613405397144579485512024951965043702663739309019533094792394048884891931075060515838335348068797560922831407938167157455796266607967950925019864280485567295616885644240872994842553018179083329283032743090462524495538381202988019941943916367927829061454812576948375533098203755921341680718348813518982830302797964244466232733256506160736748095609598544831526486947659642370595064636269439463428494667391274160711723977696514166868147121052073790057234271609089053418347799770803957894113209239482943899234436364000996398798152059573568757185448452033176607802135540807775327068599098371976488922364711724314095934783531932304091671650945425924487215220996994088654545599056846222443528176225080893108466595089382594225135192756496604214820031610268380504724608009047499508056626073126222531429661238407258262333847110113256631573057555990402093077346707819678852490222378388139135683843724971774959992295260018848024436138942806823653673846046442999110356681894619601182999815777000809912532913350165326299775644391748411445968623956735487934489334582575533901148535238118042402700838394772094786490474008545325317344272619836073625420428974560223574879140390783792772529796564183644667037530866487453928415830370923554508383073106440710728425562999648764583301058942333291911123224688642147672582669683344953557343325008798668872465340286179741031457611507366386328601751538492562940718048210571239007827314078234416080386963422252784986127351201035005565688676090255405095441540686834408282511334651935644484318092851170024153432138205750381450396979535700583449149932319917423907786634425369045875210765346275821363255553100818287815480235595706771785098262639620541048301296425446300086865408793803380137837629100530336250806100906936978565719366776232880261822830339238339026265552558046767205403648822904473395677258747585841701767498497382086977599977793401581483416573727090802318271290272403098268873210237045905848351008330369559893301651311424042992138339966638641566376984547931543785705696185261487321727555065570550254072860366318713193027050955754163709467948674398512886155574742045722569914664616582646533965902202857359103396811697603543669789374764904341935369452917941817284026799381193529469448102166104476755446875598233396311651718336345960550026616228456795763766292932562034921197629260846428804009520894517300578799720593366646610679702650456340859943774791058264681932069362472719688976083749532949572069033602532626118101497709169091017819594702202963028289994489531680687971400470061738129968191127204713349505303484113317535366616965746515673693870951392151506768532160431600528941134720740877201058545954081748096060078339656165906434603831201248381129889671525908193921079698662912297928240352227030361819928245208428310198892944620632323527277644623241834446330164416416602117246228520082287766116522747996053435166492242663301672692044511163173951099206520530799809383524892979909619412285604979657639765018169767435456262463979553937611952247245215034525838594277830689207293304810517058358417799862672613908799792791027442005535797491396388164457376481042186494437583450222933662573881705999897291737280252709074191091884549477869315908368631970292699368726770515020916735131375112450292300612661902877750434831800319129070177266010275456754571341762112980760465294419696376105816155620080769747159404959658686100079866957656813764669284409846964434228053987338944195058316008391975889735274314923202712075426486747983014476527865716994418947217306218843012888783875678448078866421123283277587701882870936172247469009668754552828278693636875006000804783888541015508904679320178449336094563063796764219066317418905164939302528093498479349081971699125028134565251138829820712820649955298356676296313618000772443691935099882790782627936313340887337595622820422099189546089871925439366092195153700895676546602718494238683634198560247090461906284689264680900711894781686370256978131371316373776793721922262154288505772522258360852561645326353016577387426377043522921445569047468589829424354265059218054274533822867331553405434956506464404185592407099714114806271285538509408088734670252570706017997331497694950430410810405784987371091869864697991808075976041097196220202411379253335342416491898092559085004180387975210227659597730528981890216317372074382398502797618623590669626123729916498720354694731293827462596818541270810543828382990816094423810872464048456788039182641465915954873615718375303422920645787570062221658810219135692040530261714354679666714080933218441013059749202458667198959267199018406736428957338898257835069578563634818129539283891321429465455512279482471131811626310780463754245980299669291370421144256462380443935723977874469198928744803973665629817334447710775211620928833886532636572927055690578318337078650787493633623588533400017182379118040606620776746753756397918837072975182689259938307832916069391926285275545327981890045897173858153964926582046479953112049882326014346327268818578891231127555014096689250656910166249136499100359898330404828850930271504558940109751590052365624143105741471476526264520593616014522597756941027890604738388485422142574340002756951063683464916541360265657392573003465266464071639720658640441481802521057078726423879825946045500241835896827826761186026395816690083999310989032869671800719277535040212023885993187941133321989441299574675516507172603221545872006437372006165693113257463606853799329439000300735004699752514291193143512540989852752467317940468489233196322230704081511877016433700251015471910645843577437169524190032027414648021174059102224963212123896115345486893569466023733066051959600581677835607528873004209729410867275988208362979720611378638120182928076351463820909693195953249397129414280499973228988266307214326603100589921861063147293573846683947514170837526401213301359809054308585916270422678338325025685835241511584228458265258747251660201383445465574059798033296537187691348110643368781482348626040011111655223258676539279909230059202172853445126283312443514283114135571013501250662827257498739422678908694059455633114239423700928957453241430608339409708275042358520561491458711400106208419315533498156479475877495416897782045757098868223633519521539814021148206833836137079560270552490109305620697835888222790160406266635419613317750110552155666882298950656839759929532660314656562143960185918496692282588222087043356649355983360625849955276694909258948099822507961836354493318587721486998640185274124068146385873922214511970263312477324732773859509491971710289316509664166965284819955731104367187204228347513622088813216716001382498394698992079016603128403860006145753776953519388203699040420649037935992759530330571322584212557125649629718219174733535794391684093823518490630274506421969635672452735629360403122980852537522962722257032613832376304047188103545620353844246329905125219120421353442889427594528781746221164195676336687700484874072351443559961306394267798995818261356317849134617418127773872989995954904492895036853658655517144137738811848110802336781758129405397983248840574192811117903921157638296445834778920936302710677337179476364616611935784815545017876797409979257436663846979592657132424400279207327297182300340893147400300946826062430695609775906004739328123006891301206270479071099439334226966792377883388730912059272331082104146285885352664617615357026646820362187627768871906517775845312645916663631806791427556030991151964618075751666067166926317058143708209778582290347349381398261367694380304835620006685830797168835496086184310570506528404380830362857747485722875592277537079873692243032236214469581097560646383928107317455444914191396939229733411171263443978076590007386235701418616983852401830006842030492722249071606247845931282945315032778843809181404184452542338166701196437586146779922087706943294079301468634307092016274860866225923083896977200144069387070193971580194948681471762318046703847766626053271767275697796548471960630225341141126534074576622760024391799088362035903275712813719228873321176135843983110044589674996548974424537778961473456091560806531014024432685966608744446271479787389683815474917363739068798886239322067995163163676247016274224091939787923348429146040499008511266339199397897975478502603302066250363921233252596558567033764740762196649423345924149286571494517633807911819462792732587381355495378204039896190194518461115910302829531408606711033049209918729537928373014693520124570091190940402833728237009655188969070813182703831601540336596815266964589528065581501907575069877530984131601136906278153266507857658470984660275026209183438147860049187051028627115417423513026992108969233682039779955206302818894594864189865172610748971112727691597986549377661103845310999179455283334154170217797979887441391662622282980732823404527528187239105886703935436518463870764503352929141821100085199723700984337704442221933721142814547522670940001132221161152300048421509975012688902111872665045712490331018728026933385483475083781714262084974072577123359987458971596543808253232130375239182525276270861612535695836878816040785080227627280087887978579851113271467491770046100362733197836077151803549282676228902505850132949304041006962780734737249487508764451378197483352670099952511328805647539822719791880095523580202735449979036987269866974192430335242978219912361819125516177576306972126482744621589674419325027627896619950339408924254298889822996954319986046307159112490459304197498077984527730928951469945109820781798905908264221401840286131305309042242712862415568004764662224324537168441729604952550942931547601421419198965575362418905781713730174718464030783650829600364781140609679412900855677883845378897623562698328563122445689252202658422567247756247994667759080772678953733112727206413389191405152316023304715730023596431236862359393923482666017011734200562456861898540318834297626774353971997982757477944222193492106303608253390365042899318440709302148388260848876467985398528017438776833393487234947230704351529720751257986710624946865378872456762966064789979736571740556921747130532911863205659551824186546814059613988922873187206438859013520423169035808810887550396863744024249850187624929737491794759379659837897437100069452562246541191214114487555219215993624188635633705606339788430245784558991430248106827613359566412696206398500344916078062041322658892030600051552202314521636622661128818635364365004618053287205267347456310535084634013542131538804449441561080561290870311425659841497985331504432622819580427134986696174934990312801260394460077710585309829503754316610488260876192806275129450102143734600485341586749960415717224276646158716248112335065417949986156232887034968243047606157505582243535217453864111462169442846178142077092694043117004754424288681685447590800261431689210429835639442830619475442294841965145430773856676071518724032620327620344589843672367806730404033321184665981276591201062326249111023101540890563293722778656826208488763024320103864593826824018581654062451540822317881101241390740568783878790046405905679216906982062035345797586578781644814505808084818442246854503050005597228345198600741640274221454371683205766629819959365130513849345836513467676629364648572434939763875458557443383557511833738386266073932063669910131004442560800354804836915262876492383586407386475260332878414058302725546934139536969039801161566559662462394219864913762514078306083290650353146306405308835959359846490916681496080706674828443075979909176307526925621525104169442462306315341767716558644815681913505540993658372465574635920493796181168792153097635813418474849489879790068614983151584933300765750945001017940959304325583740285980023804064407335566563787646700484007824067905098108978428358449171231875565114053542803244468520919030925474005775104592291352045408209173317672675994541016803817635398926966931260343273874403219345525894897440679432837541491931625479014497410736686070423640448304911588957334095729805378338187583702537992855140780185583547833707688249629285146066955733108860874276114164290697971216573031534202598062055814425183872350942335091873383717016233974433169637234334157229804788856325355871479099616106466887396189342416281656617567158123547579909944921852820267620341224586475620565527267621334536304992599838981877003185880586872317396047778352144051871056262641043293795983571348728369346084879064883064255843699296953182010568961641909412391720043461968009493549420251186356595455239064520929599689812275227094760039428796014055797643769034242210910409417609118527205364925503889393448711819747483525623434982053267605617613270173201271792440239954020809312850467082908487646861275089265812183786712937625453278627213904536383897294241285214941805785414812818354855667774022501288590137045912127982952350820375856731816725375298848288907445977447972224467085145251486141108861735125181583871377588450738179570248810757074500240804369704415635391093070459875517239392354689142705859385507645248898404143544574181636245427153704074406366573308039819370342702846521381605968874701956627119853846073629115594399680939015765869746997288163752855764804899633979191353258769690710870863746814088216276653946777598271238133652331483951547374881887854762276262359417583625977206159497535379095208998142953521754588890245241658271657756352898620011438815682120972445697248513074709078606668171516913928589567848932701463184877977693471664198881262068430695249270657392736307619240006716326274499952457808086914065646854061929039652014250651593779632153302567941351859543572507756901562687784420542524196151077448601647690888692475186709879133889702642376505072584312376637585918962482859391845822145781021015585702314391416406598090705331022954901459329610105619749911547296837420671738135867533560417166509608296038936954626690923673000918685470228230764868012193923061673502399632291783270841422982467780500663077816415289984224738591666612860706021139366688636024729325450668271906509921133251181106950208600445715040346556217953350161676170843636442214080963634855361230165454008093087619943203472458906563393984713990154471492260787145402298888630572257651222952140707613751577286166123533535022313708508571701689118115784009082074869154053503864125188804218978276760340454447895081988753910008517158715257012950503871676026394737817807300692507943786489355866018916284612365502538808794207348023157749146205226495782101268334085178582500673546909632505564236755349427033815073200750202269571137908519002403370622473498006952424095895495378522998911938264978817140253518896305193554907965450130684109641208957727395249222345663305173963623414062735751360840242025306420291479455710517512925650705322780102185165402561035134509313907902722154601985196905197383324604851418225460547638173143506710128766542349086414826032410322641849241116398450274940373619976828648704077822345922269795603683524693943288190648578902502969486232717864789737793307200841692102855275909653723796652577262411651390792718868699251751890303744548833802520329081826073787215710090113643939555021972285977714554623994292898781836694607727148423691069620915124602833157299819421792639190576731373260495059519088723528314894021434706261371738645859967835084367893262158888117334650837172274013272500047713343841499258227460555391571790134901641741087992952839806033558309698404454986944310443476168490457482696082299329415613508999293298217407069400263057866715134563333104378663495388605958523590470140517561637301385635260476966992795938050811504982888833426266412129796929197688348060989658011046604773596726786575669100542480827608650444915200305726131668555656674384381174748304119521713647485082933103345933695350544598424039282711671450380634936768926694138853218770663890558967466560270542375717639867378588853347960834013683826995893566429456538106184870327433383635727036582218562981300907438499650915212936130949506123679956859781055362455420066618504478467534505242802352549422417136333285658833088709320504918837696874757675571175327639375988090269153661608432700025042018670146936006550722469201746960323181699404391971791740136511532596203402038941256621425272537999514769462866736990815415190892680619845959964674515473234335223973536896350741173793343639386488145094479059446610430920040307208379436636643044286061475937894917159219369673256984192208372921969684304872955956615983603560159102116072905994655629323430509994220989728952451742844360344225538151637071332626787895872573418016532263954200721729746954948251360093419582002497790378107867462981128949162588604137817277910315193709166432873776254104740459124531135894143904463521719186257926539679216994494355566171252307488812007042763268234542375161896493039550189363127351845605840275707363342737891323883860555358119438306037891573393210315535143652121782979755990063774841930609060019860969821429773495439443285120937165564371232150212317903559432504249600817613784462822489065962333306515186022240635518264829662044249677513033090568726626486498655133106430992351088768863376424965499151080882292063168949278468550849514683397501701993928655729905334666083238533494844552932998752185726741846562521993886633878156860808302208942851714502830842225773777026059951693738630681819160418972398220494856753400954177201218391290027249037486643227110948881050654988877096281414054157606725891073666389523344677327351439511183954684082986878901300465954265601552765063297896596142285606055678388794288990527730666563156302172775877625942325536476282389611319880007479855326119967942556104983095070842927488547538822100712963767376541464957705452977648037995354988952024292954119582898554168592557046537873643345921023983071015471076701895393633293290275740053136977149695429470642708710582393611056574021350626814232939808740987368395371513451986058064994642895474314862923622010161099992347691603496646133651656357827681635387977580187426313219927712778282230469838501120812603055025062279819213150876629770780111883773251026088728520866145000030588810009445615015182950520959368454038932751635042699375220763554392312762077105314258666419538586155378053546683519563221697518175926439084291840645812617170110348483583176141021768806619170887749351585231815472715543436926566060444643853883324762722643133860734390925991484217882802402361914189936133864947238289833011954144997410735789154430217187661127380861726703515972986499087323108786305208766724849727643240565267212367007216973210295862812456832858167316606964845339114068163790035555848812410645735488241810350648627153561044194547314253345579543776258739938502474420953562653536205894509415392288759439509625190614640563217439608820246424915172715657904002354354041680467670641082047681787133531341812020426477098863597036868178035950122919006043173528095874755525319078545899872480879961243407768726731931651457167357382313878190254514499334291150369996918195332549588638143621801905995137074042186681730239635055590977170062830331160634343424539369204459551898632308439078900643210503441819584566032933823757239166062051607917637456344327773212475482574257320219665747528438683786231188604775836563732882246335317847689071616950442907522392178275744492869625718893939272772684660629884609564027225745639535431793063091131490135210560198321140871500822195385254506809066914420316393706129439553151563953937347259088000598928805091762305727813966827432653297249969895533486286387999112925579204443859207558919578533589842831839090148964122171123922455521322850412770459962800455234570317832754239661845826493641690425178403163060956094530532497075963350732492266229937292106268832096415037462939726522966884801880117178749934689509958518331183105170880165289828406777205831149561579543240104754589271654374680959857605182282261967419363268052900004072224761973669289761186105255247802609377424459295709175881747986502495314634751659846226470230430785346889188188306017272506552000346451434575129200034746675044833977681682535929164245266707921021092407644546453534292081474507742086661167634990198715338481873283556394024046209719397785352859752681826937335556130354820745324442576709505299789552867099677291036233795983162021938014721124670983086894962499921449956536779244496113885880483558659559414689677469814512979161666532608820387163801472316049929371255845502236235004479273505210704146780058359166439017147166359424087699593622490875644158217866943935860179483652474057320369793029520771813331257031635716965557867865665864288580141132542051331917636664435387497034607243482888529799842286158887298230818494103468680965068278433767974899195498191386869330814906794908183933376919791383492672705820973420088784245226543314332694452053078013322358650455180733280608918657022561672577706009964610433065820023345370324542465113170977773634899361489640809456616038746689042687513268661716408343792650726471616944040994267862315571487919535517992896709265502662324422719217767878827203548884089510050445973561484369363347469314806556050174199560954798299913570047723355989358994444699828760690490641792592866928768621288452886800122870006151946627295139642578751313919354837272828291993106558811921473119671876524263331677609200327641224218635669994377639097847198666383246589439618731539177707479003311201808954317073106560921222749983736369978121050571637051230542280364318610341242280907013281635430493154611355999185811477233631164894705074853487502325376799391881687887933276264144434713184123099434051840256045831904360607319658339003896238682624575308961175121889480355718285131035007606930072098554069641733083874057449008810241992779456113414934046152787225502344549760888440889146277043099662171651995242614731016033396391535887900757977784638100107891919568635756162638959647060468235732859409738256770018965068703157485596620768827128966981569802171764473130809165696779002068022626745763860293249347302370263978533926103249153237982288272207401082106003929792641174322990085977640602439815302926782559682867601309356861671996582900828297770433334106547013097639184050504652733062948035749976169407164124535467431170579773529493111696065085961368416713202863303401238642604154559963629167551309786503176521538318251972071774160096722489847598308091536699825771155491451386288231831455251728432463671222725445619793174476963617025276357771347949545401620942561229446894927293608856125524372656588125003594452729567548190149115972051228966984207742986867763493525989672987600973809991275295402177842428141292307807938941384469557206206825791580476787044555818803773545704189107086025255141195447589372451051068409555809999152996723121045048507889412878418735637379763278645426265425815707961607656464082474767978882986780128859379394362222315672140666628440083711169682809963948856082757177618476024593596094137253268531809408790638592401155424378458633028711393558403414508098990510440081384801557977451399558384281786819128670953856230378218681987854895026247989489854084728064672754275744510918520532667007173804985706535319479028184602185352078960150384739043178051236160642686784661006793919008789763042806609474316566162463568731068591109267510433812215001901700223426063466885568070691605908511011572621132180965214139490919236856793987459272344375660088245702989267250735129488994091715078628140564481072931609406862308124133888330344338422706788115234132930210109363995989183725418083787578272628758079442706429947842040075445627174924284109644167869272262885684755821157528871869886269359899320117011370764382023471301762628748099976817739305306480363605511242521288937065979627497714962233708700567232867945157709200127629497976728842766461763090968937132769861428445582032154513583524487419987635460459131738056467422683402622473385358935037442593263840835343623581151872739827152547172963996018329558774515269287879495825039419554400532464960804302631638211505361015696393916316979211297641534335557130157942002360588494209335127004762254919155930102364723956379279811375982550642963413636644037312251247075327753816344413700936495976971252948876010557587711942539440651216409468520708155904497464420103657256676798589906311421513532930930586612298928621240140439711830150371779425718416264665875929398914430256996069136387326363445875469455474821821974681158171983232716398182658463984236003045826785752486209802055550217884053173229258869376516824229000341512247330470978139715537747761103462276858345674814358342010567546072540904447797448706202885792276154315628585847566080871929051863504743923477128666598326758308549680481874532620351139622230086969585710739226781486736924936555402047667512783189639379982431777551928109716312168496035031800064666623391573205310600158849329765746345100696485476708561005388077168352019563905038665288797519036718007877663376218618145901992229682308115580940431980613774585665076935949675811782082007432081254881662078151586888240663196396655745570718847861937719717941391862937114062691988052305052721316823768299980894354571630766479347586092451727203948388675804871186648603364110038946514635725801160759466166294633613152129279094026097870627670124497919069835018778404946512114491241223159677611664120247912603526104721881299861101902725549748583919811310218883217214697067527788642837385923584214972761383514597883295611407059849999737987227312611697566352036787677527329137227312495493832243514426043959273862129837695196035608366293694067191287661715601062082705843994130878508143341670823890643253530999663448497962717751540170790800968960038766978503812868621879099760472050402219472864978030365407138836852323896316512968395721488119443459428748178676293164858860008734566958834257588942688599441457847433247723265416072273448968240188152199950469908137168854865165277471241993015683502948076313861818026262080749497877934694649835322627597194539990337770616216879977868122296014345665539573739040672227689961346774143121474877183339141145188491477475176187138185234766392434176886389089861185387946517881475200418755200506755993924966287149902864967537402129416261066989537354840265857040742529544563694694307296626010039005780440208635061272326660767608466840809233129672275631428828179981827422742442441095361265069288261377929822777682870931344439989944384716335500741683138062092482610202811053199951428642933390083158992262022266101251318544161566299529119475371810644799598011066943241381536443947214940273025046668810321075167234467243200852913224458752624619330147480563280630893972248856188155691422869618225735324140077173221178592005415414152981114254987526144571653211497656546310931888556350161101639249584740723361557958545715271202631411358163926006385323602889202077642206394203556761735625861049527867501120894241859636859995829558414011207602104560864009217160334252606036978613923196610882292577062612925882268992272740069113929232555832434426016328573898770986371173760099761661766266677906148199236283477829214964624601332200081202739148669468289633173247021546912078043929445966800045422258771252868485102240521270784886409749124358866243941286195383774027015462507585977194065253465645124239842385806095511627931318005089771859761549209718647536686010508327477687708250639538072833777957341623870208029435318900953085632276468268868034845789032398130003516101055481571986116136394053378076513934159392467439521090299821858214331231936668126725234504680109982606387805160677208782686873479696426499201281683621449491756941281668108018096132152093411602803913075299859421785357537378362511552196853675851191575877416153212533965739681847929611260102709162419557057832670665701932328640630879452615847012330355033452573706287006126965429739716702447243955554400628705022289679950023038102271266194769464147960469987832630408382762202565546270607395018265509546688427109175866942411842769520788761960839672024331059364032985755693849121112305567477061376153061243197527907331241661477001513113449386829115448821309212403112821542681905059804658478459011908953994562081426661820297401394559944806127255970776444561843351098723875244815805660004736404227401190553599496282279789201053211855089498070664102928190650736569661110311479237435065165131555175993123126613145293725076570291770119305231925400319027353459720721796895790299000178839427900721156608033139749769308097224465219977044222337349202172645476823826626845989110820352394628758691260006660782781838293437199284707278139918872252066398716318638890221782795384449720235606283283111204221372022798791713529834938027708483247348805827624049628359335525967644019729552893620209943816606212664942475101287176951160480962733745467663532131043613368410788232479250300406695060763709906466920721313377782773905126589525668572930101423799268530193344386179534499463707039864977240677638060555233085883938039144962318300531796495526902431376243889582796436587552877486351984154730334715446829483225360922201681649915450371037404450608904779960129454722581263512040824729713462616133387814759194359686285100102746062261037056568976180291938946815126229254727704427793033569083084312403681593182141640140812632966213678560988637195718002335160366281209284758613751882670815944258383032041946042969838527617035633688045447445149716414793650615116910313622204127513423747800933975985388782333530644072923137612522170887862096566144055133291735166981618063081085350235211883252530188085367107998223310291439729867757404743911146009840819718829335358401877082886881606448474772252278272321561312021992958686460788279565304144895331242659636309275810012545956135493592045144027665380109005572253070361182469270095824280121835054812679436591993694483298139381099914749851105424105928752888832703921820574541486168070695551547047374640567889984466017275614854626847130176088599233124829978075733955267672895635824220224280022532302978943614038335322304313511479839707189750517136348782149100443548364579399610361256609070126134610742530496239031100775484744127991373176307843031934071043570115626338015822742490602410295514936137375529653542157916434284541158321767746248081262373279304887466643039084276091890377802248969916044326010448282090058741291231538711048520454627007630197476364500847276053518415461354242345910029610207765956862600232945218425050130525459632735473818061788039636805965807008857067974690697640789186807718238952001404714758548444296382844440820168237489342752494193776405009272701391111935057469115576179517299354065239604740937800653108389621870727017731747872341996905892588890157196063041003649451475688808787359034194209680544041752543648014937263262555013202537223866637306283050469576456247149082749442844485754207752603550320418628778245624923027492630354973652799919242910871165337704617151241251118327406790870241631401951755066159384919271359484644663958253713194993927207539934972851964368546253165420510334212302454759862099546240986539366215625963862583415005930678488939699445516641761080347293708916500578113260381220777407162140163550046594958296921519574752052693219035887652799591512576638239070217125537628337461205267881125179164245894165375184760125996229114312993058325508834843822581745021065436811998595491990448800293709856323346005368497267542718989389655809767212485033911568531145358895260311194449773176414545217060198568906242783494987919882793931611130469450056664270034101511805227059775841634475666359118440369094841843795670036586942506138063328818093862696194064302123613896206349915552719669319838520976029487445482080845362924440914072676453758245168943693882936449018692970284076937370381222742231082492760625161940367195480362905929903457760977511236004295061670325805963944109592421146303967557470816020543369882344173734770158994596262274586743720850275236438413031100977489408399008262617305640318805456824622072867957487128778223049949882939703325626717247387167416742274409285823097594213384545804819228779888232665935181774005443630133506761376617601325504542768380742110608523888784321091168707167582318169171381133901991531152358097867142610683431925686358703084646209506396013203387770678983950309319781987889321850068621945884395699309921045022652432652443442767361834532266102153290431648442026051300486139079025697436693528715934291323755261289971944554247405841103094693794645634746878142044857465477001354278677433064082575385645686985354697276989560169032443954612644408229857010189229668708982839766067335038986492752623181045516474179290167898715830916677703345140252256236404194302238014232620475775340845343417025501089418610994367923619780193329056941443424574763508765398852179346771878785704329403700463334030500060070985697103874046548719917899041716488122068755909679790587690439924068595270868676050015391143665385877903186232696645296016981263745131728268031421192700207859740848946962590675278085166864023509136405579219009644922857132586080627122715070149902925931073772234271459543353569150698808666487018092297025497031728675545868667485153794533280743679559732872591845388642585323456549347734331580999133816041265302988434801836241089518390823210254661014516550698888630475777974177155345305232200128378154931670817564601744964367776357414701084232517287360264701379163079520562205713872988992921683103197542193265207828500099177870051658876241976500844888257641553272084201159427809411024425450856917614802579820857589714693902219244074218627448962170669051337267822640214775932866309604870119351530210906050770720669825612255899331208968252671928237216997167361977319138230833625662473144330727101497944041109635474026275608612154384957320911017138368202705116746667356485458386056849374418276147626081359828636428183955449645945934212622803721033584436995210921465681659745771307524069306028118026146823680158755967534399951992356786226067778949522815496043070984150751254339280143426177798539874381093651071367998262045879741908460762606985018309915265677438676113059951972968545222781433061735600177218110740537590041466951185824535665626131594794924914116835140994260941853024054563960106670701270222379208119437834790536491397019056021214448651408820121175465568701968136362198634890729159547350084422576114285006280593713776699233451758826665277109607485859750339768890270444995343375704914369774818821395142434261832541248048950451172374554978856391728907540919743541685235980003440638655946737181945610798330525644256855271166683764011787023617011171945791171396483232230822070672289805110905892030083880162092731607416217507149079437318010963203629215270973143633102981797086820142074002733547181950622776890315222989242073677384165706179694745546706716788499116612792929378794719404468225277110538399066742061372351774730386169582762625736196259986907517567635440272446211968829761649799188497891265146665365691074557396658024066380534788998807422586080478515190795753654400483208410749406411804839833382226335693848726914344365613675559112645167982956666093415518046763263395390430557926637490238517357600529654593096591753795333389594585344088975287334100041556688316859640294526922902656971748912708671983793049228076796964227649109414493558452437455122466506156886814190671841208794056242286490370526160416593435519247780260071787711156592429208159952194745463052878495374930469945408348401332209604388571141697793848289043816346414245267788256523681928420640451442641845481954295286170363451854791616810552775152155946261962524687378840297308654238615354674927800271269923499440949740612048319659225479822741284000271456496852085349389990844105989396906889044662310690826308874564364001575549991332799112166537577148398585276481884233182391964704721280353941342057081935296253142410035654761839716462571157121604437186546820696913784778295088008946915837217533521608067366828457657409189106750691936907345258333654017465573487629268642109352995461264766400577224693964801910375799295498766899962901372905181005788693237671615810223792310590624591139510335961685903852250099606601586532814451535957112506461341379701933670051375711161212780110624865508174774457428887779611539980312503090131888864702440257969555217048142042695054830103714323187794803673470343497862462079165488129646984714579335650808939334528040755425194648525609872471941328710456266399767695318747670514372099337295158942289820609233439726291132953408524669623066840870946753272874385590999039145662118428675409286632086323629263805477804875412179147530403848395179277555121064494821317610950515555531724744334280842197208300966679791367397232161856802069018207966693036323650983088069825866243490439194986445282119302961229504467062664452746034646929641151004299938470922184110902606929037322756310968690574962874551136299675830627983953820007012265808294712847903358877098580231666390849456406698431248758537049142425024266066969416658245393866267661029411370637191635154469139314663839558422732450800920330185279558443214373439847010350942900644524943578700553949066503367133327926080778930611411486399578915186803259866885486161774649639039181332171857724539399098427683052032048591259060944792478910431621998997191760761891554324775417132080860652491533170189731930750025494904406564467829619224613061348823595288846087568804222191585925267058743087026816031997397754297474103515067461924072273485791632683614666099212397916352759260182997991374939909460800879018619511555363289791284207413637929767239943671524406740087114561369481127395183399189105545592466557304615309498630984552535452204952427857472566571690306645836528849513173723102737743463866496615779302207820171694848220184937325351285376573769303836803289577676610561338293168639681066584219352845100897796829397014606701660758151280976935863166251742969950310308567241591767951828231588782630352911302129015881215613157187548027825690116566241083237201503185273866664600751346605372645061519694361906588729402890461530117458661347073578514297189548159140470105338877149031200602448441630405788585643531963622616744018718462372052490442390010291083592807501382816394175317192502859039155862962961450070556287033692999242935939426702037327250168589643141775901653589814780593662272721234338652657644281060669612809204336539233827680731185829365962606822928262512700461465923808212566732624812244326303978374581690690528351052044122388708850455782429829036635921241146319243092769893548674206413172948965660102217253435484503458918275801706645523420127112390507674202353979455561507438593516024685397897706966848782670762008413693061722653625027874429107270689542323961869654450091047919784308368765862764622290612140711537680441542905557520745837068693846173291541290309092584178099829337984835071581251947261694606247182498355891255976464359610529238772624047620940997073331961001940342774656243393196652989095747106035676197928894408453189440172483733596642631560450716820826017667503586970688310898832164053135936585305969585338105001075735231656316987222872380498099826689274684355455625590870109078067824490150626628055359412912236309313018451413117653285487626644337263891618391331516899192023511976055622544713959227854345570546357342072530293607649119379068823129015555122278857381639928113012949389531795603792240893286787978320671430328459110722934199319903842907641750912261901336334506380310323618291125171973302580197760200798391983793541944458511690379649703055966491031554023277522191805704732689533633533930023519028085502455105566459314788080082070509517475930425891494918764427690084393388978339912722026683243746987160539480252280347770262198206164528091172716429495923246299674379245634363315307329374798737815927063870609015979519896448681511641993165711120624802775078381050407010036034804361437798366347943190046996423658803117561845087625632985338386680698084163371630016396095723065485348186178271077197266615428125138539130581144920086875806277554216551676166119219140522251164723559576062178246730181803273082854550483276850000480333913928149881356273238921026899279437306942781627953707918259001029262171074635311264262989511869658589104280289494512845868359692378393866102086381033619544436773112973377458618509672971625155943974607735788443375794505762414317011854800635792803387914740201078362294631561930741219015013497163274869549968793015720185158476324273238130387200679572443411646328168135416575831602315479686841658416443671570182790343507639030715163841071427414155486531218555753848962152002504581402132852860437568743252294854077496235048387478869104008875104193590899065832373465128678140435620638392626362871192326285056134372642577646968069020716446722001137936896386702346710356502530857971965621713627205516661212536585631100288413568490711507501443085786258974634648113394529239920314497512991025037480761636855084442265223161727343106512219068607029579696285278450126088636821917120472620619691277442147077551666436985200793697573360797626034072338250662458466930889413292100242551708903967067308479931466164536082636534598897129376689934144547857849203259232829858120695307886913703829856529607243475677770983216874991878795915901052575420232380562453676984428734374054475886277510567824861110201437430402805607387370961010625155032445654011564559484145755314134754761266321260905620449366850884182160613281513684498802303629718252628909311628002683490744303422007227757081576745966040202506323101773737599568190808852707672707197125880434025036857013130333260589363839692480669279361555492805436616667965962972025319405456260125936660329524011745316322664276231989674881187899203540396923054325173659163774747814627584062895419571032473492740307970833412761133289596263165201734641529940361180424805440865899075754220282935626064342918865337894081499248268449790331965638321058000779882766222871156928598278938785034428402551473036800786966859588054499380282248048160713174114750901125121414592816560633107194431735272477745489219420672925784697514904441540071184688495475590926740459460138489390406000876409296718370626649078365516455937001013653671391533368552036267488240812219797274868745941846957208780223850802018695149881600786178522505805498399208386435991077504519989119340541756146684401091879772026614159448606521394709551452294738642964460725198163096756208401652321856059655860608297757784921158055722358771984743047485863823865749646503308683342306460724805058494456168868621413011165887517855591750437394916573167912578214424231120668369419112660212760188228680391108199862901239086711411685166287583907800909571003582989517405973079255486216956531252675709631488083296365764695429013239578695970943054000471598344268358138644115905219717741128022158029768189279049804768578775416010236473852589862573362828093346755279173714796396968584192799985792796098941873013846757209937477132132566267845247615210426592757426589961950327568422091376910968196317478871761707720861929980131411569137358753854129733101308664260213475357444785390105498773711256084699899852641549264605903227679175787052461278057603981534760362318807920625750849972064495571187048663463387708350207387786321164031135682915095849640461561689875430213565057819392376295245196325540243220488628148418703064586976593506114248990568344986926435135656101288533590656923166336428911000117947295730407229550207317464863099949916275909695026743313978916957566165981092012509422149823284454452103956756477286722522099538498512511070330242678342932048885079441507571305765618135502443176692478745478654403678149790532839261681682088859065320208693654771425344728298753477989091034311458617668637393526774095414038504482103142013810228424990957583565175216272006995986942680460886286267686093159394801257957050513569774475943297640240975450884697003550403218973996323621715803947447410035313903210441238026308478942189191566869908494281535263137238566310209576564679452611235643979494992666291567775368569635535185045886760059117812004382852388604945134374648864603334294492414983807386530440808310364007439463683821138146655437478374292673674205765869575053110490350375368333965854955749145310007567044499431998637149691824728472684185963144335760109912494958693586585841022653750619476684185326046871880405296819094642678394964262798532062132513730707464957739721827319949138793262270040945314697405834213795029986713185468501609950001697442330403608440656447600439984333789691822656658837721641115686234675933765669090320032791391714590106163197735733272555651113896196487550953591672582806092387901978275570854613130649652399194319948035330746452151607725539051968811478450372038581046794519670755319809892096789439357842849229486799101341638555336789024556388112803814085226200823416885461026237418641892458139292724527491063853404270760244867340847165322268130124864346075027198639544088210852561277167627671255427568270473356457348167591468791979346392987067763015144424491288886084888782848338850745516182491762736293408783819821543130031919681408294923391635144111663635614215373105982397735872381532536176329772836640609038953199793576679645039522720015009949659452276027516059591341292154426292591922363063770774586567569607761225807649032525497400888515187703730803897041943094306105887786375512268166315474394740851347955119852433147085549817171970829905215342327711144749952632592815142812245067415799328470252673665498409454465848447988736284804300493613642064718271081974490626866438545482977286981189902600880888722066338390899621572456505917281572809206533578194238977920938260332482676200555892629331977785447759324624080636890601845023597239890191795231882064920396604833533504745029157848797578600044743588828683880809179933963453499756120201199066509700140051473644572821931679192662385374476447417992697074627282516858959083119360144722531208208981409784648393263279401881706323602806706176971189198979477945502775667484626871833070335794886838491400042252113642432362937862356173138837546435865865308631545681377079163405370771602782009770744977983744928569295737334296316423510868097140897479783669614126135772175036738331640587521848324438249478935479782841911680029159872476984960623638141531487793131356777551130757475981948463730647435682887339547383806442412570954517271518662287185278179535136533635046165044981200266551084026224710266831066607471652470941419269231914821701529871778109583235712989227077293525156290525056274726694070264184181029031144923402992730270213388779178867241238665757810281361961348178045809194624472408268166088548042696471981038705038892514037741797863534791060532753771366503323512138299662976051067741454620865518019232227456284059179113187969849843516369694467689111972865137633899258119150159434776051496037202481169010828129322783173385628786639093185902198071992296051174826288418747816451903625566307536727905773180323795793849478418323440455214892909948400551253381989127236316083323768897431508623900337918570244421184077231497771604328410286821531685020347782527829158572703650658130388098836430992051769352134248036602581362768672646105894313964013642611468057011626936117200407506654216526175036494549239586801054423670008317354037253923716611092835417500368611269153477724619532951599700987892094353782449393840517313662660542629575107814605627494673855610653297230341429670859397526069407635632417216801928711264988670581349629555757608359768318627251947665231039192726319401482585992085312200427772723585488738269271284024010499500112337000934082244584625081604026665811081376856108846036286709443879120422316601200366629509044233347248548000515315034492861209304528349781638869985617269143429094299981457030470184813760398962816542350970050926889835884064099817089879293210395181050309650335907684975270889530565493854517366642699499208071346540448752329814782034755655756797585754979418015358268011562573634314567017985397892017346833480085244094026368930076440303533452135646265027069242312853212339264578319468630752942511816219795319691716491070807836311367808600764726229550335395626780140346382089413092531890579917182785614863069201114311046211473108621149039679122234580473949394664767047094371212270434516616477420587296723285194003166371111367932314038915035283718873124500860851144187890854945002723287081512495919113047407665930421716497998505754070385678021827765173623193170188342007541323631879121421296999585740276520019210911090929153149392145852829260088193853140482716545978092042525791894910488842945299278152254656499950903734540747765765276449167381911256212400784275634831512033452178368439540050813538275621168741906216274358467199795510846307122857972795538043704515721607632352145955061725059622177403979216532761867820373302212499772249075611759489859140378407063335925289195729887695661467955067977593460375438917712051240677281508942322109670471584503612742279615466317180591492790350949552707286727191382214728621969876587845090292264143621170653273818078696901627304282435756755616420233110374980019999612981437703140227330656289006459640357413028695808582364174120110888586012306305081161518401747059231900995441684160060842487261104878397277791414961288082769365613702553400844508492886181068346541210863275266181842849411467915353092293157212687960800179408448464693718812073442260170567135317593779707478914789628691010071290023511723237923738105218962507459911951065760513708972809428329918605603816760851280980924222144301714881625018165538337330970188067338042875612843315361593803581502253738326783288693326418077802646669713173132046906234618656867799927172840258094450039670753092148157426471843231783893474913598883672089310502794648339802365702399136474585477896231607258425066477441340867910875660165888424524877801265546942397816804430834488299755815843297719453843482891064849154977369447956628521763621411048754168892814541573680738921249237342264240604867459884118795721439759884701391114516196999212093697517847207511723019579639420551571868516546948055950520100704648996916510282989599024807632743194943855135997461849472911759861945179606683582823516055922699052204003826264341810244332190769911370425779383483295020907319850351874852271497940605520489650023757877909559061285125491307976472121757804818867344983317117224113243220616436181229542760836194231821530398855175270644669240172566545507590647568743976770620058610053682723341649802318135271048830701316573602573538493295126284598811534077419934607133909993862734010466067806683898411115315832729481731575429573289236902208322038337733843224988099874603836255702817497977917092896801298493419959727015814492501177208677361957459736722269506399696869661755603094380309225987837445886921081400319313943675311660902881304252182760328519591472483882434614427550130993016779920761331541975872960426769043406509577049786627536385802545129030629870873523985972930872438289459505193253322493179752224616889153496019765834330289884405168026193138909988522151424968432302795651000165112417838533437127065281046255128778402384060398959464044097414849876931381940354582629460751486070378502912187339584324118656221227667358397887019483126926229323431644076127950900447902732855796150056735994222323729952769277028246953729370825022503320472981873080979810617982934078844973085254291626489693578683758612967281222076168636072097719049208073863846465402366076165223185300273107355936393195065742453957635935192260748808620160441241810986424498735089960339703018812909243143256373220863956146973369477176538408036587782165418841640500095165350150525690792908167927570254405324904521476257597243930567679263121319318788641925386079918920273692588671929710038107116120158252745220422377376935931726327464443378573722385939635972312018788227042816761563008568004205926496172936101266502269387631004157237574472853182682786608146166939242471714507018097358231141210976285248581576116261275287011625510269374582293306356192156882418898443825291517432248852857558166778145101700397070183727516532478909679242532402749634962703073992500703235714429585715759034466965931186788228728400806108160421311400287241354523127655576190369848897328594490158233962792269684609629931394296495268871465955563474404346555140096553796508692731720085515646131187345647755647572823508968650148200915884050801976179384330976487440968929642720291055122452964901262145572948010180403140302200819425326096240649144976987603798381929540373512658068624803010229560543821499167938586419036210770119657291766182246506371074941359440261594014309122887139441956886987154639719964968799187451663002980363803629687175017858912276161707552186416747628071485416577921419850337475747861264403233155391166815377072923588832185091661163253781812367252383085782929822072648841694346022554790849209167870672188476782755155773538409983751372659176508875881491565484085090183373931763748726131183180097746780639162118665795687645107930784876781302308579667910542790885602635293025708382361982952242527386432995455195382146464282167910503035239492503294611841273886805538265848859705099602551100428711841095884840488906152067447902798886061973017200575575040108931509817505507135044727096344413547238451542428617744388039223876947547123408726153431010311943235587323205602084812857685238871083535277163688200465005728125588144072049931666960205954025475242639219804528983527606373557243523667308738698094181943887419493000586150191893210090111519537402325460337072182145492447435167358662356558793101795734735435058649675806831126984815510368959926766084613388669711927150749949469393583276983493845070686638942812751047717075902893953591941016783039385978453366742960064147479491595324710784254604791526798663161190497472954721620966854437365645563946559193159109303003259850735643904053510756012701820653659579973795725285938599061301226801518749112577054404219126791719058773132424083648828458596555533279315155365138655988705399105210157825429981458142442023318049462681848941239841017599381797349003195897900243735624091638419503011892948647906682576960046648171141758185189562076047025423304771669242174295478471594593565185397824187957687974496770915134303091996129129751557889548031321210127573284344871308728383876149475767308343931605655695030706827424307374105540002830732452993776197283095062050380661854741900976056220525334972053916273298621320890355383348724617235256923957856436886303581506443945341604366849807996918231217506345654388568242047517580939470897612464868663910356065685431237760424536828747550241357512073164227758586327204553978951096320168257360151803417862704752509109779821546961750283247319997638512167486747442621436652377369410397290558371891387872671957888152328078017593782863235256973102591630582344649160310929362631903531547737200619568946573988366641926981866856527092036449645721591238877693926414590687877007016810867526668861800319323985490120025684555899564448210081368414263456121693794597236648321236196122252968158698046957977356955767522995190064667178941861233558530238297487309503602705281752803773898979046918832388519032482209605774394615147959116678105930448415638819163770740058107473122710476151176872414138131410763665293759421897050089093256473444598077206605970626548712561689719759512995383594210456027546475106637151696864057213583401800078924840304072134036941811867247538077977328118822139390079013847292087379921983726863196519424976461641347878937470705175735609821618831500793796779851608414097553032664882664539716398296744861240841267001516284479476064180174949024594100701741221272352632356337645162779274944060126298284060347146621480178207537654908849341952689855097134608189097823918983951357909161255365470940483871691066050098731269856649266450807527970995960432178949020502407270956482687606458280244704401121730870478226799115466685890213070752925740634710251092281455799262544685664078093069041827806846747126754011023141340731177542747063849215029679187569773586201677755796761538404668586472981329974738923786293279731132242942571505834402122838420756462065074259839468072987354826270479907924864292248714163098826632059497140569558668558469630309473095974568766874087447872729620123695168916360586285115162719401881729269974122113349559118167666984540092536849071146818566317719471006725011397527051059240360533243961306015551105600898837116623012273308033258580961407537027618248946123233632316516859472368880507962741965977773914103992904378430190860068352046162912952148981284061876923502071478120083960199013505977558651731652594235809308207134438821884503046272801984037459091630351540830036153741786611823947287645914873938915490859470172480309995611746350044014565094996743265110237434007194005516029304419152849195988007148902289148720176468648783901274294208354548803707534401183967326866596952810376178425182652262768404560936229583462590358019611876614170621175705679644933149779218403946085212239252028462425412248238811802793668940391251373115182954168722308559152851861779244739270543474875267127250436719390493105254951951592787371462318581323233207596640823064197373917997927879067297315252839236277549129607715053639010353103217016053526936128807013358266378222233936800014845469499483562490243432191685437170056570812154751257143728251541998508010159979303744590439942109083489563611207897088844030507774830570060470372333967097349876282306481543654496717071263823248057267285394084102978470704269111233175631963110937594683243428051747893639890210451203158003032685805357623174104880389461548121249450670962322534520246759441819364316619824424757716453800528317058462659862822346840046501617371764421538774169081449845852850132999432884121521411492441928571310474877869644176348110664910270625712804503115433006411122377658806126636647318002265196893234923037642114203845709147599047863327389464778687150219166289229613608159392424599085634837521185571457406650178723202332451422196403685504037801367683254061278188354442556143903532208542238661952153135546570540844489015690933814697342504038956632615427644652234919573479272975947556522194805371220517794074974145553156202192506734602023391395973674006803460651366309699197955639778111222676815515319976118025314105888895581594248301947817694387055331948708120632158621151101310608874797688357978535783377711985875919582960469434225988750761641417979213682734209474845994624381483469829226265929941537196534148573324854198671822514903014031144621910436686690057921369438720024944471404644904257391094729132912317244895329740887400216731742194085330987229343128460495317621365414485895035072622159240951152749126757705477109405569601103642422298405518317446372091902871643665405648145331393179079433628748867766062480263561116216595170446170818924650635999800895126167610097440116689787584698185487930643253150548326162760442903683585969807652642130905547741158239847805797621276569704466806443112847005555087875410398162041192184215422802320820113949898368154562973075320773312202558153093302309784930500450061058891325931823243492800406849263085090911714587260387565387194899407575924059665906351014105456938195045614225468055170860646403937254589413607054166409889832117647708418851330273938552704599834855272902730469759344106535454987711636938346525367177526871931670506242885681289471400072536342090702404731761397928750600904302513936330291321519911893283868260191749620797320437577967200943003591901208342746579663843433491032926879090778132238164499239734269942295297707200411720413872350829470190651960977466868475110525797249178728183095968200659690390488056366085837270000751900151938113131372625560627298617545163267841565918361081016059101301577055344621270586298650357094594994096064477365364073761046089959487404320338519010773752315745720021067646237898367317423800223364081749317402139562821775601890779244025745613758107891283349584926778819417112426057699830696808460109077078943377217925440604099561793559406146143580086164356895570592147622650363391047562691810410879998928325236393990858584927674837620574116735650429375673997821582092328174657536848397461067417156503234879812551460611025745977899935259390593451128075571271839080688837143780117597635966020981313708515757957008783848554292819100340132431949002515983442174807866299017282854706046198669460278145674059208164598118438500588473525770506257513297297788666198208574451605692020913845042921018327876350705932581835273279920918398358827238798962150569292218830771680837530188420487086625305006624647351543670645542173537874804212074973061441216655424592901228335909861958997847806652223805657677607015535014514633279287574083385429027376967423023485984554881137868652716931140403235706717162292674377026579359381513763723952196858591983507030822968415244254469834100668273508047229613536052760525141606617237854943375297919099663424861034021178966782832615986087077510494489300823363327636513654826959493907973579245069520136539638377493745708524894227503048131975859627520595511196138140016451534744778226761243891825717338333664307315671517244815756619444535787677411531839716550842812504611046044035701255321390934547832256089342460837552997800948632709711435288046498286014421224271013277819115712428942792879760711317044283309381285759743665746753396650095040520221072189633994663429386467035062542046401428810898921103924635774975114740592992220310582733242848741052283387341148695520581745177957831172211363385507421461286529260018140385033959418328796548449269632393277986951354204023121185118544093671121744563201070009447424128036128940630103108335558877574010848181302151283295825583477050591786735780511702091912752408359468516863090783485820387120942427676787113466609850162244634707074494011532006579770632612949443697945278457784387973280667261703184670774789079191202487636157734078333257453491049442094095038890514457943089291615221070178520188221041815520665907980012137172417592394226754838475933768333527339073610948348038381341363505350127084814200954558918768839767245162225744841070760656499751014757741758287961736189743240093999553097495355208978912039804219348790150147342877613409265514762980456235444139527702399748520203495583966491373361945744869458706426645529468407188105165570620352702229322054240669298158564061515834076272940647114953137878266014327574604610336813061145169043002377806316440338901782583429311257555849862276423367266498650374608728352741913166155091944014072471747059345886584566715651146956386738049977212407927898000386505492194505521844213952246127797637388144690413258271196019871678444868910068106989363496451848642604837038502409449863052849258613905356422992540603750558486287415567980775808537727737752797673658160831358594505104425470137912684376420034769556762041751790945358370753975900456715672236500049560997282500141725118821419380997990256234328327328437312197864591031225087556735001762123939068690699250712803369375157323212663688259068952907710077766399603971315891315045572415221354744601200451667074556785322533134398295753010315675549203072783991719144464601559587573179236418210286899071679766121262974712351639997392780283943480691499623086660257260174781642688249655334652957015815304080265406239184496252540908220407913962609633570324574976227217543041329356370497636197352393879220034505904230115992067317683257021308559964248480000816913875965247548433064584577555179893968746509326752491342761601849575685963075655922657009107892606856003492110964469978926601110145999643700101119049193459880153251473820253795613959285894695324111645996950483084773601100502774507325176975627125266830369362259460271204247509199857355018995739079736035587159833968657979423248967331800433543204431737707538791790087318096211323379355738571308956791046383145711146519272304112605150138932187283266036986925702092435733973573536219781165940390873841198526495106361326600100487920226831457031117301030349971775313934378138189434399490711367616009583507834479600055643712105080800819919897610123557306009600206781058513530340394267595087444497652883737349549619142119709649276932567051301126142797479979632260064470694862708624017035198267271979469697266510319559274671194553487961373286640272085602559529695055226893095984547738302052944590181997350786468954254443976115145552066837033475219745713960572420101904645171808440254979208891972778165075697783931229703958207175020715430141940290058136551841089245692981814247843578934244883738170415519027051511035830588476829550317704973000177721723513707732849893245160146458706134171235574543303445133645759167755454013429386928264596552969231784347563024207978397337222090162066812938723086454651539187359953280106229294943671120095698458563170970833265140911230646266518269656699550536480344470072111238346578191246869011680359684803232113550021408994584194680593723615100257677584697292689445836433833615739960535183143842941952993562528885614925815861331938305670206091212142863391907562356523612205187579813327902399346869022213987650094902662240599739950278573333112501308078165668907962602260333648517783565271301067136393608786065734327653400240930078476920996516395392023373185395536142186059359307275748683010176410159818743849322834284709816053699659609828260498314539264688631476514253289453465653134120679342997644893764213581235817664432808942481476671546908211697336398287209914364754201669122142411998000685513947345610023510266238904044914865730027857655167423324268134377197192358963992717294690544023081585542133543681712232664241620549060603194215760940137755570759875369447670856665755847299668142972130964959315751743848952933160166926653667902829600257657106368639391223566301088223339335571763208052322569178096499949808740727324366617502802455095749121053199593030975752319183660790849042673191194118825558583735871130969599293536867563030960648979755212937293343807396495456497815783840836775361228194324285760863043963535642265670948619697834461470113162261230878289889127027547495885612282198173591904696425797844550375993850885042210287627104320633127814254169701904862259785399735441765978656674340181923792399604935498469138871520365672624713311025086642782771966311225964644475228728124328839941430715154627412814609220904132301843059497948589162556323377862680601771767389308869699703739901620109121971978544867854113466617925902829841446488992600124257393868615978506060720372945291294718600588399407713601337268168909494799423984239035917276502225616037081049027653760268095607560864324892172967260813669734858821398686279873277605797226530741981770181052413079655303996365037443665414455208524422443680156197007193852577356264307179873522537640140912993537434719419696097037743507198475285024387733114783334788979259636082418339773679083616989262467119818097296380156981387209706893636510179287107264503709027436844283052952265020679760991849876758832746687426489554016013431445697673357360095623566866875836195470273483737563105541209113366630598557482568362387310195969830640758877344400311714723108580038197469109753262906216412258102600207454606805556753965818510913856088646857928787866245835142430230364801594561368228872885745533697027682010025311399543794685821996651059214286912284900633842664771659455320395403502835357435300157109462468563127800980376196214165029034869304612504557142774175771144631672240753297734089603115086993809580304258645012932635911484419854857770275572210184118502061537157151539398274974696310477333193377616107524738799190336334254759801783407743463532395851447791240481311510945309318533981603782144537259477224925355884694662772968966582316030894983146829980032387778467492360258968053819816658127749171040070945906379033978047584841983708945857518512978451144784228566467863190655892550543413582202884568556347434321381869404153734209076664790782576179135059850168973366598284114360157257133703000330901689922661681211312903696656059828180922400870692030300266731392494075437398477788328172787928696464172595045909369694007289665816423072263460919408682306771355207888206684519504390756235034628359638626323016975361118532698831219741969037781696865656501319224782238712251450989211142639109347716294877431693641763591368805931192663981663425520919507809300666815853721224912644185283444293333271744583660863353224852117098425781764082913570122559409322441699506613131846645001680143535172008100767257890932861170842944898215140878946205301130082625019672019356954199716197548820873366609410425075894466786090184571145285297088622689239173338685674053126163810597547291731493909512429843790404287882892112117448286819485346341714630647233071695323382728042462728184513987306605778858260036187073587033115316829024217922008335599668826955158435690220949574292348173254907714162582143590473392442399713697718961336993870415685823055385829321195896822437570550035746957311994106285498515212500450696754333908248089669204366566731973306330966678269549510343242908619168343629401758634977953596914636335794498848650407600009148366219117360465691262659215627981852157529318600608741533983047806072499919821977041793940204105490749960801236430168053067978473252629886913163670431633309458933801175033796256321952662138988262601092210287846941667837265173651395222247299371097058276175659125311368954751524492760562003210427569153391031478654555822434664620977319808403064688482026997816243407456384228364873373242381015578664969183670186230700298025953446575744587476877629599318140051116982078969624627636237612519792789691533093625356515104448641721014627504192601945147544671002739694916350278263720228003486604074733356387010632924150947817426003184912938311741523065670093939232751531247704483863532459675940040980534719394247049399500979990945143176293573364766036546146395598595125107599066151797087420955549266310065045035119544606811681521177120842351482104529257986041732313362827782763420039272658162122880757917210823731015010337714127559314584474462744743448791976648121903693082201244015115076308844007168946732083687373763563434848252252133570596934226892309261344750587064570246594821027866920135529075001846609898254396935275082155744856752377610157420263739779750251334738441402783804215332689413838199534439095353287136735730798898052481126445684541867139849433534454103925763779781321560989013013755057944042672163840810548984325456910368397641151628719872436284867666566167769500759582717846623360851153125853572317628293727835086816183954576618054569479605850768277649097952620103248924027608466427702865449154191601860967058745079164257549845906847430144653528635015326458887097755583348131519236346938446014357949809794030607804981796291540814327867751888073093895323348615517935072973927514011381989184003549856529976220350063171810078696836510803876170024872922077015475450145270314624094662700458254597547034232879313665543689753718052039432157134037349273384784841075355044113141771137557737789986598452280780911031939629518826793848459044861971876081126580199606241499669383638919640305298174433283648359804596740934018345311781988975613311369545109822271297377336807753505521656389830396306914023084149652363231639043154123936694384931554652332463586831387414759200718866195493346302684453702712100575680885650198525313359538756913828459154111522959615606460795259245885932716486080346565466537103547700647384922430899229769166119391178846786668356203558076161207807443248025919784921027669823633240763503234212814132272840826194592543210337611265734982381169584030434598459279092942719387753122851301126026109329112842882266356731069295550534346768139370614086812952416621182268439977263355648018763272611384004053514129518955244642965651490105243217860419639663082251080973205840821899534506894373632911432767473510861561690987044051627761306805618248640051655716081468220710274503500813392863431824590014349975295291122536690552838878392929918282091638681968357435389378642766025468429666220167702420183700961233941817516814958451788638516582983899930708221325590863916033779453763021988958863800848936454315636417416714828326029558652279314418964604675966261716111691059272741000025062804152131537479275134856407542577078451955068471678682139836882433327998560199866599205746545463677100563055209421878239035872136149391460278195884229130369283109844263612835370472674439524834792678290514479231864761684157982231896182539406653306314264084247744058937080687283911958477446892270881691174236516399469302242189112201882797950598357254567946565288610700053754471472194779044227338914067923051570334132389758444705885440351549679152867684027120376117096270930236484100978104837076636745371822115611509467633022363024423881289195612763276723286693300699533757415221875959840788128046484191403902837305184110701707632784427863350993737423509542472802016332511160253423290283896212328137907718316314665102807506762726499169875611997492112548895138252629690044040895209038418427968058626356640948864825228291606991821266497074591273946068287695009575575849077554328013313734519319066369662492543890601206436136368100674071020970342825216780190140920758812990563538513199430443387246987703486487963445270440808409752238942182917822892830759359935042550503818795010476210750252762523150622531517216094559246760527012362777415535603412879508554875627058068452888988042329145788731568416842704069825280401637865258699537227328716607585264458347969809838578984986019098013343995213260068392379616044517512532442894642453827220938226466453752896436212664514177228864961603713119679841125441077357722928314524584093833360347464389064751955008841146434418928830121162791275750184650601861977940187770192022894373001657013396574509276453227750592298234476478045960568150370755858377685287688674464817265106455551967419167880057345860012464622476266173707726439716594467789094901452670258923693440964719054855643828737323534793573445399471860085363464876577852021892522762276468703684628440611252485836756951381326974918567773852352938848871355451864937617142536696689413323313412278241669102983756387728613306031551025731591394449823462931973448139055504276907894835565435771127330015667862387719688112268978572505122569377975918189097857573055473797864474934313989037267850221435951227192896665580860673890451376660434678838731114493892582355722758671076795648424677268235249603741656027062086433123194274984257554127723092805654789885938523273655391561294651127228961054832173728875167015634734688563579227130196614032641188898949357888073113158706355594313498370734543706872753051528386461145274683803331714305582929738834366491360045081281396397481748552570448295518883079025455479093891803465120207923311565091916826878201509008444320711069943585940513731889424320503579944902013354004123377656266958892644160675324892049907294431230748897900157482557911574258206529294419222035568027240501585381165666063719359514332758534483789762669646899454478727521000370736533778050340573659435772128003291237421864189320194514998470054605448867426147182921175578785333733879495770024628739769509937786923976442804850124208197904528688432908298641862992348085910460355110102261341998157863843803941111823424438682866711205331221825519125870927365459116836181816526273589550724134146201353958905473484930092593967520404079135524338813553506535450573350140743529482011562841191219930754061087102209088607025042724028653539368926835319529126625308693764819257153780098994333509157423312799125268446680233532233920959651990630827920609509029681830934621523700806501882731719816093505735092288309344598357515314855311508342824421934737406912111062232252614464918385631182412686500693840102145129084083541229921610801276457351045825755104121583153129393217982709954282222014919467179541522425762673514561885046420167354925641617702200784136681414985079864066422313754353291156134015584344160261316825079529475129937486008375029136495692745587539237246549092398004373167928812079562637940625912282379555166553585077269622465345242163500759180434937983704466539171325683681886683590890639077605308621063553132172031544837974802135249198323780710454734652362829389043045943189063842723396056527356951729003284234145777877397497762476912339259939797289924384894147999043367158762880172931061394544069908973292880191192402663299889941720982380429644278445884667473426241972658665561159225437606340719679136249185795878208490123361909715517959877854343410836610053016830311145246819101672515475864551235052791231070109553821582910970576934603299513140509257577956071651557575784152330037543918754301828745919562162675998510667696405159852870169704460321995932114773338810140917458370770274118099371582907077668826094547364955138860437582506419822234950626090566217484044387732873935256266500115552100025971507438448776927093357252694529826613613981322041190042986974582011572960351568574974853717493254805973340343104672387204972060559647729721115229140234599993593722143595253233961130306169975926498030178911037156073183763446847166281371225880088731348481172200073485270870925751832433445815560781499822582945856343650033562440765205765107883179859018746559926987331281505425198195041002859430225285209139125864492805443234442311606333516513603229370945973710511744889446897076022343988450070205470348428025682425277351822060273607945808358435731475152753439636864098200976518173134498568139087517303302130714724499578125676850572530172711583784694120515085559431869125336010871799905574919975733891334478531203936295065326608974978211954566807409057170351285736230872844866424736095085214452960588241925765620565635319574271026922850686504405461446026961468512010220160782737946968341649908045745678553632585161002751717856239056789540889473858364989081711444842732889049380163009093753177353066410121632381102141635357233413854436376948843465362376428928222809091263716164400184908503299985332089492615103777652020155880059244411019047909151730831008494180814293468867701444982508988826806563676051398952627627613715415992451318155499478163056969701151666415795865915233991430187887296547625701429603828870786850512294407767109954632002315962778706240487229008839674216917592430730308112909114707560404889443538824631258150088078144067443201347872608237074431798617034931291480854825925268201475705466225821779790567404297027871132980551896429323624033836667763345057883359425086803930355871620767923069687138528019299745221534180200757026503196038636000846046031976664251406514330043166892393075654162282905510465610195682204792663601298300554728019229467308943991106619114911533575311021414784824441590255586104810944609960478471456421735726944435899272784120419183402988683637811102519067139170715748526795560447809173219711901548262855339722542891966217816268696573447473633566581160532806499532656919654395329547149031116702465086080109014599068937285580049375665743808663575768213215385461985464151740811354984433964457656440093528774262733713905163732562585444328969961807432856760792073745290052929917774173842551347312745069394017312739366132255898895338394102010067956076927526669159807143885082669866718374564282313936902950046038150058945225384042730479977618944043794057611751024522623376964562151089997920434061964182183812883435660545002054875378772809689098978972037974226585001368942189961852878264455004283191763547011343839933826674313781006252242777782996585666473181361778534429721900911668068395721940798495698016517502786709532560218098251590109037208972878176180227894255917185066474703892202446418284710994754597721191362609531048518677986402167198710623768512186491599610849256690277793386938855601197045941973812753036258766077233498116522429294859650130766105681836095116952719130957371480265991667616084781777828377219731748763236863538875145683665934120778138228887177434927790839995400875911183066010656420872556882752043199189474498155922055899426757540258488163750104032358761045873273298030043821971516514318495873992715672642016678465054290357500673557048341576029032828780643679175666488911359143025129807748722111820099234208338786394511710793389857631459980471354127920593815741216495074150617496842404465311717326752001140962859525060897315768795773902330297712428745542281549206159631709075917642487886613909709894667305733156234279673500465672056566278788157777984734894467173901612130440138464713589922949196763675302665242467781923680380042692128307696477199644482839326000735191035309869341120100847833257227342153476434565118224155418557291282583474650371713215038728800518205378153504785002219499736674556046252534871415799191451568930633927638606097937803518665918132774297005911169397948326122208009288289397618327472436406046424992691678442268768427436127437463901734830785535905185241045020270853405797269634514669727399908306367124386271739092488110908596836059780040830453458164125469600015255217343590417528414027681739252041091981942659932163735840276205887664299572033108955090853620185191371625874595154213484772049902094782143710685641743935592724737443495920363204265748566007815802473012372832798201554859495423386061366704658184059073263663621846359929589186970651132330180702152606606190608345285301613093952758230214315786524996297091876598448327807844356604411744440419979948415420079868907632091974454207589361628883040682182835177280124481380797786325347017989357319472607669136235075612865689532335215616693638484933119985747400586274421259903898211784997900630835268929981504461906104047455318836227574518469853983010513398875238070754743940421478895646595331591482786126074918570112344357120360849388812630608522390082323422715702211277297139821226531164799592642343310308651421242167884443821093710665010017771677869060589685214902623588586408217449664502888250548339684226507582247908825891049438429848213366086863943914406790777643744714971668293504167846925251117462749293754667335583046559645316711743531188781626142099017800062412700050117511103507943635190436746834153277736273731001510282696236307570026358856983873648842643319159647212152288403077580921136538665137813784250022207511458129651259859413131897244657069681961000294189107017048262115835039490321753892047874485450963113439181687364998628059043976174685808121806707610508756091421147411648595738711080351744019980898229955294592703214575742283327266884337248324509120613322965262921566910773767995516442935691427928420445774451850174133387743535599310386513848397616519156952201082272236437238823686425193626680898893633220843458750813532506749592712628801801529877396640591205295412654117297100325959150908588437781156957751444044980135912124557420583027141906566387460531320713869647729145251760082226038095112661827377721757728093603281402763156044900340692304294995204216812403274431525894673046062372002213017203288454843203954293794381769285542304355907838372375087711928383901830841955601305731188761513426320475132920825512152742295477827255942578735307990072142553151476200882239994039803664564928249409609270769576140797192157805111563266524062729635026245051439880549418958767049766463828384375482695283491085914794191936151652016076009325140735219019912246610037492542887182419495902860649847632954583927541277205944238207089221234992531071690270581425260443582189957535614632374678121028326761602620891285469560089027657117699835834937266556532710044871119399556086893261250904009865410478611904966996840962215561598117266757128165914373193283613278070150784489327582432688123984725907263791380524996637674794068362403825913198135119154802118999383987558946489657338365673164637827174253363748766442188385254966413368989845382004951112013437242439669223033041554517825605896970655354017367074079152423665746493740054106668717995605275786421002889974088457442301650243113002193421201508823288340387683869115249369004578124896506133076829740469696469123714921641610304522422863258180117374754440551995434610199305575553716547745522094628458213380072550685981839624088504386310034852766548422544691563186067043051143803908847809181879770959390682288291006726859480079329929041834314489924690323649156700094856103545135315994052147654239703396087999562160887317585538160981037210610702791132101056983583043012003438160691853167293340861159393809005163729143636346980467974160355347082829041129647355178034866676652499207834461315190315630694200244191949952053103727807621972967389139869798333081627616111836604279856736100137741235959520865339669882274552615917264415641318189221053870271705155857472924384705478616097659873628590017701250819914424529304122170655457245498977907506834460331615231629388468432555414406799253441813304481269457521811798122213606179055877469527085242010079691544714273229262225652096656121307017180124572699448411436157744525881487067978951938149723789463672547719461712043424549419518727064829205278186586398284941710604869788799623736582973745988773563540154295585111853638632626715587351785617868504187699179766816234517297390991451084282320845180700494822191966477442458028927284859863197178076466129429317160562932015888323596460854916721228094130078906900538172130011434637524047184280545239820277661984310499608789139858576473462995054566139436044784349763400742784503313346323472133845705723842914391217188235904054058780190881539282797578560830147817369300397089729333436896057028328054206584260944857919413901012516969823079687631458465026872881543008443952124074609845748706521512705512577341931331192716258098864802306604688182492709550808766513883433297586510177580169635554096973933720884704117930058708451207378656295780686849548596118835067376917172154303555697678418303791088394269257487810263518841391026866145417249053985717559043292031589905108296550643212308091152854687691391844318154539227060495631466707384703748311119391166813351704744834565049559796726507183663296993078975474896937162326596473445906351218566889595365820254463253720228886159645113787693434272316833706234273158550446062785571345265559695119440566293935805347858814730556918787823188165074108801452026245677040424338168242534230278821618660245124012367462818273096244228465573987940178738929205512557015458720216782041352880170224278833816607410928973119089091836362435995274539268449606281571926882206162158680200407625305276156808888045008885879730670313481679862791847269200330852596385730080146789341502485417475067412826725188584514576463231082095367785872110707757776996637177007483098071522186901609274955436765066300015158160059708723157942079142664792634233697053999862039431351961499224523382137109274169618484003771338651210349198268950479121114501236240042401708285777521066715692085549256340000944959725196064416441010660795027943489450813576637303903798310669360918213815329701408735333455774450274843228579003532562686990304156118168655367897048613079311234556563930089196285363827443978966741131422086961331844997118028273897197149998794175461809671919639283894391949062878969426590925169132763552444974136914949874515474050790084775821487390249700608295462879664245143226400900235712853969078852604616269084390798619690390996836580014270968395954339058361636616057744629725130562397898276834853822071001772893871830904374981564851909303628386501726586607238573038673609446777825742909199624793696405981344732496747606113613569620020158297831385961088232729087916829466410429279330769420880108880142640131099890121128343049731927268748774358124530225946870046717644660935163422048190662599347815291941289648339130299120538499397341433201503657691429677838530203929137284367528274647343942933679718353774667390118193206223065275599016924196603165381589183243494635500999823121685331920865433239936122765784692801852122091080412588429414084000439629092427395731376434831661698881870584043850375153728287498564806942138836449548621093462761240793200624938963623090870454726786597142761587672903466157044739611096531247396528570163401414157530593764404210563160076889218518626957293410730505196592980958427096771548992242561110570845923382502858214797585347432198918239003701756842426359099030695639368028039873957182480897696357158100540323089836604208035129225609559326903740883988517154159799938206025434099126736645848387839238279250433056526027298298733279347399100094181132587900329271332913417183860646710006490172137505447480135906685713567253373349275795168421890548065620849278794974491703436199095966518834938334361691688940913228992451026012359344658020282675590765772141458617522327308088562351680752643261729119032936355939891850520023542125673406537335709718001037994582164748899953549870088954948017654287494448791629319731642276997519875596715253112326752904621881593171436593278083531131358366644776527533895018139391542249812787763923783527309443344742982747733063439667424031539758673381125078464432638447601813059739736100849988145738672366558543419953355761603291067544771068396644777395993408178992007385459272923584291739643779488259895776423694835445606717093603258102770464389727492737837571375349056564930295411846436857460029469867932405408713713279627493615186382412907086715814800945843787548959736826434076728037391383933241121169412237658602931426667418711423699791908211028366380783889622411513016274272572620419974528434122115265120896701460598053162371483505032394440312996091037386602392975617205493294612490550395916389826785421612071324264814293967768174745170274055040265316595885156115012892821164949457087507717309661309539518871277928161794567489703040655677234201871382421120335293527023819336454257638108976564232539276434434945192461916375097139018211246682654267355364853032382760331795470008013606982312614214225569890214192473015564942772953997864843262724904356742306352897028924463885333398818050059630478593153100143605924353473359485440707993739085312434321895852767237663094496716719131851420436831876545975459943654428487242372072493222657346746022367730526996567990295447434631878998877958098613100570077035381499020865772308806757510811766666172626471931185986773708673977024008843810422383912872321283842490700440726524344938735062694617285874408076171038585737152926148661316045362258936538859198268429990864520082860592241603814022512369745887567086188825577625009232489991875180505508129314583403320756475562313110243727063048627769248791802890388317398877858087849930178789312714276645168301851057586093356751724498185290741556911897617747103635144979310958992828437073461474908855717905282226450618764459437735284044202404174991166601817390881111994335954207217918330329971564813395729105588937510474283674439495218367814096287537731046432993946707446120809112603997068916232965012307651525064240498969469646405182765335283198129573050202122968197707132749458872309071082137226577437268482322712136605267681850591071461176665775769593067252582802267498236191426000924072038763310354628003150348312637729222361698275589786691784257242610157921964873382320628878459331742497654295913577203487705909372934885485823835085565462233010081544231452220140588018735480772304901457158367149204487005596615525590954501419301868124301307941820454692663037840978446537882223195885357963751546393824886501594693035205799116867316390018757953677151862997462521298261147280861307203203538130532153273908786757085978411036873075589615924085633751336587924654058317309517609143452359952000954881953881091677176494604808436832799622265550267762700516857920589432230076871811402797477321842697749442038432162360786202680635970087767452770679144105929827793172566639866397346644446790254091014741043822768949909105980879419057139113340104663665970341131852760311776437132798826409163159869145742718430097272116812613160261685039671239909189381586492031701342541769534853121219882047653113727097857209908833904591827716238859630168618185535553215361355236042408408121735874371908963564710816641780205446170082569306823849201930867883528663169426828721085645093790932447163117857432147435099523848184704966865838416510523482977597958276665825733892515819146325727113192820040897940824832484666917220395152847215074309964880045521432891044321014501270253965593879638770674600445207360661198318501916023143001148065176647726317086309444043883456237018134867892944227759593661799566968675647376625051750933113838564438994192014374363931936771476741476656841151181622642971362364638574372873578433890788484378531370881229386768327047348234815370314811584376910524764152992783970455886730218132508316002591153788955148297429327675964497135432437024382349024157356955404311662054399595890469596244838200304191930327018210369054354021064403116092640701212612364169961197394412098431390360545141197138342793674796421432502124249628783501052753949251997621837520532454337756050065804671066412137298320501540996935263515018445252189976980750753291237650889377390350191674968026734567596764043675975384400024056280719454877306131005969387080128307988327646020062480782250391264501700439901430454889842797407790771244405415576247086287780198121989551218348889873226687616511463696736817006147060568655782886314037781580626633364416476061588024134660073355156534717877178905534258946559691835755350275270836330372631819811788618037897237989304727511470117736489198650050015410001150865055065892295080559219466853071802552872411518010359933053081831810778025664377208209787560950524192628126402146728030955264146512325310291085397283285426460111162535063794591400664365821228603939752024637018251575519670297219397812318125403545836598416527452554676664825630702983492035170148732542672274151827233948443433380460461434423845334506777835015286726154952551968995618905071233129538004383594680152671143734924795656382046436016532651079158943091773218949390945759686316619379373303895451279065211764085397283571955606772707348458924172394691815273331532598384376177535426311018041703630718193665778856061193793556964440764485843691504177133998460785341877941529487390515732975390507893686331337678751186234685068489562091710113949662979941504719637253527863545060602455829087530736020726168170317592319303084689244982989765459926850900780291778789317107947825069599987079557030214995599614901456037725539946846987963006763567431307756984295452199914347086720378667091124396379091396212169529308539177416297353032540236872017023627324973501644404196829929223747187454419533060021274238601646845954873564728023292359257731655107404544221424169219254312553727135432183397726057255068886701765823772420490056483316080457142581276623205584122042033840464662502355910118181584646623930356126917427808333055511872267018599927229249383621101912285675283920320051359353112127768129649022192941694592822556288017094905835724196649321660548860542263467332533247688602820336068499784161087013932916826366845783927487343262391025580226395596849452437498599278085267393289410327200869522514639043609284210763809023182848066029626777340023693108511744953645338201161388031578962133282351808669190769323747729740384340224738520546961406169791369178293727124989511136676041181610147437739355220221485461945358582306994815344899364189149802167979420090769362638685727701609938065179183846832756014683675456186062067511355096014809245436410861896915024621932377168162069214302265295642154270910337492117406402224695661397932237849818185518519700325906021387059781135173357246179736153570278208455126893142123263782205431211433355426634855799952466704198594107642730998508904594018296140645304726964558608894697551957679244265170335594051331170533564851466624122422893256088224620624451952863610347314989547743583817960302940014776781352591356596042421629166314922554690345707983710212352053519304928628053705960767277828732815340552600132349287356143787075037204878209238120765785358143980261259560029459359808160760248241986523889996901657502435847999298821807276130329564823431923132313765135610125498738613729181138869874163600551871263026910460826596636393613448572519875873475638861608088769955130782038262641489017552603583848652780222434284198001911743203104227508918869973366969027010712552585186505858207849087951272255180637236855708680980327159600247503645473371912781020448184707709361511779563854244431634837316831414973207296081579329908842940857043934862357073967256016405362540407353691215916188890006971423383862780022026301217180528870852760062693293925107230437734540939397581173720589852669812661728430136454590427726579860722803653530508869055771373276117285561957896741508517009069428513490139885313559789653608362574097655969157073853686950698228807111539331552543036189475158876192359680779965408259679641534527925295350904083984198917500704201743533270750963919784065669982722358932787049312896232446498447011170400164761679938904952704628759444632762705268173247159724361466048751093440291054723392852999683242152065259982376424100688546932005818721737587039511868321865155810447602671736626076555921721819744497785743509822974069380560095213121239758452448520807400330119146262168527853656093467216098217431131118635658108636717191086577518378017640546543626707626166988567896628422475817116601398680873164985381648168191041698689101876358226116876750114241869943860698574218569263956948303012168555148367559728918036105573006038172714048471314418326460275084313024166715209750193587421876270866850805704764238441586945481472600995916077582295750922577988841440300867972505855224743202789326164246260300912548234494523810746737140015591727711626799662345572247551184900045037262072752150717136839782385406548376897869326645653357564433768178826454009272552702340323016984431993541718246628659787877537252005251082045240172075743542705835495774134246002723550504241619087563753907830643342627910289364691433955101236243863043038665669645756899822469964206698871582183528950346563520339684642368238213412614139155026218225666835305171015968466306036581554770844737487195035616404685166362325114137328226287828414456826225297860457977351609587093964385968855356520306750460427880529161414369415154605381891492448698089935421588885383876933495745956412477412457721850499806232320005102647333386660813093451603370666410501139559274407022817331426042105590429610435584366460471077294321865162880162977497392084217509159171210504398441416472602060395787969379199395692717337548100452040875560065055819292686259038039456376845830278610707288976096122925576292007464212718369105498250683626476321809566973196924361817565034052710948617553123199525712059106016927846303589832819433840455052142804611395252692283166834760701047544023517778299273952221671680467483842493519232512028097807147273227047461966395514944192346100787919258986673517269289134064390018192917881730255159216714483489874910697925923921629570967730266483626176393347831882024843901255711527001175033647432901671775833973154171453076929686124390109610694500591955917529225797668448948129532250347828098708292200750646225675998134636846300548534117136930727885658911086958924806336835832439039244744652634043665372816799646944943000490913064437883124165424805880853040443555429428706156411575917343765083792280098462954579766614889646341153570051163483401780812382389816289842296134666135670700960251264574747311968729486554061347186861420682943128120683331587249888907431323489138795383136206484439052223265681387243262443909585910953677594505302700628154942274543473712341320989040711104531424784799523763657780263471499133980715581382570471104359047782377360909152384145951377982723337135237320122279530458030028197339448836288241338879175082780819117127420131125860400676299471627417416329487949210924542892840865086933229674473133787225529737097568033689479027226686872448179320568798386193613612521734701634957584036608469878342734422221090363047400045442707407991419804184716246036973351839784565946505870510267917547512453978087032618784971267078153477266984235369126035391599909457220891091753761759920961394353498926530624623830725211668598684846180907641566808459437506103964232772885881389731645929328032834989074060832208933395595315145001197243319303449541814175865992296422976643400070571436128390109332056428716877377052402067877658303669148282318800449910906879166295262093154619759166028257212157198949306931479719111749650102753745648696225648821109155632411958852759666182946072523050890042215377195569462343367686610181880917982688908635424326753880175029245342566700481018442303732731357773125524463468980076603167714279311293105873607591866312654117020092714452637149511610043126869154965009962211505693126132626852988368067721885776264274796688914199397479339036649670288373993269152785221757469536690065302189754493021068728334913788067974015933057396797584789856857654875356063128685460122622594970743473425065417973074551341322757908945870305335071769163956916388862025583688028048034279451102575984865853307301758694542126147408789874416460746135324463379783376890810706241651415247005348331967126650029310518693042223709437501702429855161595871958968947448694368505467424126945502475453883406359263653511698887936089021914351975226106875319948553721219654692135672144723145226235355975714447793236007494293639407267106180060320315689770275246878249639024981037181501438964856036304778675518669341624090081067658187531683426501000689655038155896820374186755606914011110123352514759963553098540634828956634786977158992573905116749086843302198249158247964129210512010222896208169702458209204674309777420092310382472293997165173677678870641029895228610811270148110432728952142127788255469872657130047718904337167805000930836428552523629906849761166455903311811780343303913815839598093384112330543224655729430675226366851177672691968911033172792955404356474339417234066502926688720638289049594871316677648632834996538082187876541103675994708423233384396846495332385093221943286116701666431824844336502663585267215494004093616975137470626038300155995858108992396745186356606295241086018875745921468281456989521460196763238867813459836356348892628773480541527226845870732949972442557745671339399400156166124211568923855975156362309088521417912809594494558047047820596083688218057060126704191661430829125959226565158968111315015917142979937765419605902194696208129887929032458865429830805455580368460668457403610518189358310875787706648235577072353283495705390876505354731584074644225850050186564029245838536310560812531735059135452450378895965508695928684130879009743479244898677381212058327551022249585385737972065085947489425798443597470698441256466145827332497225196655989896336606808642184545091778128366896169933668430282327955648308675399597418618829513934903286428684626714725900326059846564240426295078406211824851363753316023931892585605961408434095611103459992991765386536206671665620923135853934688278982660288018364776462007985010474113637002113327684350652139800107732255511862050500463450809027631695242573249569576406459411470484614384656680675485237630590494748919641063911687186758371507013273959308739446374095640871710438970508022358951826950190065613660885263826364034396724866227470278503646436059274267012730857099324332413530673608945331555985633240253129872571666662352851303432404871518262756878063854059758092350617708573571949835000907505921512249205056347526201912480689279253393659177961223836004026597950289110661393669030182928613450055899345272963053129100050400994968090027951344889449267039998912725545450731768795491382158109674169601060091648273883815497111163950208057338766340814029346405736756796142913302003754374206787219411997986195741921721139981216838248388775459374661874489505113822355855572665954327806315072407109714150570734573890084138478218150785228316479844032610241026302526367671530213723095920797957924263385823379256260081414154887975581410919857253511673543598122981470549079412719995257150656806878057933026760704594770513272988173877246309849771781207871975918020603294942019389816062559013701475479212074220259898714789477607829415589854795314624308545578446426187458381134999841267197979049057227507680030588788220955633085210118377430409013462719557656860603738327538324050595176821106737312535971049930291776887842244582478821504504892066166370036325695327346309042187966049865653408954634570160724385269106081070004620791409282379911037860328882839179869292681025879410802876352084409530206886514117972770110252744851394479996840620235104194138163457629853999296733401647854321250441405450082564756712405426085953158814331577968354946016479747558400278863620179064498150915894317045977485194999406749749452037337727801466823371877485300796818868629281621274145100176123607550526362280940404328625704812071067986625743101365414278464861241099280290547424279762421997490937117100158240203595486116447047200955741912241310005833117051898352387873156331239879402235714816760596653329736001519725116239590622408631550145549081331928320871738393226505053035766447756465616651443256636416168638515740472285698352607865911848172076246852520996194776481408523577179802196637221791369776074651052009640322105118730011217368015812783561910077137721621774681753744596672647897121625031241110405342906208975654580924609504139686999737974520326596949254656784656399683775595880140678219795973202594869897765627918435954722716531700878782701934687016620062860316757195482446619164104942186508823107771666265571736583353897602128697007289704617941724386016246598959436074440035056364391439221253529887824183586296279817635913281833885671029967210876572214511921296478150823685424781299093725760808302353930448986226850151159835551173894116627629121548628415996847095820009628331212638570818581671844849954938369000412701506996941091895871689614920254793877565681085493635902317328181661518296398259767725631349495041166224363351112639140647501378927972176411060020390275312067470987013821833793809663650468949003831234621084934146963640059536698622059046429029221145545576366853946920392127932378256876688678937322280233209780759809474326505324430095528139044123872848827379462087655986843349902470599661975933419439914998962216566360181836114770231705447047974757194280703152817032860913674992681756042213357404461144779062258915321514983141309519997831115775865704280053558654822819374178251766799950092366236068891953898734134162269107279609554508957214375689190022872747312829968179471474923791059648290130354823930533998571888105381616181397097995660731057164087416354611225851616419071171438146098230072357239179469593940218293816159514736120823887836306027356530022779406355850936892845813816962583979735254310760879477926363814616342198993335593514856252354703428759980830442136481653958514010918262100781218783305680829895156971172473648622283555390015472644485799274792441725664466531101931000459026601562032792858125488537643936162553946537855845297357080910576245758062091353054609531321710608975087972591033349347158565154112949418289030760298701544532630933743170130466024780273193797724948400870715266436000856290755874845502028236242934741873311135985734403597754323663719379555552923288593920264337014901089044873825204542951211592147698103092700078143024961591486654394797199643163334253859011139250628280506291754804414096548267931071381624800181916522456920953458632760451326644747483809137151154992315214993265911744811256311668787037776843673896308515585087543179405515905521647652590645359400776716413699582602226779332919994576692689593094909228809820003441803945181039906956248265229694629368140244093512350003318863024606932768497035782568196492701555069885118607916916136936814356108007601648466390273023474563523577685801522906553028806697249034940795400845423552388244102057141066824971095117420820506410412088024899678477870617020294953932463797407230456932317430968980304366510326996536091789838463904766816074709763215648465320738174586596203077413577831044774582325915846148626664841349300076081837548897694285632939253565604183582535480244952346864121929583655316848927916686704006902961973926466378147635768698521644622219284918595164729704050902284987661910307550970450595659933553808226461005180738899081841025946714098352061382559393010885510415550848743968873316559402006599528090190806083852464694737872235748865879436250529314207932975549647581661604851512013945339054260880076887443858339803351867706269712089845720711701498300501954285179540964854194831612494013646382497741025080959703628566932634966417454879968698685635986446389390638440092158902117260232883474279535183222800191925513756570960805221253348842734977206780272452875176300843177505162597252559564946787223910274837875559322951740929481790094234214175841258748056282995543151362481288164656443396147253490116013873479124470762180498475469059977004525157838691612023276768164538189210905879692119038852722564788984869372875729791059495413739156584190912387587575903985597563027430106424736083684599039148085363834819727128614879240502147443571744494292563128845411303793659566109830499266430096581193957881813298626917693056087671136633009511157602923881329843880986513758316419937707164795311499471781278342603977126941928670061027491941589708351362191913743988856468226080720300102388432632057956427200985859556520936423800424736153152786165977633937037449905737462630188590846941919692434579577485766959792813176688832740723838537655608768046564968810010615758580829265946509235215617630800292771176208656110335612192281596279811682203791230658546942719921159999972344826380595580118177332964321218275879827306872579833515067789913165461715220111138271742720828434490559821803833662090648793589781861527303451799398983897653293290542812025766816146240244234739015496178580558632306566244831829794234133941155076818648911009160525896458286591519022095587021125910726063010412483856278929311445081625428244141085241204922127129091468158235465629859641792656356810451626768730037251947566077837028289640556393034348878778190843879698322429002330685593310852148551393100479081842248334296547857729908150347874944934205650481860152879611841523049163151016741955213833382320197690607179292246332565926093978192746797211381029651478957944187430290388796042572425706857721243493629339257691936587183449060374404179569071464174263372215700094447327380504476126389821195812020795122049703609095337989998069893174065577845154823500851507296792195726566221446538220591680560085464210738195973514210204779326531139760606953899351638342781682885505338638216921849612643550115814516368935069904799541571295017741990270815892555990114325838767284525728048933717867805876116739557332270208409303312447687482488815224948065932466263380373491341876055214489995870087140733379152087757428462965300609312267129234058958824658759155750474256223903554400670077433198041154415829687669680089948970605814168609708043597967357692773318217414140559200664962645499005973333626363119937592399081260979363861970500643207601193846691051558454569405733854688324868178626416160488548657331064255237572596267132743369582922297050205233656304338935134700202374096407093340305915464679768805685218042294898774908848131918687940436743190679008732565995820255278914227677903252173571386305574557605270728144218140997783298899394345338038746899014972879657190818538234574336837422128524458844652799071742176726433146114688731493171838693389573824657717045926027061751644555562935622170176402090425213816565496662060184161515274179906717032379577517187009425458231406851214924557271850582897693013634489825450141299813051838999208295195293780910091383581635488157375351599886927792514623409320260575650498662313726822298858725098511113024971502433830764227019037400306458999016281046529351922117822913830582048910427540012038583812026507780757992754255654901980889247464047126546253108818549718102135874635839031727866037509118114122532315186949706228835523313789292187476074396437913566120767810402997991004743498308553509886382170309307914001756751811578056005522984600846080783783991734392215884662898474318376789534510722571811036918718524836363656655504823140996336580810845166935962708675841831119563278464075512207240665001134140422352986550183214894675229538120387565898558702512925911508768505718388719080518152769502066535323359127321178704951465011602493584839211162163452832462560565690738590221765157525431340473633122793654307765690012368526371246408951809322226086784252289567306542581675759907446763855655285495700694202510804348402670624768958571015536611549567753128878973988931127270746477749685688653249124779682283479354384572731624281427456592029101489919209177347769083860472078743964324144558266815238083000879243528755419219390512643541191221067933560751100340879157548286079665015267679481738494509705154961641545300914383932617859722911365627063847914716324896039029188326344826081362619611905154993457341938212520817555198002788631697366101067775869617820241977290094857495155882427951916274994688423491975658684420485018474776700165713148906107256458234483636580246159818559980817349938885205736336861028953358365019133274342575542928110134637678578312893089805553002108373732959375774275125437985216119597783700901292336345901385509096485732655318559319975354406265102712580015692538846517857658062077413771256793679986590307485546299316021755646653110709771140784314006915094531431154688427768156552197987620230927097391152818477905892062007645863983590612403106499080682690227916323585233928476914808526820350510857362634193565077880142996307386104158429053897002834858576886712316872304076844905077217065492819794300611111274128682983899743156919248257800057038832367679483424828583216474430318443580339624396516329527902042093450808065625084781746085173257052674953437459644412153964446288038397700289525933525673856417131606885954415823696633362725762512472003992737581062809299963184277544580670653332559587021997863789573230858499916085778139509243470278731792631459835333560100903847160773646423090228820011125966906255016205140902595206397700280945750418047211239329610140351631860921505723547413862654582174772807411239610060007630963600638684657989245825868747501201023241868578071180093442425082318426704768519286376063137795157413341688436898857523394934019229873625056328306634485685437399721897186703058686797611032174917538230106816989869356031828036580396136837659962948510528442450103326994501989695972316284864941620515010035132918870558905662260908549572331524845812434651455959211537256755180269528897288493922774214639499139754058219334046014987718124380349787308000055438259888687104901328146800318599248927350423856074390893832064768386937658166188503986613795295306133830071457962565712406990678129795338317546318242662192553711834018095266544250046750731558304387514842155226731210728676627481265146951675361894999914598161750197894332382433979739157657935216257824769819632557319177313347144882747463435337647858927671497846644528307715832197961143934690305299047921742520572163731628289010610750639089139828458327734023325231057429727849592438721712131957494674317643639305279916163494469224376175514365325267550949337322005450715625676012305552426481405796929648179592215375070159710327376688156875099051170939075660735757860183650844102076535513145992267317011589769771593896691678939954715400234902193062641176134107304215896350512831739703232678175260280869218891221462792392116135872123400219917734570640153808379478824754558523646219034440839382573194116817400032639144247469542145834117677446171220883553672585443290885960140171441582013321698905734871573886015776618972338657467277918958007518924959209741931196566090223084267531770310667305156317195316495248391966795339858305781670371826587468114736733045696668003504784719255683340302459318917122955512756510608956201488512859211152694387301468542631455565066433112071563822305698362672570286441292554686121661251759877318622328407454466727346377111095593901852908153530198260176224448609866507978468980689557886816615656156446502114473770071604940491676374761386193367544289839195097414852769433128869857006713632971787493841222786061468094701556857934115346190438277266589026154858018601910068786682157795167578037061835509738394168884354542914663206047991401742490920854601902313523654831117601829376567628549634281771649065353083840155114281589820581000443358431245969761368159154042876122700063551743371420711359765296163595209176449981669287056378831538422005855130398837341176020831764328127048654593086627379268448533429952662806525206143714343853601316387205327119447142492369097159650170183962624610036502386844530230974281172590998337478466151120442420672830308045225972999803136052935562315896292932666307429710711752435723688992767126432591318711417720158212899847694933937039034030750340537134804348429702874156132138696264887897838763104266287393235371465423603233887201368429454988724423224869647891987021264196993774883144873184488485256174850832435592600850621451263680367623896606638983339416926734869075936650896957513074303540227876285601999890038815615046498107891063312840955424037090515845740482854548486699460768718559134499516662884526157095847763024762917415489162685901536590196203090588034192967729640669536283646857631226837785360445647919113303292728997584281327494539494571264775225970071292276139946154599728462972202687568918213028192660512233620186506488701023380420282901616946362213597013775400132775238457859893717033605528306236481288034334769151821577919421173592307782838034478879311974893707430494270559251798399949426451401803486679002701141687489395898005269016491095585678926604445560110604828635694538403675894201183626797847968123263291095416885041762970843591481180037181847021965140255010444713352698859398276442294285325976070340842368531324021816337924689343806347099543551043614384762564016966295063106829433136298958032625196369780417830768857988331219857963320375880677457007394699556480315379616008676155480299496011002928185830951705187920087303531875094034338736178633605673482376097792150320406869113819138511707823011040507082572490166639874051423455971146493151972280321211397728512404676909253496865335131049597794215431861728323309058043858235206205166007029693737318350248320130708791598737916781112482598927529365826863400703890590752364266782302416396083908252589322305669323349597130735659038159335308759244387498775570489551291942327638651856841492600534551393582864964275323816222759416704023522722881479535380336321163380208550754894737527265639141608413350408985664692411197627024937780832018294507061391395322241700236895368157550678157049386235248259987345751079151786717707417056081244561157395026703706910709383089334428825790068764343391528124256394457173751485018417860141878907692261160662225214286934452659482278786587620271256481761903220604109381457508316296829353002161803743878663593003072614477623263330886421189953871542670374307643433062754163176797016620834733040898800630127779695632691396414859670271909759825266385946885299650811921872342491711139180982355062241338682559735054105321627756336478059025919394412616749878221494026041715319240142965663768952824666866625714665145258463746617667916257004501275177612801245418195907569240916420665155897083668548580342580768004436367264457868200894846907049975879636251416676727067455471777080859160888974496112020136001419749634497568062318760652764338932433929753918188125039802530241573925935737306644512246256865745267747112374545788228394093573168074020370007506441678968691445137380701422383094312084029254458019736080652262288924811556655240121947269196737571338225062843704330958358648402499975150079236846452336410206352273467951067752126881737082731581383778446532609530463940723274787790604373432276635578665299220984020322537889831914601437135094222750714119931633781149645808679830642653385173264428177168629499384059475617969837249895923374595960854804976793477464029174941382065683847415042169589129856163311431345799291304495210447214014376820512761099209275636005784377999292201788289422101545592618677337658236048382191710558477365245656506324309887137454744452105653645324744165578517633583820030380445378330879790303551022205710070054075120087173674250826023730738268978357951569241835534725105425441387955406021827173045873929840205758785947680342388021796941184293776144467313741553437859127392681874066494908458046056776218271853447177156303668853916800312324266907643821891802865195854440963571300441658881140902836194111723753951145439381229675350791352854479770621544088017646283175633210251137391653303681309659856628498280678547007485290653358404253077846604731105509267645018244546865193953099718715743973912666130902141223979331827471042653845728323326614200317792143736445796813738476349813999280013052693251608134627285862847922922360200652242103222078907530555530046946740178971427456418566554598761597009186463782563690890101485446873608696409997212307040118649293418247479677568895506328910120507916397202321111115663534808482115593620606180286350970775552503586048340524740917229753623626706277671653880076611083488043773705651214816676209295199419662566786423605074217891727856852714233671090929636234276428010338517078463810775365692375397402617106753736969401597635757553679754994987389606661372923139635622091667521907496240259264631159005258611249444550516891630456715972227105189425838743037914359211913641835629585689952353193820470879151684042193210222866207470790459618906303062884297083900969157325269942522482084759839159389133020545978897575742599662563338526546884637853241557057668701537631687649068681984051276604450677698834720344477443076578613479362002868644630297260728445047939601457864297459071531035170314041015151387409801769979111100461961080070995856864468148453760173019228210551303359377818637744302164579424359638239879178548036176221798986646220743696617336362803239424169630632085744156747165636934012361767877681063368187239020909490491868143199935347267156641916322860588172281270253243026524842714921656528316109336124535459627724385434678285346005572573269319346038486384691253813089601569771019848870007516597041336773560531982264709939840143779444208949575593537589581990741966219760413526646836226189044165464986868038122990520621909601457208359858243947681654728979104025568977709077575998823137468193585604900420957465642481688499109683442760836165995469614679949417654274985331975332982563867518998999863002772231230936743596204546619636808897423331643459854816838532296349005701701634718847741138685362237718693123900464875465393820428386095095550320416136145430574094933611006413647699424548978113186974386947905312370731671791748048866226770448811915823684175959671351354805318841485877665255375712071457676421448421593449085214107549907729380923042435713219963936646872022518356435563776654220087164228483596049968368611106458549181706353415110918033753900662849450448084828373705345841485948633209732341009834744116860906975455326873957974451894161836518258370789454450711911154912113527027474095947714678922998791513478693581105664050454696751026856396074926129635119593034403725727771411774842085467055687591309587607038145399933754073540594862849126549225572122790874242117546574183525563078555291849723362258466146916350941814186080046056836475075955162801129216520597834322758103692974083108284535008578372760153374132694813205160134653466291001556834916763868856123746627940065754243625287096147314471053807994003487677600780269984772345475321014483836508931283424471482123363990717757791701483417246529337155584203094248354298223497037630324847134954072362515448426816250200862050150048035106057701084837690953365939534191374835806685741298302141297601120562403169593290689455763758005993415112081500843372371159152087955897955573322589242333304098049721644750684894817036836656717419559179417207771501909860577227144490521226451347937982367306071048281183624443109741225204243671263498833325622156999296144311224466834039865302281135192118690640824477723242214064708505304557203647020375567166223166358744051267079112919804700806782781256742101579533372272945786509282590539692698352630095497232889650291011612395632495938691469142160810495768641784401432643374517143870837047794899700263802416488336257031045111100914619844293287313350429835272015443330863710688774622236357034762458523868515030390499052010719572395107470799972615898795471610050461546160668594316296892165854561752860127918228675197222498900064211766164888314341075228323769847917510319265765527909206038777175552508926149321004283771953098086762651409939745057986253426554345960764336358256387391998430408170944159758961977566868800226533597954666649745431038689254716461439706552965346069638510624186908914119596022045205714985141004234613524415205402945793679727577046805418545199541849323139019540590671070406311140214651437089852513661060835020789555404335335781157603386923663588763862592085165953301018196324845833044920254146748072766465081085765297061200009094528857969728510327036699273063149705412033573089082467322036314107578779662053054456535436613705838871081781620325731600325698555742414526813660707611421589958704445785310964491122889515983093801066176780384970971824900773438532472537477116704543661078524563486715923273750553971994992260114032587867969172872018135605510740551756683122359924604207837065046278414794322108609532302392665372954062972595097376609054795221954715225392327173813650604941786844739499475024911419904650552951520352176992091218264770972044461989777064368278045025052530673902402252381976061237753440566429975436229974472322813177460603356100290283294914140364668539476337979873103066737535057821226863457220561083932826093174422302097955307607708611586519951470359763383839581531369969291975773821523395477842770595637091823041729298052647474540207221831839450078873595212592330024161323412134313172833914942720583165458508484149405017278944693085929777527492957890926859182184474019968492818029475770269791176897160966322716021755520824803656943896138200599382052775636395411840752963357470716084740189726184518618543028847441333797892428695483882933979162794661230020035243067446056459070714379160931193212304649154500307859457897201744836190836687259311867977660037214815646560572883540133828797946334751839401644392183546859199014343519262829433248270739376871272990540225388212608846325725322808314659138010916980022703433746760120622595061243999999692295635429259924376367957635695286136220236420473814661674686480752061653601530276298461402082232924198962628337588111725550807578493790683655621362630220125495166844973135665994370562730098708797190300382427741291866949406678146422361495607787884399932043950657158952734372242744540257907399493160606496914090541368306005005485930722572679262308798753601777224927481083215070862598920194547735244597704196627503932882149154782261719354648660310965244000511770513887780816356131933529585411765304244494025986832193631155765551706673378051017245384275056816152837655535068932220212350560907066970070723280503293184585202714527217314709827058789606230594171710537070282564582221187925429824930214095010787414288632101074182728381217343717609543948400020465291471196443563257769170127793865992507211338100504867922098128033755305247286176312584693566372376452329607053857406185620118883500268839572286261984522223636708433859437599359683117115520494848643849568969706673295211092875523364151275868579079222773043753323836316357277413225031784315484420867886818738722675906279751362496155474248413443210522417793631564521422084366112614341197142054364802174093701959043183755183677697169330885644637706772116123715867262157694503510355334082660562609986288462189759779368258760315715106734076938204501858465029809330057171631155923940460602204414019465902006409248355857357277107041903567748256963456690899425894635639515311244619084728098000264314486646764410598829564762051059486909567659312050210565450009863598214973740870664490304301144639508792407729727256286510819585004093179642008836535532006736098155592800952720749465971396111911805438611984815872207066623148533847819817447915740859180141723569956270590381305201178420768433791475201855157074814402338211463039285807047867240189917583177217936690483506657853512072584683777913762762903503992746185422605809073052226152697008128325495929258145912220105062120176471334015618947726431170658777783599544658403677441138111587031103053994538119219731516970317674233297126956071627617689811535000184578728968005540662498822378268950836623404869300470014236262711625613757480762524119120723227377619653258848533555881298175673305868306948412417689937303359471250515184660157909867313715103956799653385279080522136654205566186940330750437039985376122286541379544656657504243166772206247035858344440273128091851878675017697687160018637205453997728403840917989197082335732160329973340158951192579788827080798083545462065909020763966556177390035981250652452617654042549621482960211040237550565938992254802154353232117037765105256980002448348328002778898438164670464486254635584292873673571088285358198677791847169717788346695565660056466608372785458844245149189400016870174535004595958085574107895530302564939366453622786731137076781972951850157547410032505273771360112586582932325052905827941173490193695162386162972582636411880605982365416925118982311165316028864848063431951790836310996577618422220932228343698535249823113452041489976562330558689252114326104012053930632141835572111355218804533447127074212808213635284293043445015683741426461862347991657127834485384359034831054699418334501063600593051158683135678311422298214754107536437902410758401909604183684245776977375921906520875129353420542158309565601452052130192595177222587388708788132830572142613234172571934050471401346077987478542303557851520369679452555047913304095030999215568292649361454596554166674850971531414880774158270940666725537605202356756072124237917730739992964558767323010597662343150564225776463185312411026505795808527438791224546614177013713414717569526514616574366178135940270351190346815697023877951636811454491571489008996862612560485942254465355065406695958359714499914462116094855979699755924813063740573467031432555346800175298729950644407012761687196787654433746439009013238911600558700998200979124524066634778591476304455004826196553227960009414588755024762437875816328555842182679927106121069323288324798890034593709232309165245092203502959825810392625753611143877885633002717285387890050236968665211128059149326151844617688038056837737159240095722742186323036604854073207767731470998283218057285500453203150450961002320306493491347070075679524307949549626135398468556432181281342801738958954273358457356531572614718029171830379950031044190312787931952253277346743739359609186651880086643913694075667645980760520373755599221690464566567651268549405117804130642602030043189732008011164064817517200341751625469688149217464286356730803758545681902535836872037590441321040322917800406266123127737343208377213993450236068320328150909088488680003166619428166232313829249384309356486865247666048743820052281612950501781503536341390851958529585088070983745401126239504184439318996006676308940931820127737600410075553196509335273387694022603083475499621135313034310155507263600902933760634627632088585965998320860456947020577686115147762072394550038013327732947795984134248345704205108988201993712098343263833821457921645777172642772127975585327696350791925207350992506901938509589135891176644732030921607824106120733859552111830028372510096913381143878969863888791879198543272034142680496211161381613723261001673946192333984663743311748804366264157882864111776966225122294734935391492176376962417545600967860621353111520583654202533187593388851248784103429705867345451015382246824380010989927643879140140331630989728956775812855992118515813867647674347780241144823446091524833036459031803070484033801383833815075524505291710089822790629399670646076658530237057238268233196148275368478906001455199042259156542121215906669872574041347652993518532594645816540695746029447156900287848595516821662817191952137808239551692454021182407006454426414967235744247618433672264519555945383716896998590044134301043869595699370811122141616797478606814752524916664037015411981833078169715574458959330098725621136078038387278128806625547705197729853481414786650587196196659552235411960348546456042555383838519146505944792960691355766721557221035317117935832022983183173685095167597815118559622917959364043205257582854119684545667782568655345629085626607002151104466531927965837955636413019791811666175368114368067684170120506247552939000037216047245350396478675494193608223279543983040945349990806696549107260062526380742263877922941590570988808755699826413286307934631148740765228243602775330895583078211212618126488338011806708645172718467344845332075456760252186934341961576422200290853639156866847103494318568599744190780311702418575807474724893398518369304883082349617089580065920674411398920652404234462405144022471604526733250512706909944873688882863017699829249302012892480384249571697142684742204306987886922909297445270512939121279486907647367944368369150201338986052226084947183728990775738475897851129740253159864455033544658653681371708943635277062593131565054913631552835318558039147895275004559015108714411303246029344504320817512041474333746534903799440526912122181790863822589012431576592295753457685969654438625591739843240774042010789137625751645245926529916720754361870332059271791927665896738099542409551121836709184230427063648761404018843422066435060168765080859448629577860876554276881518934908643315428394278716009552550516089267056488180277538790238297346773004178787160202935440106036068125334741706702647592436312924186406763803966611966173247973298351060433835124689034420174068082196002140857027517383688089861880273267311812091280807787776647405272625152288667112774967274455574870942418018914195231868537938942101314800019694296129158445112896108509608375278815823017772611805661588347743194929485534542669559400926392902791729861096028511850645833666737159260817568730281398186497430967713085552871477614109048491087860774856740404805174096955177060032954006414850517807049385509894099949391304747324049821548933208466053482182706564509439605430755826411678376036806700834528246457621741596869077299220734992037773593102065965389610807717982108746202335082490167529851459827129475201006908983891195460060799962467169712534256224089790091706810847535664898530925088628688068224404075182307016419961389491274275947033208940815016987064681810709472985687290773606517796523366573637893115085735368084143800909205570464572659528916146430719914468672697928577981762119950302582922133927327439858659119271501365730951792388871298606181706307875395704960313896154690733674913090154471729727503000759731252963093172804585594213552496682849085585626004945842718874719992522196244658014500892401696732505152223309257861133441604964711784427337419235422259790907971353174343966011901774719509515005020606654604430023874081462627108413317879187617593650960539446695541810545236792744699538482212403573345421292015819091537114555046283863956427941695431657322972062815816674957858702750804264492111746377534800598816727347073472596114830419438471587547866363887789508771055162640257816488979219266556304057135756215099056179205497302330877746259841099123568062386842141394753598288125084145930965456913967114993017853141887956138962536858013473227725384286970691330385032163772281991439333559451605920755319925791614511915973514907147398571124130660395266662159446327995531929322930066345966346673129319453670037447194791941330250738502874918628688134289751412119497690306368627343185065569385291861499665077164945820266149915673258456867926051977970329649965035613206059428630720169848749049186060207710041517741798787498216128998216510262642783519407060769409518060287966097873535722670205183811169758247374106337306987877484565023056984804487428682480119230116446513278749805171676364139744203143378417000286999001067460566869245274567656356673920951637220746856263452711720078513884216861837924155529968017170420775269217385246173155420362142433562919845035126335110843976807562529929162541478096691636205933305361056513917662575039131747323621308252535068368374016773100344623233851249239214373049525246952356750103673644272701552990585060674001075501657654144931269476028401020462726207474928610161674881534015577626174933949084034240296367309981859027791262004925714033568939257800242864994972505074691543404288651256252416192301883051434090288998459940596804017171443968080639773791232058631688508095528075081421154517135341627031485928586750907882487148707595622343714972090479559184129230878426733944416960031293803317095237758324579773820863848441206275208652419246302442099936953408633281023395026579904366866858711549791778731279711133720297516430567559905876850790130802678758851794570591085185125509307450614099490758349539052681827463716510421567060054877083364594955616577779721772553181927425416483153216001886798276234375317484436930306217927660348094850597232734381964696782897322923858637983557448663371295401443623442874422317931230226763037562486944609937825951633170065840982267227452897826366237964595173621139132430977945346685730083508412236592381626216940162483751621124554396091158578348498013271279041547285414961753175803478929629014815807773201809571380014176970650190462139393737346137560044991710261218680965122789618475845666128036218953329985903615806662974303649010623235088953725536656679374526247900770291451673940162913428423604146643375637086755712165842879039326916861531066377914319428468426814617492741283962171429302533094509682554520323458069583321828391610938585659525330551885166564798146660569670047509692533891135639113741484724151305881560272357493153215917725861562325230937410534979514615727009351249769180291276314176203981366642818731004551854962380264019184274969633219219055986248048174645246249432743062668966394838185569584222262288293180950865161711693445411691033938638653111368858222741083987013147148351781403399764714753883633933391851700254692358553084295243082648077933561278851147146048671507538449302050322447189617256434660180924305365558814988565393066975294344591074606633259648776773556564010652856714661641955549587275236415126617073949393818612598184082523488107034057799556272980160651027569304461245632255208277704535437033338018639252176831470585896655869027679252077314118488981297503463058316297767925638901577643681923633197376307548640683101704792474587516365841377129656660208023612858404961585699826440329787047914465719647324599824599882666305738064300787452042483472438139435369099840330435950279412181355944440093749438268314502608723094711715594789140803635659455660851408983952323294942383007708388088454179933173965943179909753037719034548445784080950702109715449331659890272187863462616091858500156648466717559733984780997043774112145186229048949225593117523619121763786649339717019849001287910471971352879507744919980484818066836046525201940857191246538200177535725564625556165070610741950180742052778557365484453566579371326100721293507781028463448868549768372477698261072453121031004655529390205393809838552244651343374435009954277670961505824542927144491761319872102448799015829406186589359843421264733770100744991863736762406702701157371213615538379737248298878357346779913619340575048478506630949365588631503230372886231986964362251153833465273962368569212510309291043437153795459274836447753168471542587508770988876635435991590706406655976886349030924144987043989610258588703040708605380141980318148061195804753322019496090592122632015759851861894884824827850804616810855950535666934531900845110232933207912029997394741550430368382771975559020881178617731007509330739713595404807935330291456768102558267742216870490163590191808998912515146382018505956107044119894037153564513710638989480254201262875166445975207204586899333991775235825219888346460958687257185618419978100501290907020923980240992114534504088749460055121127443730277121576065844204338432770775064436581362080305278604856217064564615963095168055453561461674480308122089568098563017301135436289035085836694604791703304802777983673627861642476826896552519137773810652757749162020910628219025437790838595545249075311710183732934507212243335284968215174301602322568715626398956581239049431726506434687667796625796041620844379570311056335289386431543806545978682865118255400982661940255914584510589585024995410872696090440285162946827766132091458099250345179148801772522827106803261790657664192067817842316889474782299295578232938145287508320640553803503296956578423385050272663441704478430689104980575074714057821979694134894470818513978682717011001881235681679505535465297005478153407478413163253460621194683104940742583683325345876924256652604255569495833534928435128640179623596570031007340667800666596588839539850623520887245155348062919322076345527216911134785699072883654886401262157565637829346197409419106079552647640017593002884915577546681350790166093473839534257573063174543918881651476578626612021622034253133076144415965636277975703823206575016675178647806712480954309825308327272006937505235619982013338939091874661298854293128298227679146405845717296272546565133839316731906628319229543669026547143611296712695000447355515690044770214471945544136333119345767181185446188778643804873943564642055453034826974583825331446675070830044818934840762997722668910926582151843443739259673719465356694416794306147262575341845981532904622550654705067600976838626100866207943933633835175820732083173907787675814434186869122901330374767059045214384848750972235324429080367551258344257785936851358299668443015788101181722326245285044203140675924537472425634593259205341663012773995649371037222655350494853274762934215185687237404049343216081394122955438460859878932267411215542052521586190347993371408642860069762213756273691202184615544754297734094403410786244277040816728945519267304545224600527855009550454376918199336073144029393019710072183395392935748790561379617208644317894034067309241185778593025451723843879306057541907878522730008261156533458688738538941801884462627870873325682680052416151704670811852906480181304737870852140749471341597757300699711916773580114091839862021328322289641805312488506787291929327000581742988399160685717734680489580480436948625870177495097065171959519917386826515353842765280952762849723970575456493123797924966611767325574819927176075954538087669181594406887326624281139947291790541767293113201145826926706714545279530308340102434660227001701291380251476363588149236356453324830390547379702605951608235512852726448679578263535298895599837272030281948934483058119672927179427036440833536193154910283763810683428510350780448820015311753034822243491602883639436483041795550499075081468195576975322689377325685023749549592515697263996996769476761591298635987418864228284216876074636521300147051546344396950481649436501794939704284208749111937326469621271030703747471630266840338729779319044991988642105592435686191450321987516271712565543227558717259514119065405899944107318789757682257021648992321440073046921730134014144350315752940798516986219177103813913029136293671108562313091614021618545148864993019178150460436895629649858162820884489277479886384319044652150779734126776292386728401527712997845300488833298922306127239534627718879914615567819148763585878883683569826852467144819947158423978899668189188310356617345895988596170265365463028417163703214357209409370718418365629043826517849123632857425790006592631226422391291468885007497947005967949929469981403445701627924796185412515053881959647637542725386189610088195419222247319893384918384642299946138522326333227474303573604615103361843291318178490863856130678897778334130204451210312634867270894691847160788536085690732478804076353995055064901039236356325470474115591701041282880231844005419413644343946971826298124049846989000536060836493517231337227101731678330547969570183191744424480730593192414701424025808292355745535240006684955802147732374136576759528651220227962997650740814586554635434994148081979594596038150112486845894308841997693838454738036242261589878670501684841755620811698121108585106529414414780725341682384919304568884149735964454899086302103921558398833601674883175023108235961621442508682944157378293769576120283976457338790313088260973085296766402174317233904041374712266488561884221393791934345661631546060800315204796390791243109787620660282202417130119295734796738869355148895280629457708023477486387575556150425539513154904513532896421929779743723134593421278442413478028707912015210852163142643460900604433733624468288369157698296449081308965262766198014820296085887193779491520698165083127591611835818475569777265123773834075934915759529909204103649344005465710842810263738748679955113069196056243967116132993562793906037114303636675296581425654466579707216519588671012252271018884765700541099692107720451881404093339074395735563403684929934472535780704886610357202881388920069832140287212349834207468207868009689663623299662615787713719674781313046734409669744784982020555525664395405091019839099745084966671403765387642137742092526966365748289001710740640103940689306313411398991293097080542510334229017306696487072153658002257360154420332618821565439418040273486261284136971825968088069527059991213763210063805041534077298177142727923073649644279521174639676985266976985057938564831579618345023749590410072785029156694256757966787866308912019420077381521415558226243572942505113902829938365923577901514789830236302035890472272826757390175854330764934175220133631007256941052532383782312711876867943240210383187317565121057967461473977649385615804226711350072090186417168186857527087027429640970013901416451038447574566164356391152260541594463415680552446090637235716491352007001803800848095664855168199858709810635777780961603866504342542126494240394609122220693022143497597740411846584762476717187415757661746396559521330302022533026382551878953759529282678046249061921945479874270307422158005774882642534950264529617087260612146418148070339212791347407150243429931133628485506573538268043913946539142947277842309166020141459667616726653185806655267135523689121948719105591669238844506974412381347307056580460042343157999808480308730322456412912568930154662214949267729194536836598268520310682585312699075696628739691508569781768585479794407413498251788698356103367478644814661546967850572237038470872867152866337789603114277585448811453134663787796666841302557496392095711295590242291933061973052423765127448292880110576611188925958628272273506199427496902692404225229656397466301738202210440942419165004034047820437651519884691029291750800705355264457054022728522719695036017346810021784091583507267123871077181582015497597690766824250743347481665254893065292820982750262621706316256384167628172997531081066648340232221062393790287535793171925168719844775851371746571032781491868344635488934990211228830181917367069115408804681832648933881289574985579475497068882969716527476541782420421807080610610992160924858570641132999215645919287352140608778264641949445072753827794955603943387107949637732847319139183937430710152248012605500088573213122975028115365948728875917588398895659988772098129240400245746867386495919565718871662603302399701115065562112066656935210816011726916640632316356528629853342156610807220934827929682457476083017179458186853058863962909810183099758733436851424630534330311216485260837219196082029827440814647233710672244817436281619208342229875149270017310091721736240750643444256509134702745894797660360376729456773724081354051229052021368637462738876365735287009542430768409869331556615619402034743994555775013233083167906909535526687332577327551447168453394083484207885269408890254573084084826276002050618040564514730314155158748897077175903618825164385523177885262690841462052848338807792053102313265341581791981637612932381675846139125568550235697347433079880981534796231031918179728239196575998967001419806108622098030005361319095669066198304607300587749823800539084528578356263533969044408831364335094537510258432125190188257222770774326954624288949346531045197424758000494572332870888609854845145065082972851612792157555549296856113900598916738339203971240555545250158766212637385826544813527392561628243618340327966249417758802422544278582754626531369339571723240610214833915894596951152165347748353073752495308279039027337538463367825254602825985938619122964903627559409853120349379241115409697648106134098513696914312160904345293830885516014182494083943445862554388640230790806965337287181657620082360975918781292068436472622440562073267611086737180042583393469789195080243991379008086484328116415269398767516076405619442844790259930031699696500864868725218285004164060284692800535258650839151282472611197901144763442542270857597709782284910095507742736451467034387755707702628789381349426624408877357482128419381171407909812469704454661391046428969578998399148329791504160826387071606092183911835533313332453846301068084299300150519514572466490450236912418592630613298672203348641522514181297374732810632530311643467644625167591294200162445488320759490572919882983250474287493632996758243821545957635441600674441760094851320677603110138267662885526199571540278200748213683470528896945806279634599410381123729941320012049021360237093413062513719668208629732839251901817227242638087589160990141883799415930476216402449489702064280875636510337936019289152603035226658965065424006144099339047852625776307105653759229365553475333725899167205146727440857616969545548475676373793000329812374135588717736929404033692729450667598155187569237947586888423310592763727971205601054155833907277495552325933970126223369917106149988177824589691001082339105937119095567181495915693810565343665461519560504332042583325937860320518013636556189191202823510086135569967710104860606401617963193849004989445073784464567219221137934265801264939069412379852633960351935773627673133612240046549545923733922164795117009859210191109873182655529369569542159113595544631361465837591142778192896113109718636679862246739719526978639054855815125940684542719140759055779900266033191152447163735127818545041638321413481375564563383067652773672454637997636792556053698673690118113793672953821193680271556951514474081912586822534169676694611989441678828477345715584125390670701142777970045403738183090563249461133382808869670848124388580412435261351628815569276321290288008533064934088090201672616725546532649871502871870153900247842331568150143088172278953272402624947097295379747727262670887051363772378942369672139050370187690941696622328965922330700687383919174657273593190722516305044111690484923354050365759793589221885545218116229390436897392041858579787196955212604152363170229911391878863459477763989635975845472423258176265866407773694458158556619053379811173690729112968274497692175073512964941283021165757374996323318397510328018895547188753823291364323705796603750983411945434543030742374731801009664693055713708728311163070674376755114821140269864862084158447992343769661866571916461894931340379614564020813452025726283460695920664149908288071746357044608617110417421158359714483535602880788301671721531212369218152221342638472154600813554597658832950750576498857843220749777147713084106022502695156512570021185575456854437146549676726779741134292304414428012789859406155880601731641714497014048575798002618219834969987232948574318223309729380156771890769320614383821235721114605893327313472603776179960015701072636878879120299245115374474193619150544558964192278242673215106371959253171780059374291153744923985273707136228744369480167480354932467162265472013633553794308443708336675151880706172743127165849273222832347367513821891095189697880822049928726912440019533205269173242030386779271686213730315935638093819660403067410400431364185009522216676184029277338278136805592582811246276410022231379681134063694535119857429848024629086542369336817715142744508604642334856998917133020132187392485416047459595302929004628263293842564821335904384404755157488807079290566001443951943278829082299873545829102932700397000591137035221994421901569804063268096135191117126987446673416280252325376493423588580678356071711108758972669322775836235577553850867956568922374915137247515039075659103207773780104832003067095229657636814902685499743146987193272537279342461230596030734062975893985261118834717285395911604798649626506167635806435013757928779778586160562456325458994820464675889101324805866452585286778201407520654076075232728476286273564802150109922314264431018363023365200250240057089587102362424062597041693834960861602363052521125485203867927350025968991685316653162063167685151648831279164278117126435701254627516448098320981690372087241575860284102879331703424712666408575526742445667634825707099913767286162016203257013670695107371012188882393393541678863399176682066708733066391457255313883201065050136341305103416576400203775418469154332119371571056976056085954067858885348426825901086405460254808308359342051772534002305239423365042765499801270426779264194742388897121945414271270090367155122885794218624088697029504156513648262653372395785283085835651117863769143409624081540856909986027510835380571042589610730286935880901700487143692502558969084097843359636533350408408572627586643854929665520374561622784594796129206863429908446686659178202512755513885687718035738558398471702335163178730754194669541501579856428477105451424607241284436163647235410548575903857104442389599732451911080786212371502400012412969547830519815992798180732915357582694766632678182049019620851137759692900590275998361156917674861564576437651715397257146538851513185130596121065771047535309131836445478161331451392579820171837830854824496308558394916799328612667876695839589160458151659897342679039826579884185639021395614246010931659545511578324980338856950810590728416302785168865139064642850779417797637650836182406968651342657744771289078344570344930023763964295283357249404154081220345164921244228277188838131525232726335052846235048017464192594577773741413097570230925510100361505766638663376600768482437612434237152638423299724183783029496427950915640890232484531234702551210232189577853779125793342505873672679306802747919364785468798006125777363256589900854583833634210250378591016324294882510405945893930231331125729180937475733184152397414921054687993753782139029071079240937911045070275567961594233469888987841155024102772415180464942576848162773090035000449640016010362887678475761304261203446204746004106361573950365096769230931460355822863249537647777461057864723685710830252118564328554727056593235769667423985615307404843799792957651048509649073303383209540747347601082972960406204603462238138718560515760969502675998231556541217237519592352581995958971201545359920334731905125434226546058110868753545742875932611893297495789332850917830313748536254284125393914032550830024999505172699077287406406639570351467022091174195910747835268315428976609774131019880712490385190366038142277978198789956301473241251717625900319235597026881695371767468467562351426734693204693777113895752019699211946018027283512157374435136051833717832680882660609310685085868575906308691392626528845971466285692221256515155592103600412024218116568156523318332209825747281389334071665827081577972698725171766398064730421736051963691435976529670162610053086980429263474635799633308535644243882176908602549897564316504511467235529656878825907667468731473916451923837094080967224363302556232922004805059987875109878403186903727749985404813079605454777634978662278224083293542068310590001703612644841439358751925720695565330363529307443972599406140490043935575375005226138910791539332556647748259485326911676793792012915650935038303441391629109457934618560964699332420485872605220692712028013335545092684855891985373824236888676209123755860359015964652428906666885171972950284245635970807645066237003494247635543092311080573477213600972287871223932069872730861672212707208673649419988567974671728761141186970160851261661508838426333707981751787406976364091126803653665785294471678333403533696014411215476739998083905939973745985558295541778980912898129699477675364509592654065268915026084909375261891841853352053905301476479920649435485336870420927000706127173234447742234072098124971762280688198266074078406810952029115199989950031642508441953084347704913511359145646317842068605763445879570407470371224344439775127186210847776152123188650378367315820738771454728861348205660387125894019179496037316084790620600111675957801014747645071248597618457899779718803927671901168497634082518104418426645663873034343743624088998064164563781511520742173031767185161803762686485410805441684799990221507154853709097802397176032904085889905746557749757360872125004036202552559370572498853252219578780076232694899555681798468050448610617595315163420918381095002892679375209926780397632287710267954093780083503113585800491385060998601812824679132997968137699184859479190201313967152234026750326471293358365014287642276725446972278181888786675234725441662549882423920178427536794677636930182524879368575009515038330883102223355307976734424829734864913137338598000543028842929477870929652803066839812797104388951561711209876876497064246231996743817656616385318476818811200559044392404318290244526303304648516126234431691861368356216997953540898591266753981929074742885508087238236681577643610969661130012162968948384346387828896174333470339372597880004484185713861330309066479483512935538893554039794338189746024639291239851040201195078864537581435989408755242955713272717995923559430564824623885538563916910227766247839255539473659028702014604299795610946500886849997379151687374583861333809360923328858103929561860974070190491898346187835583350251411540173483454973889697776509485737600547333457234778102831933525982227731916186109391827494370039890322195131538713158159637782250839438779059715705734283461364239332683527436016229177867665462609968933481924338347156897007429968477232575430252864725419364958446871291766563168981211404523160471595113006996001616433357496272287136106376222727491555327969396847373765285459697528706385723142022825063939449107385848994696176261469187583445473153496450437979171812706186148231988562762717419111812091365364545684318039005164942253434401198739728129120134109993439457560862735825022133767903949426132497755801705220798398820849404087564560109643388089654630153938495231394567763494066004591962167477352438724399688704894845768648126581502933110498965710362670299761297980954761790202097257787151536378869436432336249005038987277062510879298990106605355657638981267056743251615219428593213874027401037766127255441093400091057040190577531842283663773749150132727364167390793468958793415185532980874362515037710870372213589932853243309478736754049128541608245243591451253211091355662498426100038043484078527003680203587663847745304004692196125417988266207520427352493978145858416021245292614243943458651628495873737522656519338201528898132820234200383506869131014272105778318689236995357811328315125040559278371110986136264309287406075942684460619492839586000152944000753056834571278286664935143819298081049044268492317378293236453609395476202041967496110591185185047565934976230892052073549515313181078111426863306710900788078475007148667745352584996302283190725009156065775574341602326370153372028077920881077575250358444756569839440883625144252857722000994213984461296139124302644506716305912387585295205564421550642378456337442696727083117131760483310351140828339450189729930043698828011436887129824120515720913400612973304169776153739026563197726673336163222374593780661859404209962152590130300335486138303895986352901155376007516264084377613167819962465715689702690701217217063519824480513249228221771369978411569675308564343317643582158425400971944069375958193253795008617084010744437619695873127743223923625933469645284087557433786221478849989726002003276955442853134403828041884172564027045034672017131342064547619451465715239451676746584606228966304868920193622623690741667317887870403215761508057428666608643028193142695622347004996247692769262541273798248199699812838655608413231689453806003753122088911581341295674756973503745200199951949824422238896014137957992495364760448217077500340417639189765179309145478869527515146864773157125209764668971727614482919975593077087304751280792606826418002913682297051962873423882275029863819212157066030596916046624254264175937352707507001109121713407713544687269733686977460405506975222448568418540648682750799969452107676552483509389536044264763164213243751763474032123751624589882093599117557235210082707274861427574689623493113001541390537869010155844721175730275913161457692803211222773825085992999232580774324787179778382393587384769558389947842971438926019335244266573383690923517648241135852032396350250724714360694620954120441674069443508300746766287508927559892556850722944668273870167876483811933883681608722351700636173418002754463529413145592645850585813963091294138506009385689660934760497217223117661123914686860900929668536330715445507417763421046763152884812274013415896370486587652484221937849871961249275421950601956031783541761844681054557494874883063556130333655874228492829233227628288817456160951639355594174416495527679006817064424720303599424568543131211005156363588205983896843073916251677954308105155529448827294591733694051179764713288723275162022315728749330003173324501932326019495861375530866279287238470550860774620500069487042235284502912138382138334221451524922172798979284758589925369536197291854057991601477564973498327798130060112783771381918399425490124577615500736275418833304417290090046002732928081382513768984569986694553039610106830232512451084420217841618792566600199687980276905641145984817759811364500072377981062007687439173359078652412991883829824310391872982456432237527362470626682591375495899354466552617531358531056010855347042116062453100659261175125120829782797335331871857867297221185310879229052457037827936671397775694110666500723109228791586034020095456913252125948300689423408780352742730082352745390983363433128554557935174038267754850514831799443707765421733330432275757987238847022299009763933414909352117662222501180283725649641213241757444020896213010454672179495845982223250530980401929090776412651942734160233973525272797626577536717221568909759680117322173878395554672894772831643199327243389487282927014059856895634389572222727299426256869230195198863193174607566605179463619640919386090863139521280441938522629614551636654602335634118828834167451714485154495086401666388856085295754728990140755564948984148288492940166010219845057290879560438141892914264186673338149240841704412897599748827759148828217022590028777530737572294781037264877830540152088632522232677564175083100866905537153768961816980490654391406469793413126502508056851834592337408800437921478590315951239177296674418029786134360016775682528401268248317100512874639787344700171114736062812049484561130994046107026833170140614094894482036954659303401642077379265529189516555544813426598035610641606531913964847581230730347560797130916244683847078186928272065335404096747941185515996075467392826192382559962816846839559461141435766165023127921844888787246547537921647047880237571754347280731432464894703247173218377304674590490470680965372458152217963178970085409514215620989663089459339148985342514293382974630378162553461339859750931015899724810594253934864775878600468054554602546317752934556638547221907084682076582649155900985524060207417418975156773924898438114570217407094722337270490195932015395120287606867174532722602968945739176462398391156169592862798027315475878314967529140430351159489144898913278336052391560597567987870155379148136139795432675385303915162441533301824764016914179090428631197656442000967852223134998930108110699468995228028179549731232778798661343946368176306933260598192497012964045312251963225767010788534906616442618291597785972767221001341639610554603680780419929216750000896556778640698061032006172638724431851659506835536653324045395299391965543734624630367447478027095175707008392483601363506334317580730492437660766114233509156569588281910133938467274164370475557842596665559607189902939854967067496038465598826953716553634718768228176135915228284903419257249735388197959362825300376498424731187669046290296980133344510498202097084361274716207399548207292482611704347695313281998367941734875880973998923118924303673575598374806982482346627163959040789472090000004725395267916086066704294358964437478957614118721461145201685821608960765542551311055659031621721723993175573020746047560710786334147247373299081023688659435971598783449158544959177850896434939356655445594793150414105432841585199941712248931512597150016312569898629167662509233688302081955648607937562107493304084619229769255856343837882227821782092380126111368957837426434713202635139224873580682890667070476543133124713550124434430560360928583884519031762475638967283607026206594859724182339952220004929665736414865466289369666207275741091982231995171911575621729799582278219565581789667731057187564204881720362423883358343644774891420640269129950170731388305739020606271797596751419572217272980402825994698221255105700632778397690738417955322241798402070044298944500686356676593028992199148919282929406733797065768944954886213660527304681267119140768749519908982769476369012181254986743657767943970340854527088403647560380008083908247591654258240757528662190461090952622322175687070195036583011139581157444572837143357428007184780346080811785912515273830980413471071942988849619939563888560203542890235477386351458396086750275758296036342298037243703295778848646498570926737937141984770821008968466218379758087854468556746148252148357478310226826579532903782233938564137771909360051960353267022625953419813759786518128705023425227706930799333678434472708066620529081364423547153877757496881913068972838949434823327414573901309904498139196551606352109678183521033056572986387074240758597080912124865773801400548464746411864314263826355135337277724044013885184432331317054985181844194747366140115233898039782789259867204948780389427012799045597337987352012573270920161280841107171634455623796538602803423595544596781724841755239430416953918127537099180833936216295355754662817572986517941235393801060932406882726483219495822194957826894711451527237332121978323120878372001315144014897008447232597267233489050962121933909377356602948012917310554776291817060777514097196220852177213980034237763063001733372851324522565967016935849062682640933019207840790930616019321748449502134402387594673886329054960271693586622183773092803737729425844727536928091574297812880553609972243767048997401024741803820053639551187429875595728986503528356915772770154761452183520457244673809164660556590156142004697940877572275001789059029583680613540314058787392220075004511502564370735246817108052093627750132770136090968171275623615395083968643423941782413690604512898828822188285926136337336901317714725577851480693677282557298148925597900152000585275761345051466284675393749245518412456975003009591661848555746589327823758724396686832604334537812733896860724269999523182274062213084890658845309226270922504570034483497034970339275094283234557013374918912196654542361314345363374946009067746168699385556099413199692073339194047465166210032612156547054007892890751107636185388387702245349499997323151790784553214177311628034597143397364683041499950449769461265291649193117900490162708378944805294871268861047988658033289364506995741843767235473949433722064092045152270222762438749171030617452607026251993084816036563288226088107929849027550178592013272619772426073754170539100789226550611265715289277973866096630639781824173591372147761237065135107955160311602537977853248577656624035818729340614081273087431590306566729169713353245183922439625838786828872137961513916862650930591831949577534803559044419912302372258511783753019505423821582549390913161506657248194215318459141856377008675901207182381845603541647147053694769325795424611842049705882945322367051740799615344641143959407804561151242545670747453999585455149217124272156871400268859623688413960771871266216746321341903848364997815133425541497892671081031137477293854511282959193264747984684308758384442579442944710420455231048941230348497067119316299147686272258451153581295150498720125041394876479381071918335755033979563156442625741293597512117941598657946794724753056134195866994190985031552092650031391116118700598102976149767245787285421739115521134449196895112925575106455571066533777164175726196388268996936525837223808055786937286797341237984738725496880713932051554567548484212324650940157491151456630199391571045707745657137887624582934633742667241233617198782330694735107240716326548461483464033395435610625478625994472435599481256253828086418731162130003217744317193252606177768874041846952102331575540901911794487337646839573789604330890410045548590402365478655985952588237874782834625189445381885288988291310985096485978057127398338427476806404470023232614752818492702998778465453311241776010469347785901323803382060177705027902908655796327618489554739500441726213439126306661709385039386050498755925715606912314000557007783512577418088857666185561402387438294546889671182453040418413564162097587800744292480973496446436541022004419563128730652723300176165167336366636889687326455246069958854878230633781287971524342400110510751826167786119051694136291507775124811203459766182370717172535469002828714869178010649946603557804426503445495500807138606909106682424061558136272423152018520134178471430233696489061391748175353197352342293780688948115540432193271359938369288295894301604583976581354293575664710384392884230806953401626467146598962244269530579252130423718929001065863857637334105051953942146839623619789426476327531137628988608211947767676348669411602756265049033691686623903054847031269829481389891071811987315935476083502257982349944810190267183465075286568567211947387097699024118572504598097691777957471814935686689078223320462331536768962333355752206434794738424487487987440449141827100050781208189416717665886152462725253562683063249370646448775996297810846595933729410766338741585366738347947019852128540095975854107571962701565087870509257772477714022826999653985306108564356684511564646017756283822710183598601081855757432353523417001881523751022656215933908756415926921208403114170580098466158901072069693682645295371068046741443369485706449164060227084976038104722979962133337289435363187797977589845981415569075054312930277731370607891186582448867514721174353800044060161818827204543187099813288184776418088805165968054712170451195872376975966140940535835714402914385175158800325952355204413926334996519155424398742619399157890582712422448840324445966542054566324663883004039284843233302527911187519603632661288813430566604216053387478634394874016953835482769114038309524430326248817435230943235458943966205079974144828589574822353617602937684223966005812693566200947968552507640327278059213118885851819900742457496908864201047793597128915692819854860768332320968280451539137630188522108052559189288569981164722404564442902308920951560786274335062617450133900606225592602866522726776461336454725934685585165796074988864346726358830060760738043750659858730066751985719265589705453862046105016451232058379161559153589942756677171576258536476094117138780875011420454430080120875616223466452971236371676325199060664614171506786793498959843199592673152828021657012289991010039045553048482875254091324904340990936661953961743266075548245866212341725312476575141245989075178177287866049903448464509640001959276001541692084650233689829987962002967821719862786803472064433699428875709546416503875163129570700130414571156822759882438683551021166086184536425596189039797630410204828156913481994910094595579696417037388367173913231839587066542589699337638265395826467186783009748068963514687515050098767505446371455124771744213644292176166832169958684238257723858065183577521933159490486837998725454671804521165645739424495821292488274687414795461703208192021263183641342864867559051712541001106863007153502617778803042397841236944769830407963752694854167522186725806779600905551936637982338634248070598213958996633697810032643429180407655132955452358028350177521312365561548025233533019338076978040299268774070721625543522966535990393339322987647737001567098401415714379125560668729388398045428931749278281156136943934899487100037314008021700448124427860732324976228413305337787125764161434696723414401410546697441577626890581271816279774088469631829830114243908700764290680335985352044785481671195483854928719125509453838386582736979577489604385782785080586671956811053235146625879942167374746776309591995991785639206433801646630594299880693544406825322035444861582145274592031928050464947483137486527518969712881136055003743644085192735972161132321367895498161165430618486794106216861005118376525063951269939795994569438786269288015157062141002667807842575369081921000635536089146091042943592264130592077668159284406808113598106913844803330117292687390617667926532045770914843304112746457004497743061638054547854777979306830384249388976295045465550710032494619047884267273129151026473532032308279846076986094787919550764287068636745676173897832987358224641864331978667737919055915999620305742146984964634340420022222531907376809531195963242217199899608242278868060982987460708916988625382075818495046008378925717428248290348671951341373822454836865808484981773994674763868052191249151706690884053024631499420572316517241532848446871251560406174976620395368291874455307668869374949993367994978412033990549395239711672869873419608875683001733175465858308678471168029601766886787329535452459446117144739816751951671904798334872150688759430031710084582893978551390909474470622944110159164868131753185369836277082996293298724574627254171735482871108816334307358041278457068278784306531962531598778143290044522479526472106220889678162181791460245021203547962782092275404354127700077912596291416028109246027491035944315952472182387868540465335126238738991529679299649415420259861585977692247841227583632012066649218072871481190632304340295264049382012612272278369640652773069495035961106705093009382275326269616629515360244743480264683734266937305415268922313533450475710571843607529539676762684871404758493947138892185569590205836555263089153044119513883991172395575823693014134605851995900553774200361046262026588567090946512950332789302774304947710944463117041749370864464074659272375488926026099399162737575027732154815783049541816660138603547638397926445311993451065869922243600044126771178158076385140288671417675887213480435444823362640520299480506487309663995623012001231611597589942931812037596675053121696150364132923404053570462105603617941151398203775566650613114403609336485171066286403173322714268900263231070099187720574528826134281045722430813882659405751691931705420578253529997752223694917151520141662534612015231463873588454065839993687483812366480333870868375766406463558433181527035604961662731752826352071431488154973234254446215055194938784736057817891179508482039051724078623130098905456944043070381031668350679135993232648702617605705492561172755108460250870195216461769630157405000313001197824545870933692826769932596762468258429026191707651402041378656700704956441231860736160484918822740773011675772481853859730505819709460493910538993643448572781176173229259943210049137317994925727525185872247878970364650376953101690525461551757946954537218693655104853727858724186218324863665498982431747841166407616947419886371155072494899135939349072944566494714209288525715070342391423014177970502912223023097722948632755259775270774613987942726163999641968231248060019003016933995743764165341404670537034812798307607670091230143054905944625610544303460527152370097622492869270080952639924600404123246143244688232921076332111643115698699372071195851533021045444349449248666867931846791338552648750888592676792207021359720681550709434398329000991371481789379627503102393456525207921712790409813023035533163562347170723429781341488537649582051026172393483737372984604043284567267551025851754956344282681179842314356079882569972349203483864895965413042125301137355485235779015281973811267278416023826437834809848691136980758650691428790625298443355696041062914218487150081121943481983975802695820862932307882079380777921363527367092638066940281213809596860142342508785708240665474126617404098918473943137452978357928598882450474778058431881435945658124618225490699846479680135769247171435823419900293592875472336808802894804268265099384700195975099309662500913212813297270825743885009773532079600964596223668571706439869858520838814669478186827301629804263675003073119609989063776930524866130045416081086611989388826406968012701018421584509047526271272585123348309166813013535094848752804049697785936979886578582985543647587972426091723744695987618197525787095990741812310797159398931449599169422801502389158223347245555911144477310764584846275392157733559231359773461700552386521749316909968681508636012147140213752122805537328867584502122894475082309599741876966224673274628532586811651840807643045082573725909354134911159410340700993223090473792696983273057279360062493297805496336202246477848618931219894875267413422433604479856179555214861321653835530221363477852008919451230455262389307331544008403169493992695284550751782745525102826884668431342525023401083532110144072945592996415074501006951339095550580741155771219181819140613697593748810747077438977996466685898606735607131230074192844903511775254095688308905854580404760609791807038205535084812277146942301158584108717407903175844329919219859892177412693139459937748823127052423611744624834071703882768820676089528354771708918468006927485041866237847797029352509819437190049783899015344315616913514227569315630758352416117395296188958969024846360971659429683338585711596483171010258556852358430449290411976797540791381330028946519539080838462232244300506964507180563988482300134665053931281664515887077508926809180517623852931400856524318947562471256107436990887550853380239208195445259867489910348855514725025595596020477051273273321399803056010580659188996497632102863869516971921799093683333548656172662519553303498395875985111235631814721455360676172442947543594710920544149936884192755596449957352296689327762448348744211578142728912482016237731958331766962317802729999513823752815792901887273555353476717564679890290120249130897533522631361638870719735902286442472432500270978285141340608371115596964853306133071551695093189441448300172460449315671922692324632398971639526833067596553294485411012103971482445978185762700362770749639468901785871157471594600525827423744055344364359028653094012073888244020904698483173537520203701849597941259845530788264030870837355255793542370096695918510780919066483330685776475894431465632315440838792482593184947292685209050969395269522998659417171756583977954129139733775704724170700379962348705410689126719392446816778837203926436003884470172659723666877952488354618398411725170947949927111919488050124642237353795462260681522711129457873860977183254780603360938624935731347771466737283370067617107568544887308419880323411519323349737909252914933854858762218008285209132240222912267274719644889823830583881531520547537672136966863493089235712095320113561964085745049278331384277577014308779836287053475970837367713993053590744687801343866941091605712437882560043263291701912835877846906061921256611604954050909312353974955342099292729830957263094120928199613463705109836749536287314676695454976030677101113951812296466969080947856736810612482710492400135289900101509639071835495563224676659163180555740644427366722366685262417403395799688204605888964028123482167771490530357303683462088754417588375658571826858104159022353964682711298392595939188314609164466814150932710541972319583112051723912947377281550847331864283947422136076438613742206754855752852677331776348603337778323692591408092268934995624483723940909873556657228715792092702049231086167047946485754455501838662526827180126668768353970893414168355326751032780063249623840042601870600519441939225035415825490106006657720241023047864101054954447905330882158126102997503482501214984315733601462347221823771118240305081194540775024038337349013525472197867703336921708746146214658402716179929878889346526924727890144422445924434743411411205096816339758122524925390022294807368679666041613254406239266084220743303810578971519706752965177776538096476688927351576860946515925305826230948074476189263258482394281684876692441691025327120271767696657187953397597317839665363242200806048133780131108243968611678111744293098427379442642876952085560696409398946750568413842877876019917216883883149468009557779125824311234532449646174865256218208127128262036898905744360644650771855956552487606945154213071706470107649323888398225703362453923339150413626618903797503472344579654932866062027480163807211103367921237326014041082826865389898038139903170304623554304666234915428704535710237873000895176793319290874362393252368201316447733686147877155477982750152427201286548386947697506531788629220339496042649871620642379019400316862772214338931098409585523496678217811524156418659608256696647356290410259012255590083148967476348599076454253101999827325409107022646633966647501503832269208957767268086053691289302092135586694466066542848941062926180576312069141093151195912417960325724107358210754710285424349622419600649124765038175395027663838402988211747046288807278713097095805491771652784297918812562391925287241785326448739947016998700959721164343946376525887864895798031409656768522855013001503456721799132540887501092412750937290299296968598801814838090847305975020872995541028096380198111997261036034249708240741743885392903016540448019049437772754864063706000731027177169014141888387146882895058205929920981771081796719360778102267884011142724900529184365905271402626232854190286664587150395027233926429751803610272161692303922974680621390810841204443831162779821622799386910772810462982080073937971553183474530586405367087294347129309280621249244449175558040141146121149468496408909431651022470097769077656086134257704194837909472643370851879183720842668529934052042497710004830387028279978268099793758081471503778523067415919633280375851754087028036853069178897766140454498761991639976083238157803974419983699482966301853608809138493645099751111403981020617935687924815456837492800113122205461575782836702831243754972762178877076891093525601701587098242179264179342288607721831838520008989060307218494437735756929072983013228946607597856279345064750675856542184225554761285332305611430916738279658478807213254227056317076173212422061738786962358070252553737112096383232400569638790458444795093228776562969215689805596786474732657419137310211558485375113921417745760323674133397154763157094535019296323698702876212846656976482283543255286170043388891700080787479294260055669882906974816605978612380158951190710555645340755461079991270629241337596461144557145283106271818258558300789511191266349985518175072733192162631982159871317708253966977082872337672012453613807514196353477070423204470018253326234403265823518059806469046110601323005060854159918990958387563953264864697469592855718688384464207901716706628832595347080667264630531623071850784224414834145356158622111886988772098208348543918507340507658341167354498591600952995721538826131206178449069134978081231592082090181819980069066274204188702345349444732110348497413710319373071740320776171025790253223648785374402730970106863452231397500581507575871094865217654194806522655257857367883979777406838434679810064954764512702995619396103615118085957950073678021326837476578851624402031684210665027011927815443044412979381386791957592719379664646610025978086714470370186246950275353874471703287654617169180560120596374062201688111222888498225106876516880960388975905478546245244537297500967191313727148917941877872218095982935968552438482018177468517922082286906656708532293299885308446707708241949319877760106976011495914905562339424919951324557789674284462654235823693981795039064574493268663670769989823308966993364750823259123013358768634835988582108094815527924721513857911436055570985491394898010647602355572685601795510160224776402877963404930905640826535011800240861694931834094596549139290304128480373070989429914826369715540164134733102100475998104468971305709626836701980689319644120049403865944044089141776298885877493145733869361230992202684095415004816819906227895032926208389479981704777004142235225889891930285151019139575101323229348674533674660140076071264136534379243801812821076119579762422501149276658127777811951793178406785925193908054071330534861849267909955449283915505993582325257652574125623075413960227852076560635300401070713607868828406555935714230819062066810623802754332697803293948909016409812891034973042962958622892237756257757624745174573222631679709054920468317856060756014839048913707383862496434857133229130308829024950313756597451533697983301965911986725232850447530573777109940000184531688495154950877716817728685252770958083556951477294053881225075009482361843289219967880300502797780570492526863137969630450864264749729440749180052420405494228614950166743890492573230889962572187089815963076989330323223770393189745814492587093133915208558879798522830647971836415295125690737330097884256871944884377733620703239723183890996898269931201362781219120524856162137127083029071617585902484525796977688490630631671452960872494899910264297769574593058190665989958771596428462718513495804183922705368930614036822987442025651652598170893910039817517565807778123917383135946071445824289309789796450890774118349199482105203565651340014844732151244417836080975769506423724633454213621330171155822320706288352988519530000106278248568175707592214380381465384972264412010118740232013422004081494504346515694207767757051987853576358729479301841231296609768837820283108291211298323560973087134749280362673114960857818630719100142011380632213585101109762643008958575976639843853722537601659153137460802604973249565328556886846246965431031199321196494593791409343646699087032644898377323167315913330966807640039874355323507823065100108365419641291504553084691230742133263422590122170328422976230283032799738782395679445943619909591098557182745937704384590347202387732453382904725798951300599416185543855565584152681584025059171658195032761367179724780810193605377027603530929786895814160138322026478002596805823684709070685945597469945757059004996856079425372750409929163303680223062794582193268735666642554329184177329347828835931805601451253701115817828383374344568024783263373590374996035758160401380064023052721790917113847743382869081211457493732011478814181892688284688943592405894893726243982768206432474900288571090006790070047280340532850715288010048580683146469025438495867256113561774458179772462739391995510827753886582547489952718823314313318519480253508909533449939118129940118016215274802631849185057063498044434619469232476481247053656972572303985589776147482825831603122194554446922757696323227341108186070140249682231849453695833927694327868826710958573627385102490048140156341393768580788580509007608857328471260525525285828133171633324048763914432470637754280915755820112046893625038835659952723016558614080057977269896408977502199198476959624344374334798085222308589989121823978579768460121653223647495277230338570819820930117599896431078282848339487889220528461509075477484621006979740323692410780143401552664799334333446241740062072159888203497186576786805067924981184449409187918923840279492238639728271376459012940375646187590195244709652030141819760024193841556169050180422967968222679472440055850535907148976170932145573884354814051073436844373677146039182358770794476679098177383737768639936929338806742449610708952677288877828049285755352835466578221573679803034118534470851697625343988290566156090354808790407959338156818324598427086709164025001548067916925234864146482088996177907031327549305224459754702885896194530901352884257758704324987797925212382606902135181720408277225539072129798124025476520538026268870407538808780035750433807263610902611932066333447615866038549356329966071272236770974687065600340836247487469917396517905210276967954278999570285618539012673379726494912563776573353048031662413619648384054580259401802449590275592136464278548165449364839924562815453933260859615280033213393411128649065169921144683215916020472657026230937192196465453772127602281262159308553705667384891935117529594951709185885171704865272259849059392924969780141003186907942323419070589757761940948848772470157746559763188224279229802073195257702011648367320344186127457546326354791031180106880059019847879618122856750629532065279209131387769906863229117746181116278174547016022005743807541853194184431162335014108319289625882496175820915394377999903473775302838909014429249472988262514694462232854915220379841789802777105964994296308514932622376651695084974851972055157686699184967302238388636517249330250886437617400343412003060118824942068839749633548726777761367539028391247266665398391768704696474991189259061073862301295561606355010799731612861608944177721597791776467781097645046470746526479274306113688645476196266046145589822492942189602665294906576444547569553602231804047181914626734061367150165461159229840210315722569181709916156677125022935088097988495846038738964126161603266789126790156406416207165358903741059647497644499723390309397521949341725777745919831268939907055737292626587277153141195144902631106366006419741791667139398869670984215594796101913494198580932739159086450975811335859467990004801939378691614440170261298012052773133975392734265127061980735274826223221112619927542105313384005579421560856471494405922031914550954979867779025017004757865213775673298193629621698715802406294456232603339665227093284654552136156615028054597214780462098304771116340573024068480155579169799770836220888666373040298547027086887688193758962537367637520511188093046275416929982161704089815794800505245295263592606017253115215583580949269626061695098151282161244995610163636840025294087678218440169263752317333349800458245536581162315077649109292162182132572140098246658511013758900938108660698391217224186705938194697075724079079101984129549014504873724500582278882872994543164193362170229542749615810055492884653546526335160467277518472961136763020853940331546714292944836062182161191974067994116521495224154855446873614512554774148605522418489010493112271426787549192569605458255465311744354610782707754770089324212551863734900155472369223666230301811005458815921628952143128889224971053515052272478565889047470217511701195065668978802850428479218476508332211810259068711418765410562029059226639148420615727117921233744670607220463166835826176054641062582943892487485114075319430300809270829837531769059400439607766856134115967610127764841127409678532289757342786282125680371608749190466223564479967010074616539045077940467027122212407843444661778543051482309852098621563237588820131307768627342021437756138912999391646135838058828657291214613375990239291412831525785169151002880784995265172432334197384194783041847348648684677041468048177326324267220026886409347672452270715714803624668988342201380858252610572771799817601101815742542243281311373616638725504652407437773445540606440354288127313717378419523977328028017049479706161785341154438728390525845925660710043053526818244025447367254355717798729235386296144496860185500631853040835850532991386479218937000341682714757936575166994638114863087767654370789249362037069921544188936740081954384388015299338848526208121544280743186260647697982039204388745214811788653990922454516574973406612306415364127073898238781916258245280629216125493915404274728742570621474768257731851042859620189387512433446939460660949686000696029207233934806480024388825633008989366569586814171931449707374563955286682593095752702759986492434523832833045748562483654316745634813989250999354189328385735610101402244788373352148012673397244885455715462324112702779913470745062488855390770177225317473135303398618196108284663363995297083511953704968538191180364813727354728509685052801722312412528069777485624262160684718054653477278627842122072098676208100772149925507723760810121529924233913139169295625807016471889652238778613091316188547725055786423274247456457961691785715488402034907046135567423694073791961748706992937036686060494034119360698549358858268443834824812028231419808736865491854875137486586536217701768745668814614390339225219348250302201557354687812781755191074319619490364369133642342640118474038314854047528621088233008908723432597452711543040372497738756808942161528475050905461280607408557393958548168574726314153117327467352170386723558070383373820844172572631498933538163733176989396341960891351433951660536779045440102140309203155985594082757970556649435673524596257898700271550256217196196789740191009831496391819824706692767439424255499175349620900923154914769103261812078960990701705028436811374412174984466706205282856557235999321218557772547215734493568153321781710931895927678529253247039804538142812585353960264257180258837793099715363923874147771489823253179152125918506935619536556156191410371482046347974827218894719813480630650629500847063010114816878488840037161069223736128455321847262578891253419202734977239902637786039447627121494980753752448902382724935755918163144458500748451635002505469821297646085878722531053309145168966102450634357478602112756065785513531665553335335513626244918773987326062798530950689170683572837332091790796409827091072273211082504965774529592348909748812956972643302577851550837059840002220445452329449796239198622084031996896783141482752536998868028771781149695657447100664505505398345756260941590323304665564136569479519328828101813644718747209737321222575544966717460604572469215191191283315395718229495536635816893215263733321349698464749681760197912941278934982237491326177752329519732399824024461621315795697648083150006796107014211359896264248876776681583502726051532208516092898715979834814313360622791986458247954598967044608101524123442308091440398372112975653391061350043874734396247407337196881560799553427369695380249853465556257166581227044187195838203876612151277439842467875315581073388858129337483532080204352897661348216696849614995409518480762684331735041667612045811787093435995774109802508136041674248207658385603694774357111429198806701385359000393144818222747077829385025902873895067501815450177868136778378066631491321340677038870429357037866879034414017474114669223158090062565349497496756824533153663351049493339178934725068736003227132590338810235987879982857865195350420258813376774739729268612836833685497264190386574576399015907439731523818645127298068746620659167790076296149309491028150173428805650090575711208889209864307556131137889699342825436498127508680377789524406494171020920184651723875467807796398866941449610686586912511734097488972763783041168910098844768127475130368478800109499646711762933587056958830455209022472834611460401517765719641069846986028864170547411673488038085925638340749701057270082391358306456479008075380972243153100425030235197778806641447620697980685236823682213174636713271803507613353879293410606656535139817385977243193775368886240324240214506337149709559162909650517026500464759189962729424901839027668964645050267926508402026326428685586126514884820767641604029095723212743930859829761533413032350953612018943965371719031077783075795017899511083960990653701742047115441943961738106770118378242329329859885501264165955311515422912605844029041284955015174861727799094287660394073953946038683322357512198197531246196509782600511995909176501763588641504933417478046592168712434116526290564871367293254468757513547818998607856905804114067764463380077914839416149167900654997363148599754723042697204446702589058068039655063168384273638534047193251370937284666218974223089568974158725499484441036484426942250132159477766857554445490993812975601496757195441271013199670797613110203719048381534495808474523133131142379258394585265229480003694202912722866080843978264687139357445207561851863194684004220636883243542394863728168655550467767971064974110784943987715955661425853939726874948509048240091312258602040832256226795378780933996674218192480868582642503073488450826195109706329854288872522241890491819843636941411860710467555321879473888368826047760252074631235755158928092886028031254025537582189072020242174675212042710546118292591922918639077612890856869302484398363481389913383937521372950948362851342840009977657751234169817353499826519991557433063871806071820673929250925738997326450490562334804050843870216773139854075609373463166346884568366722176220348247239843652710341558385871511336748674012980991716843940710417598507369068879004578260555120418912881537943138350390848354648897094634070933321507604001281420088673459262408789513903883148628688949743219799483391719181303852582035585701500516210317039713492514788555715192705435710373829760855728164173060756377744956133656601962804917970998445465936534215888587990357090034652897368993992008347700503298209150527993993348870349541826910310294728009488204196519783829535765946132548807571840363877195283794651757595132358907029150651239288940426786189869010665291688372881820284286126099838603397805911178512362714257180243367533708552598897293801192359489947822560734089520071654067105262783241220724402717181829109487105138638330927144293139047668296618593286028278762656102816283870843766030816102523106004429154815686546922388126382101669726453803828347489609014219981991625737416064978376170336728162423434403932397683362670759895817710056326012933944923385920990632568891915442179506058083336945505281115639869454812216965335172683605298142125855443704180517540338246977187701649633849781391368547902813541601502214936281816680461514091923935328098749642496237703059963956057143067891228006351139404975288867664741850024324239540966138490803234054301902095651255779794725991129015088813459076818883880427748453540301512414940407546870117410373128282599941529156264070027313325601487881009700921914988182182502313843197995134541633537178659513399404130087767586045510085671323036391414970608117818391011531178138757722017089142518307349773532899021894849012504068320511941441308687807360037000033327569103345531832437438077258625089199142334911236341584378882649328691912228139232697199814761939743057474246957896096313640876967703753869523535426920826436663459652753284814984432707834597506454774312973779615495607530800305123876823897397586679736034757450411215721067908485719565200370238508978168341484672245008154384388888080600736340760939045074859278300003644228241684215695200564024340589760775040413628194120492572526832387780907987765396214349596981917129677366454487884897831994935193326556834660040592300359882842214683941920319268408561223303920519805216198048676852982261257595659385853701087156992799936086833271288024271377720412220129847806550599272542993970298077208404886018452291472311377100244299589427937961375867395271888249151544557667137451696808156357286220042824915311425064450390344684441455117183898936116919861425786798280975342415263046933850561367224198074865068713586803888293791160136956513842082508967344748832269060546188747094841322878010482223007279462047086650833163860303460987307798350284464877477411785269011796602728558822118313460544812942094919127199290550791980415074836773567311087878658200391665424804381537213077451553674659541499830619223625734766541676807126877485889020435550029117251538371536026673282122841254134515571365766087822841490042372320475833111361689856829940046172824818457892172625127900677133139868050056781647181356342257145850510516142359686337625096632340202058928247645893971940436563402714192227745053005261948010870616213054280226829244177306322428424268060013623156141728042345647729659226275462915332058023751218271484669856498244402699339636634772189906377890715001494320722104290097326261543811080524743313873018189050586486689837896611040290152814540362893175329323263350675883243264309242143164216086915138406079992456380208845012038622309941954336595436285282668683858622553987296781064907623996319957118624588815130771016977265620637428711244023607361110922069506639072757634054102160828197112202483491834723789500818739890541057239272382894517993759562286992632872837999448428084957162427641853847626576402261457325800641102221317756238594054894217811669312870904195466104687076319778280897297241685572175716051133204211113160545823673683068642062415838156928938715776047438176350356614623490285124862824606291030194003803603355664950045704288963988619576373713074486145197478313600872993305435914011038941249581602504665466169169988495178098522097175695448448561792934085624950363449945460241813651817842140147294529779780894207819253174570796479054035016526287534319740594671329330651431792780732359812544071986062897548301629176235888074235558404678532340191371843209940777748832045775997146027396260446447523503438485033345957738934224242442643869714338836558416135147470153907347511711228530124847541949709174176777773432120761113408601819872854404981240410587847410258263401471030771528423727669952417409659390062085522150917609119221972076053158178866103667213362332043392893755876116951587087303436809265813136756583640473441426327602749526907561062404923835212901816386865993211108428391501388556178622186769193739322681742835017085685603041444873964815167598368547684151106474754429378650939380835585210862102670885260077430198184878657042046301195707141548384876438275623473227454383625809654949338753787206895170611077567224210706009928675900981303247767265576607676873537619877946713027102453707324670799151478281673117436082729831969728060235487683659293909037951100563813553169714252230364615103120324724629806474863056317628661648844244981845716479676345175492880859449605173622716033577155135855540436189150199287016481139607731870972017526955670046604434190782441629337365836140947840542855245150915769260282457723829364386920578229973372952744750971527103901697249443814218202312823620234326121532298026440379343415455950045269581488984658838201501859165171149688086356979981886416415738520721141817501284971052609809771556240020060603944504682649983160257573861054185682699674543674553599228774497855363150301738352806560559664244750336807288467883679258836783286467486322645425678237660368707049116437761238616070247890096039101632508206403331699493503614141475000532571667849795398774935636080126175233427599621680143071223061419378674838095100460710074784661799269238499072094638328445235154986596912715034712993644043627551048901810535332686511675308172686182097371098183183154102382101385722345775126946598969076046105941904283026946312082691948690797916579372115393255142655946534001128131640132905111281887868922563841315464919124520474632147465578855006213566041826456711936620267358257184837894311926937867039785076046024463466396556752107044496530648631815031242622227255899280013101260977402523458770318512117379823053426130470169370493469816699093888347233104652240979594608128039424408329376957254388969924765262682880137502550051772015335785602587970476909521542221492521376478603848323662257255446874570682400566287028011625524542839519717806236158594861506644171311256083756683639523682484741970443056120917713406694572924761756382524973921909802082046683180939579509097556649641305735562154078391715571338749744469706713131450537799140314758273949279708018457654758847967693597613119276659395015083350796729597769209994930669038049136341487235252222644196132917039112071381696284359153809599416889796407593962753612497547317909787051997232470330619523549534420779532074542518598601715705865805108104244594885901576688100454989331859422765070270965350447984661923986009931480581401048372920001159509891839423426406150185243374971737364769835768169763058357209365041879951306683267425654059333819270763391314630709168962673377535868161763135752777490556671669041287117554584549264636019476214451945253919345737483460063717992292597612115868703039129018899990301880257430338577923811342785802501013209298660330406340941453034338311502130523364063826540994161340407668735793217793894192371774344196287318456439195224615006667900014513815993840159043114575976090283490904749693293233493902498404813141196430965307292883093509771074197499463197310084166137254887310806177404071153883328168744336396564475048245658016879216440470866939581513156891555915948410167253630674033752076498681844719089777552285014864418905114031096438286225176514850669930788235336219568465618948458829001969810140283878682623389888134871165878486644092188087609601917336581170993897639045904957785229012358671105533101165631326804056043641634874147401643769966002021479545351223877030185594205771637521518465897146880771709121407641951725043317470278172817341742850951565795661674611127795644099088366419007713538214349222421062259287879814975057044460942762213564746013685481680950986039593107567402393771725240194563955046541100723533816098652733942556027844626615731965092570319527138126679942985600026165754163945338317125173484505208651348232139703283652052428144915906600639129145963432819963233957057618399577795342063632526312227817690862652164075489507227133089688818978269160482510550627973547586974567556140823123890274697603557158494896251114457578763157997421210909078249424204080340495051504932925653123880213425809242902653226708644477843275766750865432347948125450453765101780863486826606983541635076257346479114534329752546661781993555437692392868622005046182591424043275908667777583878564436564334954985124495474016104784736959792137343516439117198805912461153648262326660257990325854849962606915637491840989024169899410047457099493783431514769731717705190787917770000112610257846020344107991653095411229497313981272167860863924216534583895804720362418223595237637631790712487447983106513387854875760095591644396227561155777804410769945877974354086782896454445583304091984967134989176596945652468061608100932872590586427107592921824291846963600862883569110668137551771990504586343342282982522645182131677800128095573994214080840785914570581757836021939307628184512379682476886385890499474328224283875365491044113620456487733518477159749206496253050285589465454381993532923120748567431591911144782882566802767363184325089398777429844363110387058728976221717326724935748524076591207029434491694901723180451841303100404374185913687479632237105823636831812301708326697185322339342299879746484549615148295675905119238008016050532293254926884159524022386116691031336371061644898763990006169375404627142042248796960274149101183493104473884843526703020929458991698653245402528383097723545308159590395746096498999446309212722796514097063574030333141664635926168736139517274812752871996521257242232959578786754971118854571478285566662578398419591039378731735815402305421491848432076628043807749707580291642824203340125377136554484243278664799711600443739306678171379031592673432131195657908157709602075265457622507614719865108519029939482748226954551572754403859563267643609077593780278966390674468401726877124131495714945007413212610079922067774671368621629771258721170261710502635043212469940455787024673725412131350116870261777074122906673921055314088831895603325327803006838507549579926711898137388387102236136811637343156154177171740419506823488191250318540946687850752207716187776938179072487089961134132606215412161059486237601295276569625720358544884281834411618684751968237033319805510538249302018760112085292942640091842976944071113006470640825529669131791158669852433896598346634861876665345383124479481290730162929286095348446414359018007084200841092062102676169161857236926968080224839341270600137084238689197376728786055752957881913812200293912256132740444164103074787263138086525514014538833139729001020798203858875279598485391342563969503083078564094509604452597239764148009742765777810525010057797949689761425636503278852067268344270263084818071257571080300233133047890497760607400462229958790833000574587043113611575494730918882718729759003908187791987557751038302453585931062035753604942670865894485984687333730469805095454106609507999243331340950205553059406718162307350618357247737797264461435160669142911955798210052758070543874659361564998754105665107795624742551951949946298749047773750000922919243703319125227568687646326176082884922079299304505371131640292471687468760066722861337336663372338523784234348097789535773963862150023775997270115203112788806023730483026832729932754441831206412144035577510771146665175603741287265024696026967609841862395583750931345198263651271618404530450788340701163722869587757564465634682629384703642832874070659709393829624936909465647374178097684916793307460812263741260194198221214931959565216813867808156523684219575080803925716462900133104612523597619856067862005495103600397233517430755521694920892204296770509615150759999040007407964178771142209917776437563515499827836486715669588255415281935019565931192841062146710009887911617666280499680614527765849911024548731868324850014594130916131933094173833240694879226270407180121697978603988177849368042032724726681586130618597438858020306924518295014465120019734886742788538995691315072941469129421056649617565060085230993843386296176489181434103245949001991026837768918947187031737194605889912007354193282994064207544515285212568572269053239083397115329746234473706505334749948889733458892398693893861155262095736491822890335750241416853955136016963433846870738416095480244667984594092752738176340022479076720600793906538153892835147029938959602511130866832406627447259701271140675521437023902179445606369753395906264074650789732869041510156177967124642693699472868242887656391719132936452942989663370984335708525519446154521148094291212834164798418980575836154523714010693053344101011131174966330206110865691138649572388851673528189402533307399077371241215679515337818632992715576990235814724189413868221483129745824705885780049693316991137046474695278306860836830128284622755949619132012009489287509436516940816831377328880863566886237826696816925340505986472347092700064539725197441010847200570808853617010434317487070211447384871207774259089257680262868212623631716023964466025614771941325045310980597672177241837415875917490286992793212447081115634577628003783783994050608181485132084264504684593674641479116513309035664685463796331801373435313892850492547616811669275813551427702257365155284449974368982747456872126419837052036606043608124170362652411240377857653051113935566070431959840066359196427306367820843861881869686315230047843210485165376521380088215592788793050084735262231817783842848204661740240405849216358942861101442935126381441287009099335905492018682324929441057452679371301253711134589389305672556719169187829332978577528478183544563014872147165504372944754627751508030264409928722554532769821757885336487810773158598673331774827421099445991880728837893347485899936530732287989505367770025030970998989576569450942501522238621795048104821198977767420938890130940626704806407687027756221091332632034601884112547168989489721543219452391106652177212919352386305303376441234053691493567291655333982286763035784280755036272428817219788683383243945048664797003732470932842987278677772269670637983463391832426921000403663036356586073103534834815396528714425582889254571257352926317984001861402754072309916825351289033526367753253679597323495316772583163275244614859918160039132001728970252663721192606073224346510996702884788544990759331338184931776610831574410849195206123956603563463018918103471066089909542796121936727673360264292276710669568348010896037864140305793242673250098820263339910223734427163264789234572174850074979823100699836500551695721097048590183969259288645044582574048461056758482811877444807060217714011674820455142514584327062095558431925927997151993628838735158168819195160256024367262282708368383324284191620744472597180697545924949010953302184129698998440068832117501586547645605786202949032396475111509902310554016121093181384577382885743531474186641396802980184978007550288833765215285608536105126210736492320825056518240228098167452098716779388701289762878898043161409798615880098057894415485100112756260487936900513470860976720619187345868755307616258820304545957032708177370835191716763430446945139107643097393626256061356769469280605600503136810132889397975476466286201320314734958301178568960370421395419121110184521261732511755627250037682416371193741821056671438116437004452588004790928551955219833746124336784118877509973733254479987549174004542604362591872822528963738264468135007530247337402313074837719117340730699404300897297066453535557989654819973760453900665955638135391077133774017378969106623160620818825254579379159831681542115089297857977939782522483012978188002229806317561161612827084001993014994996656075666033134584757056285518872358042800895063729213366775349245113598894549601371256224662331310220303101839269215719967418932922354767728614751295333502888263231275528432826842412332661279651341897340439761715554361188513342006601328245798340972317767500045131171723806631397666971903803464458676671707250709188105146956429256566559139123739929641722305086860315049202294209181287502802058492927614018159468391117806023662406036008722655610448214375081668527175368786585549777017126508097747920730360068045689578161364750498234768955261720558950346731967154100542904245850280094753263015217101559906343820836954636863944241636509636667605444644133136378677348393330136459480520490190102253039360349460542934527357092312349229973657849982133665030824499958581205528692935373595407280421838119895735422924795016787825299066501087382491905981359967378316788354892647148393080767470634097901433367576197558671544251732027550501668806587268373733610164404703766203164580586296139005793129455551957352816192472953861411165953542845271635710247120147487580727267511300930211905388955418618532750095335609788413344718221061257372678781810506353061979562277938927975455026832475712141944517733140633075978001333951272488129348247903908042427699396757538943206664288920258665038323788922153252373962752878719763789816521151144297253871587135565403990030816714976340101374712553910233692287054564038474322469485165091346943696740878076107200089323129175722968627957300749051990074481234800896090956885201798985031515428526202095562614595338982508079099305227859746729170525336253171384738197522357296896501642732751022181960615598781924079917185576099872440648743082866073567214930819771855951406759440109525565178294361389406019720650244019144918719238568823626534371948217947658854536999652033843499099312507782168498796941013970896892189213580947852982138104401099854398098095982202334695131184150234627796509120430474544856738692246462299372779260666820279835941484957565559103384121513013593993892650602537005014776106321221810932613057977064560043513891349303357394872279047546322211409863758297677974901981729042678845293073537215722377463249450507774022843826808552753529526727429076957701675736437384476954972711652966603832748826009980982901031528646900595398329715450123749924359824785835188942298505729891678236077013302579777854622894227436394608547755730672072537392962210597597744852954578688746670824825819719444722535978957963948478647966212260435833594472897642312065681745221491985417153849173659327028861430427020978005916727998302830993201006901668577701284932508690786141416133310646621146514189468661281904761776339064720526063555993271715351886341876877927301882952580880238648665719830922246596227358198387223094155081427769721795466129662983955758816470702826235575093779221581321145281367301619521767652365556955021324230403354776493664671402787419094586265122816423571957033954701821875494891168737948264039791714844298206616986939627178815507094390642613921063059247361684591549240599710752786225390950032085148414629219482644044280967783389809959339133531395440448536576008584091008331418182177282093443637096236637951612632117414067670108747318264809157222455755650162215087075330774750892357494373523562329537151936927947386369480578867509448397928936129766412504426293336904032029174929736985276777608461108815898230030326108734239771699253973233101929525021033028455960075251735386272381907343698107558477392657485840872910626602603060472174606927349626298270144414455941784597161751198132460385927933973585288667483935316492542844018109486942208799157371984970872839810865182270888831260848362241672037100112855249752306075619607455460790419433497220049601043993775431003155606032285104499477536748069026452214504834320457992933206664014289691838728658507091351170207398387291026295382874109957144389855304141643636437973649214791228551078331032489907219478483928389896880416637911839034035776310868405092032094116245690994724274048687973353273710757565170871291809533491533099976624818503711396216539925195579114401060033872024222031800494241165535184271682582921315953981212227440760778198981305251902721530014667225388205097585574758873283043438355138359419338251266322738174486856904663011352604203907245056546810934653171911730127144197206663762020859759060020050487991954270405342266870550014035876074377173270691388409980416390815428160704643886622079329579175404214842230172528816828026022632183996607846640170970233116345379940876161089418410824720231172837017285260529090919553460221293259625518798148650721096228423136528940328538804212720170642621043913224318231114568513209939969308690281732186152196420981778559391691777385058680837130766404123304092605529233040575928073425667487815879416297116472863391140995611513777597313909606345799793568921911844954223853121427086712422687249803959740678079601136839456101333964814401272413221022230180152132718326142810001989780439353535046633841728089906384487350659504521152881025024515219792326034373391536511592272221167728242837786907796592900881865656757671357766129404072855836681190755186062652264910048018097264164882671873967477976564861456353157630958737309932476299924624504594693062237336048387550123449088836236440453907710571699741423168987521005889932569154048816908271324492537514399197999640072238111290285545442529278862852914943348351983368213341199507025148627368509220976475707361606741092339828892778255760886750916703839199483856721141585046938333029087229770560404147771034264752133862095391461921603512815387214927924171864519487700651634843795094018805272712400162803661169384355281535032702883865584860685426853538112123996757337553664888105190718001209242141835701736444633887805834270080990975777044437602178240124545070074353888615678762370074633057413910423539496547778067167874484336304589567890997759594584501515219839649991883270351285767574896799967590750642408981967890970925639491257061269349172552656863721417550372081434158935994577315024333253086485228995634112467984026547465531848315250588762881291628823897915765500865182085386808818542670074115496288650199037722711915016919331159935769580360262933479756642879008598794465549051591163140046957361717794494834990524368258413085377006930910834041148403179029713177234713793150844015993563570449047400683270298979414064964629612965621401831364516670616887400587341223624397631727294162014809444703154907510879180685104790167478743607798042744191212458891939338540823005882642804556171554274643289003394558892765217796329133335410562510955333358325230547485001745698201868995617715296739163397319949144767942337174550527731342347172502795842856863110437635683482116011053247697060639873193703927574684433247482796930976033853406095798956926878331600639932568129337793216277310686867598667002587936400040505685314411538802672128571108104809866912870126184456034939631997641728015668600763817954706971612742749731480199060055884416979251564920051709433659061871297793892558097262140442469790458934263186994411133769786636881790323535187986951936743631333102555923160913411664751804812025142078006684761195976596464034848978619888039314372458840377911035841689977298873895363281726932334709669699382532987224495369193814456612083596074152817850056968824648448400007018710038388203593707092304334131241488676945120173093327418038692088001724669086995373616139130593227168482387400985964815991839284168739435716677338553687131542143625333856061755678880575918355968084698890007661964858795232139882678885605460255090455056881793961753797437592720420539820342281015917661256815188291677838081829935679093365780011611750792680984298563168448926321416697329118482037092429630563633417122203135174125828404356941044525873160855282574429036081784354209073201224467141306441690025582719994487355696566549183366665215092888760858423601548389822300608657954141516999242539791998638035173249962187844273490624605905880125965594020091697534124816012374223150678629783172280323896976685734534599175570957337121677519464557696389098693012749477206746705347662360747836817177103827066451775096781916441643242763428277606182421242885139039700107962063853404728535328585438041852561552977186707515759918957476568636040447911208687444114897788087408185504405690549554036198720868681268816961697326248661940218262634219300320953480389900262474505053781160005962810424869132476004509167058997536669369907356510103533756277671933713365444585862019360390509852811090121824834603438713497165936745780446599824775322028872877320801680330028204707402909460441193158401352914532935350068777847054229403273922278529996938522284267558999153592909786501281075172677965826663247235580292434071802043619541007092465508114728571143094918165500156388812373993289125682374907866581734666717223141624944051770571309674013764593303774934391400249249561316913668144218388572773731681098047774213466934181764555276282522178248417704299007540409391364526682750354878288188745691181804231700171657241111777970027793207125569100693650190378579792692873492907066032358695788282973226623282909956472700150683385453946288924139203731881620063641190219097356436962468113607665878113942668492916700254837972946280980847704664760747064848049193391718549033464745227482927141587571649455630552855072803487509168564723808987403931662369362901382595811272434229482808899651527101246783532151959158826791935811143025630675242053110428430472215209632161377726694009498623654137168067353840081675994148332924191359081062024101746246523250222917510769593595357158540670018515180481083168542284655388366197093014045445022928201094721197298637045982931954459137682640335691192083822425079493052211494736543289490057753947564309045356162064630155690742678458587237545518863999409355306579126146907342096044185398026019200675487582661012135585018554677232950088686198772453206497661918995226041006922979414862089043617204545825188503444608092221380409864735274912633975676594700905626556466124201104918615912998151396258676054739477805437096104482902948518642827306104602821411559931969778769151177730946128159466014117906269450084429359999954924318250334633754644189893733409013092987335312958759419437608761325763445684369729002556146459396328901509329517900660781737188159346225655890893596981666277301085639405837010366950102310597250567692271748228581893144990636161182383639079032358689393389618607571209429873742128845591187458378963924617641785743570489640971429726075644706305601170238089185877124694406570847338083010871937819254868435005691932619439213773579210073146341185934770551145379508116605297258549567640607789393462713298892354176933628260874058797419333555991910182383629368385701157942185865334744495759434503418475681962357023474392630533822515799643734442923935089611329501227398991456686327306371426736023584679353525299189069297821827902986859765386911954393202974706564943519288309976184465897201926677285272654263693686224810853576464946135452296218983710996049317620014464362643670049428149852625457903300739932112354191287394817451563585617802231082981508731931668802817701750464726463270483672964358053788772184493283849712967812906654057486049907538793231527386850232585989554464461299002724665575204221011852306863785352339099106776984470280620892610176839272015774357043324404492748312410543019929735925249117570459137819116123856291100656941238040115833477993081199814463147321547391505441139252778568464050302164342765958300756050070445395355241170303438562991770172048082627617338042433756317157007598354686215835368340042322282097860854330563892126232405906123345109257555321007569957922716969287059563148494738620693975505637273735925779141849644563601306038565408856723570479337840951460636211483281467130472659447754669703629594070780449015616589511075744353555260921359046709841845398837556650335481422879938984413436406794836230147786445427722675246378107796977488869130768340168143374639832994820416200043001424604245786788350859357893685970035303792563582103043313189613472975010921413745010846658968353170319316757938940958323210669410208724671212073434078223005902412277316374596178203503195480380945660180346416598278620886790210184286888158607137733754448797412411078429091211530526726485145654994234071581640063103846214503058837869451985816727665037030625006776341047869425270205098603833475529271032557207556037238854677780291585268233137964239739402722027526080840549326959927391832965466258764295696668527606922707219614026161009658817217441599666366352602002898472031428871781507668249930829856876234146354717608140050044939529126556641291873040134667799053192507638762178128794946640308473831104020169443857368475646733823662102535998401849356683274214424668960313380478689001763583407733786958446565553779892456037300351935755208025962882078335258887709888654214289803653590513683764011340667700328355799706019058255721522976670243567633670303128014386378026205996072298020032505133802443916020202807531469135774443617099626641908464310205172445653333957753955404020891883932748583586707290324367186940725402202959372140637911291624691705602131895858000014748656339809810414737236327780152639562910043627834255987667154202032002793341220077582671308150209731732769295932918378727106960863349973968956005901366474368580608940671521210291171572826496147831455194832397241946495642600280895607027621650408601095287028973169279809156353434764579625414851834086356624832516766316539320267111218179927147242300600065588800846221006303960196229138534985490754894838934638546790273050334442353507534664791779636903820092390620509067012957913333838069573313118067771897935663744924368193307274143810829372798047076510167632081576085428043337428194669820013202327924462816326160957746432153533534047734791339748921382823441848606915621301580091021586556713573399346769370605904442390652049713340530954020600327610336149167983979924231123109998189328155533314957649609707732150353970643148551633219606270203153093542628147057541174317916384925467785068516178788089421091757070856960345435067977415857580609491421583556500220148811897887162082677574392520181585804677593564517909920739796647438916542414541698337595589421114392488621891552485858574941933928642261684526409561530102584050140538161232821183903273434587084421381088947107856229176187168692458098519101804144443325188330918050231190987712819267974139731450895929911802020266587914204179253994413049764139037705578386754918174748113481171774621780744131315482005681628938686243831718448897776964011093261517774179932137133530706042622170351122559437720635371856014993036770592330613286181457431839695900489646302078543544758465914149975608292163399407774237330249950729094462049894081507814226300605530129711223348021946163534624374252573294592