円周率

出典: 究極の八百科事典『ウソペディア』
 
終わらない工事
この記事は工事中です。ですがこのままいけば、この工事は終わらなさそうです。今見ているあなたも工事に協力してください。もちろん、空気を読んでの話ですけど。
注意: このページは668日間編集されていません。もしかしたら放置されているかもしれません。
「円周率、、。すべて書きましょう。」
円周率 について、ウソペディア

円周率=3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019893809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151557485724245415069595082953311686172785588907509838175463746493931925506040092770167113900984882401285836160356370766010471018194295559619894676783744944825537977472684710404753464620804668425906949129331367702898915210475216205696602405803815019351125338243003558764024749647326391419927260426992279678235478163600934172164121992458631503028618297455570674983850549458858692699569092721079750930295532116534498720275596023648066549911988183479775356636980742654252786255181841757467289097777279380008164706001614524919217321721477235014144197356854816136115735255213347574184946843852332390739414333454776241686251898356948556209921922218427255025425688767179049460165346680498862723279178608578438382796797668145410095388378636095068006422512520511739298489608412848862694560424196528502221066118630674427862203919494504712371378696095636437191728746776465757396241389086583264599581339047802759009946576407895126946839835259570982582262052248940772671947826848260147699090264013639443745530506820349625245174939965143142980919065925093722169646151570985838741059788595977297549893016175392846813826868386894277415599185592524595395943104997252468084598727364469584865383673622262609912460805124388439045124413654976278079771569143599770012961608944169486855584840635342207222582848864815845602850601684273945226746767889525213852254995466672782398645659611635488623057745649803559363456817432411251507606947945109659609402522887971089314566913686722874894056010150330861792868092087476091782493858900971490967598526136554978189312978482168299894872265880485756401427047755513237964145152374623436454285844479526586782105114135473573952311342716610213596953623144295248493718711014576540359027993440374200731057853906219838744780847848968332144571386875194350643021845319104848100537061468067491927819119793995206141966342875444064374512371819217999839101591956181467514269123974894090718649423196156794520809514655022523160388193014209376213785595663893778708303906979207734672218256259966150142150306803844773454920260541466592520149744285073251866600213243408819071048633173464965145390579626856100550810665879699816357473638405257145910289706414011097120628043903975951567715770042033786993600723055876317635942187312514712053292819182618612586732157919841484882916447060957527069572209175671167229109816909152801735067127485832228718352093539657251210835791513698820914442100675103346711031412671113699086585163983150197016515116851714376576183515565088490998985998238734552833163550764791853589322618548963213293308985706420467525907091548141654985946163718027098199430992448895757128289059232332609729971208443357326548938239119325974636673058360414281388303203824903758985243744170291327656180937734440307074692112019130203303801976211011004492932151608424448596376698389522868478312355265821314495768572624334418930396864262434107732269780280731891544110104468232527162010526522721116603966655730925471105578537634668206531098965269186205647693125705863566201855810072936065987648611791045334885034611365768675324944166803962657978771855608455296541266540853061434443185867697514566140680070023787765913440171274947042056223053899456131407112700040785473326993908145466464588079727082668306343285878569830523580893306575740679545716377525420211495576158140025012622859413021647155097925923099079654737612551765675135751782966645477917450112996148903046399471329621073404375189573596145890193897131117904297828564750320319869151402870808599048010941214722131794764777262241425485454033215718530614228813758504306332175182979866223717215916077166925474873898665494945011465406284336639379003976926567214638530673609657120918076383271664162748888007869256029022847210403172118608204190004229661711963779213375751149595015660496318629472654736425230817703675159067350235072835405670403867435136222247715891504953098444893330963408780769325993978054193414473774418426312986080998886874132604721569516239658645730216315981931951673538129741677294786724229246543668009806769282382806899640048243540370141631496589794092432378969070697794223625082216889573837986230015937764716512289357860158816175578297352334460428151262720373431465319777741603199066554187639792933441952154134189948544473456738316249934191318148092777710386387734317720754565453220777092120190516609628049092636019759882816133231666365286193266863360627356763035447762803504507772355471058595487027908143562401451718062464362679456127531813407833033625423278394497538243720583531147711992606381334677687969597030983391307710987040859133746414428227726346594704745878477872019277152807317679077071572134447306057007334924369311383504931631284042512192565179806941135280131470130478164378851852909285452011658393419656213491434159562586586557055269049652098580338507224264829397285847831630577775606888764462482468579260395352773480304802900587607582510474709164396136267604492562742042083208566119062545433721315359584506877246029016187667952406163425225771954291629919306455377991403734043287526288896399587947572917464263574552540790914513571113694109119393251910760208252026187985318877058429725916778131496990090192116971737278476847268608490033770242429165130050051683233643503895170298939223345172201381280696501178440874519601212285993716231301711444846409038906449544400619869075485160263275052983491874078668088183385102283345085048608250393021332197155184306354550076682829493041377655279397517546139539846833936383047461199665385815384205685338621867252334028308711232827892125077126294632295639898989358211674562701021835646220134967151881909730381198004973407239610368540664319395097901906996395524530054505806855019567302292191393391856803449039820595510022635353619204199474553859381023439554495977837790237421617271117236434354394782218185286240851400666044332588856986705431547069657474585503323233421073015459405165537906866273337995851156257843229882737231989875714159578111963583300594087306812160287649628674460477464915995054973742562690104903778198683593814657412680492564879855614537234786733039046883834363465537949864192705638729317487233208376011230299113679386270894387993620162951541337142489283072201269014754668476535761647737946752004907571555278196536213239264061601363581559074220202031872776052772190055614842555187925303435139844253223415762336106425063904975008656271095359194658975141310348227693062474353632569160781547818115284366795706110861533150445212747392454494542368288606134084148637767009612071512491404302725386076482363414334623518975766452164137679690314950191085759844239198629164219399490723623464684411739403265918404437805133389452574239950829659122850855582157250310712570126683024029295252201187267675622041542051618416348475651699981161410100299607838690929160302884002691041407928862150784245167090870006992821206604183718065355672525325675328612910424877618258297651579598470356222629348600341587229805349896502262917487882027342092222453398562647669149055628425039127577102840279980663658254889264880254566101729670266407655904290994568150652653053718294127033693137851786090407086671149655834343476933857817113864558736781230145876871266034891390956200993936103102916161528813843790990423174733639480457593149314052976347574811935670911013775172100803155902485309066920376719220332290943346768514221447737939375170344366199104033751117354719185504644902636551281622882446257591633303910722538374218214088350865739177150968288747826569959957449066175834413752239709683408005355984917541738188399944697486762655165827658483588453142775687900290951702835297163445621296404352311760066510124120065975585127617858382920419748442360800719304576189323492292796501987518721272675079812554709589045563579212210333466974992356302549478024901141952123828153091140790738602515227429958180724716259166854513331239480494707911915326734302824418604142636395480004480026704962482017928964766975831832713142517029692348896276684403232609275249603579964692565049368183609003238092934595889706953653494060340216654437558900456328822505452556405644824651518754711962184439658253375438856909411303150952617937800297412076651479394259029896959469955657612186561967337862362561252163208628692221032748892186543648022967807057656151446320469279068212073883778142335628236089632080682224680122482611771858963814091839036736722208883215137556003727983940041529700287830766709444745601345564172543709069793961225714298946715435784687886144458123145935719849225284716050492212424701412147805734551050080190869960330276347870810817545011930714122339086639383395294257869050764310063835198343893415961318543475464955697810382930971646514384070070736041123735998434522516105070270562352660127648483084076118301305279320542746286540360367453286510570658748822569815793678976697422057505968344086973502014102067235850200724522563265134105592401902742162484391403599895353945909440704691209140938700126456001623742880210927645793106579229552498872758461012648369998922569596881592056001016552563756785667227966198857827948488558343975187445455129656344348039664205579829368043522027709842942325330225763418070394769941597915945300697521482933665556615678736400536665641654732170439035213295435291694145990416087532018683793702348886894791510716378529023452924407736594956305100742108714261349745956151384987137570471017879573104229690666702144986374645952808243694457897723300487647652413390759204340196340391147320233807150952220106825634274716460243354400515212669324934196739770415956837535551667302739007497297363549645332888698440611964961627734495182736955882207573551766515898551909866653935494810688732068599075407923424023009259007017319603622547564789406475483466477604114632339056513433068449539790709030234604614709616968868850140834704054607429586991382966824681857103188790652870366508324319744047718556789348230894310682870272280973624809399627060747264553992539944280811373694338872940630792615959954626246297070625948455690347119729964090894180595343932512362355081349490043642785271383159125689892951964272875739469142725343669415323610045373048819855170659412173524625895487301676002988659257866285612496655235338294287854253404830833070165372285635591525347844598183134112900199920598135220511733658564078264849427644113763938669248031183644536985891754426473998822846218449008777697763127957226726555625962825427653183001340709223343657791601280931794017185985999338492354956400570995585611349802524990669842330173503580440811685526531170995708994273287092584878944364600504108922669178352587078595129834417295351953788553457374260859029081765155780390594640873506123226112009373108048548526357228257682034160504846627750450031262008007998049254853469414697751649327095049346393824322271885159740547021482897111777923761225788734771881968254629812686858170507402725502633290449762778944236216741191862694396506715157795867564823993917604260176338704549901761436412046921823707648878341968968611815581587360629386038101712158552726683008238340465647588040513808016336388742163714064354955618689641122821407533026551004241048967835285882902436709048871181909094945331442182876618103100735477054981596807720094746961343609286148494178501718077930681085469000944589952794243981392135055864221964834915126390128038320010977386806628779239718014613432445726400973742570073592100315415089367930081699805365202760072774967458400283624053460372634165542590276018348403068113818551059797056640075094260878857357960373245141467867036880988060971642584975951380693094494015154222219432913021739125383559150310033303251117491569691745027149433151558854039221640972291011290355218157628232831823425483261119128009282525619020526301639114772473314857391077758744253876117465786711694147764214411112635835538713610110232679877564102468240322648346417663698066378576813492045302240819727856471983963087815432211669122464159117767322532643356861461865452226812688726844596844241610785401676814208088502800541436131462308210259417375623899420757136275167457318918945628352570441335437585753426986994725470316566139919996826282472706413362221789239031760854289437339356188916512504244040089527198378738648058472689546243882343751788520143956005710481194988423906061369573423155907967034614914344788636041031823507365027785908975782727313050488939890099239135033732508559826558670892426124294736701939077271307068691709264625484232407485503660801360466895118400936686095463250021458529309500009071510582362672932645373821049387249966993394246855164832611341461106802674466373343753407642940266829738652209357016263846485285149036293201991996882851718395366913452224447080459239660281715655156566611135982311225062890585491450971575539002439315351909021071194573002438801766150352708626025378817975194780610137150044899172100222013350131060163915415895780371177927752259787428919179155224171895853616805947412341933984202187456492564434623925319531351033114763949119950728584306583619353693296992898379149419394060857248639688369032655643642166442576079147108699843157337496488352927693282207629472823815374099615455987982598910937171262182830258481123890119682214294576675807186538065064870261338928229949725745303328389638184394477077940228435988341003583854238973542439564755568409522484455413923941000162076936368467764130178196593799715574685419463348937484391297423914336593604100352343777065888677811394986164787471407932638587386247328896456435987746676384794665040741118256583788784548581489629612739984134427260860618724554523606431537101127468097787044640947582803487697589483282412392929605829486191966709189580898332012103184303401284951162035342801441276172858302435598300320420245120728725355811958401491809692533950757784000674655260314461670508276827722235341911026341631571474061238504258459884199076112872580591139356896014316682831763235673254170734208173322304629879928049085140947903688786878949305469557030726190095020764334933591060245450864536289354568629585313153371838682656178622736371697577418302398600659148161640494496501173213138957470620884748023653710311508984279927544268532779743113951435741722197597993596852522857452637962896126915723579866205734083757668738842664059909935050008133754324546359675048442352848747014435454195762584735642161981340734685411176688311865448937769795665172796623267148103386439137518659467300244345005449953997423723287124948347060440634716063258306498297955101095418362350303094530973358344628394763047756450150085075789495489313939448992161255255977014368589435858775263796255970816776438001254365023714127834679261019955852247172201777237004178084194239487254068015560359983905489857235467456423905858502167190313952629445543913166313453089390620467843877850542393905247313620129476918749751910114723152893267725339181466073000890277689631148109022097245207591672970078505807171863810549679731001678708506942070922329080703832634534520380278609905569001341371823683709919495164896007550493412678764367463849020639640197666855923356546391383631857456981471962108410809618846054560390384553437291414465134749407848844237721751543342603066988317683310011331086904219390310801437843341513709243530136776310849135161564226984750743032971674696406665315270353254671126675224605511995818319637637076179919192035795820075956053023462677579439363074630569010801149427141009391369138107258137813578940055995001835425118417213605572752210352680373572652792241737360575112788721819084490061780138897107708229310027976659358387589093956881485602632243937265624727760378908144588378550197028437793624078250527048758164703245812908783952324532378960298416692254896497156069811921865849267704039564812781021799132174163058105545988013004845629976511212415363745150056350701278159267142413421033015661653560247338078430286552572227530499988370153487930080626018096238151613669033411113865385109193673938352293458883225508870645075394739520439680790670868064450969865488016828743437861264538158342807530618454859037982179945996811544197425363443996029025100158882721647450068207041937615845471231834600726293395505482395571372568402322682130124767945226448209102356477527230820810635188991526928891084555711266039650343978962782500161101532351605196559042118449499077899920073294769058685778787209829013529566139788848605097860859570177312981553149516814671769597609942100361835591387778176984587581044662839988060061622984861693533738657877359833616133841338536842119789389001852956919678045544828584837011709672125353387586215823101331038776682721157269495181795897546939926421979155233857662316762754757035469941489290413018638611943919628388705436777432242768091323654494853667680000010652624854730558615989991401707698385483188750142938908995068545307651168033373222651756622075269517914422528081651716677667279303548515420402381746089232839170327542575086765511785939500279338959205766827896776445318404041855401043513483895312013263783692835808271937831265496174599705674507183320650345566440344904536275600112501843356073612227659492783937064784264567633881880756561216896050416113903906396016202215368494109260538768871483798955999911209916464644119185682770045742434340216722764455893301277815868695250694993646101756850601671453543158148010545886056455013320375864548584032402987170934809105562116715468484778039447569798042631809917564228098739987669732376957370158080682290459921236616890259627304306793165311494017647376938735140933618332161428021497633991898354848756252987524238730775595559554651963944018218409984124898262367377146722606163364329640633572810707887581640438148501884114318859882769449011932129682715888413386943468285900666408063140777577257056307294004929403024204984165654797367054855804458657202276378404668233798528271057843197535417950113472736257740802134768260450228515797957976474670228409995616015691089038458245026792659420555039587922981852648007068376504183656209455543461351341525700659748819163413595567196496540321872716026485930490397874895890661272507948282769389535217536218507962977851461884327192232238101587444505286652380225328438913752738458923844225354726530981715784478342158223270206902872323300538621634798850946954720047952311201504329322662827276321779088400878614802214753765781058197022263097174950721272484794781695729614236585957820908307332335603484653187302930266596450137183754288975579714499246540386817992138934692447419850973346267933210726868707680626399193619650440995421676278409146698569257150743157407938053239252394775574415918458215625181921552337096074833292349210345146264374498055961033079941453477845746999921285999993996122816152193148887693880222810830019860165494165426169685867883726095877456761825072759929508931805218729246108676399589161458550583972742098090978172932393010676638682404011130402470073508578287246271349463685318154696904669686939254725194139929146524238577625500474852954768147954670070503479995888676950161249722820403039954632788306959762493615101024365553522306906129493885990157346610237122354789112925476961760050479749280607212680392269110277722610254414922157650450812067717357120271802429681062037765788371669091094180744878140490755178203856539099104775941413215432844062503018027571696508209642734841469572639788425600845312140659358090412711359200419759851362547961606322887361813673732445060792441176399759746193835845749159880976674470930065463424234606342374746660804317012600520559284936959414340814685298150539471789004518357551541252235905906872648786357525419112888773717663748602766063496035367947026923229718683277173932361920077745221262475186983349515101986426988784717193966497690708252174233656627259284406204302141137199227852699846988477023238238400556555178890876613601304770984386116870523105531491625172837327286760072481729876375698163354150746088386636406934704372066886512756882661497307886570156850169186474885416791545965072342877306998537139043002665307839877638503238182155355973235306860430106757608389086270498418885951380910304235957824951439885901131858358406674723702971497850841458530857813391562707603563907639473114554958322669457024941398316343323789759556808568362972538679132750555425244919435891284050452269538121791319145135009938463117740179715122837854601160359554028644059024964669307077690554810288502080858008781157738171917417760173307385547580060560143377432990127286772530431825197579167929699650414607066457125888346979796429316229655201687973000356463045793088403274807718115553309098870255052076804630346086581653948769519600440848206596737947316808641564565053004988161649057883115434548505266006982309315777650037807046612647060214575057932709620478256152471459189652236083966456241051955105223572397395128818164059785914279148165426328920042816091369377737222999833270820829699557377273756676155271139225880552018988762011416800546873655806334716037342917039079863965229613128017826797172898229360702880690877686605932527463784053976918480820410219447197138692560841624511239806201131845412447820501107987607171556831540788654390412108730324020106853419472304766667217498698685470767812051247367924791931508564447753798537997322344561227858432968466475133365736923872014647236794278700425032555899268843495928761240075587569464137056251400117971331662071537154360068764773186755871487839890810742953094106059694431584775397009439883949144323536685392099468796450665339857388878661476294434140104988899316005120767810358861166020296119363968213496075011164983278563531614516845769568710900299976984126326650234771672865737857908574664607722834154031144152941880478254387617707904300015669867767957609099669360755949651527363498118964130433116627747123388174060373174397054067031096767657486953587896700319258662594105105335843846560233917967492678447637084749783336555790073841914731988627135259546251816043422537299628632674968240580602964211463864368642247248872834341704415734824818333016405669596688667695634914163284264149745333499994800026699875888159350735781519588990053951208535103572613736403436753471410483601754648830040784641674521673719048310967671134434948192626811107399482506073949507350316901973185211955263563258433909982249862406703107683184466072912487475403161796994113973877658998685541703188477886759290260700432126661791922352093822787888098863359911608192353555704646349113208591897961327913197564909760001399623444553501434642686046449586247690943470482932941404111465409239883444351591332010773944111840741076849810663472410482393582740194493566516108846312567852977697346843030614624180358529331597345830384554103370109167677637427621021370135485445092630719011473184857492331816720721372793556795284439254815609137281284063330393735624200160456645574145881660521666087387480472433912129558777639069690370788285277538940524607584962315743691711317613478388271941686066257210368513215664780014767523103935786068961112599602818393095487090590738613519145918195102973278755710497290114871718971800469616977700179139196137914171627070189584692143436967629274591099400600849835684252019155937037010110497473394938778859894174330317853487076032219829705797511914405109942358830345463534923498268836240433272674155403016195056806541809394099820206099941402168909007082133072308966211977553066591881411915778362729274615618571037217247100952142369648308641025928874579993223749551912219519034244523075351338068568073544649951272031744871954039761073080602699062580760202927314552520780799141842906388443734996814582733720726639176702011830046481900024130835088465841521489912761065137415394356572113903285749187690944137020905170314877734616528798482353382972601361109845148418238081205409961252745808810994869722161285248974255555160763716750548961730168096138038119143611439921063800508321409876045993093248510251682944672606661381517457125597549535802399831469822036133808284993567055755247129027453977621404931820146580080215665360677655087838043041343105918046068008345911366408348874080057412725867047922583191274157390809143831384564241509408491339180968402511639919368532255573389669537490266209232613188558915808324555719484538756287861288590041060060737465014026278240273469625282171749415823317492396835301361786536737606421667781377399510065895288774276626368418306801908046098498094697636673356622829151323527888061577682781595886691802389403330764419124034120223163685778603572769415417788264352381319050280870185750470463129333537572853866058889045831114507739429352019943219711716422350056440429798920815943071670198574692738486538334361457946341759225738985880016980147574205429958012429581054565108310462972829375841611625325625165724980784920998979906200359365099347215829651741357984910471116607915874369865412223483418877229294463351786538567319625598520260729476740726167671455736498121056777168934849176607717052771876011999081441130586455779105256843048114402619384023224709392498029335507318458903553971330884461741079591625117148648744686112476054286734367090466784686702740918810142497111496578177242793470702166882956108777944050484375284433751088282647719785400065097040330218625561473321177711744133502816088403517814525419643203095760186946490886815452856213469883554445602495566684366029221951248309106053772019802183101032704178386654471812603971906884623708575180800353270471856594994761242481109992886791589690495639476246084240659309486215076903149870206735338483495508363660178487710608098042692471324100094640143736032656451845667924566695510015022983307984960799498824970617236744936122622296179081431141466094123415935930958540791390872083227335495720807571651718765994498569379562387555161757543809178052802946420044721539628074636021132942559160025707356281263873310600589106524570802447493754318414940148211999627645310680066311838237616396631809314446712986155275982014514102756006892975024630401735148919457636078935285550531733141645705049964438909363084387448478396168405184527328840323452024705685164657164771393237755172947951261323982296023945485797545865174587877133181387529598094121742273003522965080891777050682592488223221549380483714547816472139768209633205083056479204820859204754998573203888763916019952409189389455767687497308569559580106595265030362661597506622250840674288982659075106375635699682115109496697445805472886936310203678232501823237084597901115484720876182124778132663304120762165873129708112307581598212486398072124078688781145016558251361789030708608701989758898074566439551574153631931919810705753366337380382721527988493503974800158905194208797113080512339332219034662499171691509485414018710603546037946433790058909577211808044657439628061867178610171567409676620802957665770512912099079443046328929473061595104309022214393718495606340561893425130572682914657832933405246350289291754708725648426003496296116541382300773133272983050016025672401418515204189070115428857992081219844931569990591820118197335001261877280368124819958770702075324063612593134385955425477819611429351635612234966615226147353996740515849986035529533292457523888101362023476246690558164389678630976273655047243486430712184943734853006063876445662721866617012381277156213797461498613287441177145524447089971445228856629424402301847912054784985745216346964489738920624019435183100882834802492490854030778638751659113028739587870981007727182718745290139728366148421428717055317965430765045343246005363614726181809699769334862640774351999286863238350887566835950972655748154319401955768504372480010204137498318722596773871549583997184449072791419658459300839426370208756353982169620553248032122674989114026785285996734052420310917978999057188219493913207534317079800237365909853755202389116434671855829068537118979526262344924833924963424497146568465912489185566295893299090352392333336474352037077010108438800329075983421701855422838616172104176030116459187805393674474720599850235828918336929223373239994804371084196594731626548257480994825099918330069765693671596893644933488647442135008407006608835972350395323401795825570360169369909886711321097988970705172807558551912699306730992507040702455685077867906947661262980822516331363995211709845280926303759224267425755998928927837047444521893632034894155210445972618838003006776179313813991620580627016510244588692476492468919246121253102757313908404700071435613623169923716948481325542009145304103713545329662063921054798243921251725401323149027405858920632175894943454890684639931375709103463327141531622328055229729795380188016285907357295541627886764982741861642187898857410716490691918511628152854867941736389066538857642291583425006736124538491606741373401735727799563410433268835695078149313780073623541800706191802673285511919426760912210359874692411728374931261633950012395992405084543756985079570462226646190001035004901830341535458428337643781119885563187777925372011667185395418359844383052037628194407615941068207169703022851522505731260930468984234331527321313612165828080752126315477306044237747535059522871744026663891488171730864361113890694202790881431194487994171540421034121908470940802540239329429454938786402305129271190975135360009219711054120966831115163287054230284700731206580326264171161659576132723515666625366727189985341998952368848309993027574199164638414270779887088742292770538912271724863220288984251252872178260305009945108247835729056919885554678860794628053712270424665431921452817607414824038278358297193010178883456741678113989547504483393146896307633966572267270433932167454218245570625247972199786685427989779923395790575818906225254735822052364248507834071101449804787266919901864388229323053823185597328697809222535295910173414073348847610055640182423921926950620831838145469839236646136398910121021770959767049083050818547041946643713122996923588953849301363565761861060622287055994233716310212784574464639897381885667462608794820186474876727272220626764653380998019668836809941590757768526398651462533363124505364026105696055131838131742611844201890888531963569869627950367384243130113317533053298020166888174813429886815855778103432317530647849832106297184251843855344276201282345707169885305183261796411785796088881503296022907056144762209150947390359466469162353968092013945781758910889319921122600739281491694816152738427362642980982340632002440244958944561291670495082358124873917996486411334803247577752197089327722623494860150466526814398770516153170266969297049283162855042128981467061953319702695072143782304768752802873541261663917082459251700107141808548006369232594620190022780874098597719218051585321473926532515590354102092846659252999143537918253145452905984158176370589279069098969111643811878094353715213322614436253144901274547726957393934815469163116249288735747188240715039950094467319543161938554852076657388251396391635767231510055560372633948672082078086537349424401157996675073607111593513319591971209489647175530245313647709420946356969822266737752099451684506436238242118535348879893956731878066061078854400055082765703055874485418057788917192078814233511386629296671796434687600770479995378833878703487180218424373421122739402557176908196030920182401884270570460926225641783752652633583242406612533115294234579655695025068100183109004112453790153329661569705223792103257069370510908307894799990049993953221536227484766036136776979785673865846709366795885837887956259464648913766521995882869338018360119323685785585581955560421562508836502033220245137621582046181067051953306530606065010548871672453779428313388716313955969058320834168984760656071183471362181232462272588419902861420872849568796393254642853430753011052857138296437099903569488852851904029560473461311382638788975517885604249987483163828040468486189381895905420398898726506976202019955484126500053944282039301274816381585303964399254702016727593285743666616441109625663373054092195196751483287348089574777752783442210910731113518280460363471981856555729571447476825528578633493428584231187494400032296906977583159038580393535213588600796003420975473922967333106493956018122378128545843176055617338611267347807458506760630482294096530411183066710818930311088717281675195796753471885372293096161432040063813224658411111577583585811350185690478153689381377184728147519983505047812977185990847076219746058874232569958288925350419379582606162118423687685114183160683158679946016520577405294230536017803133572632670547903384012573059123396018801378254219270947673371919872873852480574212489211834708766296672072723256505651293331260595057777275424712416483128329820723617505746738701282095755443059683955556868611883971355220844528526400812520276655576774959696266126045652456840861392382657685833846984997787267065551918544686984694784957346226062942196245570853712727765230989554501930377321666491825781546772920052126671434632096378918523232150189761260343736840671941930377468809992968775824410478781232662531818459604538535438391144967753128642609252115376732588667226040425234910870269580996475958057946639734190640100363619040420331135793365424263035614570090112448008900208014780566037101541223288914657223931450760716706435568274377439657890679726874384730763464516775621030986040927170909512808630902973850445271828927496892121066700816485833955377359191369501531620189088874842107987068991148046692706509407620465027725286507289053285485614331608126930056937854178610969692025388650345771831766868859236814884752764984688219497397297077371871884004143231276365048145311228509900207424092558592529261030210673681543470152523487863516439762358604191941296976904052648323470099111542426012734380220893310966863678986949779940012601642276092608234930411806438291383473546797253992623387915829984864592717340592256207491053085315371829116816372193951887009577881815868504645076993439409874335144316263303172477474868979182092394808331439708406730840795893581089665647758599055637695252326536144247802308268118310377358870892406130313364773710116282146146616794040905186152603600925219472188909181073358719641421444786548995285823439470500798303885388608310357193060027711945580219119428999227223534587075662469261776631788551443502182870266856106650035310502163182060176092179846849368631612937279518730789726373537171502563787335797718081848784588665043358243770041477104149349274384575871071597315594394264125702709651251081155482479394035976811881172824721582501094960966253933953809221955919181885526780621499231727631632183398969380756168559117529984501320671293924041445938623988093812404521914848316462101473891825101090967738690664041589736104764365000680771056567184862814963711188321924456639458144914861655004956769826903089111856879869294705135248160917432430153836847072928989828460222373014526556798986277679680914697983782687643115988321090437156112997665215396354644208691975673700057387649784376862876817924974694384274652563163230055513041742273416464551278127845777724575203865437542828256714128858345444351325620544642410110379554641905811686230596447695870540721419852121067343324107567675758184569906930460475227701670056845439692340417110898889934163505851578873534308155208117720718803791040469830695786854739376564336319797868036718730796939242363214484503547763156702553900654231179201534649779290662415083288583952905426376876689688050333172278001858850697362324038947004718976193473443084374437599250341788079722358591342458131440498477017323616947197657153531977549971627856631190469126091825912498903676541769799036237552865263757337635269693443544004730671988689019681474287677908669796885225016369498567302175231325292653758964151714795595387842784998664563028788319620998304945198743963690706827626574858104391122326187940599415540632701319898957037611053236062986748037791537675115830432084987209202809297526498125691634250005229088726469252846661046653921714820801305022980526378364269597337070539227891535105688839381132497570713310295044303467159894487868471164383280506925077662745001220035262037094660234146489983902525888301486781621967751945831677187627572005054397944124599007711520515461993050983869825428464072555409274031325716326407929341833421470904125425335232480219322770753555467958716383587501815933871742360615511710131235256334858203651461418700492057043720182617331947157008675785393360786227395581857975872587441025420771054753612940474601000940954449596628814869159038990718659805636171376922272907641977551777201042764969496110562205925024202177042696221549587264539892276976603105249808557594716310758701332088614632664125911486338812202844406941694882615295776253250198703598706743804698219420563812558334364219492322759372212890564209430823525440841108645453694049692714940033197828613181861888111184082578659287574263844500599442295685864604810330153889114994869354360302218109434667640000223625505736312946262960961987605642599639461386923308371962659547392346241345977957485246478379807956931986508159776753505539189911513352522987361127791827485420086895396583594219633315028695611920122988898870060799927954111882690230789131076036176347794894320321027733594169086500719328040171638406449878717537567811853213284082165711075495282949749362146082155832056872321855740651610962748743750980922302116099826330339154694946444910045152809250897450748967603240907689836529406579201983152654106581368237919840906457124689484702093577611931399802468134052003947819498662026240089021501661638135383815150377350229660746279529103840686855690701575166241929872444827194293310048548244545807188976330032325258215812803274679620028147624318286221710543528983482082734516801861317195933247110746622285087106661177034653528395776259977446721857158161264111432717943478859908928084866949141390977167369002777585026866465405659503948678411107901161040085727445629384254941675946054871172359464291058509099502149587931121961359083158826206823321561530868337308381732793281969838750870834838804638847844188400318471269745437093732983624028751979208023218787448828728437273780178270080587824107493575148899789117397461293203510814327032514090304874622629423443275712600866425083331876886507564292716055252895449215376517514921963671810494353178583834538652556566406572513635750643532365089367904317025978781771903148679638408288102094614900797151377170990619549696400708676671023300486726314755105372317571143223174114116806228642063889062101923552235467116621374996932693217370431059872250394565749246169782609702533594750209138366737728944386964000281103440260847128990007468077648440887113413525033678773167977093727786821661178653442317322646378476978751443320953400016506921305464768909850502030150448808342618452087305309731894929164253229336124315143065782640702838984098416029503092418971209716016492656134134334222988279099217860426798124572853458013382609958771781131021673402565627440072968340661984806766158050216918337236803990279316064204368120799003162644491461902194582296909921227885539487835383056468648816555622943156731282743908264506116289428035016613366978240517701552196265227254558507386405852998303791803504328767038092521679075712040612375963276856748450791511473134400018325703449209097124358094479004624943134550289006806487042935340374360326258205357901183956490893543451013429696175452495739606214902887289327925206965353863964432253883275224996059869747598823299162635459733244451637553343774929289905811757863555556269374269109471170021654117182197505198317871371060510637955585889055688528879890847509157646390746936198815078146852621332524738376511929901561091897779220087057933964638274906806987691681974923656242260871541761004306089043779766785196618914041449252704808819714988015420577870065215940092897776013307568479669929554336561398477380603943688958876460549838714789684828053847017308711177611596635050399793438693391197898871091565417091330826076474063057114110988393880954814378284745288383680794188843426662220704387228874139478010177213922819119923654055163958934742639538248296090369002883593277458550608013179884071624465639979482757836501955142215513392819782269842786383916797150912624105487257009240700454884856929504481107380879965474815689139353809434745569721289198271770207666136024895814681191336141212587838955773571949863172108443989014239484966592517313881716026632619310653665350414730708044149391693632623737677770958503132559900957627319573086480424677012123270205337426670531424482081681303063973787366424836725398374876909806021827857862165127385635132901489035098832706172589325753639939790557291751600976154590447716922658063151110280384360173747421524760851520990161585823125715907334217365762671423904782795872815050956330928026684589376496497702329736413190609827406335310897924642421345837409011693919642504591288134034988106354008875968200544083643865166178805576089568967275315380819420773325979172784376256611843198910250074918290864751497940031607038455494653859460274524474668123146879434416109933389089926384118474252570445725174593257389895651857165759614812660203107976282541655905060424791140169579003383565748692528007430256234194982864679144763227740055294609039401775363356554719310001754300475047191448998410400158679461792416100164547165513370740739502604427695385538343975505488710997852054011751697475813449260794336895437832211724506873442319898788441285420647428097356258070669831069799352606933921356858813912148073547284632277849080870024677763036055512323866562951788537196730346347012229395816067925091532174890308408865160611190114984434123501246469280288059961342835118847154497712784733617662850621697787177438243625657117794500644777183702219991066950216567576440449979407650379999548450027106659878136038023141268369057831904607927652972776940436130230517870805465115424693952651271010529270703066730244471259739399505146284047674313637399782591845411764133279064606365841529270190302760173394748669603486949765417524293060407270050590395031485229213925755948450788679779252539317651564161971684435243697944473559642606333910551268260615957262170366985064732812667245219890605498802807828814297963366967441248059821921463395657457221022986775997467381260693670691340815594120161159601902377535255563006062479832612498812881929373434768626892192397778339107331065882568137771723283153290825250927330478507249771394483338925520811756084529665905539409655685417060011798572938139982583192936791003918440992865756059935989100029698644609747147184701015312837626311467742091455740418159088000649432378558393085308283054760767995243573916312218860575496738322431956506554608528812019023636447127037486344217272578795034284863129449163184753475314350413920961087960577309872013524840750576371992536504709085825139368634638633680428917671076021111598288755399401200760139470336617937153963061398636554922137415979051190835882900976566473007338793146789131814651093167615758213514248604422924453041131606527009743300884990346754055186406773426035834096086055337473627609356588531097609942383473822220872924644976845605795625167655740884103217313456277358560523582363895320385340248422733716391239732159954408284216666360232965456947035771848734420342277066538373875061692127680157661810954200977083636043611105924091178895403380214265239489296864398089261146354145715351943428507213534530183158756282757338982688985235577992957276452293915674775666760510878876484534936360682780505646228135988858792599409464460417052044700463151379754317371877560398159626475014109066588661621800382669899619655805872086397211769952194667898570117983324406018115756580742841829106151939176300591943144346051540477105700543390001824531177337189558576036071828605063564799790041397618089553636696031621931132502238517916720551806592635180362512145759262383693482226658955769946604919381124866090997981285718234940066155521961122072030922776462009993152442735894887105766238946938894464950939603304543408421024624010487233287500817491798755438793873814398942380117627008371960530943839400637561164585609431295175977139353960743227924892212670458081833137641658182695621058728924477400359470092686626596514220506300785920024882918608397437323538490839643261470005324235406470420894992102504047267810590836440074663800208701266642094571817029467522785400745085523777208905816839184465928294170182882330149715542352359117748186285929676050482038643431087795628929254056389466219482687110428281638939757117577869154301650586029652174595819888786804081103284327398671986213062055598552660364050462821523061545944744899088390819997387474529698107762014871340001225355222466954093152131153379157980269795557105085074738747507580687653764457825244326380461430428892359348529610582693821034980004052484070844035611678171705128133788057056434506161193304244407982603779511985486945591520519600930412710072778493015550388953603382619293437970818743209499141595933963681106275572952780042548630600545238391510689989135788200194117865356821491185282078521301255185184937115034221595422445119002073935396274002081104655302079328672547405436527175958935007163360763216147258154076420530200453401835723382926619153083540951202263291650544261236191970516138393573266937601569144299449437448568097756963031295887191611292946818849363386473927476012269641588489009657170861605981472044674286642087653347998582220906198021732116142304194777549907387385679411898246609130916917722742072333676350326783405863019301932429963972044451792881228544782119535308989101253429755247276357302262813820918074397486714535907786335301608215599113141442050914472935350222308171936635093468658586563148555758624478186201087118897606529698992693281787055764351433820601410773292610634315253371822433852635202177354407152818981376987551575745469397271504884697936195004777209705617939138289898453274262272886471088832701737232588182446584362495805925603381052156062061557132991560848920643403033952622634514542836786982880742514225674518061841495646861116354049718976821542277224794740335715274368194098920501136534001238467142965518673441537416150425632567134302476551252192180357801692403266995417460875924092070046693403965101781348578356944407604702325407555577647284507518268904182939661133101601311190773986324627782190236506603740416067249624901374332172464540974129955705291424382080760983648234659738866913499197840131080155813439791948528304367390124820824448141280954437738983200598649091595053228579145768849625786658859991798675205545580990045564611787552493701245532171701942828846174027366499784755082942280202329012216301023097721515694464279098021908266898688342630716092079140851976952355534886577434252775311972474308730436195113961190800302558783876442060850447306312992778889427291897271698905759252446796601897074829609491906487646937027507738664323919190422542902353189233772931667360869962280325571853089192844038050710300647768478632431910002239297852553723755662136447400967605394398382357646069924652600890906241059042154539279044115295803453345002562441010063595300395988644661695956263518780606885137234627079973272331346939714562855426154676506324656766202792452085813477176085216913409465203076733918411475041401689241213198268815686645614853802875393311602322925556189410429953356400957864953409351152664540244187759493169305604486864208627572011723195264050230997745676478384889734643172159806267876718380052476968840849891850861490034324034767426862459523958903585821350064509981782446360873177543788596776729195261112138591947254514003011805034378752776644027626189410175768726804281766238606804778852428874302591452470739505465251353394595987896197789110418902929438185672050709646062635417329446495766126519534957018600154126239622864138977967333290705673769621564981845068422636903678495559700260798679962610190393312637685569687670292953711625280055431007864087289392257145124811357786276649024251619902774710903359333093049483805978566288447874414698414990671237647895822632949046798120899848571635710878311918486302545016209298058292083348136384054217200561219893536693713367333924644161252231969434712064173754912163570085736943973059797097197266666422674311177621764030686813103518991122713397240368870009968629225464650063852886203938005047782769128356033725482557939129852515068299691077542576474883253414121328006267170940090982235296579579978030182824284902214707481111240186076134151503875698309186527806588966823625239378452726345304204188025084423631903833183845505223679923577529291069250432614469501098610888999146585518818735825281643025209392852580779697376208456374821144339881627100317031513344023095263519295886806908213558536801610002137408511544849126858412686958991741491338205784928006982551957402018181056412972508360703568510553317878408290000415525118657794539633175385320921497205266078312602819611648580986845875251299974040927976831766399146553861089375879522149717317281315179329044311218158710235187407572221001237687219447472093493123241070650806185623725267325407333248757544829675734500193219021991199607979893733836732425761039389853492787774739805080800155447640610535222023254094435677187945654304067358964910176107759483645408234861302547184764851895758366743997915085128580206078205544629917232020282229148869593997299742974711553718589242384938558585954074381048826246487880533042714630119415898963287926783273224561038521970111304665871005000832851773117764897352309266612345888731028835156264460236719966445547276083101187883891511493409393447500730258558147561908813987523578123313422798665035227253671712307568610450045489703600795698276263923441071465848957802414081584052295369374997106655948944592462866199635563506526234053394391421112718106910522900246574236041300936918892558657846684612156795542566054160050712766417660568742742003295771606434486062012398216982717231978268166282499387149954491373020518436690767235774000539326626227603236597517189259018011042903842741855078948874388327030632832799630072006980122443651163940869222207453202446241211558043545420642151215850568961573564143130688834431852808539759277344336553841883403035178229462537020157821573732655231857635540989540332363823192198921711774494694036782961859208034038675758341115188241774391450773663840718804893582568685420116450313576333555094403192367203486510105610498727264721319865434354504091318595131451812764373104389725070049819870521762724940652146199592321423144397765467083517147493679861865527917158240806510637995001842959387991583501715807598837849622573985121298103263793762183224565942366853767991131401080431397323354490908249104991433258432988210339846981417157560108297065830652113470768036806953229719905999044512090872757762253510409023928887794246304832803191327104954785991801969678353214644411892606315266181674431935508170818754770508026540252941092182648582138575266881555841131985600221351588872103656960875150631875330029421186822218937755460272272912905042922597877106678738400006167721546384412923711935218284998243509208918016855727981564218581911974909857305703326676464607287574305653726027689823732597450844796495456480307715981539558277791393736017174229960273531027687194494449179397851446315973144353518504914139415573293820485421235081739125497498193087143966151329420459193801062314217741991840601803479498876910515579055548069538785400664533759818628464199052204528033062636956264909108276271159038569950512465299960628554438383303276385998007929228466595035512112452840875162290602620118577753137479493620554964010730013488531507354873539056029089335264007132747326219603117734339436733857591245081493357369116645412817881714540230547506671365182582848980995121391939956332413365567770980030819102720409971486874181346670060940510214626902804491596465453301077546954130887141653125448130611924078211886900560277818242350226961893443525476335735364856193632544177566139817039306328721669057222597452091929172621998444096461582694563802395028371216864465617852355651641277128269186886155727162014749340522769465957121983149433816221140069363074304441732847861017777438379770372317952554341072234455125555899986461838767649039724611679590181000350989286412041951635511087632042676129798265294258829511412758412627327907988075597518515768412647422094797218433093529726652100156625145529947451276315509176367302594621329301904028379542463232585503010967069227202270748634190054383026506812141421350571541750575086399076739463351462090828889349383764393992569006040673114220933121959362029829723511632593867722414779116295727807523950562515816031333593823115005186268905306583681299881086632632719806112715488587980934879129137074982305759290918629391950147211975860672700925477180257503377307993971345395326461952699965963856549175904583335857991020127132045839032008538788816336376851820837278851311752277696097879621423721625452145912818317982160441113116714069148271709810154577819392023115638719508050246797257924976057726259133285597263712112019057207714091486450740949267180358151575715140503976109638467555692989703835473141002238025834687673501297754132795320609711545064842121859364909979177668747744818828706323155158650328981642282882327468661065927321979071623846421534898524762167890502609980452664839295423572873439776804957740914495383915755654854590589764951985138010079580107837599457752991967005476022525520344539887125387801719607181640781248478472579124078245443616823452395706895142722697504318736332630111030534233358216093331912188066082683414289104151732472160533558499932245487307788229052523242348615315209769384610425828497149634753418375620030149157032796853018686315724884015266398356895636346574353217834931998255421173084677452970858395076164582296303244243282377374505170285606980678895217681981567107816334052667595394249262807569683261074953233905362230908070814559198373553777487420290390181429373115293346444681512129450975965343062842153194457271186149000176505581770953024688752632501197052094761594167687277844720001927891372518416228577837922844390843011811214963664246590336341945406571835447719124466212593926566203068885200555991212353637182269225317814587925937504414489339816086579008761650246351970458288954817937566810464746141051424988702521399368705093723054477341126413548928068410591077166778212383328102621855877513127211793444482014404257450830639447383637939062830089733062413806145894142276947479316657176231824721683506780764875734204915576282175839729751344789906965895325489403356156131674032764724692125057591162515296545685446334981143176702572956618447754874693784642337372389819206620485118943788682248072793520225017965453437572741639107919729529508129429222053477173041844779156739917384183117103625243957161527146690058147000026330104526435478659032907332054683388720787354447626479252976901709120078741837367350877133769776834963442524199499513883150748775374338494582597655609965559543180409201784971846854973706962120885243770138537576814166327224126344239821529416453780004925072627651507890850712659970367087266927643083772296859851691223050374627443108529343052730788652839773352460174635277032059381791253969156210636376258829375713738407544064689647831007045806134467312715911946084359358259877828352665311510650416232953290477721740835593497237585521380483050900096466760883015406128243087406455944318534137552201663058121110334531207450868243394321590435944303124312274713858420303901060709403152355561727679941600203939750998976293353258555756248089966918298642226775023601932579747267425782111197347094023574572222712125268523842958742735015636600931880454933389897415714905441825597380808715652814301026704602843168192303925352977957658624143927015497408792731310516361191375770089295648233236482982630246079758757677453771601024908046243018565241617566556001608591215345562676021926899828553778725831451440826545834844094784631787773747946535801699607794055687011923286080411309046293508718271259346687127666948738998245985277864995691654640294589350649643358098247659651651420909867552038083092032304873427034682887516040715466538346196112230137594515792526967436425319273900360386082364507626988274976187235754767628899507521148048525279508450339585708381304769378813211236742813194879502280663201700224603319896719706491637411758548518784840120548446725888514015627250198217190669608126277854859648183696214107217142149863619187747545096503089570994709343378569816744658282679119406119560378453978558392407612763441057667510243075598145527861678159496570625597550743065210853015979080733437360794328667578905334836695554868039134337201564988342208933999716414797469386969054800891930671380571715058573071488156499207140867582596028760564597824237702424698053280566327870419267684671162668794634869504645074202193739452592626686135529406247813612062026364981999994984051438682852589563422643287076632993048917234007254717641886853513723326678779217383475414800228033929973579361524127558295692768372312347989894462743304545667900620324205163962825884430854383072014956721064605332385372031432421126074244858450945804940818209276391400085404220235562602185643489941454399504109805918179488826280520664410863190016885681551692294862030107388971810077092905904807490924271410189335428184299959881696609938369616443815288772140852680887574882932587358099056707558170179491619061140019085537448827262009366856044755965574764856740081773817033073803054769736097865438593821872205839023444435088674998665060406458743460053318274362961778625180818931443632512051070946908135864405192295129324500788333987884293393424351263433652043858129128343452973086529097833006712617981303167943855357262969987403595704584522308563900989131794759487521263970783759448611394519602867512105616389760088800927461158608002078033415914517970730368351969777660763737853330120241201120469886092093390853657732223924124490515327809509558664594776344822699860748132973026309750288121035177231244650953496536930900186377640940943498373132513218620802148099226855029484546618147155574447096695301776904342720318927706047177845279391604722815343798035396798614243709566832214914654380145938292773933960327540480095522318166673803571839327570771420467238386246178039762923771312095807893638414479298025880655221292620936239306373134966401866195108115834711733120258058667276399927635790780638188130691563662741254312595899361196476261014055635033995231403231138196562363271989618372548453337020625634642239527669435683767613687119629218187545760816170530315907288287007123136663087227549186613957737305460659974378109876498024140112421427736680827513909593134041558262667895108467761186659576601659981780894149857549762843878561002637965431783136340251358141611519020964991335487331311150227006819301359295959716401971960536250335584799809634887180391116128135959685654788683258564378961731597620024196215528962979048198221994622694871374624447290934564700285376949588595916067892824910544125159963007813683674902093749157328962700286568293444313423473512392982591667395034259958689706972673325827359031212887466604514614878503461428277659916080903986525757172630818334944418201935333850712923457743755793440621787113300631060033240539916936826037461766385657588775802012293663532702671006812618251729146082025418928859352444910701382062115538277935652969145765020486432828655579347072096348073726921411868954673227677513356901901537236690368653891612916888878764075254934942497334271811788927599315967193547589880979245252623636590363200708544407845447973482918020820449266706344204375553250505275228337788870408040335319234076856301093477721256390886404131010738178533383160381352808281190408325644018420537467929926220376987180180611226244909092426419858208617511771137890516091403815750033664241560952163281971223350231674226005679412814062172196418427057843289598028823350598282081966662490358577899403331522748177769528436816300885317696947836905806710648280835980466988410981351586549069333195223943632879239905348109878302745001720654336990661177845543646877236318444647680691428280045510746866453928053994091087549391660957316197150331669683099294663491427987808422572206971488755806374803088629951184731871247772919100702275888934869394562895158029653721504096031077612898312635899648934102470360366450586872875890514068412381242473863854279082827338279733268855049358743031602747490631295723497426112215174171531336186224109138695006888358989623492763173164783400774608866555987333821138299287769114954921841920877716060684728746736818861675072210172611038306717878566948129487850489430630861699487987031605158841082823512741535385133658953329486294944950618685147791058046960390693726626703865129052011378108586161888869479576074135855345851517680519733344334952301203957707396237713160302428872005373209982530089776189731298178819446717311606472314762484575519287327828251271824468078242152164695678192940982389262849437602488522790036202193866964822156280936053731780408637272684266964219299468192149087017075333610947913818040632873875938482695355830773957614479972700034728801827852813895032179863452161110666088393140532269449054555278678944175792024400214507801920998044613825478058580484424164047750315360549065914300781583724301231375115622840158386442708907182848167575271238467824595343344496220100960710513706084618011875431207254913349942476171156333214089346091565615506003173842187015702261031019166038870646614388977363187809407115275281746895764015810470169652475577408916445686777171585005832699434016772021567677240681283665652641229824394651331973591997094032759385026695574702318132032437164205861410336065245369391600506449530601612678226489424373971667176612310489750318857321655549883421218028469125290861014855278152776256237504563757694977343368460156077270355096290493924870884062810679436224187047470083688426710225583024035998416459511224852726336326451140173952480861946358407837535568856223171155209472230654370926067973510005655493812245754837285457117973936157561676416928958052572975223385586113883221711073622658162188424431788574887981090266537934266642169909140565364322493013348679881548866286650523469972355747384248305904236771432787923164224038777643301926001922847783138376325361210253369358126240868666997382759773656822279072158324788886423693463961643633087301398142114303060087306661648036789840913359262934023043249749268878316436026810113095707161419128306865773235326396536773903176613613159655535849993986005651559219367599777179330197446881483711032065036931928945214026509154651843099365534933371834252984336799159394174662239003895276738133306177476295749438687169784537672194935065908757119177208754771071899379608947745126547575018711948707387367858902006173733210756933022163206284320656711920969505857611739616323262177089454262146098584102378132158177276022227381334954104810030732751077999489919779638835307344434575329759142637684054422647842160631227696469671564739990437159033239065607266441164386054048388471619121090087010191307260710441141432419767968285478855247794764818029597360494397004795960402927462992035720997619501403483153809477146010563334469988208221205872815107291829712119178764248803546723169165418522567292344291871281632325969654135485895771332083399112887759172261152733790103413620856145779923987783250835507301998184590259583559892605532996737704917224549353296833000022301815172265757875240588322490858212800897479093261007625787704286560069961762121768454789964407050662417102133274867962374302291553582007801411653480656474882306150033920689837947662550365498228053296628621179306284301704924023019857199789488368971830438051821744191476604297524372516834354112170386313794114220952958857980601529387527537990309388716835720957607152219002793792927863036372687658226812419933848081660216037221547101430073775377926990695871212892880190520316012858618254944133538207848834653116326504076424283908701210151942319616522684220037112304643006734420647477180213530701240988603533991526679238711017062218658835737812109351797756044256346949997872511254408545222748109148743072598696020402759411789425812818821599523596589791811440776533543217575952555361581280011638467203193465072968079907939637149617743121194020212975731251652537680173591015573381537720019524445436200718484756634154074423286210609976132434875488474345396659813387174660930205350702719529839432714253711557666000257844230310734295515339450604862227649666876240793243531929926392537310768921353525723210808898193391686682789482811704726245019484097009757609209837240900747179733407881418251958425980962417476101382526439551352593118850456362641883003385396524359974169313228947198783084276004013680747039040972384739458348961865397905941185993103561684368692194853820557803957738813606795499000851232594425297244866667668346414021899159445653094234406506678519484177667794704720419588220432953803263105374948831221803912796784461001397267538921951191178365876625280836900532490045974109470687729123282143046353372835199536482743258331191444590178096077828835837301118575436599589827245319253105881150263075425714939430244539318701799236081666113054262539958338979429716020703387678150330102801200959972522222808014235710947603519255444349299867678178910455590630159538097618759203589373419789623589311259839025983102671933041892151096891562250696591198283234555030590817307351955037216658702880539921385760370353771051780212801295668419841403628727256232144287543022109094727210734741349755141907370433182766261772759968888260272252471336833534528166927795913288613817663498577289369009657495622871030243625907724122190943008717556926257580657099120166596224360802428700245473620363948412559548817272724736534677836472019183039987176270375157246499222894679323226936191776416146187956139566995677830682903165896994307673335082349907906241002025061340573443006957454746821756904416515406365846804636926212742110753990421887161276177870142588648257752238891845995233762923779155857445494773612955259522265786364621183775984737003479714082069941455807190802135907322692331008317595106590191212947954086036407573587502058902087045796700070552625058114206639074592152733094068236494415908910092202966805233252661989113118420162916310768940847235643668081821686572196882683584027855007828040434537101836510969517823357430305048526537380735310741859177056103973950626403554422751561011072617793706347238049906669221619711942591204450846417463835899382399465173955090008594799901360266742614942900664671150671754221770387745076735637421547829059110126191575558702389570014051178226469899449179083017954758767601680941001358376135785913569244556477644641786671153919513576961048649224900834467154863830544779143300976804868783481846727337584368927243104474068076852786255851650920882638132336231487333367147645204508766276149503899495048095604609896043291233583488599902945264002849942808786240398118148847673012167541611066299955536681931232874257020637383520200868636913117334697317412191536332467453256308713473027921749562270146873258678917345583799643513588009593508775563562488104938529990076751355135277924124292774885658885665132473025147102105753525165118148509027504768455182520963318990685276144351382136621523688905787866994322888160283774820355060160298940091197138501798716836337441392759736440170070147637066557035043381211135764150184518214136198234951596010647527125759351853043328755377830575095674254426847122196187091785607839361445113833356491032564057338986671781239722375193164306170138595394743678433926709867124522111896908402363274114966012434830989299417380305884171666130730400675883804321115553794406054977217059428215148861656727712409033877277456290971101348851843741186956554497457368452180669829110450580042998879538990278043835962824094218605562877884288021275538848037286400194416142574999042720095952046541705981049899675045119364711727722204361026140797508096869751766002371877483480161203102346805671126447661237476278521902412025699435347162266608936752198331118135111465038548950251206557726361454736044268594980743969323312971273771573470997139522911826534851555871373366291202427143025037632695013509116129529937858646813072264860082708813335381937036825988678933212383270532976258573827900978264605455985551318366888446282651337984916678394097613537662517982582496634587719501243840403591408492097337546424744881761840700235695801774101776969250778148933866725578985645898510568919609243988415692806969833522402256345704973122452693541938370048431833571965166267215755241934019330990183193091965829209696562476676836596470195957547393455143374137087615173236772042273856742791706982045499530959188724349395240944416789988463198455048523936629720797774528143994182567894577957125524268260899408633173715388962628896294021121088844273765686245276121303710173007851357154045330415079594477761435974378037424366469732471384104921243141389035790924160364063140381498314819052517209371039640268089948325722979545640427017577229041732347960736187878899133183058430693948259613187138164234672187308451338772190869751049428437693250249816566738162606159417682525099937416728839517440669325496534031014522253161890092353764863784828813442098700480962271712264074895719390029185733074601043607291909457679946149292904279816877294264877299528584346477753869069501489841339245403941446802636254021186143170312511175776428299146445334089209769616990983726523617687456058947049681701369749095230720826828878907301900182534258053434217059287139317379931424108526473909482845964180936141384758311361305761084623668372376959134926158245162215521348792441450417568480641206365201703863301295327776990231186480200675569056822950163549319923059142463962170253297475731140942201801993680350264956369558664259067626856873721103391567938398957655651931778830002416135395624377778408017488193730950206999008908993280883974303677365955248913001566332940779071396154645340887915103006513219344866732482759079468078798194250195826223203951312520141099605312606965554042486705499867869230217469890095478507256729787947698888310934874644264007181831603316555115342761556224054744733780492462149521332585276988473362691826491743389878247892784689188280546699823036899397834137475870258057163494135684339293960681920617733317917382085624364336353598634944968907810640196740744365836670715869245211829978938040771375012908586465789057714268335827689785547176871844277261205092664861020515356428406323684818072879407171279668200607275595559040402331787494473464547606281895415121391629184442976510669479693540168660100551960776873353965116149309375709685545593815137895690392510149532656281470119983269922000663928753747131352364215892651262040728877165783584052196460541054354436421665622445650429990102565869272791427529311720827939377513261060528812353734510683729398935808712438693859343891757133763007203197608166044646839377258069092372975234867029169104263692620901996052041210240776481903160140858635584276095370865581642739953493465463145040401995285372520049578052546562511541092524379913262627136090994029022620628367521323050651839340574501120993414649184333236465693717259144893241590062420206128857329261335968087265000456282845575745965921205303413101118275013069615098355156320043107846019065654938065425252291619918199596027523277022498557388248998827074659363557685825605180689642853768507720122203479209939361792682065901421656159253067379445689490708532635681968318617722682499114726157320358076462981162440133167378927886892290325933498617970219949819257396176730758344170985592221701718257127775344915082052784309046194608352174020058386728497094110232669539214454610662150064106747402070091899119513764669044812672536915371622907913854039375600778351533741677479421003840023089518509945487790393461222208650601605003517762648316111533255877050735412792499098593734737870811942530551214369797499149518605359204038302357163527276308746932196221900642608861836761033460022554774778136410126919065696864950126883762969072339612762872230411418136100602640440300359969889199458273976241146137448040596970625767647237660655416185746905272292382282751867991569833907476711461030227766060200612468764777288190967916133540198814027579921741676787992316039635694928515136336472195406111717673873725557285229400543617851765023075446938693078734991103521825329297260445532107978877114498988709115112372506042387537348412570860640690520584521227545338480082053024504565176695185769132000428167580549248117805198326460324457928297301291053183856368212062155312886685649565126138922613670640939533345705269869596923503530942245438652786776730275404027022463844835532399147513634410440500923303612714960813554905315390210022995957565837053812619656831442860579566966221547216956208700137277685369608407048333251327931122325071486302069512453950037357233468070946564830892098015348787056334910923660575540508641115214414814346304372732710450277686619531078583233348578402971609252153260925589326556006721243594642550659967717703884453961816328796144608177892721718369088801267782074301064225246348074543004764928855534090621851536543554741254761527697726677697727770583158014121856880117050283652755432148034880044429799980621579045641619572127845089284898064264974270905791290692178072987694779751124473059914060506299468942809310342164166299356148281309988707452927160484336308184041264696379258430941854422163590845761460785585624738149314270782662151855416038702068769804617474008083243436653823545551094494984310934947599446726736653525176627067721941831919771963780157021699336750837600571634546436717767233875886434056448715669643210412825956453498413884128904206820470076155969168430389993483667935425492103281133631847225923055543830582069416756299920133731754891220372303490726810685344540359935618235763128377676406310131253352121419946118693508331765878520471123643312267651299641713252175135532618676819423387903654689080018271352835848884441117612341011799187092365071848578562210211040097769944531217950224795780695065329659403839873699072407976790408267940076187295478359634927939045769736616434053597922192858705749574816966940623342726197335181366260637359825755524965098072601236682836059283418558480269584137725589708837899429105498003311138846034019391661221866960584915714857335682861495000190975911252188003964197621635593757437180114805594422987304181968080856472657135476128316292004498803154021055305970766663627493283089168809323592900817874119857383171926167288349184024297212904349655269427264025596414635259143484006758676903503823205729341329815935330444464968294413673234421583807616948312193331198190610961429522015361702985751055943264614685054526849757648078080092213358113781977492717685450755383287688744745915937311624706010912446098294248412875202244625944776387494919978404468292573609685345498432665368628444893657041118177938064416165312236002149187687694673984075171763075168498563592014868929431059402024579696229245666448819675762943495353263821716133957577907663707645695702597388004384158058943361371065518599876007549241872117148892952217377211460811543449826654798725800566747240511220073834592715757277152185899469481179406444663994323700442911407472181802248258377360173466853007449855647154200361235933973129144585915228874087195087086322188372882628228846318437172619033057771476515641438223067918473860391476831081413582757558536435977216500282778037134228696887873497950960311088991961433866640684506974207877002805093672033872326296378560386532164323488155575570184690890746478791224363755566686780676105449550172607911429308312857612544819444494732448190937953690082063846316782250648095318104065702543276043857035059228189198780658654121842992172737209551032422510797180778330426090867942734289557355592527238055114404380012390416877164451802264916816419274011064516224311017000566911217331894234005479596846698042980173625704067332821299621536848814041021944634246462207455756439604529853130714090846084996537678037932018991408658146621753193376659701143306086250098295669176388460567629729314649114937046244693519840395344491351411936679333019366176636525551491749823079870722808608596261126605042892969665356525166888855721122768027727437089173896397722575648905334010388559311256799915165890250164869614272070059160561661597024519890518329692789355503039346812197615821839804839605625230914626384473862960398489243861872985077759287927220685548072104978176532862101874767668972488411395603494803767270363169210073508340738652616845074824964485974281349364803724261167042668708319250409976153190768557703274217850100064419841242073964001396036015838105659284136845741191027364202741637234882145241013477165296031284086584197879511165115298278146203791398550063999603265912485253084936903131301007999771913622308660110999291428712493885416120380204113401888872196934779044975274542880728035093058287544207551348166609278793535665212556201399882496284787262144323628536765025914504683776352825876521391564809721419296755493843755826002531685363567313792624758780494459441834291727569883762262618463654527434976624111384513054814498363117897844897320767195087841586188796929558197332506999514026015116755297505754378102422389579257865621284327312022007167305740692868693639301867659582513264991459502609170693475194089753574640168308117988464524736189560564794263580705625632811892696630264795359510971276591362331808669215357886078127599105371714022045061860753748663063505914839164676567232057145168861707909846959322367249467375830996070425892204815507991327520885837811176852142693347869218952406226579210436203488529262679840139532164587911515790504605797108389833718640380244175113472264725470107947939969535546696197267632552299146549334996632341859514503609803440922122067125676987234279407088570704742931733291885238967219713539244924261786411886377909628144869178694681775917171506691114800207594320120619696377951032270890295660855622254526026104607361313688690092817210681986185537809820184711541636303262656992834241550236009780464171085255376127289053350455061356841437758544296779770146602943876872251153638011917581540281208182556064854107879335989210644272448986189616294134180012951306836386092941000831366733721530083526962357371753307386533382048421903081864491840937239440334052449095545580164064607615810103017674884750176619086929460987692016912021816882910408707095609514704169211470274133900522533408348128703530310239196999785974139085936054335996970756044601342424536824960987725813110247327985620721265724990034682938868723048955622532044636026398542252584164643242716114198178024825955635449072192265838636626637508359443148776351561457107455280161596770484427141944351832756984075526779264112617652506159652354571879566731709133193587616282559207830801852068901515047133403861003100559148178521103847545429333891884441205179439699701941126951195265649195941899754183932346474242907027188752235343936736336632003072327470374071239825620246626519740901997624520561985576257600087081730832883443818310700545144935458854226785785519153722923795554943334101744201696000906964156127322977702212179518683763590822551288164700219923488640439591530184640047143211863606225270115411222838027785389110984902013427410141215597699654388771974853764311582298385331230717511329619045590079380642766958190148426279912217929479873489018684716765038273285520590829845298062592503521284519259279865935061329619467962523739725655841578537445675589980324054921869628884903325608514553443916602262577755129162007727968526293879375304541810807292858919897153817973434961872329276147478501926114504132748732429705834084711123337462746172746265824153242710593225062553023147387592517247873228814914559156050363345754242337791603749525024930223514819613811625639114156103268449580725082734317659440540982697652693445798634797097431244982719331138638731596363612186234972614095560799206283169994200720548115253533939460768500199098865538614334957816500899616490796781429011483876456821749140756237676184537751440314754112067601607264605568592577993220703373333989163695043466906948284366299800374145276277165476238255461708831898108688068478537055364804693509588180253605297407935386765111950793732820831462689600710751755206144337841145499501364324463281933463890509365457145069008644834401804283633905135781572739733345372842633721740657757710798305175557210367959769018899584941301959995730179012401939086813565855396619413717944876320798688003716073032205474235722668968018821234243918859841689722776521940324932273147936692340048489760590379580946960417542796137825537812239476461478329269765451622902817011004378460387565441517394339600489153188175766505009516974024156447712936566142539493688842305174001299205568542898538979426699567770270891465137368922061044154816621568042198384767308717875902792091759006952734566820265133731115180001814341209626016586298210766635233617740078377834237091526440630540718078433580610729611055500204151316963730468492133568372654003075098290893646120478911147530370498939528334578240828173864413227100029683119402033234564208264732762338302946393789983758365545599193408662350909679611340048670271231765266637107787251118603540375544874186935197336566217723592293967764632515620234875701137957120962377234313702120310049651521119760131764194082034373485128526029133349151250831198028501778557107253731491392157091051309650598859999315608636554774035518981667335358800482146650997414337611827777233519107412175728415925808725913150746060256349037772633739144613770380213183474473011130326702969173350477016321066162278300272692833655840117914194478087482533607144032962522857750098085996090409363126356213281620714534061042241120830100085872642521122624801426475194261843258533867538740547434910727100497542811594660171361225904401589916002298278017960351940800465135347526987776095278399843680869089891978396935321799801391354425527179102253970108106321430485113782914985113819691430434975001899806816444121232733283071928243624067331965546926778511931527751134464689055042481133614349846048490512583456832664415284897139723760403282126602535166939140820499473204860216277597917712347510975024030789357599377150950217516935558270725339118923340702238320775858021371747783787783910152341320984894234596136923404979982793041444631627072147961174569757196812392919137409829258055619552074342432959828989805292333664154192563673806894942014712413405250722040617943552525552250087487900865683145428351677505422948032747830440564385815919526667582829297052261276287110401348017872248017896840524079243605827424674430767216452703134513541676496689012747868010102951338626986497482121186290403376915685762406992963724930972016287072001898354236903641492702369619385473724803298550451120891928798298744678641291594175316756025334353106267452545071141814832398806072971402347255207134907983989823552687239509093656678789923837125789762487559904432288953883773173489411227570714109597900479193010467407504114353817824646307959895556389918847737813413470702467473621120489862269918885174562517325193413520381158633501239130544419100736284475675141610504109735058527620444891909789019843154852805339857778443139338839943104444656692445508859463140817512203313906815965925105468580131338381521764182104334297888261196304431113887962587460902261309008499754303957712432306169062629194039214397402708947776637024881554993224588259790206312574369109463932528062416424768684954553249380176393716156368478598237159023854212658406153672286071317026747401311452610637653833903159219434698176053583803106128878520515469336392410884676320095670897183674905781630851581381619668822220475704375906143380407258538620835651769984267745231958241826836982701602374149383634966293515768540613973427464708996856181701605511048809715548591186171896680259735417054239851355600187203350790609464212711439931960465274240508822253597734815191354385712532585404939460108657937980586201433660788252197178090258173708709164604527279771535099103407364250203863867182205228796944583876529479510486607173902293274554267856697768659399234168341222746630150621553205026553414609952493560508549217565491348309589065361756938176374736441833789742297007035452066631709296075919896277324230902523974438610142630986877339138825186843165010279649114977375828889134503411488659486702154921010843280807834280894172980089832975369406449699031253998639195816014689952208806622854084148642747862819755466292788146216071713818801808405720847158689068369193933818642784545379567192723979723646516675920110579956639625985355127635587681402134098290162968734298507924718460568748283313812591619624761569028759010727331032991406238646083333786382579263023915900035576090324772813388873391780969666014696150317542267511259933155296742133363002229649064809345820081810618021002276645804002782133367585730190113717546727630590443531313190360924890972464279284555499134900051802957070829190525567818899138996251386623193800536113462242946102489540724048571232566288889317221164329478161905548680549434410340906807160880282279596869501336438142682521704728708630101373011552368614169083756757476372397631857570381094433905645644685241830281481079983769185121272019350440418046047216269394457883770901059746932197205581140787759897720720096893822493032368305158626572811146379969831375179376232151112523497343052406221052442343537329056551634066695061658928782187077567941760807129737813351871179316500331555238224877306534441794534153952024244497034101208740721881093882681675120422994049481794494727328947701115741394412284555218284249222406587526891722727806071167540469730080370396187877966948825556146743843925701158295466613586786718976612973112672000729715536130275035561678177654422874421147298816148027052438068176535732755786025058470840132088379328160087690813004924914736825170353822196190390149995234953871059973511434782923394991879366086923013755963685323738067035911442432685615121094042595826393016780171286692392832310576588517140202111969570647998140315056330451415644146231637638099044028162569175764891425697141635984393174332702378123369380430128926263753826677950341693343236075002481757418087503884750949394548962097404854426356371649959499209808842947903636662975260032438563529458447289445471662092974954966168774141208821304770228161164560440072363515811497297392189667373826472047226422212420165601502849713063327958143025160136948255670147809357908896571349261581613469018069650895563101212184918058479227206918716963163300448580201028606578585912699746376617414639341595695395542033146280265189511679380745733157598460861737026878676029436777805002446733913324316698803540732323882818475010516413311895370364884226902704780527424906034920829547550540034571601840725745369381455311753542107265578356154998744474804273234578800618731493415660463529797794550753593047956872093167245365472083816858556060438019770307642460834898761013457093948770029461757920619525492557571090385251714885252656710453498134198033906415298763436954202560802776144219143189213939088345431317696851018401038444723489488695209819435319065065553546173358140455448378847525262539496658699920584176527801253410338964698186424300341467913806190280596078548880107897055169462152287730901044674624979799926271209516847795684825833414022664772108433624375937416105367340419547389641978954253350363018614009515347669614762556518738232924685473569358028960115367917873035531593783630822486151777705415775765617593585120166929431111388635821596676188303261041646517148469793854226216871614001223782137797741312689772667129920259220174087700769562834739322010881593562862819285635718933849588506038531581797606794798408783609759601497334205727046035217906056476032855692762734951822032361441125841824262477120120357763888959743182328278713146080535335744942976217967890345681698895535185044783256163807094769516990862471000197488092050095219436323787197648703392238115403634754886268459561597551937654101150140670012269274743938885899438597302454148010612359080362745852884935632515853843832424932526660875889083187007091002373771065769850564339288543376583425967506537150053335144899082938877373520514593330496265314151413861244379358850709446880454869753581702129084907873478068143663233228194158273456713564431715379678180581958524648400840329099819437817181773023170039897330504953873561162610239994332597801268934326055847102787649010709234438846340117355568659035852449193701810416262085042992586974358170981338940459344719374938776242324098528327622666049423851297094532455862521036008292866497241749191419889661295580767709795947953060131191590117739431042090490794244488685130868444937059090260061206494257447103535476578592427081304106185462198818300906345881870387558562749115873754210646679513464875867715438380185213482819158124625993351601989355951679689328522058247994210345127158771633452229954188396804488355297533612868372259353900792016669413390911687588039888288692160023732573615882071635162713328105181876021048521806755266486739089009071951380586267351243122156916379022773287054108420378415256832887180469879525130732663402785190594173389203585403956770356113293544825856282876106106982297214209619935093313121711878910787668720445488760894101747986471378824621539559333332755620094395804345379197822805903959599274369137937786649409640487778417483364326840262829324062600819080818043909145563519368560630450891422896452199877988493474777291327972660276584016678901364905087411421268619698620441269652829810870454798615595453380212011556469799767857389201862435993267776894540605082188382279098336271671244900267611784982643770330020818445900097172352043319947082420987715144497510170556430295428218196700092025156158441742059336581481349026931115170938722600264586305613256057925609273322655793462808056834439213736884056504343073965740610177793701414246154930707413608054421002956000956635889778992676305177187819437067614982175641865901161608654086353915130392013168057690341725964536923508064174465623515239290504094799531840748621512105618338545661766526063937136588025216662235761322019417013726649660732520107719479312652827633024138051649071745659648537483546691945235803153019691604809946068149040378198297323609300871357607986214254220964190043679054790499300783724215819545354183711293686584305538427176280352791288211293083515756565999447417884383815651484342298587042455924346932952328218035083337262837918302165918361815542171574484657784201343299825945668845582661719790121808494803324487872581837748055222681510113717453684178702802744524429054745182346749195641885512444213377835214238659799259882032870851093383868299065719946149062902574276860388505110326385445404191849588665385450405713236296810691468148478696591668618427567984600418687622980555629630459532279230516167215919686758495236352989357885077460815373214546429847923105116763577494946229525694976603594739624309953433104049942096778838270027144784940690370732491064441516960532565605867787574174721108274357743151940607579835636291433263978122189462874477981198072256467146640548501310096567863148800903037493388753641831651349825466946733161181233648543976493250261795493572043054021829748712511074040116114058999110930624923128131163405492625713567218186289327861388337180285350565035919527414008695109261675414767926680321092374670872136062783329223864136195941213392780361182763241060047409711110481400036233427145144833346416754663546997314947566434236594934968458845515241507563766050866328274247941360628760412906449138285194564026431532258586240431418386695906332450630003922131926476259626915109044576953014440546180378575030366862124622786397527466678701210033929848733750144756003221006223580293437749550320370127384681630610265703008722754629667968808905871276763610662257223522297392064430935243272281008599730951325286306011054979156447918450046180467624089289256809129305929606423570210615246462050232489665939873249339673769520239917608984745718435319366465291258480644801965201628387951894993367592414856261369959453072872545324632915291101287637706055706095313775277518679232921349552451330898679691651290738413021675732386375758200803635757280027544903279530799007994425411087256931880146679355958346764328688769666100973957499678365933978463469599489506104903836474095046952260638580467580730699122904740898791668721171475276447116044019527181695082897335371485309289370463844208932997711258568408466083399340456890267875160087754612679880154658565220612109534907967073655397025761994313766399606060611064069593308281718764260435734253617569437848484952501082664883951597004905983808121052211110919433239511360514464598342107990580820937164645231277040231600721385437234612672609978703856570919985075956346132484601884098501942876879022687345565005191215465440638292538512763176639220509383452043007730170299403626154340013227639109129883278639204123004455516840548898090807791746360924393349126411642400938807463566072623366958427645836982687348158819610585718357674620096505260659292635482914990457683072108932458570737016607173981944850288426039636607460311847862258310565808708703055675958613417007454029656876347741764310517510367328692455585820823720386017817394051751304379948688223200443780431031709210342616749980000730160948145863744887785222730763304953839443453827706087607635420984450083062476302535727810327834617669705442871553153400164970766571959850417481990872014908756860377835919947193433527729472855379257876848323011018593658007172911869676176550537750302930338307064489128114120255061508964110076238245744886551825810581403453201247547232690875475070785776597325428444593530449920700145387489482265564422236963655441942254413382122254774975354946248276805333369832841561386923634433585538684711114304982483989918031654586382893537991305352228334301379533729540162576232280811384994918761441413229337671065634925288145282395062090223578766846501166600973827536604054469416534222390521083145858470355293522199282727605748212660652913855303455497445514703449394868634294596584310241907859236802245607639367841662705185551787029040735573046206396924533077957822459497104201880430001838814290081730394505073427870131244668600927785818110409115117293748736278878749074652855654347488868310641100510230208751077689187815256227352515503795324448577872776170019648537035551676552091193393437628662846198440262952521836785223674751088097815070989784130862458815226609635514018744958369269177990471207264949057372642860052114035812310760066995185361248627467563758962252991164960668765082617341784847893372950567390078786179253514406210453662506404637288156982323175005962610809219552111508593029556549675388626129723399146283584760486276270273097392020014322487075823373549152460856082103288829741839064788699232736913600488374366152235170584377055452108155133612621429118156153017588825735948925071088792621286413924433093837973338678061317952373152667738208580247014335270092438032669517421195076708843263464427491275589077468635821621660427413151702124585860562336314931646469139465624974717419583542186077487110573384584336899396459137406033821593522435947516262391886853078228217639832373061802042465604775279431047961897242995330297924974816840528937910449470045908649918727273454135081019838818646736093925719305119686456018557824502182310658894379865224320506773799661969554724405859224179530068204517953700434724517628935667705084902131077366257516973355274623029430312035962609534235743972496592110106578178261087453188748031874308235736991951563409571627009924449297491054898515196586647401482251063353679497371425102293418825851173719944991150975837461301055050641977215319293548753711916302620303285886585284801935092258757755974252765840117213423236480840271433563675420463751825525249443296570438613878659019657388028684018940876728167141370336617326501205786539157807030887142615190750014925761129276751930967284539711602136063030905422439663206743235827978893323244057791992784846333397777376559018705748068286783479656241461028995084873996929707504327530299728722973279344429886464127253481606037797072982991730292963086958019963124133049393504933254123550710544611825911411164545347103298810478440677801380771314654000993863064812666143308582068113958383191695455582594268957698414288937434670841079463189325391069639557807060212459748982935646135607889834724199794785643620420946134123876131988653523583129968622689486084084566556068769545012744866314050547353517468730098063227804689122468214608067276277084024022661554850240089528916571176174390203375848778429112896232470591918746910420058483261406773337510271956539946971625172483122306339193287079838007484857265161234349332733566644733585564302352808839243482787608861649432893991663992104883078477770480457284914563033532650700295889062659154985094079727675671297950100982294762289618915914415200322838787734851309790810191292672271037788980539641563623641691549857684083984688616843754070651210390625061281076637990479088796747780697384731704752534421563903872012388063236880370179493089549007763315230635483742568166533616066419800301882871237674818983302468363714883092592833759022789425880600872860388591688497306939480205112217663591382515242786700944069423551202015683777788518246700256517085092496237477268136942843500629388144299879053010562173754591826799732177350293689280652100253962688074980926434580116557158867004435039765053234782873273688408635400027406767838219635222265392909398073673913640828987220177767471681181958561337215831190546829360832369761134502817578302029348459829250008956826302712632958662921476531422333517930933879513570953463771836840924444220963193312956203055755173400679737406141621079236334238056468500920371671526425563718538895714164197723874226105966673969971731681694154350952831935564177056686222152179911513556397071433128936575538446483262012064243380169558626985610224606460693307938478588143674070005997697036490192733288261353293631124036506986521606389872502672380874033967443978302582968942568967418643361349794752455262914265228424192430833881035800537870239995421721136865502753413622116931406946695131869281025747959856051450050217159133177516099578655519818861932112821107094422872404424811534060558959583558152320121846058205635926993034788511320686266275887714460359966561084307256965005630644891875994665967728471715395736121081808415472731426617489331341746326623542220726001460127012069346395205644455432916629866607830890681187900908152950636267820756143888157813511346953663038784120923469428687308393204323338727754968052103028215443247233888452153437272501285897476914608083144041258681815400491877722878698018534545370065266556491709154295227567092222174741120627206566229898060328916720687436549482461086973672255474048128892424718543236057534116728507575520571311566979545848873987422281358879858407831350605482905514827852948911219053831956242287194847594078593980479010941940706717644390327307121358873850499936388382055016834027774960702768448802819122206368886368110435695293006521955282615269912716372773884189932871305634646882273982887631986457098363089177864870866761854856800476725526754147428510281458074031529921978145577568436811101853174981670164266478840902626828244482580275320945499151045185177165463118049045679857132575281179136562781581112888165622858760308759749638494352756766121689592614850307853620452745077529506310124803418045840594329260798544356200937080918215239203717906781219922804960697382387433126267303067959439609549571895772179155973005886936468455766760924509060882022122357192545367151918348725874239194108904441159599327600445065562064611646556654875942473692523369559930303550958176261762318495619064948396730020377638743693439998294302091470736189479326927624451865602395590537051289781634554233201149759948962784243274837880327014186769526211809750064051497558896502930048676052080104915378854139094245316917199876289412772211294645682948602814931815602496778879498137772162293594378110044480607976724292762495107841534464291508427645200020427694706980417758322090970202916573472515829046309103590378429775726517208772447409522671663060054697163879431711968734846887381866567512792985750163634113146275304990191356468238043299706957701507893377286580357127909137674208056554936246464126002437968454377733902647251281941632007684873625176406596754069362175887930785591647877727473927200291034294956244766130820072925073452917076422662104767303786316995423745511745652202278332409680352466766319086101120674585628731741351116229207886513294124481547162818207987716834634132236223411778823102765982510935889235916205510876329808799316517252893800123781743489683215159056249334737020683223210011863739577056747386710217321237522432524162635803437625360680866916357159455152781780392177432282343663377281118639051189307590166665074295275838400854463541931719053136365972490515840910658220181473479902235906713814690511605192230126948231611341743994471483304086248426913950233671341242512386402665725813094396762193965540738652422989787978219863791829970955792474732030323911641044590690797786231551834959303530592378981751589145765040802510947912342175848284188195013854616568030175503558005494489488487135160537559340234574897951660244233832140603009593710558845705251570426628460035440282367876855098267816176552037579565548167789603892749835560879154117774942357340076416109329400389998219926725708695732606877497422480202330752518765025596842076069322998858757989889646074438178817008154889522651672283404527721910699141576463948523112679473086580319507645519767562895742888179681209002638714525785831527761510908863174024369568056787301523542780479341426649522383370711751126537550394237209878466804913947344653071407962259728713050307725871487557050258257346686661380235142605611619740554343654869800544487929597028759035225840978268359866644658604569424139072909526624993290297344056816068380572662605727708840707347149606006456145407073443278251408747427550672230484535700609221439000299298160821171704791761450519100813267037521493074056785331110605835291278100739174994919784511291591368110739405517520801963053935074024850955377250036705466516233043042508744232426240463211507899733692998540704165626104197670020241509489241185609240963760442961200236459070644977062720791901923596480704892363697986019828308728422856475235316288279132429552481444750552190967204608068954518171220493032185374062724742151974030576904360268636078079200477623242955182947352202724437633902772139208776706571624163975178585925442692342853527432885633685078965196207251941655606187037055021846284543425785038300009537451829295844046491883868579348396115129716058166574509670367749583666669312188176367964494361713041603724305065848513174926405585519401800518090847521186822461697614924323831948643441590855801107307031120150224341607315792952875293683582039700338911211417068521936658978945950315438958901530382714300192958907414994359289408309707707836287591448403704503861896697581120185231923186865996803858381237032915620757883594878094168820553160512819015264759280757495815456422134145937816705699286829989561198235383715788048047870458417539466549769017322031089007030336291176730844845037214566964440146954517385743415781015861878383927855260939913057025557555906094705149809348777332007279757303824598946680968082222134848587382299928179409082566520958165547247524456674369759447468637633242890426977610679193391098330042231029372829879890320939109268283630617361017387812367989864514931170243712828588263048629888449220741564060714705913740552466575697187021735528724543942771480917936443765063786186132434863579741125852086345992780368879249835436329845768765016506511534500869572123950754478568317363155715352704652423525973751340882546160966144074667551422683603195980107215246355106917187133573168548563128085783443562367095965094994696882066118511808603420282133180124941099150260143545001743273079362511307029825049941799428445114647932915459955590958780762163666859179106543596606525352532027365072598912125568684280207724648772201099663182955955290339331228436486447597356085984076094729838954243393262315323991898185226418083129633354635687482886346561850481063228880559673784456200094146560349928087940511531005758712955257196411150685034077371060438037125957559698594936205847751202635494734753474818926225419035267161442928489985753674069216527163008606065437373682355658862648634368915321809557220445677713736831045807558452961283283260631962972852796667436297480082131862792186904428434263073576070399966943078950814726973025381737569492275179535432615691204059483286094999236641228788122641914850485632807206641855705952037503032291689448942757830609091085241060140068327420558396977382315073499610875876370425556496408685507194225634496673243065625925047458176273328181601701969816654242637876360145303594653845032547667499973734083566513818602515652028363738917101654541488267444800910570418616262683797112088614135727961109908829297022969212818097879895139150427093678644498319642013456683390877594300644248562301212461451169792193963440950808322928129427043659914648274998437594211302041829730841717881309037955854560324717081919530277146579455547554475428443440813938890860977601785738930751866190650501807716500184074432585402418436050111824299070232341724367452536534959479906333454075437181269939983371921848541873597984534893459226851506818266249007802933501265882497422624188535252663670282766249934982948874833106176420842901692305289960897860413006510902817980504058710767117904113021748279668235300196022025318557678984331758680637835996879160153892222023657576558158661140919939486159920915991755334178303334764313163501270539069707932656781241590643428472136023521823674121473312449994433415591527431593168747788253315509277033620290122259779480985539220006452716228085539827890658423344755282127651765057266326769114107503484587189699643487577513847914818363510062146681858509634888708145697672202016799119946241777668890791713686594596072646853881077878300216136827669702622345941873747673353799888440342704680304255169412715873932039844437460454781611305662517641275982118193966110185056288055594256606003231211618099462212930100247091334715068226843045868030090424286168202556214094608790006519109949557081581650582898334073946608445756578063669027284346201858732825292479650528668140850353851983752363745192562279549029055790703028395010485483592983454281448730435804705331508151050300152142811717539364913316617262123540552786330800208317705563029496359420165433309409417719632623411938710516157010179805355167937086029136675698609712412036858381295769530779814136570017476135696698614606849143969957383763169582460251334210807262171360194301808720988855141502416381832597525959316553186583311712685794152720661221842266141182515465748487831261034783454674925830872998544742120644509523324505087743149616655525179716802099172002640937492190756993689633028139164720896358177173555584859270652450486251641954055080134351032338981337830249770182275490638149996472333407961304146973947637265086927334710841568560843092131624043462986392084166005590459850649124350526476606760034444161818640367008377411410109432058895559865867007786367189694408962232137403411359719913313594655368544669236765258901210841377743248219181274784789228726489297003237187345615798159983483910041260105074696459943033197881063491392381249050306143340791832800406390709867259619709831126596014747372533052685371774214655400587392462372761736490519871336806772395257078136068668326139501432950947485159472466752720168431658660880751276858475554118438116901162200555211348448896066825922743131900796301158708467011765493539304656335622531124472779666900583119061610197266307397054253143981845737944948678013461821787593907699960202908396567728784690573640156401504769644899394754147460833991869688927115694234549265124664550779255402810503762203596753055860185649205606287909076945333920880884947782889485112215474323019138324556299388102061449026687601020775321091568497783074085964985796715261701003947549453991769879132354655010640735581699940975624814996744327842920276264418979391815839456270817330158216022551965989876937616401986120746675504886111085572676450705262244613022233585207227362048505728923881588493875453522918639971438088406175728622095012250651586310425888413435543197372985621775307202262947555248304444534043488887858117034134534252235431940787797284676018158322709774518092934219318981581248283265895004070485520609989378390034191416304463916388054965878650137504634169565515661829887863070584230696766025405302481147100789978421183048901046405689653970288559553092555863605215895737511408956490584415677493710585964801431587461449125054925319116465382158519737009328019453032057262845265804604633781663142993307664664653076059054896288872418971606022588261757753992205513150937720062486308556282049357575272499556708922163423398360256532873102919400704117691922085001511673567010195897100179701957812089291096941775436990436820256302405482262540190569650771058157424072149633956036527028333440730575007367456226058464988611510168961218111905847171446106871976101745658737379674069713742323875383903031720020020720592848878512391174647167374373792328388196620168762219134623389376259952702567213862211245898021213050140728890430032253550409586681872413936993819306914874471718664618311194260316166407037731648700186479960024304400324224180940227853330901150988087067826883531720076752255313800881878043169019007280483179928741412547612308960683309582837766768828757868868309297600101197453389833195258861963013291709438581661537417179449631917715431250695985348128568461937766989427745917091880252001274990555940728969659479333167224362156789677696670803522903901848573080627567086765862710476940920356559302535274341896592700222704923318682999156093641375700498853730459639615273462939697495174806269645179301871998678853758141597579931480660855723256837430528276417567005028804048942989958094810353483393414492788592526219241554723199714338508663732092663272824351493364070458968385234562474436117525676698776759722343920635750747155291810276261401299248042288399029787992541851749912963028399072963558857989059331779590876907390564602562353356722155225946883829845288292296627513716242217295467867071584092418408414755758253938524096330205134970474069539956789798172786092046228683973577981511186815265988460694975896548131465115039262637774951376155724819511611987725034456471073851343592735553871246237559819381321423844158192907004638977168388720791636174143249707910965816274642971707287172514274589835689709553462682016908535610894489840710058192030217694512077177458879551951047338418473998079630676788584516757572990430697154264238349800987086993367091210839445350624592243231234827854966037465718801489293794514787054060792457590060121962212392872001721558866634573497140953372115165598575794172441988902616701610161155783431502546032878119842402748460851072240667677876085524761777383308950261006438835055020545632434616785945194179566987496851524488384751361818066710831616556420936927052061189851729261714171443465550870630606355101294940030975916779915842604919712095432270267843265429657240327208871432199964531320258710967716512854966996255269860731176371820749882739977060199136209308323073683820645573256376598291257813149222422042797124144162995126594563979275938038380478262316042432539913285112303224703756194232173304785407857624401329171799297924078339071575798142681686465538294684739920588863165593491986789696284044734496802407709283137640810335225524271740410767356542444100448334744010172644105295478729634589864050120360802445119035099497449397361718157527709378020923666813584163626831926340671418279742134254622070541560005095967404561684045177174795279035325493258912048338574659009678173041600052108893461076875400424197780308288518120017336955912713771419501136130440975327919050489158324639914348353164868154857917863293512392555251021118278857369606027693130146966143344964230211438248370563353279385889526767207668897127443581563208810665014956814355879657690985776590276870745365927636497555344961730807816098710324801379513617036776345759497568620801399637455176242514778062872226597145548290676929571364357215267446898788941882075129222575650914355282887461419509786242752788157156640076372103780319404309584427254926998716923433189002214150311399876526068876156674021019720171960239086108297492763956954115303227546017387079562599357978530244347671639959146231793123998998692843797570249236955158729768385400522765149561444710597196288988815710941517170151811474351364385400511624620213117480079198374970010047136343252328157891135545045337190527506822915618500332846956792622620819044247334036250389279207158596003936315336884272437536679969864793474113319832861944146065392278409990314384035456504705678955202482717601187433564369024350308563130955905525039049273161331173492258464460902453507919018441129932169977045183285358648042855682220873721361649058630325636891308410376021567992702000532235543980465311933977545904404507856802139846500969342954731026924994758646605809166998416068464608729394380827430828581747969417287299031101319267557389798409136425347969494348037770336463495847686298259010347072786121862300198660798778268424593383563891957020685352160321163523006498874460020017041305698536515466875202385937518328037285114327481169968369284922044738057063349661871124094783591586962685864358914135985425357768877493274363451475448864086881803036965243175568830020586077325695971608648541583446843248996307701137134467515693024488548207712413355773230694945806726784523594363150787272815790157307003317879685443627952571902362327461426286873273800949774112285623766321490465329407202619753907174042225953924288816455979657003095714138910693684503626823105398674375324005270153474589332567951494185453780882706345729596216908538353537038141811557381637820903256151986974535764641212549807600515614170729804699481359348315056811664279321933527982271471576734018608872151879966935025270075755609971988286306428544812827513928069470275014816328972731434734852852950460488327167397898156367880478044360210900732072736974934463049973144257156043313369038761810094887312071348271081588985748326585420751007795311832686170803707093592761493678253085834048235100363216637895742620255035011686154340737950451648289675569835893552202017367954807578190950269798127114870343119036311224612829530382051287043092947197459469082102563478899543177152437969621128122450342606639926885213307919637027778044885792057304699080092344018663811325209712309647605998994792575985100817303960682221997532730160658262852758257669507854726034938298133582528178670608512656002268871781125359782933734779141273628418865617592083287944741096970387985473698402545806329483502235939354358748022398976091629625011047393116944910066690723063469313016971182063253526924404384009372428442820970936485690946892008737175325255703054353982872781230113980809386701547488580344563187131960267854879389331620500767526411204439023758334272429869965478636853410284885737025472550236566341868091903838867078790720840361940216467012153483797815183282647257862881520710108149955898033811896156944175676134071704653851217090212377788433364965187211990540758187739439752836414395304424591390317881300418879188711455314826746998705558793104024038888408385068734162507165727418513495208496367095554245043948394804597915622828248378793415272036226336956180555637107681488889361927574265993582355943153088793305276755874751236506584396947560429719200231986802435171993786810036110231256836425607959741057415362829718004649774857371837863903703901539737491165468549971645394161121641761071714540176519056505252066227788312904571969320599024137539598386198260320549583950167555250964413711822256149601400302303540789920969867750786720003807426797053030716793229601564862280851840335235017060858951291222324611783025316362894394607365277133651163164644619909902122492241231516899276785586373631552600250348848781323300191018939961670273141699962651194574263676196500243473717272902846220979839487106598227000995491887769618850543265321180221944428222842515255614118743401804194614139451471287252759239125596443735683397289633126767823491035633296129471910151571431157954909339032614119186547523762472153110207936911584874220582274734320173558507712243796985796549158062795027409771688611480761631516185530685669245717176922044366843312739893379411162972245169998546856221570241759471176995291655021168550010898576193463945590882627077531146577522388463435193765397349848024549760760244030808448901068387869726123709783578245166801171485983679405529046198262165669172027426285482393396001825459940925430816969103297841123402288560019054934275022318529471282960969397681373419770427812130014732867760571940596997927551246171843495698564171287248118346542064231871455182415286763056751311626771773506175112454633879942652912701057899567180572143655791835069177793070407573290439749499582241062381051491765023850418273009662017175094059080540895728375540635515221996582075735131570759236153986394592111558640009880975526105383825689927215847850417460651615113378833609760121148487005560165812492470682568442720454728963094203066504452986462235942260085549915891499536064984280345794927570094979594506023787750194706246323949549578230822830668408188025210766390742309737209162853371768062164469354323179178553058331714208479886303408465726426939557002685760575393478885870946005827232305191081175142349126873365859607998917329289158960018150918163374008060354752000515117510290122992487096154592802620607616982721810291673155489294237408519674330791660784990557821019357136624359908836138598085161564174769460547855400819535306708030896976304529468682332105328782374389441156851762717116363094014799096494563545929501307390036268210073263700823561506912696431833517162543903046989893142615442635951136346605737865495124457475262167895470362890483048499680403772251343193737344123661858694458806401858407314763379294038634043591941987235526301565460805186867606804316084512845916042441326987912538560299159967278766195195053176488313469325736689464438255813910848620966374267457983130122234387258312442203309457145754147047929387585823899773851521352372389559664312235643262628601147489086817159281066872708400820337718692153523526926347226809082598988984002620815217828261122931311820866007099686036540981832680755824776706950410997586143624355216194535302920025466736799648504337313349520821075119925892663899564756985870790185612379157886437446903787150950011255021003884531192365296559946190047484662064234794232967006052900370917557818870819352214687142723527763255989808694872111384598001412384216382782441273654244674883338167971620112886191415401936712909478990264666443156098372961501968624228250672306166720943546571425149308642488778598682759588749065077260250951829536765181182368616944724360783764294762469226319498921964644068316928766161506050813846319415116202577907863071801231159458603896562526554223346234454507394788690268159497513116885143694521021688319044616862976332522986385181885004928693572764766823855564636554496400631764828557578586661022855156485990882095868944436254698679523822686115969910056366082926791533753816066112247869531326158531871763885989377929188902998793879810003697307848959270625410484859315854323395683104239029907026344379787569185543408976440760130844481978626507947644083013494243583428188591525929347143631753374958970107287350127078898048163504567666769320755305184043244610074032167647183608370847506512693070766084982529900031785030585368213951273503863824605642510337775580986464339801718620814266307417259222600051109134268107467012901430165410106493321228379082751500100353001565459750832377296543969738204774162657106574082164996062622749618795334790706598897487177956433406484174564574790692517014949981009535341354890875483632757952240720698629102467170357925144176670388660990698572626058124082533622521899200041897574576531512300006444571593170177168863548333305192158205594611735771632113223393196532038619900511617817133400107057665268991970816920221946470432379535641186606392055860903445706415179778214505472227885298721019785884607004742002846887379584422894997433365627187799172113791616449254132971565287952953263975953853592095013863338050756136953089954758488302426196275898594151378051580502576754040178579585244883117210508927708922727343197382388468730716823024878868858551010807352278140537140652075810727084816726397709873145516264691142328610303693298433030032367616271426406758780673188397151500279816337477907877503830798675940459107392103458740421961703492580818990720596129158642020288573400911495523886510791137149533463976398818394880453007507474037228093682053543049495194833283347007516197900868728543996298157560589163762472306916287111113767608648032375245966493041175394613646433780467116505550467067183622128579504806716563042762671142999911348769844705037063790018109688862972175795173243380278061747049630204249291661917188624335559928209324391944571188632155632016165424705537593869662465633412154101403228699093015913288580883124124288287637387274283803859071029274863335150309044532805259779565892055456243429798279413489175638240077161217332473642854016061004433764145722078592171559140103783202013213383309638077890409572381055882939279637438166068683519505927701951536160172215890428785678482068291944169871819286273082704441630396254713053284388337913374768735826122116258360272896162455904189677024745382758396652299371235163048983301242141745578859159425605979242772181990855627984860561745368447892379690797559455515464685316302446232567403489584546225674485820204245739199425309426422450420268903815015268360241255980759752364816280930489127461511962315461140082205639678065853540766868822754265038122599916207601708955674744652423445201766165032594566591296678632462137991922296145867142248249288064768032108647799410041006003390679275237362546027742960073478803835668752200348245769490845686269605771570191917489226063520812973879744383548328613693956245039297680578322340217167655591776684037572348440946176293128849268993687138983882227106027903799001904558336007973927741092665573923314702590923389065438842235132411538801855923495613993022391964505045036935292701156630515335191864186482344249991927202729534595990630487236080415957600296681211168317236603811054280359144572024825645610571405546242082134352094810841715828957244507206354681600230512014084805435874252617101768185388355755871741542477544977222141926131552526910917556333193232224321852542218272914915981058368970250352281300214119248601424806807975369964777193949068046835528083473276103060494097330916903167830979346366118327845318687164626807388336567045660104237685058013950744364796392228411269794513477300492498786496563679490992913271252897765191817542796280608493237552081536111324033971316550439188796019838213858500077324246177884918758145964264233788979333081948816004011312652563569324465939840063689031525472292399141447437706963389357619260391892479363178008310261141954854360515778716004955788656579706658855104288246636305720777890226677704251268157197953322510763890368197628440286102588053923393294746720240885412764923864476021611626208242129916603622991849237822363009834781195229138218473263422857591209798054782852505918379833680178741124264474600225624149806914007409797210232785395756151283458061654111179267104279905793944971349463289504565128688478418717580205045832838748531373691135102550620102775345809439105001021833973245650472889476879298925945019875076712236379187586472012149660611512804870964886305622844083936944387216921208492008515583812510707419551872080937469424597311728117210519289038963703942357768621276682109318276366498404212493814409795986311422543648396549998347908430702176438555435125743682822815303222238083476795111355701480631820045322072379489186357214910624252699399467101536684623410515333814268477062758520352409920797208699145373010955164150331762820019691641154602682072366925527514184299699205398534330730680573723805041671972211273740507892726634063885068673445856077326664838457802771891147580132310551987841336521851907146068138986886710314759826461129379543952667286727599483359025974458786876849646268348443441413591771458776608807784535718393293719373932364083563375766884682111179935055410208556188490102016005056395416874510822060355541081766646052412496622442280454524321603203601946413560979200195902404979292367329892455399010198011214029086869992057589177718807414612220502472858571536753074781438973057178726836636015761361007722863196388526462351255380773194595635679653823624999265518043307963596211067455285214290262949826567553352731004687886573104724664933265679273313451229550591862329373933260860774513507753090157444382948733977960532284935830136183795862648032129736847481751647691366211036036950910666650517171150827820093278835872259839404630683763181180890442362621998812368268078579526219721668720174551747262781803268305854880397097704793483103543985590784355277667603313988460527150313885633246768892710459585193289513916782385773577265810047982563935519352005520408002870596782497393747886052835649359149783803779649600052124458347790017560424658666519980770288394385163809550430492196032443609034008517466042962743097683871519459826447359402342482110447572911177795877313415536095275957089861258677145625239945007593802060935502489200847673322930857422225502064556902391265436635785242724290560532057540308210145123820902174669757976534751725014658374788480805377351504222240429576036137543248619965589193922050469998210629316096756517907513229607778575533102658584257608668676453552092774827556754517716995087894118059363052499449670123759800655349987396663953944170170596981015127193331184076792327185395398097640485278467438723164329100290654953086128333026640075801296184992070220025559721569575883761687843643467927558635739722535648841330601192895746428093578580811323314331152874821797660397125795289003640719892332813161164041693773662801325973822223742681891764895964227033803905929596496964821331144731667650419767811084909664694257170694570078712640144865224284694889761725674653522050616210730010192624831468212035516995015220073163840041320303332423121670826854689317584366304307843507859281044784926639526523987186441733800856816923213474297545832694021612533328379009606486277854941266795136740458774169455961407626566250299006922672678760365871379327960418488393933934692635434154809518362332331752293703521029146413312752037117166754872063473892329378510729029514462927415467619479427471669160304978292889614745870264997970792063872408250230064255449959040119741085351678444090188064629374835443961440035352331030404117845722890295818058103212374382589870274737040106837777159251264535706508300921479258349892475127453622006105854575997369313529707814374284134055195444672148941505745283917160371545308252555834320251254241662445752456296445791076971715214709518505500355054390631688258105785074635656204791466768055698438455202770996971988980723371486956356703177687763789743273492829343905145567060744607970476931646278121417138182743785614621970880870210642110573778514713588373773882407652804519142713748811055974471831009393751976598021002410125112308136826033847449108771613228576602639388492849598982365657272042635720263748256494949126291419171306462805956698254936032613201925280434617043902892602799314043613702658201213128514881585731117821041310335728887181729526271120008147506402683046418988769747879173173703813999188824241699421215277604518595671190941807373479331099709283155468165639527101046113762540664495861838546389822089967783295501114314995936803982223037136329574232173574464734210974149174364199473195884005263872695923183642325491845595504534377846709470450959420120211422086419127904935994521373924871107432314951138042937936554363721726348190757113531270930795272952211247953149896990808946657476955651243605611420086639905609900038030250612423607750329341347289050131677280971316268349596340929224303119508487886710353352002371273020291659297525265703921042149634952385708560572343462157695698513406830454833154590753647114699682420910232143117176922773853477041779407644100130104859609270721132052318538222744487024332710398781147912754608083611568779215131131045008366363100751751102590028086427715020962713662397401075288445468331618211502789264307297635576105511246203324800531059951115054314848295534329598305742724517378865271930007323217362375873273148909109455374027048118555719905168393874535206797085921189640785489504109405699659887159886336207795504521932156336124685303174705443940294182926355240155452316098682553138970188015397045962501691796648125015559323114826730056338357972603286017784741496004569725783495620587328730124514555763452302986481495441009078835298012070126541095251846066620176742045257367994690771908453787482060802904825167017661982073061833123921935356900407052154989390344659388090475077241695436518580750664904594431888629787235716030224813522046010906352145082806397492755128476943549962033991644887919743790209571888632002475020791023790730729637463263366745942755637845356913673455240148971259094803685662823210050039400731066320752572831471151926332892852069672393471750982952602125494764330195357438350925828311133911539063376617373077236302798898699857994501659237690675488379889294006051628261400481504694828140330839164342486509396354589091328059511163345503656348245191505831794980831827281347950507727173359496633718821491928378711646390356692577994245739435547304493555939684803279020861419681508260648109246885433833298663907454780526362916156279880318782827074516303278639075665336219750632242486457694597535966732006038982629300007612514947980089567124525695598275854857690124636865949422422772717715184964175107159841635720724122437196806720392706478942789421712842641334271183184794413346064724314115015509855117124146682433123520628406572269260690474791964472975283227495698196327787281625954012020538073295825004974459308097824095299129654233184987988007716816319860865120883158672565065944140618446837496318929137459934216034848228831582897309421614736892558516992715531155888876007217034102445874402084434282730046730979555566681150130033888958380231464313829002600763228503475830780878895180313981020762788985174353478225120846759497430024437895842895680752663203627696299460180834941994912706559130840005862656399639110406851041282007153246256426371456355757694528492711263557719632506589654553648212545926335525729259528149934158787765156922311915102337344071699165647639820008969846298439977593853981121332181032819896994579261764935829748373387752352859464035138238230626945363458100319367250206982807384333411752831573143426398964163471270530347756991558003118159180911378802688385475769729233988828603230299770430666288695530121027270576339598976894102499684794981684201199256134807564404065594623837087236888125489491487948734808614168105521140018455170084444842948475507327366428272220633658240174549880829130188391401568090500008495465737300032747797209917507461785951579953202237285235920400742515225638616675620318839811761861196022162847431907970250367459282804678178536647393560035403827828184576694782337457113822121932616729501042706940952026502805228985909350023944908745626205345221731194095778301953605185038549614062182530618203651827337062111989390244889753863581809944918157848783365288654365422483020278924170496896511041727594750178122678581439174864942435730090917126487716059592097445811462955422310022008512052258976477811482703942677666427827462593951174380719861872226558650403002846914692786468003183603463817264057027074226203429718755580993868712404656223338914646583055430131550952851097263005080518826527268533537293733856918269371716773031611864749481042421512791591014606569795333133774095936749326441463702427524539335030130992833648540706984034399121245249275580299798824092066446404258596620088874191649877302754037292042158109378147131362262886666945474212449552849091492193371936234029433712557556998865296623645035351920267776379424820828605689362315215231788501452131321491469868548359447068658501098131420589267641611516210940535678073681008973424587293270521085357267638056422884092966588447779527954671073519329547471301507922084032823220442894467821839654711090211734072513972475735700855531274321999675125958256806323588088388436620326226619141493474043649800024739833209241183866742960926946070141838817811071428243965779638843986478231371542498947258304114514952687242361899676305881682084632743744121039055276521871073556452571336011455804558568455865043285991767651961932711434986654077745145004730727117147957122275720181288644644077751746032824231733853376529898104423224046772463204795179809715760258008857689751340594805482687728847762938464549604027037050853941909276993706680455171941604037635118018551365754510952470346022600207417428238494817822549063659920847490375832057446779591067556606407750093471298170058187694080279926904605949872117634151914882251867043955731001793710004665729218037284879797156922788883970419825456570642890898582795862565990137596875007856985342094439959715236676735599115570900614130188539560069330508261157883159790188291287776539696406753920808485822904755619051863754905941764720809084852392996636537774687098568014236137076370467423618029218679592476977765292629290417983927505343294338447653339850122828362798515026374542796671771484197573390657287154305432157523544932053465375423820484485088463459085338667729253852044498441313686375189411768486261360368193736351339325408068522692147430732913446762529322640845330844938647151561813941363435036481779475509763392559882786903696323863303425794452922923775203287448902004053266813935475285501746453171721459950814556136469252665022711533738181759785579504198807548581133628915490090390806077541575736137375598801875730753624873700129122382611343810392343723135368988915337494937863249849417642814170452840829693991724323286772564150483765773114493352155385230017811082761636303709020525950377909253411047057004656525197792567933141088663264059262317889312603152857587164242119033379872577587429012903759362697272343148935725724188379418627686456677586869202760143980501638714352047767388090057892836338177973884573441001499664332358222579253517110594856078918240152199828522694650958763149247127952016446764740270468954543510306982617999140223407285489154680684209574320750662115448762664467579863644388023258636088691875944227152142965066416138496381502797217307126592057826600278471814003420926569307030904457024596467576490185278139314813150920364104984596906022531447482294570702527043630406111445514222766936650125425237207439401827752508941432915215170599745459312594682121435106227633033185043394889512767206372915124936819357031910469357290527628876878250048505480059732307532652277925524199131596179115220694196854791873415669978109670256299399320816450717417349056433986521998663905570935211985243906798615021448623928438739820187602285471230394945966157258750965032007124766575938137212480113415355061675472036957910559746106711254171174536954301471914199373197227971690211613572625243116472289366644142621243854981362369496357128211603685441607108231775107801298304253814190892249208595364610821395648113205316073707772076055993498150342406407751233151215899924629749784547438578559522708926710247919919964504304016600562176296234014928218161152050464381405120101763279790269327122270125927081630457940869593885030885857777676988057712027746185837281858599701772111603710982739324147197937663864843160008415792725306116408501515001652030020014274337639041878862263527470225898484946907769474761327639105259940566038238237163694355547065817482730718247418272636272404623994402844447364245864447510469029976526749734435698570853905781915995859960967506128309101947488656507512613971363292764158349130420830095085110041407455744378492789857607261057697418196336967907551883832201734437643980536829626873285189395308159721384099875365774663549325311393625597895430009119142674075385925496901579734191837104016999179009456783596285732244714790732045696471978631549086284123332517481278482880984876102210097427834751646279055393851966889569651087606287295745908892017023867207401060245389415195473932814246622312689236265027205640264302177690318955552061127114631467170389157733900654528692327208081115787573749910353244466936165351752212468866080593973805468948675560258870687103081189892202421749529345821953530099156135536073159095673469906992487426800195382175246210534986270106132159075726024080430082786835629319838427105219835472751176423302799589268727305311835580568752761240919742444763356809568748444104546702835236514152765627008043630974774537678098208734980384982599248810670297754949535228299516546559850687428317628520857196139379782850577901499623213922046234152416823803889446624267373001896543376476503634125182850951208886485629471439877956655928074916489625621859267154146921767683960545008216421626056106423144435798230691965780470574714846007296818237228797756049608915817868672936323790241579204728364697021031397518009784159855000705536493875321257496167487587258325992595761507433918622843798830134604454088081780968549119454119347026896505991986041099765321119658106296655005116183651706202928808776091498461673164426864197089230648463056754573887202476016525776085293772109335844538710740272925919152462676235381797869306421534013163370113573563511109814182112966221073672626961567267483077524887444841676657370240048508393702558385910122669483580683915454791660164569148630523935977932446725588671741604855038711490317607553732194472830582219155807880752453696932744601747360524205864696869757706121867761972058749104516514271549542385392023252697512349546546309061329460056650728309872803387373515537522356318357025370064940926380803173746348540361146600048468762423108947237916500745179705248628467276633755173036873683856440370498066179092008317107882104981833155261485053735407503510822393924744563010969204227884473716968895091118573692689033665971852253777032962201670810655181267580094085251506847757921913893213809286961195312209050380181076587488368317882781425278626187966760682197703909326006729615127557125278643706989835444409613917379035454851804039733313748052358791095558304048153480453918785403824323690730431027406264177776265730103470338402112966908481804616249648739473458441215530258152221499458222499419419547256410317502114422808652302802213424093193932727678195990608112598623967339458989619071679777780259511631477576264028588262514815821643994413506196081175890461951158539082613354960388032371352224516968118059751218959002859179739086652449528040782713027004537743726785553250485039746375739464609840856589301848223416149865831503466082186223605801948114554903515474266266061295026878409754779814072682395693147248760982803450811893834040961534314863011248676465315478758454946522227531877356089083504383708112088244175993858646630939704811725300402030581340904474505115637705410350141668619124852526949334829785101811147232987404539612754022221909584405087230662326888849704223456700011949751859796494099148971385362279458874076099043285422812773058183040249451087063369869468674008948109753971009084947683041071152955063888765249054565999426077388634739455251144897203610479375725447239660235477481274941606983510131476402364194914610598055637570446515566712365256828270157445284760220781753972337164096986264920557668761564457744644664925477346729725557053882859078923175970676863982496629455560193873152710362720124293120176425224644803181954468333763994613138361445704160888342225371558783580701611560271775414247233315278135669400989800444582389984200640748958923892389275228914732945531240424775520838052379510123938435858775454999001272068286659998579098429303846007329623842629079721823337274766946401526920488143042273943883838698807236503400880952451272600136152570415774978954642745928669621641542751907207896576567620470876291025929888771283405806131718206887950962735523080228036658853093027046194006144644918627856642449420816210203832761116962244213863973115713011899185316991515816502583428128487414927536050735501492751649655689498688144578280724154009011617693658986281137459279032257848909339768816086708570029953457215794209809972205321457514271541122093988698745628011653320792545519698519103842815726835120109236799524290686799545683083885930136672185211353641724422837049206036481544497177998861873906197012650668437064042512445995190900622608217984541513987408615618924659308440274701471016725471601668601739769199766201111998930155354062817781328238679873988318548093651417526904050273992326953229393103604569842520594710877602232101677467927935625307683377220692980995213327549341076406829369625653809798299221502007619065671332333071917531109537696743144582704745219185656561730561853216604259464553856168837599345327673827887812223153728111341735545170735532082760440774525442307854537481125966546355745960432703685421573869622444796092593675008309891400068538363588177874864271068825787874079928341825197714084223048949791551798767827468475408492899386476349839175392445932931291380807387650050522006666627273438445404989680118343255349997625011921767875580980672332416782617825708911630179808819558379107540118050962160109308042257018054929764678411538769143070882475312172313794037236592877104345544696266599992623393329864113710012680408116027696940228713650729810644525201655173386046865040621292457892714722742676386142682367640851641194766265143710139385568064270077829659680486077517949221215629173867163546498898538357515324974315835413991322136505155138410903090275543323644120225300770428211147141918147570961833137822943420725434103155582818669328386683660726916383696779320102142029046813370491534380592465471149708354012272410065039497421641886692274473689950625289450277718989469132963467585879264235211633546474686426054856131577840361143149026954427505648038478887943295655604844339184060202704514682782423151406507022104851959207231200493371767383523709308856526434484194677345382413296885430630247782554350281959571754332687358317282793377410102634717252580005510899808792042744778385364274972065430922479605721400330661597939815697061366098396405520287669991722547240206396060964299454270591546000735367315498807739083001581335160357301111141092801541228066667058785550927033385009831156762851616492425509292830390877098893494607234902865856020542206703715680463500382605276371082398659793184830936764165636079070660523343411137793121612020588095146143773947683538839504721294528349865480864837885019467676945623267019987133184554534837360845127671800567875423588719510589565279780453783448465046814695167753813695184510308323903749657162143307963860154481614495523935111212189443023826954057860116467373664795652065872508159275305713134383569920048999618043254950205219555020617927799305642458366587216753519281750334499239183325623616265020814903557861244051834404038159913582717384337340452974499964059918656664153561242430800162617933750921429658088283221957057843171697946284551330968382460003698996180592987950660376071243272559753650882038636095880904003800176047507866974433258772321543832599839986439501144954150770097282265369583943808509128411041629096637012742498817616344101667423400506836167648232710388942239482025308696722292524340750602651298857635878137500851005688687432827471873232428984773354258150416258955023854489068496767648928297072811584351167607761726048913558510981478950842984983605593659371053202059979044369735340166287645320637188693821897801573219076299810361256838764838726985360129448160731761865806680596837338941198265008732624266960024090883207622611783999157440210584278984506303601419933928362455402768350998972042185962090201621015651922358421194882020912378392755718560554165620545534719697866123505834896282128608208403497311998810772590454586337661085050958238503075128425964285974947159675425924034955860979643401966466721757237237070785184646638370671702995416983298869124728187680273812549629389876072234084657095098943201654876047933946794685134373263039223093317906873031699418007404800068725136597857958599478019949652342728688988717813516171550577839158713864040578956591823213708140058713808836523047167127182200601860881125726033986240354206752127690892108155226032930044410189063723659195711953030288248586847825648830052518126081035421351812247158400462751059244487058370954083531897521523610342040845076413767423473005882203432316047463304350628142321082948724090259476441189103223374049794740857827762204826182195142821798112437267662584689519510699867374022732300260261505970642152746023269994970061582359282822297832868401997290365378168160028841173067332449662838403243536504139753620550910521974909579986059572694138402426755596748637742930858314066480318445315329081532154943458288044293735568005276670180009478873358860913649494583852689279136559434288174186455594102961792995812608097064547465090234261840345010812403353900061073469412097838671627721613708361451511050077201170421405751029551149137025545335020681411652447691784586943540341187913507194728683338966247610118301700497261895611839898160539092008911727724528273299586808380107378131400187606725012692645464509767337470023676782013523567324262478880482343629009996330109765730571074508621321877968280743439896483552427144875730583032180249452109231991204178629832110645618982345049505439716180303956851265380149225169487847955472418638278627582327821299397820742867554710924982182446861479580814083550046687559626157906171759021927186972378454724112985575731793747953518295584299133692814058848042157153807468531130233549462721418440056323974458753772751807146601657065035375000078000547610036786369911132398586213221822462464343501036322398596701728992842523411315434326293039073595342914413933874282187214841861312790716268582668472059546640356511332792729283670421533337815648978787243472316577108118905881159220534134477675212977463550655110980181145470892170124410634923949242422673834943940786546583638685970026019915416838558615578967012722002322003168619541970289247574216667668015248082402211115619098290952882934227840649039533967200864995696544707521184613434097785777736426316586916987627495418868313324751453159002335440951714914081359273191146192006775792158563310761254707093396116441508800727293945636849253271858915516881472096011415405664003892102811864854595041190055800792839471619967600301877000729916613487810389918979927793308260333338334057919338601259926635435064710091260634625238574346352684749297906578001728766596825621946854107798742184455047104825113899365427994459320244389898513442567266932786132950485170204267041681042398878776628283501931254549510108703766963812060312761799621889318777830520450194812047427052045732125487339039302866808539289855145395183070167737253391567927690390733624859034335147611787051779766471010750245076816165572539548200948091105863173298917531184160364021950346357321959475586008320829267512378849551667250649220720609741203129313574353745218554549830258041565179862278016468937481723971338112369536373581105739391053691797392934319775188032524352586080827553740999721015400800469799279434223454476897075803131490654997645727199699628033269209089155838176032139892644880237691008274209066808004373992504541223684971940977467046731673788785204941656447370713254372831395409623181337647384889412182775687605827547211534840641119286609198061422822955249075885258711407213414016352381199891274778913139757468280934247282311021898430070244399964290644450844788027668653946357835978633014357430738552248011805785516300305948035170230529176193766804489745519006229814174022546879385980914228583744941429466840567844786299687303736686339751013910079845588319718939840420585178312625560990751642566660914485766068367937448065297240370993339629283434833266104136871344725962944171536616832569298746075193490043675487124501251738822895942643220617183770595166566490388962341590342836592467623892154316210947396500986925708950750411415781971894579948516829239976768526059094084769255556032094730179889261822947383468868847877421474782112462900504876162420975722951786073395988696418605399569127426110537996486482728821472986544793727051143103641539950430249248903898719047380481217370572566371346514715413122205631956995297107448454232578540931960703748062432887305740374143132382158355626714275687557551361820191763301086283797258551156741723050471906087361627708326296442958048279756363082376436161545554061698004581964467066781024334784598806924847727489529826204516943700371120191295353112919713801759557797453217970689981078697996711614064725835573138528037814479461864582163474520398558975123171364079746838514559204145005217721229144669927864765201003653978899709419567795422900041438454871434885285565176308029925167644424768218649062151219172342568685160060585978089662366883201283965312270307465481821199948225388143004016811445036211672024446204828296777616016563789757634979554872551080910578133942034727744847487698984192182808563041649260299176230362632250441829629652154385628760703742186814004738630945015910913254210303256135110757558287347865626080932564507434633723342240855858163385371530694587826920205239506727247536900139801149643165945829716486863220484179521964244983279488063134646201089139328705313455615037887692114592726850514677135599589063223865076477828269016803601306170856982886336353398216641166133554804037038210034458380815055830340179712082249390950385660958557139537463476283240421751934265668639255917743378325548207038610563301262376287698173472822425094615318907021508205042181039774894076572149908324785285459510024679597393084110627252254156964938923682735814346077275980334626431259827888944181849173802687044960388670718647708315647875891178035430820131865658203435407342292834745576965149868391503976141261336078948099755916482490625516855367948247405098464960856818891720369987375796439800116529527027723722601935755572023263101476869284762636285189304849269092640985472493648181412831689383283125795662135988355445206674089584092314862575591105196220005030802042573700289966012413635564880280339995694656095885763219926030004685397559802876555831710706399750666047614867776356322611612715224267109673618402529108255244615388577666027796080898302837068778139849238125451717898757790676916513246031087551814796001216762016855436138875351111446464459659489862868500384293816775979619127299904591343960428362278214574384910806626737203981596833114583132775573719396476213947036948713448379653367208865076094944310674893862810166860809354876204062953142683679016223243442162500961919886528250184780750093092989616878935144048527844852101949729314912293366428383610958359117926697321050328658637196191306498573320866152431989177517561330725336906062894401403624673579168612419076797307215389609926091477800392182909660567805157424539481270515827865608617662808876754852826435345792975109103743243148049050997201340093871209967992266732745697219975739749835295566344453243455703262602782931368938896296769149005111791641573964151622345962414387998499723972106259104524266556282960145967901286176415352478643304785581496257111395603251503631837450619425879073297479906540337812932343549647709599415970216918103681473383333064151387713221517339840938174656833323752124521204263514948017957370648574825588129624111414646926617747817386015615569677680806354280813392622226805735860439573916273877143508484770186626531697488864738682430941960189287589120213872770961538488095065653207344205898497856821448109934432714379412923407297547932647618296204036144364112746524043691754283585661405959433261009132314486416420497649479552017171086517069812241608482170721710164948247980774918016666318076045716395251838609582718327208657052982558926649231274050673123487720349779982956094106360305165816819038480111470304239018204575837273165208592253994751093890012112219426665445908677926913711549507896665766765460962882777751995705545072979236662085235078168943400320475437404007621799091881351094993966943134279859921580629270421382675621435340592467202350206425854109685955128295988801679474853488276232260898821426027966949488339973538091153102615727526061516646757472311267311304563021016442756282782191487924669897532097832652921682584330479085478336542697584330779557195200010120787240198813494984438436763827041174210036951169011180168326999466120100860532094157901928897613978403516511159934642044414827682054550634184830616197994602704896489524389702584341717731903153309321479805420208961951250759293649016278147407732247725732201913504568055999785692775430546578798428594684085867841341145382412407206567559826482625761903033834174251848538540384703710069087650808535086402176210101567282914356736771103511643978363440428302347807354566914381770474508945872117878391541665309247269795195268639282330037168506787620787754817839108197321829047879932913960788741768330818653181999406597926782213227134596324714095294630761973967499846349363609758067253661551807859814534953582160148026023317625201506366399391351428775115353212411225150570657231152085376502843221015840618982570047043917186490724120891714561202491730043799349994206586637985787346060480619228119464331562925686710879697123496236406193738811218020737915981801097590801132722578430025011137880349579204391899288300516242921760033764107933719681331920675829918260784852475711775242016834934819414005391646393521827371048915003658047925976158343651355349438431915092146293081995018359167094253026540329803249676158439634711435324714370392214861784382826113866885521598461344505803302636914394174355991753787166688140045296893435198765272300845846550156565989521130110485288169394156867063517831922185595530500029864832544477477719955016508265889671396408898805679580669160658060940485139280102227697615613826083190760332454846528661464942948396677330080707320067510426251414296244714536875097068785066005939402651877861032765470280632572990619689759188738667230511012379493292597649574826255195927394471764009255618521185772443088894589313045709752725867071455651423603418198903151954572188621149171034530596578450826186807436497735831757700864758799643227445489500780966711961621513676950853089233612386662834811029398046074355342727244281049032807567670033772711209491284344874508135688221560330504388351754108148303753443420841220816836058132623457677542793161986045430504448510555800411679433767132055814705872720882536047310649679318479637352788447885205873182866006563349325602359088898353777250797020050541440210559461072076492440913633722789739946639751234117883663125090061416232276570285410485067974498127181467643084141030023752565373049527672754845459997871633253310506190240215181468100146512628510397598394128823698621131831524776496795777441913323947985528716530231998698023983984731981788171333103443398908379580000513196534523383390109097044471434794265026285740315181520354650728231183851986580293621352243797543193801983432914312502757766754316869888602865677013500372589696445868683417647387839066544421819235857731078700231917445428714160030268283724049464360347876903573326188114310108132188552798589730345053440330372276915140453182361878321719988989055082908966241976585598057834142873730648098529078214594112649499219651136125677730769946058020640723918086690020175695641759552721135933758979116047598231558725356445682571437465856688982037370549704529071584697376355587060928012017697805329357967838079502279220010520167689887325410838931925090717428881081070862320755101848004176969682629039239983938116236638478713081932018555926786589807098502295373949421754246962535470439547324133924764852103761177731123138500161871304710647783932487585006361991196778775326807139246898440388265936051085465236922261927240349912103831622629724114408355686804998074604837135925207539017014469373916409286486391905375739329455653677543563294895308547919735618116894346944344364303087144425491060982948288158115956356299337794739220978511040672166448032053106709130375948843457873439847370765374740479308090343824433970583053269585629984793830480817797508901932397881964474728134854864856399736790769039302521285919509594533031379751852981866262011761260953213926339182718256327583059118937210691577643838872278422852900912261251408052315081202726247737066716153729796236517171183091817152280526537593373755812823486429693226678471338695988769158095081150499363373569059008428920070548252546176895416471077801175860714328662404483055236425937757985524486960807267305907650248851408147618917999896292907954060691650986275070330910088661199318365347811068950055323212323104099431566975712843211058927290756266529830683461268817435027634457348731308127878539668259480450244508994538506262228156572066562590807106009071947415806434289617313151570605581139989607656842772395481206246549279224664410867393017052678406522475041053604323508688152543821884057815229519878956064995606982745328922732703853758452092709242946673468959337778965806769512859044905739913079487625397989989468534486708427632847644098046534885512094360642889373837105351559587950751036819995860092479405220515488077774998306131379026412827371575710612817362497836474502072277561952126743273581685496119698882583112616695052224021881146693062574953847086995865745998878927868473871986438379048046374622281612687127634511309478316617599707595085332574602849374001043645034556580449442950345318338129078508883338583786977108498206651020627957076698334451779345271803769114102075574774315429329032629532114978826203515987412546422884395277795499289564754347105898585159005508490056969036939946380541274407827207958812061095018266675052829100428644011596909156026024587211745604551094076846979736827481459790404552190484180115456634783353438088153414037239817881907757630647233836848076617187887525444073186583050118647563203017139833900789875424411026277749259455787263151608748702504806203816260628415675429971100845723607943683883177569711607177476019773629986084709225612419033443038680607516077836502789166628360931767596955301493681279793546665239389865492208212613277637898202946799581624398705936239170511750705049392442937122875207210047900369520353054174702688100313142753117445624640735452001303351544161161284530636382206203182714120347105733305706095610419997744129437897233361952936807116294649741746746061619442841957715064212449115406707312213842064141269671545664389159471777969493519583468433678322141303743107342917437343763544159073773807768335545452204160755832450014127128997410149470548864724341589912960922829862407455160589149631021000595871347192097972398368312801101752643186861118351701735867540649265791513740582162972420188375102977202769228078017323536585248661037355246360519741758718234908738197745199604135160468808608272559061048282225757674635819166290343907054759703480904400430433331741346142345412745677987258923240909151087305920242790014967370151347721514257148023878189727890993192321188518040030497628938731198868763397705690319074145176297505582950790551571289772603435467222518751947227775034780629888158027640883058588732114089935625654452632562629304285439933282550329502893699077705490294707962200839029322144411265738208956854344785225355843731269337547937659943069910056990821560314508198864943894886795977365202377638052694955587145427065851747444596468235269410568519337370049144862376065979574374294931376284954237476962984236204040699032232862548282233542016522829128844342157512706020215383178452185648411506693943643644633903294628692150012003317372231594599370244046654644010709546377862736676904564259977586034142337627592585363126437089730757955269968503132069091830679132654203064003148245598623926575975731775912862530894654125166228407163370149790267384325301619010137297886469540342569455726305220387629423264806499623816308550031265168054478855681997310896795755442683922048513091902688240337712017786398604639800256037206069295346015367351300935166490475996904153484422840649464357839627395979697011999599689705500713980267143153912391461161358183406808760534667255305042239792809656622109111184778965033519003128193081404706478740367155552114034070303989072232339159423512652971711214491591287469696454455709228043473384101385887428050725149320183676549865442619068767503039795693902421343747525920284449370703219824095085287439294127815958647543036695336546465043812295538569601870814630360006810223193535677588422170662717787522895393749739449846068819589926057904266324281818832976825708783089016435405464175367797521401491698161349930449104204274172990731837969851312455958606399199659668996108005049400729639709895951757463495011315239540543638424771576730579689978093511231012700060683156013470561688420818621059065843854685352265309940809550686451819643104550056985286403697227264496407220910728050656517590053633194257188261901685209110944462304938727622601300966509801815021611618931499175544866484510193964089242453518586296685358807237025208629039637513544240841676796106254077453543971872022038982925881504881746263214401932459126384677645387821490032187360528840161581467693409724342496695967974551295215247541300383824175967755422515486890349846758461066315941988121179713345250927530701408561426350301527147370879790229663568300178799028808419389392249188448911767008038038758887801697701113453349115348021065850875700255173632568820097595527487122535718255169787531509556908689854648379484303518706149231357340296313652791276152623061043140923956535229749326101802357414494002010757529248895892932458035188934833623226621107047222795178964311353322215133111281302699657056542366660712427360675833767835191012510994437030462907634661496449559967303212585228400681288632060138439153523932091157906047341393629732349275918089423365652609394831336481029064358631183082596587859784715023449078747678799566742485205104010399975710394022063069173474202089699175600528889873675939662936740172098219541833712823393286247731719643862566531455126992223677667770819864349679984152604519464045901639578960492791392910434902756838172684047052298140890671314915262504417545271011235786801298936828493391396383366078142291794554344916809706649131884537812025796215523212883988829483096025415451583015564562313284503174185769799799107895565679960825291655375861223383807006921957963941983742611767676910050735750147104127391778359634794411592416074096491892386416231443150984337999995741238608455687906501796604659040119009310649145976455087441691709361597805467174658993017041375390468254441984930697739630336143300403226370441388424564853196000910240359148604341956718891985856156554657750890144317771286164568621900128459460742160742957104583140046201246390110210193236887462318746390639051846090824746612222586831716989063606402540489350875060019353832358477797777718415669271122400445516770541931073038836943879788904624217590046666091040163622700645067167256329813561916957758561333390398277599652250990403870932789862215954943799706306480709649417708005812270559330916211844004635893785632435864191061540068204787901621404457877173981029526071730009912179711375424333488226661867180593453500359794062610169455894879852873823946192592738300586578623690127192963826592639378195968777634491927813839152734685103171283501167754128969634017633688033476132425006547944835516002423125664608010786702586037609939080045175626009065555413098404273574300500668774331352820617072990338937053222546700420588964046523936142830791854041696667832407095595877094232009415610955534334434913854388408610824862428985961974125657170424006787671236859353722710915670406062194347260204099413954720131755244915834594427491919291350235583440418720697434588605383370185897657206225466863899147406171384409111405424448924181252805873784443759903370271443232078520464193147559475831429194169719062976979044988213080192587590485875701028049890092764667431817419312738798791908667056460174141045183654736392112018312726421352990750753167418604113908507917404417265800928896640035085618299372472136843413149569295704019813001606087541279574664190317973325939240210741676702423535174221182857151618329768142226073090296369487133088077855566632397283342252706565073072518903090395022975145545081413444428165414364410492175062270643628610175717112048366581497058246357800755045626453744628052593284156788579850690105804527975626285722083047835436681313303172332381352647075257795233015289166395286543189995731745780167826728146022264038189956693799484242109824897420088233111400134104409516093083130905465503159555154739774802214624067611052716137579986283543969665783552456700793604975187679585004347859444483487473455259996323925882010445287895767233391108520813799484234715318952612818751089051213546549692460665576734518571774051139809005074932280070940569206554428799289768091385328823923127426496379071979978524909030460958502032813011881918979875386127705098311267968672117810060942886033416074080204485324414144579454721054698929166499819415997508117083997585525312534793070723771948237383367606554185021133373575357116049840886306962649890151155629827792230433349844936783915198562685043252008447985546296912629978831302936306463370450331552637520404739224157072857779988029635328900698400767818969756354021766194294424753725649845722655067873590934057238979378191460803198271139248049794110049229814317594991993103280897957472533768146061745433132644892480370134626426692631734244357427051774756506755634133360059178313763737592038902042651716918654224484136094659863626775433322172909728067721218122945017766423271673310919275233772424505908085892756556434411548443888953213270285605406006435240340117743942638314926942036676773124923344604615279222871174737320682073795040775380702487513973697487220807941836272457926715860587568437382569660152884501593636057997648795546668979631727641445826714098393026058444373118321952735782429923805304609792532175952943764669671785995655479752601048111609001925598770316036928905354642196936179009854720785512572597532576878034184282394193011676471278020013244905417068719406087486425099249004124377799025672362387521344875468680180570026771659045717416750935853746632784661471702229127753816489358140375420413163179662046260168300583584027808425084706102856321467634921644155965653995124411152722520988557631807880862837444395373363866289139439904591869356297993169132074310849123878269670817379838027600732835237130570383538812019217807455705392131250482197669340639428023453350969805452191964164969664205192232229332522498099068094382986082393386867739544526736321944401598659040665286702065100494097867130245089605063631147497897543186327376379320227953001087717684402618218003859090607702934597864093296951123385326149456558596771175442461946208674178988143477802702378918386547507367250701231645954210423036825301549927292304970650068874455290889366465514819384805637455447031971718642272096587063004983436657183030945852528562989254613260790172374623360138208947640472176710210783635306328391852894263097083524184268806663972454351949874594952723688235110647593837053136149452332629900606135442020790080078443591851423810954062463592880074917472326014282915066473564694914907531304041194874612758425172542299337656191322834413615968845123050979229080934778061000120243079336754606956718867847589029167162815104791098481996879505375747610343839289298183475591353372834288849228539396595016459422968490216357698460365666770688497906149378958662389785139503019552520711594791624303805713391044123512797717425894997181320899397240945763050438176542023774937292923666640858263563047018894284713662179628077947581410647203968690057335883783238393851564367692910953212630953023723418877637759513255857198868415635114346544492134618362582001773911196356597362091748028951071191193121616150493566140019891540677191474060450200848900785210448984071558724913181424123745314739095859285491926195512752815404555548948605304395183055163865296351143585542678957884332247030322398462969403700363866705975518962282166849472155167994010237260527619206175045604966371707626384595300533444387899443285436630146414207515026765299871484148385924204684351505285892648354129599964190638362225500616202985179080799955171614289274332216280696351216290296505034545598002429203806611312249987574877781454333495781365580083004587905455655237596430899472829415658468980629431127259755469302188791273103530021686422763366103189051108633596398607097473741955293417850780136533786877679115147383325251300237191023587588679803938552970499832183038998533373533151034580443402573042275868260972398342231501764080332731762263196756598977297183942297165227761967340857344413747591477931793339892435994058139603228134659247855875655057515942861161317673955283481508085185207154795143926672875105744138676971890208777611959245935929086383969620057686509962930381814549128073418097204032036336676649944391993626414522714507350370590760938575244000094748229713623772159263083602213915885590946140740697630129708656969066762442186183635520472790353317530936077977879847080239021859587448789607452374905628374741893102680628048174338130019822127770609218470081525232714598672343785431049783904364930586076453575602598382816254098496399831811297188143863954265440828008619305729179956888798818257244092308607770862635131360946309767740997028472766829666854290845405202291900303432247189820499382480607516387279456689408497366651622813369488285833953135050217053611181750210101696093737288217468389261806871887211712203206733649831281254572692763105648258790106857520808063392875136481758375810969559699338484199106269224113656117112954796777812386239349341400854705378458378285151232798730884093735721100458603654544945301868107329376110867978282803436613333978053861486359437163500877119311955984802182899267779769409139308492689239716108751625981364642795191163033917961291900176095322165573491103747120945790041860289922155117591568303624947160865051863227974295613651983035189714287602237507160599904685227028482420257009629938279147818015406641691792596965023061674967724784194741420092429772971388832511665522273033896444730527049024147727564715409237680664165282261122166055190351049532169538299957017411465102998489825164390569909394598682049855258312876445683898434210936589431051140755583849278936997409501389198821247991620988839243558736555452375362389064107266313657338688715014376676574392829832073461314039495261709530844896580056558463095232963187124518366166304277498527362023490678591557693622053472426111253263891430252893766737392628606460991664258399987464743414163952677732246933313408989228213523671609562825134923485926804073551815360719656739502706913535763434376744311724908455377670326669884144911480888480132493025843817701187856663572935398781140646588369417283873657084337575104479912359736597243445574271838473362051640986039310219592121122572034365100139638906494529671420560890861769828831638828382522970765818961189545729825810733945401727749783454068776411077800440742929663980795802668931294689089150061861841892185304164332216949278213392118277190216752020805967262749463002805388777945962185683074384298925646302408906336676064738970496873626773471431934643782695278376028614658389278933623236160368696588859944071709014385765008562370357074728812300427764747470377946320005543727473658472402618390250818502039941310950397081248122107761283245956399564073037842282949417904179913536533706092953580412844901956771743632655873343028440148149907546510328181387821090721433983745415095721808723321639314118488540488247613315649935403031131319714388566683380217666836082950323604059513677592715516567968029585973380361344069307813757301161300265797024265591786343194362646623018687258796305755636607828996953634981452238866007301477187919864160661439080577725519244870708291097673554991120061231753618478131765439557295038545292365366941334856217878926154740456150452308853118438978335074806994480208158304780292913950274218678869198017655546818144544307419110229272193186444074979031725993977136218099711176146890001377240700923484996330832030429732196758278940008466523507115511183481032014483529474488518863241330396067639585766239272743538647655332592611391601058972069491216041943843627692250204083601834811827158553439255537458236282552372625331435969964636667825593382100917598744440271852251290642515745359479613052718959948884782435317225627541310959985044277475352638887118926497707170550220105682325307115438956475830312255116287639688351432627286298152407558879959620980439465968893295190449010574191419981498587900005334896120691631117546825348582900768395376626414520527393607865138057224150689718558277653895215135856589764073014881111337386924588890982276022973395124413507510038725894820664785445392905511604925465568301792236352637755462684090494780037268471610264950882620693574846316439689789627008337630374301756194573890788481042430928552363102983551745174544660652976708199474320599516529159600871565211546129673541395732775167844348486459833913758485625055460175079220988358771933860139489675148337638021390341529042836264537637458087828153790470854457596761421037723612329619640229202289514696881144705828930980357001504103694841705472869227519704469469729203495196976621766414362032109874971729908144000371573928189152840831974229437336774778258709218717225298406930555693522583678625387769903710832987797950516916962995760702662487725611153210245228717970309373800563354059293108901874004957513305645755468645881925344372271704841107604583450525724291768442356100139456682456604288000474072926191657544095336500054458333133334866581972749276001242323822517184689306940857232461554239281388742202766169379793566344104503711559823675771431249127962314115016452888044094239005173464563780362939532778780163604410427591864202516771182359108124947844895488072585512574549607995691801297131720540384249096087363621351310975286209862242624187424357837677291264179188013767520032056332618924101861651303481024400685680860611048112942740900937527485785858684092297315779366886086199644290736157490533034510746792139213935734146937826784053313199235443303460719515520570066100116930106114645564891680500914500556137849404543693134859106184193301895454863852198600808200402863322268577928659474990069360751057802347420150353177373008364949891672893509093542120975207472725043666188006133495909306114071104645992447597175424019965407306540841697352392504156355003902644002922751551910862941367236000269412071278113087636531615224433516226691901231017136295013316980770097670312259233409954235276489844208910924390275648161700407217392725660242958371557106716854141871300357131023054472593770645420643730283814784191021868821846656713832612826378069753098860829066330396698468396246747688511450649131518615524629479248111598731109079771152980588092092858162277065275677719539311203573194334593434733729518994157214722761903678004308795904799926642428196201630098883714884504398012244624556026604086161331997232849787615931712681400404505618966869098470823941370855181326199637688970212415231378187331300156011219956570354141065353563845243965564267272174345053170897086203476547586741281464071979228057446954068492795994590458209018731765866162517873312969357262487630182748053065600294624181015143131869024087493841124215821508373074128337310032226683957690735069881768275484817730499539131031846532783838656267174760018062788758049254008878403927985646496451552789273450200154100313190509627108096288952376898287265139140819451167195916663181885337312798227947809638418633081232493436827327088471684840823065106804984019899661418486821929237124322629328442483023610179839100426990407744799190837610211112396067250719299793136517706731645047986232255197970299256653151015966045966901508870688829825272864059895142504765564643861397139093020257194585582527139271981132775888695544629206052026876752213679668274687758745287607786344913826995634800825441441318253472049480142126543298296784668605437790613389102060765389746783799090419822642829171356980043472466696993015751149537152043740319181079548689432406229094586232624522096675744952856601646578736884246540265604576973290012958378742017115100574265974925332868258662570245837811521822012775760787227875362544176785168184919799494976491000369349095508194502055638112249647967662496507858023271236894462286697963197153902499010991176720532965920102432741583664628510351940054145719071486388246944690382245688388500782441039250163597153748490569452456053125403791760331016534775001998649580583553661420716997411733105525404205521107731858104589461046273558070947146683528783522244243951951095964801933997282254412372911975335233397882005003209483077806628336460632466710018008706662889771576131803944530851778599796791617562364245799131874799529518736756020672433607862783164465504713334255774562203297058370652084614814618032795565723112891379150610787823672417063157427908602758268048328204825305959448653553053355736089436683787788779088357733165815665640463336311789655775538674513596547437928824432776177665299775378844321226267587896126638330684384900580057761373094604324573314159787616555372263016164233534510023746353682989424782425580648076643361805237741563140378933712699900811546084081424058692844640874238912457751936646699463735915844119317795008584806528052045138617897232991096461177097629716988054741486404035888392795004056809668826825267833258753583516005057945853148483777029676183263606491366056471185080491635911181680573568625676757483627962595423144408426869444178084654590010983008324701273276732518629652810119875667425123718547191741964461099638143692252764876865242964332848802671048804488801559106447698291833644325638379834789224992424734734749255855729315186110345341373356722746257827671875512852296157193501863251721759999422779441251276949166596411764533113076783943587557015112683397880778230893276729219673906565016790988495989997183620183772466979164681588840040150832641339017024402863907008831066490683497676288008809713157726433416470525153647177306613927224056325710013972998990955937477305596363485600615984961253518310745042828059910113561527646137187323074054864438709510376239129317441392679964474732361821363311858580406993658377760655841495332832660287785469689430022926853101934301987370587173582180980066938912507662570847465950628991846834694991196205056288100623524340050240751212565976218356834552257668404916525157075841461441328952097009306872902271637056385906105921696945735131229699292583567531883445210953757017356326181664424591830719173259280537351848183098722945626217254044418986403975038451360611100621071808868929053885565380321231977664500797880892291390719718321553376607146881588861466593708021811848640949124415780158696473723909595858031173549396393423239812188385832226906227304369154796477329036203102315846228211866082858960816909409000618964421346173446825214338630608641076491303096303860615612269477567270566164198322661282955940541852670099389441814526699815121965396719051384313536550321313806824245173488947592503124192484175255740381823511390261635537093686468847101525986682006296660433267158847028467252827367513636915893498572151495769695739379312933338786858701558643847212190881311947133708733823275000562399237447717210347921689995870015046980589562365188542682939856667127230583317473946798938791798447572639669972565150933504944962393298941183809511522027385936199162089315593735213193801270298481882968245692466401589102452240833407352947237676601871908356625734394683547048362244546199371292199455216077052265379834751066676946325551156649491168070523052817308690882682380129412541814673058459343581273433407463471098101697337845113700036146661477797375667676221187825394236037065492372256647519270025082488886040622340981154511333422390177368411359915337237318467663405071568966819381035854807990739961345388882685756724350459189974006910447041116287865267920106161324719998448237152334997836375230143135132826955395290108649420581860439615905305825975400157347529974982723095387057721000539641886970487452897359156879270799441658104944268793902227820026173884246389592211392638749541141959433002708467142370681281377822984874389225801960673229557664622256072650083204373463689206974257310148877783281459700550621125297094395513482069706780920457890090055635993193030074671042570179184746799520164509853815101539696173545527780430626775794877109799136259366223493706483705981684191440900869283841758136960770262652637398421792751865585534001802494738842479507635936962516581598005490110797072695324488613743499388440836614685920902013874629297290938453956893091552470325456494848342558435392750026839808919512438571472788922881800472797910594164937166417567650944337465409728901440632813018914386339280633443494240026022881047169997255339395707641070678950590524163290221291761570720281337963064985988232242671029826426454822793271548045876499212413212681827672309034755957930311584824894830141731719343104663561998293422660845241977274300089475751906443642507040115738131779480959953392691557988400547828953652395636741657296488046346305736737117215809990209894453733255406649244555657047977207914581230450618880669347731611549213528598081110964035642010320650313878329814443085638720657938940705623279586874460852840698062839012831994040317536981729101193027421648744601861963215944684538075570987221296475842610580437101441448910748813376672138354541424787136666538718207128484761707002802307713986200152328528467498051716009417700848306078163074067412915857045857980914354160929061349459709688925710567910055675290074750437994633821119211999009122153965563172633298735935838666500189702103768105655391258112742565036589214291019193567740079666127138230714081882841864932545670050478902357998346296652053903452672297367971122296475763842795337070307941563289311746634899628691051860472272688877875879795365481133097185257748836254995078089623831168239465051168547086261364021782044527622621850946877145846667658899947937102845702785828864945578192102470884098054884049428920275863251351203276836916550933375756877423110361610668383215808025643334645427172202495621806059358605778368398254618223644983354199190818175492396216871052804951422463758912011361597998438034553898743686379416430030513037889583127924845498683990658600640789933528127851940984016719729727069932213390718420955178247520680268463616539771651234574340304432466147817711996108553728243091711263519501191538103322617009607819792294603552601878766923621248636248851290354428397379232513895550640142391307665467538114524402470683765280641424872089134513796385999449351608677107460143274772385102847494666363346194172301607736297628897725128300258084687726530151682029250873001346219923156538719904106055074193036339018444239787442338499826069676057020535368456464272727034894392366484590024597949473948604166711335717028120922680527815688335313264331759029946538574852184710972047718248056721561923131996627637828206706279778643822558087274035538875576372258299905067359154147149474372649839787057663311505334211612174534089654152155497746247888629118303526040368732822025070893530843523458081507195695889241260528757183964963055076628600911167261753007281738884588123735985372692992626426660021729769040932291664578008028615731050138340599605215180202337467493294109576913999967663852175374648850721464227683648609183197332363921592490390006967888121011297463583734052586878544570222146208736858727966414530176263354155887940590732122253946707378265467560810746496041804339579538721133064646799286122948571393385632976161785089115582766119790233799986635770474963796822399350957954508205505111893034779357024430352830442834702410590461224680811375399707428743435120724179827100082933191371419288771409898637054627113614217060316038877158734107562660346260346932057574636326530612059614741096786436632812848924621727699060440035648313727017184326110762869070629628767824833725218167849520870187388883526681880688561553821029179384688125975922387175756873776636521727918293598889124812904849996547644596555459515319230198673421439626905245337463449860371792720542796816889295558794575534131465881283310245574792805020086669571693957780153414390677074688444371997229473142096243098464505318539652190602671100605662171450565239616762915821410039307333892918625670333714472417092407944822081957934969811552492557325408808831648195199484925188597971817916507188649753536943195763660262426172292425480056059572174815355934092538283243334477794234508946594682954801561640088402355037323496549878662171076680106251027447234054777387228233706324422346571309983353563617904512966453592077279387939270095466014610509180273269755513571365490940517098691433383437353862239566253167050813221234673687814427618547883058500581078515556788076939732421220873066182620090830504150607987867207800863874831471046796221804394757556309908624424438280907075163603921360973967193494081982005189308463418418513775869421385970025192357210352359781475656283700649893580619427747837673671656860440124253539425460837473462224960829827247240218753734151044388427140893032903966317059852727435757224919804396406893690833070460690336340376113566927200801720601652587016620924656531832178359034831846684963362317735446303933793489237958382338014835246620707688841775646825727171361914835528944036115796246825347099957785414816484667357356113380319206582213549678296294583794899259090657150858589924036877724709560225206030410594547223573430761992020038703424402223490949671809511947981181231766216132812657418887926717804023857800559852923256156882467651635904834058800448384582302419984176242039750282144203323781364695612918160908807052269274478502357943715614285496103309997013947721460617450078824754170067917818813373073553878679601012421924341739873289763228098676229374534372899811725930082223246243759854001837266087383264712072554491306433644995100194782544525542561198544468963386192334108861190236636252006167177340726844487670870786339928851878574886890695595205756080655359723625548665768065997300269614499791386394913764334395117818656169724575011955527139876663310241993649615936734233367659351899510821050854558659024045243950149586570975168801772980081992225972528916152832643287133019120720262250559930210552005936427206720674365808195919838946862415075380275165662282604255844872369634231527370496473601247293747058235189463777287608586271395235999069223258703599107092753607717873127548150940351270138170794870400279463643368842771692401282640444753830021680605559739911153275674304250791689664936534610664903033926454798262450752752970355117029389549392605026116732805080636191135041503872255354805249503072592208321299167699393857896052191904022659329689320152805385584883267673657568583799428685543148848459878043199371078484089337419779080033863696659632700048007534107331302869582860135928766135088569413072689527062211944465709013500028507817008173296936069944780801165089977469838327533544622311789004142445612565923619067137782218830990126205038713863746110754713824333342606611191124996043119748730035578467538558093194053656414387240871593070280022336202403420926692484103654139246032528151391060258069008679246947846415137742530490811333748592565903252108437870583690180305933853297001096960008742504481418458925985696534556980827237127625540048379270764101702087000675852444325775264579036182680360526238789966875626868457587113494826170278726420774053277917839660593024680537612528783622421631814764204764333456586924291561946174147929303267274533198796275905105825564390641279605996051629410558357700353656324285671397243309359986178485440971818172554477791409320959184050164998438612807378871881675478875650566319631976730470586489462404594926976645328510919874433735121566448881451325097829979985682830183029271812658757997491525942142606638449347618236694361301000778347450454438394059463825316417469621679637540394915211600835534045873007034167447688538635372417591191912573029628757699866983060284505512542557781304919657353708109753889805144982819585172096328879249759668785855762687283638577142823352346656795892694854891954487424195222854027581013272572588484604654951851622252721485896972726328951526610074191959717832883659455976857057726284785595448837240757916288363148490647791455348726575585011194226486996243910900959484219505011828545702189874103457183898179048636464908296777315083677699733551507417008122025805388524519536398345318761778123182923384516149201894678720217480245281591901242255865169874725902155076249749122673765945633076166021194348403239799144070248817343433029272571092865738989424064956181090979765498511842477113390072880929901630186941142126117034372249667476682598881833777489153001358002314602426047205527579931989940964316114429852831611486989731748642308262649341631684527801622286945217652487890699556099151096015879416910388459563596685293612599124572928376935749499600063745405102933125235371942115650133154753736280907142815773185118592763310014484781157730515727741163632176299555971064374278716404082983071046305419155993714815391612554781126437438903974521207357576777750742115050829810085737523835183835753993320297598915782488050412070590464407322768848308743534512264547062694097544451369757257089150573023242573567272108516847067390111372101828058046032247916600738326914541593198292432543374648604963396534224817293832547511140375938437780558100267902359338479895865486078741941416884073043417349690424069174289582911338815739432277101561962477635519024021712746862782472197996762662900919176955643810538569264018591476166954319407769348965559060313034157909445519756029662487545487909111753269937093712638067225675146306074023344598314820578077855253816934364805356807945204538688872214580520228137165269820116250616572973797480750029723392190975012204947494170065939296729602873876719522255063086438503602286418437662400917471903283390839953674746861310109327545085370103248816456357548955860367991893611297876190835673731227482378182701853106426309613472487143605493189037702613329120207411857020396549233685908632729003478722237659894186318952339757526448262322846781474167839417587877928413411223019880554837191966208599311296978303388651675854462279134053844760839423555344903316330001247579965276168526319453293095962731314672619266181983219456648004891272404216573041363833042226648978515562645655321971144729732605821321486152801009727680151040298965202063860686004598161428523749991208520934729230797735030153390597764783428907474877815173481573626882872884730960864188664530329476007533093585380277049260073288432941195208648297113175937525344388958814255548385173295283601137791532901133575981174759080829559047506576584568604989519869930506625060170970783298760630468160095210972977875136018632054589557818005958757171911723235091578713751539912551505260695947605933157635090917977332083361368071945515640749533035718842256369317118343973251605736503774732145350056359563826247493638224705836847521426072791995525107455130424433833640549397003333713488002997859465754494276518303412111970210299873361991177647930047649326491521909917772362558052712725779928418622127220259472957836424156951838904261862931949850239808827901822770867087071935398018357638280472176270261490249184634025236129564512600179754496131220872848373883319385740201890828176785029850526215633527508339394101455547212563763685464079094647653816550805001796737374314099089474841691430065081182103990094191714290554428743486917780828412716328334933373876018980519238236373021976500702991998409539536408192939354484433786725257077729595961387100715792147218370758041500544134986004929074996989379034881020827925069300574236017467712639825044479879477551383688753888207757212063531958650030083910654471490754927971155721846090155394573325186389812858246877695980082741765554992556526378718474988706329149439080307417260367589680254871837399996196829326612241217067713397137880925201702623014717820800639162135982052973855055582095940333264708915619555223566380626412574791346382537492599128801431261443620117181006104722585841850028634156211568844185662028272766006553624341653186172705470460182952332953648960573330745306473007739458174055622180102965869545542962321362680851935845002587357305866651956174463718111344775636102931642292999771284847399247914997524697574616765240133398871189935029199507259403541776788784275863173386202123143312232454999521022646419170590206372156364870441042698336333313821695884831981209369368359190411493162347872763662759215456841070241740529792569429819149817406395271447869051184234337195592612319193757906211785809093205884794836305795612156010565182075216489529364750499783642596878804760925999701865361111313604844810434313726732714932517640677959128270418092840993021480957457866349377922712137553712549498364613219105479011950805481637782317553188054048344745682348295528213063830359546479755313386037131657640783340885935945737671967408625251809781817880369860116613883471299915377112383415452874048995646902826030068854276345189623573554618158222214071967866843102682655738115194937131618234925304365477918872773039577291667603598906829849792753264457930205625004198215817833679758324582016703344016375194361307936066877060596155074581873007405885541857077712937653954611123552017737452675365027712360102626371140850249375451997238811849720048529540760537575504863349851760393434036589529608607344805531229553356882145671180576047588419420583496338454216537702022628873203281426271924191134698071535062364060488010610176139643065506664667145977479275127501313346596764639606994405703118605608781228063289678165765372750629672835762639748283846472950189179856048249198500799160923239976671964767833012638465080880428311109850255466129686185565035001236106852974356644656198492092110126637583119546240112661948930083828438659999992833337948765982135588393330975965394351687477025420380520337338231789387828254304773685927377235747888656685873609256869105637744685113155947867365164849217860389204692057392137396597629342661799387598861055713847390158695380014400337739425963524869263689609087053952625109612729088737679822241074767848829902625921417206513544327199164599833303338205097023670379189129777113900021796464556817013808941825846295987689363592439379803701260437000195453753209475856566862618691377693236555385533736640181142604011712634532053725124468808392504553806425476628093450603910861511948831424647739359453611346263253979030531061551540475704318358069888911685088278357540626047008133489427756419881104615033910819669743603856073267087156087766588589106089607208747158269701690562668719926815848335174102410950604976133322103046832009316294819666417866410892596335403862924130152476404151953276182470723527897727695774543149145720405417995318578837498108505057157671110581585216705522011002403121471715798464585433248907341098761099295649676156544718806244284933719422274740449837985964755841334894107426083336152120775019298015129465672084211550763881645988966176464369760328924324510530298250512242680703731212808393512202255408415132029479998057513768649336556761678499471334926956257739078483718248283155679298197287786862903631056068580099072224021538766147136448019656148112453886271654233428875619797920485573019299975004175881862203550843526937422418347754235756053467255495615418988381785602926769085061313659528803917355560245687971772310603217457604975950232256294196379063093795581044909587621359167786582953930306576530923070439867570625760671427063852605547595952532130478006326107107680832162100145794640977692680069139071937272531922852627428957389504137685477459296033592272625266668352170703189496282724565284582414254606303728040777479798854129463539799924647469133552433723183045353848908080893152518135768485272858917328591746450365612006882947050320471690415376867800192930506366957785508855054236989012229808779126706105235629735806022201829431580735552190937586577473626473699288881279782933393499869773523241375993155463631192982070653727478607258997312069306272104015723943842608756039326387063929022190308589098777220198559385372688147932288292236982590464309339788165229985971114388791916811255637498313161109319061156325528926120586515985149397612705562408767671406059062759367897286320465589407531927159129511701844375575853523697820603460308111408561622204290428905287093487193875366819942119678716034475116563217044041605351341390173136689463887385553138636824336997598597061645706267041304591264372849891483568904556090934810115809231807301845998408799090461574931098614313315919784060635683188419505707596210326850840753951104607136774315063186556811750456842910985936094863468695936722775807730607288379881424681003426858744195332034222592225911315687185512988438399771818481775752765286872747867997560955981443326979802322469251748008480437354026738684446482509456837198696619833088985878352579323281004784980000165924072903146602815056472411034520315765276577171450510804603051297596390336904878227083901331040053851493735374972951613489722639790211988963444866201881902957692950434647230578452652005806799064539004955427487396033311151334342323939281539285755241892542753368993670767360327076953407153977831769329985800290247380912222702470030149732148309934933241880821118256958623294651857563689754163574689598660266517287106373178211544073283084095822937176862803685645159152570329027569036857129883127811874734596074173100978847315628386494861931043501661812266303769593726764588538380943049453023030268014210975502503890721484246009339875439915383842137754597246409868737926602794166204708663284387662736608782721500359892776517074454770653839619602834310285238409133872378563979536825788370583048947266348134821317190888339633672412315363972952037995614054202652355733182260536030151610767270161366775347202108995240601901907310716711572131531313991087346049948558879305557329074866756924991779147777627525721533153059191543757640208556243114944537254595680970256475764244423090474070144938720093148556612673864189942549493136310475961893303490949930728432409009866042964776416063621289476951726567416922104126791976202629175585305961605883598150943813988815546473953900221085978718592405964780276788923924280477323241680115088099429075130067286149727378504160015538097278691011653816376029956001998756771052874341796486349487590228434508102484523242850619456464928288338024674531436007665393932531690693471534111025909155950980999607771081924043400817401909049952241694593670841551263350446837423540829126465380354941695384687191594786448216907197188279045374175897865653963543641749642113833239127266085382956774626422043748613750869656038144115446781746318241578012548976258024056722181651902552564665510417840313993155273497012827464078379677343103957500116764350123239218721736939561572561209629465861258179225997122936015604832529324660590007467538289113588769660502304327546441577272041355353431069230209904095882802842492545660922550473678663353597767011475477937895122163950391748837006069208321431310565114032165914971605450331526087562443039751201627044475665497445082910844914275328651257884320143371916195074243458542671276811026007996977327310910874040713888398593020568547705681283700324106099488089120372337515691677129447677010573628517526922673867332490411057618836343343739931740573619353690777058069918700110387550682586512339634192984733096678757320329048370056903353621683728691586822484931645864130995561280761354315839479796503645798442252939980325213460972862269536267247076289971779632763346141120704154148305304401967545816235986063466572733057403342467568253998855700384203956509771995410026837628297511970715692877805882319026171014758008973737834649921004305707615859532250733610872957027150743122979203137211031512057869458182420174183205651511753381284579981732961300097228591130828209090533147601196781850383675303470470005787483609975909091296303441827655051198429426117421250174531088376152772103209162330883357102085772162595099252986436418206894396569085647751243182903018353395109114675137185342463058517707443432161316913045445620729557791498890485478502949425186992301564204823672996782085432770817139937297136472855162369102809439490498095711147987353263361086154490921362107195786271826589846454595870090692492488205234351128687386269125293356955656244015333447567162409478118265711559547566993684235624999792277233328567847862452694981303829576715883682539034846167149680141385991940555979179178582819757848123724780229627342713273807017121315934540225441686146416206418549556220175802717174193296040307242855759140374875241255836486847826530579021129301504600930097911328939110209284222126288743972398792999872217126802442695704364082691751239472885809766317352190347740207830108250082306867481659929162142043785596907008396343174915704007049111330970230468766158574831350801444759928520207278604062469098624581837105663182549206666339286894164223168139785374174558983550239814134762756866162211863675611345401850612301450506414647662002547937273701691150910570058805838552877515535683461355508881431374498563637773694334730779223692023281951260198833485319308413912969210345115664615581718451609186530489711953801102485257498931586472339992674537252191487877997888075626737506387237805646976435268613067747611615640308898107229900613620291385538646836842458354434207249065269431319263630645579191032817462246523050868114539223790346999357618192283841178311127342660931717160547230274858700010478660598353687620423490935631467935443700708676044416080934303889641691229384629350216611002107616405466145328261330250989929553919275962994627826326321165658743195517335942787247995482872278107931497771103534255438166350502182004755984571947076429678271587726848362361118065924451595282915230181808971672271763496522837506807313174144533509330105586215719733675910516720488567454157281632172593979270182677659278790726975958652444479862784876695394914610177605776036071107508660345575557129623454066377584487731406580502181444145701216138894429425430127261439960397515488096841753887787099771053156896057795536359670078069985650119553616995819109185333740366199906618677458653659378289515861921683583853720551718196699002906225244297196477607657921208349979814831084253380066460564654628441059597587010538378376695134144117115765801529197239328318237419072418270556211429248125950086219348254518565539701258406477745909416107789844866798787983603594306705082646985065096507142428798416650133033647595971329458356905875969705836598402375264559514284152743093476002848059737445115482304008577453819441423549187838092922978318441402238443611232216885056243354185884325115447206432849620845632811941082705883189354288454365054845356330088426685693563642890202766923084866336118299142987263879880682998086123949763295104635913382691252518794669450894153964933273454972994489836299473991754744164719717317798726839436024010521661014981526554162540385451779521584002495879879741049524800475355816454411607964967437476718422118358157376737048968165761864668447399574573863895284956651895744786659777819507522588829870247890096406531852047423769523893355012184785996600740896503838595147018040723457768783856075809561645339216884897542598305991753761013232063543253442404886000030908226190037306341848688614387637364941788740120482609505127598633905097702424725298017588263922938707936732522111670579264414090854374014853045902503716963747745860719140542569438156117014437888441888309159229271920358412987162286685053246038943565002307341670837518645953680252758240520923744676573351270601601170349080682223272341214084695966733251615657580665902431013032064115375116874077567874060359258788617197363493677111426543048470811333032318663398550949431439748048407876477678327705348801596714101698443566978084548780518231995756407397883177027113564392420445203330076097643679699900409585495562013135848058753749472569340330909172832394183692193249151868723547739392127561179466401851180013807501027772171306420425326555361143239078820350945377075084348892301020693648517284976129383325793163280402402366224770735848850558619602148189507568896146498647108584644537329496552333726418838326212711782724069322657157078641755728961453382916448918652049552729526330028104982310985733943081602256698171115056421803074943611078136138968220487736518566702091978710942722765034706338508550084211709404050825699245756282826278137513327080529455232216084540576543785400717990812768836695374975228640671461534564901126938742671140362151382047758754942856572278533665848729086917495101023758749766072301695185736509057949181869154204951481895063313672323360017919244397594016416771983594510693427217293483713315270825228587814764495406616826606632817385906468170848098019563095401910023030383772107483227813901168208258238927793613956120621621339157864079040962777743062394588711681359324124433710944830874229948965727049696689190976787295678568374918266228075947073087639094291791846467289893503816657160323834130048221490735573101147560439107642307049971417179272249889362511853771844565361124353668033415834710999978127504593107294920164004043873689108489000022065896894950988355454330344806346906836264269262252604805038222965665856445463817257872024223930603167450160539775516554246030743256914538414066770009334817262533785783695496880181971420758304790250454493294344080654706966709208196687180957451822379033311686660106588546461622251368075580728178399049938203254035222214791278735733792405058170479343611160465752035096499203009430633851515570103965436156004250209175408368025107569627240540070613073914839978215497526962006777174612537517747408077042146949807246566921031380365590139144631933785249560765128958847039568360052405603773226648488976759864722223687045726002513146533027894907366831754285279304364168449130901482297794441453977670005047645453944199744253400902206497079506577866762562579041678795171932282160484279042228145745555525850110505111853205128248170449340850065111058596796611348054315799010027116370414625588451469531501613765309863467935139830644217212539142104848401806995555589338646984470972207292044160017446457448578988521913325497133025482098021992094686705513088504112321598940306060776407088621530225283963061061498449297470451281206439250952683933163016535406892928056518715726578741194021747809172799541874118113737353482320492402854443728542414478667353172039728409992107533852137685218992027547637515508803238203451410449033687861055113974555644534413352805893314950724154536504253686358765114645577638528618422250037354433860841945720257808362467051613544121936052124926547855797901126581591993322554214733610252203564003582790857550730527883543159467417937426497407409479489447795731660962302173239728840260162155089907451024629671836859160378905981635743926672782950299181795702806863651012454451544131814296541845245197887305202002880204338955209521262425068207362516464829688831505095970100022643721353487858260253357898428499264259849382698655591574552277223044783670045129262032590728447007071826463942993971057965049240272151309090201632257892936466206907911418909170955485858170999693984582418886230434638646853709469201908664425001423704907060547944016363622448420494614145407334077205613675377994717434641869614416355642947159197095912457298893923381500104122943958528812429031638189391182936404756748013200548377764224130832273379016805513456118786526378739084602983248449677767652671446090984272409221944208729050777247422712849199862752884095453612244260812236730263624166646367695658234050934786501143545223017211043182967461181271247726747558418347391829646892424390835898304107786122216466741392745808441093446709140768890811548042699046447661790370691318643164487293481162475314270947951218371189543080160613686742330865206856839261480478445664749457483232983711278348494575681848235738129672986025094456310021387076804904301108841043560659563291355136365953790577450863465841837937855021385507306606203236189202653437965542409138866780517648660235568680102444381998217408186830806326579344501366069588311635276590196371091221683021799431781781159756256933481181759016370453954880025438691950293948429633387880232454026868311592077147266096408147297425641352377071326558656729260935213135632697386334513923237949127274160440716533283727666360699207828988515818900740681788356003383955024910544219136949438402592897576804164798738875441907101007388250260025052937157120598821799751905251548135128926507035031295388797395196807146312979739398855224067710747813296611251424440942546205865605638648411769737650932223200581373898885989302233630809521934265228150675306773116834992003074978449533317392356287724988901104982913538099432346738706479293918382984736509174159934422418013609070218537683948237197255148813881635282508237808756177303718593310237690155181489566802645106695566763562703316375504282184693552607931286771716300815229705250139944041110995237587821689870722832415540437859493648816597106019417011177530819779600610206107580954184382263771744158930893440245480776358985983864600448191306329182121252200728063408905627313615628251425972911690969621167408247163145189174736006959669914230808783383786865901598670223214286915701414248070458972191054200479042072618389456591675766243374816523343101319777787506264814478962379685449183339325445226328238983995521435086472399882461823467833341203496969634652310297098007031272981130029874875884515562844310131560990894615878405840038361454306275028384345168367939943115519406723368803326183813019065159316862019183963643881182869704116494587694221136576981495173186043944768192239400670145512792825405653032464235241908378911520916520753450114775133761761316030346350015830432411983034504597311154802352914726755652853961549825173221870281189147558219251097518814749962701832012386646655447096270322119673520668256883487375964507251207969145168739639987295089292861505745093918352489864171151563371077207043719429897852585410651220208721985115201196820066851549509077569921619316805761225508410799564473572362115138442605911878523611115766746246167605894908847321882511881891653729413018475636508362290409687727075906307595173734465381235816720569986154493374413551158082859997972507000542569584482904215703296329695418372061125327781850782435323918726737975390106042189821333568001491762927635897397491510336102944854875541265945883082627308729741581359987850589708156429324159565205722438860158420781047504262811290442552635054829661343198347557885193222267186930364566727102649599400511663086637317274044545694973748748521103317754936462538061133447431080683263084662203937077310524427999513745019352661423522551418680551040050214387677859299011085925186749913131450008725837116693698249769940841616062428406308332897997161870505765196240492431659995151896649754750390011473989031896878326455784745372518045223597268776687624285075381661679248800082340903203480714652289022230806149657427044772212502661923714235626092912260182505837318119710390751753385771378077621317724528794791583171484322731473506837177881579852023035280059999869776669370082267088042043304271761036044360211957405318323977508253762435335992587448066952313140950826729742008271959187161696015340654578147571012432947034049890117240314562707007085891355513065947483050109267533105047676685100687279532443236896493872434914018868580217669706551588502561741520703150927265145873588577166907411895667629416813405784240677338866529843358282099209279600025605373161195748651729717114043583683023331026924475563496301826785735111056397494733570817580632987076680342130966827261284795060436152654421703635540658329019547411263216179414368623878244681088510060879820657196947315316887276558292548410060026288708470726414636981454676023069064848000195089152920883475200294833011835707147486046003231803664663011378346148102080104082416246439862858027535254054148117877257844982440121535808832631115767938834439941674255267181270687048579050017001882766115402598966456382269528408612570000031201513414621462743588188113752159623550909618693482530381968085084967571308026522100175445215043882446963539135452229483822752193978161006308157139473475716433100288572011561747191922667719543692831282660439606992546372196029142537779739831674438120809721881883123622660338707532678942538559169182977283327312615508417484951235989157986019310463020408836581232828339328287752748597870536473295156141142985324610343025553130194964301167037928656376695698547963744374046951440475248627476738025589674084963027253885817383209577772704426596764502346241958872573593386155268081204775136402786059671489936812371201186212349054817129245481543023804103650148753567454311180060450042613078768221588514426730296208404822613694974262081760999935003344619768841879030415959515392641119654647748208496035361889457612204857186264614323274971918808584172165024925561228486704440794528091825391444698761813663319439606463782245081613817787292827839764859110463455622717222178176922974115386786214605724201588982175494554749486363176722743647089802154620073250130237057212162666252200530396135167883101300856801679877138600808744144960859610304104119748536983111367107082479747419717080824301691666177077131276333136381545315891337525416839840847864317750667503948846636777214679211218536122363167218880380661069859370237909631869224025911914634584614974171219255019925474796004846006334598186460801159374470373166319535189087920564810728118777240203974402460212973911013499269664898978223364655365129497329341543406894694337381826637786050347493433270290837561801105493469017933942873990566379697634781069552896198764618985072208634587475775355868446872335724917904765480775103923736396185466753334959708917470501031396943809023634045799030707248529632851430888786688074249816358563633931419476252306615252056589630703714209157446786673768335155822444226371755529054939532882366689615332633149358392812822458493254055594107195071379970356374234009731613098646213937953087094716536125650803315785044573000094141394600147452544140381692099336041159658380050630368254566308062825009488020034180021455841755463480187653567764411516477104384366900853706116905032530314683543713358180929240076805095818888803131922996604986651192355333442715995130769082085266296774031025947302259177682013259107773158578447731207588645093398775618726625393836235757625158805620309231213866578072162611618127003756053446226349498386252566652422923443651396972082378259957626108099849375422735675122410923244793072428280291762353753386370876387351815527482111244800245912464051115111499664462619843390057925463539496228889243623252186402524810490595955408365028689357489054200091253386743431340734226519599814488762644831855273277494122878561306225821878120011628573521338086043652520123507908301505963245468281892247598913287169435985142267573258150924982124899051846590727823763964923211904205643849172556431873441622962006044719016116127860806915970507233831799024001062116474775843902375746789131695701182264621770289457119136412685871868635824932717465627067280751367431597507565774758376406338044944820668352178332133327896776383657446746201728839572367211098154016213270068168740231366194833250104464856464603641253174133332379607567293733052122974579333525661685589200437596251342030638342943060971584740953801974115495300102821650559592594591948533482273271554448735213653447294239495596453047880531794558629341890107779349027602218084991851412571653165137450875031401466774251976476204616693113326045387896451657290843861519443114016151423070224716393990100437906864103416236790741850646376825660389550334773489673113343136294285431488760312473133541967098000845264274014209763136958762258591009311129973793600135533529207482985367204276126984764006676698661053455207287218738180679105816290748701076736965216687344878743827719973271864925542480668423833027410696091855007115354892417444079433704231825456068386702420523393305803173064778859332292996554662168705712818066315810759698803795419028671051589682183998617226456523727215921272699856166884308596839602871715385266941479317328935458449531502185930086689117971366494924105395301740136078588915471340850039768036453811115720861295639470964557427082387312687498873097059005337318346168969341709300000861680278005895674152284436630022965265070138562656843588862975858927122897312250450193975398801959929585946674448852792346410372473341353383902594807739551764067414764658014533037551258783915206002730545980582800834158675087820218298029124179773152353857706406771166845213368665010906443991846647291438415228435595778052417869221343902620970359030350252703283979867654871112971641506576891539350909404216300292126234234712852108395421664911751887684890160163507949908725145944284090769519699618037712827929233063139463215096579366488528671853658985428232404638733828178481530209203088315697267343925583364321632066089888458071136277639996649570648133324300804430706922817962968328613163949834158178871426219665499051404499949051322758329020397338902854257513664074283771983895137584603568593319676365422978795979675682839983101815254236665985727858888680648518945970716203467370351680456789741083210206877691531050566876687732933492002389350574436954451602342979457806030671893157679519089580811282704868678565179494942531798989854558463511016629241506701611762219757292557732222995795702695142731341258703602132593747642947677233855393949608034943296308145907993381594311461023743648260905274892609114997817599242523396972869525241668731500923820412128542613616353249136625137866287441728736927773266853389990509144288059316961768257728559277785548891224880886696290222200907105319867273320350125608327618654686069004612176551141034532831271204435229510016794790313350534253556783869192234312490521332794361256904680330454064259314334859893529878822549531857424881037641375414844998295227489027969508981498646907616443895752343566506497982594152503242632552944116596940559895866507612153399297486410528083098879197123728761697290730295301586338095431940182026691046931393035266362835832196293419502205582156281151008278370219142231861577528944307401251206982236257041351162127934474793737507085853449040251894677691474206491390247315240473922375703568331255397444736369775913101672485564252270498558713299184758438211851524915321086608709389477465558909768150090915524531843711016797043942272006065934727864923765594695847171642902578632718343604387060615267993199251780719606018199788961891441329681532735536565531782787898770454849256568315404843368663589348279115378499601462943301785359189222687135602115638066888736024524286151770771110671285143971739462566840777072585891951865720028302687827488064624862580451433334454133086163786823325729625795380067350910605339652325575968241504827951961974945905100821796236567014770564590274789801810063095188896213790376936533729872681282088478870106308255415850421334101495828542771806949463381388168245190344480504922435510003314142920894225768313480195104195395648342838316899469970689361239529933647736059673795630161780318422618261992081634867619660275866447118087603253007087453508535754908948331667080132534824971180676522815802360708233390414281170229413525360033063302611245516864922753389765333275088373087354659141118979834197708121109080471374423563241997436195814232767405600444674915694945578714935547922254176429822307573665159603939567872952083076212995729056463332797905608736019668380684152160053409822871768205430304948296407143779589677891785265134420901479656996958603321761028398322325242090918749756952825023624449423568735010347018741990530029380969860908761494567287112680687195992424006465327711570046123469550672596301566722909054455688966949036381979374684658665340679559719446297756316458243438624037934898047300575709839515821613921444041889422681665534895414328206155392681993338132341431398790872065564411761005197910307921159446412482298695403958669789629636022480766326311185609381709075532259658171492545809500486428193072375865331093474102684608835101765523297927925886429690577225713908291190907196417085384594544335991896296182581379576619525337770939593093755869597915058546959060081600343557079220572841848585599616477156190633768504329365545474742979308228403401042147794004948180654572922448342610480152048933259789368235759477584893907965398613200977738878389002306649650673186526505682839582196258033807020970898871414621585654426237525431393842532127573407453319116295517118791369927035391723508149986623779442841884334571492927103332266309932715918117779842737897501478943326849720515430723756063998772961668725323470990717464054024073987653076499928272555573339710224468522819744063567415442339895224040425483397695537147315990391151995816094959851210374536599442439645586621895120731402017735567818531957450015913861910640899786932831364839009613757106272347800522824211842642755283161285869760156604643183353361039723374601999153889315730285882691609204948845413009226258837771404879655160155435937451107898471808847009606077890762206936840737849633609634250958470825725633681267006429102982227999157619394123050106656193243852913122708830715674719682021862720194847446914775099587377486602963126211239362626843231533917193569137898919660667127709734322808251984750619540620344933307037842679837994177188238477857304923986255856611633528615279571343531452481039163835170550778772229762397920840708871158662399192331933649557410994937541006679688014265020731066633219037296882469804080705418631788519380478271412256541799994252084728832820347685848972552574718194114111004174156679999964197532840324093311906319210471346702337851518168229866134384617955922289227272479295126971190232496391380440439957405009271208186132542943749468080349527402878663862439341710885765745650985947669489218450064054656300785760186337903961142713096570463860917634603875681169616742477001757012096224159952976060385348857001481403137001128029694543163723511250880211913858542622105689948995183018091417190615926369347364953071541759066678807228201488291988205155707763583295672191122035770424951685061882953088988913377428009260557482311908831910313193929933455923134282290824495258005239231203546840959181180376700411041242952060041674976055582275384027855722899442909707922037347988086735001702235402887074872415687791506214652489173325524770184486333604237917427498553433628195137659386276403281742636248147200965705761727339321971370162499437607223256132787424937777858926933033596401621334413649840271139133842747075776954377860117566491086194270718291744124265444598136378594344020432286589754638643482729148367579090612462084323439039192344334349677277355611142132001439444322732038136908572979573632674477894386577489038591809925988629697792589137470528577954613032054330367752203355085505264185246835194929346835243286029416899457532838210307005971426445390140901802991823336647440778847072021623062385605597582213448377296299598832119434133694583446147835969370283268271410484814528829052616640328149408184024376827980831494520463340131479318752237377806414495657562106053033737363146674997142819907423970558598153503666209046505844835829037062788217951701095497639603291046554060692645863021268740270333376287090086360775717231275916195076539133776329195822156023957434293446887129808461218026897104243417090833099109858888883525408594227691776828812075617943969011907566345241700616320081014184753329081130030931097586770730363184254529334530976661529175236632365647421690422806169751560533305992507917682502236464599957033774761084147501885998830265520406832253239105872448941321492042015076366197289000406059272042496276071999299976515689850478820851909803573311574154465550052413149012439899507673779114797142127666155536570002998064352235855946334029151965574477372577452551736846772411482287637268001963584486242603798649865758213080512548677536718044961870015910447387934243041878546178704578543664944284385030411648192666718497525267073658399302540061886594630044259349864218873674667791401028992193519034198473257602258531948483933820611464807036489978670865314053173481514324651853400564085301928990763601600914076707687486498786614472416438426254922859816791081292052188229151944743470410361926198224968865018328788122865526149448724335598640670553488667642160769960153550823282418270715618196314343109296280405256938017210064387456093585636653375409615209936844109006423455594967899258652717374982980371763864415540833993324732813095490090911694426764709960605136670340174411830366225048991020282241044980053063939224651764328196320044478643107106451818292490155470746630136658502775050796766694470923111695074284579269198646547968976985744247120250261993627690491868938537969774824130205607630433892247367574753831471341754678297496244770665409381981829405339527866772898388482829911423927736324571601437337526304802632494216545565767197675193472054649944251600989150852653750800251075605432655377272342230719696794527224661597386602174168903912272254713382591553228452515226694697281730317552536710851911358876542544357904129824103543174423276434327137065420996321570636406096871384524624566335269130122078920780385412037602063411955394534694669493091620795819911659307574198269298778666503659082585310210717015018441367529138484739081922356470866562195031986519855569037476710947140876135315487181593027818838207813940008699996704517400589029294720495124668073909517224305516930104803827814754464193770269424932724336812520246015715348610440607590563320374178837147535214395727778827463861841608721343254982369004837382182638400925102155997628249241483239110024692789253625384807769987524168277515798144534559218091235201623092356187262035618063713743705012462568124886351162269475668968136190873913861168278104224664184881377491637758235307175109336365159207832028507487817732945679572288027029253303930356296096550908111234599045006409831462600113397660037298133881316144986246073840041038738952334677015604765647677437530913530360277306494854818181579855584587136278315376804648221524841805002436048592042481953288367840363878995631933216318317783975299193755242196596089650655373940446089822896508308860509089024965126472119109692294038660590913782666359794484078326763625443829738263161238512713588318951107258099419857239426389659059498278241780923504759958072822879833836706610020415953764569087593608209053046464560549835109037784779087651974600057493782685696226892365647368966400237614213914040885302285301422924022934239184746072891824401584031619657037005116503748328361213051792767920294958449610757873121931236279249070877470494027720766863951289959581037918255527573701990356398551282402947935134304701498533163414882724147087051137221073263781677079570424435254240265878491032309944218504765710476292622152637991177350294554041471979736189391641364679582508105253622100956730870705995351102328225540688081842424613290550341124636820625956442929175740192009705746751783787094973834620003515202350965822051323495188128809741701382800727749270607384295786765456512232806960187359279384225029823945265456615376890950037612041625651830107353700390702915020475371427789436880591732030271185778991766663425716426953716695933183141768646992039329287314780654549961055635858785803559889382532562784277975277486959058290178435317038641967791407650481298094383876881163359953474978349632584042566556488352302309715263896108526328413993551737005570157924331455713392635064912691032874574336801684708832101983180572589963564174994799914117646408783098587388760126224392915251351274316311424091659579854423119407426391419957370081936863243954288891892159073355711777251658869544944649051569573242236049429106113988187879781456923008256816350893376885360878491509761407672722017652632700630404298829853236041000240401829907150582095348667865854914752310391765304392444451966513425148588659357253061878933173290841634035522164741041543526137582181818791279065282108056644581700818846212095327641882361937393715845416545004613763475572691672524761025578021119822121916167692479946814851022110835468697760470650797023269791794466405825458784123513783915987868576580174717357584005545002169915662489343277570531623439857465121125566976159579416550043092783958064367856201761093695343227442032372778292126410727927331538805426571871952314614760851241207116214537070523460987352852535263985551737598862152283252706233171771057646834420711218489697162632921249061416662418876041786839653352081340399319997458485163686764908868591045268078730621605021495859193782271492653332286096853650503986140379957839323592680910778905485558610885924282242259277447736511781827001981388531607305680336579676271784577742916999791936962962907299726810304970969706175036178487280491571455323402489700865182505718413909708998144321086327430762953464830106029176031739831629885580769714433956772901529479249489257305310362880929885710977420343390389424177496084967853115875752446072106263522179995794483282496498179688087770356049069740609755815112095162050132770910780391346114751004969867719578046728236822175885085551218737882384355023971353564767531284887511145584394413075616690802194047054025092561638873057995935710070954215242402389738661449843026964361569759383503580008652520663448232509342891281594682468813110767064807271539213380854908893217446305978858112744253448813196217550745390469229226077868286365875156680944750478626722735707695371489726486013628080150844226326597221147118721715445818774261586970793886955923103553477448442710277279181265419391255476048443180934367966463340428283327337418506298654994600120905668609109495035208441838991634030696334351997137223404510183936562839490571574119917388142068644918856489681633355195066000928843332524806735584171337496171505509342637189402325303542599384394187718742088145543543561643034891031481520576588694447827064491099533521284325191049124690543217380510679418598805440128942512325899099623123240538773982101446405849655974158659523205814498852510376930654974893135060329360744818149989820111827492778152011324046430383400093022310805472595975512167467066592294443857107582935686515980117901994804535824717234503017639891490221449489021601986841517587379191682661098385738453765280418900933755032348767588757658350816808489804889946134638467583582758945004664802602247079596073112347087019012293963842199250887685371119985433129372429484757883611517408335843753310906659427013258032954398152692068105480421552102479651145454331971153057409954937838369320017065641023993968520341513173309251386082983961034483756434854709456374110604561666832802636976055941078600530148540321252825322327251732324935578822659395950837334009505984530084486154937608307729323697805390206948984365228679285807815810808580649532633173056468160917851471254000880722579371359859196020321176985166181382057266644879714560505647641742736841891450673424567564160482903098189791759567447997044184815439560470233784356812676177157987374873165244588210016410619287671529519773096125795040132799512512304460717376533044348897583775022006741467780169732280054567344994253724138458236775963995722855459307838519140395047441361758910074146226819297696949886128652985517880249933196635638248382941924743192355842676350731985803030153430748618243783252279335799383568537811327556538647300247674306723758445557066433223967058378975019401109845845303120397416081495286336512248395115142651395213619949280477614567228484431285659615449731382785953307673696014941586370703621756586701043035869611457917148344582054822959711665470211362772824935407946290706014037201690357789239932630327260725450600403646050283809296100760006762109358216154880968279818045908769907558279711149674858710365979817790055992046199210862188333938643676754535782363369890881619356421821095595110093983753747755465860778655943306224849127897875450813558000955361863224778945578216728582156558348574169205578223436150325355191306945196005289498694046865586452883932391961240439959477905755435190582258127024682573216026993531237621731625638973247571162859606999708293949598146454681242911928944932167578936358775236587083126261297689522140371213333713736365700974961114679547389402162548668414635249814865684371299325661036903209843245244363745789283274532540101378735460870857849153391330184879650215888109299037143501149621191972437270363318901179929310091989720660589194991838526986780058093923091737819542985085168466812992334259466707617776755886208012614126146408861560637038675646128881437886181688406921057373100714712755602825523846104942873199498380141927494375100694790609597627570407425605279204037351322564372053200969027126178788419582439234331652524668209425466272979348242095027327770295359815649824733818061639387154774919753504932179174320668434092062017580847783051887549612442395201189649070476601860635733321398793734673914908088123513455137740715586822235455884575446863433377540313871302626071462240117170602401065225491198646843096415721944924460282817325253667035372300424249866064805311275019543565232256873826351560617978177490363147504957320325827228208790158003703947220784711440853530216267405066505125616695005739908327325068995212697526160602725247283665244676995469356947594725756685581189425853777257680983976858806496441857538717290871623665842954600064572836053138758138636294410431346299537418277627185306159193426121771320103100211452565766902870974555331090738581112895514039271668752247998498749917850258926890214824595782590518644548253086709605415246391648674819969569196375971963039809610580335461327894359818435086974525920005485900303729616830719576226854353641731181745095799331647769077464027402590525538809186293686045867395211331046855474844038171072506636910145573147382825053570575661393917552606951868964925034468664749146526156085505037913942029819942221994735438231783223036847137330247485594298263804065129848919712773126979399424468368139797193089451531301022820717602411322963912280618157095376184520228786336178426103531073417592039782916543702395343092259108501080565591877252777554800270019294614144153767227568255332141737201407471347884434363167591614387225594330494977196123384222661604896439624205326779704143080241164011968089101092063429038027925515696795324416192834866410838286054415369964365931969137777870059360304820229130265145922961345580297182724384196876724370844926367550705633405026837199449354732652656320662743808369958263351676070823549529856158343311952439229700398791067526831494422487587059711975013571688080770880163857843277818151302778683116858919461143010895892183928971335941392888564885450916372593983597420767157074607149752460598639896695746231577768604879720148035767956484589821970288761612319470132095592421448835550576272323443484264260117532230618223035658508047011011899193252571720549962926641297735042850437026228972358528162675637896302038984743559480612173873906685354384530392931298819388330411834237783614780597575058406622541336293357809319478196639297423503908480593200697899176788339686913197482588647470862799713132561371727308165334061394625685505907275458645068646565277682555342972140883383727882010289029324031324210200261063566424436966120830417686932201048993451559732117466300908671200835572420529225106285030294066927058050440068181922735142563465843548110959320734012749694900025447207973603791646697031950338328483551676760583103654527085765549800282394782231371887039652164207841403863200501687559289244248916432107962003137110746260693591895581823998836591531097004235817429460073596124743290572109290976292410410656620923503792443139268903030622034078705847521368443498140066439968281777288328306808296747485107268422856395031192396793997022782808329040391879427012564031731986705480903817290109382677032761818733382332992873542517912146741696844438416099579217349254754115169550363292946067218798381779848868362782909979843021720417536252229967274325716308033262679427008834667993123722778928049072690634359386334482737349468718088069450888240689972616587134375187407124435358999357495057639105502602348848319301097762875184555561427972842848760393872130490902541848842697751401162693761395504585689904730039876222569569528522702700707002236312782756472091890723661453383150645086601571667250304425313457307614248252993473550820094811107402642703287961354558997238769243881097597044445727972255955821483185792211683819202237666014705355033299056638996113950200355900395314314853199973395611006459629555821496162158045516324961524984625491338666155661305747107306606494761259251347398672404294705271394587005711446177435924891999977985398589155458011757075458419857074644417157352870883181556649067116137205248421240675688333346326309394674405915392812434686527415076367108332946799307960121322623629719228890611294395686589067468858225888839891650188355330752331981579035535868551557820654682183321590742910347469567566339248541522364537150038862178902634313785302662274488179999873853323415250050507599445291601038492429647379231448519967640031204261931101839001074559769324574399651968221115701722500007801852007690927995274819572235224900924551021008329435060470903821762340123527848387377273143198123533121673507416247841954632534461520828912237804692290850938628075267737336489167527510886718690748573151179871911275897371721222006979026862701539770333762353916857302353277808051500852598175329555080787788667281565096669161583911272169869938875911268864848545345289838450017200753178809612734774403004524167503239303836706170710130550438058717306756683353374537830368559993775908695130621846552857923593391741917120541796998725613245326657739756970932170562193800461482857499893752316435134747073658820981060577886541651473248981787009463013850792559222607297152262038819437484391431059409599258433446565768173968932611045987010037275435251163774416122729999410186195660514215969412063551314485971954528608097486825487452445903626047313806483937973446818662497007215547106019350023864838934375622763501279258494173264366237202327855359419493045001115249370114763463415754264095574739430694456354236208121224117637357697086777635930193563836444028893630507833322803667474394324865707989508525087274183268352719951577926527198763749979076208438946347212620360783081738142804787855497828978622747244177003016325501339705372417682815323516176906921997025569996205464243726535775472510240312994355386459483147019494015602668494303183783693655466186656625470825860748948397282515589160385534950645138474422118827562986206331356921343505354175325462294273857018514221604797918123913581857023363813544535711277117194321660466143101547419821554929047562109018957208060623490880290406785456674637241772486811900742065578482219295010659668353520867908758553449009271325107353781311232860041052918835504828256821243931809785796664144164197438465035975431670418385214590779433577314964845742148608548867452913145745893151848342050585427211602752070105302881218204425718504079717735193826444151430340000389650835476069521126143515144940969915151783325851724798947405242061004598407363843511382982933537028551641532818468987804359217581976011103718826011571521219899280357546083887409473752204063912336289828066187319532355292040142200095154808807061007453865639725897080303279855124057096752994877525034838119148447639606902399800858875101161290060080769119438103026094948065984761969048059321785213998286590163613972947333424529757842997590232889212288761745364343158375314378495746088747373425879587582199019353898142294239179415156131539793025146413798608959887675413694323040487028555419780922958044698990192904558906846597838337994492512716049413377907064865785894967575994050617557632934756808289220291115491864882015921461776544992118272549886765689622517063614832195140603084486884294749081714122766989529766528467187010729193377929282443532431382852063570615807692592826032221194027687790429240836532323215102354075342321094760532101716780478896041685107197396939918618794634618967971354678672244029051644439647829326694635849186615040116550321379582388464035453370675001468245089396350840796338833931644002155762948765545149622984945735704556398458286539010312031199558632978985996427424165456402215526931176182193404052804977001395818569950450626908321844220985806560360396650520405092652944916311224741224398545523345939736021584889595645760356011239472260029091102323581832707760318192895789319120042282972271927680105785644667334020318606579759989767363004515534412122274649211784192104299302330475459340814869573388558531187892572435996247019581049408342713006597163643751657463710249870536291692900609979797982081471471311289950851849200398640461465302509949141434035836955688421615182000667253985853203567078753447410182134499703959178739753496211472367771510750644341932067097848101390611946814299656594694998030150150504394991658193643406175471200602325330510056856619953988521096991796810306515662761140012393944127405040656002217098547779644246858748631969461895510351333916411959039718938761054426423024644127859663201484795527322743409286346200984059824533857638615193364432098339181957496295052527170415941103294160552007079700445274265503291068016829182150548865729790830657332005667110403931664289460739742761327206991377358887764684076726016450379690906737624912318156946132584214651124301808862838501872732082930493205348834908022579996208931538204345874620625236296812240775571667614708332530743518028015646615241233577266654596895015351209640740987993352511242368393255508040779538906513598486931485726874899490140853001062540369844024339857382126776294549192772819270727100759505419454503790918051636158083628887001538672439450070274989843218556764740324714392366484341116062093101960182503178068353985725839133571334493036144917086659797233388145309217403181174775203258167433894582649675275252036112627367210976454313402380658720112513451461172380163835947268752281763835665589618861321672998939401494125103564658336368877609065883769674182919192031194564697809424983860904160330963764529279423419300230174005434322585462509474354551709683543697560356501992385147371849267059723327757979117381524743531633424117298458941291075045550428858777627373406633041603918082687417260659615989336077863307019922231846664888930452715240551174612022301603661921939366157937867369615816259730058212811282557646795949402814667457604557747067390220019769831825970029381954149275908113373323605885877787161006725835962326049600160589914889342204736161327100754523004843943109899916372218862326257224723071197918230494443514033574476639708361069860714457006927639663973492029218346297644381860189376688053451277703848156908540614032803615028038609490335348932303579251173935304158411332654712905673988844359308222830330322211659298541919655979718488542388715808914036930161717257001557061483690681274229550279346352264500686934307748207466636874761476200227501815517969782667374145950438705887238733896329121395730399466305434028913277468168754669502161412465503700912659179830290388734841761397234339455693566008380160943556137855374689207145442337764671963138464652631570101713235839748746654423630277928541904501566645788185997947897125148114050237769026172897930130806565716312121207914290705421508889837954536591643551233417459879480927694175114903117460552245578545813558670215309007703195565589959974680574161333836164169114009923341556438683622586644280794033626701052266693619246747237136409054289852051883510036926818799746564705254506826839362640699442231179129973336410667817359159716289832741772887230205260980424875777100698819624037291271628455835847840340492436487818337243203716187881493183663213242424242014718798660129082954490209873995954287213906677698275630891679421740168823587653975042030244898641889636909631627012055768196992915499277514254378812946766508325035126716846644844454724041012452806421783273222776043691610288078358871843710051808401795801410835281635163603805346307638919476150186986736706050147556545191255634854744061620273938350356278561529588946817016999401433231109528721244827047206054602585006670407579111413682790697868658711779204356114892996871988803259034954625868507864515607372171539953391070545742084470048998112828994216021222092624494727454056103582092642512678039819054526594437375194281321713703361259105755169899284729469534242980723256290258883626842678447029836313294966054416253861474882834798167322881097848769413234367188334829751327755520981118356612998485687021734497159455814205167601363168104474987091636494315666700163412473152631466469447022286028071181399281588875163721426683212141509231720573189111732882598052520156090041554777595240408913500940365197084870074967833274323358869463126879009850231317206614113210860760486195706356624523048720492970167945781458200903619280678213945893743377769312698768681171248164084910525388423933369089463540923580231081725576349979969436459754448948566477328044988676235789173021502698796454984277123360252396013678890263912763167334869009946588810286310223749553599501716187794059542720325680750991723040604059244759347558781923115070860386436400166976935884441077368702845770379409283494140282212958640752706393539930444723850843968852757779835520831758107094826865455149234677116451188567223807600629987818448782700527203129388479982097194320227571363520398880075609793549685072221738190964275756846644078438497623595416437898607166734860499536429215769092696151709528254210860266888128762132282887012394111213560849984856022616743503488305211519952221309472231188245473926080854412153442104345431104283533610723224461095047549030823849762337877239798576467071485072701155033507917688942855325655578568914111053937681230076417273323355555569581979516167876516112715880238173705812584337644549639320903363088842383134647413254157583408532870162147846752736603532981421989990010399651663985781627083589624813758112852050274683143462186542100287357984530641972173311190325200734619298128722951789824511177032832347598640395627061908545507358079165897100777640229035197705516514631569542884142437557975709689422328873125015446591323568223485632308818621486917525444204250311551711252093266720935244538532857593078572051963112677159656335359564606638121569917613427105035796893469256097759229113557550044954680939594198807691937528886502489711246859161951191180573662336507492183673283957490669396689948638812546588558883830330864279223545971614086391328016968670609674779349702513696709492118518268068371039329768182793490904880992685297949785573337154568122911908288999964961736727582967722542718264223286640013272432730924295092305662213469775602749713113774964021604518693358959943345170131474316716699253553526251918229606855110255210661769391305899304704401305553947858663168437691828647234353248593887797337000237434440522305783385042336974867005016002866371635480721425727423634716598259200059952735028634294139066792669723798730437353937957758746704387095073567124554496603097896118194554170245592193009640593805522942769217350988195033854243901962235565665095981189508495583475832679441371943347770644174306876072873238603190937646745291892183927340565244912505869565176115620698125003931538845818440649081930551382206808102393363085653595383285081518528602490738088819397197419266456341614484265115413169562835251959112442838262881010308475545489736902540358823648314244059506043336372172311369797376625377898329148146768547541189710236465877932945245536608462987170976671452153935936295650841686793887474517768464701970560120629111965939271694287820010473842269120842037473633883862747926634381707460086181651770124738002689102832486145467289464377033943420464842419670256187916489725183867462223041651600018564312996541175982085005633239524163204667553500133537296849174676463194134992237442472246330220218595474064637882118823459394089968995866776637011429528531270793556632378325619667821366570922060283102565391354011906621429239381641120806961721604380993879930032791351939616054590672596572424438866730988394948040500199586995408776106691389068427993564695024599087865610481526261948802916220377285440431076191523309676134565789866492760231034670807839099262754764500023111598815152501667563739574019057703412613420416359044808390765374858277752596662854316298833142074778261209504077604333883663580243089244840348835410287061473396328346465783579669745925874011346345762321608104239762225168959734768174285127377213488843126429868916706963162387342001469489852142302083551071071050255718846277856440376053415487371340570353047160477106775293200799083008579633505891364869774715093761225628448351427933875263674570722200256769127483422379436606131986267609440621051523719848597473792974061772433307773538025430221894395766769509566727981248500848626425884845796771935614664646260149649514634714900618867260130216748107466054111926689184063788353110563044170808357801999223295643474303295979135889437938009727044258215069279799888314467253297689672092433109678778704372547040496937826853533277996781762915186712775413657266836934910872925660656228159152633504466949756792294976458396040312478260968080763245729179631357063805530181795061558934619200552502042127689204726523519590844163705976227580527335399057273772924589843113466208946935684628077087959342361434261835739728412166526019543848177450244296873787044781845808456698591816757459363007125099299455902157979712679792868141836179452938114743834591130494949062545777573965744825041893661050156722391140633790442693276717835728234784024292290403767470039713468343855464064270710261175300913084761273575638893444957801436719780138982653424377606720487305659206933281697377077205067321400057367553449808955405386888786715911240760240287649361091464856324351392282896169205384742208960466080590382309965918933425890790062237040800669979202979819440927717350270127336846820867383102707947935530220822775215446092735620715171955387489668190846802860662680526626173073955928932432766560820558926492281145720789325877823680827930505003074177435351425876432091818543266940690676007919082134203963689530945256334022130730209864586297689655472486526242846110473665750904177173205232374140756584899323927086821679426432687569473519121747691111577540799971999266828885079390393406103104213296468250407706477052176909557243268596647176986382914115377976976000258192723944692010496600428508547001480918081081726650456796718668806462058478809300711671419078497133939149939952552454520949465078434971981036142877818403322057069463951547694697276774770642486460793923519565436635083070252079824653742742569969457756462611987386294345328054150827620990662277435844486270376709248843139673126563568059785342858198446090082502281505106367269141887603978831977318626572931421807329055093538562444488808705158512055619441373703285405475722146340713736932655210869322270942390754299408994425444590686757411432252426167234352191278258543884559516797829932832364273745745254454605293989680626351373358721485080882020551865995803408148832970125378123505679305081881856850573123325755554241960542735831944797643249922882266043555852334960668090550290521633778474635193474971302232949396551041598783974016751661859360517933895039246620524551126883731112078525724424579962329445016834171359514025209517926468115682982031361882739642662332167644152469548755816408435821258504424767069969380375857300390579011051541477955717916931272909599822136411598159520145861367892066666353218394457911294294937274642464823921547797561573367089576184057532209850474858357089176635272780949535427448252511373938291237833518414718278488180937762594672554334206902383755976584674449885729710015336570259383860983788837055966165661226188124546387807403643775582925934013645173858446245540764902961622022924479177890142432724924562461057283299442767967831448193467055175708350294256732633526490651414121023786109329671886310371717046176289311616725902906771223985883659641492455308120728570841006607616854351666353034138280113381967791228997412665524495134833893463618128225649905341150317914116709383076776877423256980342914079980291910761139653077618040762219445151940260406347035679935388327437858815201108040649088517527008205623802051286421842482300263243205599799834692623266564470195635730067953905724415039816423908213623513271771458619121032811235726993308766255344089415120517990273147386818262664447528040672746408572380155038941891259589373992650168775274376974153374817242203770712866449077116260315441711941410834860689952950744477220336274426681847119656361571377242461545607047965087831290013343491113629297558360906017594945379686150681790850760756621273810011791829307611862991163557450260202127565436095113856909481542447672260734006103733426127360804485531214757889023755905771131745500941185974865296270588563917389715951598898701417586964865418532486377943378050698934555388050523312494984188757304644473314445985055247398653997073462338193980085773043569547616982826589381003060241121866568598020725337165613533509921885956010788152195599298483073711416176483995033003789882479034541053250205495569358801615459891893688657212474896361367186281885464478617924358171011255185131787177450430735364502976150729230110833080255153495186929484971690099173039476973337895650229561487787804836658283482754023019230369038581978853430382855827300672156130424767965099736738986396308459533099446736600527895351007751062354051809506207295912147787926626338542879258977595863058064650448452623913353834262705043086700946703622040633976725299136518784230658396670226258056212221073354116185029363564161665577923776639586049469324455080590361798644275574129498302104696986164493137010370277508486015396166586451285354530481559829638298598154556259248659186328817630110149973720692015386987741862165578208788502897085678297019269582769523940825795893466666688391835881554906943683070353276320793494510936539945097204283673067035144196315528875321482218932596717370781271405133474738608096369456351201901843916055733840805166382914886247935137940371319796687585625948294207463241614819626828884980096887564131779026576910555080254322803125858998458287208325735889476313492606249627183220073181354243953643770564819295399570014455438391087844914419368047106516347403117037448245850518578818068662884417079356604269800316323634912030291975370099601066619389621731876226707182631485228441727943340681810310183841753499734969790135260460838986493841708529346927915834559424778741475818626067224662481177224985686229897440438439218402456036091912369895978248806446319555555930832816734602312040667007248774759980632684527320255701562168766284058326889493050519390050495049587015400348542776024624858846666734238597445456716114198430383570639742666670385556096452390357020107365232835276920677221366635857460807615994825758902615564428664967372569208046851174626702467876686032287965119785761644265002553662207997203999865614691551199659189260998756919572198275509506475978615626474235578645011389704199350997640667655712085029584211559149472907523553499274100851294919385596259403263820252498822492144447558827002900367951870523576276442355841833307120460124629939915484195813551255146770934471443309247637321501186127983818560255716314174426442103923184124861561304709814802473388125696051967726943832149010465240998150118339414506008422291319416099500996449619633076617168027996614596490848571740823780571312943966103687727269790434903189674932321665723319037215414610364718842463568019712570977124204559927718940163080755579153180388638522632934912286894458712440718739851310980729960000540296913908632667141792364975629719250212883990970848468043907176319829838625897603127381810275493426101282445835103972461726002712472644102839306036777543984038462374655711776604274794044711025322752607088191525962388103594491210025921567550999035984902873663946533362227856019878524480781200009226725563043118702187832547386880440918833104825515033950623703534591157569487158440812225354661461213368329141771387120791132563299696105863063881455038293070650764250040959783772009135428432873110669407041999325305683169533185440621809608346131977993381716591706548795521144399346369103913258534977738053801424940934503627616581368950030951261057084123445629601328070394871467589010166411517039393214698903026672660584673505964752748056178078679539355103268491298676656542631273298852919270082470877400221374311565869690760658990854779808775648655941308902704568977297419559655010922193569323849781622587517646552420925574092571769546886051901000316080128972898705286108542297390939681507750096597173714600861152209262260852708298836437362438779812774511708223680806107707741366334795574353354725066344097928989918408218150200626290058136781545284857759527335953597484087245005388274103999870195212623316986282803438849726914169586295036202722974886898490039741471616745751141334602734497423550587807218665525873506412530832457388035608515766265910084790720477045368897507199743566506306631675876113475164418905099495304411719985149916739766229426944516621408087749135536734530651829997758201465753081579408167503572563130826897527686949131751660314196274122716209578299745125950736894997647865130983044553916761879316366404096977873117158004122655528863709140625817884692390364398767943899441959633227733151062417111111758958204213822682471585586231593661531289432191654892821195976227665814359674319046931897070954625498480234955018692311293664029290996670086387840042890442086248366177906430206330593392032243436516079432570246586846689771534328077217098798011814855157928164449213543001525299613772360107729210859513145995246165942271641574763236570257188061170634876292627323600831252569965434321893745077967445291542789471272289470446481314744124221166590081005721723304438700873736053316468302928700555720019069943199870645446550624282172711712459206812429481055050404705924105288357400656484547245607487562476347259620195541630808699130865678696787553970081279117686691949683813515098808520958276792948785481815843390389576480289850925724608625300614888628650306571986579365615795598257299189432894771618962056935467280544185635018462634426748571556088844337677677518111958796316841853639123374976612377125870557536771425535452801023619128824660846856736084934133311957993354042333577358896378053183909344428049227035216223087149443606730042311797968286390517195157505209765590273099670998902005130022633264738184520239976911295246061557293366996541826787561464474369388729088789425992271475632620666673290809469862929534311107624328164327360863086413386486466836833403411741724336137908604788056800459754328933272140608034447503284344114611719096701762539842822668646838817061002536499007431738470008614817616431964214609199373818877654827069979398415393897490946103080608952105623723373395529906485456547771113235115058351872397486970763522933435497256100301121589126783284926464529265711611514653003449614413040707869371417923311666247696408763548739901747753710201821142814214482462132048901366552314424413404287752981183566734855659369179625585315367510798067145279663745899421031188154745480752465185317021824996705820092817034714330564906110302966007788621864395862030912621953745931915501116913315595473394117208613535884052045859273604632198270224071542061403310961486299075908103313306591475749539436538701843065303834279040143059829881096866287939606842134010586681368770086255041066965536224307609748692066674406842755594708259403759545439328126461519786010940922100394662393810002488578082153053964123626303568044502330247943343213441880843146928161839236820186918939839333078257939151876598861585265883031305482064741992386116621691904597565625333631844676895075299258677730897811322055452689323411963774158070429791729618493376516693756215146488138417266217153236227108027841813774596097865572452165349267876088009188070751445179559189320746484076199051735585848891330328063507879705231316767693157737318795949072123726379925971534942241650491860959163929805153754153056010835414124426635088411708895426440977027422823212873781858481377393550974933555114062446643689420453552379302295569902568889247247648285698792777177043958436924724006222094132555494329232680626510065606711248779978803998822145863452959171666248165322874115532752641124896656236536271790517082015310026735395882470223528163997240153464122032025797780827313551205019368428155208185549975149151101699141271160844540090762083005141646188255296346203608737167901905825189468389540468266297174866800839302951260776692992406943522577743863181275967950694370015606250562785591434151241339403032771295325310711861748025772234948929252198097430895212231461957666207592355635972669076798666123329105952796101834310690770203222871625208361195649481175299713274973059783552852128578547844286181685257107399791644850737946301947948601093793836405400303508924994891380108931322703064366040921361522517503364759125529933623450874620625221161521345334640590731527324079559395600327487909738694260663614314509347957936425282076057673668224556127797885798509050746557599952332576801978516473222357344466124947799906429335103202924170618147695710507728019172716654227202802454806556829265624445710748443438092473558324059572792813700931794958428020067816670302348301074054742192686054019788027670617733116985490100532526580700391933221832551762219500495602329543188072487098922493307375904553488785189577342825125096765197185679965291017199510174647814302781333571695642231934075713767834608696712243812173079896938312170420491124145158622120573819892602813253361650633270961268112735445764503438627183739199389437969585611671266838339375985582646154279781331791205782912378998922762772561595125842754000144632044579106546866732414053365861918428042262582168827371032153821229001605389555745804814970795142882874275665707581482605482420221061203768834107343704461695313565847315846499523328897408613892603743654557103135730978703051579767418648833308333468306177619964953332343405916867838864524704127553143957940278842161375968491828232860066928911605076118159809805722967611642356090547827553099902283601182556875723878812585829342112120643535136234233354548000376373539228441337466447546489972715324870623432473939494074367849041727254265742675895182796020334362260618434065482929109694732775810631500580250568949213398370571061955381036992510061604500623195895685277633841453387092156878758032127460311284924887146975923896612165410078451665187599926607299020458345627963420439715652445650039332697584161527418689052810339622772868014570270031896278770775137289513749285389160134511814790912124554283511450747662061450207874055271983106491319508431939379405139356086244871206328233097256310656806715935871203992140966633225119104450832165354362199377758584328122723097176497270028253352023603346945160822872847275228184687773750722988339131876836902638244934888564346061470214101593355370833759261193543814375325836805068692651602131963859004249450260777932898292974931025747485191547582123684275563739778101515027771884673967343974182564271586530092136733880079123112661604189172284689063826787172246977341470030337709486294246783622917217912573978588957230493800358591236399689631216138583104648370796376626799297615668211984659341559339167444688620035568965184061896502099578794947503421345106468294189135762409949557718833764748449361489033733873640844876651285799060056918035580217574328223720982964054139849176861425411357801923284322356622012533756997103821037145053611352158087544325887517731498123415979007748415485246874718698284371642775679661218822589836358646123372708731616395878299381552734158028806222896032274479197315134195894883841952929056752913582847028899729046824217811588125445002757734897566106936993830600284424883040855689756491161569382878286204590171592066183555970557350218309269119605068711363792198916388264700303239855998258529737206759685021223259479609213701331543690047347580052669731636628087675468684315441200544518109639633177996327073327007842426159432871983671001853052211000499358589809347272782613245222554744663365234690260799520188298486579293564334105861920635765802134949712381542333263308182496330203863618060743007893628480494572747655596897690479630772584358960972355626885277176950957548546741563189365444345268252226873316585833671741045351860168973900370511403872160749256572866941446343428193422010787994447931528908070441678372085914038078719202046871489540429657782742327726300675482683925720474289569191676005205232153821140887324067972558836997229770397817477865544513393695280467309791987546440540501535598421490176493970899336823681797861826371377477618992421396475468152180235657008465062462125800933823937589398535255324737030726876131869326125773333729027491969501508404817998772837366525506402719361477732598808908149463942273075462113797425254478573065620616232758456633687160410545655582196322844425800161309229256116952170585617429297116993729879855268657367981622307685949173321863761507735171533780533639947253173790467038575527223738278135885645323766083898120229497517958499014168966345218786083583841189313847283257686487347462195353899780087542415058674978015601593113654055207095080352550048121231237718152107298003231017591837862540565962539948544710762023852340834150142189018389630276690864606288997315830500060541661052112618332456308874942376132111738323599102671544333398090301076751921560686091509929757948984709134048477603725331648663327399774574170787058858498903647825050060756527667766673018142798346299786311547247190463813082702695027155243458377713288884011332285612327642475805491414533400430735136820016710304896740791322041732936558863808199024025042475897990619973944942406139385900204374508171261603627839124114726820908569052683742250689109919376772207776873712677015290712968226158437571496653462961540352898069849819902381588132490072828420316645458645186778718177177277928321252696832297664124549673971527879680434765895761265338524573915134381378450051873859153296341405368948443972255080119607926902811622936704343711583719538657786003419467130966534425355235613503926374333559024877800931675855665020261424517552023105180379792416018681653272134907447418792630463793570195725465687076964902562831139490830659813925877165753432905182988307442209315394562671891365093277852758561418869150584311281806211645338346145649986102799088783159992332083497034990096448289736199726084130305016138343757350335026967919910039457648503139889980405347620797995103556280094271198077141386253746894200671129290379402110509931288176786355712128822058452590232988278448897285576764337655132098372084536519727356629454075207868377482599376950854745853778544015186687032127032510837885755352532742246745616553017529469704928603493523766319377581531269112157125054564936628404613157549323436161143868941551917955211604032794138704059736596828772355549369536724926033527449892888220448868443652751589546895588589071831729289129234577442844192725052768475503870270632829799758538825993879067899636766347263679970911370005004519151507050208574470532031134283753039645068373494746515254316164069588396569604776248100769812576232402765632471455867811665356335738413320375632857711145794773611775891097844959748713454994540500897494312370266916002277962151601644314463215567465798696913430209173753793295373631029348259418485153134577006494373909764208589573177423145767288296790675029922315257328698330263412335263163490206490429708210063264881567676324254446870392133376789489600125136265235472565170222559556998628425108866896847107872600167332422156251242927213080559326221307214093686435499689878743035267688492212318344924190763747157474462521597457646635724275279522289150406427767865661151919331918178305671646530481381010666734245915686417445768839062419201865410225266970615389099907254998428548419566819245451974709306142275315129844530918275771513611816730358093214603225847235281182550470606215426224324551446896457269382316655525095989504109342537430859997971370042588583403044972671096299697632336077767437347987883567301028647138454592879163749014540664751939489935221236247436613174783048688463151603659224357676276234466653958979646879055292390270201075721891913821483162685249049584867543293124182641346627228209365327728397667557267289731938129341943057239620723292007186386746670306364601331111164254680251228943053311250985386012012360704496997852109585987532930327716226798230551076769268000220741884903016500503853447597101830167378268194361241656963925229474103574318517658365603412327643390095651186326079173389912627720721351617522225524182961243396282518232869686254441186238123306403453315560164069574723203836514566355749873441168599416165518249604259798392678161314831809025345071646664426702627611859764913247682952727805703223834351506367217706637637402490304659096285960271979725537800141820199810181398125950423486624834404392113648723666292020639396288453144837489010260840361484073120067415622915966963669408360326433414963712098545475250177366960197146178464515555994167263739708586495987795324215832821841093916405283567907068642107803466075719798914815540054200510730096279623472724997011221778165679844919433222633415033856753082446773410455032742856115745538742140007192843017744731423009836576075155127779628101472205306681742035059679410509804665631363778251724709140992555247103681267051382467521172005284942952197488628489852778783562106004878127114406349908816459244518980104429357083290472201607269660461984260772247831071714390934928973795075056471053802916187491886994635301357293501873206687311501731531091296794862549795815121682207571231891909138338353447102365979448080471233882744403505346799952913354609413927284465139119083607622657983981564246382915999044162845276818935327913567474032273515068909877547218155749984883466946222711943435139572756093318776721574285783033018304222517049632971612296836752748983294723150697497887414002192670067206567729213108493572940763592895618281290011097847243283038465197437585736859123098178360303140528230081302663133041399253399217941576479853470817863611377200140857083863943770352918349740374183511622370040173188269393263087505487566452909326566503024394453622727917080038157851325290236510568096258917942400163871496121216946992544239867472620600571311538783883388307801653788387752115931194493595694917939405788488606239594441849728928723084955792607211329771213723886969863602368291622254647108806210944791323990154066781602893469428215506272126054179829178173824891997338295301682667906177801353365047188633978427353358562327918535797792266270380244569682968625491187486853054978579659891848621862374855639353215630489928348655615415406495122104661037654818060250676549134033273862941691177626381383478511836410569996609492020448950262944616846685510606624208831453740126877947813985957776990398770739941703256531935561300052814359945606126160832235899032489565956752757698532457440356076128860796818576197717887655619852375274472235992720206023891671879081470886706830279398976837802333757968374847167920420561188461443508423836973785948258849782595214143167689849592131938941287506959614919327114703587453366081494375469714291952903101938943563718359374914830742304493402959628111665238995811060009386222162265525297661065074527135894973344740728167392634862226297134715553293624445799465082319790876907445852537034570900774408153416786387014809967412400383780852342739778817469108053533050911944331387304083804306750603068626953212452290166750385631858585931743776949415741081057274944438400139915229529240168066745842469660556910769759698731095078451825185768980009394286371219101669807885171057114466950703127370696200473003567536823520581524918682390839740880926485270458168006391534013493735254715092352704416192657211004234584808532239809308197012158641732913053258987171588551684206065034055699685937159156219395459555855700934771168117983599584279819556435636530938905094196464188924341766121771175457371442940272937717765918310744305815153159609482635063365572386141392081307541461074051274134813889068752089651754728644348902015018720183661384172807988272958201897748612633836037110941408680441463818997551441905115201402418762897868823386652887495647401107245990553799217515564781980918495587675277828080382262981804394156397956172569409092951857744788365159447872068267859636945476370623820669620239662066592108127818321912746808145303142177986735336848938082668189691299983519942232127263877159757642852132151588371714648542881242312246840283905615779681998978556251027107062837939943190735797975362287371994784521038316866852142082201926672315581011737244237560915148938634366652657942603716828928158069315905715237948025661912687088764750695085011137025788023338180190302100297597559268182163595350706418857190059497444679741742025213094724619195027721323724702570296163168146476218464364465179953587775904809172469556739679455373497103221936945596277893779193834069725378841550206295838748309619542046154699022268434746176771131973748660008793544360730243366328086536847335066870740890018470306769821475313373154286221515513181409541497972467067634369769645830928679521201994140665404326668344081968691862291765441036492080785729242338875506180983659122265379728841112013069101857603049832953269421418842594286621469527688063208257196486713422469852641941902223624118633913028417184472482275572337996970748200243758037179218073420208053693574061876566416960773912090981349470212072519721369964234420930547846506923744649042088873263022615635791960630923699160278236493000344974712377945595124085823970994657027536675981330477750505053663457471551655837277310078578178715303161327684892535760784621147886035180402976569605848671756763665930874801609992795078717891310420384947894328608479705150428332652457188642319839993285634226860788344374530927289314609254429906078711173676695984963306217751488489933778786785978526528057054866121737921355212470239532560819067885280383242296807554471743774895014302315014696122549489533836275694486930467419802292255506508742977275807609510687982710919383714229096826872859632194283672724247744390906003680485278454385481995582874334418909552309926592958848289777196750543920577166893855239773609258209069343057898674235729531205148509038465249314006899617373173581622229445541614935787147750627037619249803638440016091361171372955766180892638646794027936567038530577991298857394478375763909267944333650549677074228596380872187039958271475800044022240421400330359036096054800471884730467828680774098983222526245316803203408443510937431949938029908124179211089542392709654258219584858667992411578844781521955749832225833567422679896009803200935486510854946767671340531034349986434975800021528683583572136597820843573260466126057046440920052064374880868404199958540869747731601750539025306490362044945847644088204005386057152518221779351801941471166008653294828106002191594469278346037982926881867778488378271314816066812848087479043023420037713089646478178559946183751062068844135862845063034644191394289376235474277758676901467822890700609268325225032463995333756672899766025424659795196326090274261515748186527819297798368110133133965162579331841940702696498895138692396126127536959206022969008742083472084083318841582683801938335897322433513641224432117497940476682416780963520356641543325415096450197791054146094374981599044579283802888013356248181407261142327597289482414188702595745493425472274698997687716231609932288504202807083810081409188735263331835842074074844657339783842980534710600237421998721176268333490920907386533795907492808928303010720755047245085118333467630475982066178999800446274480337019655502132044139642367450695370878169737996937906163784820116979627072127035848047948858065830896323128867340296384824112876595218536241125696974919905747828032629986123172479305032363770584569878577453161038667067555844068240891051181842902580329851409615733153875631143854779215298366383821587135882408201277838409736232647584435263028166475607999322148392715632124999083709893094632955985992872843352125242743349437902382494944578516493612703264233909454480862002835352626175298183552529788046502813539911284716128115341446038970316546773952587653838444574611035156164180927334625414221790331071472031059929495389595843688577348949522598210383159642062327307148371669179896744454184189037251127283530059298273937473757109927765235637036064734872478483968420374230975899887438787654284159356597358834506093612992449258746769154280459813281582587299911030078063159248172205221320601077149233660100318271006672726648894955094233689793548105579642377154495413717740799517750146669546557410080155793417959830131871546171383822033328726313699780809375628169857535292539023656811435865539828428324170005164199005176438351200575693343042180293152368541142405986805738973771720903281648623839549805008436023535858255461885594244261292892143414789826709417676045222513492987299743533382062762240633100488377452738118872258181998221942829367666600004037991487001856867455441231957351871237930599514821595486770105404782025853908333564061826222520802864866680976315610713764189090236060395412455357038066753567652472668036751767384556469669359602263425800155572089623840364771321429669219347242079872962986167579674608295971274857067903467039157865858111273825743251903978299544576743057529928302863418624254502249624197916398273490435941139589840434895757833246482216524972533181193055585614050310507654858991552554265288628752889554577367874202977037846847563664249476708485430735413284036163491347107446832985898095111020124254488464307122717488658696436722375125740766380757796859385182321580379013885132456704225278538766101351956828652339460402003567338602520551347530790074689452614361638124660209433968818299857253465435528540463610413121499376921630261483151823469420962791154941719466072066552844004435657532664143893427722090557518423691208034737988670796922839869375088816146073838246420008153936740018862573073695349973083672528101494304364563497521354531951950035076482370361845384975636163397442943098863871989880818808674749583176022298467250195918371787001546471943774402458796441934330527377861745024524970714990700051872692928345871786309174843878550639754778139797614710297480525893069221666222523537344901135398626602814192647629370976801318720414066687625545954222924938494627117755017586202137887676002980515741123780955192781815908206636365403568683324455662009516046337522568825585458292001930638153387365651794574370258875626473210773227646623152269937958253816250741193599257543470320751896392792921623091299025904455121720931896617993469495415021868337701522075911300888689023857991528263986782465460887462785262268142473318858857241665126195900032922440472840896196026492377307279303286983507199509173362220690426621137935737878963398219271111792437518683817576213472922730484110905289312739756654644015991089205635953955062268490348177834016388807477585910604735866456072994009420006312043562308116498145514965551300585461173552405216715566604133347587598792044559217567756328376722769011541649211224642236039540336845501134265424744898954599679203644242966524827350687996495015740462148251111674016381288237054926766797280057463290619456179973094448723746706306283461937692637284371025062943023983874718041127794451518210864000155847579128464012873995097762977082622634588250520781834576050530815712768164616012674561513103910717697384557873224133003000553471951166901258113520801563037304690809309792735365856491357471135090441275907649029919388200826217393959286123336572970664641027058783855131893465796268593304795602601154503596771014005799333688900402207538482513993086371634336600792371240645761765003641061220543568868817740625305700602301898291109153407117751712442370364363715890220116231710263565013024399121540427012730391660434852892171767800544353796026814476987479405571599377835639966210066927419271468108962040736111634720258986246474408196120403368752089701088063354284436925218017425121196785699110583349449991683094494698470780636754666776782538372304052848929117305480298931061328228524301397442127840108229799225637499186161909539509229235240387265633496244744690348057513565946504625030962501118599636302403654187824457074024589488060507416839071505803242418375586267960448940311842071561842663899300596835196088099155005408191160942615617799649455573893623350956021693845302940741535422017008850593410802153774416896976552390007001131094692800034443560636076613103027287389274226652498990981590123765157043277319218502844881119332011035710571944438712183523225548677264408667340454413536740399010464179288114132773295705233233998780091602670028929046700345506321135518225964545636558027046215314706032147678038734544203988775731536419729437465867827633623111986467460831716249593805163179101602174316003637213513550655568116276716483228796239003714331634809586892438471169048307896510059110496501599283143831201893252516676895589731051802070915612821279478576823150309965487013780142034235086218894451130917415520121250377976572630511758844557918166124319147934998793718897466767778272433292270248264548028499985675549452694687032750378394003665144268568208130902094905789962210081407736696556627978958759938160373929408189832602311979060514597803844941218550734723444046413633317148297819766986696551400518184541976331055635044884971342236033913005897971734678237347232923051738850500463602568199806272825811245559158601501843909040986418097171007546188477393491127357112710753309507903619794617087334466480524178880606773110645588414287431205536864507541312378920501641824559852917028552982349175681519817495356504045373588004097369310021016197409940885723368139890685230580215225783079858444498849002672215492888861292502885281352717378031820762808665819870213391861211336024618736264912859838570424605478859944208240180919736271175154047465634118048628864398751105260186007632086640320800588098124668287276915828885145355599297214513431881771664556450266633627515714226121270282902358703146786242730233599895133833106908036791228975922320900535339836105280848797434705051051242979946969587732900812070797287965358392324265767339214438047036170652959567299323441686930920186625715820350459222746011334917847686783106363023672435537093256269498230726186313109105016432061267424608679167037793094066960713544777204124017138715254147871337456602291427453682810092920558890079508483723267871865955621283765493043122746445977381115639667409274991990309678315704437927396416667510978926409311746824187884653928794391428071913722819450621119960494201416756751415522656932859693990054101116477675292564944042879583571003684509070345801908749999309273423323790664741074628981171010402778833821450983160613718505842790389539496134598694553433217338838044229221868482471011714851583471060997578697619681601243733023068446927105578932616600129599349859749171845033446105624084001095249031129151310207353660669914250974416710891804427926385025576622062566434705688881209134312965478161984539675154821081024416062444931858735121428601085815587151941939765526106247809254081424759646627019194378550718698349687692657517135017640200359938353017830278176710220244928865565462010559567415771159047285830165422561420054826851371916276898252726600077033683592676892711746614588644325629544170512168608373571659761027823884860670144632963682136373033174648717632014278800674249348568445726886782552555092500615469758288549210812222476682290277511682236950254398732456186120999673805014575214534677010802591529816042122311632876026457848920881444254178235178772946368491686378710335598802935287975131660096503450213500878614816527569342549157582544785878977900421015928011354809715815493253864902115138985775663927058200478330810319358617209592850309837197795638466498733455490133656606295899331266703542551795858953425568522216705720637316682093224155465652870620820268533260086658005839660906950497030225453493694184347991814854031752161531889360169898297123827273296188151354041870492734852626566640813648637887168029974341992184045267003615580203875004096372188655376610564625258596762311209145558061492374462248655905259414678341230133648812086451317814505464179416456723857750904521770549975833236091618246866373119959742563739243193683606633468788836648939977087099239751769429327043157163405058351989947721259861246595675803136402007793328797865113011947679012284933455937274544677730699424562602023887549309022335739830396642856599234623943430754355766148585186128446617314397997597768447092979277382764709356279494509375749758094022971955437014385922121605808100423974385330454346711914387122662709140126153844627736610886518271556640204899738718538427974087178039858785748721689263629340793705516018371405087714962816078738336233555978837136080966631521893228751052274037101841254829712856895416419492794385063945483861715452863298700743447464614650341446025619364938925571934232096238572840936220720551764698253040064322875603806977314699966010186101840908347452808928098339129091492583036511730299676547392515184502772448449537680476388640190634872967747990212485612731663998442736186230885517318239967881715818320630969964851472957372369464794425482501448372786430354266996443153981527716867984468577777317672421499306359765181359539276806871032304580251915603646418455272288614825145974092997199452910599833472410418542027208513605430735748762273840792001676346615109061471910813300876924398905054283828587174596002008845764482519031375548086017940341094418988372652319407183137053799835234437595489813215342408428748244280989888047197105452923399847655171775144109635033144384157428360807901341301639615794455908736627890914427598452297630543934086667826431401637571705618813450653637288873684577300189754353864153639381737629018229633304944189194065973057538512133986275646249847032791841511149121135250104685119008961170790218889188062488253842283641190655874808838120731232314134423335314443360965627192108247640392720608888626285258851992830133305890576527282957142619497916499589436317732474958095984149163996087240559405897409518518453701084239110782354479538977220797522617599737993180176602584167834585215453135785842096991306995209918786098861244401060741198637447153099351033428616375680948503592757047442658967956619338287688474667387627035779875559654940146628998920998697164854072303398883936761101330378404511307837997043311605332621995442577030710396843975279691973081280251126223600777540005130859749830464540495130970480342613835409134454056413410146219371605655280444840088045303964949297382686502274528229948457746734337867550280099756051009152886664658790262577689571241879315839487297388771483538424812931191683160601354302997848368635277312029030297107783027747389581346519427561606674284360702040023876861045920776965676267878197065606120339730472296548137344619132198858923218674391232241525774192907822570914140181569572845738336229188507948683294933053359319357209167636459558136799238696355674929865113248271394607316285501241323117372648773982965149234267413224728863284602104136696664426772810414959430276723876342860664480790484267719159856451260861870402572744277451430790173615156177315157500598839964014188049730699755066910129240753037495815578462768311483735161008264210568687863568408589201192682524370390352517666900923840826467526170926026971040704714815310205739799768157918298128923530414649198759361563221245168274617227796815733025325573522302296833982779941603482649856938263973605905623213929485507427648532942671058969945892642144119600084535333114504068653731319571484348541504151723470687159665889346879477616050652520532551887794276200067792917428629514803639371556249214921928994506784097205434600195629847440967486246536371130208738141754833381661656151851119113468473236553824853198785818181450105386941315804289410531085026258281571231111455512388549044534798670025707762174138029189276234523893914028052930968645560208707475029630568566687239774998591135620834859426470223854033139665551229405206772298210771698874906831232186566788925348437392893982430392706310460167855928753060178702221330681129914256487266497168032854943908954011598214937701703276762092987636152947610229638640039099466517428605271606511721401325095927055929483973612998179810256713853317710667503313178278732512150132783774865020703313550622755813048108002946051717988641864693830142722291579435039799177801649052827713029562457091027849444590050250012647562325140161203982032550275269695196707423516842119109820901473455345247385160545020344886526119484579467391032494601754606594913347356487848126818801870735259183808390367907272198713651269112873795377159952741342667405298605826727776084199746970641965902995956295605560002217637882818096465842429443116043410154032416183711241183341336908604073818218678592966006015260979204302690514322256814365746965542007161049260710551621362987930055591213266525433447237515483179612564078677742430707008766220291814065502136019166384385999886123275152903529870349532107528969061140401659802188280376805348714902083087191780477531360858414106596751960432401798589153532443423362991003390367726189914046681027614857872154303275752435932050311716517034302427376082327100989621495063849691002902577416713658504489820755135344694419418519912145668150684357307587654127131665423566812227372223338758776739362287460341063681565186649322813423042420400173053913958045034059680448257513405554904641633578438160588686022799179151567769918483857458197898136201297053878672660688951885072200744261029707371283569426697793382087809127052674022819034488781068280495959107943088810046956183587209343232330440969761237719689629821199168787098339611345262017695940034586738339782341473219138249974991406589677344743402835803153747984899676192496998518224017681930521002245510857860384690568766364128908975155436650656165061922181855860639525635204347894591616798123236057496837482343890555964335042927547726071932198308253807155388521773092429941314419026355802110535798866536264151014646071198559829289549075514813694409360717649426291034038171821614396041769852817328208821036906125977046831405987658981426853170031066274257408280910233116815975958654856178161460643447651930287173430092180010058739548345440376276460138242763405329465580888477374668362561690834309727006997481782424574194262607770979891422900350084332119239773590955945746815664694781101010369635694686789030933757110276208660708782106555537792608816413375293915596153910623815381314813176627603231988804979216779611049102388322750639647100769652474414609822625944767297584481013880841014521593298873538518073069810094601261678689308602437849860720828026692445109815391695973601821328794407922306758412984849036563034369087014258314198991054139852269307546695019990277201199343809980965719482859198767241455917159595575000602439147346499990949622807320890185317741662157073338928388639164413759397417797996190645277409657976928253653487828864697225365575452522803168847103926942994401774415056541083924818538097224626551468903000207821275494505279154369817549666187513478319186574125583553974077373341601561144528150171617511799963994061191100863047047957134095315827911496975506142525966187901940474528757334388929908002976987789308698733990273247229361876519329728094639215880105812091733035606960882552321797005760004159044881793922984453580379746071294707608200651516833656451241281129400207911460827424310952033600285057851031781296901119673208609949003674260657883323675998903174678418827376211282261504373578261282392358326023506215025388120503808761075779234110200663883596461693181575042860662121240253081275797002578725384490578740240767751761182828022057007680331731437332224972089532223176991483092291852524674905187716587192833914512722243910768803814676477682560519916242899466641586857003358971005817274611700131317272015264539575067017238873314438527194969975372458504518511212453237600924304723995439893327632584741996602126125298056618497682305041205726830278895901298479037010123634777326720390810711639303289268969858980276042853098125791957324080531453599950680281647637678616204990872205057179263264470138021032744757850959815376927943735399559906920110868457276158737474149781321992210097946361683688376980068019326724635633139361980228446602908257497088761161261939179889891414720360559936908838930580535936933911450316665837679068253381015494633685052702160528658989694225709635345492408795324498345015230231036833493083408235168291518964166715750476290195346765505045433189157265705149877638414907912672838031790537940390655134324257931330413249480760881046973124954534545785626432924575397544363110660436528940344384293413102992185638619690395362293619010163993528535010572993277183944687864902771924119694776679674321691661740183719065604639000765211961148350720755592910178537877056954207460072534754632987591800830202715029774978915283989453325540719516665753230926495139421142554045115377864569662346800500105576656862225655975320006948536438622303798485693682238749031954900491665783397436698609183391998723719472588452887254012846450566305472362710992642785702458292237304220010398925143760741811976799800496115848890313657440481472776934979335196907912412868049505017744535830567404267328578975726402516811291440172893889390600786220339806661965078580853482490794371510593186923206404967386563531281304079107222213576654821878051985853001988320719460263512142799370069407085655958724681365543416712160070267748292362040145298505602122441854833782595541641910011069844160611193613415728438557376822437027368021054904985965165829729445551918241516040655118397072027202084640204393072986300139055434860805727208711812587793844984904370529210374970100166399815194947629499986428493736752536317521883313087108880797883924177046278893607737691470138020578895049478115887563990450268575505617416055899462503460092102109352130947675934350822422873652738883742321134710601092049395617317488537802273146628841603886788153423753915600377407866832869398483480806707192360015857192029231113417351022174559411995983544456137561917963110704018047448038094383975482674455197750593665932950078695139834792987338878101779456081754473813559180829981249823150037350662654337764521831661729592356655050362988711935601204167938372520077159314190351927245801694493938939688612900011911705588515157980783219758636439622341155912478451870829040220207055268885676776757208433019621579008529471279823397076704667834310190431379390956741849317948755991990551409619689392255733193871822401654043894242976165912825960645565767896269500675457661057497034947209854964172219226415181027989110590330653915466596702202149545429252256801199732233186299301288977260054888305180190736561784872448961557321648257454753816143467084018257113637533942016840051144296003030823242762724402493439561055939330737827909395440108058510853811441266551615428095286811705096078289107899719529989342167794620020169989849651440553369490931441566374789827892780741711709779831715225227691017629063753678298686927280589881500482306979073492161899553670790703347937543360494530720796487701633503866124771679889404617208901243370958171600709412249362154964957549239133890521379284813256006540708721929520411745114657836210811062428541807816619494184580109484822606357864009531803805531752590882467441944083716975126383772221899903516608185037840103696419148911071627920249788407850357701405616347874226400006355817468995774598161717654247358213363439055746336700418263131436114181603329667629676001679942055334036403518166605499089721637891019331493529788162093954196820658190642836426624132370590392568046454636658820270576326491829158713636046873638450544974888393625563446902584799733972437826866792004894254402223869489172004665582573288023324994353981089464662938621067826158527899573711364825491949666999004651483304786736213896107397991573499337265679173820506794890335785170348015684871190573315030732364815754371927707826788849883018486465398211832288477459906823397462156125853826623722831969860252043378627735575155507201016059787121746506973699977488505823686182397405962823899061718458168239669939404234038027152149341645806650609425516633060493107167197330836033118091222672826165364917781545471333613951369357897079038129100817208674970566963962750528372743979162876486455768107697904387778853689843730036014312948664926231077274903705956214258751429326687828478807876284781862459567816866258302682036445978850982950892525944172113535585941142399515351241488610058114813371447620574893722416922190639131378281162017878760864388860506587083240869863946519451168883795277463535977800599642251188127560160179159022475213976910679863209283384060086102184671398118661205103771796785864715889119197808206511049872092732936744466455522783331556127984651988348361976080158313179067455124100208677523822065546145593974897869216323215553119290602588527663367002810850040367760202462557785265266977034006959215776156476425963474335647160218551276752648922167599801547259118353017790110214847022673250795852527548423162615892967491280149800575414928943724074644381116109689127925533486650439477764701668970466249702173347336807947732108619344342264216085801303502463711108941668102650367375214032824342933691937372637891689833875137555791026545295231372878571956727250352327250114908852401112212315223953566814175636082796889420199323245274911500056806619067100730562113125640182950499334281783611200441387083045411777990828298523910316521755322173908386337724070260851601865097547228451197539120397627596019905383829494982268416069423707468528511859666876879722986460275718450299124692064899469489774830505013519745922277894280494588893626617557558501668491138034540655338404509254779564836853141322067280529532217757679973297500007720903025851044324639934067451094331243587323598628587936132286240082781507656081553948158074626359271910622864529121954899127388993476898406306935015305808395651394402432325066622429876592396826941031130834151196755536137839854221179219411449561916538849185979570764326736974593593810668775110459390561587596349661795677581631290731439520021171624160236387809632990133247037859386552914051894854020217477434941180746937803653261313994620894555749060397697094955008026496879083392220773063033152719944794899781981828956639787262359965053845084022616071288706919179553483412729155634507839290955496217637809414476039267620299120979785261012616158712707535586788607013322937414800980534901978765117235013926032028283193813753046174386185487073152287896043801626021519321727812501015366095539593948266297850096472147696304142092856083675536971457674465825137792689300349818767309536656154094018181213814515718934852114137632397475912493597045511811135126263852182268414222905761672336221741638596959428555841526603258173569687347871528253854686617083171567897986920796685793852038673279363131109701750909153639715774785466923898418800085984984931159137283608134143739359840877268138815763164529904003317006143551587132104849086040863099554582932498512694150896588966201964410303356985757879719137187474794198902398557644542753175912782182067919400959794488980216551994749107670219496596100713430683605884398062502933339291805043787495845783955975219184993991566568420764440157702637349736079804389437323371035779462949595697528642416907667162597431170280130433527213920989591016293150314406167603304487131088893032925209532460424387158071374113333496752189467842043520120051017155888101407279033709013906082962325736543490225158571597343839643254968282425392777124223574763651474626863042160036737390572809741518026332536477880629778365031696247887663049465890413981453683496483767637972403013154653988084173969361425867179381914048143126221184901047710700206513634019865582459549151893608860207754337442587939235037833850250116772705272060991938026117950159381871004394547864261178425146172560272380476328699796611311614717459878855420378960304851193694719210877495085538628995850377779904479879768191744941429000980359750244314457216387987325933347484330457394081255124793772083829886046552487144520681203144328720218249171333241238941303220359557278051440495605813651409861600790510074644557432653939453916473024455409044935918995009300701806172333716798202231732619548655260653765962406939391279640892608416114880330646499405407464597314824039656863432159312994393707782160027095587125926393806265309063722715903021445408278903536701670981523898327042384001634810127498699659383318771950793697308356943672885650611025094535204704190595424682019898279610699732262136628167363122989056247377762923755761011654006559385237273915066906457679463920589716522864977434502284140350888083093446181683666737157251416382605626840092010884137838892076012300086402723310587403779236807772363376099963345491422951402634074069500035719201635541039052403529072732698238914645854980607121971683395177468457273270578300165043438522673289066041888411382508341361379961981016970527367724719795932611776223445398195320472440733945521293754849964621282877989475926355647112480984478863548576844040079645408653431178446986669963155071535534675331827894217490529540847002365155937191300707653206101646242846057544591362740802494426430247420387231136814035011649167388033979628128823708626314777371095092521166966772840005669652355331235727344712250584933421000654380467153351524918231784616510258088180164460499940588489085235408615183894043607193406712923672606944806459997807772492209029038624407445869701420590221988806846096515170948230600096465701436440766806637279687569407135156782799064907906327720904452450324857579280708225203262396833548515860693145978385283616945633618631495689575125205427583408433765438773575581133233224458741691304462333288530403416818532765079629533256719680304662622269392924233817614740621769438130181644683625060288786882638848622844076864987050543822925806584870404035562573256749520111431937547754077091962079537181488250616630692548318888716236852515548481080757453534756650691089989025790067471165361044635484862584532960111660552481236658133484434023033838766947308531146822952900928520339707297247845950326397304709692877275566741078792127067696914719162964677848426437554185756985108165871827151474955036156500371320738054521273860737134932832995067948381046672169613166745564983864106655385195711477979897804053131531304695355956012501223073013512282359030897413153187246065767650692731207540535622805396956670940455433100169920093401603015109670070870330896286586954811171164472224295645926247022843837363168276182638145452738190115715089522016695558952554622067920742767776923081152264751106824433913416500252404069330258598945633927036419440753978120082182135850455473521574804387050965377446147811346871656555888351972792131850455068355394307605036900936296238783640866701294439893854444187850881588375087629000114446901288812955855677523752165986849343242206433312659157488729539953386225175380682153450511244744094691104511632399585150575512312582940123674771515790267854663437832997684375181671324663954643020788768384514133131120043836272094728966779743948889034039333934771491655609878440626123581223512954925625958583191636244844911239536576587105078807396708810976691210513367202108849092498348141080851471979311983256014913407118169265377176694886325677385081130992939242797311269677458349060895901467971121975453286879491003849694060700564567237710534918906445065280295574475701857859353330253437314144205303581894725025659741992239008550333847929662370767233463629037599500875430750257963974150203988495903758576829100173441003016390174848563306422011752017788579842745795912502607278147035731188031082540722337056184039814643086670132641399107350024418877255635131802012518580814897540973697308148730540887173734744284091929164342440210244964263928735739824038105842003734586953107032797985022930946626806901792724178709806252382975492674271740109313390844006031771503988397175651715664250661408635197545734597473285460352577081637908053873158069228053306986610717617047231894172238541326756768641085069361977285088089991205932294787017236599579112547404902304217356116439548935384403866196678322738363099111005285837078249625061455188256938516357639930307559070740917791768960090942166268639945930987166518752762806121677655991791029060977988760291131293858955350180182828228425127176741423279437724908344684215709467901049134293973815659351333607061912518396634898789049470872644134458081024139652538971443908917775225241178022016887498243016237329016542389588802987575006283104455394872770124930831524949797471267648110417923690325649790862147591407233856998568489932072281268315037098991931307602227680917759601941966313606533754265145417078972656421694991277672019356518712974238974200774227060081833146868926602940980858395534529813264337429483971371578266348938881758528599643215246849202217050423643862971531703786120257828547239685501094726486865273393613270531709184960842867973063004361654213462676610101700359875797906998622320548802641853248629251096168796598076953897654536145457445540016522391424814892972938142790625588597012238728348902405738552464234439119934502720657717152104991279089921169924264097040941620723180394969416889854265615303280722468255424581111427009573232719015598853789575571161924596312339001389238727215278612420381681489646782141666758766918285458524439413730677146403734330940413644769293578325756754722460492377254530663122614055017563811599943197027883656146997453561866251992177475878966802204666776259774383389956603904036282986148270213861905360663668457915145149129662414918969008081539878655838537811570342660344304822550131978660476762711151914132960639612967956751485560535966427176487338775484216680732679344682737453566108015086057433991986215295787876111855924472352713169009007276022927785720407394928408102800388985665402155563337562229145898264058171848809035219592322984559191694639295796753009154987109014103988738347924936289310579711504620617690105468930136691256496076455191053362731791560064596482747654805723188947139841098601302864866561626662957625009817839445743520393794916318616232450841043616455539817023339682807540816067678923505102764705204099569714819307832159932255622579133690177937093754250417825765707059622397054241206716418742464155756617817518321100918462648717765091190334572307787317880484937765442539452471494240914793370735134878763145769851002496749829672571838957837846494786398544023121454640702316093210360555946195476083184107815497585524494732214389320523373497582947729369785424473319216585338317555224946584875939746120313681769249128790055178403707516106150863284334456738495665891503494240520078974138322121492467179808528463428682044702757836988286573044737017987549883391821644363204383602752611309004461003747799027949076124599381124051619199605965139007790963429358311903430562435671573409505616362874827820587615489988136228400631951119520178080967490670497658942820319324591324255961711416431669441618015524066188633117399506879643778155380972229297459868674364343772446022500821701314936991814024542091576768395501316818107403428304112686525498680326457932318450295097745201389805535819414101913198483386798555481994017166158488361181485049186467563917728633058374665125190995176278621822177837392160428438123658550359877683167988769176678640376960033967280640457345259752019328540390384327847518556147531022636373359384639799945119773456856654467428389581911035087502447542075011754726557934304064164481640001854896172357369876500209146312440068050665618211320293368595675472266646602468685420080392607405662982996622827886673306450655032884162938829562588755409694680707065812198050857892405667820730191320067060364216836491652563135377625483089594842053609872295558275245931500943341900907815467112257271079852122273755615832610302392053167927886141183298226459755765340454234610490295722395875331195796195022894605030835697403198482479375038973982795389920689718912962709702681601799948823685154410249063450379330463850598050068936885092159609249345461701869664702253261938819301682122648436877795239618136877735017839876014287972084836641077328764288692535871469783972618881033845033371181517114847157535728291113771363131977821202456846096977749219637968473749691094564421462352746752726128530180078957354303275355058900276072417108242779772273273590062666386669601352230256085097299631537578243379250716217207440633313796387517144392662381145539390043886785184247175875379030663666093268883193121032320723514090703360541657508220906033720166811388503146846445191695043655886615212595069382843445815287087122829314072755593369968121099035159101642125607110757656344306351170567316743528958194754952161142519311002589041345289007507758318181226707486169370511374740514479454619795301747600610679345348377394055213592998818346545867982587586043173404055460118233649355330635908322439166680612102928592930996275724503127489439096429633208730774671500777330083393431588596370124433769577694548260771609767086154816667942389103506090461460441303968713689488679983508780406806438162177240634791781191620062957777013993709343944321724972218231952125379413260275336745685586088441059085112302706065537968948611903334311829339108761961856541457096893874369570612342801977335573896240768163158443358487707336072070640126367241684125509830095138195768861512464866019104419000405387333567120152878262611453144400194905011564171801462355300334608021767589156147995037146733274581502728112721182646692255544413188398595093341962398594556118494767478653220714920141404358734838912071052581636449069203988138792728992853988460679469997338628784322251003743280666592641993060846936167567748471799555382249785746556725055674894930960003881116502599000599374017386660470626212388528481701094671013876835220025370049094466710475579000862748699860758010055989739775274853207418346619399378999761075399302511442615689204855197230784075822784838312358647816828634723970507033770155108037216863941507175891202523520030936445381610008908813050203916934115910823275492996997841354483322967187542418224655200379622790431069770241676548293949761640495002830983893942602243046169048435580474772240387178669349153928857863022989243143684173047030157010902306067503702447200332641348728560100321972365652015909492934148262122999823173320730648796012037972764731556363037609293837342346820918332034208803758319968924099274936352907356498472392751796483564603811318074452718462234585979449722843180527406250005784420048300523823875108485542664866184058788046412068103591989839609872713115064108184549045557992760943542184006717645354861510528247568296268598180602937728298792442529438708541207310252940498327891791277490031521755214882526034714160181953845417671180625218368758194154070367681561576618172047799869233146403361380334652040184261580390264182536185722468448606128873686999272027416268063766621120692903461969545811364344741598714018921166046622658266159054206976394359312366204552875603421650034736011943422561491403201579417118517154275639651725686453846709545248371305948985825597452775643783720939037376064487578053808966666139918396305543463515315481858867792629127253634262889852568544646981449746189241495863663671981400650685888608602242673379881276879694064970299154524527213257542819532491731150662085866520774909529651007534040492273565482829570256906293588816904146510697177724209554461302585438178630485080605899063738090543069502613842422270537535459859099326696733216515194817253453274733360274472585272453947857870490548475863311571836633235913234758825934064152103907287193632679637592847331316123397815498565077459574263019250136134421817786573268459498039257419696999987645982495670940955954906451431929975329699029290181133468491893973167337404737610215349790280131722337912799863914710105736458088249640377936691442602252243291822035969479652296324150462593037636643284086561602312161099027177979404824423743772421754532743690307492626172588806522332614106033816532093232026699108708475868198563990498575011761996369059699254104368753291819072004157598262345466727015736971133357041403209379345126606070799065586879616157998493410954090321243654431087316158637572737481745017866557379398486692291175992043422476006485976005497828062941873914749664566019768926361659828965655744580409914268909472497067352204701161915360094527363253066644020100232018732278197614868663489891327347014448203242931178410091528333303769111970512525118902970829429748839813714997780527816493437056043260053526981069189865886898161088992699204345478155357404652938225547579239651257816984986734218218531240734311529608214112091999940616010158219127373016501769581186190366897792756904678571018105939373143881192914749443565221896260286325866365190174536592121863876810777420915836469090916518273980753103066499806244849277475618845297329472713914899726840778589778686560487233057524228571724734436667418181232708415917914786168197800328752421946480119315937935152394174090419098412578099090388940779420467270491534500024860427455307306836472220758930821994452347214521842825620929143768143878021396936399786022126322109822077357144129412640653765264285434829706936551168067283061481553500677992734287467174083666602053729220484840870252301258571791456966579523963596862706459037207268058794398134006676701411765812522334810483868677174058797368961559962178465497307393409546604314586015404956157764561673447212642746874614083020638793598042849662247223255046609523176817245863626112848338740765075828895677458958873610951974207232126233355615193382471760218186838953006797502120769043883812835625814501250071190271565144346270648149505901969961390405607906737260724112924471994770283848353186332981761999473128331449159687775042903279770347619380629551238401384229100357676929698595905443982892666608780103440596705590520766837021015952195139454477311874107235279456084435494667607928826819356764666589161362140424785642792681562544850631668526832752465600274776524127942705341934828054626702815992453912487393755809401259197783465336557356259376680876997525746027021669649252998377538196938462547085188615104752264751364891883357381891697121958326810041957653770211921182725665088966824675048666996598850420411916153320898856723809260181428117623447955829428808581369886073727549749121306874374219430148667662596916951953688569117493823196975595579402179388737225151599714054472897083955103654866628196503684868466103927455684143635901777440387565120807714563648777284438331563572496836756314810394389680921192823374145076186305657777377941453330257820788793371355232819306677810347448788145330227671159824630146773913180646990171453231819572964017138299344586652810423902920440420503010850372288970722667320416407583835211625547293542097706718652620762946720436336432735056632041125212872258941499762804689148555075973614650511764125793028369745320360465061569238119721325105618061345213438176817327628414181021644134170249175584365681145479777519582806628442497503791747723620420424505736306091115484024269956433600353014366659751182803280395342105404919103056731421075413023579348772342390739593893004368913281485468821970534826806406133447603574659090656460980097171769957520437556354521685044224390827808348072156800312138051374475573866335806612898256952535572326630739519540636979469139273919509297099291348801486760727149785168270269050710767896576530440463362626888722627429312028751738497554214315049989074564612156955425357015201474626587358829154486936716821097263877036692987627033326926764051123565917877363247704611611875283786408803828013634904145085131829558738033657159237554043740366009431266249374473501836940883501231805702551089418469366688303806236043616899868181504628145439937084394672379528195303288606099631547805411053979831739104819179879337630991824007163695359256783586699908525682834617999204484921582868255426606669480659055883754767477890063030763977320119162644193123137332822364181193438305058658554498299868991146681311711942189160179373602575963218532104868749920473470299426787127613334237668342822565756501574897202803431803206244849572309739005715093145389184344943828397373451579980515625916432262701418620623694475930214105085028120360491099390536847805602166270463685525727413290604228995635102522847519070308253273849955553304495780330902592753163522180988988262911598033711257017217676690454568064922305157474689155717101756724035418935061128887302404314431986958652186676073303854903602774609635450195252965340703015970324098511502529305886567190112508328471496806489438130078371862392446817902162173569122887239480216484647377517681894212220710356555965079794844990082719355281479143404037138717208176090319885645874610810991059369177437947128793689503247741864858064819679956146436708248708993683951315072030565303007886859820360720669916737616414756654287719353591044521169167692816396364562978340737064788274061834054357077412161383202873787903785858932745536149564461255050554782668745445509088688946927185988949423449507483821850184341303236200466807001917504592628408385053643126768698034026811580709810345898604130841735509956944151799175432334806330732613391399797880003821091327660145496111570428580281606751623381353863052429563833095032019287816413249223004761179535824956059145300042464478806213024689786559692629257635740287994013569211675539040026996645560256829723695049590996027170973816661686780048327292990594281029681615746963060606101062267170212539667479513893813748538953517578329451364260069361377774400056699301740201136677317877044694506012922607496911061576207637893345041373365119560032907835235964653265747497435286721116298075675851083850160699896935867152259646305700913908762874164925417081690968473095488602332982888001016529628089769877231969074210270093488809344555121881883365197843185355960674763507221611787287356394656554342761406855941242591214170781163030801019258762199380989589430509396825182771303303349266488532956187952664463190634938964927974779630581823776065803540227966910818093226725142614287685085502340363959705621412515137620467224442897997855454131901372056002945670634038242991780751257244844635771525893472233684526800050490579407659261183404627646998353219893312711732710511293877462720081317263208671247247831036953250571166846693391999383834165301330924772942935847074388263424007013217132097282749479611635667826150715662825021252062763897515665851340604552901092611263816622423668992710649041886270014421128735923939982500565800643250607509458935850072180729322308246108258185874671334067334432680515475652761122900942154655618310341268701722865416226907574466637402578505819839033726685391283425113889776103701554705969784284381211041667496423619368984063561387622795954521514689288132823943963661294501387816765909292508975324716691236834827515460782728044518243453759655049256806485323099928145147534550927555277962794142455744052552188253239556250857211799635301956758117744367625509731975115565148451372854240749048380819955880915161179392191042619092848578161390514823147445531015161591784145999471223905165969441039727295741158339745939062050077580709596765898924961437343487815637744208374999146183451341178572135657651002882165343788389069722998862946226868519562883232057053789421789593678448999728380822512958573742956531487043040321954330164722045813979057452880207472858810311408587987472118632864898447340531146044004800111896474216571999311588903720590031466418126179209119408878500667780109991854619093489266918509118998532817580156149634425272742021323083262625378297537478084964862057473772980595049021455501089693480645109743330059979855532033131826917519159195006558488436551656335235079497441486995545934682666761749841931923239198584931429070339724907410433531550716185771284452704556151487208217879010758099459907819034076848455908034852561211244638832388776007725640595058576145061729291017634210620163227631335708698416113338433519159552199342391045655659731008231699479978456319598341143056370588841358572324394599937160845154432247333257474326902932111340553605260907241688375335436141287023423782527089538235765851659641732811004236702247942658948954200246277977930989345076021362417137031065132759759613489924270047047172533326422774262347566320225179842495249821276559511394568141270076623154851582573596335382671792266993633391806685509480289663970163358030635777920615129299586818160233278268287561386953489833858078404867756502916232810223212628623703647116725909111622074499444703371546717193557960340649572183991324315717586890563578201193562277776342162367247566768761722061015213389428844275546380391429829340970637684665116996845497749248421623454987901900590122307110248805880499208202673415213345261948227180404524659228844295541908154492145808904570493927298321688341342995368258674641083672846833132874321981230074513031444007683574024462780977013002142187123511884439078142864571486713031627438140533885760388529469050776911243964028442753921160112468485588590871112043313698335512983177044754395273511809456262736507213423867548781623509663987589890781058433372203975442049861899214534394570010766993023334045070623558228321979391210716339044784574064959683736835999610270559810934327545718226581916273764083264919446339254141257047278930012181409950288177663218498545308566679007037626577058382731749561209175232476012728488544222989867998826628395086789457714388158096755058011481632951013417845494953248474350246166826049086054349862607076952206845769308881019936388602056908101664505187218150057434727469240045662801352442429043237968476832649959785995418767960988824064974266522958440697297761914626489783151028740066979236203320604044535479441981998947525319571705208553161777916410772764613921571177402991355550151670979661965240622229141609972270298654087146907919329111017460401206520811903347933507409339673354381066776442516210910640978277403934724092269713998641932401833676257879516616692114857084403473110985771860414380657030581140896522799033707067927777173240196063669059902396600617475966027436477233417132112564069573043007387189697608262537784076168904565036964121017260551105063180587830717710457167891720931555100513126248850749712570882776081846297351566606413813185775692321942216169819818338615910911121296406834764541498748925967693915520889997434834825109771717334774849042415704476573657457752887031370873919072182505772993177204212596617789094627810737489396727533366949775977576140133909640059949599124774240582260227674347914043659775007117490687276269345637528762791538610334809869295742898490087041375521603759467876439843626959137289972377200731453366733526996836629260856570583903882359383118961476361331704366529764436074940164969717395660023248475312782613511627451693498591497284257801156635401125748838344957820547565134867525353393094929877785668247383224713634127815663824590502307339832536083003873024839639954184028662980876689960054360674637478175973859320010970384009432908482521486078558007203028392624814842107356768943650847829172394313537730783382862045256079371434798902477544800015738911657789491143660036793543639320677626302110521521013592154694544997058887628365793340606132391102338123478911651339606482327343027611585343257078225967456692639944506549281999054027881507062990362135050452317325013670624394106180766761378661414563785766044207492422926977034984501265149216717696331051676726784883729549005678657239784427631134732497719890600761875914089607306658215138449134561555571151084513215973829110011142873895994616239385058360323234420828814504339150737808186319372078380311364175837348751976507933520535426106483964680022831803234766267824389703438282856767409938801224558418282506165887184191773971348424955753553615428351062448328211410756609679699510482522794215870693151868682289065990544542897676834078428468663516950735929005944652517186518412045443271163745245912494051031774974327164330478610425203579403271210384808446436333013715290149884275237794983457479987528151196515943440298872149170655559184939637362023534636888218131437208134936589804188526181461668564638974283915059558370394712383217345273482136156961283263085165038215295650842082471083485563684152892779777775636659828621565022125074611675903211654209654147012294283854575672141738992979980052464181684733481802173252198821195035184670582808429271159259997015375097479007950930331880565580101398081229845654681618715385799281286103766006844083084983972797637004166030652461482660428311779328935587420559345188132647605029917983382716373959860235887851346092673231951588729729246677097635098946770140282292245909364931925193174285969415236656465995111925468588648001037779316307387944437871151634358086838550980361673411774679552505415696325551756593001109871034383335920075203177187132116942973736665048161622813974369194360219793318911371477579284604851057454283287481793287227871096158968260415191032160358867794747925929885099949904921648497138544125533916737983269837424487412745470962063371390474048360794157529363363904481795414111734936202604851201230536055436888793862914480787910052555989328252773354359247067399972692273992775653397256696715240967730735176129922142025550653142954908742617053358503331777460258915289378865430766613971869474350204696966875056766378250013366544341201497803953340948430588040808713869531589891754432305576148445992971287256207647002380883308255786375448067354538598763808584763650695267362809861199004026798113020461010194459803592743530574492962422737733955201691580053320669755130197311337039125611913305432979416991929482939055726795795281772696879329114257773205002147601996981522020615245179423898458185268279789797440541656480562100833028605473010316050320145740518887619845350296999926465795650019044827824173860954017910370254638143624452508870292266392336640435196780035665454436425036250795296489213906564841401827369714502145264316466210037380995041855887489630824657407334263002530994978155914212875197052710011571017163774988337879565686539344266119544077414439924874232060422661597714780065489643349623583962211353125728982013559848156570204574821091737378662802539307044655436889747490658477949409598122447874322186601530097345480246961726712947787951944151344017301188323674487204478062366370035242586176568380848573688569023709229088212227208341700897912925654354194078268993055731519169901180705018958859647404813904626097073419544942270677540335371029648360620327556173102159143468441553909565909746549927915376332947359960200898026407946829253612778983205853605856186118945140611322242712861116686725025703363488631585717397116032882123866374918745662604295318985208791769279853205968708273206077204908756249762398506391873788063610737211590757336298970566574688377351598523062078348566726739945019724570616041702865614312668507975571689508067386196133576130779338566529426117899557612822039627861630366976572927463176005226248813002620159344695993323013044439085141440696129490951435113240437281803780305270161474596669731823396165575509100944772011231301699270821104372848353646580227984353176487604395208073622595864078734581915310594558252403107537721574321457134477818430984474999189198857234881539219045201566171925554299875334540023811097485202700537114712389797470101585475386268028132317028620129038658514423644864928655235817137202938801752941010225202856911871860796450108765298425329716311744186507520187692927464210613131762030850679066588256061616245123298333856021225199613207285816407020906231271834484822300789404092439163274524087456678136735570039755142780739200343533132128228732868954206188188329141890423929582934929305948139194192101543032435674476992430684895495202395456455030650470971258953086410011569687327280575346288820928949980376942767152372469074527687494117376112489070191987929642324749483718639132922040334047627285290480570200588772263597678817471579821421764176643490054851532223351305020047426608426027581114308115877357853681413656836671339174031607056503790852843226782164643593015192070991234338444761974897013637518951684986306334712439357199345332511924340248672268509671224442280954862096706420714603892359340106844004753696386497513597358331093783260019092515744319203761229377089055745436284773845335137564981164123368922952288866851999159162996178672081918371734730700682281270186065027530298339014669995747944610702671611160278717065002344548526553180461527980301358894310966438222475439771623046764635318028199644937566237115116051978758708342921467498000152971410916725705796936154875615717823583111771013590125353955687127457997201759260654619005937960897846190272218145072358795484271499133150396203051241109165044196697558251321818617835694275540614559727053523826735711023180819720853948601822054826898663602869566818348668524544614408406952182633280487604446919008266967629645490754572236923327441664913195564864399458899338775870098805433186399855404932306776159182859287438960578046409842089740550683296113972392222269790364697767875517303966644741574726584654780659639564895358195570035797166891226946992715128448647722739811741814886633192899465947060089211318989429677196570486185276861342368815000041723800282976700527792276554084855433348616889849738718678861898732323800424009638640679843517162511269725924658678721107053801531949577164948506298157989469417142820421641655866599072861984938491754802695846196422947793149812238364153855703808978900761390103234971796963254719656491227455826354132341424364357459474929792785696077635914847280121218205712372291254433245566053407484951814467690589598069520034923001249866193762108500512364425478264357338213296609669731653535425624730809028817761133739720629836430505408619406221838502449854756687212600676339743731532578383548748244097809739336148731020239045338094741597766456031376811062989214090166123270039005050229476135188591241064706560312980146088899492786235478123370756373524321271800610530855171703405360330737630187113669353217698428260176112186006358489653414360670914199779246409721142744954698914635554828643401104014722300847400589719394255567755784403993657012637700923304017720157097140226189725490249963962566890848589775041571304292715928933801462762817804245124334611567291708721811698669587131261066558109715515556963348198442249377278998490016913340650139225583745253644587113153774964284515400536404218597690932979007200836296202467322396588374131752905866262694467352104426037919315211035606156132717795833242389410113783086245462951409581718941653818826098581362550702814720744101032283856977012126679321464728011596824377110164058829203812229822825505648850200090315990840966980142501599597425610220263183617255711149139214436110185338455682860703157664486057682509194621585069508284940853018066449912071428675989866884127906465394835715319791629682191642876269125672169472287743672269074631085341954406113360848716300832207815371548154354645837025948503616747070730275849967231328096016293612335740850516758670470322859872473980864732679403949139379130849736324141390294392845766383519842186763466430180868960692143383196042210094720984397666522822544368304222054701432565119426870397199293424806391183114715967928827659016065848116137229441994332637690168222434355926079908820340023435099058591392977157604947270770283095758427070913697704371357590202672271213553449733043050674103705440773459584309227693748403956382048859264704386362111993542255000025611449708505270500916289296049847398305977089314120419837701870006385807844261773612787580995515950384666207484815725018212354082543379820275256807457417795530258946819457764606537499326993288820539515184740851474436356821092425017105258634953457915902871522129953659591580769737340686493813561483468625939742529349372392299112609535278901474152094619169375233960791800588818378506688578822174089302237670789264905590178357330290498610475662408840463017442091646079276592403350052136975053666580334050131280712427989700062737291525907016667464372456678743256001955542420944533633439391956768045908713309834479621296632581163765466480890071124740281515643434631081445327339715432334544926861930744837353290342429022706323445090815537951237757161049271217981853535850994155387182194494270861149692620822283110545052601764694421498479691624938335086438997979437257258503494733211236420156454459583232102586733821208272011023617181329162813476936133623163000555185416994512370308747176934753063809491488282318114601484735917650196830571470471397168054171207608541527790614840815435277054711138661935519182555496737687537565590189158920767435261488529376321078731238757206484082373753032884640234882928758674575174119642595547325471299887844133769717447828951480606297501598104109651792487372542415860607092634345112218051515768050395232079839070384455908024897675124281118683112235359449536233280515642845091163825328468276903779894056097304965982167747942906052290642711540907596304907500457866948064424079141604249897363962238355342656882489249030940135322759829226761802139944680189960320675803429397947950058112356339869727902367019776289840733198614297089945534090372605768223447488692010297648871946187586293421317093272777691651871002498996665855083811335678961748113924008069204414625665382945223391551604594824870277524026560308024160840633583104991593130853947426907323472088411918202484707573291150721245446898526855311599851117939381080209773473817493399988897385653699403875952533621748239471547834800589460393665918892899621752104716304660384444123734509103829324838945600129836493417320422432165642758286269646298705494370864746342771185293824804393582160198607006217119659183259180757449365566031905742103306975370732230140442939136072997423148218620571279724084322974222530647847022287728988917204454136416830186205926694781065001577273034683998295511059964275198344209099429823941361558326538840685298375019610026743279608322676608982437399230458381935994455203647109590825189916629159319639863860998442524559194442374098076505561175057896146435919925564267596311962778375128746537965238665256816957003269642878507201847166057379227252095232109907611270241949139628074816965149432043193064899696752352377801336017153557941527226744043835477478346154171361080719710473088602374503121389008132562431720497688680228292550243349395991782746769594115544309850361643131639442573259674614175806634244925060402322028029469873751829312706554137782988619584810935026636452075093196152508201502395128106961883020837877917531424737800666136610712556138095687549097630224818254733695777442501363334650527296241951503070016298234339909100061555024946737128843219723533994529380672234196217016163432924793757445914665771562668285110792098013823602779085249086140613238204702960336142123967891694992342321715288832979939112946652538472686405318731979322677702760178715157112713190221683641694532904519520461503355347344697871415224470877070845614120831498011066671652074655536718787287374690498716276246805308575835228041919956073276659175695773002879207062873063562282907109317225412441028996562194393033935979312729824901885059982075302805818268734536262076988428838928963551772699775527089280711983832712641649813585056609297466819414332203763601603170238645401038041933756887455935123839827605652993796946311157362367658035157564368020797909806973589289503336310275094784781357000647031676531798437489385931992844679705050146584222778269606759197774314228489834622963809575224532923435922351304412034590961012744858914050582747677591103619718748112625960272458667655714727549394120555133622891690426382083573995206157239464517444989912970211065709594498556475671053910136404655906165911779062436459573934607185777117061118451700154545080998850040593155875095120616554563146200738739443327439156540822226551667114981361350737399548933917480863741966480932781710026395502591404777519347205269361172155291928948911285123125631052770972349386770893098856247973589327598084634232185162498530503627316455508600244801128794870890218752873453929413161466208814826808614162015915549122041986025984886099100100893552198600427434057310121427340294759435672697762854277727675979540678321549998708026058381328690281838621000610033764237919800194423704420633319989321465169743345769912822318261140907089861441540819914737474336816449824325266081666966973361969533212777691297726357984301509710815856277952410140312197253995009854837006991572638174933423198417086784859633091293669773835628870784080023922357823103612292313343138708713756072647955306878567678761408679785388418397508504683509284144719683435669245391453969726703865703172962418389792354536870706291053584095862528817292816924710463959137654339775103303861869054162785406796718856452314625346834643002030663624300772804183915050483997746390652352700476682203370156915852377013990541263834764846638411791076341639450962657613452483409138987537934888710844082251502479447198768883992003573792607365768549301553430268438483889314027219668203872768490406507864149839548386239914432710035484142857146636758141086857568497496424920588569843745946865744801849342280279582356377564388268232624187762216226070904519845932677347735018285436069393524165896011745073761140640689598829299446453818686066474728889919098229601789297804735791247963218691536870365595294443349954251605809083049273594088101251280459106505047664962675822241339331580270942092343548241375457305908715656756767010920950546711178377321047597669794363570249991724776409909961842234225938966846991544188772094653007034437183115728705732067398759578214079407363342360849638323335917902277126826303276948775320046801847577053943430079511966677524396159166308278083959053832295112723382075507441530788977762867716625188109118753519733009863771747861881547641160222390303195596789815373333325829836004518897341313857960092977745880614240104591501478206797394363629199355822760236751034782755648662712188255528531782535860103510822581450261120474709240171860256469006846173176799057349011007272876892619452758833587582219473843208345786330528075574549382895239005984568272914134643234881714858460678305948260145359687621596708124955323057637815649344565257825522938249626575117074949886687654410382705337408989210403686773656045428584516950314022323633757026417965778520817544892465570992408132366557869852645353888011188919328625192592221355667681557609276306155759306626473926089832783476802146055571315939157513419736238143794497888858119633437282923219663203357801261130770108572159898202801245270141944055108211091262826167070806274271062080737562374739117901880630391519189825171866613757572759710389811462813209411824321201157828817875559190831284165898101295993972458282885034709053028292225178972431329487897374321507341389531992364509403300894441779949785506114695615294856553112229462352630605156014992464164694165358171790659753464774747518944903388637694549101338475379570124343532832144929827573206494600570358797413728473085568500241405780699494442096564545420670406712691770342055893545921475139946586563795324498939480729634535959897732503522425366975520262596619022391137446470151563774946817344037945328859539492677763875590864797247808868006817235585313143563297543176604392538385405756899742985095171277824885406609203265598281270195713564281392540661309838725191388287432303850700660199215706888715653136986458667179283657355256586271881440144317143679374810596913709321216806242471623729661715393439953368054145698679389717848891015986030954129352987461691091925238097429445514885583184994985947959024263664255486555633149346893561503414883748846312946530056598074676977360194559815286306276126267663557735976758113842161237331459708729860471384174012488889187971332736362625113113346765376292998408903778952000085393997635847442819798576780721048963459907780154266971745675426172384022032773364763975517549166533844727336853524966915629769248343626504746198823359455938542388739013641770469453957981187527121597768442511799580716945466861749820038914136757425295199235363028640995847738080667594169715580833542623996679137191811974565095014215741445024655942823086685483454755041753280904924396975773383406920036596269823806321058421168311536080639600030298348698625014189519615977098530989341590691826447462124298360754346446243464183758912699382353801438495736433235890880340036503562945098957173182119387536060403375025733118252570466934470275756657246020243435805176179804305001576612206859107119164478367877552875557651495538646290031477843352420182232281862889836049955671009471307362511750465682887493345110800437057008572073227508319673684109210872646030862698701217604409040280697949111839643660521843149230735163158890444548056797832255596285773250306390738623703331339379486490735595468517965042966618255310526459824517353756325028373943551018059272053090105142909243352731278690015151305587405395535952649030281312758926687850268380277539808784196954244470759826527714763680134451227046469658616014050005981355426600455530412564538564899316031280559646970972771764775136237931869535642851430445630127610428264940367974802933019013443998609284058688100268883287786069070057522291637884595429511271236416290417249259287033518121777245720634744414071045798701168348653894086087934642885814053237220522033388278249160655075142849889502673047338689414665771519170670071546284933413054595326178257624745577860528907055681209392136360207948400190453482271750199199850351721819829155537394052447488160840114286829854219815417399461519446756653991108625702661728915721161670861280786442259687806540552408407698092622979890897438864871881241215285862107144171314682739415124540231527184641602104587509694837594318073620219293740011902747502717656734359424736706618039867767305606401858990535751230023066083708711686914757913363840862325384349267186066139046684337879651679007095096077004454535563136240513581616173843997008720780057279737476697330001951815716651448215634062181865695556952305997320961352796043608491646454400985340296086167453343809689982394369382494955094716954167064128394245171412601916247382708669769311806960971015572581478531946257461453503976260554651254350214524143432982492413812177132034032371867152062735928163374410315471046396311177083453501544825945760866597757173914576609587753667249840517245700825958212454852196164378931310988248170038422332063288500432542084921594423734706930124693333918887639562414254068324429613965686240316412840305878256465234281833656651895855036990943259530942506080824684142553143703739066510989676539808735874993770334589530194951951702175226452073203602754639413113711611622289900457080284754036140638147708904136189639814679360905829482054185806765374568452152011414513584740042491714183497910852675578692364608405102964056854716291147960516605129860116421892358470677447836979163436922030219888963849015241726483510873673134583953442150224626155336633614834786432335613805300749667620842875753074484767612212952046402684256157402198984963409036109218476043128882969266380818247741624321491805174576051652767148595672360585448148544021329075323119337897054213766925989414624437580625161532179973469637179645547335354924900140560743663106474176679985725698630252839944434637993051824259841257983586495906278906953651854959181602825231129648862454662474149878023489619904934728196665830714757725320158683554707783672825756239924355463937745447797338296029223953910136392484245799089520465639804512178911186836846111736749565952373215883192224769664295949694007368505028403776890626580850024671729589763991528855287127946920792122067201320528093964522632270868221231475800660317858618410693450455257909777395661801233418741794136221578605007833903459125252454048575436327708936373481376250658388020484570153291728775365851028430430373809464582794463170347696134486828805493874742078360720918196695607797807865955740709604430297860930907972073074960701081558685015948097534353052729341161714831747339661005175217002301479901086903452297704877598405728629894181021529690074555659724334836185037771505508603301115053176164169618772366138127227871098651734520385737873021661272225806239456342389511827106389993828193946808908917142686787488703236974236982543558888324608458202840234836262358836434932664801755904603428215172195639634953043008484166217827151449459540901179448852595049472655691194579203679365403761138674937619135288389765488612131811530304716061968670436442884349882255233129687502916354586542686608894604692937059649512844897404856780035852704039935626048982822152555719969935257945452617407432708598911300142906714002259432746902189829951795534427487181116421174293434661858125957750175413534118015591400125239948393901766175216119230063203926935030744080055648532173648116815833020317058976467823292023818247676449092399715748466900662684870792697974543610502665979171872565458187225995671847189539689635639827391169454008286772208397356485201960596067264555193429252306818637594677165747163985103758010266451314905894653201170259390298092672155326188112168705958416472932271969153732331551498788130347398894896254271704631085200203089349760747480969523143814485952336287596393157034764290005251909087525316574079244929463176141128160500604332367814921702447181040900025235729074509400875419094485013234277377902820376877759883889102242894658630718857836325840114004029582015157277750552204976717418065229681281445359630774683991974361507755608490148304881526622616887549680346283304068496724884583144896108984111641853472467904954298423368792950285053562273808693036290643496106389027342398164443712989675246221349980717909832538537518245143182298170149804714744052082067717348293075742446071778472524594618574890493050965097953905422530692123607017038379108571469830225772485251738459145607910558853704706629305268611514962570167775660509871522189311993190860804095893272714652003159911804363740649554498522211631107924025308412085874327508302573604673559050242876200960582178254070725358819424274822906126115650670990690000964622866691935026133569804484990306069770879179642034494706647343583130498593239705958907652120593897697617999546099025575012925295051756463328193778481798272892162688397915039028415489284840501018329343016939308597691882076098327288892113551698234456444733325307296239857923564576768444655740788184753280032062040912485037907903369696799857569854811754811838668849282624893373134636562096236436017604756288482557468798352316689203275812083119267273870776283087919441640602074628031822157640294565833974760879869175255503170496291961917121507212452773313637547286304990037502459348596003211514499284066215825743674227447550106391222421889039120688571499028125033222930101962598793831274820795145746636908690111021310530573875061028762582480472978297597037886652702174411246083737007276409150371333361497174009051602135428701865990605537125909298969887572687800067915869091084574078027399010187258340250270675234927908455645847233838793694839321219370566310273581109630944234629357335874395461017150974841760325948353621751671249004828787869344317863407778956134314765304472710158730835918654422753350609450045427094382959523450061795081549912226067705369540347087231670377358003858882018536060774078592030910013073668615332051430948329712861083660252455592697326600103297614111917437427678278974751030295465030810406048421266292749225871319580437832558381427972820610467164454539667827506633761195615471808114106637289044508607112165066033989238555537675320538799346850503492185865362156116256077378507833681394845092505697034605431168901434565623077243178045128441499021187993090482889896661964477429526148689757457320468170131393090511705612968133624656576703275299788425636726104684513955787617455426140794992788515941932345573064585536376766627790456519468752359050707029026423593768921741125833571439855472717969334716699045245738576573463632340209580112235447644417233019968875948411158859193880265208241262541577592395355713900994061925788576243834396708253598508677174520306477125971687162927198110872264071673162031199505749535335078557905805522805676870940035886214508419394511021296641803010250719004143518026258391841696334287108392447011217284273032774701343798411733012446913775974881728083780863283584806041092422086576772875220996324008042994492930498688498984582499837138589166913141159480537977042001597068934711183157338901047464798780815652192644112417536626682168177076943238146633641948679086382584713414390786785266254202550798750059834420864335320340338540716970048589542381941646320236449921869693519762514875895364475163444940641619894167113410443501482484379874639160009785800714886541351357234604662347929727283142415592080025103467895454275219424132570402630697694654016135485468798571442948680303910184410863890414481123754437128533082399373283668196231302956918569585662741137703388585366462274719316725033611040733156570076520712424079756999501517168219006451178870287463522929808818771007290339729922566421130560137577597719013994123632672808453894003190961542149931926133641122555360118366273278385267401987547818763539357339492847102958252871038099756543973256712948755822478362680745273903490374539065811519419572645585878826961885994749183952654963544757136504122860593117832774704317170217555427338113164461220577791460736577914630762301569877794279947080006669333908086631285203725804287139455275693441864382832163075424935767434066898429248175407624563484358599789479950735840897211272601098018591318726985820436021544935373422820998321512799675477151086725568882198976906794323199185003456465975468942090858651868854156500530177043477744794386727039309525080717481143880667694404088033700276228922940394954645686946736562765121574442727556185472729709231607710083303276120464400195010882554366611838401750643307987896018495725640922702645363838487828264437784676467889452186137353554365637760647667817089845054355114691231427414164836797645974961007517515958073916479931951112693660164858482939073318797391690878819561867435883137351553906131409862755152129544487710458089772191058276339894748491027833916995225437768143940741866823756712442332351482346586764996451945247633087053644068714145683260663976945480193094371008679575123989119060859807956189770286170467140202639004075521169679039679720071713355977146779184571361114940796671246292299933147763421654122778357482586275349900679211197806030788574954697328419646448724815492388450416874884403265627747095296067748119527859251481070284907091501865228753429418363140611237085873262940243390981983868089791860127462081893950209887488319592020920204199143110243288618404386721469844721805882747761188553143345477594991570811215472430488110982675308501879271223606726542472255495116778349951376070493031367598922164576741761560889488299509311427656818795044573907260386601558121381695557713584204354934789536420233897464954927668535362013175286570550588094409771668261877850356569324883700619168688132576989889215377016429415477035280056119484224729851874877749535465998647312837668102316847838642080357150661043760802759009924176268410207319104116864752349250603645638677729618049536610561814538747453647356295576007682838500265390338220423592553982932841939449420500089988724891806211287049039130029485565147495434457524482287158340654542307467849427493096347001514326312416129821109765779780864620896364347208805915536423226483126451502160519650265847206670613012049338696992206072120550748469831325044567903619793751145105610994059722706102455316434184231593135390530727736431563672645801322676377266861863347929609941243270017744953982304320400254498544641258218149205601492188788848500428184182953837747170367919128937630870104272072105279340761590955605690287884154359370412944870677376427126382152837911463086145996881385154958969349477753009109089564506288798749499879189773300553955499696722311303299622373574385677800288472896421335832669747258346061528037126274322172432529339257592492447411545058597603142539540190273271795348245344711818326753377256883131935700208316178318579346955506250987414808507383726201448358464003533691270556211958906298935556277917839908857649562403797143088390971110264225897462931766896722340401278924999440030146467922020383042161988077173466473516468109820565844567718498749974291629569527774417095631284596102690145422333953644324790898827529451163209927530749937938189831475679444124595963726257884877982459217012800557580271614757921687730287677241427839045907391273929426788438577192396805229940340533470735733345183672515542658263961999930983673079503724486864611493730495761294157070706620328918110723891552753833666381708043033055670727526167741946306060870155565744523087465583961240503014805791061458163090131489886188210793827475130476412486827801601908496784421890111018392559678015888440508539397683873601419123096060086888484095875909397988754571250989027721154014401926221727965465649895992143756911429020204111157924873126508075595972847278699682789162682786949115247674585192281108652677009819279435337913553500514689857938237138827353572717178938301422164857171410290069972823532328848462192811289408170797402442190544369303801749299703208434011087332111453684235999932090895156690859649152277667229639694224242341883180352109911640280643484735443798320000362808190976855849256117523929774165820418448109089512683647084624741173961271488101932945586738194325086126535883736855992025907815396082128790730606533354490598834747010168086963731773732582913940201499232920969270678316759681476696675208077482680711116784929358461984186261721109253221606852538815918559880627768721643818351604955385279364210903131036078162438914712543316537004929543573131191804284196503216157809042520133124856053203608591448176717054976690739276489514055215206092541329165702491817166443720366613685787673325110828590381921544766528622524635921917501303428439331954912297279269763953174862232078789202684450835204124961260947859764764050513446164577995797419209394138731127672405794054104620755970157418271819156561183209665877740814676916977483766418386081752547859685152469480775281790629399270652523129308948664501479045471076151553997996389545735499561642096460474745985377240519452042446951551105760149422144598507856289800520015014421723603039442834244487088873811175695484586881015884730508202936051430137010450699026815819894595150453748572348798071613236899889286204993413477844596482623886893449564130688693968016240225696097259058369035914478304640969184582654758153494500776516075819566412400743361172866660578064097906850684383908655013660341715661217741365352466629240385273163158429247510718207376199742570052663628734248527697091241463260439116468257193844749765274127912883327647534004587978756721972850802515877654905655892204714962052521040120166987644538174938761539621762099818669564349377520407867045502757495420828343826527279906640404630855560157935415801838870887714052300577774791013360758346370816037414033581662171052377954778031082878931138989447958611693922813772482097662231537416555187072430037844683873444610185876496624830235355290685620889367050129145033747129770829859205524051878310562165213224612288003475473255932571175091617659416648239497291335237054388627240848370552817002962980905865080479495462458224013571415849006733084457388181196744514291152143427939269965562257198643919606775303837468667222170355689084250348329476678415036783681989747562636076056173959495904537872887088011965418789247653078202554123421527555465375278485116421930021040069601544428550071743703540070335935650539865178570700658209980419574495123587644781248610414755659045005537787454257327663137388250201726489696161291010481279326374567313473871166387709984542067027002960111722637627272674521018118655910525861453388197012899119638473502901740007068063146230130805397545776028724740990975069178826192831971647212849587379180354955908545006179881321198211429825837530563509789912359405448601790248626076719483518442349058719075337294433959240918535280295720103839420962334277562087477231701175275687241012245302815387958450963485798391045192131863495690303912564113905964125401943629294949192135307171534484096842071064228228981186402676350716079693504702100231878109856135679106593066007897762553197898250066315156298335443916444925805700780106162803210220195704757986565811680933242300056066489673694876242617241011990759620694346859404061641090571155345453768092327128723539990744359195398397372110133494916569271429930280203147745605054466184575323059017078615644303819701791495676539404594356060660507017393893132134625850381073195038674483556019491822805167730576850268843254958908956081419950752565189355402263661008481614620386544647710712187951630698336202140746124327385607330074172908534137146764662082332653007577845780127550787262783016182508700842818774533207879778942964858597581928420499648296204273540733853100546993954125461947347217039952702270357793858512968366440678898374656563613544478066683846697651766149996185439896235023717671102740890919399583145146872361287138497242069080950442236785510287628680425188163584026162985180721152833223758097090574535691784019381600243965432578250454451969403488409243408578999827719151230309473805540308231556081860716158343395561728106373311060601526496414815684043194623560436301743175092077130490886856047273855173095380847501448651760497567736078331544722925343359638456302152171049873859253102039789581433366384155929925508944602780701796227452105550671191316326265279936696359892383006096981600167088134430020391177191630701637780038300371126418241460149870417148056626033849775175603849549191579141792953684959706286329717452214945264364000401168512758738794348666883757228899613429938664023640589448245291242820165800478166941847806366047848381761856515584017460372897821585659083148930651177919857231716476472418930431531999088154997137742072101183319686196849440518471348051037624488758181727723344272157087400085249391949339810308319995228854262630851814551410496748964257681720314577419760554011665143719337637218818650652485445039993766092267777074793998014225808662149871912470138746989567658098163424079513570373348683994607400148381880910912278504987422563947102858903617892486945519990491711623170929740819517216362506237142082526119071317918763800373820998941551673629031054940290537253798957737000881786588704904392091026112781111293551942277819214700743637373519008329473368732239654947632992827531835181262400711892034565885546809503026304251921987977737443263726092891110900521986875537228105305576414761482463985863718977279776193730876704264970441151141289006212611388530603736722959581611702139503007414176611284833288601673671673203588047015802478486463980799957676470792331064456626033730736158992261787526742601353600729527851144731299279145245062334029096397175923219795801119146699283960660905462007982374521224503601691041156322195329726954455515182840945395507867404093718532366038779628051431267662740364398239831881760597852813466394695605558118458939807050113575168206806948943855291350882854473482815176097154238595221327308613220412923307765655869279095700478430395568199401596422335959455022810565437799547086244855908003706950156080193072146489726731639389255381599586170220591397302709006385884149534616276426044283738912519184781985002549826303585100634103443763340733469903127035583080112435481586611646799047040995479238128789718678010981520497880605047666820366296725093693960731366933747203672430031896662049975065252017547135786573464383646763792685019584615106967653639024474899543219972319061169329622877894612265668306435189561638995745077221094512799188532444937648778904054422423347097958726521769377763707960407327897024558295386961641263246575492104481223808933638076494996719634861554060909141594976780877461912277082868446053257271801923246319994667678926030359795781182790004713940921719399874076000999706958163447923360510616646007787559395457858135619117973484724275643954446900185370303889947219983080588340583672047301059337164585377733373826188199786074067450906292255488990834435844707186834628390792947080116968639485118508116438134602812347712665009370864349808106119251169983906911241127884922501074046700100249875549803524056367371564404834835224610219675040334226809019609191836769753918448889810307693136036846490751851920899807967484952064252815039882199294501631224441929079058217550021246415643878011473635348603231817697699256886234224365116141378358486034572918456459731014580144233910343661909121175141432240043381471464957028036817478157339925527876758136335975360559539384017686767430474620112279164213879016271782936332025735406498294315950055471411440663728022590649907729721531848353962105920750948187022309948254672970184837824611212322639194350073177762006695405996037403765441062871924178666242088214648278279438113619744675884359564005433840353292127859574881400073749708325048327857556278773866528397788884309372421959455553543681653293719886363436817907518019612735093458041094465517258849680261210153466972738116149856071359331842125178208697644136628031319592662998008004999380179915344918391418600149176520095550574294390306323540512913272285289533183861280090024201859206830124557688515998603667088214403617994975769301015816840489636950570719416181922986998546181106643162421543438857448343388807199476674230925541425220464613263330219254123326554225179003962370011877224880121899739867454023278310111558138887625327523466564979284560911758393972476956922958164791705775346063017007527431401713140934708262075805563651383657797778566866723143389971585405128381753951728867267924335193242794464042748455722042713703833842824335856314255103756910181474583564146789534508685629018486760916770619988006592305344363957172825088842599663928971247757401309355439247332407918204555381766372353322209351254013248159029890264297425927878945475006549946921212466620662608214349320020805522405722398438304493632828192284548893289587402257932082077749921263608591189029646609838958881002923882049246229713322929703775199313610098035267052448685322637447804638432564630100081448629121994571564479009944608429368284796527446127653332448811033242025174738622234490697236755378803399596664030721437536023310369657332315237722987442690566896177962823218987189096251000966738160799485616991125616466451101755971637994994874517358658677084047168447477084990976997944707107221646280139462754592336253361858445760238686903734040234299795866218897141588045753756507850426102120697436970969214409411346899426308743785693181269940438714594895998350024823390435296021410434798710306835342977082983320775180715284808828337014599515736692340895220746753110902000408776677345208304107255415939005257603460912081402841774203771307008424371586729360593480664925608906006214007352462203466943404377629737141729565773844359400547535778336478717385883199572538063980996026454053272056287315112297815716086295737468456654236008290043057653315412716898974622851338510767066427511106126351131616092424346656970070932995217809475711291051481146984681636209949121191573759093465466617608592524996429649049953008495876078196360047102673940074073208436244200346144947032423951767853242453480993775280280525924048657628467141218672997407703083930742617401450032210497262071517016718491281343898195596976652192019081370003672782082548084440770548894977352900740939641152159281309852432760682475952253308028248314091145503496480558833631436378808692685098402275435610953038777070121200028980325179010492325077885025908326341435485168772200998294771996023052438855804487383316035861722692030067101878742606941786040706999025075004932336269299321409465809964653142858940295050759938374246713892699043308896968931712215225093296152832231404015224720069622519312187694832867420029173664435680663582105332804176726151562302124288855432501934774716280438341939284793348612220573524012877500894115331923097650828181118963550249584671068452926448455574277121347428588612865531692904976784566259641824726692778344002660727947414440837066457585123767092000483121940348372920856002290277977308648541474618588111570240287314904233747102205122542105996607035383950648233459260971244250184778080977172673924731940165503960786701230473957653328065850834841252600889465846731191572917457422417794933549798919007820621308610803865516223758124648355406507243292929115450926671318592967693090324380500504705798029574716346546186859666334816473756375825302952862923734367894946601088352913613146663832807119837174914550006429820817274506175115331643178506860559958041447050514513443466135434913237773369000477575850404699354952865082123106885520961899712439343411168098795396248170852933855760900270227949741241797404757178358915130101948311420886832494331481780233765095332429955285944368343551972731851780494655835099194309370225681931802468448831867708730934727803805915525023120406422360947098853016075837054367783741464411605342176004593264890125101094368883949375010807823551784950908235899540726474620437428881050839645588426654869276504840328312182091922525491147266406362203079345506603988385724860051085280789875092295415205368592926198779168922159220522055198532014792614710859188431868657411596378993112160998976110979633565444902734359098328947867883974966109031057965678988481463377937809720633905840102515148001880401230886131297554207215369649270580145527502161467808691366074981225162163435485100633443491035342053393469452497476955086265693627621261091572689185127730376383979571593669306794929864838663384454486312760855100518189458110414647084540153629145822745729015341057988169354055283186736038250883523047392021460703493319106727265127717991413837226705030042889515491348029236323928824220795773086577354430078714994079606303257695899262392059660138555418034196698932436702851049428362179024244477738192565459972644214164588018332426573856187867895985236347842353680905992711999559785401448359660621563295163890730042756825400192358883203001911349752328613006510978769294553113966895558347643708070331569246477056683170873581839480453887530751714783371195076879764077288464866497918231845023153810551758734071896253879853762143717243682071046881420524923936550870448913554165562666671315419217636666644546134197065884404803958628401161360336854813455050935903141657252576055258698787030511931907553636345440251545233958233658716038160852821850071410354993608466278407506123683876446214589192177914259300649731241854636559956751295850203082278410326137151135198390612415964633398239008789738799337167288720356789486961278469180298840007702404614168435709646116237948458002436915344623192970276370458105466861864892006481857884470461376294282061421070348036308441116780061481502391369013966575803093965904415912512096952973581273097903258329274793996928243831492062590293309286010332391740383834274571135139845774783202448838602196807671633165349867303474540139992159822111671115125442585376091673432769990400584497434759055642063076946934728356506499107776795892650798323481084018224489117074966510406187591847485769721036743268151484201956972207473448220879286996083629358763165389047839004874274793515152841972707861432196582841706939049681577256828050122020751092363465517693151572323810501802258551751824782234136431788165206850661394226265344697289359780575579260783216673889806612519238800016953432522620052889956108613287995075957355474955247424308328701918030564770827367014344539375937631550175093518515879850506946390523195829252309751407405254595631400743663136531859885757737887841902614118689544565042160337064786252627247085434175977950069264902695112027502630954367405801647213159267945379436949752610184466085800078312719131602123509138297042587023364160464484612847091863431519865365466090267618224747180122535599681323522386679559736925806895975303712648024482045813701820343286908637165983377571085833010368743465774110621814317655633962100638583167467480918871707737653558986622029499873827444255479241163465467940603650247460245618952590934996673595122712732052401111139185230270676142772309222947288101331929633399781855031829344326322064698010129517045570430063250156250431508365762832674123002049506397173678418891005142525305249688625673873847779662866216497362402883693096173543733731366775835835701794471457470812490698022977681568825722570894989089912066055402520608013224504825120813756743766198679642641298605943112830005408881881233133472974731212674444311867594320910668184178102655733532621387737473755345782790415115931321851828588777441772296620469138660209349694256053645066213331732596198768258859429879426709380114105415399391896083636192487418791693064635784480721565839931203794011832448020155671414285986372785984697074047554361823481587960114136623524548067203456147569397801228956585216225616967129836900853900438345103629959118876555485850103824200072825738319153990752707127241272013958199553566373551289090697625107030489202794525915565004855304667824943741234171084511127271602210941931455401579997525759706235711965092077965351455828496946412471272627520263856889880768351634588214744382212186296466126270826742263505719504739238635075412116648302620097127671004898267161324519103527836207012854444670111305232522693015087030633845197418927063406924545880913768037295753346806779350468647874587707376219253052874813619851138575784542929107665429283407134350225088281889291524452778398747219008131438072043020724546793175877846662665684652886150768840312232121873329607244268494339139482344004879473181001567234526177025767088679077948843575976135181772233032469991166575966356154888040497320129756009526598823496022332949604235511787278552924080285877667806337022880002218103354707338193738262267571929259335637095406157277805724414831116404280200117378104537735697122670282206349312690545498167184995028115689010796880290011256589179055592345472292137852872328218121250345182059548096772277660713101778603438829573318206423587236993410098106172349638246868300913325653449234684068069390174735320150444061138347551904288775406077581916178115413003992574037864435913019078461131559812287433383309853783972802072728689232029894397339481981775713924749169464666678961234291093703387932512337739713880254983507066465501643565968531458265075610705724702998374090486017243764198142270431480373845293687436005363912672650761568078131420041224119594940392977016342812407872080852166630645923056703207098161722529026960230630812926022797817743571613810291929806225097290234214027211916938032713298320083728506679616281592358286686576099904415991587203941836822473090366949690717745701217771446726835111945799235764378946935653542086062973010467307198227660774393023094688615482810951520215970525502361564783557941968817555609138577852192225964776994102305700383667476235506978823189655698241465028678631892113122406061809386048832645173084016950142082157326064292228869111525025499360218005104193260969073847488323914024155853326011528507043066093224442482524144174607444884453418552824140376224643011608492948664582998552054267151740545442020628070343329410693372726429706689108153584840149094569382462168479929707068737877406289283254513422604088371872199038355526747220941231267659633815572502448461126959274697523814493216404446898951622400692837095862738068883362916372400418759586455204637462756958305079845381534715230664110072569236293492763936710913135127040305457696996684553584714559181928377124625835214124458120274966078477181056994570433605081685095894537463079518395003471725194844359949485446852681297359019069065359890335695603100644796826312045731910115444965551122684173251522773863030813597582172290597661376276417661634769091250701619995537596432115575343966216882710840367511929996000886246321999875418094360053087413396269299820762966801548809052355871868076169855606043417539252404967999646517600026926916551698752652506773950851304080538844506092601096436881089420268561590738998509908250154946391822097006484553663668996858922863821597110767179767897501154280872303912887886996186789307198286754991974326270934100026851032592963268818524148957912443276487218014529821857497714292943666893783643822296585911141794051849420735706452832598845912259394927444557146677651511456929031395253758046337585796415811636218722766151898241220535132242248825616774245967654125403317844988384111376073500772008569727762648736527833891636142496421063088349308903320848779428644049722268286185994668934379485133485590582820696461239464975741223628313977338190874558033167517272238664736033632294221653127763584773063153429737277492314973942733916813987517165017810326131745506377657709788695976757422149371635288456874197560695360039337332020651649369708149229583433116310372740909866257470505147022723096296228767689369377387123902046516729559253963757042296827013721597849618036234804337906397035855824221088235298723949688535770504518289509919376347473203519382811144209254673933678229258496532200800152631802914086468882484513127730626798081559547648285041727113926403155385040583548821872063249822568308378114474967278883332002871767003436969011263337714068149248560992223709551854738445717905417687392791717851659319868288756418186776876841019149180793996112890707515885455246994765082176756772116466364276819985224100965213050465083407275744849661976161460840590607410221444976223667994484837777546120077234904834680479955363749200222871127185135606616822912323921800558278141858159904406240526254636771092443831733984763285147065350007978318491582401175956590053502706403840870712334125490430058925526833691094710188568063097486389407660730095765914621565050197607344889921706745959901008710843618344332778765368258772308223344345432927526450350827510368852787696779247529054351634847177830600434230680251041692709840429423261549283137612187925615980554961799348822340432228376565318861257502640780451529541971941954779774061554624267671433647051086815540321664452516231071226012308937104755068250860324046390867144369077324413439849284146788284714793329962152726567683401040035380272025275418435225372283448970658115608571059933666774519856604722008416019086000078805952681826691313841734181990559010582359290201354051461037292598408924440579962926120982981963175121453533210390556518543575501550633023039398321742416388765814182837549573824813579535376415648600199102097635339207548493483886928161124090428605168897241562593757958318989500729245960467988554419093112332985271844623356777359933348040747037205328034706976370027157282023073057696141487196642042557275049195036632300465139541814072510893070944397831211073327668759280377650717251360875571937648563674485588882578876613391844930211918822927090195001468423436369927531995461156713868570450744143216339040780299923490581446565204496233515435720105541820604402629891318181183565214801386554846503939174422768998320959947345326148515338090881844067372693578429319408508180054111250120345744530333139738044694885277098998056960005191411414227947762969039224152446159813681255751398494030158908912839039690682371596762282654375590561603002045727456152794596519182500713348715654510175277234485087001667162208813471455957733125187680564852910540739280222112003286278105640243980038070190569773965297877909880031620066898403721551962433429799281009560861602014910881911509793792900369449912062176537748237195532458063615013009808650442425293478356985149428846338401965086282619268181813314535227102216178688563979618042557270940196904195278221897237115760460016399090888725718251046884283461891318120296964133489317600548046104950927989751763111474022642196757645198488724532400325330251824830774912325256688475616954239348897784619157579442277085582057854100616348798261398555091924933763441969386470241543432823282768456841426994383723540254093937307380463434382820719655314032671584701694148331391499674109081253099843163120731085050169063293191018211053955855670398241962916952076571999272307176373081364238940148232626547055090384196166395745836874762673525255811990719183623735843687183430590922179954499692223300342870822693305654467683677675587796083757183281068255595685431680457476896844792012444397487470057375724574087492178275642473325859338271836011855063727116823814246245890459076029692142808180577856018865526909992792215471270895924017947650784451441464551717272454847694160766247832606573541389446198858375674984767805369839295763266022647239920413652162373636146664032315518541515481118581084433985515043673480709801630625247510197150466954597491414101130866168163686042103388074565199493245861160487111648627998380248125394189901363772731113383426677853259232453334485375966471620833853741226355530893744390195154157567994245323803340830721684199478996812426888461659706083339733717714436498679876718797251261506319728855406319151261038649620313740051544134572104490446705194515692273936673249768573916031054311481689222515925766878095346204881819135120128416258147210278096597999194416034438418232623144808167321891237994659746944737199473447546144729069858854201016252306419680597237228423373245114065402837552630397078426980459732101949345700252505595946981454221070283690676511133800827197043045192478092511785627291035262791697425806840262730758419021462844091789844256162986739091005370029788550698582319092885544099345771750787849254791713785432263146556661535870211691604317209842652323139660654889308538301968340192413686714206972763367197581477872361433017261255520558300247566655717115576955972073111366164764921241000743253672111718190269864734965813010136711373222930768214698233095862601755272167258424775944321583448325166771795381374496444065673813832664575174490574800465056840211185898270646002549842229320727498220697476980622608266011096184855693521180662292994038015726101038428296088987460656304679850229299020929193246177160616038480142250886912373424858644173126718474663451214908085532127581189474825178594017584472291425938199664790339087510366666154164686547007202202254597534809842350136484857494788554745921337509637678216542791413547467006281276744222299118827998135726907378546909110155681042971730577884247638537402679741523709462463943460512163924514821050797603268598660940087323415642353566766637531227634801010770454890510324057956596674130831157927974809669543472607247410692015339209093345827774473396165009357524711241707506350320886771741219349514666763871263737284611604087706301583760011153364921219020331806850032466637922173797926804663637619558362047195745588172551120008041991146136339555201130039423915975356674113670223255190193417645573146948220222522954833329774556051373077425177097744465980760759454660659310312734871555326438908338370277382207431456894458643717541210660493377454249047001490395946574594377123789728005842939621055267503956632149237672981406635006120236079359507250026118822988170244093230606654009722982433537652437799415918514933904172250146997425335378050436214109357723549008818690739026951401669721483626167233238511176389727375572281168991998039957293746032217281928453409332584411696304062383003542688742902118242985645124579520734798462734619510455242561373629943301498393729111087052996951918353365053484424284804631047652208342085936517309658449613028583365481954359818675622029416138432116325768598256296720182890678112418686878459731338714041872970071191986770129310629309694989935481392187592880483984513874075864302765615714733518354407350625531234366496005310914881303238446265204351362902626593330681205115888510435856994564993886957070611192357275711029419692899418765543688425692806386143513031063844433431339619697973356152324266641706639024036236559357494425103835682493854306636956562838134975783190902427704990944514111124123020604342232889259749143823157590798442351778454112872425949353333098571097875538683981754825212175181030821817650515556345242994845390457756267446578551759148916225117807053288117045974059759864583008005610322332538430075098113431012045083319042286546858779944012296561656389081595922394034392226001019722176573621711635990257575290003386602274925942193559612947551851369939324969278663506523882676894116763890898231461909596833861231185867149575727057568639974542711303659181838471780818084175201006556621304763267524946682059974639368806499907641342580893082040902363238351783063221761720643363201104034409940915840514687832626047756804071261548426034683388026809404479308919373423903638644025492448115739076316802664679967901755671870641363324028870508745716587139591642925361440259784029087134377444175895665581130737629688934752717371131377900031008272938712248798691412428008450272512254635272199201876242350802784479678433702368073614399285904811111254193110135095931272766112488895468919453556362187932997488458678348144862698047039900916289528836891137461673156170241004515775700160377837033957253926135405325011465741922480121824316985303536394598857504113262224005410970519491629257437928191687620492675684777486034513839694679909435305586150042794448311206309059344324700093753671005604492655603472747780790783639504518762448392697987313535284348463888133230439792774802201529619235548600047342730950786780625307673643332282419613242705655779452266065695016189262562694823800569503364915047116242857968968290896905836375827828389289552036322393096042046228781063765811178274276253234050556458534328739368288105558230201554434025666056119916083312452763767493832195233495631786258422134166574826288774471793387032908362503995945159111325505050600405519331067854022140139289307747103178334105594829183713076924569795220641402279584670586885775784687252894700750851850045306875707839746663845073601953573707378535670036258558206673724333862383506635732352725502987473715710495782761939356350167592836742308538385735127612882617320094878087312978109940137208753218796217675072343104204098300543075454308934756099996705300626008939587539803004781681712719509393419106833179242945159543851121090917226732183211816227957059544782253612682950954862217231236316650725721863453174107239765038264726120658627233900281950908857409600576878745913537314615158976810289446734608601099736780315612915571892379694137835123162740751694569490868054417875979200365546926344461817737322716700344426677604609492481205879706465849735288079241531563932434412578917793572590178637582569380634250443054588279581374107560228758444781096542765176706222370697241979180215229145483395625622846078386629266810605263766773584382487337825864288501212332924720709607596068275605802893569806800904247794144805224614080192982744535914261300673153997422039808044537501195397261944848449519911402819066003262802697095448716577923187991552650311232355363968668453024301596197349226235227432305360422337560641777731623856071805040559182350894142161260438937320034975326339693176839639740834087614896605346765002018018095017901524757381590514466840423320462519585964796028953155907754720418751680422104882739795248273749674258822122908418426732735405062974739562518609784580701322766115173325159280125006610307845655227933906611955467698467069311445434165385872999911772553407583626730720598192318641581968334407756173587601158541062885902514859706630256627278188193432044354405942641747287444638497088753892436548269542567705195500503048573967192593691831322499523829039519078750074774192883412833931514360545655499274003400051475286011764913688197540583518130106428191854277239798889115565442061329521483403974655953746931767971260593262273578893694395281403715549812562291836028970988448351999590927247614292738476113427394270764659658609967512305032437609252837453544759855871927974513545604092844631238388919297638722450948694664331645858611708788407259566344648877283898144806975933463489209208474793366411476916948304375959983029844851046697116761180315756704307486831913501510866268148110806626764448818763734119104630148643395133316943864867191253051197712222605129272066288828365146022194470819695463197824818062306429591934380319107075672891130341666939068376651437334009829176917783350235113772378070080134493751248050500732197381238516250632081049666953651739286885813977490771907824529794195616886972231675210450667137919208653893674998631486641017004445762995894532195598663958091794185105600868613728352055446420332754284596042843329042543986132359098896161049110403705381295507746816387557681316299190250815702719076490775784360216977227904172832152483111546737798675348633009709840718852917729363837896867045449380220171574243059909227766330242974417045007458994475150076574278290259389637763493531594783200225424326725184230050688202082549721292140563372558158112710474157018538931782939878771279827488656715046322466438555534848878687664135561276104858242058918651972343533639572360994808168173974031190309304510004396180691234477085551492472966785089521986109016552489835770049619203738616558373631326523459824531995105916058379000397996951777069795246952298367607431499008548564143327220034989033840428531242112340210049816242918589242224349575360808260306762401546957880647296192668452751116009590537854831636712454848677882017252054639855865003582350020215085164236635007877607151985614525626495159105550747727853798154063271681951117541022889298378222545336756651902512168230169181983942598999759411769587521509279463766196336087192509444685902213621857104072204996638635871299053055527028410467726202127446674545215457723708236444533570645225149756787051719480050080256782460781818548758389225888164176204903611290431281674832076693485228577606793484645865766909520661008787906430168167533916211520568108446789415912337414636821138833757732614027462466645150989210440638180830560804013701008907417193766295844421691227908932831982677233321279200768091661026838723843245442068679756039482673658206734515504267630881815855803931916173275442955764365162015166446685575937259409711518783692173299938415788276602267092529147461823418663672193112269842360868545204188312801997803348787565882710587023709613027479913234822581376961217046227422496101673375478801063408551486622869956915271626335017898033982736448774282315381482900134325678883228760716511011595871871450105783476297528874339274581827686000452775717724788020989656438529423881738799918747129758741165413323915565108908775257686286616807192109034326503014635427492044749312465201473231975770361204501174793986282152535497202671790895051950859097956215389121805648789967857306884996390327781322940152073050520209607654688325251752641013550651450298021343533658755591616836749428944121480486599822561119879720866930212849950166479523817064956427351552584684628920014188138574351067080680393400649398027820408450155974311129777968023582204399718918274081952024523016175994797082805860032889288674106247132869094694668439042012057741066994621572385110915692375927855868449397736068800192293491471758016316525474727285404111782500315404941649532114745075496654802310185518447420493368214986786738789249575147069024662390473966302006615781093579204636277135039469784343591741426437780311902195475226920895479688782548564570713556669850232754612398823027868901317573219171678493016365013895529131590117422489607374946020294851279855924507737935690813338697470374157396558258857374134903582781434074625542355164396890460779583866499664944507475657969935149351359732001330337208116628916765098694807294403299176129072301114046589113824272726329685176094284187939802605239565406645933007896574157669708671920929452539315527437352828004823457509144853354240491820583021173669376049738422721591348355204042576169928064285471401936855614110276582808570403423258758656946500920230849830826784327277486927795504066111004359764768678653849550272255885422498613657363173961480998936084740971764954715433406237073265869752764592133742971412420705112256449499079144192444832839379138042063623800297002820623931807561922648539739493308325197087313845811985701710024913652522719868408318404784693642902511129275176699398862034387891751726757221744214538576110028348743219052433329399280948839061529406411018793753941134303171916852635531673529853639867761635066119682247234864034096810385850460672960147613107402400742653402436803792106844615341970808088122076807110643890588634215785282582287743675470140831003113842985349352824935850403623459239266883114480775467105910694065472373465877894192487323643702402024017517597046829540255079677309844431798635413464595390227657432035188431115597546352330452355055292850636311524081176784645471413279813406592746732083545282276634305953054734309381750377872317646489096491044255879694041170527766297023256952463671775845878822028460530530546618172209655098183967544401193567027827210833556064466575228098058628703330757873821082112921021038961652312284879203280376653872019582051856182501442409628366098463322528411015741736148823414602873774984914984590462988903284925608395739914059102412068455762480345904723595368839274619006353006025286844345466005785745687250028879740781269950143596964947641493185049625552169444528557452948072324330277365557456104296608835697425307361113031082380003158538736286884921091749180339054828505462786410001316947199894889420953086446502679610071504843926206331171186086120818715732734551370014186768692196704885901036242331516776017271742233050495306158524791962889675944421346235651931221942844071430978955055985886244201736282607350511638463571118784683471588349062334258834361427479382954834126341741688260288873554781665323832154076835909681205488454817189269206203670965360564089875928450815742747862194136716994322945869330495353722967997800487191020347824739491797171976726253884952817305136008922705243085564874504121603355151493103964186380892659519034350197950366229937107061098032834728693454151359671815062976637443099493236957049534959141935272715141873765869451223636710793801152421662449411980044655721259753580463999102393279770838718475347998543603066177468548167430253509114142253635633838835435446860011086384802147927631584793510710622722123289000304008555103460768066519552168656718918133485068069377003906870137625405524668497671014459934961842246898041701860235101964990133778650832343686944378216392021885085996581311126588948291773489736110174739245996397882377084643593256464055446635456450627816507891000060357895847141178811400147045565792468479338985904435609519395598304841190708596839082696964630103312919540548356633470754825597162240957245607899522751374317292043294421457175702111966492732950458924351154224989284182930968016279099901439100065160664654765723303846462439511383067770124161991030939928940398116061674207603382917593065660440087162242294864120927680054840263546046021286431296861760486768545873324590490445815446897600129176759371782877815746344749744317472245714178249593326589599012326316543180978557825775355049571779819902461257772849446353525217033433931343645138304258981514773623679199418168832859918715721722876519947031424824878759641163100819127666028856647310961164666767118936763472129096300869239623420708862933863125561287340653467909741993828816638506027873280048505449182019933787113082949339025444084544528311079067175578158009386753600386035576806398106423575109973318402806850770996662013993830215705749043949115438309056158300113014109913958329032586958376761970744891911326312164098184347256008766211159695133389046258905040210397168875297634115653016376140172417412754156775733851563340968924430140617974975371744256647349345457924696799301102619433763644866753756108769161304361374833047944122595261241514898169980768101848189578003832576338780435311856971995174084040429215732071789387708959315570227427282658161497408013320634338400868902388939183331420045159614008986112156292436416947254313561701811792005595928543918333436945191945143171541350074200639050607167658190582421620289769684409055245447001281886858143549545420556689838786244832075212174109487364741091578604099102585558639401309155175600279765865384075682363973583472336482553352052477229608819305408210532813113048809262550440623955759039194431714152652754080895298657263071634073224395037998714881512624460631281385241074143597940857665785251694389927465562180588692066232504493702921288512745927021376748342927777412718922155406268330082860090179218753829486291501624540724777886699889007098050569250698581837390135076394365418723293031183658168633364477932900707857451061139914809110997127929438493913670158424189691093862380272576452166781402236132290468097724877826864188122877993432976707163870569511990189632309245899990217975713134517425936032513690208839586085467504777322929062846481720319507281491180095950512581344757157055467848443623776914819179984052906677154792911742669334885856708813947344848621438111159547544985280405742250695146472008424624472299321579226467217881452064820830276936119217385236785674096279108523422956090632666710480288192263713909073768444809318444989699293106036870095308727241026213678870697269856973400228036350475523688004955869735903902069193128307071061791355676742158772575982219129431864574547720513289458782737577521030711942554517528858363344593580055240089312099188257065548663923144808623744145953055900306580952924404261767525420677103355368495524654643577010178979641631303867495239610828903257724489918622996519842327827499595893408310312932676610272410807379546281880763426986176170331009346800830651834771328705425499623260325011619282730212993493413979963426151264850634734832759136317868247289444932146606184796505730406718748284151914741684169089722956160670072819776610831141061869274357335535646272541437940981346383228624336413347897889091264153187304060531724773810353708266941065444062266129376623363259061383819763194013039898558209482095391860248199098966486271356649875701497953400676447858682049107627096977570549150879619769194413901594125683267942639579018278254556896996803223178158977822565761387167701321480211552727673111734165311892203845147369902316477647593880601607553748338232854582595062910239360016544735394298287668207371219275299907369744081134237202013142340450525931697277559058565700313202246547908665758345126654568263055461931475471873912792397211846921778376200632624668145632249687765602801045500696828152865754259823483400926471012832843064302569765264469413502706214583191104917931941434930177034870263334601687102918360837412532758776315402230395628877684472328030214298729494647493950314649180413351420239388152487593737159283832660035406428953541698506199223530382921861048691825526902557498893197784720619919805017972262247637181445979641371384620798209083958821187048015563185208134305168523741584217478145801156305831176787708977094256915360787809113628435482402282839456580419522013031197722796595983884093635835590118574270448266505634384216253604983408543890402854304926899306613530295624400202826734367287192620794029735061796925410129175376266082539682218062164181246217311896733474309422088767060630546716996314182155902924351378436435063226209312068014316916384978101227107150216792472056263468706739088756753944244827083825087882653565581974416635778492417631881483621644122223236354993894299078409216509961123532512011031423383550654938890927596110536939808302386103713047566762605558309278494357851978563905347432674505604909407708591886510655453008198264452528174087746547899161511634875393067419302334275836504964156863538834492970269883021283850750117307225319474121886030606608665654771424490261810915095583074276082948581103520110703303058709257951235338922157247424785671676788358973767617721175130586934335536764903674373881704440543698738593926649447153503815259632505530020490676462445852260521393121962997057825503270457798044858956070209902153446695370684284521782144523866710469408107506167317478569718979427878871605283450429022122439834339069476764641314581807048184216581860366937640989433649381426799919717981523351084157064761650276045386329995224430338938448698694879649254150996947664654689769216486142392356827531850965408813353323603150184543091811589795300960882380182295483646650730834615875373909467531125542610804096592752714562722552735012176578243220128221736845401883409112563696058674173544188303029104229540931213916325166527162812140200393485246292677025335567801321211000746875104927292150677332824634054330514641101694580152392810648716511937484962847145205922860221643092270732911314850551462608765491036968970857811251399477489383288426598056121218316115303041915518697722069640705170655830745429556802055860647919856113720832021397337158971801009341952992408631804186229969441590014844534898620679645053077361183991361144007305930420574967863953731729127783584821562914800308429891763640342582197758590998861542291506488185489391946492442442707346065366282411043806874634642445248921727008002698896840097704990687906189943490599879123299393168654297787340536374108604116821223280321443018450796681914202371152463948220177093142729884554336272986473983606761973552064654414860620658273116315057177242088765562487222682926660203714851121462441496499951520297356963468957934911848613873235673727236286722956930702227282618936242091446834342646800266077199502216509365191242991298909496734886916099755708415385632669799928723106696812003873504357001390292512455612525900332219730742628557709051926829142078160159206846851894960268032416450232179784549350036868531120074399878675353188044734785139543177396060055361114406353642161812602126386573094690593255906397219492038056287678828743091909615406869152123189362789249870124538829074308381607486273896787745378236370946788911603417540455089169754059227394049266623912040646855819111208987613022144456972568625452950130411217199809106691154157468748584959986619908398378171263310681533641332040836168589505925150168276847524016347344155357829189499213859109112248318187172194868838657130404829477742444060109969015638352378276129095967481510722582918132998287427054987359677484220856206752067159942180911885102146438815360796234541509213403430061299786868257960293849765918712706805152707141861960573903188851282433872683766410207671757126610927458223352290512994852828161359254699066916018502759401681624498230386088013824249883069963917623093961348545994517800671078225519324205087390126795497844015698988750791231652774721289479153173128457969061288370019751895109166908506798567605165873074799841445684924921279790288124241008840884778373159193613204548263035674749277565413855998730321590540762951436378852229866981851496708348605274465264498176375321102923062590368635856799489149248808960412651107338909663443593384412495832698268242760102098965945460477365239871180175186513673393394494426767754232119108230942372896868022034743959324862376943741086660282017476556319495108722588920221524980324583927172427958667737838065801661372929777118446650250115258124073070963018040694074965568499308726304218300157041201379224567873194025821310945461093699749222618583746519732322036812782167978548254038535799586852096711956323580355674470587232686279282060364871793666055944117539018089837790280843442247968708856595271612788363404327608000580450948161376241757342033947798630322367382842571940605835474378389044641540657909999318560812430846353396799172288126378879916003383378858845547198231679388933628377732064114661702595420850885180512900843163071504331075395455419907964650902316442883447406871971893546673564945681235430496129888453760929770893199421463048220766023539824321576162548761284254121061611331336488224541324489754535662653491424082249134020661750072112694306124966341332187855468029459124917217464103818671362151457164950732198489695727687268836431105360442715715428913668157127442833213339763343000508127395671874826350462103931432431997549195809096136562570024320166580709518873058991978706793682952440485342023865275884507762927871463422193015005638045725131759401228561135543685420108182371586901339410613178329297920410991327454105471307174533004723383956546187163445703401855604718138157808981594703684942578682192636363447742822186059642474579472170150025817333302273204738657321534694893877232700555694600647506204148733161156862285269074168809349901746912760692719893850556484002433703265597529368602387426960159164509565088854902089848498876250095069667635938123169779034511780554066734922879806476973399138920735680864052470563221867382478507164461143098095494880924737318007196605892696476743801970268224103288656111365849274866963126807376841336743444843549156947581728533594401006332275230578399387530325507216780079595410679816105128701235325189048159356172170323986252992391411785715560131667449541431362322513430909381171389724401951230821032789265836285024029590494049294153277686423597978387245805939513905679556048902242960073431779282618475193395556459371504687561997579743169015357214406687580868655452485004827357130853173124413579232099358194008478035530266617899903400164500470949101383340177229462992656423345478810460564771403017078618144781116162479625532392440680096901179092285135273147955036450161301300382806788453356339113517314102426784397707124485599392643077445632719090320883935185236603305236997613131733483452682577284960574391671553951585295633300819418422656349976173206683909930722165580285405458697118901221966024066946082942278143215432436576101750205912960184367126183329145345884749623927097658169394040286387467768485985922138207034864983052250484391685775345481955113749471895212461814152399021533658511335253541411165644033399101481716030559606437342868032391003140709411132623263239983969953761922713697350014839858388497144816815171497459079590177449277445111306272842013163584376417920933292431674400554612311429161626397607066356038600656083714043830300413434746398954845945112697033377583290553364122253592752497345534833372325862570963384334203596640897285644317895876135181009427545203740088801072788481889595167231262118912500192087373386133650137343488640425225200177046207266882007044656184738968235564714710782682630045214904324105536355452559184213541968651137397886663097500814256431984740377591458789590609845742607885786320231440257646052463724839202431547042711190031890420403338170009864228643418074777777983442555989308922906974570187202046818294167524913485599606198009894844748916628760419800602597001273656939362975409320859454667562340804615013545821550863207226603893401376730576253406555169815277785599299882419464266516768776119173622270209227833605250770480707590718034363357075638283659681399539076072706818136565759198668375105461152180837811919647554096709582495601782824567273685631218502098047036246417619868271774847822246349032781088546314151737181432979288325624993711562971573739011583631087044860251030049694691425838693706512037704663082421648944335800059686873021485249287953824228610007364203649679148694242547730644728104255087291934196066705256450640960879002440406424731141356609900651467888093279138493846480654610178905627645635564452678797317660085645985904575945045293632732291403406240934385163140252600210208532500280314180983752338963958307623736733425481189342771892693033982841203649517717601003467519208158338293632128206631310891456020148225230455288294429174005143891311827980981984843229029838696282514873944582039109406532801887540772094907478611791577001719038791280637623661744014404520702292452320454057628069657930850203981218378402067202501202667529553130834943534719363417727340636026257960313651197855485669372846404204684892771577804345867761008528960736931441334648737735250159245211976597545908769502060561757819359107740362583576536008089376532813708436943902272298653222182884374001388258111629715534575674032149860975542868865798743690094970509798609377027835722338833145398049398921017143358261896740031225279973033645710616072849682640266823477045583015458557482717137243584709948613726587130254940244957385588996605353709033892511454055581245692941378882716519900043761079672572805998748204798956785593885849948346965194930897814997277634733058570717902709356822757630639304970229663395528763379913078585931420781133511143201210260198730421670626014357584117977079045808380884980881666261853588355924200630530246434628992308203070806494107304156759771007752398558686759457317447670945568426890385311284949880181447745665050961489899151762992416428780004741385080452032953053918409768994631996955912786769493195927336620543091812055669246215274078665143235265920707086787955864168604527753575020748767143337706011912940315857431076777779521359026130808289832488394832094998845683076724175929943034020943993227082754835738850741991713694004987985861942344627960841444735665203792829531701633511815302931272302543562910554586395777780221165886661126933574072944361455749056372007128254481135578340290160485176052432969813550274714705263542935264813662388695848981951679047612474744680084772588713945527367108878475084256882598396368306676476645133082342995384063714939655126025964126916639553294222162779760787495529174856884218248637463247477832449298323544025715676079286742595284943389896764343657548230757547840335036965376873654980223987801192035440491288268359419539718436472554090531421055666320732046388483827683792610550038057395379402151364136624967493537324104404348623823362492049535442857905306545277265072203465929044320220171632423583137835125210957641527412446577626167543609470974335640076904143622180682993551510913855657373411948903218456220443877152700482110127612081407824526498863610383265084808525295149522635542646067184454304265338266686100665577169517144295655590542368193393871753203864115522428847408796387265599650354531601787284299590624897569431465725329799565644275381025956667255876113030863545950868484208170230903776010731371062342933780745475082378560549479876902139056655858928600919904560260320637827290761553970383110180084490112148119277796748391027288205755978205350883461500219034837657646311056840142504210637833165097909347259499426617045207232691017186806893159895008062399758694838970524161223017172894039046699849427213392956812616100465090284562126757394143927950319586502350481104716856357835404264857212754026388128719462092038132546481161703135867671064365876605516551331133170227182321568773621958482168564652846069706619054395401406510630973336513811963331659490303921642708535422804979802671491189563642517489134412142636155478089214528367082216940259871126321143885299391696304804817892962988201123807490130529424929480161143533023900806706572137816797198568613029030129939944512498469010019891936059827916973051475943464960288332896966081505634505660937812923613349058578055094564210353090736019584463712165073198201564242201326845668774183233102473192186851564341203271703057306607851753850970691717079172528551174362787130160095220892024240503057564021537273695926679974781070727937239123557770934682847560107630127913119953917628186159430382077839824326173196631333620637934967687508952402364246923190454167386235836048283743927886654775948590289204020193959377065673211949099104335285517987140350203076055782019148388288094649648208424176699245675831226247807039055765314126326024292243620371953291855471809159644318568520578823501030910761280604457044251479975896088802812599786238774354965990492967322084497244345824350368978036518490995121422940156691745341683830903528477964306760861159976367872049550579563651669383452102120571246718902363583790833911908020689959689699018812232185525286934857365188863016045294102817973608068954952403606648894468348535737117060799430547192164875943131412697595251661025229095753755095093371854490007290767612634676529166464558037153306020553474162055566838087233101145670608219713601991166960117726535124144051093620360100175840533446898756534900244758018499028511290560362815437279676288312381657743751766245640457837049648569090428184674143410766075498411465742153343796282523773935177587703994255213181690173990186164214135439277973347087659736948171010331818637689272837636602301920591979295917914822441639403180414779002828571251776448410593156446753633092415797021262648130428083893377067239822865434173173648142456296618079313695325091128754694980155031799451669122841384464630874102798782095587734617666779332006361614129983611238785269844967622494946016222419848188284417597250896504323883882677621153869449072231408003864096674795565960336586550083450157466810037154981215455917708285526905878274626801895484098548064776732259308336464326667895198132303438478055425711893324488033710276608066426197680004014576819261412342142109083788260348803987158967469186812759503541904068967278139513219884211832561094874735276486643671335936837371907167136153442892072527305707780561606591615442358910784646554736956343970737221781859123010944369231395220301011367407345705952613302936743793212040615997089068120350786235412780541682658235374259385696643576271097354086523033339574924977199534666256942812121192667488866525631516970660724002193962668428251544756149635793336584523772409968735795322759190097974155172133484533357868142287399385190209367827402155999142045644643838160009990650537188148493816086550357227064177438662975167896665549998788957217902623090845448064651856930925569645317224108945164542679676181972883295841393513384459604167285457399141508049594466135343984501427618054220965984867109944082508151323925213606951062673373679223322142599523022293640904766459615450559484204881311441317204646926704975974905993511692043902760515744667739687080324780406343777841672502198884943540982821160007277291505075986936568472201694104618944458261855116004154945106281588724851403451900555634666152447374960766113577874837400388629388488610195028128078179274503495840575292845298389091576491324731010563331478134640265046262915675377909213724782897003196325968912513302152465612054358376226860928203077741687004590435263581749463672455178978493175067539046404160336384724054649807500393002457661071466060571949510914024823273526691221496016070897220722054628810038730762296890621526297111428927346339214378575838167995709651297512128824707622937565721348906236186014189959500029393433011746330033297290783402638252783796053000047355927546848718929972065613653375153747792196249551796922008557314794457428822592422876777321288598065370465402461993872964993594356323021311084824249501800675718939861189726218243077831783344585703611816094139763446516272565828861687821301342558907381840573422275279094401507963350696306831585842595975834413393166679973048051471042051621356217540904877733022739698065649590094569569853658432083562061593452925424189291617305222097935246571227066400541353921262095374160702598813126795666746170932371740523629631960893652984442507430228049766416403828292571371636030617625967249957176153695852486644931720109608534572342362545038544414412716384767262833330818958559364760061635249859063288744503255113776818130533466466995015477493242098568659350490106211412991417730998045997886539985559972088652729738821650877480019866860316305612301144493319357840763341833138597727323452702126526577296264884620440503237750927026440915992126524862677165996591324571541392540015381169966140144979220598528654631198814587419187337551855095811871019692417664292423893754945163159477245311019841450800876155626440788217209351125934261844683035210737940004183828936058544070651726449168857872854526507281049117224129415223468484489897349653315569393268554021166559449075153103970832462344595701968564326756803854451935868733514968195976960082012537990084001054633523364189127960544687635703710651413568371551244836184919250949941414462463217845967667191164877674448959946443158395848718188466274202784418999288032751244966696486793458941329860233034829288762606371364458073713401017269924003140999628987593282399732487871382265254741903488221774981954557079637800427801458791944118907707143580110302662454293625150543461651519860793423856239066455154590868997009872757833856476910334686388994289636191695331383106351444319469299789521504273430274505489128224046567516837384091737414843731819711882264119670295140010484497368688360489262885407453712460157846887947781317083920277018500839599401350787510645356146154845035346787490153402751409018346456754197604548330869216939024898067509229922940715506923777878266699123015899093808133728505552990599347167842350786739058036553895201811147715527516138372665668705503251456831582959065357006080657269902272143379149237524221958255515527390476641515242308413093279355619405005324441453950610949163270387153037015281008875408093329479098659178396540897411919871437341136512716438240524415842887697571497711414714279508295887029927924683321337051526756439423113502628776890344646636321844459217157587924113199632987541312018325222678696789964132934113176366538896832051191636223996373640065062421869198223064419813515321973198591015636256986218174854708888378220216171014912432492165323865576908527472547859682981249480686066444493519183037483665508175542257335268514038987865030070402899334381972301961473408648283476126073019822268614411798984367558389159008469991314054138319391816564308843497882991517174297486490963838967343065171217360275453757834311352172150182695929149322787473742572457213602566263841389526262793021300099661963003232522013138218844822215385253127676763048551870068314684039926818548765384056384831921002472231916610091343950767855513837048214284915101698975339078975632339921778903880476336813748465168922635716230718406415663249241086692396760121601081445609232133742914578448806124786377388264102086180249513057338836941585087823197098151586711709517388028679580151067880449339024806890990529195328446696828825455292078708090501661485367533081336907004801338828585461654064133202506938355963174243658840647261575760099347841140840629982366482357485543533590505361262742820018784805295304476986322636627829632741637011531118234081786739876610728127325778513921138076815418944404176329463049006186478075989126428325729987352871612774183368051756379419524402321288854911774150653111681836226989531900495922925083762608050033174333856378486749582231058631889407398076144969201791751393353298858853433644997913001657128680999951557636883579690344998472342604194318599122046582749564413763677702161143127001434771612016464832132927118257132879105841357861931189374595323631023912708890139129091665271923774586864170364801203295328751612012917060959270907773561674019391174412447124601417849679728249366145899072550082434997089096809636416891569620898451925626719343047171456304432399815568869354337262302614980035283716651359121693178382309796485222062854188473486939359438432529987537651192492335099196668931068393430992917742911260879728304331663875840237022011217239456114473365412763340270584541778577485248631649999170485476948432053120929273998661075263131976433765380295221416374236023722185067791138872580576777554374253574423899796335819714032277935613974470711946114165176151512388236279056488635894726860573344797283092570943913779516563058538904168168987692580836506882500936119261078911242709881222693468531985170663717420468096376655728936417132493864433405288735279025508689950937615120464984509308482094646064177940775927273518750614934528181767517108450236520442367768151326743193251095192005876749184930277695596540981225396357711694671126060236069439457213648076464990166378437484109735730098749733872155726959760331137128831583803062490323833048619521149826235866733363594360815330962043523180699058672531667967198977573967198505633203916276929612784504325093027849365575704663665005042353807000210433790543654526769156321162307081538667932875280399181022287966754927414138146006565485087779489944785505088949148052882658768844456627293908196144006839830805240372569506411438993318116637701630751930445002156616091239778765007387433986121377676316379949916035800294253941509361182877925648901997063611511833437732287805137817006854618939770780027545047057465744096115186501688721678158080161854864108089863222334099124749225808111853269987957362030363601202486339705294671240192398688862699835431092004562279169984416988321201809559455053488532617542549536385150631189625309217665291658243159004583496939706876586542432819456476478537355251530689891097966688781002569839068711319214254198866419286668754537724431761446354156657628714055353642878518017662196471266899624319482731009397417104259055243749687333036596872146018899966928025823050002504947431957887361774398118194129480046029505427368669231007938335527797500383591562081647286299516181415118243048649558704764203871577064527587236770808180590408423523775775754008846877561116658139251193567319094020961428901109648995715039720715905042478578296419139818646456980690038836467983679810123769463228883609158544301049426148760350379903441776859995675993305022532347652546889955258062893178117218231637950877845934372878641514463873034437300982480492495540033223434378058884644265651671117254089024251656807434576029571481282240947846055854321075345638218480483756258915751706013714681964216897177605495301992469530239019961482626017062848187963579912396970015944414686775318564583127254717439445008216298283049375695975213397439120310652126169622928117872149914975372547212930687038508756506150275226420337304121616234963978809943527080416693322721835932242791116573630925466496712499296143990750000976357102050913521721026748783818004596833106999955907782554648912836743394515824781528057461034151134356381056637703548798094032652665484582486845829067556435863245918075346077580169583997580648813770434341301059688439299179317417474286712514331325517759566739120611354673648311519793542086154722283275856040177338917321114186236520276449176308259943093916713016035555066396640063769917744823839840452727764172011229122906118559512750665064983546029610296574754375906955550751018593507588378946923408088442421040443517845101844946977660224325727576337213826673283184851041913722572799003023019519881457021217165722765189190273755803239808560285417910869633038050283058254155207922154675509988166071263796669062669622288041052194375553599347863223933308807429440316363392974318457429479645304848126672429605547789372416592547542572729481830358524079897060138339019218816473115578505264328106710783042538278625507357514417809437945152087696441803929450533710695800288060095926155424042953849392236692825186545787154155054376817216194941624398023669701764585168224184823494985612261220525940694686843355828800042360426716492051983003040063908216049484182231793780018789714732654139165969414662854460720116633852755083190003281934916500791575742541572642210731921314240334532607660005408832422430395364285170101907195968996222168572420582700804488458661600852468547117664403374541716972573166435712993493887181992917594663181328648661847971944939975673768896889421874125051812865226543689028478952394531890759781837842937386927112332452240270485501136807130149912753906376567761950408247294577951614725178334058293631438937472774496789651364811407002313274619898292467466885589843355545576042775737627609120580484802719998495539526723426269717512224621696901278008109844442553591517508360950391542809560322940245012534448001359071329437426440765715671941413957919227136541009016170299103199865705258409257998434141590790940476127073830478178955109473090662575049936351422786265074676659604091872737225477947297521215673568572609788566464575410138193018478212336515699772263615169997116230814735386874455953454013866559999562536246834629631683409797550456405010277261083787851820349370533279213894340837041728605351627431809719641851581334638617864058085289932616267479202822900779806148737877411733583027613120796025607848818904686228962784390204998370368536881027711277649164807893994443904092507590483328908728324142449335236463081679818407101984769366305538954028736744903373984749075859503560607200358784504301688110214426498847297177449594105845200382301253166078708859906630371280412152890785515342213121547113947843863137802569372757622158576792891521263000669716993847263443082846306827831953212479757976403014368143734615264691989502103421817625936597845326676025066744884671246096686617300970662524501769227885205690673590084316041245928474805668946978182767794755884701037881345716318817494428998929871672786857254665536773728311244461767304087523506505439172831961983050563809001407118907712213292090837662204930496794578667884181003586373834270913535280939425518198079349785464480249642736866843355216708089658368204954333674108689934436229704144434396109886127019621236168294238935804471970209738919920823023231464235056710649911360357731956388471918197698807100580670387057250153019061535855590146412669669192362905950385486873376121913721744271446155552674522825740005803470748350308148551071539938916838373110927502058170195123131177677851844877768726804213939286034213238995818513277666936559818064557155854038012159297126776864384285371888091790995730806801022541165164298547985978012005303253225752499741035431088380198432200235756740827330608396642555936595175830516153497134438263679902877179428908266042597494911477071422970252511258606039005296024025458262483257557575612161312795812812156853840855916278057092937246612436720588868157679076930350517895756393400311125929797253577754420056996640220213834735660376916954413189061916061446825181316017660986167723206634974560465097288265951275397273336869417550848721788938864061839846003716868968509185229834465775516415629814905434676268421144524839941312303852580518486801957088922618832522355364368736458347914690356787225982557597559602168145222994919737926897880657277499602061831236191259842299974459179319190700446995540584360693267316708926126170133984267188893421249875569902430595059536766540275330755030949068933593376555732175383356648904107287803731742673096181407451562072125983147245748301211066094797879629490438133242706116552697331798122204673427121226641381929147327894366091827878882764146146976422205029114448418441381849237635277149146906974336080814504292765761587542170524939409283863732947357784234240779548820953126235340275503505710289039431336814819951535661092447742704699911672378989551639046374983966032427419931139442903905760590741555533250655482151792922547642545087189622131135166993304543120000747182980065063873898926256489054397396866794321270549392327444279957173363591063334844185146953429812808968687408323754080262605943298620562918175441222290018402100592584355705001162633413891116472241032935430679924686315539002795139232997222766212995130994097950530207390559581191512433304040788524971092537241747430138830317970184410857045135768151291536244294925037526161101183732100465189614678269724442617804346498440708181946488570155664729124940018323157474892122721505485676173310551732867555555137275257228070158444430690911684207944852719275167523884694520140584365412441900688299574590054357430805615594652422881931272032923409249033976547146518111314592519057258049351511243668916540226006275545801761174352814314894999161467189352381443368464042767295387167526081339509875962077857277892498559828348232891772081177773383466334241884922791980529683092637567318470970487223370762475836981471774211480432136309414872547814926308746678478952455561005349890788889845921184102235978273731652128019748541341986977054395388749739014574122119048053900855254751776918270607097967712659724884419682338105825994352982382672363173424267155782964601050683100461379274890656030763632598102793661123570622546093038459223095699447464899594352803595728122073590021484674876096284970187989807161708718601131703969843543710968435176649247955442027422470637716000357522942761374328810277374243763384654818232425458586522993701908884747767400268001009673197266849558645446767079878771751353980883983207327701780462499327861888076713309254338928428954733998046782679145981967469019830683989226343929035718573309596628538845031122658632570149517844368139185358392042964337583894923848122175655021035540671058277268875751378435979790444914526917905927035088146718778168140149009915546216901425697803503595872473914976161903348045649916980438948284871605733097080720504665480348755712333122224862473301639986713795127886798643810255425604253579275162413162454955297310236459199301134961429522185316982957104068514803822139888376963907581425519571199359171118755087759625477377513592338703229940139176365803706784400859562468763995140147145722468543401280785856430439394706997121975940645921442901071293191405742653347134164128664510758564588123951140117795508073216367810160373433760157315563492556593937367165619355004588107322335593024482569699655583883053413186676168998085666828277132356870681226254846298210313176077180123905872553472420474152001617666021805882461949664874606456387899631507124429153884042324507560321404776242580365260920519148291010271577459241426287104455972926999565011286066885462748757187665066969779602823041381108469308787168483579092546278034944264254586120459971996080031663034795899289456325531254253443173998536945980583602867451850810533130476475285376287457097777675413077142430023253474040930306942182911681643903916557470032165881100062420718524757974698052765170972745153025094618659937285040116814957781425963612401478096837868885112514712762231791533148704487120579377655030401664297015076738855047738328881787312124600745276123541766657688170101149428992573491012356466763962580651127133964984228245027305669370892373581646095356116434375056502996315167974534093823532899970256271802165624362551179869721624983230956587196829602546680650000467162224023966538241855057306581446063590559554964198201139696528443930157393105206283089149218063428715535370059003504708646096354109788410609656603436535444906170070789958318056145339065047705274315664176097215179194892833648128660460835307188194805344217730423604084119157616446130913675931528639923396387054072054798847957988616996218064420153535317900447652558227276706459363505728780427573485589876829668923357242880868062463248979189584169445790029592863228882938280091603246063532023822312473773678740617940901041381533057610283008848864941592255754380946063025862676989173184615639367995770538251493415304834931224348063333168840269976702447327490618973633454332782808207744026670977817820783120857263445609470855485214265848910184957350318664217482298567340632852564208874664253405339504502310275449342901916000844150398495202153256001639276693664778095841265604290645256806170955852041871281481347434451539374647549634422053892610995494428914636753895787605584248419025831181728850215885837880689893059452153928137465408877753610042351014931084607654329094608679691001884038416225009088883741124483064612377523317654542014868433353152580752667346858217764625547987715800378073715241248408692569070492890066678114027979163653743339514516141110722645617628225991247884909928487298887052980830652459935517374082411336775797272335682680337811635754998347666990823837814554391621551285638557681880448034321321029394216240813548026230882224191231192566120525501613498997753721130333183980963621662471863300454136003383305305793860790211293203288717499514527204506239580054268931734818354080848734709388738861901021362175650259591135144212702101164809309303749416729159362456878600346602240033953522514244915160604299764794242349837796113498665910271782929931246528425630398244060789798697342060395170075318757863061612647145001003208115941696043578824718476564441351338509186208978574621805394727057491475888584634266518241468387985808048248820805502019288776349020535515856240018934643324268636634117403031223423717251943374514014690928714729058901506152389562284615203146170261756675858620951547768283562545064316264374580760714178578002758760804833259675887885318095959658148160080652129817919584398592529518445846927246647707609151685174638564718762214919321562301012713105284450748107002650244641785872435677992213039965218382791418482652816251046147211630479078224202348421762350643914152982300554362570147636995887845014405130574818011867308723759652465204643509343130396665585629392515681038169466662031363943991734489671398298156274119882627235109525122182170475068625339926753779784668099954204214991134354070102205692681999404251665893392849856566734733257949343731185204896148039890749110350313946833407778669368735475491107761126947029878211256476568149156669190955293673205595772792951298209071515773009178847796337430021458036031447789062007715549047648054242705131677668935326694373590972240083159402375838831476354214044086042129957701653672965990204836305777985457706702819058718648306138252752786007587907024358743812118409743929083622398912538931673184265955965954849588145573527311910746917982834574376785884144398093699453232606572599697588242192935879145436934910439042263781767557322498731475695701341604149887297960683857414839097389448234081301095658301659462807191784479826332845553635974512187260332535781792406870010686165062027823681063429287414508137306095489089247445066227733083852681090209081324313151184953359696898903910317086437143284268249064812666240692670421336716047057426553138242434220856097935006501412683886793330241865462230747202532071789380503171991787349112267762189970847823608111600798019560682135626640924595140594191988865960527804596189879889781246044507520439119510874257625350337428534435996680254877211293856191012207429651120888429546855443925190904093459699762322513668449395939143105822005497761651193236335578447738700727516708877018336089731053330616740094074876084857287050254039652206249843878079142123292038061883104817232109300172019148512553721123091515719016127137406536835464034590901751691907737631221262572265866454964495912374961837193955151966504573149034869814045381745736975898227511377456307867235621697668252392452981590467562185285845589145301482226584053595263909853937176619710158783873278238375584724428825363726210818665740744020130772139829403432459845503488984691608935046060460297207524305222505088484098134455999907586813154752220465614576623314045263269653527929237979293739291903748696719646307180607247847473965505170974750966062602342903764684445058224722202132386388557145132347498203499660406621177777297860644341467366211106480533161430705465164829466033764356209291270324090210435102759540397065472997927210896183967315084703036220498402080566869922524659535837374960133141790035370052464560586947767468897309441369101074420202722385751420522547081908963499142194431740411237485172889543080184574091031999461128055643344226228957934051736502953133602831432970249365622011880738379659686693856304036554244937571974210249374057019369451384825698600195321516256897140183511652549600636011031202819953496704616097462082917736572997856457130696516500162277788527383407259835596739708240463152591767380422974317852831564944495450369564011093698558179851150272119159176380048296581307898594703973120653780203227603441629732969801205906682469014302949399525015898904771050802538351571584280517815264264006574584027917036556283411551999177884995168857898088140509686764825608157587168921378526143482401986700859594918343799687274938039243990012408929267645452342219220757841378533424878833535474932468597801974307389167814296105044449662857971986849317044974915506755212791116158380570696819657259481529866721333525808676789995964951596061098889306228869661326312175575758648326279685711415335026472140795023598595852764820313639865562813744761293814847740202250445085912182509562477907388965494526502037078510053115696562202984993747508613619043976299599031311900804319752458094000091455821745452662580527403998131693257001827684217223180514068200502309296617727018544600370433014323452516468664561052172069290603672027333539615770828488823728813588940453449022699453876878465724857819287558201702633487954178253554555754906825006997973950595046134205343092698190572553123033871330291285031922813569639601283853455211594356914097746015819877741238198895866727111427295831082708986392046218034537945562433971856249712714095792596192307818840453555297977742210688936733885548588107223676878485938225154035440994822529059283484780136013500915158114532921442353962987554830680155885316596656339447818622239365806973126128512002422047411433759617769910633391463758052035815470306229527721703514821238530493265705844611319656225452385286064449330918167471272369727202950026266949386760673907235744132686071478130632796252252135834514617531970735280901135431467773945347102400608951781555830757211821507995005588377445473192612925383049981743040230702238909816076153110992888652872560217949886633964206182092131604317680117781542966367350787241918340580597801941364138016285792981832086842444697476095946754659351392719202708606667009644691264257896976005037528190966153756618554580626435229492165790834984379257431971587706468682001818232048689982564563340501384966557640297083448061878669689312163513396687831362351177497941993054822898661904006471543595957922754427777943966726337297466277977535731960843472491811902101192943925903802602648417484447820051685684303466144125006122544118553603669682994806572139535133407886924532705912914982801741121071884134268787888298002107119318415476906323213303566470428019983416257261051670413116849386770027750949884410851369316956444860759317083546767369017773894297315455114592277011103608430557718241212234032928229874439864464019195609230001439499345306044257996938491772397816149451131204204868637916752530634900665239580440289843539255578484580722003320292503465974481326140173373348415220872649858367236488056433128304693053048735390596848977694106624899681646551018255627690892330654374747732515748234642076182693720200111288490837408415666378790491771579162617447253356921102796313636396193338303169096058563478651583641040952185421892539384536519000945682188235121967853491290747273345761908795277007145342964288577789197970051773733189425647467787059514167095015125436325458585059092777722357441369061070592541796579407364489401336846212597403776943629267107864806916569414494764962755479752699750611239290659055560299806182775792321198690451590594249076760144944330214475381107886168394173626824737953620485786673661943401837539950788735707695697363348906096623415203303273664416840915597267506068186919542897295549678007420888087319998422933180164226391830114079597049126719567266193876235342306778374503739921556049731619654537918413623760136660987343740561564616345985238478285233197307913701982509058532692942864012889661556236653366808679676269021933858700947062040850270178945051681786827703193427843070164519313139114857909616968441606620928373208333878676414883913529892584818453086699758841288965867024287556877312359003496164995760829237752268936555707635413408265577248890243575485397525790911342017983026115347451748939422823882771044974234435922820366214729739913674036710121597094308248753447698010669769903141940785020801000638451622035427489532856955258016698714012790945546584468531729766388592232722802392295725516217043953779868091887085119555014834500653542058958817281907159463277706136347609047316518417732001776274966861929830048478422225166252681241060317143651945672834889281095890446951076541036189885348326694340218479313476380613355515202360217636561827113154532531524831850160025503530023509981187456840139784132450412924899510635618839886059399851860662669837430682156089353640803722105692217062106540290334689571523900667996984398197199449488473637992656271379144085545126277376803369248790964745110630943048104744082597529027649301909961828672066800838124770828042534854515494482673351770991586513972074445355962906202978965148227996438228462410049492538096631715849474649687732429417148601177579254648092229392563484734484973447687678972551867684457804193010435883847874498471915754661252774210651983403688768217709856479897496641796375853276088948339937898038693590500388591500418224769262139163222115117073297407572999505921614195341795453956482580695755819141010547408583669763889748544356703808877762253423725236685862528686070111207376644417703475923902205402921183363592076828746819163573443621225846855184911737828149893317329432868786673412770941950614067843095596346611830093772355931550084081882042990111253625495158658798777933201606023025399639582088857852464068389306031488155118818510633928013806882947755338685768700628738187175509620230167890829577299370394812355322511773065141377479705343893796451947762336804445661037728242377464065317471912285508752570124855530349584254775511192310417412608960417645304738448618495987688244554949742237079627425226137859561508152707173552251406092471466287707657592328000063623661781851820146612996897320450670193879122339028019679284857642151753605032428049537412601702757403030534227164186394957860000645995239276691728895103478325073178136744237372764385742521775361860499615778451640562125120075711268692543912705480417413062908526548019648798111143734157554754999170822366196507152797220508969852051364905355472784482972071078145745145684608611157295659631757938864748424633163765649448116161921604628737029040409753672886130662513809093509849143091520136859403499036297931364403312590118696488012087866614120892897810507017559263159328947593335355585396153573748647327788469290051483756269645692713830108719298422825611441326287969308554351482195929480670805922268245906695987049805652022632188600045813384821338380107140119370503199986558912494606613140897994650450291669772328830601951849785565324355223479476176792576544582052660516799447607227055026040253806930549886106509217465565888873017888384128959995965915932279304573808414378982357797812216639154001074121336095716896366700574845895205479261619617366617966892473003181633077684291239817740029380690464820050593056721097047072358576276559715286685740580991153560586905724472242083498594270765145780433987934167957681379636208339039508329344955805953637604854622311362516792364381354247748419480435893321459881942136057929416741226159998361085501672440264935290269294762413425825638723031974350786160646176951012185410632203081716611241488676440338872975765844395220221961007374345414850891687133744267835952705613152125262073869332183059356589306210304929209535538145495116012146419843979390371896439869348784158909220909390704275782190593570943076723702438900534531209670035089619222429881608768643298293971488249604124465132808211248922418833144474926880363423918296667166282241567818396752437966596745811699149281369014502279780135976931386539455472068457777174591385361784792669537103695089637722790612812365479157088869076676890819374934061036841067386005411002627870087470594710658645143919698055970695055650501512339366658905717331336447642130706567573199190393881189382530752108828595161475068094688392457400111354702747869821686212743214976651883003196033345622355344214173681170059576634936762232906918488032373451924349124656653297182384173969198658713331341207105170736834172412344723718672494151084270496155495037955015287382248605384606767203928758686262616984382280560158757866830925122304015998975384892283600959807521594902580747171577353748066900500153498535903697672297104371592109846939120490542624633960855082491823286584393402629382685637152596238947447178336999661802011547882499133236522159566534048570112325827708188621501307157793460027439516892752435518239624083915012347392466865100222767351541533981744380629368188431870219539467457880683873304502669934820474093085095294008870695181863254835482496626070665024995646819410647040712273110042154418554912316340734019618090749872367033899749934392439916588065128366790564169573652160502822448852175736113317429473563577483084783309849295743057306045041284029711489736552333702529333285934154488313740058107262424647751553561189773427429425968401940681333381416107490916404430780527772977009382768736682692808362834677259100328412812893578761188653303799439157109917313087684148298147316743892415070812333046638666526885171522877349580865070902110271308011488070525108616418161525567481710478621940010561280013464710004896008161813633986131437595378357344634700973802239706673331788471217421662379783395050849458405648043005911201841730050224196298113764325550862599366729792121239683362625433079201974575553798577860333993611397314797358588046748266319055503171475107408265754553845260052439117163947985454385464047744527444232082011580589401104109453833092047559831301278034058767338113451784704239620884935829339947629489274926307615195947580863523050039063526975508973719632143202797580886958529773162198359442566894666349865566418285278405307103946038370553195307057814332061654837208763730542151049819639823162239461555401624481922748898899154818161610141291114223327424807105120278497238490440264296807698034403160101365988085642296075406956955713350800535659518884145626531983654599814935470353339657880494761273209004855311359086974714535368901571896984157754811777941076041901914565272888404051882795084900826453601324291522888893797519995599859682889360891127109103099730675706218659729673463984306192842955042921054669160915418280351783236841552181865567963407111243064385515415624897517639771881262098408736098299238363730302750594187706262635737848136886836829333969889277444686969662949968966027691600369860596890471841716000197184123626519979301278741913927227986980227245952294015243220840481753981240082576371360670303344776541140427436996205412514504827002105151741189088254926097747214620553667790075520087998923234653592526127377276954567121544499950148452685432597408757444502355950317588809467867062427950496812231738195319346995561510042092153608326032153069185727225992986003953925473431806464770644415440963085983320989428117389795068274955248706628273280536479247410723546119459442653797874986979596432214495014352061663273608338778957462690088960941621373442638200267657533910341892476105635988817008353964495585219224076981305252173195013237419645342897616581354073313026303028547802248519255207832323745483267963289071256274752461229292964140942485029059474155759927512425085069966347353764294073839182074190916254160972844591625614472721705908293857676713045438433599082616086284671963287516028608040353472085362193749494136655199150853689237351274850742948144519654169382291793153091803782047287223894558772648584565835836888354176105647212556438640151856876957798827517422243471111552623436972117076334504665327247663342378211958791176157833972287470845127988659924518327916414459828021443727018946266803579233337517480641049931852188455068211836085689756325118138750460942419557443263971984310789277524723566722883955273552360662259878859853963287728445468369492367606484412273536829219132455470407442166682067461265670796430120055351599047417085461637336202703865952273806423126218740626890903998167108615021958265006449778173573185052157715160847631314297100682482491391624928925561263847673862182333452283028570138155437476505784656905883948253134199813962957362501919857105808466792364911059290880550683382177183709440626999382691970682447053200579454083518610036611615609450824239865041998731623838357466645452188735902612193453160485833921266637725062085190546236237337328114258166438424988979859667954175920036913004537037196275360687183013764812127410561482448795986351085005487349029844775297575349396655307150551544103909386537416665215918335499738256689326452686208235962140239634097122426826870025339558269322438059983242690845304781419914989311071015716947495557635219458745768629630183899058242012787867557969347231850307446106034839145987949779487113913546290254862822249743894474386826616436068318124885987232687910766162305380086029215833814432845322407462355418799888174723812853596838289500620225246463573161082663603643148563553160504991541441308872154144331745253732106513961197330694878139130968733186136669619394025720049930809999534821942765587811323521877812457183423976468069730697934060813830189077853792276215484664088231264298164212394174569713566615398255554352949817223901452223591925741943146421826647768886677250217123294152289784461629105662854200714538834167814891345667445069291290631913561846915331585581350764875413218594557457701564866526167466208580107002355681687581059596769989019854727064175312884874941390708664208080627694450131967019703355181004171924251364427448521978153703577709617978036554715010064181805027540735836312100758486904203604530637430343887615238289835573728526027901096581135839900820251064150068488603778514517039936269383226188823018995912710008790754166287483223944522850239184867913815692056863543217041633586370353243530386031382451788944252008048530148042326400652099629600966417769376130820806870201308834720999916645580574702972650642485903100718469895310690174322837847571536750984970434834820599312232247519854853545545198084228145074641693251741711660329326677622781908348972275100308089752520503024664935126461278489087411830385877998569663906345052002212393452668657992044238614847572428901051143288838145837001486782283330164072761140369413621157371699856058417354456080336888906925243533810539715931504525920940128868267619578511313238397636156621285764826409723566892206504594883179858641010564381869889428992763148161311411978394851438964020161614470282221756482734200646153016170156730451861843770521270625734225871506289598548861762052296168865652158377842471494798664877070673248179908424974414130307727812217275703938985310766265694827619763328744659604559350180212323136168294691051653679961314965618814230797900281970207530720413774496674530625110784565792463800382738568602245895406143936149940484842869698064832621084643807433365583986880899884715142957010145120549668428966748661018668765129731396283214410268341658603599114389318076256443446092747502825373247224396358231441866189835337323691680869502922048143623720481234723921748226842910666117849435316725923850410537793110490815729580082189041099653740522940462019848205947195654684300768220373283990614679207880313062108074288782674565222795103975301854924501080667143565220340985209717127515883904861311294666733964099243492647162312234605681600440545721462865662561689286997468382163390433176286370809582850819096974176212074055085110018153302081718136717685434872720891726067431810386875499096428742804106528574447831399487497892443435373201883750977953460440052811978526927544248963257416298794288255060763951651083871176646737663875269750883793989032883574021122956354320874374141624949105157682271174177119322329453919740921365908600004762024328188811611636449287155599082998145435840371709565305275679006103858220050257742242925697737322966093854673369294496815432605685823408507390915045923150813226767810636325059586274551489228285654069452221056355802862241676405576952603221833562396373988080142461187550546095550941227200200166732907897800070963848283124462955965450221207433264365718697134514468968889229510802001625680799512184131609833097021782768602448714433613144592320601473497481486913207742459736433949200730885748206722411847926824053304598692754589707213154584154047723222208392080363241272176311628918816433940368693171355826800063517320974505243783052633429820515857292937290651440822520931400383344286009437177696508292941118971208737078409355275475946676077007395829963258388610673745079261804330672514053521161337678960365385798503221845083723457258939744824492032873386027992042012799506284586176929349347486450464919686353383914495693293534991399224536641881006310307109505687734454230964589543614186308762414944474198666983477134053009577978720792914623896263908846392996906393101638336383213195393793042804984875962794959779336483584800378416101863317414981336434273879803025779702183088650364181062215710292820215871814456266435519128923907464494910427359692766523114695665844581811447637737523501285931265925760750556501984335677543209175069011358786716195493655202913909437717332015580807227333191001779316519681542280883705765075988375970217541177380871379853389628968302629816280553011075577589785348238548129828105014962885887182322180488826018274616448790291728418400029367469706652600862828438830881335633580243510577635285933515444380101024499421747818965531884708737815522364407145428295483213118953754081821607486597977762279102308233648436172336602917193399261678828689800578911911569612861137304042229962444456452288117974715366357914615049438121796999117195533929154679858885690828191103147183811299678656514530596798131908004221827090056930448074830083456425150236093637525563831935174270343629268402347764138990390433623518513502639300959664448987760417437860381723420607907143711944475395228435516778885709093405909842628007555002487258306505575112593538963151718260658460012893268297421617913081168782127210392175796983370070556004792659974323649525447559862348447404096171475662882753250917375915460325080960114432704119873159696800796893604075977501803740941714699818850466289826305034062817302823197991255309183628077992511330655577725895805497219375476854503466072184115570530967474247232869920729495417686489051896687507736218429791511575851590669815433469973569518765532300615728199574087984332687865483877037048388679696344710448810366625529586283434384804626781221476425166019764227020362945087987909230689977626220233634117711820153990501730714939961155484037152282685779983851093840045282636757612605639843913529408739455742776484992414146858242913857917756232954020168247866760021021513826664110130042178006234432179195236861776961388050065925090702529001557499487526013723194269628376917390123280026029927806831063027349010110031406707790045792769827931368494516308950918290483029650019089283364988372143961807932087423287680686490992044495073598605289572116995190404083389840835633066438541288900714754386656707085018469537900325716436271571357347225105929586511098406845689715658254557256333555945765777476180201568378523640314978538098315662531858094257851058139046154652480727198329095772958055300883576439354657145791359276746643254483845455827309139861671777995943499455031747714365979668345645423457823495302203379392308962273442866717466798655682537325145377430092237212027531693856659776107823598018863075075604083677127418714589669834570275384870360304258428021277883107135113277277749920464830373404864279022583676007739008365615912219662842690363666029854323536317994514703396394961386871671776305654609188565518443445168903346245846829124143175358657498912475955608960402921553939774464288772795162230612464779308826542357480107178091527740165487104682655357030989813108310430948667539415116316766582814037008668655476438339770427571250447492214229690806227876085444048588139957127475613019026375150738783118851441005371031418316347433675117492320531768258391503423545058602263058687027792432296916175459534404574473997117121192077899158121806247094415506947273514012345502046290677833781762141918901469088070798181006734859396797266934876965238322019108208731369657998137760621433456083913079919949161884261517662011516330133652402686506039217254034345528675180825801046290582083646811073518337297519614561225253713567711887842519940235439622424775173733453533891507262882321321961008440631515479985995215888847115997837510010625972439544429056478372428271127688613087297176674503877844706050498179263263011217932857796302134172905845069384231278574470982819903689333323225245658784864990971750320221672852149988277546583065590159584351618555205489782673613579627957493305220111916108420802369961389004399328350663451816407683899879224132306415886725004798621914872760913836555345671757845474556760412913322446095514831253536112871452107430436355478982136977200927930137261704890828039390999835574082898005613032632804878407025880190853877303188187127307461366420509108749612419017691344997077457528363397832315611035648212470903595368161039384137568833771578279382941354623916270576056022717798353211081825134419902677286104968703506073372089355308640081426599165087223597269462486048366658911303958507510474494726993926452646055226651892497645308072131093520962315760848831138260364791668246800841422358877741046115569322707887932687436128379575768538184074677820984677627367244691118916546554304847971042152397792892067638966358963835664180589442147453962262317532655797252681466311769780129937110982453405229270933003996295137144383195135057317880566639610421225778725280132528384833082997288182507498851831471768420564258524847512955453433867631293546440777340500072199683801405226959470919911895518840537007723165819521053047311491449137585879146562388719464798452652848026896471317271515010401260230712122287922468881136328743346672378205581117942027216479225653704224487763296970129276913150042520225981080099979885590235689043290231478538738724020947448385394177836794323325613093817720501734309796245324951033905554193731155678109600573604690408793506212987488240528497439396469465846777436237028014143003044016617901165797602697905113693090919413004043992505664956242468380203405089480290002637622005786405521562274015538802800346895591754312762186131476052556899895094989323834728790825399842346397579120047011707656479780085662647461192149320181526856763348584378214733117677538206424894580965820041347269571623703837207793565976200522780225182252963200325369276531984459658381037550792834252785825917456435006260843441631129701955375474851856666610908213017688979176081186745294529881571076612860214031901965386239562915131391540587849663072019421858020705480546447754769556787208960159717907361724140611419772765025290138599281353137970925603612068498388821519225181321799809333597821317510704838060219422357710899459174705182470860381957578800281615561611665853316284726372858902442337220872462933270283531749284100443472630417990086941692873722278380802882663780139205329286772928042365659125645148945492893200840060968418317839059349023762050002243391242619182832918010847706957415586736411928012834964582068331157546262339166418139061988522457343683067739836101046423164641331355323522737526644533820300409551032192889761040287882571654340181783887410155412948949210975077746095597715247869128811244829284257197468820488565490956157685128610593526780265614393833585921788673566005965300985365462064254346379106298885738983183543696792192647757803797609915199776315697301911388169677703831361743164453785457007319360521970015173541007668696013054372758816070499877893650174222466174381932691928624293010619842541634604853306131224444100538119042170529502102039492849932802291875208800031824083379536386422378318266935454676378570360640399221330699778381591952595555888781915527331155001317087949016677272842630344949747135658767281439426549205263006190800059109449562185452175790848418298466938419495588120747001060376835634410332054500161516572407201252986049588947079721834259701643847598486582809808690549036772614620215398636294163771793047627218313659680968500291803114107970431138118641849141586975849866022454649276513102872758629386704002130005951781635864407787481178065225685065307135073424589446026834620834580313392145354223387544486303860708727850277777750867762992022240271074324591340040289287209026586544735621084252719222866313141801122028687658119592727128351324215088164501912089966902197373677201815546709893992735421991162731652624506949920028485236634716192101353179446018193273960721248873981575039346181702082230279563933543167655527885029351632734594726579510401149973448237742065875730346360250516156139272689820660483210855423220840720240030913751582541746042105745596153391984589002739715743753802242641556777875930793480424536014455008046344124054408972659399663300799797259212922310941947078384204183075966255394324456096358954142256613673796928542371376474952633755697716260219922673491394272360917846761965872057597033676399659157563639934250587889437668301428916417573850338881007860021862503880088175428204767842725956719604840605712100796561649269169969392085577449942497756211414133332432379515093640966413408084475286141579712425085059258050810646205124572216884820197934411532299155248204859897513010075598847969586764952488027942323124198073887359066664964915113962924488710570456434199781743710931692166476206909405665634791222087667353162014395794445762166386846601655005339479315808774710764764454783961099927234890028514579797443446604405111760455861770084338760531480088536735702115650361045487992840375321759148201882993997086526906455381591739541840830826296942142296036192656880385459991453155319530519391834550185884549349557882374650985608212984240079518041763726731295371159953298713794809681866455468851443625835036662440852558593062441470020188212204642192591723459339896192579016317752923865551976562492371628465685389344727069088244110281325841910775755054815966754311956994397841516332406889407043926608112156186190253032207139064676977326836815066112376928002489683557571372311288425827689287823109567811899669697740948934872414661497397279494126610763694029582362830348242237176331997184323999039812849393985868272446460540716992594084518183571889109435126417684691477909225283783753239560194745349090551016423380781159966344826207141587238135420324049317575753370793509694613482852746513771468342056262363219717296199917086663830438150499887260671726765724838996673949347818640599731199005296600353299413932648526328093008221083677050197128707669900247813008513052729668440606101643782307191363070494220493834196009535099939871351587925219739428061513565643134081615688849017478248578366068004039267599629086309379031115067276719418768824628307518879506897390548979889399988362663176223805421655009734384360758921424204680681022487307387780947877235273901645574306789841755860978059801159655866608180878353193002712597379133589578973340087634431188614869768378811215108771266775723101833251113919851666507968096448532556638417583116694938859216141667456755553823786044244557126333966772146224467415869012956205456527681047363682609789864963005682790737691986315601291614256930647810069891970202265386741626030496339971273667679574289555663140148811846154458200759316788356682670899194556985802409067765427444507985684535490547587810827427720219796600382020997865951969944929335431694916491705544129448209296760925147990322588900495395499572299301806217926211240711016220957855270488860538192842360852957014065767422134831332602634217705437309535701089078073022135498263628528878265586915685634662594731325851956591384689244624458344022770496706653499387235475209097706488170900011063912557187406824704713672257092171222867211191725322046914596922156122975243745550688205617369549406662733252604137044629086544615104425600763291794861451069225887944374815778912508859111341722330315674973819208639722065135201582800869824687653737532334466697837732810111452619599588666501082168815975949566602903527583321493728643587459967647652582086055524473391211712979767298140379890972865069764920322099279240402066292979560833334837097343711038313640741164847600506985201567447227783589996084255788427247353061170516020218645681801484237712858766165911990118688140951609402458068261990511296112127545741192753463822939947534991074859561410795940104716129658891591656799255444422507796929870576970584791430401182545453561117242733713999994326721277193231933913000689026267852300420447759813672847437901286717096517647825594600907601267703866659554509740468485891271332399097293379835865350809726709485316164545307908715735299550751692425027520125482063398833903447828489486253263843703940445054343631202404956819485038629028569337191554779296289884532505765976820764344629468981452443342055804499465858237505365957053622440381842993593544150681350709205774449799905166769053802096217663656068357815873203792310267605286259507765452905795272104204138524615686057656282187475538902520578508007406933729429877374630579256993775040268566158661680407615422161938897946385363383112595824418797097195495224074795953951942297685825139007695483654789933863568806182905679340765197580246742179102503322169643776004412820779904903233081231761123799725721469283312184717521295801191664227393514437669837519984530645787366407773806996529187031231945950041645141202258269724698146148818462890498727283619238127204197791615571313447996875757033935401932546128936025654403122892178220340954344388369354604089544580247901808476297034197962302160294516112476916501860059811641727438266730728952978409244016569577657255557295761302425335479095067619819197014241516659357446039596736185325510610079244346653294418180701214764603012486296399753334724745983433900868516046724022521613626334375200406632342549930842141858826098209436157432408456471082544310188309077262585702511210465516446200720391537464739321529206337979709851707477303806053628389815119695460644201711392956688531188328062643343170171702051702648528131841251634392473071713355495060515867136110105805046978358806115072292612757693952140803029828397043141726570913295082911253431769430807546865513292224276499041740474813410763681949573977464379686518304446566839831848419482441760598638213837823531373045228594983101017622494394053901864942713232427248943202272085052667040161106549298027268862995032014078355006817832661244294733793470870403693394744488364014630143076654888691999519065406311664767819404973010037519857054167252764702308591992273998423414933499839097864034390769224272933766892660493494416947156971554705990421742192588257534259299956598642676845141061238468788065445791771750402776282360633007943758407436694813190183015709126766620798933170017202053954906864094514977409774109437345210942859684717270234064506710071428745863558686782369963390799448807437608835336820312113732445157104041864292587944963777514577235117586608817493878267538776413037795190605040647630268064742690687941447448269351953938097017849673194645289143892223863280101218343141180980750479702438991935727257052706054704728147464744620822245407471416940652069695167600105591770136489713227842017003356643205551146221793313232221711932737347771577886583769699079117113172835374019357198631824447047615448184577025234412484550968128116664970906043227471833668098116783651570046801876817095688932418440736231060256627475747969763747209063548402949173472748730812019505270963758360746254547935295423417127268198133990264190257633736116569738550874413024110469983643222100126772868218094989076236868926338441751885626283212965994121375179698905209247519987894668451205783735845043148908445688161384015880396987292009854086296947132259863231317127321942891413549432335912293724230966015461649969855796276327555457798445440322304090493465934666330885736959602328575018026850212000712714207655565772640798302072919480651293602177611360939113593935308121773628431894417396213554536050024613878796067604080531693002509344182571342161361444011915228953065300777905397200339662894179465964177798355925342228777465640003439352647735178351593305571994715981212503801755954757774595152071390843361001153790490150789070567088184457411450883051229970020996961130971218937285330835942880990492700746796012809697182928394128198960521323361070521443176014995019958953589718336907828313863423685795679656341929304976981520997452887831214597368460756747663606003968791743542138503489532629582054474876924133036611832868911277831754602912791295567600741873322554290824475967304300804589663453378198753699486335053772244515901054165665887069898901375388802432758515141185845435365298749157271886535640826832722511014700909898627167722415287768986226770369839699597828165579408882537183764537402218188411874481338287947196445493757002072346962533601592218202808179726049128292420726712980024237600224648500879889885723158842214694614749102789155465212305942486102726047126981324149381499017673574896094118268050477173013164589468234540907505186166101541070179554175975982804229386271555107777996745912246616384747714601117896485867721918610441753073190603997309812718219106724424419481471152783430392065368122142465502269302065675881276475434385573474263281549277056266006654671184876520726733565473166966217706983364583582683020776633777864748958731255219478599052629324698436382468573872328427778983992573759790403828529778739768466380962417547759148309642991552814516580372824423195752092772658269323059752461245056435575591405340142976750824433474662439858343761487938996414440251411300246886937195215783044869344384073455908669094644813823535320421925347916889980143917862323760175521459465427445917974760636166524018620618884755864873805830893796002947147554901679495904281561842872515852939829836320669197995673894788001995879803482831259925329759910502073507362660254243105132862940349554176399109476329448542904448102689152595895214573201226639910332168000686350486200735703485896106179027766071816770681793663180453823791912595619843885760951802894321579652120565761109398991549688403137754939354085695344990800901270384017262618018204667379599468295436971942325792206474709758952510700203774171942638934649675715427250404693871883572775634448769445950849863887761683550588497002868572692805421291795858131914228380387137282755286830645433314868809215169723787601375527981104596698829177796241097070913703788393045064501245988678589578863709104821652981152058332278081779915608263843346554197603150488841919860848406264900399587816932942706196229745312713653269444151463625697342752416087344026979787900214636269626201203775338836775496915720824154639242413505757494323179537955463238524199308940605113410985187805588409273559116716167018711815535058236609856919392270006468228835899448657522671480046316567521942019661830703452163928231825112778342832895414247217260081014787580302122947515344037127233216708657243418108047795784144265189977886011402027123294823762338268920964111163011032217548508094335350434077628341593003000533913418044642352624003807395109513701115850953473248223743803508935289352165877809760032571212835419531225508204126987603541890077136511086047181941080884311107425363917138988135975319323346515798647750468457586989391963118824114415430357040008264012677795384110666509640790498752217172264156490434959626706563289904578376011368513262468346021348455756462607773521883602166221683273267524660090778680934843387919815646612082484867805064429695846021029304537246334876025996224270099370735871074599684633237610502937874080790673626883143222400263425418349464974943378764251078629404943559708895096801337624024819095581134913297913613799767020614698043501490706733150637876240206623907027183279048028514829560611547406959972561949296683021021193050250622682638808965406298455619793389128419758811358200725743561685767723665936577518536374076870100824867273258270559473587594991527183547659915630391378571672985440402751717388265873849917746309881277693341113336407022766678610507168850450924177681798125076910950909144115833703031224085067230545812454372712593920137937129895049768896410465834850748194540118577023591724690129665114821500743422992828122279978737566992007129628455472834859249657682030788467950647021947309801494977443099497791041466285009066700904219602986633110301100111327823018058898455589663934608753728519074360022842303896215171619564180656270009999560134896928557393262657251636400204079984714123360388867468340872957614697626597150757397051452167403880838542015319849409356208349418084482165184390718645485793541198865262240327191774938527578225038226935970540054945456324866881669370213670549848865275526796375925429531152739433899621680155290688351370329024845825815071276360054835685965429410651704196303896699098713022758534590416511750974861330271136043531703717184168098731418195850315648707721494788546280039262775184566504309126034142218423042101331402856915028903541775090965422814083329824732595632824701886813189069773412240098245720477810212442578679419621797082454947151657388079121305594255798293659101859295214588919897364105748908948877461306386842597756423252686346343967798383912119284815590463257268442980690380184893738786626776014667556930214317529099268057699957897317628916600923519338328859418224344448373374585706226750497682736139292125659038855909391789629362867921956985672207711451676871151703638400990180301892877956685297391770541609614530699375915962278339171127981012984300277489093587489453981173533815768461395084185638045832986728493628692878012754723986638924135282045057803538853648470973275449256800942755965160291034577512451359419321526895090145445952416961136980647081102315333388276662298702841007248866052876037540430218578429642231635313350340680402784441475200826890037863547841565363689567311688395043354563178010166155103643844886149827139560795729139057900864661298244152281347786442264533490158637174488626108777428373375862772081968306963831805881107893895728376778301186999700894336560624571898381501767465512480893494477000837345306194820022438725236049547571173946629136182524460576260094886690256581329311350674437793232025038020543501852994980778105259985304488755072493125506510038857190824854783899326602860337393568736445574675696601191916014388077529876643945135794760714470988893277660530741163115301391104923282193110588097367047432344058908828564002679759435346427421078414906154092962408338791081565789909498815712690236620043280215289589615775222060621457988284049182338365735125431269368037987268684755236920077772138117964924003615902345770034941153406833557382487391313539191475815852762541337589984203618879551380731734622447712358536727905300835514369174708516100914754482240609224557576103986096635678828945500333604333720846556725164894623272786930989509455863098301143787825883212299067132918193976522025724558400814024130932133420950689694190778702026153575802182105123290813528319509157259925550067198796875146302345713152953633128866961298875104615085935633839150702622404505679511688694605110946627672376072375052884555332350474774899801582880457530050460916902159645238303826292106303225851732156752808913584883548548712412653274247165752201579356043381984648837766055270265526784708356010243568608832661178809770313606137790936091130872340772096181023901578532920354712719691056747947044146433121314395609675166261128944405036638819340286420485038072860987919829804873133499004845521940657346541555378014662305783921185114327966512426186044783706656942465109697462111066255726717641719632000060679461544447383009587849363123252352851899857198091600068141919186168389015181248046434719012840007070411738005402484159936710284924075593039634872403013753519911575118044416261522200880897896833332452200044042973126122516176556942460302075359589324020852892492435270739656513885729183164947634488104460321439087648326551672987621999736837094585493934338332588462059401572984464297862778628233290690449232765932924499124046133833969015247585601019682761237203430551089792317528677738782013266845098807180268203922028048492157434242568046730697177121873456085715203567062170083893698275361917197371079407399906036839520612792285497138600225654467398562769675644776992563009495709270131191929824955775763750859423691449068347634546043944371318679563025883826817928975790738675774381973520813126806852841944365315510971335681257482834697901789014318277526180883313639973602829599010000519724377015255864819106123617676411458323693479550647375250340609927897230719508277849700119603131624755510087288521738129185608767747856196063893512409250785806286682155371236246489693259203489219130671347171099770337362895959783509532523598271289649198711044815613010829185812739292211017926948642819683286246929210846438959969288165507695822898733723861578329428488075621932309574063083808914628364138116929229083233675690406787653576163961754266645938024360197471995403483650856887128855292429351867994655684451320866302074899531698788879839089895456546759232060581922617788376612225335473386370967729593023991180556622809264950044987752773346252173326389389494914654038212432180736158453611404602155525975366720223919881050284681073770437723293121597536227505157238764529436348387913528988787905821550111104233584518310227611334335804789714149771525157789848298936164491828979317790326467228749418675453269183640879828266619105953142528663092670701732405950706227386670579287338827184951879760685322806148088186465932879942779746124529540952671249690441046131073909192112396940683518446969930471686617424050519222976752985296684867348368116257663525545752244031843922462332556165225141042359232732018883363608901360504726337496205823706184846895299865267466363021958716136936786724835356109940373813996989004405153889590391032827945728151139758776274744531842930536613637951698172746052088546469232041759114350013503950753484896156924950900207556055754384170290146078181869924923939119438241100257051821388230098035458587811640045530311277179266614743774837366237460202073538403482309687677893623056167893806731785663137163538704715874017289052724912520827168930437398229658837763226587058276813473532994786385827743816547793609856131567793418000201475804245593773783036039563134913576340135030348407399275786595343912755160207530865236538527450378885971248667165003987741926537414501116049507100186493015358275730695530268422875848340321047793053485220954907925735639770275737320455079910158184367980977313035164498978068477009241246589017179499863901523452423144640733146239704547452605043018742129943821257064491507354692970932063802903775911881873901579103827946849262860649355770579275356999844748784544845580050634603101943277182722031250809775029951919768802465896398114153371350684361001131099629825109234007688626817381428582041411060789570114950689430862796526028879535397611684580730435299656271220921968552522884916973449075278234090379343664317568824083192949783543147314493991484494446342896571796553328504009467593996359499073386426656218748107263247872430406290494679202538485915398026608630282068371068192586367561616748830031493430128105299599888061886299723689641652045680607795101009177465730814546919258132731296730255920587165658804203391315397441591728719487570142622214719278911066027507612894427322429136699466592706572510419363102385981754907986994389243889008939346341213828136219471807981114503000204339015792043931255399519222609088999712563092330271429125014403981870500420259608780870813586866490177244473695219446703490650223840969305182593996803942103858321601640076947789192421214895435937440099937964372856130362894311674370894674473797167618208641593168356184240048454270762185606643959788021421643166519009607281746064137684655528891861819603488258520748455566190896931890551159916269087256988217638846374595506473777391415806674076650097783414934842161844038388310937601539388936310631548713459725290483703688341501686075158579902541153195356070770381497122744696096894095305260098081749270092193326742138874489748595826098162781123934793382770561974066637897136621101115062064178327309094386421044341001568487946244696759993524704930849927057311124823975923359898645282770415482776290851650379608150578350982302758742157795977900459206088800435487434735298281470367665784539260478341670459417691748946808253772836216066856869113519452383389089189111091279851458741407650285259067209111152799259142128435543975758998522071759099462414469284632686263402158266024982921158694801076576660549161908778645275866719423683443431434193812335002128977713142500052922497167310777100171685118882299889208472946752106224245534716079912083220472626821596886645081673509616439339924477511462369670308230209426462536749134703407424587665240882619103362519804641137116122739349796447567014545812884270106771962632936917848228627912056184982809090073238861546445788578285840970960477441126591618895177662916625271687217187625165136317089796176464843096986550203832749903690139566167724533477735942841050791076893352387935549818784678123081259581976513263542563940234617028903607081664241775014401517898713394071954068036840143777538230232741686512733144671792770675415259373709342131975970409314814919948898722867822674696519315663052914595713618397495524748019433927949365635114979908435426571310201971443459520117787594580375078746251804995052213989814784595033178625784899977510091836758799219228260550380285078100178544158073124700713812448131990189182879151729748063153541840272497319866760503046989214001220778491865416706288946143739873621697146657403395403546570420713258686633362792832121561488105450732644643989838002417068492199129748009428508166943564929578343441236526169848230319409486334102166069882846231098338701418928078207374832054307495416428963248139509455899337044918261866426541508190058270723588418982809980191510351770638816439664279347043773648026957853681036798665319390376877658266085036871810357283666433650577172278666728793090809972219221888136713093480501052572641573813406411781621048067871430238916681156631072876053694575377847806505850299526911703233303716719601123523444074752681289283558682868402632571605697450019444495170180661810819064410545524662199746055108376658288581298144515267490380226956781150070305237616097616075164743583933410407798055772293477599134331367215978661055073422783711677618319948593027585726139705865847098686679533960946291886780557171136878610078550074388185710641269205096699149289422749742545108502926884893954474822863067499394273403248683744914556473583037878860598475691837004542330128662758579270951067896905333597342936142003288246714880458353144138630797626597404893087110768851232307860793424512201715455801841692164076089577132875645199431380232720750051287556376203397533006053915208115880105429443178555893398246356458310469241582866117884901004634140760949982144654146039283751024735058944073491964954037027224534572201244636870031384833984230918324024901579518659337859928294701598579591968598386859819449054412980974841995536896369963547172061818135855259262329953991693759170924286136642185584676677206230544414885826253705320824543744822903027802706575103800171088178328186514598655832587195546458525341975776978217729236120713336412402816349700143731500885527129175891960828973889802021760821048775450013336131917131976208564149148137964066304065403542908487514460930454287978881572479698005656607995943883648202831603389466790445113655307314233276057871082079267604395353546642253678185026829228847438639303958374009738587014265108634462047051758476054990457272575031508505858568197468429290417067166141331885043846980797356017771048117683664107793967943620268481911773148240899769255512882631452780126438139137569639489110846479984997677906299545449515731787008040712480283337111702642723015442391360206618534063071130828152074975371931468400971062250371959216386582428228940836492726282455960515525235059120784146707605675873673361894111742761679155530171994367568479285326732265780455932978644256669444338925456899171225377298404289632547282555336798903507722310316422225593686622402932897079007749621309571349629289649293878759756447666331001001208538049136577804869477100465384219708755533249565430227984049186231967906253176993147358452802777820588676922324779653239355985991799263382568607931297153065955394878327773888071369814974640506625175143141064669754807888250621080369303014952360247668717017783045944939821354666812018915558951093237791066397432171715286101290073335180113311141356684680079103996224531505962071620704028551570261433581030078027781650237751720096785624016907881512749267410160630231957867333096674195332631791548690087721251730723578980925225302256322654190233991410380309934353845802706803344427165192772582342536905924927564449959931893373020241561339217286882111688625658527099872906016565710880738948758361695217062095632682460903996183788978720182268702378535683441810012149346172306767528635990112808891008964737792459795688250073985023807750959129815553066924895357372764132385668467817781405763877234876040325129467647135943665941345531063140695856263463368973106516380743553431261006909674537650144051981183492353188719407993999095538928957798750477277803270846609361548855965799697025956232802846174744164826320487241282989494781029882283774618561858232334667185868834958184219194388322204129256621821361627794490041022380140242165823660436391323122954434656949827222067908232880702415137352416231227477573032561247042685443385322470127977785997835181995430214875947781607618852708382020848349974712755282025796946996655381939593798289613778443007953018540036966166115762868120795797161535606620273576267247120993482629114587258566100302026165460068481438714608372797925961459932392110170397337698734954390474516654195473774411618809167007285249734723534800924594736914410232283436343841037207710013462057946640670753098240855503576886997007848143675510401545336522149188838320213279173749522508591040941264626158726646161917696317331416633744493848851485951358679018700795817364758504070965634445300631086513401545686454609857793768228464230331017327992712144695553139665054817276401972657906219538813253509632509474459898910878590169692258198604873251616314872253320868115250387783903092109639731408701463262774873619992516036903516401813228638410157789138345482086953949114165419212244103725882353735283296622540405395995512541880469553470169279658180842216911467794957709031814719952242004890588559374644161534909346821095273819069249340125854016212983888236067112990472785382510932212676008635678872991110606474438540631307026915793291147168357489308607341762034842422557974325100100386436881605524668277328014816697873496332099634172377923788303516605487167179287400111914472624567124700249762245822402739770702702350323771241691314913084480272640099449725957209235930230699273000522490736514197778118272030525906050536647931018487082839762435976541024547190212964624407218786854291307199115602213435981092612780992449298835321421151688044305242231335172036687591092061218171572150132304915038524312760160267807102779059878363028490995133233325655424283233126970826048284109116462935530797013471599928564268898897007674423346489650045114824894488438119052031620239561251550801142934559384022589044523549160677057526417751973609044020448336788189156897027789366044998316755033346099743453906679681237983313639844586220491826985980185062808365058175856328286723970216470379261157543687834566404659060788858593615726073376479473628394189492835760504833644940113498654912082100481325506837562819702568696995491876219763972045027900446675639511937613156006454486485525074979942085002895444499533574504683662276687208248316413599480307060161182230915617525952849002899529342873761735102674241881593715994890969792225772144013909127224617888387436080519675153031479114143357320736585904930427733798447129195444645430440095975183097418233761863378115291280151786636009016476974544958957323146795549938933751394956436260145495926467373472160218853132654468600885372077221345275103105952625307111023553788569164995911692208388877078051735438398567867015096378088686475757669825323540442454284008826874777703285382619976254258199293420591217977808277870511858452308972985638768651127507276341003599414660122279489574955920360994603780484838552595991081712362827442040178498021103176278778875030363022636160976667580106039555479978745699815797334233997424447588453139334536645917552581347550463442671610948908179968959226704644021691768051005907184473526312354164424864777438787765173853478975014025204069329911353255614813604353296831292899129535615290402759131767734127770463653085221325754863079335478829963834069993715154224943808824064733263123350461388215947951691759254509848097911089233113778953966407460834573009765117060752414362883466091800384906356926853296400551653599785791306066404745571908486625041462763357204425087660332076412002768371472025839577572548308176352281706577594153270832662553910968973058504562259368984989756227021582652652806200251844164898191969095582120789897267176461338008395664877220193204636718817239547049302092798661041184695704868470049638641259530673766660389421761893875423752240187458159722844252290797737229255101808867399083988549214491386356253886378916159188842405129981936517136925916957791998849494149771151943157558263070599485758635347496397568559703862678054007200897450252705193979698125296883119164590452097563052833730948602383296272132256900737675339111682947198127705742624375221375825032008736375320464500057389179346592355770836220414528501390794640672466736018275379854478140769212560856944810541661956752647507452390254517053109406626366824745757346070406527575357774320102391334113813577503322561143900976099469521398177028414610884136085659183932993931358081952707069270927607721717779098763854634460240516904994977475774828730093397894064147369457198504829905134842867070991509330445796639195355891478010944345098270173677240979049480592883846575269082140684093675224888424661256052695097801012605772822873599379849977045731761175869419846747429048640123199674462226863633260076411070293488972360126214984596841603187424531584352054891859045356941964460633379884931531169547583611157497667740703154480578978170504573192258815494311439025793450499895500372704236182645680415899700136977093646184318296660690731354763645120346808804485446394798810546809849670131795494286681388276584446505851797712368142674585475571382290726634603164381375014654291945359934360820628279072531886575179734245746612250274430190922429627769366531587168094442427862498407494665563526804502768435782113627340694356164251537923224666458237107932145904446111092210703976045651010128697605935565797997230393938683961799189869179915938694708632424160101610309887378543956773148297234896594767142721341284004376210660200550566202333951957558645128302417714282371577693287679784522757104237281724684454616224472703666186405467249250144671204565478357269214470538798054274436506654919003697852300703720061418372571130911168102172286721258959485746004353295033114695796564900624462269539125112528680378263752083462010919392052994067353165017583782632764100489944648907195082147841020836669964415554899731185444595312327881988435193646690756191744363874898626362765030272068609251880972360884793801625295039225521028318591195209521603087970922306318243049051361251785266783098964840762618711211938564523325880156358456632568153659741400635166538527833027993327618187316429284343663516156632552808774054766967000188148312992649497560617449945560484056516920660629441907471164740575561955183453874064046466344652333203510377844767588566666090172875209822447115645045567243110919573466626779195035111191248491406455543525772549656639267852219176238547538197108319832284839469222949537374931725775542580964794985891026863594535761355146603751391496845122967455478424717793060749999248715039173711331059841824004577425759178667121950517428961196738988890457931260778363161297825694113684507888434449786640449589578177977537633175038686569214328456590763877035085454922881774592134644790364096719378848001565990852627617509773940164374064232153788341300502620171319759124864587923006850025338135489151319984710933979884365446048272891549710760373174451260971717062154915230935580784562839217995093664990440960915699421493871124291466312054691322386063352687404641869764975134600318428982574751202584459831039820140609484687076916183830862387891061468241972832005261503851106819905835176956323656969414236261015215538172503693919882029271368544401062943672645120333442448082952850778650223588668479872923363345267582654613647644880992776331655021300744945298954339617526611749016912130058109554244912267385285122343836959839780483975246451012058826742830639996089076557344363448014904882983571898164096451011928985398760882296922643542082445684123687523325897783852438454227592056760926079584672793866397640133375298174103800839713669875017925188890050961627253029063851224481562947348667180792167574395023354187971463703413595070688796031015016464474223923286729237172565384290147065906886729406948425427159052053409339014321081313854582597043485809314855063394187054375482019170226882317510901329413617187700580911334579616422030125980220431073829668649070375044538684428440879094580713838962095449207599615536655713068440469527129948783097134507882757248448998973497039622465110498777004179371263198665504248264504271322916123093246164135330391676894514835856927021660319065689993035272966942540932985850471428540838671088927344310873634570026911192432496377298229400944020752024662066447383917204425754834014539408035462734099909640690720756229073746841311985865787988559142521470803517849673589369335350075446723246131252582687046375634396463905947907039289612597648667056907181584602993604285664165237827113760774562109031798086571731999343128179691294296204556952012433154460835957656507832446721125850077609968907142990621463722501837031998516922005081391020537898391562299250064687356797954066278295022474592665617686886293211625656050084542945590329173720098208588173537468783182064470226861276497609063433941566490264262194495999726278798874206865377484001240271202527473344361668130227204754587027046409864346757364149445560401804690256490853251672716709512790052393421702743032886141323309616964755602018386215997872360962122757042109968737000712257994295186963004129541887796287240932784617980486479076998905777338860558382491142283163748692878538148143146224283984962337855773508605110105092612932309949247418926751316188186207532574038684806964904698279991221611386656638203260191359684025156492479064439833300318078952369616518405614103384347993761781821004743519090706548064032056911716643220992154712404616942471043152222051048853663827047208352220722817923077243786214629860668300394431840318971195938758807198115048397750862492845205376609935703511384695978429595440648575150506208497122812336063954148045231830375903923041931293580470253223963911512793759360151408705351460629899519407457553548868619822693246955382102194720212488490442636553953053943533004050613359968320166698794772079525866914331899092118652260584960881496268365467234984048143810943198574036837746637093658063733929458794664451682611483334598089481323014234497363000817700302901541674017957443616201842207605357765423162845642764409375568971553787286959872245740725586288916275422740013939248909372055545616078424153956188399905582479740297074147881435727079149221043557745460934900573768159682819680197715906457966057549425418144532992479819966571196455188565565681215133490980465803768476182660137371756837274130617046443808292439165371329638261653072310606823338899995102553073274412094269941379201101046632087497154105874458261159959068772409428697875946269429880547786077645800522940757030840638516043605931255565855331231165546386554103007269934477311816907866280119553224809956171278815563935190125607711288469473226363577830259656423269738474469674793817191834984412010284235192195947941188864520779602313430632171743540692488623758813507950130195421256853896066931254279329444504604143997511059306830758986663120897091786738144310626732857291352473357373341399649816225605641974178798441560213301230296004214891147848575264386251814296191368983822274941558639578740823780903834140879297644511888802337200988640122361741764305063703810769278341189017294013294623856393085315322442227688185717288938851686500759048441570973663653939411381414330070841798311723439743212898269308828179084546083522761688392367067018193779063875186889826789859261224877072553707746809091738121955681542467817582498635908457752822108733709471005344704316264532650987541870482604085049432894496711511556404503759922183153150621894176807974004026780591637359492305802189105616245901301913073423092201187748905417634752347872050957508301245800976089449020142283215170817863829715178754102327793778540726836395180372272739907246132811667262023853629580447687448945589355612941667877115144459521507280112452897838988924398057926113395117163372724763220356134137665549360910760775428863941537509112835509538910175699273481058020524474988606569414068805981571455349610211640412992071191573822396496879006157717959575116755908481929690435593444902893696486190086611848364084454709229880820186964350102416589280672893461892128839980588675472338226628746748982760072139691790819941807236451438298943017355303225114789118467993569437692565453511408824626441787817540585204627520911945517150715322322900317837863929972645795041362243073887474295884203865379630088782849749101536714044872706052239832746544345293565280769604772215030240603299608201442874066463090243695582201751481902127695919485480650025159662766721156265827038707214581147446979436985067657688235035063279085526027524578452139311897121959560222778010521705631239634446112700212586723573709009024674069492576669653047973714276265705359574487908761992997975491547095674568662666933178160269499245637861334504012864826825645467814425734313848600668267976727082780868964032762594167884057145941148046291648812852001026105619845278543167673430194180028739280946151948185468663109907951504488133650125461221413542791228391303694726258978002733168003031221980792227233930233396990249323813630178121360113136831038867733900122525241037628839200114687473978301968151623448458441708471154056306712215025240060095668450209965442357785547880065844530633545865197485172711046869237082103742383445162144635916426832646976748511916117839341951421626343457280693936967164403452311179813313674725581030233003356470919313118415493271541872145395500896215199557764809532247281705684628352564627543057620000172149902896451384383311711658584177645106185825082104724546989085526057154334736407766059802184462230230357649286983535477228669116725509292642349535911297780867067640091417604725110184229542894697242719313957825111771373646612886109938596154463668555664063242409655115271244874081386339584032906830166375051593788944700324467944420500623238056780758614051617949156758784854753798036133204588672013137468422277739338301015927873826640352079385737273318787221160069788684910568876737354682071793442051691869120733906023040359531440248482755249884966863905615181291354913330689198050958319547452434768855877383104143445399339782643790560079325779032687723893359704089290637986235913268827691204823532268533111309492766145457891114707181678298795487397796649393340499958044511144263787805500618120194285658011511604965975147093608482447840715101656881915154763085370899177749500315467791994055430238455568432958712280703393036550805203590269022257432694177337833020778508816459977499843551470304189931092788636285559549866645215146083224327029398653547117146112097864464644325618002352000486416928090125195558796777707120141585403242927279651399821426254278523836182489744008376465719918339566033650949707852328897458814933477309948639738318201932446879191922759819287059190059075406735718523481186834643477850541578282244907985840870058612052844716335877723304380827091373968895056845553523261822111023731271368814205839838547470490005360938657617777304878307855972175388186172720052568368730086721769154412628775495032392221164872217861522620911242592377467055016125582354615442087445842149647760255957274029184716453158885258827884286855889496508427039429899354427475578488409253424367596461265438109202556299820515414801937470048035796677458741008841318118725823857854484888166827713303205091480499027063386694690993512487922710050927746141495291462610517648599069299238175990244161879497023565718095144258549957651792962105674460022141336737548079860359695946856983379772672852875925060444184643577824036237766702987283237060452744255506815180955588868358914753304570116921730819041368219619792444604264993438484527323746191137110824464335016948015502532841846287334922661345689441390024706633554707881416054856796686564326698130317836216464658820830050364454812922884964461641012502375768282189455118458059573209093946206486775093802437912896018008279404748174220633279147128420951370105619432717629286857909094932180555689790662862891547375486731986937384664195856188997708279900169246494251903473777039886301492011183528372327919965077715581634061761969840722231867827012354034994384291685565051517438377353920322561159929756879655748563713998498418898187238634477477355150135350791910818082698953601252478254704321409778469323294380147255125843760860998146021996986315484735762920809967022312307799997668926149370948131311761267250290202511250176953858317579332482374758716019598930968995429457152380277892235685048764182413910232691491655744448451246083051457874175073871767441735511013076455378978875222218520586133010759127201284158160990129182911856667157392998092917991491610004660333292257760867565666359653418185422560598843184427218109423181090631060596773327840395059606697721027773614118272064342985384424658772847185178836337528193254258300549961461483735041419186161986291067063879119517620505564105481485307823643720165399965209504238904116749764360290243419567622446851420894565680323277778182804023531717271616138474526434256170300403880716888884214757957281324163069397719048693210177484934395220889779774606413216065912354287306634985649513842991511937541568268804640344074003191648752422812899084960491088752481897662954439463753621983060853026629767762297282370884106403067983957045507986425562413295697069031260693727227049738584906354811946653533660264315355456127620022454365014092870701038450249422996824698948193110638058489638349668423154689585739417810047802743102434361706393732266714140476450553206852545277727133799598971912933510953352183762378144828212389833183922695403629441944477939338629478208565391602768654742216021974541625034794865733087486963621460507966572115585682647125640198323687221801627370274085461233153148746531939362613438727849840982678998619691220266975459012033474871715272034237848532019977394108939918323993534360838319448350407170160500197194079556929169441248268460290554602480556637492567690235856549630563054990947383386820022532727510147653820157189689176438617603846691471270502090101667931435388981799261389495820568431525427173339845849677842195542284969377538214198753983628041513853270951507067783176184926867492451878878256523880787559339874189923941064660842841595176800291899674460456234768417462843614905240996146091329907825077671729948737993004970609521902915918788156550294869249948263886396823849560868500579992081259169809576250063252274297757223532446463129919160295278283878086374379484878160079866918449449520338909118199684001436019370933054722190471786161995211092911279170019766720202163966918422241349535264054150343478493730094810750009923037091538820155082003301200760403674004750282381217235331054698371010096575548811661428174197142241111465396494088106871353167996748974279372263513581038998825451605536725102136416929003210731223430072399556914225246430126273566681782285901690339952558864708517542843979342327492533998925840392320798359932521574358425230374366613899386320008006457475088070937998462747096657080943692993610700273453815684801439818002264979616549839242472149538551664906133886994794487640706256601605517178911310515789812484067441540438634321808049603577636933696507502496754659653517150085997507640004559542637011962683350423969409324732540732174653657712189786335455682417039103781824265672441578184384945382562034978117494710465895082321408204782053999221708309637924719143570526892737882963017204598416396765979399246845120216731557594061085011084015014939584813243143264831706383522933898357328629625006453965323234090166345534976145397775435455101800227298781666105724231243062350399126692725593983870446822440569021752720890597314031719499393757606517044308178435846890232264090670255825631565271039919878744996005669653116942017890333193079128764045002452926077757355448308514991216046260407966357004292941415210785179395124892931131087234036875493332119971694155822422532345269916514842708074964982432091087091302719220736052823988903337764824402482164367448928389327178724630129521377758406567665034225484479527343892962635217069248295722337237260521214867559012437510688636168620684810753252551908087008239375667993000525640041056868732134577420110043021274796404626772079602886807545332844611639636702961676361061209564091590392267597725612770823369101797932402760094779050493905949903550976232855245692014923380389555114536945379896424390775315438661079617254935797164480344612666235380414555736764262514459057192580222293064033049431773991107745994805184843416903012471052840011453011701592641760310046687984340067636613575415938107394902338459599785664900633100192580761796592748902173088186545124915610084564921917339841849364007892425340052885127409782607281844993623344396777834164303286170746555744709588710661228597984383289888277860899498259344457062552084666933620736456132995175346499096607099343125635974902965671846803518878764437192734322849675753487438060586839387320871071234119603308930602352193502379647530151415937286211822952590670185758559048698103361310619537044107720860233000669435598229899720038942050712413096330124739898898650161344604163697641299185513985641334802440109038204209805098188163707656025354228852064250474895868089917946686117193250332482302410598055847663804552137893230572350200971557476025937720767760874681482134522531630208788823985355668408462018877633388938239400596938234755581196604405366017085155431409286335709215944811601753296583413334717730271105970905178115890170866029901605124794507024301232306702621797011415106820022681399975072583213035616679491261005420128645322980067268900094820970758541021988488529545960197473063613284296985538522652381613088966591450912488681312595353629605766031975042950411884393972470536057894798628317140039684807642119094142756812027324542331959311195239505629062261100996439894838164644874586683075485778532874081993757274852197413718094296777741172223936413560332119093344075567878381130451998451486289800060848386942062185271928018778042486680802995128970347329446317094600385951254533868355796890584651723006704488896840610863040612135155203874213928449620222575465858208669864060498655425885908145530994843493842733842178645051398542739742909585700856146256183495270022814173253676539794691275297470131700638354159654463424496835263505948534474472107805610781082964942647881002597931877563923904329178532763420375229756575274340829508454794701524526089931388578312391175126922556675728851334043976962540393117493371399449529356801060379694459568597524987726734807907326761824523355212162149680234492925428865514573375655765945557092395334281424629031727815403998341556419837718018982112476085595551899950620730071403452081550332981497507024426772643603387375397314843137407092665449229520423199007345946393119965350568073329814865841109199443946272328453677112848473622460633136028591059635237193871634598696364439068540532231931524135469324875767304633817030294479835226020518149444585049612032690923375271623551335262343207219430093588150339359897449335269578745727831403967039691001707341493253102206326301692523701801202442268849290981955511719561208381550144858365716651026908664871732381901486099246991315460820019927050473056887614189329810831023526482810810248545022087572212834413437948499972792025835434172044259846932740914178214394928017997456598736982874282682674844212137154682327511285341652370316530704325828337211237137609695939937549536223222219746596193325290740424876025138195242697391017563719753430044796178250431153315067582562735343476252539142515275704787843767885241871966346241992700802576108392749762263654900186532064549951558029083985132726273219672847830253852219047927868938953878036869931884660310436335243732715469989881118644367011402842620261504738823589974728149334325706547463702245188728906125503027379190264039657741760689897698345664647052047163592144830709958430647172750763371802071459744565251418850503716377381890296968528440925819317441005557608985029232710160089825722381739454369852965476949018738404646564373071319590114076131742822038833136029708526145123490730714762453405024542376366668557574012060405988695563011441544314169698607403220788600313279055391786967416355524025076765308563224273784714974603778406460934681299187190289275976307015984088778174519269014769103003023497945851100018088660621628680111091511610409832730880899543375511871831737865587764873588544903668790741691825383133063623382058201548854498278838217424375805492381597296406196310582151670919032631873093381385011309133277093034251122109721550561049138705042621980526024761160750597103794366477152935349171861250661163673833049956487877936569791129319587827777406010753337243279000973240725607038880087113730965963445709604117508944479119162174551697096484476204617412815453612842260155130158952586280695706392444354780239051686133854986192665676227603582349855691922489069011645986609615679554154921575812835409202539317080737814650788320352665134570706553685699281124265670844801778646149740454921184312276218452244108847150757019088349502243756988504945424105726624609458320959625728720309947765401073985580699661980195345005065145010549240188610891341730607592384394612465698616056090945417729073640093913219567683643332996199979654243480265694068369867061758741316765050602713588257443370721645881952261339705452052344128092317306505198995450285853835228737872869829172758078242098261060609015092521109089899643892978629430141114006762877499207817237947462091689983896189486307730602749102670388394335247424342123671217702461011602406111857168705082440491623894343504702508136491551551043272507479410247374781922652059335513625530181219642499248821299260177408010371988421254744721602969500277426850775217586691799380136258422417398560766991654327570612304528672807076318947058954406188421315713800339848740868094144618458542303449514485210539912489324554866593053355845782771442377433853392082412776321659675383266506430638806955691562026222594694142900799876983442091469998979568326670904141398068633325156525696878789922574327961396437026543144639333799000819857530797881761337436094839283022338032797320386536462424980551140224692264789315929449180403829836490348886386975644148556085605371772287371482282368642781136572039474969069372399156100368280751411784737825622127759959167758140385329868885136552323139384317422585356280701915440077630163476477812613243802484218656698552740076410511901095452898382563484070455808090522147697220428738220206445111655802021581372204663476633351756179905008977808856009320814541764439032352419397315472189209202024742704058579135437926009768076362987566147826443389261212134565944568010422276165241837640186734533914880790013636035284321747804016831467261880679364930468658736463114832826980492022787625545401785091774977282946756929354516660986419481458364447890960383045828536989560806656661903603100453047200242263938815720686746900619298730822484900168163489212554337544475803887361586588592485975587427838599929541709917225115340254222296922343661777819296533134967477572209784301938184450598507508056494831896792205834341478905102576174909975820012347244102850794123184376014714213782951102187358993917081686805598813354699137945378313771141354919712434658109311278332662175922275893699347704984352519210735175737020054573451305873132214384620876027751840534893713237662907112055269490530038882280420480821085192876107677281454892794403227236284124794319264419243079681370382948200586974201501323531987205199203538773142158822114859743182387909891993253934150378768995969580432725177768986612588939544201391713064188629510665268960624145208448034034741133148800431386473171584468157548365316705126017466407607280959672132729422453610426679280946977358363834982281147669169596955732770282791209979260863817017654210151115811092683287485950646262362992592496943781822291692343254853616041525142063692521477459809419889268147764439053761119174630260741704144922419498001706238668169466079892475169718500094287444466241005863803558630650636095727097973493070964889076063019079233461701974566562487128849867382678546268945120946229054827542330251732132827853165175869340541118457151048346328320081011525254131193679545612612161031974278321038795482539174314098770652570060376719683830478692910032674834420668406673515088586091662976572277996926003868273349641875833211808091686185171345911568508931494044819961072502337896779899188725826867053775743512465081379862813483506643132466270924523654698351740704265136988241433088355263194547542532484588409399378463186733813366103100581146455151877305014130815666018061132268352963971146240104983148464604395200616373542584698260521254538591505364620141659306152413774330372464410397598500156892102790937867860318517672404695991572340529003816760724247701697815214861519474627054614221125691272253815905020395830514685850036024200549094550268261850958754262109739913220950295489582891742329813431540692575705880157365453517892741527128941314318269476902588854786599196898835999043885422748469473118751974887712150191591908885813263769981215908089691823350590797148746133368039706350036955539422590734536933263896961623842541047946294837937463813246124082530690269146502151719655242567884712722975266792028038412966157502184681108869393992526879439503267287008758188610493008597501969280952048237571389454388442416217566263735180336432774017341259427455820267544027881214092868804120300022706318082593186766481490447257994467045942382811148786117712471299402343531934763897789484462560417454780205295530815025429801570903923821472145748055026968444380960380164437261953004403990818426587487953263601747734396347413330292755818200084648860981832917078621243703459404281501604147705818564413222318877939216398896127369924002251605351282937236557373193193898341753843970830903585333085718369311365037008190565450432984220993814900454454004486182214055060528716831341426278964416953339802968795175366678475509672567390773471816933997590011898911139624652061607188564911926642694016069590616104437801498666998284332465257608825710108991959111180835030365079742812307093951984025480169446262059236363510719901481567744000123130725410256056015931684053281699733907071537208809013265415408408486946485133762274828499161274747053222550579183371978299802173759142434471486634380845991013925549446596674237301191215691048473306980508171297273138066292296784931657070031083055678897912329813037510317467834011208135309146607336751187621872232478968370382795012395444953967588537384466413472024700158852017613121548143721334792656722446917956258633003069945836289103812648952338880763843818809211807397927683141230868809469171765526719713411290271581467529442762521329501543011533690389221384101337883275393592020905194209393897941289380765953087027355077304221911430043256684624072289034021711512731689053394678518738227848515822470484127739268280565172603764458440068284667373544825924969162142390338893181170113891315019222854107381814522925921851485752524761838480775838298666675567628883100860152635893586357127421777289515445831293470980084717828967273412903707607159708978389934279262557381889563194050727520873259994565456085868553582631337084934064139349137491790772182285311600949827036679278923587884316084918389533623615765768334222895927023939153868119581529960664520818861843896972001893567854894942216512361017184737604606038296164427331173040258699852153721647753632066072061232929323962407800474280678081245429927950935051439760211929113037802170395082950990699443939119550034072157414801775922997193282716303971339380034926791334165089113946424796613209472508981957237504911331291669842737114895866286493361339703036247163012832100708415202627689963068189695266669440516751132937869050034120042841739429541445844475412467718508710301949763730646456618634940656615955590222038813571361768234778463109885474803141607518313054403428112703507195990142030588149232148841293569445296431703131903577937739190165691257717806985121801152036378471823289495344465514626784682026303966630199069226106232408625749366744026581397192480133160604128043094030117818395338456973477787554965052267198920398064650880987659599040268354582908404887435901210248570719056955851822996481632457015703748335071625617787840260248079543643142774097520462960077059523215937839265605847631831645394608691291390297075293245752831122063165307794559970935880191017954784682220298137949673390087099348352365925215317478091492963595768036416453157419840829497042403902353402659221352598530803324317858577406056900395174966247831146154707471015241092709901906946055592396830561480772653739984996188802045261369572230890736822583697253467329304349079623158386261263444240863141034997403655086921605004628097939425957370775224212775596279285841773136930903645943638449398233929185489553676473560878989971977807038662092746318519850851926852624538258702495738050109938163238708202285644740218903503702051586824571125520231530878090161943705387176816448293944911865897681228582282863058898610296052832544386045241598879043704773773713685021353938226539490234217108897837100517498175970206868257027259712399904777313320890674211212008218398677787056562942469382004237813491306663028758752092564773273167463696647462570612003467156409034789631481868213459806127296825654557674985919728673797538106742173858019486939329232978545561007900054725330516708185495508295733164530389667280573878280582588338674395672132016122364271902399903185069780948472980377051720009130562696720528431664964904631103134009037815217492434067144662452624788444797032670809204796602152536229777984130352918249166775473338610975771752089257006270953984192767246810212714644651636182903867855736355070011836724154289540477483432843483747564304527445068084429432880032635348132660476017214226940034962856397025725628371882800895476023866630654974704534984376640385989464581448053195091992594514982336136539044123167407129663261870424198840786560346889440980735651117190884162131337038328475271580140233374087460550901973370836047200902016509576637603786372188320038639008631870025211594327839328479264705620690613940364883094552023943727600115564487678447540835616039984885137729230343235300979396783369830091277799794971704628531410043534933382267484965817752353127196015906172828462137140103053343920270345130194910703446174565771792191324143736496939690489657328257566913276453108344568715944990050920224047579942148514139245457253260782716471305699581372348962272410151358146339359857391762405734462715784143189580687674488008034901047315958190724146417291159828969702593777767500673203833675999208981411198985757705456900880667351053470372132934890554554972053530105573246966105380660995007027547522626763831652725279154833145361939167195510302515194171781239124482761114532218866777176734174064523789930150371042110232238847769373142553479838888837413246016948494522990510710895587932162056322085156530074079505592494459743510349190441133791566366617724617723425057713516044266303431268508796541039734739274529051405512410302983625893362358342678655320477807539090909460140438067643829114783029646518215386189201400711494551862692991324737572992206115252478291665457569566383251147867252560975782740644380460707154246177387337680719306797191303107259747170951488737474695034915202425718743866194207982872883105710281579364027146345327984734941390242082297386601437354856090802957134692265331182640679652544349899969780862934703855361570010379699864618068028932857297252901428290197040501117093960401799400772790730059574064535923916663881144597641874269200937829705225640556982994851451162539665867422363083935081487782114697145156264218397232451972563939261864816182977438532410643492525416862643522704313723804662598556860369392975077940069921092726870253264588061666922557296352244204858671812045093427166631890519262450149084600688052235094443465827402258290512950304979961401660772556448746146270978688973256721019292300982454765438008643740010975723666092413723186800774476268629452639172489702676745679273486954263296293307799383060695174258956537533033198251374669746258716171967671157859591293894641900519594231162554265589036040426117249989093064050953199964610719970516938281588424916149236396001113845325917165402764954766172956590312791649517360294213628187264592677678276896029664972247633742345885325543235731917632165397243501468576239165650433876800210156944358236086348457350102531746380709120581568187968385839451042367958767056686080265948295232559420292102688752911543692228947178983633062840897730393136992191147148162894383234242910144325546512377642992120827639297377159406413974052092305309640784163165543554240237060821781822992158282156540176766976612089914480600595299065437623636120263059889510077235755651659219714516783674355129084511136295559530875867083778001919961816556831004557022827891916130240361835164122316270904542939796741282350843309452202160626684268919718081496548307692214680927243772183273970929550675247929813115669882315933109698993912254344793577456066112690464296564074054192882264785479797974455922998213530029315531271761722186319708982235311610694068488157552894816208209181667248131289081046237699070132293532844500814089415189311098796540721461827574805585802435381615139187720044458506579847920254569441147796639922979053202771302349978644034421824961632018918118043264783111515946811148164726454776176349787130866887569529762603031666841214634302624407946869782859874183950317139429001355908772255770537385820548895316960180686323258791510705889327168594220715607638907859760776550843037319077176693145523913518622363114271160854458040847500024799875823005870882654914622078726726806363745375980674164794484814973892387547284593438752792867664432725647955615698313724625104542888500733489513025043675009241929034354360108566920829426185038839729213803592097852633481338499592725301325821086087156279941191224265330135185468301475883617271648821814983502877885575396597889061068322286186195298276402577225660572474465593403252865816014386518537361611416307557297037999446651141140540794271475377811114255133972834961152875330388644328160811651900971960558504031993456527982222342807299181713054322774875923028252948026550571740861992523706296814981242042637768598819539599684750680120317039135076007001949208483688796385142405835386068968037754420706427165194190884481774909538052581044824739134996228296437835613093745711476150935895945792653518444582440734844891009395575602291056062448456125600438212279003427907039318710752380856389211364039358354010582073711565980725630307728235851731361937077949085709984740133668500208412981911223595969682225964545883214339357119483477892683458897400760306939454021357274766342848666575966790937797646768163015848816770646038970658327592363081409299550394583781385143772011353236289264203778348412135950821407271208953373316878810000342084057618038903775566026792357942645825046342858264058246647041364199474705466118335438791076331452420005378089995503474173982479708963230657788066150878820932715957565448426168832058940287967211719805372836240656118907999138028832094343311246912681414321820670235390665254965636176151324015679568910354880795582582532800003740724316505915305906941655244026442226553465708270971438428418562650322627493196295890247541653457612824093535406270144007091148209548333649386576628566250273021544259798453829481913014999381683903264080298234887741471682495878481818005552066910156137025327368239846402589188012033765009206477291158684977059128142539364633256149381380988193472958921912237302958434157505102177387600274257006713072132715585027183263165673229741655699387896932382888666604753463987363328505616254877385435688300572624974075468515505447792066495159632292580229326617229622139077254749522646217975460868209939045420657122232019376562938297808861803061952849313208496738723326039474869730793856785007594093947867425498820242041547066719824068073770803660751254641737104593569506195610338555273220981093912275466544307152856539660824821860992013074825707698853489469154319716569722476616161766706519887344489662458628625152225384290156087408995434217695175410335336340373475038196456961620860504864141458492224453185569392104609170949935123097068124336744992981962743873931320970401669537573173363924066206733660664354609510478033905319817058757712382737802524734990313350046117788777274760720342573148159707116345409091842317519827442776377940258294921372461614244122992493589461434008809389144670032034652189837272897423974379715319830729612428502696561588466394484055677766860581950531483370976868517186306676495978906788870683150525108802156270017004232925652577553571474880717033038406465942131322256028818375188180027781993016740998644106271998252745569596806164230149058371294203283526086813465820686611208819994256087192395986575599068847944798957284718971157601126635233211871997466584003580218134043653557895102240963230644670362396496910274014153840261860400252104070107826599150449718939463765389742339594447809412596446793881059540177061710349317906010285848179428692776802516063469818648761586233701525160236371817879990343795955115086514540258797264232005725044441943317120137468254190708531072152085126939846628017711102642445638079158824956674349287553422153367398007018414596890640693638164153469373358041348621682362812485519628207372517116447100484339267712904709544982177124599735379498959250181926670099192319815139687203924078131733288227406183489936891596258827794341812597822374682335655696616170703773942455538602130433493640075319533984910869963335613308498200462205237942126112738646977343529840614120293357476985428379850731423029608600645839020326683297106647485928028070622289411984685237118462881782523378018175736273865633857652511458976914251738657976813345533125961089216796759921620047777736601739698157005189305563209347680575208239247093075056486535401470969258633244753524002357951420808860993523690497927164952973307312176270227758280584330992778199380439217268111765936516774634858681152391360381723993804361913708704178324583687073268792759151242132793069249368067256716409379581154374100844743180798479818456229533783159209437058598793067431495842128091771469371599883933836596763332855084521448717349872982802287224597211100337067885195708636469326747159061232018112861922070378166898254061531830765384398395669071980485139529940333118652808812321707773513270097093437728645069055248320188640544591213111790441279949017804606511934621383518200791941711869477902086478775088118722447763439728760053349119723576540686820193680867718864154368080099068512360463269609940850990396948362171570718698156808599431927550783617631063522862443582975777239716171244390007852725787442545538826516658015450494415164016924498904268345734562617340205714011793825315539669178650853286160227797761828448212867294629371491109116351044932010780072370744963492569121890493135736176727370757948988198708148032945608027014245740279928915695074977187763259012185583211683324563832463542641366304744206953390687461804874269573082528928549775570446553072537265354490916550585449050090807360813300777288059176211340781270220715772179918469199964764765500100977660172796469665522445266993376993129003168352117905283272874954475129813402506291381095496685728387795290504428896615155422823760174491373513862739753898374287836457085777879177722829418378625092628139451414028381810712499370857034960067976856336968647672081079401343326899229203210797152854322309368783898249784699775589777584162128896661183097189395618055898887347882238586298360614828197063885376638702369971905688791420015005893278157667955412656153240777511837016662680233363450787841366979508958640285849250404849337961711803280455707969321708308871176259199594356441397149528262209871179393056412254938187438143080847275530838917269346294899678637549361154624333630992676994687019223088148390348146066609544524703883761208316514201007631833758934939996200824800998604628306243249049275733571918058260532493551274110735860302253057698204994600214598639757850583213910161582089381025366404328385622156050481874565965450748771370455025814588687870941584142363695825390500441026067279434510615024772280622350966331573612514266794341407466520635345465839222611463235578393993709702620191622134738856245398302016554714620847629726525746426872338636231531355355681663605190357189524466423758661980411448025219901302595893499907018346443127068059900432561387112104506890557506790767625630503842626225137290652256549426548273213499848416053950047182498565601847314490742691964574526581135702651071623877334688337258997786436725917411557016552924842063152187379159524644831952515980633946037421867350241980390342917288205856935267866581582011958760698252396492923489146794430847865749745083669623296079018930796244587484372517492298595716781255748423316730358061373238720790093363369257424578919538675866761134125824716030708943168749649125716727634443030554358794396727983916055021351483332405448295912401218783134030459294416212927504998450167094648495344091524718377825576002939794250148934214633867588345896387026112729779481845303444231471312440784982148467358627326536286255010397360301794632125535434232983465042878299269795250762117660416274969836359499603243495791210300046219201462117222885844133017429091519974561741221425481510127488263009469748351230072170223802516362654245731668291547444218100277761276072978923682586116206667022106584256981663821798412038784102644877355661996291918779924348976235918131207934212628580852454714318097767637213645840433599276725551587668729268189864664577371815671372712732706917446076837023027879242438214038304398781254700621379655600744129064710835313042028929121521463452256753566839681362781899954496762854591729513324623126862712073070316867408660159570991663158646522388745623449645159907497920994590343139214940679848302722545724305143530454907855046857565598503141863084834865010575124492875671828991276457246072592552964338464547294520764118443817902834258464092984568121756169389359659757404292955715291507682970780202397891696925219956916743579510728110135844878034761204586517986663278274801506364902275231920574521535572880248195865656936663054699706295114422061255504568691480327448602817268281027424886402616018934181365408817027519036327982203827038208983512455779035361653446984428513345483864352548108312849983289418172916120839071390684868789213810103679650443525120422214656143647220149894200214383442012409701466236343858272692961086252552511892129071483604566795595168653305310545101978321657417626828559346918714924724254791232715290930876743532838750563162595363919968592580225709413045416467857239737626687111622820934741373839530974538562283954012484780817487662218271515701356954660145145276861488219451341105980195908637689785102904745476657438215181134510250246512821307882573115182513573208273422069550416205631424449297757854181047996194442936394669739813593669111845157777992643506435444778907866885667636555675101330203920641099446748697238001890185771237393338518911517615291790335703578359795955444897859498954246647154327706708272651894378379480640334221433772404786786940630662072056502773700258523743934557949437175759482223948482130909053923116986640964837350683077249445046879290633705387963710117044090375203852640296257030044175089847800778547400690983159410928873587189533947358288473512024777514415286414333015237602025716546639313515169580288664731538340423443705796376486698042917498972943309837151215686192965419767908754359006588519119491014260755969465368844561880990145071492835593653328658780734465634881032988679671646781357384388603935675481267316383463260815222677433610342562799044580710243729086055639419844097513553481936898944385856295365499862588604857134920887479532609109770303465012940402286028361334223505478683117531048043788706828828150004082704666900724460766081328348616471638169678446051551761653711887635152359278589755531581273539168302801968872202551866090543478414559163466458713173467524042320513784665145484852108274337280013486724506825679412532619761659887652396688873925240799849352814127096654205069769479109091969184310175731322507064339087907860867329003063983535165159800074053082689602417037023267069764470297602604698157613952922096431184121990812443297453496971403552504286138984205987355762655435347212310996418075573943049847583589778675340827775255945346907202949290138613691171938131736016464766254974355119237231903375664039955424477839442983518287742464123279166224872611661531195565153183793037448307105649190863769246430392533328182321026516298438247988940816153152609817835820542047575742391907906610890617263336352753588367285253235669995686270183081216740528018000255368992933693867881167440777299165427880446784135620093629755456915180767133129637553148165799090729310413796284759941779072489099883994658129887050988367268841726245600654681144806371742950845879829312533822895706426355589519574792100474878009906747134908177116597027874004848558461844362188045597553613978187711001600120973806585206022746739843219801950690953316230458982917616258601136021828935305946736287128555704204874035807380175224160105364492072700313587362744654707779352664844640806718320237279420143447234741680498214353219066185429925469027839023946936756585504715201141750008863744375280986335535666305314474278010855994616123990295628653163830851747979431177026166211075066725911367956573126107906874252713210208934204306864426562190889801026878816775863339198793606817796800152073864581118643322230027606609792372849188165221926276820901885478038944356032042433072568734606173702324526804366175896199744461169110304860590553199705636008633935746768254932730261029297265221999701378474566833692781960326841205387250396773387410094302331065949859757562894408874945023244710451411575928385431904365609979441778694565059086737279405018103589133007802251836704712947858393258945203373711540965251726143245821365109492864963727906756677570290788108245219873727940381999502492852736340743617223491460131337418826157775394499817582444937381706204950516722942428537471667761788064434756742240965920803803416278472569426829022925212523848585337347913671592469499736083501009084159991613780484158077661793091915947188569099610232560063679650977588295435738186298518032859284770413724366489514614505019206944691005545175316280653305226400767770893310898674759236311424921196473798385954255778544792305750680638612690209013250630793951922213386091859506512594966211156752477031726132363270363423717204669236175272964371717948451046238560425822273820574669416399792178115941355964646929848306709201425779742380093529530764213118796303250033849846428603634072498312855593980962748682443195781859038887550090259136755043758914720260583621377666420090901070593053387190959348338330299912816614493302348832428627809450374459419962277192591212973961871592020847315534698082291794557411069295622770746468292250640769884404759019173477414664989263523613471702165066560590473280364968243983685148167372969698615723107288050308655420546534599832179968137693852187938647137415299348482991880895775760669754960742573489972049994459247477655065588130988577915322125348254266184290083358153300425533240532142124836043612819221729578384448001546002989505011823896463097856070910788010264937937656509471879322583388446088955461529462664001960838911309128568907495244109929559185087086298774924629350984305416318920651890102210836873850768604495583670088449719941471180764413202319502904398729819740588179575559249432469415479940500957863464910789359582772786600741560112775892715697466918567208804615859568973929234646086518259734809876278032735783122824239714918079349952189648914987489119544660184648597939334327981695217348104730074648312530680755197063807910667955898766453000450685243345844501419438076057321597242893329409535776902892813273095037334413744484240496526726491230745760280033902974672600719069651789305684608570486241921921895529501206499382979045221890711544996993791443408977751170261408258401444153573912575268782112047795676433288753969726244731879032952501475268642593745614354879964023555025562412865641888711495639054779427685872504112799119785252786355553260549077541637281878794216675674857856141623043363824076503788015601988095772380487988087768681885315507155213567545824862107453652890422991722156412432965485960404760340108960793000197018816034018706687673493011680676253758341019449395995975179929452901381967248764294353034940384045489020690811451703580193819159005399253854990428116443209598104297256009893982978142801815867903361601288340891824265607696572754763199672245330775663565149889240332801785290967159121559220796605920051664715113084015747198573315595081493132744386096777289684562866947981365031356609445293868587621647238419472667526482797803646166461654600938432009638665105879383584087496361419706343732440744061759639504054302308420453116892618690547745512308142928671314547872493672262714019480580720895607295402660357300016591846228694429707353592797791351415457236366805613510337359416057986935094459307645925364350129491834074656822106802432954472119886042088970448772597852229355144143595866617108405761912964802496895729633619081064734292915801249233415950727908608747347297779283102211703600785545769509313647869059130192897508136820693747662440979739060858195703694795621733909224235687871954488870765540417538648949470012505326595490659115857931270481659345687647710613834516572863565673081448107224136252029771512301152163664361755541537773135312607367384511610608415135837496499914467183123847817266127832291011902305693426788974768845305927887905349031050776142554299629387548417519639979120671487710566996732225389139322340156445850150383589716631779696503376087263341625665152168570773753040224794403987545693099761184759503630211288883923449592670037904222571028065129805454695532114953758276649718670663197079169226050790892188740761776634726929343000028544451729601647189015641206994309986169366851898334010548662959489946569035360554157029370869503683225813239174001133578912283864381866214276391120167628509170158013239407971658678751993359226067740973101511742268902396322001301650111700896408566091596419960202060399859516759933616460872516105373830608301385470114691786335380234107417724977129694982389334746097814666330889062394193197079768488622039448966521855308553719676675096359880517797472617930326912831826748620578092652565290342801908827059014054663747001383302588936160171501548886893591056944044972172021139245648474988858366001193030933405042481909480846789876003827669218171908676966018297820355992071897780429236183663066794572605188960538234728759328230119515865551801782831335658309861373165259350308058239625590828657292138654721957793122433591473237524037869082536021646294813204884573987051367246382465059987311460376225349778221030101454298751138224482136735267372107046667779742422508385846488729490960052186147747715199660246552260696212706208541687872395159978268612079223288649559947129439200099676084626144529668818191118094488991955881471379931481529329582516076010711662495155659372028930345139657761202158250017927165821147493989825216413139833162921591167878631149035037080467291134675664573677603167044711872286977774937204984115525342283689364699486599281638902933332959670502333106318645471594619892117469604407479301121141664974922769663879341360554362801356521885916919160126501703473492198577912155996554507884590280024197928361468861669687294067326579448551412102933164767805043203023892916209496994094626811268847761941929888728302045325483555956456104975075261052442558093862734206358927768284422812958146473473670736225597282943726377487768399286376323453936634450584640322202749734150248757659910215195448391414894528223832681483980519970765592688983154471576951183155510618730067685680405712307832433568627813031698684340855208154148525567720882895194035878583720245447816863460841197036059946920420502238950509990547462252473281286675507560592665702381967985443697384303634755135301014223131859665983550172909122663560683962724430840465236286528423238142349908676609158081152998567318827000131093821576191329659314579978119982342630591411983389412562602152147455618597839408169145555130001751310208382556317361621545903512910618001537992129948114092826421522700318799959583363724143264712437805197524452586298660913976536312050348551968701426164273739442553870410409340117869028483173244466964383927413217588098000494988615024556839321369972260395131599909527837014548012759527925657066876033943012129119785059365743941306541784682021900338105036071495296968271934082499540824216163965539009310071446388762031349134077562755620587774807984394581194951882007132052594033442134001243688746110151026668901067251610584232452648551398239240043572195668307365786346362847139477187605142398707775353711988544676572934635846988478103391466784785470873151504290874245923946132610892919503710118254923184207210437942006267224493626435095955033758381719510544311687327960567532982916131257543568252456465008122805226368146115975321199170660364359744808288562193226739368656062542938224900619956077533306524648443072734872088797672926968147974853263746082115171227217434461213726243363240118432918898637112347583073897410591681818816689559537182399583109158955865155107939110515371592823919727238518934595024177790551515157264975708724287679440973145302040959076917387500961326483707455953415351331344900038752803101337856441911474235022452362008865534205354859562097776348591737878062122554402259252738483077651799963738230090961975938017475257830796156323362664637308389573846711167092750644157476328242109681866702142077632683755260776111089889449646732775343901491089616361841443514027645812228960506038155465315732310359157359227589113492569009356071479776887007319541022834271748757490709187163047623887234096963025340782474650972500272241452603350827917050952440893757333312319820302154163507867782655093217137817123137161142123181244080633098153607437639502654255747238777747951603707602548634894828153033520219413464669637514327152808029100281629344182641082759195249518173693711365151453769757463035503968815577039389834871549884013238769153330886083961520387926598342627243177492768626963541310684656244843493116508966874844693471034053482295484404249445480290150087120911679176586065278724812579775347478803166890035108745856817454970704973599571133983455436889482161005371526145300563991242445399625803132802285781555675337051796143359354831260719900258511108667542907999170353700606436838865760343284213467493632847981345995095244594136668858863653580165643967245588975213805763615902148421583350868717691213845760044375608187454847305378791606854309384081019497206105993813537730874309360802543746183604369148741127222098901147672877947895395173377894112656204674800771293805345840765561616367140328136450673896217852090789222464391679860438040198487605953575729784808053646541796474341632080188152262997279175361841901057253910235261006661285793861284828721151144331217481644040056183601867286327932539692823242601400072598995097051264681198513807028811692974703651388278161801811431468727933233145431510250480273769735906929697188889345453153536951518987596889246757887794347506970959483891870919998567821390784326370316579878408076134700595423153306313562919723476311123701263743716988364569939180204023601706548474104482716849915119737619157080068754318896722949153519195619312478770104883649003430712202169327164487378907486971688905566978934955748268599453881593423799010669245538086603569309347485162719970008372666259460916369119186683408760398160534571873044883787844599456410661946492827902987144851382966227706977101867972627483623450552498684334621758253519948935838926400082160425785815010148688691944139135668696883144598621199233497225849337410553246237223178411540422579197837762605724976861180888568657979800450074365599616849105084972307353455998115616755131668419573344751329229644291365157996632553834794507661032896848698762817246534181038300169434521758808549607478490075673039704749799412435126184213715027756166827369026168815088921349350732182693228066051823157630541607230367138987483779334050158419807105831531091345171439567188012503059886950631165440619618064708073612376753683950228243987528605105113518141919737956946936386812745316528106350383468283573844055142293480079936682108044936068621646006766344830319224958931559540458169497241368057496365679330791963671525698071861874731197459621434447874538755676792302136148597286303389418237450498917697400714288423976680628317290119085740325033854522235403375989440089793296037412054603543841820076325880936286978935955808509497565067995350334583706800572396726813294621407540131282863688230745377375496644876706623705867452856052628768437103120859783070774298894233319665993370672470968952524985445820981439492120793934365568025694559226089370437968088305921735499028081872394235008316672586298989188652170704858091843945174164560090225973841145776221030576886909260019619975636498357231553711648007804190340734995830844145512294281776021521049358131823966276787157371499828414080368819714227388302087450157398585239725106689569962349628354927273450826891202714752570427050611184594647182853205454272334515940869862411990632707461826679560117012752583508647388492046027857128502347846753390313187862966495520706455076895843839186767906678569477562130037760802451808273452521432055160633150403699415486061306759533659716800235921608947814046818533147106095468336916218480655870713410551936174510371015992161361995097086501377805338975939883669378739548227896833361381628700251093980230769216401666959917739312248390826447912809985780640532434091371862188532304910289011371610830868087486723811585974218156537092967446551849292875004065158071920282805299224441627354322382564952517424671577482689612161852563998936569445055835103281856641319976266974391111677809487179369657369037614319223834766554637308885177708844968323805818661049089021478787690731157126141234536496390084269944708025514624680875023203989773654607133043284170537344139038932348425031816883026913873884588479420355798916511772879206893386316827004321470084246757852941660469640375384119123764327438684183406337690865633424691994128446600486512177804327689855184022775180987901106967645819095323132112878909014976869469812633598854195455671757126766788371557631267027615259777699256164372103010849931303543718989924700939575282429872969224107111180096726415730726186239271371578280611414300201711142648258488927207225721220327713009982949992065164892245518836614215959589128237524836062172044495902485756809969155862344381651671463163310048739229322622194319536546576778120984486254203960830112776745283134067622943688413542209394960718259832600135575309969096916373496655974503738055417879293820300756984307669543903118727067442208400259867930924143662905227305487332037499318170389925641616744964935692665215348150771057177730318828452217536385509090287600520764445585217234669265970493470604553275629606790606632310267244205955949617383552205881466766722615253909909223734700140656139750063356944875096877152084832351897942123225929201006950720089427540980857268094505906415482184309235205988084931561998371348630863160817753099343135682611939113131975531178789183155992277502484615967066466405284880921192853256995495732701336628910201852959715102098731818463944280052695190904330022355676019778705309066426484472311654176854222119167486235082140555241633628561937291560265630374851963379831249371251258466854494417939893950361305635853814653497429452024282804730393196391966568679509781211945037151849483955346185707607532969762060421264450505727237362397565744000051885064382554728183969647559539802630009732975909676681125019203508629139643085638026878054242269120670846669566779380842887975906633338519183165807333128864107796998027738812163216461819722979938232792250343923207155706556369315292188293554619023650716907691665853411416202786881452063334351824445869277959804662797012743488199998367141615930040385490934771232162308539249668813677226572366504800742866450667231972813565442043144422054427955692892481651067906360543142276229820510603946839073598742744190252742980580057378424677214050758689327578238964933029539316754365582636829334227866799690862018808955961688981948336656830850488836176460312166876308659491983675260971893798508642961542780131573884226269097207549301238347693325994685064488503584484386598349300601794354979546847118805815318348388546700900036239016567509098519743826089176297051751626446321046822400453548606399543634998761793295439245093275322116718512553617107202565833354352696800851148963267718413948971015796822371232377799817045313497795344097553782240414687831031187320430287713984126674284308300996375651519942564082353249959052809366080177081548029774680469873018442817224891333669076425734983149530154917971860386848864164136682031527841507301603828760904785507046797051029723762400497326796540443757434614926309232993953102138573340394654643138039328475460166828945703985202898970561990500585663316810254247961224979941619238080817186956176833555930820343291711186119406614245930234168589283254022811223751448783838043753338600524598377152198085748474091159656051012610213573908775874485223070727867510269340595258400443876916608889983769297115767546444686686822582163159384153340218454302004455678786165353877900684796481611546147742567664346667861657143213956058051068524929302034863111876979067573730613086580498053996249830885162974483234209187093248655663168599888218076342633618038033093708068565521163083570426598784939627742574272212686526087553770343242797213162471865621815021272100153381435276404467438408179213985247176560645327166630534436065878850200216200832224339754743884656908084822976109598909361512918143246941901775429720168260292606936286775939441303998070048562472270746163817080272609324491040716169431127216932459613466992507264935833273692236372077527056795318598698939329745192340658032028977873471602317472274608055716294488616376900498802876817834462006220327101913512335770364900808455544255768267109148155967365538582594382219513580156377119716793670206222456863485469059877803465897456584478524088192688309227770546049463556158414097453554239477673427530500839360542653385834292408867914093681442328587900922305291527999159050090651924744141709100477084998890303385633941944104864392190202256628773984626697129628687375722161881712782123563349047154994707588680405946324980613245053389545238627255245644008130368634687268413792193795785077498902782431583827323503310967089933015706641952401640480259861958294666114657087896993126661948681911951688997857138260889720165022115150000459167591831413795284292401626307590692810259150476906872272115545836998472442221101278300842149489854275989287579626814082842462027344811563776158858566660628707597984538985888539735915067846667744073558896211764902638877304631228815008241486403525126070075059042685515458730819944836142517500969198812147177694290558463647557815938880662395420189374908403227510206348923283093410282378940889895317257072781466983925467615050901133856273474822826535359010089528178689238513054833708012163757061868763785954802148810067207114027051724468180760760129942225757837851526237298044375489744603759100293991487767534772424112309983814691187957254447449604200948758632104967562261710980657037545797784528755506706813330119403702836846318300506680753062470647522436185743826977839833542129935793422513520349235503103226324224496188486719775355803165214710619958410406221190835966907897963380812136398928437310743158230935296944233518933301343708243264385327899082614976500246622336013479717464642080798369546513329453775576622725244620507851699672019899993401013335072075807710403826558364817000188252048738626947279776868198412449713014367444617738360378450588677310415521380295511482941381968111653016235598910147759480759411771570116508692185411471004985307661544503263624343420505278561286837117886986242284537112278047537319214048956991086183575809549838444566013084746527651201522516404600863882540892101024615835361898855615679545559434153937745029100661215587064016652981681454915048709104536360233696267900742045245107874767111085816038833504907301984545965754311516272250132882641327327200458647504003597538841150858712366767330536716517667235923474108220556620738971458967361244286013184480990099661941855126591403124482682150505096821172238621231152652300713165865427360924785213735015263087364504209708686975277506519538734683752316717031793864707833381254703056742160675957181244817241549006779553950339497434406511014026688323398138407299525779426860509803857100388472248482378758702492339217271606723237837596682806558779053366211090973343419979784433485265324350722533603987194609870643016788954090843383183273800955490568085092791321896161996636262009622696371104592305859857933213945718121849704692397468471194090316286548267278160233466412458675531537220698657075888456159200392763767615955391438114106410712803664182738485702131664766755240750094911376831891968759459457677975505054359139588476862792044160738994386605970487557360320761893992907847325701218938635124345040256111531106159816041062934721259033810339622107691013592064184427275725636244992188419296928450488655716808147667896609363464271937555630095802657166740606967045070055976452397530935669267213475656322310521709797267882011756733844202585858563099582772237670124261950140214124151701706257482391993757315398056518447478149788507156871414235362443327302122681085470827797568225700932570140588369636640436028018657355839449184790336263501554324008794445528858414945115640942709224065884058157027469906282629123540380245799757493270182391447626286719728006741510646157842608708921008843375777396856008810813692857565080184359309963392248748227346979480784064776775774350810648131138541202668180146216960634863869351822833302134661336932791685950307992469114783325130820766910151785797169586601857927299671940055236690498805765228834054038295723294956666106181631097892263994073011570024576283747735763081837981616381190797360315872121983138196203449769816206423985075228327733732583324372882160597886109873551913778558814037298650838175116326674547594083452969670926281699808448890104436399294171335504917218530444136127553727404380196616706233382973802404906298258609513935027495898750528072067318378647302489130579054815627366934203153365934803545221237593231989288843748037324107862086056224621755669140664965603256270152469394700985147116009940891283519475682748329672272176682993494445340679073655254171748865839010393192874133368705592913800277273147754869775541198401388960452885541646155295967306253288304118555011888298415869115770818537363775060713350543268713538259132850979585614230274360395764960678598010893795565430875945538732132350076030077301079178964083799188708619632086790511588913741262048385411578488220395923594332704524591411473507805455040335819033847064810142486891972563811686319332164976298148495396460838748495439694585152579518091162665452367335174501636083335297396558922109211569119783167291844257925757550040307490466642270906643224285132454408076050309972583021790257921821690823779438834808656545165803224926641396247339605115247595839356366074438299366773118971243814345071442634906683367462679651448757604216490046578045668108976237352466304486513946482319660407267126392740537148060020288141194791417421096450631305594241005639877803076831545495507157300582014792515959046024661151783936785601612532406275242043711925061379648508919819095877705809924908420856001038860239431557064092622965854619405990986964765074089090371020410737732283300019434413131898982911460768793479475637926076608714832586479309319426065037650312207896059737211942645807433393229464562171529928698775723744217452435105937015224486976130482977756125599017514547595430957297867274007217741044287624195270575130818896669903902513418046187913963917519996106880395794578140869943557929398861400711417249894605120231528627326923240980270344039357213519034584028877988233814226609893318496674788926698874274514772695849546580773589496632043196842272939054023420699365934655175946440193569680887573651356552737827558456003178125785472579739016890446296702126248612178766264775483706533502859187059393901778046471759424323624082047979583793498520455967990254051594049454774417608395779736867376905855647918279488713678562976470361971927727368758174220619342121583922147169397052507247831658368690921206606029778144229145154061195058652651412881871106491879697943160479965128847403654083999670832363146792721324493626985707407047130584348263293188454405105866194037558732502573156652753929021523622074153014465759307227508883267063705821488431961565310418901791255484578746340538187505614044231461197845130970565453691268255794448780425882950076968232189862623811110723687449921424691504040400313321866823059154359549671890135590314696913736224077614431031226486037647919392677174935407534162571025588711228300980455394033370487328235883976509095216726564747258020548090639892790959497565422906184606794762581291478097037557429248089816541744855096727088920335142693606922157665634684417142514188413007346342117709133884972815682697556483084091332633671724772500819038332573981873743660364293416815416085287464587255653507621150730885068803456968232915354060692724241361263834962430252227348220766743282446251953438168663298333351231892641537539026898020923069024691880866165342597137031996465636551784185225207740037755013360935861416370449092199891298081723596202953847731659451593254575127621826588269650230832748779521264161760154839038458698458319371172093681990832889325916016831523789841750955421456573542447703079868907388542365511940355299976861512185036911858118061965525762964582474395494638849523052293904319208347004085959062477586926739003838567519596357188381477340819136711013050785355589760197241318688735176938889609209708119960863932376114367610703567567519545098566772609283078303333849478963026102904982778516773496566301792404581418889016861103714921870755368544212842300294361846299784470990238920908702825867759979329002406874041289587818001551262385066983520761015258102922206918505898797807610317527440586023149271114853812525022120659086590178202587801042247426440305081493400889355369942155412427940242883301635560084548061142519736000794683676743928913680375452258525035643374923040611881347898649501791203952139272589351885032274797283045553778306485639221525481817233208066725276659643162054180594480709373376273851917793186994730245908116531708464778489793524433572038061469870092327006538735123781189355588073827614313871047732133065852429217695200986522155832270762404786747201853835783437702235042508142457128437565714796893103634180893732997220191856775283873360133944177263815622028490159604474228410691468157779660193578485360756676916433461402954821501762780794026532754016988343543419531698259725727032376723271043885021457551160781078490367273413756850547512833318281681806879234839423579028304653257090996989339293195685942215104275316137785891330262383995724924625652092380982163100220099385178387862912847546474997380846098849157178387404461981374483906873405912842383139922683550617309537760077334415519711344778011363671293049539990019837057605614721077458334412357522587981973201543708493212917688204045074494910930517869705671177011419656169548746956995545794664902459880581820522678280554400630551716201091706454966577280912312827303711793448888192757525099425680572045715600308835125483545318216700312020988817566560248156433398561210335218031222038724546176492771976075616398999255588448247125397544419957528755338160752382890749579434084784098190504995472234917678089989735554281691198660291050548190046634137155573699308168787927857366696462826628267844983767811270499161680058808699835076429727402925188906394922183187369232560399158730451177448334267912516853853293533405574069546616393992231256623733289130824466051596075681864137729049551578853288990615412343781361699480463908311094735416191894425279561023915503630620246485820967519520566863096088982742416026648684310185357920109341489959132940129700809792093387285245068367706352271937561210705529957700568521654739563093401459950709068494399952610995037011491148583565840356944392440181375872950668205071295542099185087650711181272383052550942709701808367332460479643916371196248167128781688086672286327543572199760279585502124996042934207237855661033521342883540324720884075362274770767226570322161459853084807014327113323279558962703353311330191389309874263357207481014426060412219499873952098204314094001173960150011637464937393337425009359679835495980816817494264116175890029744537902464510011573256811536605504921822907182084906673068373474135408768646880362810534636606363963705084006032259444236806840701090414791408074372432537542045294549232054885409447277733086772895728448351993062406233360148946570102953727693192398007913742461289880620940425107182168700354182717824693588528969368387123395081807112652032316069421394350441642211804586597284701987470587704917452361406216647182684227650430987221302532920806244101356519019242976831941842247953230488722276199998130593434354096340873414940098361137992901040490216519800169653451050932011865288950013498554815797648691997535540019962392183037155704956611140749069890614688031627456504309292968564920493914266325600490954672462450603867027790659778255886429872457951551827889549293791361864335494956074796062993943328989560710185007412974027902759832985344536654737382544305064921875584905472536631374537077658929988754531817075803390144697612612080121923648496013191453758738420887032773631045444103175204216817020249242468543393848183239720117336727143759140357324974219076628395187262094877364228903555507099568064481385391213949440769981765712217675877697741374769300803853092414702592673097243425147389794333082207091984442963493682734555999275654308492145005895949858388972194908048002110310107746945750302798672045602966829024330049019586565615233850660108608524705125925107236890391442604480419106885691711560554676557754131337846734357281913557921521252441634267287935145798726236068476879424492454329593759322568038241243080404415170323303546805930255459808401814193883913099131378039516586688564053442504597686306846470385293042281253712888124063837191968251315506404586582122027033445251500245556971852044942712661755709779076522016314099243456249658234632741999669659190963031507721622959737941330449069123546628999767870639644275439705307201015678667651462562096649852069770710283319925355222101790715425549106689098901571435225232088249354832640582544332289933881814332460776202119276353556055401812466401180644907486567924930457530305406358998581036430506691788360446337600725210593072101922922418953223829158909341282287505109801463162395736714345765411805422274015650441113110505863376808693783303841959694538613373289247160253222936973132249379972928005992675567247975790953496341417002038663419614534418285905495280534099977630879343399759789105686041339012606507861256082320438045454486313325106637239101332430231854665265092939118054325741690275954071908417628867735299986425460585144807032455850880023749219853889982576356904694020369388274466818401399841773978038022542914925919574927731783795745010729161896999328831375419807672649180013064389905496374484069145828464261242049616787491900287079969791885341262481087950554207435264417947194040344796510910272448179190320555977587738427273813105814360328119623482496877066808719029887234172895279364187064069484639801089564315352334229003147981016684313694791961472060973085801361507055166513339144332448586946901204924773255718230581885747169914636031877933013847597598611209617071626757731572976133468570481409796915486001251242060298788553533764784651123129289985200406105400658342503451634685630309405097898362527739341235446910129362617019899713956710393977453100963054901054483657021671991872203463575636382441116170937888938549393556125009047936371715422408061034381188603305755612486733268456069417527934409497025997743501467019950271079144783210978457155621888327410710976530634168129793345934674275670724413469431451621670473376735826853171960542817128588708301593160488414921903243630580503307219660182809009404327179179905769932354438810503240674918606915784062898734473767092342257822449454348280812656771732125804023869289361125565308204506530663405614901036968658562063810884162112507243746872189242092630265334764851006488240187531107752387990519147513017011555125936509502776638656047599326777269553478063270493039489348979598091177892565374432654393742278506271653261710049130127647658588781300480840711844142690290625420067897649616996620372407499901838392496230801679713342360699757087490626659373346349331174723891567344412867677628500732867428934742984354169140694898144641854134452472851022266000796138096075270104077275968926615167444366066579171195189270912069311570060784613104860095902797295146546772338319753003929982023067750861479378310340923251667930588580944497178020124060753205842690453320997327935806562077891445512444048255269303533035133590148144451647017174096780541342209529918090602912607156833927661689267445611553209280009335523419347624811687507833375052144864123004693591272455168409493435643592020840086639728874526447641681222431979005740376752041131459356908294863650288665138667187098401912652087193821461049629177160561124132622984729181973501923264693476067359179204734601950214685020422272549906050039052717398308823934696132954605823559616885961443855177325568257200408640667157261428742158656293653466676503053994372643377711755248633346546866174710294742570747114524084069357459330581066479105872577087039412159583497208014347320216673200295921778311465479415676323580901593449839343603113947019602368064364710155265483303322903249484887401748716255541784323459835831317368567411948216488283219830392937820890066686416563563299900258912425367465987427578424453135056811633366503798136161033428769139977909395653758746991782052951266065435874802495310546207908286923825317348709348850922029899749216770759304665115811333830478324658453779995964224511055205282259855135799543314078046873828830918171688650474647342006016159445817592764878317510061540571533408027770017339348691597254483584995703116908905023479004182696112774389101113682498365112435221732941277060381302634181652357514835007798682610689357810835786811158166380254286394548824474315217144653188212265603371686438855279490837229672715058599839020073704352045196213006682618638971124575397983167483580286609024375336597037955301742860170982285254346628226050297822819229679749507068469470141114718271237717945439542475455823176370720020939524803055024861529194258380746445612475663032936211194064385351261733638375785199093033778956350709984872647563288157718587782973537054845621840616651638052116335535956157136554883040230839048499053464022753635053221312628579847488712087974239197129806515715622514535737622964969957851618947258601930480188788414077064277898211155038934041729907842887791396031909094756427746282346450496185589571867270893050509917508259060162303560854100261506599582940941882231711766856103431094090151955603594197629527151914465465701146273564760341664073355301078406612170688048776765829603445926238647585574773412285590994551261972615033569804674294654465241074799894679978464892745481446292704610242772494517285427202517075137258797350890288356512373075140216213117026404825133197504282209895138455281362688417732670088252543172435798898927526987160398846333076402741020725428607539146320563341900517801695481641794931734887812244472518611941008835131375554904941816728642441721880263881656275398573336004110595994336004451093825257880276648144257909554842576325666768618659127051483898044159755020202230844231648171457820102308761368940062171591863696647566801150589395069179486179388110691357391119291194764571638424398506767609270156013876254738775551308216149178633110756769969326398363601998430563988679303503631101462125926182324329202305048739735551038806183963033839202244502187780634180139029250800165476559906039088069177185244075096351519581930854853494363752693142834726012863215569558934759037521733395698605355818133404046834587120394074492363546970801353967029689205641532705761785074369410421620028138597409944580394843717122378085916106254729128941850143373320113941923776992728498792167957048572084826211789537450995901605731914510330159219504779986163997351363430181270766361962564218296135571474141968251977845129239951809480276157790515052996245646768594108003196552477778443101848753683776930481208594934751495753635190836645103834811783830402008724954329435980183990961161442520808102461548343772159007474654697078956825591781021535644406013968931598445159332120198273787780746052798480631885339359255326405680475871392736171274390494442064001760465960097267419950111801944219947030763868082018915210696080337311479275450469180708663306830471771276993888434975203615083864030923677079665962407466530320588557954353589859477754208465854466213117417321363819376111745267198453771073659565949816596887595352725655305225867778743619699554527008888504312759094143302364295198309281704636367105770040823556263457878747852344823998469437807398003882103551971467793674394843979504226155553063937295775976121390828294776160906986615995244347407208254872747416379054120320437632649767578839449115948526175508148236435201449006844903755254950452871127759024402682896602399138122666872871694391424233569071672197485298549065028669385313900278006222810546594919496576773408717385262225853195847657410136500168835483562369923544012235969360060512297048480867065598283362546162498884058080568387476805924167214899254667697070427975947074439924019217135876892945577148244404837002827609384443667265579592053332863638211834362027746460871764560182369204997521426141119495091413659399395988849687325390545616898630962962774556931596271112913890687533714285816832655822915316734128890277343355493447886835534106128230021846623652602520308299055735996294121284036158487698284476721665060508430933235779163412598672524107411628555608874176483498207142090696390405828539182621622899826869597594938059048857536815235174514964661426965879562019976643810050615041800687076584704534771470059633072335779079437670642119611920582425444418641308896296689603339150013243279609922778353395891846625759931945266902421463659868461586505934071484008604030338552638224638158915811836335966437381856210405820132816569854031673556381630196805645873480396751605716449040168382782016031003260680326683960468558981291340311753680129125576890009703604992591452651397757729834685305855369363518247572333780440075047551435090756127219522846296067221062160746123771515371186885040037147862817884264613905805364750289469072392890947226362566212572056919773693290313934135875697822879124283350725027285956323478025040789612019789216413238743692991691397743472714978009964967297895391487270489581227501458990446238905869642949272303541293353238761892115645887644297136389781641322138439455803462655791314402914125011688519989228707998820333274588508787396201958428491699988096256663978461402160950597299728709612433045762531292681564329180373839481915146495291988536197668964987775347004098933337972715949051939180303124409381216360642720597499374300957961622047067461174085734109744287490240722240719200849118581815181242763385231140880919338699052473755179697915334836986077884734179237590002069645477898046544209616558245456575726010982927946212016035864590980012146110812974865267664937754855501638009363914403874704406807417307111491203955955647637863687252125866419965181552726826102491047161897279219963728814057729543718948300129206125582500880958648234350311584272504471441799240885831604436354263131199883815034474732739773265725829183742486825322133620191484736976267555076004784747507130263315279144246484583105426179273255959789950216364980568016721702398636422151384913678946966518959963698189528929209109158145580415830296387791786935412183004099868888870765056067578452348837144892995803139722692500263442393372937783612199894600460805192918157365071406052132436657117486518651095866553176699331817383034483252372392809606769052368514645582723843589209066695738354627801124291041420564745807139444790481665880981587834729983910310275228746947404696773821161510972471275609181821603213271154482879902209158099544671791023985775776007593706623699315285106178001622280013068950348282438059889742807809786337323753673875156399625002026889171560872056819803813215927133464986079783246988263250521724677323215850527677276908073951802063323920222893513074342659786059370251069263878950489395563219211666113551555981326905757540944016636894260092675520406533365539514595944303364729869725224613028739834973048301961869455565752979106778727754721134723081066651220266183702365900835311812752978241047417681200547328540882448388546683741423365059125994228687922948350772627145754704620061650940034891292603995543195783268320040354268718280682549652538315835325773079887414298463873930588432411167585453287548999719550230033835213264235652711070175079374880683078560332541460194332096770637493574153953300374788399099007025314629659804152645589779939487647541072485093192760329489791717413621378419810350684961640393871356109818785335064948225067534562645152529774032989275375616918174853755507337163704805113108209276849359945306955812100822853145418170553396237627676852364626589367737334280355878578128082111574306197915537124356435476888116318086833937758278931522464199549300169784479090007976647619878336146456619219757545283023899841128019862103849883015774370873841082808014473728766681903237096742894197093402433644581613180747722821337753759924689494885688725904871418146023764695995080138660434705943517498600905231831220139459184889075304017368699612543946672139967231403034936228627011018302110667511115697441309369448508843086392094696380055670063404787656103708240980486788426585055996477627529334517217948195455073849381133042385946444639016837234401990718808607747458465023324552057248971165150373546124839533550370716633546955833592208900331481109310503562524157515546073932444462024389516294507183976761698709746973277318500836328590628633813257734717679708600828636578477101424365570873713729405753606851996199014232615351912187818324038266010409932276803870251828268990501392874943375476282680559264438064463585291569837975102408599405715559620169061180606385304794627810116368837111501855642083240988162569805452419611080501075913425742311627438861264992086892643935521215084790616735964953417920335729931922987009457311999116978422688536651053937230734148336277659461082027507201354847990537719775211020802148813910728443483895833745239607913126446165738853182117046599366534312649590347241970089105720731051403100314200160783683427754926384781255572681147907979017869070658706347495144162525321346591354161159377354271127487844264010320913869535451417510456835940101622677546837090867791763832995134146804688956935286804536200975579858801075441759285242964102754439417498319758454369167154537583187985830646715342764626016617073652015024125094132891717472435772793642305284204915384313671868862378670068866990269549824223482653556886677643797575821735368172417852613962129235281465101903304020295980863199433281222029898589174133129412548255309686872331162921846782131002620265685696863338986031149068251518406535826202849203691108013004510658289976889398622302002987302026668239598343372148343594114186800944102423948059712951621528595803182583624588407389192471713075627136269742883335952005433740229716897756514385002397963122083229688685441518076875750485099198641600385192906490187818432826073803657941537508892247333091289023297839157016547098990259096337756258327711521976990127206542767363431443596338669837899069142731429877121028098135403899051819659025752871711017725535981091889718059690665346225255996108710602903850682610373659519036598094590387568023489581209837818456632847510122625581176153911397278786965663647603878330958458695212974136021230392623072758316201715327098091760294702138897544744047645354181384402323951927105008365411261449874776295766461315292730408262464670170879217673162155902352103397158595470580242283827027971494018602228872477449515019204840639089778470639368376384247027691843714011326399534905539160928436499378627081492308485158569104536572034214111838272419259960984403071513288390846139536707141210527220506102534051019402940749759574527174929539079385860638632271697588309131577548083427308450034582094375678511762382918133228500723956526732881809023821928341494144956554284260221379058861020041883391973178632547226069678634981468979548112924564919562757485899108511676602352010867035720624104191113989650805631017762544678994028211648920629930993950416269193632852505659071223682642913459750001143812662446396194029226124931396646008217838602422263402909882607071413101340225182292518114507453249611798278098090904059866888739465434533741529283527320684520374228670618018757744193084575684590083048668952181850546205836400727652064823160244792294576503502716102402360482760918929259141865443107973061585721689758130145997794166716858356701456279748137762877912019970773376009154885054854373491910724448878268507976727424749887750371695099645685066210523598133155973577096559064049995701376219792921438423190219340151337337146388569975602575260969199204167969823087835133893409721274136179671333180216106553351478401227180500056058996254410874291771059638614888712165342027420219400108982349163214334109664552364564157442547616280614994862262819794712099533265692883575707687423148256547621396657615870188608830873520634213818055080953871062643310979218340123910155873234497899286404340085664332440355206342945708350867459782220190720434918209816527415475561920532871637706698839126538932588300907859330973252798030071390325461116679061262209148495864246313746047429285121225840905884715319438431133107476804463295291014411788533608414724183078822879553889265428666448434674012601752783005323779504717394619894984126586178838997327667730925977236372511240936935715309934453343631595721100047780613195625664941902661002920527566702498156483747966409720938614287428218067177294446686422969898060104500552718204741935330365947648428619741881735991210918110517831717355723362048767977349797951642582972286108934350157998396311335671442077751224522159445888123539318317898427767907761957475125202725763459241059992691541859509460537709471536644233681603453774944782038031479945248541902415822547307801051092213830438887300974159589762439285168272417354024953352564978836174476519814621487379737335020138996317498404803141747331125357681087728205440275301579499212248228188315859903217642180857611795898305076310457939415167540135991645960889661120356360724099260713876870353530836023137161827587949437078802623545134999471005751616584083140181416096414848555695573048403239322052485420840917721499157966705053940949709130942603584424107356659675150594129765057268149531775654706723150313046360845483584572144624672088377626519460492307291085755171808704011926298599674373996670398429978562924491578367945605019382322891997842022914384619287710339811795327919640087064849999273641610192982828364419870228318235369601337295269640031432055042715716563003478017192464206518546075681103879480426458869192365485930336260644027694822097406835423424397801948531719202606336030218984998773957051431924279415742837146691717756536221538380395561258833625325561989888138394131519059407836144156978797339022026664366760566126034177238527338171700746543287622673577991734420640145957598560581198520436099074878620106330950503989497135317475818349436118333585257563921246465585146177331430099874708293493663050146531674574921491274225822088849460920942321143346282517160783182427482236806311975876268107227796387411914481207607961353984499878324587780855847079140358040322793321570138959365817735396784757753859198605907702571498519979291886207175540665044143674061959756902461075245136349660724935824938152862368659264139236327584459542351653026603370230664555840862306562445697110879197830061029764884611057424265295474176486625207870400490901790467103598496470060348647617110294936726514970098727032847990599934789281851306023690074930957379371813869516821395468129591464986234149183262075502638768248950956748676320264693455175510292818249839119646790918239352418715552522863268318942087699775967873611749834858899300898246311854478422410113101911458213306528058112412300535896490363692652436919364069404865160756328368948571924613377198958925336526525704820267206476980220983714151087480827271214552656540049463226137117556522557855785438620484397274512811246989303953851327557208738586136332845154980999121622176081942298329537528843084974815265989509596031707675498664537413763046783260728838516515898281905983662442409841239767543381995641388773390255619104043407092540587331227195150043907332570074022910892710639857026423394507230166256217803265052508088792039039830239056304093083018130172614570730839500184286195290125738124421806436611596997022276933679377048967651600229489255184171690301299072120129650133350627007142276635497411119992198196646987095666400665324210039471451781291000017803245406453689450147394974900566906224257146068056925494622647946704886636289350462532097847012868109030596278379131960109090781603725759888909156680494319319589059697362378318104294372533961007287257463297767480226244825115785530275005860141541908753722113152887672443495488939371268118235765079757375591862260954758793900685505379226352071301751998848581413739120823909552910494808863207734526534495606973773156538854783575430682309858090330634518463435242119359009917725193273291229892982399848033143071342088986768649183176648276455164850978318312757196668594096546739916866673803114287725605476721566676445897568217849958036979388003509182753585483735102380350966032255255659914155544417369194496215692433112650812479498775233971600989640432045163241566124325014550343166056753606443540198147107297747801155023230507765864292355729797955055139760232195070145877926441473921211871557593117881085673494674367757908697004868600761048553967400939668266925299485376913467099834065831062322136420749971036766488090636658182890886783654476560523996116874664350388545496579393366782999422123905754675789611320021463888751427704284851614103790853626728543299282619009124004269300184230897419472337188277076536459963443767507305972448909468437335025368601750831720395152360017879073227288852436370333004444092781290593453686631414701046593418834746892826299882363013060137669269882177988517212454145733784882303824671916659511051746324312790315608741488607081554831102132540133568685405588343101887088938761393732502340880796593820148048303164481123176201540243450258972177670052598768575291107994887617033468123201993231132192874341846612599870181746561179146118689268370252016529911989888749488292420616964965430894423463417530646262066320412705247904652222594748526298821801665103773915209569257176760513915129079083306308913138467076780713608298991899449053998432749402438897106017627516486543243504174682174047720535790729788190300647621795656051593785317469975436785042996228068593836058350652163718143758120359463898013538578900875386377999442527513971642857645585388150959986542599611112126352521835373754089383829940714767194795565653338103356092091651358796043175645214900210873745219407016607907421171463892092871847601609024923191104226715102906017895674642383409519835911424086426457110707485300762498022067363837798445988414775150716229321920310260500551509076978943194378348211223131719769687308328746838329398680193191653702663820034824649888828009953080219176380419759462730434237050498168626631463313819924499513504093368521326486221662614304563801554167029975670181079914598371430134003203497652952164385778342024804974604813565562787670014116764532765709159469878574710951707756175897195470146914052898762386344666075216918405152920370643416714344581014881245904108836676936963016122140430307962334187927807074145543096121950988033073232712251430746743792949084700011181578721760472562843687444029999034907235233647795614826072754304750733835794169520854118581414211633663318843613930460864044381203050087374740743035198125879556512101543796185401817683516395531429788921097933506442189220638279260170808596615134092310144550959805004970933341826034628222661365245786243689338287481808083116632140886018962793337969179670238926003951088492322226248791469952469448221322207162281876337541174407176440825635977749100498441131586645655216934794699385345895276480298615840226409999421000433420644939416446515860822749727905680465910580231998140418166646897107038158991782599052443794164767665313637038164955688078417197066690888187111892963554097089449350838086720874087385891678280578464638730133563290056081755657051868983518288538558189418761846431885541883532205586551491960840135051091304296438673726701769209462568404821695594224381628363176054907299398382901877071378648219596279582737284384930210765170111412097127189513677811336345225119432564060929092039892030311428693110299616289715741651353122650976566387254150218818945769606338265402520174627484331378659366835358927288944137222712232373031899762712187563590305524059334406804067165885499108922339510318522804003163077793139388788124263739945766173505780454864709713365612269105452680323351709465782235132634711977541566480012164761891538394454382707413571109880273825243581929452706387243028983887862373972699481019099564763398726779743818824078646963720613457502040438651404814540848637229480891874953336845383329185692611600136090526980748507788080971992207905493846449129981160445105124820157681342303697584597931352507649917267189783592046244135583539680204390112988082084879270599398452081514555277160455545091663910861465981010943648552995834158940501132217591891822740788585450573707541719807935765713476422566400785520271235964984181478091852475405178298598358719450900926456203221456793600320098036589140365924802970597042389340141784940898340588942082813754108453271947659401578491808798841278671288346973044453463300113407842446974676100521632523146960746179723522751888911366108472825044733387698808997882496174571432653895931989193809453735620069779566007329207375987877395334012242628246381176046655295493277601516544433987977965759642130364849538029733629734054095365660271566620956242040189725410026903088730688596758323634848608003136749337880469881081792434870555858612604433511134155068347210280388630798842486479599344269107098070530828950651392898724560947408991150499159326607612639813504186421268398792438281063901902442716735076462402457681752412977343770472115340861680417829499676506858062512747529950655953249881866111872216992147209556065475521976145504910999069756842367521533929735597122527571508766565966450271917178205293885109369447210327912997299789495953721796541482204684847107971331529242256581065964907688575121283151575700891568839077515923394970555715543961203428758061751886703983086783340810134816839437033921934197424316334687716755401028790595185546970244107483690998853159223576836050185875678557363745857714841063401334897590877749058334553977057953521359016826647738272508556557813548876359883200278577063164224046839516165716965633117711645412249718086216525530845080263561891326043596292009640323843546372129515947537029341355782056091034650314827936141065660345442082853716002311366813190919641028730492085004174370383374462810464620942776963785580934275787598784183334039966019354202671488261281948862553950438151533608881983528174947354252961305205889894745297898192765362302146492716408632029235659299419175245477614408430602237931856760648303943416218753627041474976139638429863915287083114593851766848536922452479133970185679661898100702047221233180454192307994392215089918339722129466485426691824780579878782653881338779174799929862716454333930424609112847414100761105420089712585366728363148608986343464569341024174867567648864999320167607691395117456163032737449804460907809064030467634944431558869897372150230602240876896280899677720082954009728621969369799908562863781892068734312434251912571665860848853313223426184326055836735173575594624744942409189135202074248917184402231826670207364676861018624736484927580147358881296157116453077773099187906102988862871493020467922752516710370807163943912374316792866821934446224765726040705459985968287895948181229609966449841895435505126974622222840558216017815638489324156294294102354724474406529827595650852308039881041767531095394508295668667009805968039723878307108887309916708399098666703021614657172247840852262333384257208168100733965346032149843206972663930918651492548013701038387054784958056923908090714701468031944118829167741001086760714636703460970165877479386198655725149160321261997199738034901648422675449125967393123979900748310553850686618304829064433556813925304490175567549772245865537013114885452145575276500340012894742742237558340321677426586029415028540595957341787349070980159085826530220465780692136863441823833585505804406907890487694695230168242268953030195038490457409477237858413080942448126386762545261790718566784949159447575258904329859715562539168706640500338691147025275287746323076394773662205021243171119766975540707333112675955811430766435083776613839374188211987281402430195925772339924977456535991737370482345525690174683861816059068502523687172292558204547178143199185807494916821191010614101754667530762028915463213429187226015691453233924467835360929239259563179924773642655885414299302894571429764367323222629236024015550305643202837051864402703207009413308930740789714593411354663062636587285718897700556917963920940895404949675776691668312826151980538685795163887456933961269736698722204498574265207857339345005521824959736483872781039461205445156379796120302916594765746993415432710140747457728926544229966008021914307516320121147122336288689110031419826976208116102372004620991321164326070691988680286409722667809023807403593542144991574619796835571481367714201028436827004103443187994214361381197705387057025157767500874535392877472019654504906215944723770565106196759999085694877759391491159420150509913677419640531912235392749755102752262125932903159292020632274315631639883559894769491278028259845083583679986203533520206854605592167865528357649815669532315858857238729888822191559448037870908916485672990721373860536043712143961691038569517616028475707074122088557445480386155492999601110900895293056150928346650288039831552918890865902817664933855036021130100426140461218562027290863585170570520775006033082951809061933503365733692688723114598640046622373484736298028779881021471019245854937487774531159628979254055017807474919647784067465527903931955658138966925439286116812702860780164924717579476900407138384187102292173351898940764080897143188308922163936596875379870142040037849130127501003618935528646480423801407266877894994702425251395683293667201267277468876032284869428730134997355463449841082903990246143112485288482555246814876273994271498908989640658846538277748820154989400559486508510846581978619330248608338007255035370575267261626271208957483857078107167903963214061147985758927316520665138741418399014152408069427164153124841465750736716210143728566150672804848209459012141153970570484622153904550532054514086490834816933675066285207085044761687047642470629251984218234056711931759773850712138435661612005412914870910999681331855034567552502739480560945533332426165004974273699236895955712032345816444506183980944636812010841892621331466567215994708198176866591488326823185460165541728834534167044930916637484656897676342312018983264383910341875841362419674579946492022219798345930565636927568493597776710931030414113073125395642486385014555007579436042665449474702259689851026633743830181532607046361041203506982910077402475233657584243492598067819610676612549893669474579320383480118918046239934402048605474005397291988706489083532738462542597815237701653934090663961614181369936262272422063733819843067752648038741771906134560708695128829421341889432614115598374198430965061807992482485995574739758659791783500162512479117682056611245687897954672289441161207246221821503611187196038675940463408153405209319548994528013639239204558207050232815917711079086385994326625268337083516221862790696351346100018927287897223967334211224885525379496233480501745645714169688636010053871749288214974692896253474032490659110794774699550166290271429846508839179574390119154423166333872790505489315733714008430333877117939845502881051522538785585885276786724654682252601394142126380025151105253620202850883368116711791314535182745826907936214338287363671478550254061831507426381713513107673935765006518722579662135584845251998140046504966442936944626432535342270481087358438651531657478369349438175618439389101920993392079359173023513361343336174093788943324363676621020575206404986003394762611773065979007173384350861190466728309191914054876182490354096036111717587384282953107129788741300678157290071872028525347373683052683882088519006528889920671141417561482180485903016126993630220042457303654506308344452127181404811064626550218334918087281343170005938945464777807178007554115944795663687523130280968563849766467416423979403809780240068223930439751487761855101468074924443130493684240279796638069701072185944469466756952631588382852626134002780565139541647267978472018739287343174319563427146861286870318680268051307783311333649705142434586194339937603831348919536165221985717340060262681642333152627532561526998660446742821000163078713356756417605706103653972440343499640755239144597000424882780700901824785204769730606818272868950111230402025965464639168826534406245138943800868582630992637073830478363038980860109948994125751256140153446384423708749095624413019599875638910465209667545877660086590395215269307249475934637655249995739813687046823835782221350227515627717439223995541345490143078065888871451328133707614850257685232363829331474280596688096462099842247620743942690027942917237589747893279856242472965908532159472053323694904340279662663074027313164322304712428965781608109046022568044881972470679934948937439150755051735578827367466301133651280628067638738944351073404778542844945810324021530268892670928927343216222886653080791725525366482531922248604671904011881497966918972383904899214499063783422472582974487571387163937660383531958221258389950053175670095529364850788840429000362324607985108094470411877669656985270022423654214840823074249659128990965088853630872543273215141598918162875678113070516256851055815126713593448321780267835089604725800542617103328951883638910324473716748320591787336509628297455969434624092556528166566428133690259307587404400234673137376777924867261026258403688081693860941830435421605123289943113775339106511731742579190387744275557746660304066200990406304260514920298704318460132738950909981527030643369446904100445712022354511710113287564039593702423317102983934900820727390364959796732460701174416574343254996117806917646759647468797915155727815162473060583345263648512898167784698088189911321003939555111869683602326765781946083927775887735609407559829177542808611454330139500455246551242910049113728859660686718953557118903733300649089756833516500494824375020133685157284996369674642591495360373941154960982344314351093202218097093597803295497595988950811043501360621642003040542535251820091558762332175442175880859419299401661600036343910153400940398613816141852965918958274686221760040075402240523491448741154144506035042563623296960365972082364925594214765207713745747951220023253307577273544066672546063855660020024685704460037275403923296087432532813924489275962636999746081980307612158694436812543464760058234517098658868757896434602270548007083790041330514172192659415761568791150191340297485850517148608173156097398981871178896399754385938514812712285659202786935286076096100145004686282143308100288003423799080316038850406082976294182308278380860352272498102367705906046463477309524024902511871798642433919025304589573203908585078719522550177703765216266421852819817405073400266637251528093405208116710112696986779372259856933495194326932012590242307651827771352718844725327780205511448358644478230115471184418352293251149325726988617491226032840207277788433002018243512889526264348504018011766921894003013846230392559573128981537243816953077315894785564602548901233598445260305842110783664177049843804227277561814636149708220529789404684196421051959529763442794493800876237527458736540436860323925681203968153978062031844117517340635496464494688643129005659923971039802605527191344412176493157670125023282158682913399170943472186019906149947270419372232448113657773647843342022599969627985529882348358134519821814256759243498863133157643554985220161874700944848624572901415455918948887077304374958672079248383857434010982500628961660799710944183699874784439567679292388862416024436902715465276002249393490369054716744829657708307392421001528327233796093569239903388244656012980079191764303142021942373993964374442508813987203110473304468399440629881969793719757735325419364999703329803095057301944905176813411652445359329905152911986147095703537452655787424518568889601351304465467027075880994609033018356953660132791718794449541015603436922864802222470447675869609032209684225636134056348368297174343949134503501545627121130706912819682638673322131840444414977037384509444617548305453689936068205803889877247411952389292421637467845624985427985031449329953315855430027667154026296265166958091460788101747143069917441998658473290401655356658576263080502414955884775334898523646722389341636565324794364510059025225863213646412584998467961618435523403523247211105212266360915736027130213294482089766141037807091936558026221817849571220758511904228780008745928677362763323009690437803137089525207666717572718299861439365551183716692237254194667980821666681110395660439337503728075545148480681660436746789432640453711566586375053151208127132754920530682220005256929850143088587918383385888272261667756834554600420387321665037563085408359999738344203187925351510988383385390032909658740548739885297296837997229366012923123071602055097339309360503459039551443505307799861679247161443270747624508513019789738699270993325789524645547506763668264645271525522543338805354836273916262392529667664587548946734475772733560138382737290053938966565922305985710484827743980497205838211155382009892096613694689317719911147471703733748269810596270612913139960608821877214852557889824960571511974099550713992866920154565838343101426030808586884932719229841589509264357183140924710470518451287586998841092873590287431203934376279851641103244122629263110011096914955445030945335769214098033156765480642125772776756252536621018085063681829579287160839823402147203536259820636455200852312805800326716866834481511046373704849973483990721027211903580088432422211643344450800225977952817971722699732374386451794698445764806394894918334385251804287869326327529024478904759379404285984527499222779721000238911215489383823913828729899317311947617390611504478279287691102376475502522571732194818147370630130884178898195981629995410833902444106927067375959569971195359309384961102865740765063676944908930185586498703728972723433457224927891532609223247702287726296424917698080302782362172393798854005036257155488753610089011456864982824376781505124828205504920676147252714652189663004968857959976775225939740603051102898580396262188197128217051926322308951746815864772494006634762523998541731960261610369241957159776019716949023993287274397465880436565936496880168528639775155224759997649418595026804050064096984351130737971104411979180057464654930780215212529810087314060469473565906468924181483912636000073624710556481982589380887457645362774299376813587654191797357229612700089296847136964936836789635251823038913103992633758596525796164964499089095524355086589025530278599077553259012730600235531124137228833954640486577783316157682986151786509241374742372088701308805439522592788530239430921659564909840770609594261296282479677881113353326295287479754098788355667879004291954515767441486784044823639223350956600727547939140169710723185824412798923388200237794063975753657251625013351636726443591597747506119257130162300909373451004745276180163807096773700943768059667142294135896008247553832459748039320607960449050176920705851236726198458956830937968062543402509574621659518879755057796549195504949286712332513375567387160573563800289429902488512188012405686792361892475560482487495532826387314646416420598853851477433433172591297317119740004264987222438106142110327499241363713375474324062966725181565791386437025620243039647904890050442985262446575662362188208540949423685057327273776228365529386421319461785260626049990625479688474585304413059373947277930775350781935576273441069215589407275736285969449663889092158513270610171061497976205385708528120957527632949857667771947593521524216768778681734370556742374024365096351799715330205714311146401358640282902451517326107671692022525006337624310741617874762431101802901331809722311238240044665270255791343338648233847824083641509142630321466554736617596256169665943312066598512767046145043556505676323192723803451402535421280961853640658606595686500900542984050046093548530620626770476584564323035557962139704012841450715513295891545516692865827838940339152992238823329025388857260584924330742050480774965818966106091810585454197932480203796556828039992614596920546380587713649031487744048091127428165482419174572111024497423161561692475479084730751663266098195237956764638767882534315088220817956674771470680163510596475683188983249712046092085569971337574144650469347830224327100384214768793221424857135656462834010324241282632765420816089448070169154954190788990858389973870706701541666533841958350716971451934192037445743820510407777297327360839324163745628589224133765386367495504954305663770843450836517700464664638153286744482262904960184686050368834407760844823970025677621323572137726913923930959252379422056676983704392607890348267373475452833285765991776101256955535019262055179939802157103124143114530230698589870103035894212885231515064441420652849534936220244215603285094454454628741407401845085733373435077630594261225019252553251299186342147658214038307979527387376105273026392418224264154215090646009883184415256430726001468614601161949130240366938247501714189422592020806707745491575953845423781388608702178664247860286824553825706070078528273322265105633445664908743615822952264506909608316956172605265253491502070413802190340057017883118312374199817868723882510105974751202349065416840157335014317837335248193861982871799710861170481956079258642819561977024967004211000953800473880392004724546787309062927968600542682022838886684029083133520768865052779186562901289213124031511478404650007571261779711587696003625917889958455320352877641847839786316650707375096690883613167391476683106804830017611360594125583902618497547666962172853403585921903452376715116431337260067105594143593321358059343196515463231783380908185782331957168023225636454354657396538915851269617268356652954529933665361650739802987340183886461244163651746666698938924827378264542631427203865011755309707615587334543102676089168151624212648705807750635927882007357177805690888160798433456597061009242403609841782625417202152788307191579766742885145058773813376144840008391264395689171356932276133528160479732561164800243647813394194939199814446345033897730483079017221897876114152675849137827671364048145222417009763802459275416672698590142034111588045151837936470769448992165195823326382816833363255130234263516944400844577342648919320741277155095643226103868910385700958521921628484184898827326865547042366752750752984312290873054198395044089420214166780821968098279767077492898497124238809335414495108294256297327826692300410116180647868542163393012745589223242478674916076157695411688302134542171596584609084801971964948722854229249133226957718991065219268235209734285293627988609211679170762948584749614997835983430872007004771021856897441261723109103558622624994683902497802482310610773890804303172905984770452243032100330495756965955759098089718773551327482963398864571877846910640355644896125273514486823105300277818843106768143634883686881519793591948058645183785865973102712078058781768283476422045804174854652725579259321275422093550670915217460741863450104795444847280432287590427853279892586453224298523386332572078549434410071304918160075095719817838095600028747582755714595912142379824103442011990429800083484667984779173667633916755981233073604499817833000271462079471539626074240190517782696828793073342737263554559682051321475779688516552157856382150610037574421068786981759087972310547187859794509341635317309713427557368480465493684608589327951938780548353518384579551278889710753852648125918197952271446731488978306681441294809043876475417203288367931539487319278428206140837821111238551859257372026423446466169852063384534060085526687169998825468531836845011643354224246766319745613460084963085605745373590303320585846047421171983158007289300135611575620717423148933047964474680649638129316429235235811390296699494680014506883857295049880031742947556236767437649942436129590188781636342231949340725849731738971847387427493550985064726969684412652067805021942042876107362888938588503873245685564388165788462809886618203203578230333800993059130072333413234509602597374605200435709986002981455095784628320015135735925460273515967564416365301122647127864032448240077379969176466506023873396656356793403983565680722196540488511932248820542798091297110077004500227754612066171669155913980976565982271696317371323802330818946438128134866452495995445735996027340374953198103413735458599614954983609176126285395307873845707594632930371488225193038171751154383500267089958265452638110372525488774392601354060252214549198169957987371645351325509905208796779944078225308077581699560271112775854486844027605293945142888002909538028485411012261577841491581407749998414962922401988913083178596669153882290099469474502478449025713673569726397928304032860634546819859014808677414089210890401057657503110419221614941874314587847613671477391830535314383226695453832992239404561336060178214118865092922079294966409121600359051153880564921627054464191236518908206532775891997389222939012002682322223697736723300393821723674653052650743914068309474732126032088400989901480267801994826858553514806570539140057693454713673203875772451306975960605679539003726584611384511323064583372505805316793447259943055217500853177863633981947217743849839416646214485505188770661689027887474197775072785946167848196488792383924297012302195264384876917116929419136764539897530221318944274689864451195233611358086995256573849951322723448589323113867978311951784387713506482307870482998034471550701418820531041426682294816008160950246823597889332394676950155947575022359260204247226384941003113670440974536586103080120593089275276107285263942575292843621863776425354278189930648006656963672751616971819907226019375711689259479744761248762888217986501367475075006383234798839649774004884123575666865716142158311084736091393450002732005130798128157022256169065526833030836656381413470070819422166484822104159343491908204056408595224038800378073492616503002317179993148259291180037747446595015659399813862386928690626523820612336236745964072098350770110829907902806903410917509635731456182319044477049548661871606922803035013735952241233169641834879908074808040868998221727551316195878096775216539898309620348940936838565394211961230810211034710517424164346551719207792771385295060267518642439692655367233447841006814559511490367828388175705353800389460027690705631270232301414130663168017467973350972541462609599578815941072780659665422853016083098094827980877799541513306341851977872303012663922539995594139496211004195460782520674425080328818050339389218756524445169955413764778416716373075584797233865939263522401822608031692767084682690712884061919749117656286999690849707308233756477976874846675305269192985079280366818214376796073050873808083014464297598254170078643973049610834186196966195963220184035916356341184358185982051413631915309125174406624049390924513588519076270688936627099055946468937668006920468283630462501640210274379178544802485128618216125121145700035734674069253679036890950259239891548171622541825245208060039060040615540589290773206873095800617499719203647120978841924466670920444974987482408865905266935889487752575164013543674237920145307220235357683454468120686595139327263559276996599573777441103790910715683586584656220858621071395493545391225673280629527519007549409048963943888064254557072622115936312439491645972564910184257540822004722888846634512803044831901784007401167647739561543647139523558199976935901084177521973362030832625761659684119366145853311420753211952927669717042067051859842499762834604123163908122790890056023914727625472304465613738919348291198454930609446294509615911536755252862610591271212204144684177497818630501112974003941119350818908357333290551144074304444675853303908198677458587064667531058733204448664381954737084809840190145711080151111444662950746065233051734594525772575893078637007195767928495422023913726568259931838496357371745540503873578054083223542866825098340742461917212410659284052811166200923282960301721363849285104773585298392087098926316984358857422063744579956105414437052488223358026756746099254402277684009359318177750785767334532073118530837973695738202460474500960452405560064156835540468641810641559159869257448903034714608636868420714152951953996888639944162985012621982654789950631292147960564718499931339244495297288337833552253066560811391115575999790713828924183735740905193241180832753210575834434078628766429488113359530078115142595782796409283781276316746885253232980285679247320453209385421015807147401809479461160486277678673437757511437592333049254994572062768423364394693270173361084440187565356931607880312701567743292110954603746698646305896432996195799083916388510735836553973586858039475629404022863520963472170394504703852571085313362447545420010525967121783578746333594165923235625703933128018819799348769808508853873790156788859249599338041045070956681978068909791304753127014469119908171380579382353672715797874399564789154906407693819236783667232181905821363990349731439811967421740486606919650658688315134834018768134679042643955738590065483758071528181289510741440960450170439654853590538278043481358307724451600378609737374314721794026495307729429552473216428585864193133904622555731428767902253344787868856379770932207047543824471370721081728072621619220345167663856985421460029371066131784467434949460342745909707794025711988737531399123813260009563206368236285830789874153227446212759179354631214921585631006889095807780605937282837406604517338147569406689687907446437289032404571746893162279915260767008749579463655298108006056320535932346149132211508186917115500655666554774549787559290607422761924901312867775801342108401628830872921226157765095221015080446637440329782265047958483949290880913783491105270189158666597815395224336302038194307797221007492952919014175775251699297714793500137189964488911520647362966761218218393084899260246004189915466997385219675672930964342169889806341929533111660152026890675526392510810172592947411597057246702083623791445765730763105504694796613415062949874761664184570782385557437047474057201870953392723123250003365765441821501626602351718472672153312107509640158510189813774914265452998666920870889036949102304930463034175089835146799025697287651150445102675835608349627733345414395387961968611228627183777026264999954378975661863845224244739492492150548510122167075552405102103873300284593613184584427867338231426176973563642708421202831884367381928347131950871731221910120316721141109395899922884674801741656760993787819687707634475970187870115363507042680620343222196248189679109056279926872063157344359507897852923069671951104333055667838495384096125277958389105487968484862086797174930084521443594253462001124108426656675868978082776276840134698294192958020330574004749139789710591226422104073255789131404774670952163373109546710714788243474697322536208971843414016895152093293728957961799009745313228076318182899433189695689530472370399538905839657483550150819470100336494607541568093909482754499811810031151431124371620602850821167716052901503038399817787498619635004890805220896906827949155038157223974665114420407121328005606536244601968573857325813809450794347406603605435911681038547455413901005210856826964174364592697573011123142761569164064382930414419125809700150147626045084302994739777044340602558483155183709862104371824449093244999094123969680727355749909747543929025579847970934821903280850591023318505659588569341036975217879661677104230494235235108630072812871321479327804020664614262300785614084032598348925571208511898538223851362097287919518774650641861010501100015239214019881155010333190671539149661273638135349062018988011860626488814169435292751302012074448506939497156569637005281044364579654008558044162484257185448372086643338665752522858109482892172578391581914769136460326844762022558337884307066268201365625670604291660967399373963337255981754023690188353530079901593967249287745723100178133888506294267768452361064262085472070806053673762684766876846210436566255254577155820968489551256042709483869900453706023638867136791042491149199630147564672600279406939362920852680415939165569428310137017215002461341255538803212017480246619940571602598114205384973309909585864771311219005778516821354656769254369586839553959226979119815105678624278738635596963515965257801008877751613948594765302893365917624022970657836985360711004953475675722840793387469639698205275488541386380912804655679578673802477962455807493572388749181720103008919889932379533927562492951430639175417565236205655375337478403547514349918016962421277305751753172714089928417997105437997664693048399857656970388916180268894828664983964738224030523683857879176549873616284716015227511055535642270930341290634121405037470653876110440576312776776879558283969360687974929924730557570145071286487760372167136663996479516812181508956359322145080853486264524413804231937636533552748353332155834128888664778013962249460243584302230591757415527544778471665151580601596831434699386022411670339610331434441421523781212705290041529683283581427457205480763417399768540321142787027099465821456696142049358600517832030749599849994536775963901544332983729598770215879840453042417236885395654311324912800166886143213359018145988153451156496930872268799815440163790362584744940276762231405838302463232783555897049122876375516099352286387594826470923454896604043955282969349632732961945392634125404435830649127279699414425771537866021215962838480080776486006844211951284281111860656338162758796685046790939303024381941471345044461099623814170804588938597963438244761200943147501391451102903534584642339866533775034032887511784456217019070082687537123489425484526795290596728991141621687172072527895413036625313121616871840029084914010882474192903310039585332809030568981619595841464035008818383544776616176408343356576282916036527855053342920173444239999129821560656392330968312326061134984745904753481757247935228998935009434950753963734828911547110172984407907116384882298841792185428317498575601644356222646122594640283086477663873594598842450470990867877167500913930038211751981118425649944996192501939380472533739945933377312525246306404342992510063627726440425221293353639838887125586502821483935195378291219232513295504794270774798175730690981398175836426749156756380340241635030089974588466445595105263773038875334873440217725854816570326003356204904177355790973475984394759958454297654636741210753515070138512126171017094388163868180032534456078011389315457232587631687591414183933656822296246600914620551459783379115646479266635436278233025485821978207099747310916035110647009748740007315222876647396291277862184468355500202043071914200728462790183186397870257027722687823910369724454864110588891669111059220294449329436270354133098805268800879346170956304846028827660119070894073002820066435986694309912883866952379298666281788984272697048886044737676094202615377177917909677512787197471044080915599067919077234172080808599042860045454567514227713847378234110053118244306323887152844086268756605069723478477362196202376584411033721590438118946982931306928611598564531398931399489998334044009242283791251755521746218912876051394689884726771874665047852706643625748319169084915371258805414540363267478695396491037240057461302202931995031019877506028802379750025521574996446424533498859159093695439580845280450049366398305637822541056262416832173011323746636508183215513904980193919962514820348523360352029798922437731111500916585701032600353644447517742469891589357347056587514976256326803969581696949039759946106397634323054227213087624668573467046062234937841991983801309939280236522741919860542642497117922820503705375874271366672714855309460807796290809358385465468349840363555216845703430350063410235028534877663530471250688440872326675905655793347845911332126078901928698099359636775783128957269704288379935513039269512405891998449060463192776299056460394768756527761889878075082021154853642537919707547290711263442813605992811917357099215255551980276056037180905189020718577350555232713913962501594272539302371864450176617835950053674245283533462966004008468072728533180835272486343316020649687387392161609559277707472091863836191285755719394844572279339098413065940599965126384799973332898272447135236300117319458797298546955749664148606783193641212157264534076580706689602531854014782487479728063120191667380722377639208723247542101321740219317052468831195661303656707030521912378617793925690762722384770505239270622228374942381430610344037798238210887741439631390151070820312754566079546433713534599280628719694697255592487623405608599760254233805356029198699095607613736827707044286670464122474056996749209859838361282936506774498024522167809570099379281101073932308678935464775565148775074794665008756926950491325561264280600598839499515516257640827798160572755744396120181474978004513217821297863743751099747673376313134440669322169897906481415224596057960363749293853905804580982603556819528939522166957415642204303664372299146967604386441942130136759001693242269349130492467027077824818455231134611034534892733150600012302853833423036382471550255513687456321669366560444146424555698182319274119450827968870469417670296601950745024985165298061868054638134752514384332789919960927108581220089357662225697993598699221499254647176821012765199595978247005014221747545861942960392394590928828418146877484191361418987382812648355343241016964934655262953455634617083351095016806940228675056776344571474132177751673062077821877064922444475208280009834255704577849191916884176771786886303321268954919764573940753700988371400487025429260329638779287543770695604373399901002948526381500326289972855113010369858193267448850522284219180545540822774752760746538989050643747981698347177749076103760062828906194576396781299288020027596729449861547706520473219541890296708583780605695026885991520228616831779318138111337008466482823164294019403501667489299392408705756479425131999586127833097352653843359384167524753096842469778191862434377111559925282827313295136978782140742545163126864523275780821743915421468894359097731815658022057964044194212253701479918927885379033777432873409551174137835201919791527965001393868848556937474821612927167295727856384738632469385840529246749040224134389518832380107931460183429162163319657370015979427390045000638416513145176559085970026470032213022198522497413915779529879290963497289851176018113744692209425310313138344961355993181788354416471450387855471665976982467247974403116606061989122504156909044764662457128363820616674275647027759689746278418105147670135804259038575306203657293784016491669482713592856927354306769178867000492202732316264040702550279562093496216227338619486811060844935895601787085883133844172887638909315374072400072802532562764284026486565019686979744304259225849580474179227925340055252474495023408392656172390930942300609366303234802021086788680896591816847927368330143271469568445704936542127385236419762748941760376029752016153593894487622023573913546834272594628295090576514319420959551607261274135359833191841235784196421342887256687389708438311410465856003768822032463086565154107992964690465777065237950534596024614940206156054484306437872994525822626360919700634234569581210810188042948513682867398521325345198519868065279201617538965618411825224252968934634983238786265738322488214671822123921614521633252756700170428939905246548258778512412518561257886894555316654975464304753503190355902321438128581792753398401246082389071705460583596058677199021834652830571868277510762506653709452988830211962730293185889270847570148568998529665057338471038620599638943209413359577964476992214153786551124648537943925407362192752468482382849973125718645765551508695824151349798157017437827336637993430650906064980929838630333539425021822566381273209743546622445887643499407355388635877067206336811113229422983654052688215612702459628857235482642183145461433191254583311812559791473648401291468622198673758189771951882327852080933278280528503438813801952845546505139324690269115602676843585443935076285667261266508394535898309320803700107893243658291550801322381298871464809135644029247125244100245252544508023246157822063586871671105569328543801624683461967492375522775131051001267760576438799157199485970651760213891464063173502233846434583948354350279819027287973032028508468840198759498703781461796686462875466703998963042483342254904924467013293924725832362315311997123989446217658842719338254666216103821400699023027742644385714175745879439789795948158049729059777726218748279191542139015671040424987960383839873080715504253039320113817262336691434188476626755032586344926729416355440616416058126006897850489024654095367384485080441994812315226437778358928010770528723579813191764225440790262977522329943162440568228240489795858620420959030167530770098412550414395173705772057555508175512601790181200735133417723724762208120008604407951239514265989643403764245060829599666156088903857106846402914127173765715134887944642689107694108953101190999299956309309050352227772332629147014017864451463531187383784955438825008569273087839474528749201768864473117831041101991600631498818929990610152778168708421621381839557079184051198067597769599875313775772688789108864591654468983133474235479298051910921514683071632385535103872718754467670829529749053459537652593192516594514793368506381679734786636883270789543959667729832709668006279053959998294577731682383260738801806541025146172162886788358706619093677297966422255933690824586710321214530157614065638488320462046551157310033106271776366327253551051140113729479742423417996595373489421421400236584408113388319761752550589009245453137756058842247628652387606272469903021267047078094512414716294955702704018998666632017984230055070084407533279625699917718765426525703312549513970864944719145272944883050946018415295562514740409525798009901463383797769021293940853102488561567350606338634923684489507528233401007520258283062071137190594267815521410921860570542096103071329372555368225794735587462567776516453310929822876028379225930251318516581337706052092108657561743012334289084699223497351511631421745254267139789248050025172232090821245741107761163535916860465237641185208310455600513909589498730970708723111425470231216733203810854809201787391487934488837268545689214877830390016547741762281260580728355415331369007931396300063769702007625350507261233441510111428070936819402236989991308247424654012701940113222999932048332874671355383494579635836899288623290439722584493817107725905803949716259506636916042428812825483869715966530554742543545597343320165017471694261408641380380466595322388060995968930493981398914417781080440177680412631187307038032840781365152378659505510087403583849737817232100166230527219947879907436057423140992833458661530302659108802848943882627192860592688546252611811506554314391860473863832014952014199240165101739767409226043254842945659258581776899771652026749864198907493364258824303008229914088423037033492000321094764235749370825153883596128554028571511999684121309513297601060622384467853304303605283324594771517521109132184692968901359920399067517466637717540893162635269159223166758528381513309573351829442340194857599928875715896113735250073352994468645177277810729355506620011166278640684583474212201535461842745627781395631003503800901852220399726275905468272699143753600658655126345316534223994033256987619903270018293229045380216469805315530988295337618967309534457130377128599254581802272613746556905822595786920989804611674009391732335754451424181559427904164840501217527511162224841376487939528948768911062083467875763236881995065081723493681850049201395396931150450840631833169795650011516330083782711074977286046415193311497771862005817211835717658891646355701844887330656741216711045991852850612219680110732254829518774076669979602303847200725332760059467869526790514319525735477141111573062837948717238799010110737197033795111387902442285766119513470938240551686729869870945885528098965550905005839479776816362135995896454669367741167952365593301962543171459828163763773483041585352887106282009286734513178670579055862422877697703803358671896644007604521050778010902637401436327800462862893243121698489569692681269965570096116297810488083332264011584449865788691989155116498775950082011654710794954761627253597443140698950143479155214870180524406888053182445054861510557508245833483060153051527141034013461587176204932737682281179363822377263676950899606005764576074349083808672495330340119364736422164031877350174262838309181603371305308194700548145666334229294394379129613611797429979597898222018382043393751513900818795675780849881967116995779814800468611110202998559769628419388687612327451524627733080446573369546365493840400819777609706639132376542539186868203566854276619326843902885919967881472483502319505887747564159106418991240691253094163125619541095435308814642343408331609704950449309811673539831293735539341187320088670867106762928026623131366609838364307561568243371003247612866087421391893567521305950626336204982646550082066501877463331840481096537269399354992508460932223638918187900587249238610783215779790260035562226643917254444606289329459454295831001567300550754372474262118465163712077024599682774758902127077460823281087774656437622050892211762862594923337322306799176150246435991356381620607408584397425133159389863383102724114385075320805389733801159125087956234072913945303862707068178014681947724028939617221644175848630204516488795837610929850676053716776401041227878179550018233197260574617611883779468454732039891838117019778662208080181016483471431403292545031424952200821114330744664013624225319259875091575121739132432965349401209539286534708463158821504955168014428706494848315638437272630481694795792035566844577863829722889535344118520610069545041770445474492597086698863609934470061993886472734499279127222316585283623292536482593421073552499528548442312732204674710780642436699584238528637432273244201828343973400032241859019238030590058722292896105514993883061413500649369104739021291543977494536051080648720801311904902231107072307706242833919528937220911487783908790449596315222989682708220530489656016395945586075535222221595738349596092864920413661120498768165209416326912589404845282229036070277275509104234760715102608470372049953307356616520160803158835638796224312089007094192173450477878774094071468706792259425905227518180949282295331821489040420843933377285890253665084263277258143948601959376487549244711520859661665883085955336160717058520424797750579059521204948991346273733393517973537490955401805020862425294715561008799154147069653545729992240709325803842553897467763514808951876988364635894254942842207312036451005027160780398336131700022763357322058050472099901287776893533759857416645852007639216878048573675392949503384098229397970658314255553928295919229698068777227966397293907779082178517324761087355641896708494182323029269132494491340375769778800008521206899488519501187042430819704776776564770516660073820649884857171048322723457119259180652711670489692290985807515362751709550528429039224365004824880744813185743646566984452180536664675483798735679164220132961903517086414797337157754106151617424044495799580315561115791030873134720990353018949994658219299219647710568822829861410142019463905423285844381712408363322656243251238385947763567301206764410850147539814463428593104949686936382640046416259646951490319611104854477591917065843927067602400311452127176470833320094175688738759477706324099809206846305347743324194522002176300046622820238082778041977949338939188985224408550686669098726150999343275594219513614894603275485400282474638185574303867224848145712041289402200141526884770962461222114999228876439191910899400076450042673636033595644644270818978527417707745133958409576044621143276559892571212464070497606068894752177888846753657731308884831704130847083028117792594667012087718412865941990187787509632002811023755143635612304865546153298828299904617451774858147760123133434173138771090557709367065736550203175790043067229303144502419919774280967622124251992863274025837040075297281743548041063934506373267506843468818388748332354112166341880424123303403490967577941653779084125868798288610323527885733215533815198830588045853153469043130898096369406641813704154859314966671159813089944082545715355230065250822849617287239674650825190045324558235748687720066747949712163602820852354302783865361171124532148648794241321331700852315433727746076806637669961889512288049108911176595515736498473886069524716684752375144641521336548924672761225853936148416514385818691738416754348278131766314291169378556461817166096634029127205365302544476383065335504511464152247086512121312900999001968151695921524303910229496964390635521990651394321630365345397471515735014459156097003147953738250722286432679118022285454450510066868382649729074813258480871020887495051426964293739258136771841690654521561087615737802053527958004468491361369174682537172803536784350361890124577775833864677004871875515418115037141294549114272696877208861952903110006521480604793894304261211250474636222567539347681922221920063516876682582150682798801607357061108055578616867049474864042027000614400977944187614785497645823956249805444955125709106402708323908144600925117778765206380393713571176447632922162141265648373947107451322905073720554233262086352301211192300993282164753643692379063250335682531355433034789629153304492311538091995755532944987052801903351167407527636655981472206121804385730030729787921735685000125623318067425988724010996896981385239730619195592833694861190323949253594415836595816138391218541195151992655070437222451106336712668962567275866773882387907913364509386511722013962859447865442962183266784517002027818841924009364903662723574437287448563310872878958458482352508201562742207923922033920450828194622615291844607061975822852133877969632367864013313041099556453747740645777576849035137916732532182650044015006462416364046311782779660535756676037161374420266916172189142991639230484973825428942219985454786894825670545771208306069664015175470113984382899319336352288857298115482869135960324285116362192220766798190063884048427152608659071553704971859335226057118104150457934735396327639988723256063689608410315441364214878261192854183849957430442768683851459149189187424006619028314479859226445963347995310286302780183115008930007657628088707768885566711361061861689962499638799370291136195006215509591002663942980584231778964965066275652978344151497338825523633644652036220132162803213500493619597507026917278323701383715764323028881013296332873938245738746245096895082238330844176192408476051027246860191447430391510803777481923871052911279590551749882293907551274408036416932829212553780088491928702854675425466697357397053653624540072223989562013067604811339156349727760567144964090640451148094824868511796216404428068971957629753562236181688850027285694336528800131844121214112389838519527851194814679016652840688382186958683066129590397745990561487036122898098411382006158591424712862298600417189064530100820327940885803857608905122698760086424606482694850486186296517221848751835565288146631275237687067466752691724416729735456956733166771849284394313859957738504850610973138057829209449944463239430606875958119003860261904921098398719699336474633114066294511147152055694804027987358243091859738263977134041141601662377526935772236147756347905552752166482414609981486281328766311875241074174329874362753850457777425420575766273931569840438567729143837835901823517368770880480343742863236659074522885395228357786813472195376605008468619896263300503309360409978222914815147525771837952813848915680491921812383604122713582961164972471080261254592059524865114227833911564975466627448671852187561816294711964713806687771536085417869418386146607485365395525809016966237780000655836818847197698244458732298445308869902993378877952657197280899159793941934367522718663437829079368244403206246396018669904972319031502436250408130553533830653161092378952733391436979259369072869740426234042475870337917002214925834352410157186453983478454517589224123613673529136260171215544108493033216442300759697110588546958695711726320379851371929401448711950153715879163321253830793896944127468922739861011837208514286931971502864690987328481720738738152015911637945123010101966662036445412956291903554810519125343871316001524124785504522454804170858009744164360840375963801883860748953526626950353281648096816794488017615939929356306431457111483516674756546277594216725378229613379520048290422881659995670507607348704290859084996849095294910463268517636522463170134879989376887798420929485129627852301598830153361268342991776614639254947705193020500310556054936776339163283953895578869977697143135446101324961890191705701201820667021165776654146051368534345117330284374109752675183557592471851518890916898948657604164533212417028081148467590773013272547946094155097286789671879618012204433502968796219644048327886379960409838825362938230395839698373949610171235821842177439742703646911258107515945266355464675143678868797822902295599477157643067126525971855615110357476610420964178412476830158403397936011211878112008231745037140757004092710837435401089199345949837567061274097176992139541109521012508398136549562045150243668431133989738587361130651247452423215425715091709831141400860264890539370712774412440669076831670854240573003611786905243232054426823568650032703030650150774804738700240267292414480020515306773270191114548987396349292489206289712904783044926853800283148753581059970561483806927373009686610988863789029557324737732183929682372659640999994766795576053071821618693945992778164452536969658122450093564589944321917279168676398557892539969660988248722705869024920017849027121486353955328059468288469933578566896852991438034105283369383898081065416312507494946094474088864690836521657106852902937901140010171041875820439261982433726156111356858417307628652063100312749714469978191038819926090166461797540691029725658474690450719252449465833527641746399517886169056732659316334124585451782580824490071885017851428871766720831159955592926726211782561190445950693489617572283250711475204412767765750508689367098033666867867986680958545163564504567000982821304671244237580255335849496783455027631075616185676110242006229086221786801124345915647756613627310796173252346814090700110500979458634572441902662005773671790461232744208537976097262686877009464227258685007163645957236063816338474943499752065431904882687582535051569107427134586841794569558271770980275281686202031319544359749164686549228763080466621431318534173986503522645190258054517242379319713354798944313018430240118980856828428763561151135925450517590066090293175341972370373166267631045526770572841082661953953967680235004676392322381988953904099269167859156689219764620537138695769799990888413176891511374346270237557613560235953212929513393306880410662258095597530152275907114307261209980406112049595447025290224582981032604603666107907846145624771807212209453782243796089208478369881533998578438358476233111145529449931635895654517074349410086456375682365245225528902797171999867299638162137834713253882980766128714625534783529714630139379788432298529584543951967680386477081199962158170809443989580382507071135827079833478098566103008092483633401066437851717050086728560572566582490063038166592502760359401420724325335032907153406437209910495544172192961728518931878766754091358771099753068394228329617084806583434971118140092278253026159348139475517360355840894266447493309584619986206812924842999006904953095601991673592700342277058077772579429891924835075000262535753826874832363422767248087114413930325764451626363014157737299135855264761831061547505505435003978879153453277021596044566357030677066100192017932140171479697167384697333397070560585989228309253129526494279536183676079287994017708601760847530393479112478861239694532982336275032741764624321782050586312100328081025353090522811213357690673482789377192908366864035028279947062486247688670440208595385347241370469282593722752895964155974991677578726870096143793390912193869911363019731897109456037301611109766624424400181780650555724623398592568655386116826127043340700951800886897139894921319480765456160954465122643149669349697436169839616874112409269250879164951012251867524836356160571234863846892796456667649848464767165046561266990865485403705281050282325415823196482458286149790041803457596958657165789359912026924047544686256265670714416277114320705726232045705864254864853864287183259235882721005017819259103218621025254290610641964932197384822924672145088027677363100251061465898752818456725920500790060992633179350293026339149754789980559159838740722820121116031847446073130926422360572014068318740741436847356693028138596844963678163554669045752531854826599116179188647506992213268388078880217815079875262709591652828076767314368740762605540277158332846667905622524415031604568648941811259999795035307072839954188004062183769040528604637822068355374436554856947783615062635989936347870279090309974627721842411001764821590127056711820876687822757646769942854113054242846979677129365563719081124347524991889410442389988765581490981631338283443986788305614220699486564370563456816951020971434238126537052902311489174162697598468906754938151368823125531785534937461150504580356678194431847685134829172679530465154959807564116899823793686265452254476823193821655598816897565449898472233608040236215212637898570027320479709835073384755880885265600460111363664106953579734490868621432857776929771388386687549173683553591485305782457191099830298313951375705252562095809540178976954139461517202617649660795210633054864581189033232775355608042092880795481310443083142541175646937964493700880517884390646505986995299345622884978136790056842469066898234803767228391414146393834419705052555274566152430703116893995864095218468006890113619130090893426827828837570563951953301251801823500492931069727258057031966431977564341418649195709519441152022579601579421743329987124953984816432158840168231801567682205889033443405769062383726206054194708302698868088319400151779250677571751745937223847177220508209307041593117362202000388130607888400911177396641888367333204465296464459344197685964281262445125625778863231538319095654286792308345124027616888359652510288292547017458850877854674323354131435813989005234227038800607714317834252668029966525159580526739682566297578541127324599996348271937105702177276790883005849073633640131647993683787809427547616082779063539802635477089489921777344518972910084616490569126445840049207083085260645566055418879410176891602772833725715292633912480905600028233792017752640689351180449779199732378020380548451534642144112157409261171753177525342523126565278956547994952499966134186685611371726575357616124675639363634658529021988359358313921924913934186424541359344281660384057943034058583059516125841208664179704045005570901510314279790145799585671974561364535372447573259717624162216656098154776510792433284597303502214180191043778487240617468128371996146283916642534803096672402411784837905118698833839179026793076495649132796657819771695645747593331331342626077489713671970058790516411057560868039039268658263487063454055157631398616763810774144512259412855075449421595294857398986305684715535148771193322794310386006628760697072692238839211010422054182314187838700284748888389056675063312220920514807870613610842837440600890446146679737158262720291116842293247482478917896858777805977609418186443163400288502645364455135506712134011886907855574994102050120205843693594383384314211879849669579667123182969419117181580494352579524060183758509979343711308802640215428816443443067202863030612449853715671809096783674127520201113454134998391711172535385170214243067321000314413728871055440789582470237649047523203097059606207612027423317301765690320036774926942273303227577627517007941506913023523382295229380423742991955311001375700873574048960493014910013105148285638699842929417364755785529415333794939202440231719427160290231271594369364613047780157046975102606154335602353227271325523781649405525365188946498390345178857443963543580134349760271473843855119847810892866822945772575359784295454349909526907761869805012609732425756673965166418609433503841496183873703509380703801016953663046160924072943622113373553722563179924520868182716706419610045069000178351726815392178658474812406988299439446928475392120476967040089175169800447350134011378005521056304988254349320679964173418381132082260661908719833602171482565623937107277080044260302578643754691414064673799881333062749804340488444339372858514209290714069313278515053469681273452320463635666300917026335976323886142443801882404910085101582522932565567279300996617151675711037022790900577243226451934853958153367620180430790663469385952282763485280737392669541534068128659434699569118047243766089383156219243865641031313405891150807219328673916883238149447760719920810354753884234538967326548496844080635106715752371203075032887685369166123886017735354040091088039589275121002549716693707978718664292201401455882456234241446703132303501281032442016321630576537713870990527259684940878298118615258884925272186032895221824026282983232700817634556129971457746583785472429674618246643849029786530077631593791964425478394882826806550176331623401014632709472597201882333538813353025456539046348310517300849704261537367640620330137906478738737121464525553365835582825312986908539600263668907255056827141000417352289848217175999402680746491418887030638147115329646789559318086512230266369972047113174786349052776694142734227232795808700025982805258013785387832003118087215098462322707431627761529412804042731738766997695548191538084277357093281373760561766937072880612119558068900815993982648764512003321785648698432090637602562999928889730761247741228383269616110751648915228250644546268306417227180338343173765819712463951447878320009351333318655222338955660251647081019002244674779398750108774616269889409502813107485697512863709006577191414377029675485623143832515950385251731366442655028598105764183707048240607320787117705529545309698183519729294115418251958353083363474955997898763199425104174380877385642307717332540519763611239063521989491743905255002477559239394461077761413186765509240689222302864431715623756205532535947588834188411031832605661608570780124121329727491660000489927474140215834370124815741912988770947116933111041130464645731987871069570113548766016847239555580887290897174691220369251189724680591711257457394391145651806106080563786530895784773539118878095224396978001845823644395448244656556278922902372298460832554705494068221878803473178991834160540268599674872180081320778855338243052788952528970977080260850788175268441974747503008944242700277303247293819695799127666762690253597622952462332687883138948400393681704468721851013957132476754082232304378228175049812122184923811060720044101737240292002257194762803149945154783344703033464531637313152749162692772871965807579765624902962412134273947494949960580458288719222182437360162808616446829421784486643308194165490980503506193935373441844498848185595049650263222645086225208709839417951613729261563166641163790862599661958483269538206406102682517040494898838579192421686509829170475839529326011944310572999700948820006462825064142980885784611984385093174349933158754056846184430872481690382849694454914912112838991744269803554425667205923759401508528758412056238186705431189016681809717891902212293518874279092195515518088868903134477084577771454928357845296172487465733320431666064130222407809409924086148619661646179157317812411352085815169918245541054412567621643344107017351203236836922470239475223198646809466576700844147762711278182037067394773027252712992031143845135201994634708981058146681732870787756102442048074753084204104430163487263326788345044502448423109177551673670760528410517521452293493248028426483884846900209944528626464184203472216570956864347798111036622042605284032034121534186240396136792653976305723917678082394197387937396993118579045446878731500279916476825885174078440005612703428031312415940062560080603168967960775267805585158444773757320409868661508956832617959871934719108242562218826890023341053971891760363056471342188593599166100404311956899866854709529630760786863475180887668213990046769273709484748663262578526322996526490290475572655642628171067361227793268188511621382424146385141980061848256020216207964774601224999669672286852450602851380061764826341859670837636160177178787584787211352425712748345276492317626462574367092266211307733555205683386054307054158740244929003575611165555716998579313100068193328538001828777472325091411581985057695450951287072005765226634271771499575351994237585201083275572559101341983066117809208403270159630241973591496606810901929538788649629120915479131840927623462313114441025278015853644351302631195924384614550783343687132109051148727123095875779712220718360713602361416279336302762006615130143175584243644725271284482860833476749411206799900184731931904696130141786043225526710083095029661516123391400723248127406943374848131945857018441948519546090713962540695926556536231923829498572212861264509463919495411072692219061756817721293282395098163294236973124724084346206764151658372429522369301743268413874102094132231590431123090085591780898098639811472423431259772730725874965450798846085036494035563606421360246367250297582588214239709069638947515852196010056708757617434222006881840186782896407971342119879894242005426232263910916080832822172062383218156600956376613115070352539431370438476406712570736598637047057472995577056332924928706676715784263974841648189874644206273262918091863456951408211126211183077842318805504839023018238559619868972586637538368548518808900275672391487967574758714477044963905966647638840555139832085110518086946733442146964388936519874292945007963579336776306583547913440943749848749178110525952934946088696039617923756363527056828663233569387547828496049149559435581123376296279491108962728456306695903129237389498739064645482345265301124597093691663681984294019757039611050180939637076776957461341673659491868407159799409774921295144753643557051040490718226804775346892192192239665598892640138338542564942877508240456558180339798752807500932132516595562648968432647209508457269426761962032465242536113808128554108098613889932317527610005936827481891930572687927052706681650947384411241352252246216405896697737766266947223060479259376589040545108908727196692960261564605692234708307765972494222517344900495881032587117349851293340748288962822868451406587059582208854635662223796926845772708006242862470839100012713227466932910775957841160555232539427550960060760837053344808069613574798661003456942905048742886541585205718247493430292664502012901522850857613745521097273911088254049019546790225373255943701093302223343533679247915548650890561031509201053297700331149099331914415825403937671038561512589708413151515283217981162509440783844635992698248514779982623836715422818506966671626620176160970567094861125093594209257672502737040835833893160975056783035442840000397002028642333353238003083672757694716706320727156328814513540266545280537056163375657565561560456839735821127233493026657137376157808881484169546069518924508977614582773056447115603672340137375123911334222135099520103561776430770908044730482689991779764687600344803644414864134634689995078455510203029888633384832818107269920008898285719368413891539811167635237013599604776794327352194624941833983034177275287197321653523974783666159883000187013548007254996779481564122250731982077737494936934051592615121472524091331243285352266095099178862420621470761814443651682059066937026972848443035060252191404977551261450446572569712315957976429582179683132072049766762865704713117146597168994141419415585527921329165534108035864539423604397634616953352898463390144370977103171885263352978600986693086698435263934184369703188574390628654710685190800238247922659706695796912922827797760081119896191705187657704715480407623420146901474701230072367200637479414652488488002186972544546370568600472326742201969808221422778472139305509963930666588351205734209536232706833519053743235096424169280243492463752913196824007038389209946820797082050855302650608417290646789432924890422666237149391487185204533360509281927220026678354509006721929344835718740048645258436195009455202553385301501936082754550814836776294317346668701839896632736870667173889783817058514355616626575305893492837995688371566190511746934019853587525067274615771754279297665411243066168857921466304826537623629178636344787320604811685644513319633775974521089142064262107733716871629057910904737837639993403176101329586566017868615084132025994391846880266009194120701567367052752104460254246476622255379685622112998222213661949692780512346135893880093787006445888955300930967808022056712229117324496219466633608501509594916809119443188318875572728807260492048422572695023477727362566817426430792407273243055492388314054863945929521673461205934733108122670744358544306390513548612458469235277295559595081633912403448808461557483165110280565969126047382200962429878618959522873019383292859627993498447285095834161821543866108691365440642590891158969812989744271470860637344088950811207925632434391216048670980372692982232485582499570894311086376548403737521383697754037253509308684024083186592189475434254656819933192028697364168763807805594272649094054318608688358706239930380932489377606395880881692788217232840100800778744685528493009535616813369878218813198796091570780060658751204136810551501389914072160545407320984244571124078690275295563717649969227320973453390327493842246971775604291219637940043929139399369638343123810572712316016546238186080341693779232360806484166851670088458007079905399019138986928867886850125467916825295729795090778140077583729195952592307789852900953749693144648856042018307248366816453488890061641848721314017619792067384253885282960239842855401308933923814117570120808301554188871910117122035439604125881368880489293940966294766794056226564819392253637168630106007982286989053718470719552486361442452983986054972266738139927123232697913526781947508154247515825957071821517477933308380538542252593586879001120176971506948468723239775696021905302772913441798953328457172256959513939845008081855050284617312093463323897674396686784116298253664412222350542063236389978613011604606427642524721199538797765254709899138757333709587544460688181033307915923351694002680509969009201681369502875893937714949331121572415902123622515497269878580423624412748789986559314593826975693143055498179506531441866832732881951302751995672175382370571522522917889973898390630173991729947859647328824514805731576623972746812720692835468599720491582006549321426373785365377765776310542564915637728001898109944412679472769211509560728023628284880601982030177055736035503431347690741276028424070278562450186760493680921796666305062857919256903216092155038298157384365049568333881991420375632076289437684602476610394352022944810101404116840963522222446526698404296402530017006407037233171935220761783135003574256845231020154486184741129462404963288983640551545380230006576243147668415333980526779819872375955284634559435087597530812254078311528564591382669854061989075985920268537279230084147530346162184574848815554875180280750087011486020566300511079526262181650999704624609382003056246103553110403422874336687869698965895714605263601339474029550277428860048235899761603260749857047122184558667132271410069788469581712627149938589828585921462536869196078653561335684500757664674333108632471158007102508635704220042755102796922229828867950516039032784227388738111830329773296824160426832369253343439480561513027747565564224353863128341393926559729662026384969453375872939469025962873887401488070946338065979969831651119290880251192560285817304991084121641799684325236402041202666033906135644140131389322120287306294453261319831333565412520582119529293214940536488230033713781306993375262675257342720547182598519343971228475497423228254040766261730855917977487126298870022667410474706114686980287027351481988793306907804051852169828722319131755837755538329306419343327670587118572766871456496475004679237066771990706913870008711630394429748229895181509410741915838284983000890515633749970923445812684118905572039013809374492672632599147334552216665140583847415931793774701388310929207297257480726892748636254501022618036545799496941836305185203348583061388608915374757681450689048305047432310417567254445678677540565353246244263845011254015881133762879227914457699932454902071005719389024332315818067744447266723176645607682348386279213909238724304151108883374048260207564476757768523134578578434649845829336240746480141597946452143509285544414656623672600705710744294714808993054625246150539546672945745477522309885938349227321181401218199372897274783639130242229542283226581272993978869758174293364400546233397984792366191852240226254562010126296227425623817530051776328637553954276860419576758487868293565801648475164681085067253073869350186544318606782117480706710238606132897325712447823979443239268514685587071759326786933587685471603448961677611716341299667336450589792110754601830123633360691144964188387934121842194935378749966523797515391763059159646103471521214656427472391853965021316325911230816528350294868195657135887476772396290191693199167768645873058755288747597090159188858413402314944535163715820461193929538650063090196878114872520024632500585955097326566975940880924885276626744424667263984945494096333588544944385507082778660432637669558899094233921334532437458692369553584084415785410486788230887659149925858776134937893933817239566126732645860588609983313023881770669293348340480489448144118284346563752808166560294729887698489519112897279950597630327730517769376782997599259573447528148628394441893629920990024135806002423326855203253436464935897752706903435988090388776483528114172898522061576657718974599693126904994274595857748900715017710280050510218508746333748028182672386637611059367212151178910066446038280924572444314173858083144173658768637249757501724180505564815645888269442413625697379292255945902050613210392317227946862868956199674192340073901316879381804182128317285099359198047059989085315255060611129029607455276541605554323462610167088128515203185163523305468450163097876868862516095539218201938430432208578808474078482365115168524579205376362858300472488949906232202771501038935424792067272180390323180854549352300215703224048303575168346141950451837704613129450220640492325433720823309566895789820800186133500506875378551738982296086457926134601229336427894129347237377241183471056719947498813255663024174855112544613530731382508017759590020575525688293535410332940582476334595489119148002630594112285629020991982970892267520245118222001125571579240733650574612758838238123948024110404490718897939017921349177985750287517112124497071036628890526745050625093926019965399546707668561456593004672173104967569904556248663389377247350889687245530867838193979741498390808700712484440614848824896131026973307385912498790374187062600105142158390408876123703653713520292948787650548885182853428248410038398553662313376457670923704477054434480282490886232209658664498591943363119205831620545310144578482233739950955681727341450850356502805930648292718529747212853238817532400077625654889901114846834623218046070717582378163621157379393336563514361265578824300183870597868274534862241033127098248694442254632051824297733063193782880524736277279010236575158387770445736380232431010591330252239746032544228425304763924993687412259412525344274571914357904261985598032355410755517179602225731007940379296322417785536177805088049496315873832128675554297068865951555521682850849181846715119760879072356978603646204109197206493004123150188837770458311397629187009238052681820978751665089521199378270494551399204447989433788484231222487627259892997895482574664348575579264603758622423085401606220231239583793967906186082020738486233385006386037167953946412827981719113119614782167000830808950785445813266954818166386256950925231648219178221346241417591335437979028341423778353888920595668461979810523192825766529383288091196687610481858896454424402205427489691120693335345523517307201395279545216123690563455727025608582660648538391808817916070760661386419533907534631042316314346145514954683921525457176523017627907134670298964119348104686248731091290588286930561548550109865716994317948320400204615028922428325398720403509193836454205680657981934923777973992361643392328441222912416131023681238412309400859555943921238902610148002411843673257218566928685211711743895773556713694403655341882663032196737122047784613967242423934382065575710146521083904110580254990574309270936597181213253729453276129255716033811599327295120079560078112053314636112722208931150147192517953524282097046383536281323733050395799214257143099602033906880057835187398188931411813030607371891553698731169760498551140763775109513049911398393241826775067861293093343419446004710929787141898483801103110274188437832920482839062201145924541976522126891453178721214513312677987845560445615959524975452985753522215468171489841451113842508141055013085489623424362849791041944000953541984782940988043650418337571950530816933625465486685067659486021084403208883697917857456235888145994833927128325817566478148930763018318845031751877025433815121721747380864741836917805118542713928305925515203696154426557927433409517408790292846894847675128182899369369638005209662580963095224478411416233470638867515420150413175353850008132877162808104700188346896555554432576568037656735020267265299682668844678106657495635099985961788943244307515831054977176345323806390582047731811620890740012401492008019238695449202136793024258024646517698310567148501978569587399755567875029661732867079490827566132163830257936527271172357649371977298818387650160046960198076260717297338719586498709909968724717494761114101478259018801182453610215220422049819761816353003398859997872605603757975986803073314752247564007571518792201644858905540902200692157100677635924985723995527632014441216849154357780055265954849998512479780901999090881425545314201117411693915483314820573828041454362718046468662629137358234966482875220896995836290036596212940685485088790079706097153615049303070971447935664014903112055308082409502443841987582416470860586489907394068754413110174450351946487233176746260249006611578886109716268850323904256421665793019714233077714453553878628432514336021250189909452614454005268521377177876674943223919259355906514401227995323657387859633667188679821005112248481754029247501366950050475967084418012637345880106622530400185066981810971904908813022918728763660112598163407302581325662620787942939377308834058169822940480343932468067552000853043214053837036811967449736426643299033781535255022524682542776448272604906490826977213886983755924420723772857806701948407548250245903136671777876794582809712007470914103345397923040702124704789597241630631679390426246365331538246802784629998492955829706777036736178091274486510961319478375542147347260977852214220697744173339302375889154517446218414658881740633219251066399862636936880015612905397748917869227522718660000064868860694384334169568976191047931550407379069948054142393140342772120564176101918465198316227552484709378875008888303178635730728291876730356327135387492718627847836880270457848570870734728184365507652351170625675594045614751081746288865138894890196169187358664401789113965033124828628212773234149566257038143667039496496422017426965254125031386671549257792425824718393040622119315529395247295659610883491077311846506610853782237227650723300729864336816764066348271265966113355194054621502427959882603393437778513689665892077747703809123061987976754485388849348861517902298951335515131781694479389844805510160447538729346020810564239999565313294381811817949168206643422986141748888624688910910401578383578904647033850624225450915261785817209601549590419019808172498633323653239962035299833581288184440031231668441282092157103650031779327671655485926788764291194438852182338965094495108299292607756543518139988333500316594418749015738251515349117302529210911907594922425748307159707103394639477290177111179548387532454308219195710971163136558511133616779926745002254567461727026192658228096930167652635367978562181504406855242502063277431207892459280730831609544932281990578760422714125469899220372255809419313290739795298469074966884973028286127683424450940254197334278386371332162982718868028770488590398165426651312217466506883903438805406628761324151473649801132256835245396445917788087746545702095388905755986962043372578858288766430401486028813478566777522316770085281567031351708699368722839597977614270430443387536740461034096265981400795953733803766082066807101929880983464611253521726264746148090624508435609183266233286147657178873670704326449642375583111810861353206304527313550133893258469803965075894599527870986867736616656527294096627095361899238083435232506453540653636670081238084314212916084893926064757504243607733700769780104862268669732720613130877124288380795136823259604935462698754785069760870906213944467098705043539971706828557773245561833859672584152958438809541003637976907483263922322696763108630399810679689234160825946605411965782508337910051764307196006691422677808031086358949549126660196821689848727980997365188267877731053285059191230360839038340639111365752938473873273964758695119039096129214465780096562782308548525764983192372138419858188049149140812202983666476256389535915309542442102381140094220105435873360217656075153784198983618305840809509579232887231314482568811590029308704194884195222515577142536019696000711634744743935005684563443769003357417602825549108885215323925060878448597881672789669026317200106720647207404594248900508076282339720351383460410116855895150189454592283258699909935831848388833334959057125432197139992855669836826270542692759878814989388955532775219571619884675840926692371227242945252439825238364176386688950239364876702931815150767258597678484923374584494308923193531065125047084459459822932339044945520691951947530503597462788335698461320222129938974906934284023355296263560276993322927250894302020639727851055890584430078972050488044129234894746728867838915026228885291287429527504355650209629422473679346403525512695447933149314320123748438652466578663381046029077025167406752254703544717816861485292245879861896172324465895281971514061410121927327569484710478372857694609245181691687995355804049841241104919757439292511009593142809765921915887014638655140297759601295358470076861168292264437488830903589618611266068498281807295600945732186507395063439570125354825915035368957714669165095764450433626512511991682040885348821839921490374688320638921958396771807212607327885619513135576575243413453665708486593415984435464537694535909031407965508106604946822472145183834665013178906741103928036189001441926004517726990294651912262530275450380603248851883604793646322499054825804957760197408544823830902887041597312047031639348365489265472302515290804077270773036185182519612016624249355133908758669104232950252196222742624256671592982893040431190067957041201008409478265978836503276031030284843132564211053477207583503146038617532938273761710329521381275669939737444185337163250635583905004764405043184655505073040899038926993628862046940269584431506310889786433825298791700659552819878337554177791762887619777502524906729638062184794501401437110271575943654040883382581796441943083330859984775988917685225290274578421689690036843713892403690325632174580396528818827581867775090350407785677282152803744178285539246393030179355759946961952814180998160358562272455412759745369637536195570980535234513266574644682623554839759342756845834543058091598382508947389287692102976887429987118954151732043580651915856132717351681114909835419221182834703657288674488155998026216334728734343000146176038786590013688025581277660263460014492081709590733726661036073624230859884385252469347359660993796975691783492560369338961564602465312090800867027278477415610360008789753367663944924562295092340663833583613251463932391220211410475837363815388273912015906594748848180494898363656362234854214689440077525080023077786376424808628191028182034711831743730349334426177975436953771948128215642985465056109643559380311477664303551338888294851698137863875130749910740463176728759532365533291265947640487356284411750797139047400551332393896195551285697859802047769760052520606805483520547158124294736280121908831151208169368170922796178050408945578359913093476322808015149969889135696881361110514023419878417059507765640482463118885901480833776111552376819383063571431940964257422671435498184739540779481350877889548854413001331746125100043073325401075314242536243267779801060578340073046225673594886885619126692356012329843557726500006474319751470222670528280388950057002152053908057026851688179096653597758126368885914769419797482970011325857658785726696799680032089677189952205029203490718021401691020056286547729600869263802729111469401471195506772843968772487327158127480428597810302450513289974410757541535707520610369102909431370692300027584895321251197846884642301068044903732891922605837738861309121071177058775287031874653045525558154038878565241732495736977488760767011950492894183245918218070770062249502878998405996609728435314033200749819370748032083424556361863165997415001581892543723584147565843571193494334859756354649191752511745608308191804386335764683071924141075004094886850106059961850142045861653689695511475873960660607619517162625250236781435059299927432365421787159533803175923627889878294913269018960179615887369958353631530305030483258619209352221459420820741303977987383790906406212477970343951141630488008217868194136392839249637892044245671039999528975670486179028806273423845473978447281935512811607338126327917421992832097218939696111281497697228426437027540750347640790134533313313245649630288115713553811281549952388263090680098257040325222482141895457311947105049339274555935132042065621536892949366468640905631095853659861276550296528504908502547745982156692951273711332174559075315718029099432588340538699481640996723253122460832108993175248992344381194820664316769432057280142533520526218782872148908350656108741927216443745740883270167599430945650145995388325564824040661128333322934694473822981475820213179753550555457762429632551222563613964468549978940344397493681610165919412356501732770121225749665266463117307115734836669975131418259115846143281085787581342173761329838207675195559755419571723966422267645474652002119862782287820240364525990263546177059646470411832300096579549024871371179156318995621081675428352688809117989183270015100894309335022655098804172681489088122912870829521097664154447618330981136912789774771229802021332127465898526346719266245553883192771449991408341010595248725690306547673218555781410028384420588904146821096690543375552065329134232041114944410077245985564152890121622584263525511470785955532136098809328950696448376187763252594271087013146790767502763259873257667911904342826270514752453649423116904215703592269758532102311719445897478681723215611444092844987448122559723161679444150344586844820617812142689172348256874778766278361683677432494087732449489886910631126003804788658181342462107208455447364215184728768745937138298428035092082752117689938459491096246243754536774918274654184673474592704974484254733962575419899408081139888096178870114520143244990958695292621402193397300316065173591893933235875413795465408213880912747306543545173566449093275849006172638897645842184591345904519770084034522599909618879193398402889543235627906082493689415463236116775294038268346235551942863309956512636968001156488804892946266193646523184340988345860273058541333874462705453538350203975715425221285252128218301302993326617904122269238706146828426457480684458555758248668872135025417309371260417969124276481319974611402653413800502024718139556939770266513648400947926201458975913818166904817723165938055052706907683977461845530991260231230083999798410760478293851415988787247984223909143764543073187654518909532650231094774263686363967956510279954330455019629951028984142909911558001888557617770337346744546784876147552509669944506590337393015003131608383205997298445703580164953993575687340656022199212181567045592086580305446081036536888051972130577603369779128213097605368580630079515176056476299641062473983496958999491685187097498944409345983593523263468128802598854253196513163595894431454200681572435605398018596809437149428655669441490034911155697973461530423686606894504700045389192164359456291222042045415548339781836115512898331262102507696743692985516832037854186774223763371695145553084726091429391925640068094877398787536390431328452109577870245721680367654253697556693376916893721596826427575374494974180054169944270856774686279433457412781934597508929237014499253445514353396620616846162869463188341163816873263566096684426618168508783583022017268272795159491962988946547141503006699417879085694450273240803777842715034138537355605050774296153837658200559422209594072775101931880464424558912948593645383784405015959209169180992093220851226729247492051440151722161097921221026915723023656934985512430923066030593657798502968717352913344997241629647348256737640787833029427750736521959651753951173284253848099934666697011854131164051894952655495008143931482664881444646402094078323539342361234953898624815016462628725140684415403232410303812921202843427583407715871458381042016886254561952959225028937503794382926040209740029765913066860659527553275106987944541433996555161949869209406591523820117276786661628344383124816662520388365762541266998454645663056269563005241453508164490795914799096477820024481302876707249446871007039715991137593470149710862440766515214719893306301860213050480860703451838006279564187122853624232806654123242592970910977002929721219947444262285433086841273379116269847520854823004156905721012202655469803567154815773525190469140430937889334079783576638924079458310538093398617146133213150026795797258189622905766151199162409991932632150599824681596120350861961621851409553835077370973816551296513520263189529392435623951453903175442236331306573901918412314589429905606842925375989779182457369869473304239369233735211154133584762038181426924586220681605170577372233329961192988887052130039696680004463367180969237088530503608758432040275575677296700500709344562921987559009851741611710104989587970844695219578481169471998915071084496263525467031605791774211693822077220932352600571823423623934394111679245840915260616864130025591430568111117797082777361518323078893856675090928097083693313274270041040190294614437259108134835491707410473230297562216932801692770491932893191411149088697243890420492218758259799706756439265596940213811426712898167295742804076468583369870354233990641206190892587349011664057030824007649122612850101872935100246046182225683153238261980699821183840107194822899896073720109075703401473266785003056258389980498071984977342319019174724659837227207421085576954325059034070334050482242261430876280888342016729941844956162886958921347234185767972108198054618158397333178314797813928850648258250881896576169717918714150170609154500399663989704484130921254691232004758442453751004184464771049347738441125798496196654994341689026437129512680562302820852708780439998811778775264384182314057616524661931188606904051324232395317331395144937095686946093074693141642761616609318597058895663525960237753074830431316525457281206579123672849821857534745553875476826027002266247481546710531782539114273717207458271650962764009915847504336343182654635440264040597328437116507225403265136655394981890509934793798198580697821865502181327039315360049815369763298650553658774363415217958775612451858034830994833708860254890915258282377983668348739557098706627632980572519218791453602855717737671378299615779605186852177462472797744589456125497437428319048153508095360334517620186222460126046248802268144890302086995405340681415438518493965990384591117458690409573581466833603032345644628063430524441222099497111347024145602396931181520775528928748789363961892837294870079331117133257969760228398317745577545861299311051810723969487657942820375588446207770717323413389041519555404647557632702765338010792659045019913999111486319557132221245993272985911849735013224173775276724983321615737118005690929970080181244718689665787726800545551153681979719882684807894522754243348703672318842103520350485308724115445938475496586200922220756979932033803693719701186206867854194952555633246609115865504217061767650666487720230673352128712295728646285932926867706130769255514137249340019276522485394327005956196410907039162084403283279898661939875924646768939114950318280834793998604665837250695021325692175649023887656152401852170122116212746858948178985028647447787288052235235682285203593722441279936637967428244839643780680849492301720946887777425186607959324537172908026139941096976765466340943127143436880658920699238896633992377814747893502809437366027590036462416130091873498595963428047847369567350496512427843588542222945033800113262003971584611455196041542091202354470533820147803874100072252486231838881937801921658210374416709758573537411340839395522857874706821842943745044891824751438878123345558634507762627021771657630862420917470500401708664012755923070392599025709615495474257433275765180189688338285495571322884859164029072281974743908432916254992336031309377259116244716487414226815761994432461605729560600777557271214775550282195708859876103086165269974345677368493453307531078550952036834215382026867636799048087551299768255483326900052195031300284825693688810115009007083340100905416054397050104488012412314251727926697809424662461608953113615416805309768800790622553127495864955698799918885362553006113245833548285750636948822557373040371925279780093240196575453942601949749977794696391673674187369879878250594371175061368451255835800714655979918322786715428353719341954906222489359562248723500159655159582036027828741745205135745484097432753825755521956807347778912724295252854753774163105437122739220305406631653946079295428011949722859868862620959705771365767457694642298585674040854993161468923354856786331441819221221368862997065403171115279792138934362829963788413277829395098920549556847867473011837384550561314781570541630118146051812583181526609932668565644749486427236111006399020153193412882598321073694949529160862702977939042236362515914082470343247036819246398275189526910227950314933730899837799279245439411604715911973315412320997178133722888601536303280053212834939228219427985955455416679258510853206403209848850627815661621488128466767270416201689843688069485991007452575301982376453842056047226797984563260150554934161892553326356677175294303411190187870568223554712015982950289360956336836118560837692702315069334026594230419562045967244077011364731694969106130497283217640846953353920648150058350182558510308549034880383374818319442188130958477422037695226471444172459939593411907054416363079721417685593828641120947165620194101307656939546975599640082976005354188661788231110201727155730225505952903350137402586928542771974669844636030298141183451832193293466211910497206119736836295670334194277916762383415463921665589720671002110390859686683905281737196527813921345015475687862913183328433454758072201247546748768289818923468803249712157862218584652381817916033876220544502610535277301691773664780882417390884452589138524041891705393013605620502532289090913146599752230465464962648727050504279856355249995689435484656290533528389052407476828234694425124220524321460496911515995027451192115682913619877757442997508199457149787740475436646671218367186399859386477584804973795743103135561069226488933237941886210343030099671295756250603303590322176674941553563372391168890323669273923796055594782223183502575769569048499578355341992708004537102909673080487193192187349050957832790929334097901123050953551778787974257302591266151473309719502128366443945796395942721434847918265638596525320195043897241592694683925242421860380728712661664237383521768393446568942250005575813151840308505972561946962356965072584850934813782928372217068228979426416542578445420092847486454285138283727783813351358194082795357922839889739911377359314873156434126855773893828279744037394038580890547585376469202656818166100037622459230782536902831976059742661345582628952000747175198661393484522858606709892291398600737672164274502184189906875128210516407142066063895878028324319775810884437261383554629612460612810338131101281474830649250015655123906492637605631557241505944464475789719349309910266809570814842381048841857925500513676842913511411251757939022262587400884536416338712775753025819623722715907425554757340119363083529254662769457148113386654846390212303691690580495406784173105594659185983035030658313990683169764838761011995193662536138889762266165084667337594784663042039384465890384648834728228452379531706994116136410819446969967244407469283923641305679339230152919108360753578089544072265784231508405883419547823568799736621842186804968764307531395163670366263754439135185429397386393035047322416695286543843954922710470012092173801038357609531156944974648759568577239395946125495083017942186451249760690958553284814130398283321957441569941230839326637951758977091254917797311845939926153452213996141098349106184057736741482444413357246529150310050804462575025374527545985515392948604233021458280713117375319139408935171215518043017046220554479737669667478931730962714817804320524153739850169540905116883068125314868090439523232437602316225250438836689868570661653066181904568527474665587161772658516507341550659451756136678425907159518526492326611989419927697833028837779411117501447410422908089023660833919406521113932372676135978853892342828890089773054733631268033251710912983926148497000542686160299429609638488644406004910294550396652917023423634660650422229602109878588006944215698577053669844841086867310506963029609061934231606638748990018828949512561559110240446282053159377096842656480346033781731481405384504499075920355090644590990909144525972567149530282726452152739661221826041346147501028649224457265765754529032405471437060123443121775206577764552719001153953342505418075391219150598379852615733705162295441197030788874317399891457948253499871589694378773437376751615663954647624352081865315975103666897077758328386505752358050171402323620418208538777467983029508442338331103745806536419079447497062847706547679482962188669259068217600673139160665816078583284251386246833062603366795467912492230323889295687728947612151536396030940627653119766901091138048740549377875158608275732363545668580674906271659721599029921867086138968951373706831731568009195548277920465055777750668885211866929765211039077863184433695906723520283999964323963876867320361379164668679503112179126791204942268631969522649415260318384601653704509259257880042440594434946762285550854525566020694226877321894633390276715358202225470331223479856682702825245988012346839537763551746891225367881238189199546378441270332418737376332561304223327118444507497424223782661970461040111226532758895572384985057636480494092480401111627708715552798840790361257278835912414460810333685676978349582569733383995616923989000850293535342999657406963779502140851903006449547774735484116840551028776110864198567266226787228785939335839702878835954512635880762654146340514808297800269911581141860547629512881994308386653204842674055555102533227461342219931036194777204952433882117850322504622922142456955550033137758428571026505201688448712793185637412607277411417869893971542267276322865848616967758187395294670929434525373350650056960134607318025776790991551345034841583984675265057374239747147481254009357819535459734584707650074470973254939310359524408780242766698463084264446386736380162865119392598513341956303926559571167112304497992321173606848975917558263162239022622489846228657935727962491037640382310408048197494285927024632127390069050749887731732188546893642438942096492856644246175264232707272793308155715588664841631953161411736909081320190273895284251549967224303489023763280543729161398227252990836908892497388522995923775450126780887326119546163620900490104565727238121860734029185447799535289959211945518805213829562617740804127330379420903678075311256760080426049507406190564878080502343735589161553899274656330762008009969129076100632053732312693727962007390543343746221025899572139788919097031755019735593786924046361116027206338338409032239894189167224940658460386883599127252142008927927430986616350795728379051438551387295271129836678961619181394864073685794226166711785990514038234729140090097922491302499787040038054145640642906637903922523044921716095890520281781615990117043582891340913588943930495096599605113324294482509836510749851489015128230584721525802518501199967290923019534159104663497514809765758541954441938660301023932894081909479278480783045240452965721750860347225859417577247107124427077986907209955806822251978998647932984732830779343237408852481802412599360762807499552231046321991068299808118204157702024037867235236304158690964281330364662533949494024268686257659183352224135410200488785056997471685240672865751943425706257347366754736503125572083747217077731732426112803077590654692395022906758282061276734984710635197644664427167209384615607255682037913752094903953881686272030842192749330119689065021855424299174257922262045088519366428928772287755130094773646300064241099299000459324667735313744405486684875877715788647542882513257102499583552305099040681646341314573144849393869833134777427352150116669767950323492087026670633342677121526488087953659299373518992420672251194807313265923343577207964529777754867438424768926160681733916928124635913549460964501115658857292538244691171975572851078655298454278716583023412111155300074663525550482452345410485731877910034762330588407257833498442549880584587627134845326920402256838316423222370976454714050912364134406361959220500003871490019578335980781008598886055972848479116532070874593435630802187162111489589626800897330821420606706376919309905812237161050163381359939183593187130304492618018971089282042610031614996598585966795900943374721233344389517882139213168961373456008847211834055370417390886550221553897742480597895417234353658614901584283694749006043088952560611138755438584962726915091086239755480590136238040358262600530735745124871077414263477512509773977309390725282336321002648028822972706410952010528838078676946203715639576047661145005808047717642728780013131277413244302723408851298968560383152465747436798237046012790757806089242271283222644030799006153231410207971238005338205305121911738709301983853679081734700155973475132833216025461225027248671258349531573900562069353295402359717153946924644274388027596148649412924752773374134950714878033537786636311856230615348675776706325490186829580038258788485176455630870877721920831838898622536779155140403649128193327234646410410420881109312609839618401855846370235435946724857491530908048594183126096729940667484419440084259832175480334598617400200431378508286183299756817765710311963158186599504906723797917873672190751564065343776447630621705766985670874922707502808767246204225353894474142413436311016643663969988087857335045346724540669218104268811566954384513391960569769130745213394121929508769111217525555025022707891471738006854236503032373748677870255838905989363050210087166469785711805166173156702947958588442627198410355094621510005467265326668617442935116210475673902419773096614724220870452411170743338851786662622838975950520312887201895235448217394782194244399758999835006078041238792193065679325724872870197685892465232506696114739730088004771044338654372268843956825008857164813094684461270956543139557547580507935142675631381936217024229731878481227768318957407048462335383621659586843308579628537616031367647478472565866092667662925760874527312462223550441586597063699892768170434994116812797928212969226927665070866724480088023309789282035593082888597853534119785021182140046842505467402549771417333366895230491683144437629773482720505996184279601382438264090054050050543899562203257694031141072966938554123861845341651357163376862041548822631196037539535157965115615791687520081674536224127084386082271549504444160687673507152786736164990684079102050438446012308262194961869244003083142930447840925631186320777512643059419959491771706413089068677746385439177938197576164468111066389323583618409159532116359788090633295173261028171014866694864396113101717553654033227890444701001976312123410764636362458309773268932593277419195714992449855964697617304672915269924740555769815934966307737547040710403479749755177108493121353924293299736757220293459757588025764039177569051215528023145210293130499653339373023200920505409685661504058680341637934252197386129365897185693312537414578482782700860598921654039560817318742975871919106932757121799520873208269818635984600672764338764820681561136791228409737944035561387140597390368679930474236923503106534214666419163614019702393423257526942990274693396440815930157918795154429053346261410491553156884501255855500091332206111270101844350069521746173065959864168810938163042497608770615457839544937918719179778214050225790496722122077816023801492381294008546323714040529727769335214212268461859782117443585242059109702894198462468999523242239816555904667713228763619601838487431946537298122963352740628643961041759162471820635419743568571300716754368106285383585873611414883279233104600613445141308647000247195647216798552823676900196362140435649853331976888064888620020461779025580227094968342346108349257247535445213392688736939312898504859588223281475103811888094604514397803692352923365109003413934584678504122917413504943706196058666194826656431821665662964560637334750932895534325174972737913622427082393564558244327306600773155471301780840169319607522344183992270011897688984844635055266072691642378379008047941617684334383228458537684138118251167756383889258394020120613567446919670757527804706934458182769157795686023249588411602895983784051152559797838818410290147847623450896702896672888896476579778230699798819270883513493304458981708646817971112838182002044197499117721541034205165427027031999846634914695207615986506848852203163287322590381506483550100084517784375450743614505922194240241872628249035634126526431192655030406320257536605315091862694230400933310248298609192470044115776935057387004285904866973642307055861273564020540482677643880903258027885087690994809257329017331171653054678392387839859920844949442823545511110755671417941567061971198641995640898197469650383598560001537763197865942684706532072913018346587824492507819878301123504261299130804129377867117144174364941704130959984277496152385231195216354157162041855426172577328975427489642524558369008052069719897834053279524962832641569341561399857286730987422621402885181286001908460323175013330780748312361641782613805117793371447041481211899591909802237467877728128904530357995934005672043056440449354780269634646397191566000926368642173474117619390641454023179390631738285189036523986290070998309862522489234371226060985810304095763885109243895097633649477485841674766441412104426996776851984981650675379539545328708054990529826809162734102724026108419569462737591630570306936049304955176029167714525673235033671309570781769610890255690131338374511581734260872080919768962376158247232799696762659491769689035000181087114738574349836409909279336945471815629034528700893317786462600184845835027509394656574351979662469396278967133275300103362167058028060203271745531773549327571281289722301694317565952958213137736407650325824120958394227661748987572818484763028751860746198159530914517767537614228781538324691582039685564713187068248641469435543418642408986534022652979350425310530745564744585987765188270858920942199651867033066055402432358530574124988971883964658269498141403272968040098567409447220294441441026819291341109421874151328287331079823292514506610782792101218010311197042776907694303544975283057095089336353333318510969023890698062935716343038815074851498982790171065936441270747611298518681777313704723445403745600286219167913221365782707024079509967914180334821962558626695197436112488465946582728765644989771594444211823492755174989682744838464215544522543357771015711153126469088386801039213792718885796109842454401760358927360092579861974341024609362898969559726019190217380700975580237538083550621119923314740908846814351990335032977622554102622476650244698571713535726528821856861123930221223530219051627735697412863498354083903277354810508071163896557294476684579217411209448401996556143553068983086120849486986451710667370769181572544604668202820526485233586992499908059551927828814586941368229897692946966657523038260343104885807605511708300919710119849253648072836156976781877422150711037399536927661524524496535091003452889597770297427788541533978588106607156894926213082779492654943621073456967878550687385561133352065110009516722384444353315866717983535953576451196680957452740004243401544004906266613796295747065274075783714609400233265567720783707945010252698047934975995363121472488812065999504473245405295694916113543765127592357126014280388914399713206284195468196885884175292922668864426214340633843235449035871836990505347094758449581539405452988391465186318150939736233214054509690894535311623502316264542428788803218861917253625798092179692510697663155348667212890255353427663211799541889440802311171241078910639117913801116908415614710432641203243520194668781977732716307048851095190043634508471386726771537892816556212509319933084617355227009185624196261048152846404552681817698323603329448717990508744856244052584667057078202967384386993693546543645644472300445362273752665314529921962230988117645680676713978543791658473209504694430438488370771865018432569270115171349496173698078242694080406450092250682393379568371761215390570823858548291004571562854052309447709233679921158488718861524422945904780396105235477529451843291821776470401267419025562578477103968755033652996221448817935264058678133326215920913490441894123125521539959779526570682574624076495486611392481467006572277196024957345080584087022130787994543507255603602188951099248370331300766185308525391274076920389698099676917560701484757577914252713802209415938774884940496468312025721533555806488881999490244912487443870269648190456178567151821532142145868896572634255779575626527006292978459645061748964253000210922479818088894625167573273500296771470503279987579899629127928746607578196479484752392035222645594063126283248417539754817457010657092602259317232087409327491400979781869702601437421478631793853130815571167180161841988500770608288114464967535146217195521385239251104198410816414048220442494178279538017357430963694436495063518748203960509107089209844314167840644619109367713615057721430047516429278462760612587932649555864471865902984818220160210049977198361803778211895956516892253934182635010371363211577812146023709366910632191188391695270536319994253584490860239808314298724363262584106915366179150117100345827398845023001900255774774312143342156091021425630047292952168051282215647987913148361230334611027752033829796984764875107530862096284647678635312023068605098718087512822655052819891699944505458252874274597063402296033568538869497993828280147109986008705956848412151964733434766337627435135600524136353719011479120299222531533188660251537706833101548890999536990171736942984470666770482793224482341820656742587914678111518974774907255848915546647004332922203989506494527707553293229942626743329882814282556896573326678657561933719593908066429191475031113284467514873963577287934298975641336042658143050921348136798528882925725159524636866705264718983961963598492113415695319863804558148479071780907869529272791840452294301029428367110839506348425063820855586539232765452862272664883418507487413938549307417630279555031029081367706943028970120253177018494182091497923829631656022298361980348204057952319381326654609721358839304485216628721435257511372368450592929824956114742268292183057942653346922593252263720317019199984476757154104896916082005560929388043856153939388610800038893141551425198807281346757093933154300525690378371445159973023442914505699864146759503031812715272789425023834667263317333745588099435443950036775670310919094071611411540557340884834283353599319214437106006859366026469934657200936031623444263821514244283917159614658131742473170515632534823793147494492006979548016468218988433275915280709539882126839893642318106548904480489276848921854710676978861350333524498113861637395731026802516423133941154981062670497502013612853271679450641310008468510052112136399583903140226191080728990981630702063541311154226660786954871773820214105474014024032631964563930096218551712914326524427459441441827560214455153440454002874324957770584494080984033027258180963179652491735070149484668415725465928994947623637005980489039657631382402769423666262269015147894711690498025494902525878222068537260457330359730907758353931703088870854234953122303180229287959906405017737334421306274314312861522090518089923909090287912051223118684602413327860975002467507917126057740457529256436482325915999316644509890191461480286002548234387196903373987053600376311002385030885515627394262315739071459324738698502972134778226071168099600604407499093418534005721719934091308208823412305076123526962124545508422240149861662157316029979040149669949172746237826730178940942495960688437738947431540589473271470169619858250912821571405308578466191861322806103650342003901308140379286128430225378811284489468830537103303123570043462316590768763089808395415916852054588094762371192788990746785753669928142352470441171665252891003605377559735588435425423746517694185144707314525476876928997005954613496803973823293623899801986205650562460668131022520368054832484334969568965310038523754667587856799400946425372666150546757091298762361926700835987626785550302863066879939226509937739884608390668208206623012461299730378011574829644982605247059002013885624414633410581453363132825605320520059292648083031321203507877662958464544189169537342428139035162929142250483903626144425573581074868348925185396565314981963055712419995035132382195118696723815145833934908285975599196697217045343043273161935718967626863978978868443886119041809441858258695796026345630375524775831115431147620359386985073776707427651082481928976810133859699786143424430006768439420759554957407609325016782399296004574035775833310658604115555081469085084839959586167662512905315303224394011724448874034522407180535221879714738531321688962602853125348758585567251370781868635211696331105720317223706046781195086114266665602658062908484881723155659726462424913746676244614371952845693522156184400208981301595486002990251885850735730715293231231813184991789363734145399134110220355654105101077243598605563174827784724013798347463097245382607007851025263816602743671093497686779609742645392324196337989768248442209801913305485964528681424629087353705341164347696964729667525830078693093079849842711687904408338186326775973380325268242243329680739506418067156560271426821123031234294855165365321526945761064682470070767932911101196016546877992087415062186924352558605660814350070546365728251289908986529882762656823007437703610580622266454799657003762714425715772581268682546629468723995640650972832407761438918770424976762342214513091793687746062916851839024680313643989741696135882918597365538906457751308119345519829181491284576515229964072629833896418739380246322470736392768595129132896252267569031289898208892471349570142944686822655595752774582282842997280977738321273253051416992465522506661465591357598655474894260157123808779428472791143722367111530382747753341424240717948860202834057759385860474399509433265113648775432422147266313648590577719435372785810437183379009517981796311350895996055705684217532144079895592318480852487808367550068345948393424783285656352476418949336492249297708858162423150204913980435904498100431493233010594490247471847639893163168444347404750568117237464392161343183812685470940210927957187993693138600003846851436845821166800218282012999174809263989098956653940582958886002827448026999169801064240492426581075921272469063099245607421661169418389720402845531707331523151114205678509496575612039007683156747627210704573566171878402962624872115917692632706359138767846553619998598318230451455400969742685037750120083213320695886019730512187085418438806108838143347134325666897926277024434199218076863100164857338404082407585399136557908117839085420629330681229472933559716393679462033539152709063720694673423381513834269471410243982243883086676898962441571506447479056693233180852464295629231016005111864095688006805225939654913797813563666278658482540460687315167516856587130530521158705592738375347868908081484472246840335277000011912546712330388861562966960158721813302472824787916219784911643328606722244635288310532085836045805147849852094422354984713141131881735244076916983817007803170683363615105313355153309584662365539260080212583362096679555444629622348692244319084746391935174960159592862044537991279244395476191279923041584432891273052169124081319234088661680918543382424029454461017088275160881042747219249209453946970268602852630794031070690991309220431159645042981910857994426090015245142428334158154882276758200364152510502790358004805342809230236998208941459463316935938990700155598350644690822444986197170443076286932014459515648487770125948501151405397979633930100438405319067907436471299584718332138871109099823566722126380548683874189401010754001378810183931591488087478658787950015155396440761625775081863582179310117261440466688848182194560440513792488319715457124384193438967247551444236658936471851822607188363875070459294519811236411780972307434095521941405244642200902221666865483560810185144317155508745203070668135820388435215498794496039494729606547080639824562739470639744064051378929533572858668999008599086906703943434870800817607140504325690320088153694716707609996780837875260810732992479498173332139531838778328235916737012583124289064735474215088782551498414142350130167267508217911100255797251742760073937319214210392603297081076981905898803891618138257991444343221052915690578788474582111038266054989466937643057282009457407529253361163657509360063673498502843887265817107259941078493030813011758648611583290660573274270603069996948240058608640332505107457077136203520688649462344119056316806989240695412565563981942471888922035224322609723175488853172826677391037572371010673933766380898151584267604685203620367240789149018792735561807661755878181538307145722038817729718759389566296149750567853450813459765928283718236719243140097410543729784451016257543958762457903820890293493150148104836451353888928030438603690164265892316220721896665193559162749795504800925551595190461860679188081872269702979622020888002487787177912581021178942507276131979543109624664019772097232261002686374553001861908859825656562652793660854078228115251551182617048217569561541627851396377824799523943593124697524369059218677942638333073373920923189034739655757396649098205261877727084616955873614559295219812689331644338239731423847261594530885254088718865776402238510510879731017225228452997694761737582499526324714118173016020183311191811222813508856982100481816114616760485187369995611471710489695145284969675812583453612978034773231329653596522390633574214202049904797794971403687215328070643579877121283723586718612328481014289386688570376207234844796759291442195386422012108207798876551102503115293716932919965153887804251625602574632408504228844997762389469269631528657293741343016936007603532936970641782778773779306501056973945611621924033667640309078354145513831643488944997923755781587501445520648693471308649833007389808805689434606520734875952488738145285633118869663717726065392901299624512136216182124975855109246086067032927819860265252326322826483572273239183834925820212759389405715304112736281883610271502536481549937009962498261244882629179867282497649487437523772188232702328607878674144646760756001820948906734657407576764552556364224302120916796372613211785524325445167266178454961087379037460663294176926463458502392755446300306386677951156431097661700950080536746629214903192289315461344795220517567305078224066541216430977472513044952288499254238165437964069910930372676864436987715967455838788178236999390729136295113565859212624706051237992070984453068067510219235976258038209179599403622932241600021449483069498884798402571157588664260148826172477609227552782493180061245468044327036949428051996932474056765621398689679454104577806793818986787438960315493080875448508708413969377697387704317742865816964018711318755551398374341494804367385069109968928340845548658831507829804444292178135196816520654596288592489947217333292060737007254838521659865898890770988354659504458514681125195787272983135614348787393577890165063107586440694448397384650888544124079935717189272387604339267541421182404624139090542938706128239046744918290461763858177673659738693310685073570068839226144004967522441094393867947431047301757352214306870791138992751983374317080328301799688937442731252158213563170635121945802432086185211252156360948410862749282768825625016862899405981589304199588164286788710762011095607597412872305221317126050716005368280281377723429999177300500943273641748740893193172289404803345998552264108929822154491181471363488518083295243711560960510757651097870387631281243959587830946173490398347583369466057915452205895914405691865609642765085245895705877482881204132612392858948735235603381043140003572891237856274325025046365007438900955727406369494461883652866605437261524541722058298308509659364828419586961691157259324198273583245853831440167068161487347508612648751989780776187917496827001171248189184661389879780761149572613782398415346224573473913376690617788060546347492480215010001624112121713945435621200002729273788090686389119833516081162870910443237307015978376805284281909521539008995468145604809347727238999210771270883119994083118190220414788829239645428650979881116428598216955662881290310706500009320237365625675484437417993110218176231008020140461666848991344989424122449701917555764928542399239724820650415253703922881058863411919720344394148701657599845533847868765677734770917667146803823673134016398284078802053495468329590014417804615539401292235930446998544589414974439097524012233423549654251547589721418489379143502778941401688528164981439552982955401128307290595547761225000882002512272561369373743769265949008737460443447568747917170247900735627167818337666364901040589004908919037464562017867738315369910284000822875981974853524725020143724210479284879675997055778633111140447469807882752130953990808031170918739221378473632263320076649516350510825897887220534451471505163639234558623587477446622427362128110925795828761191662541536846573185406772626628180746456123652705702613999291616530551980465265030554548499179403755411083989139053949669149956241308657657440203839651663557873061789061420797246175671478853580693617001984457984350911655102002273651984534847982496446187446258304767464826173612333863217678883125049127792009266884842381818548089727394461806922746549046732109474947459117309631426559931051181446498491646573488929909562360569180745378234301662743162359500345076371867998693071862950698331108755676876752095740314348590022881123782362422610194674169308424929581882290971159753012490415058393440528022350651030862184459727403529392769896469538546962372842851718870062273433716976454998828682355302327643503763520442330312191859473589456042668354496126899092401308998337870135124523948795384596903934247060924693398335944514283381668768390601454197079224731086282168592765472336421218078738429972932575872522741969211008889948349564227696402311427539124474432419589510468682513841571172266308178034083469444691605476793293889420433966208647272271340585034694769837848111659256157715352284042764824972916255731478640882004014719734509654777030128475568141016328618137324409859068562663716058890707199676569693695577718697000834782679846572398312806248566411958355946686463368241014706634969054555589265162962210076841661897345442324855875315765411575235082441977440508940990094515586829666106709670902421885672635130220769461647419610124835004883243990996858554186876677309613636285574990531672834279055520874941700667820958305569962494777334336350713831665009160994458603070199120636209472616281628154305055797300197875513378835228335930191701502437749238293956379358962954953801061735070050621153794116136924540177933110673136807906291585771153435290634174027337465251218836939159355205715254803914101411607607349325512865322420066828708349329470271123823044819108063670170555516816605161708525775389709427072966869302260064896574146620726150470861373723724645325437825575900925675384226193084201930141705544579737519753004704168611858973324224553893793995888972573965585786621204211377058501004153632473380634849308781705566061533411288607376743432071404068751768453010249189447882289246709247645453578114727268341198125157937479385901365363192228537725907459494891650089063531037329346048208127547665544803346897509941733772273008008835138661216396087695080332774463275202112383366389075701736586883407143249573763761318902317957201193318346840757130035560035891019144267179484864097507034891571557880121672194813174243874698484019368355064257538885953635406457845952580263489405368485245661207135202821836091210728244860357098485986214991107205603824591948598298235436647477244318744362593852443193498859769508476998303011442779166402353624406948893643366651912063300227069643142891417815651576241366067940864427739315087645327820000514311441693845021360245385952735824128082284051480072499505950421581980220321191170380602272622853152778225079828160184848044638845423818778217104534761659376260729708884217699804406003609507163059379235337276032567908429663771490318446980759242293061592887578809375455664416098881032273324326116095521520558655728808412282000087549230838283980249303701852920622387709877042781012562268286458258207489374506573468058957357127024469933040752354544863848261179497749065229880663969154916194567573417174146656667761558913022851724937498914231544042036008376023193268910997554626585144244130691699988162808907485969048306877241500910924822607221195366278356268888066691714551472040654698672446134183927546666394924222757872605386194266203793909264926951308081431676592825048764721048635839380560930913730692084838813775627306414915510911084412526884282244779976582804516708878961001559623254578416946031392298780545287215559674980408504622708262598609921560665677605919647866196535011861033873012068186269889831755538563493334962036254588905835397049964181414344002208060299886141346858423913934015356423247214253014285912056576385693562776247087717263782078595318143314668428861440577879484394185441455390118963375663753705902427878782986981491497904899821810205290687974249099428432273239292737922935894937563460447117413461811876377556755317135332869446788663368525299779133888406252053557672745226875909425026988026230290295919800718727154390507570920489474278808112161753705708177786065723273944368967597196132409349773380717748506768066110002497094831775850489613168171047157601328115997979669711796489374936580182829314688532667068635647384591938163006141247385388455900458292731183045319492375073949535971393532734157355851621085639294721898095939341482083584956933469183118947980144332181463352839107766288844960868696378265107375503636164492166918087904910333994848244220747450873791935474569615644102072323320090426503949670459479467217232231410461977817923227968911516033387085969994751284280501000750793666686448833626725037759025211026258813348489287313666404959347028020629670055707734062202975577334989184277808485032949241500065621022687299216940843023786907112148745940890504767609155597377014065431151364199391015322169319775060536264632456293786010408510259722532517309265096592347969499224833117681165948060880008261892370405949807704001739674582189242954895071687713310010397851533534531471068595709445060537335919536586171963149700601821601511678164458777993723274548437021671969832403521589516853551392478205591282796153491663015145805178884114809718670698427226473253962785688562186013575514802584119125786169815402760912705074195114039656379289828828522740860145039535211265389538838677939951729586292709478412739115243311292594640007261346492499726818109451514403360630052871288117634557474400496852423343398859029913064236650173092311725493223569364627082647365396147019361465648808236638568712743118146280242967084161021875899860964969235031298244682022862410158118338086958732157760182237896180157677998926335274840895731040846106853771869639844131858461150414828730502311806695986341793389531746981770668663525117787844575853111495225289209150428157492245559138471133042715891355341114234956673240438530735724622868469222840837937344847060291693601399304095065459619003081838025272825630822093726975275298952076633889581100393467050195502721525407078422203158690015995130826384841974877768499169239221965372316654475744076410100996506171262795901780988192588847792708101654593733253528412802007575104825911652513757834010089518476852491018622117355534863696984157401995560286512422361874058340908447687897154212595303559132707207606150897381979948118563835674506257294695134369167891826306650795243115582636437199760377444620187910161354244770062736476565491962676164446807721909229290808662281129598849247811486715342571553676031195245475615652369677038537047688660469802138524803056117638206875750675813641286287801377651406190726700233097845877669182283339165129078707608669375171168917416276908095517572796980520168210271626213606970604160915617887053054072097976849302663763896866273605011398898836733591351396031547428897471385416969392931830868002123289632959938127165372211852951450167108432074694204902097667007422827466722215683386341302328609110460240156123049845591409523921046097565436483444615085503749970595533666022134626048399601227327364191069494399224652457000523913622733338328497275573933564959431552309012332305634341523510569628228677882109308461215686611444387076095828406715187534980897143310274396702320728683010530558547406112071090359352224531897377489287212239388744316548020903900810810885266922772461931438252909725863112461577955027598220706166870804876950054241987556204669927466398863934848684014223352872821444039547842289174547658271945439737217167460006085368620665973430515242833272893912510779922817171405917223602073852789264208037379292786435578021158357573583590602073781354710814495049045918321175530154501983683585986992326799363224360435624602028470500658345386692633431478982991467853814916433293733770647285611977754717802105720656241678062049249605068101450554440008369158538639919640558302728633212102715925478049198906708906687151219434944169901581812162969164529656672888226173464699874380606663650125491935299515634267061483686297879194828582851812784137702694022167558068283567621527125100272253217550117539167618570824410005697863552015457177509609839035001282512873029138851759746097154637478515816291219002842149372840941016515570616862064622207366895549393145435182266250177371479799689206120653252754184139144761139221521346140692864193558216544796702536944885444171239433349986029802709850271418159541678025432450545151692226883222768070584168571088248940081080598243638806930494014003605405882514727455882582328529765554366006097614188174543950683518994306440767709734158274975433460741103268881973632510295986891271391832732394065467765205701268560215837385465875625128673719730520083545205711511563796715242285437561231936717685670090063735425030945510191851196229951403259743792093543742091184315511683498513254915865438192839955738312594536724825067114738962967299087888584888259970107422725250403548180496285225705208236348512269383156280672836714743505598392797326066842950726351382751041974688976767259136901730651236573171953243101286956107258052833631589009582669841735396384872016520049064906403549854492372294274183784110330807773869403934504663332200174222405363394075275059829357491086988185410522731299102223339766125332469073008027004902589119786609546141221334121389196263882666178655614634421081326330771760786638063634243190918325419432274732411523770487756138092796048357649969536874851130880706247612732575037665910783165878576855066198839794583026908602701964112202257366058640739291438772259890740735987644733155270684661916708199094210860851403328060178785143014996799473634236622229182069032445301525015578576015228847367151823494492654828857179769926316352753845576557644067754489066824899661345595218009781422086726886305642915401382965346857348996719724201717604145629991302514144475248848788595219222684372364532964338807885110699339769612778269162546309732353545146226413765213929750680992477659734726126909397872213928074558564709998158942966851556270403366058762305340310983459322900126983226920502201581434302808000223658015463288255290470682507363006307811895687198094076715851261033440193829627188086008611697072396703943181261309742471117179019857430123990754035471650628805126492009560551345333620292630664980915408758176340212996001619491110349375157655887524827214237679726425642697736819889088217226992655530498724790479810006504684342655193059548646351596583419325601995394272542463731715151763524395140380742442385772476565961524567466993162860282648550406859122463407696639769427013669388291856076758200866943833756314593294171455199666977282218147062090620349763171208646603060567561493310916735968692629980336515985213008880240461816833186087792966500277922134760116174813520006025989515021896326415385131177521071464107072577934971822527267900599337018659615793278006617691118316761471579646487410695224537611456887923115088630362384071769195998900356580754727010719916644775922773065889611193942758602466572916464778295951779252172840786074432951131565811663618629044736315551565582337341020541097055398105511858777484725531770169456197732740007627466291601557814989384991548006700158802872713964778855533405015257888467196480205246724244939551864372558440999600630630028981857811273531940034448275340042960655950892253518601554222891764294635309728390571552519220067182252044834569572830248581587778354371951268596542670816960798234661679259260735618939895590289542298200690113501199927833705761754071258348058278068123894285619311111413250493316426052802330398141690067988980373760320995164384890586993696068307101231796152669245304649237463228462799082423347983303740344501786448039881275592259020465366084691021379484236888145262969686621356647670201426725320564435031311714441377135146736716972654522654651061440382027435161022546011116219577553769090129814813688328624816036689927739083394051471433848747692011642619481923964494632004463847468847911151704484391938676530311008242387049815245204055739620581831624869450329535091985805645898908744256831229254345074737341519527423647641802819954873173772129012524214467540429458554024239064717022570044642487593638766367067747962024427680943778548257665128437769009314209866607101870293385933104377328530343716889518480254779912733313963366725069762400444399984287154827354002136228003638783578086193032813099949059658918893750753834426925570332089037583246284679499477201616184924480670726066423943232192320717600372523136002600793811788852402504577314925350249739942544051399099724277891851189238955567249088332253210798862708156400032252780315109766866228334677738349417461225894542098000029093296907437726013869091027914062598515250597766818440107816706693400075149348285405556143047553911053314375746422948620974467908447587646836317892773085988511135509579474495421862986677496696159474444092731132006697861138085905453176264945901678196971498613994922697223384527051438093895135046443755122548611170891396680893667779730994384880861933190910435786072084967307382593792396359932847510040727279386262716704475407571920250393419197254518948311727902461404966895517907998691025376489096484598167090171393512067828395799612263119733149133778183433841931852367538662901900463343328532834341824921071916092767308013235369472648489276442979870681125654628061172604607332191763047412150640302017893205795687605102775250530436122270960467584531273866165214241940868340837589140095114133929545770094731748116885364094183528610997103416723558178602823498202031499867940174041719140283936210519480604819018245180081701371042197459212798404024268963005335536854941640086392177456769534458650883286298216584601645078000035989852129012395900704202660744988785062717607762225506063907453194771889250990581009367298919540995766335386583780980447935377991877121429774619764094727212140235326551777236163419660743763915386601945017769140062406841273162958608063506762937751252934367596073427199675135201580087373954838973439901238256568290785911442588285213661692014029900413146213680632352650865411218084749987584411183629097908919834118753766496048093626489329104390597725632955813887767446954618157978704191597558335000377286724607351853508854954642029309715856369497857640483741505558099188402093433335128195514555185733348881649167694427782405554336977311920143722541541927450597601379841443735994202876052555718937804114892612579830361838010771100500423923926441569227790057027947401364942291847933692535432484048780231777445184177958355825754761842549575395878549458343084804417370879849267419528932303148958991600685422879578929481590006873537333333386381390842099487255117261710872944088868447850811634558526921415402996720988693715886232220331485581742682635950689362344813422473786939460923256600754721256741410342184901311896396765473291674247189934243302802909269850752294907970944300923867287743936255111313628761591973832413491672268261228263127793811750807408958943971900254264126649479801764420164541588131760189726596246144139131920678503524638306577640165229732047089201146917133722878630370384531341942644142496649844744048617738513529373108099859472815111736507191398812693074826906140392864227662784943295588285938372148475070778355119896224911955882370450645820056101702053248444902150229456176556185921457439900955482294137515441361329150430469141799412246093381651362627902827884213812207758942403884062294331727989259418366829367925960422418459417706530195486439481703355241028747044731171507034775083432373331163258767276368346858444865625391872394608273247135004489570868031503250386764017353150794003455728550370018456027699615061568291416117061046161740824846267033518915255188248212726007259576567889912567870201497866790847106631074876467309890914719798792598590625733649734982350312609830987346861627393580579073549082468304972840977323811670824915163734680870510521919176205416988262547605445817711179937767786965421699257855772042634424430420744954897033904345072061190076973635174019526563221392825831205282400374669545909280452596879846081408707195342547613883633535119112144143148505520123581380626492313538338767580918892379758551573203658831762424116916752381458859207516403523668437267917590637053921979811265977081139473516719629999705209017090758985691638906642704235700744502775120104903948148329457443809746260351057898195407639870607875817740724911845069788429941383420608124283901488148725998541814802929492278783243561055491564109174887706706782011985910958909838688395117183801349148254992749142698552595177653612624215726624488960961482979703084202105160279671478561594064613638247758902011025199234215321006017523025742122375421074959187286751895521553299453226894251884094228267577442222755282076156072771039471825668024710660677383120630314662847443386204743259568505689287162653290832787843996507167242206138294532916600463808725630595241532881209370099229896006981396279686279567635198741824018562931984922623336431899309017048819952588273388079532658851449393812411543273205891645786422945268411751880818405095690469138134430778489021148797121162839773443054846149807935624354967141294733326664224830500436445454702749172320783995650868018761732703319065657954753952069292520153070643504713068812890320538545563987992101095667298287304794661005431635846234487441555407133814323441311788424196019037028686962422762465024004208137135046401599347205327556795035339067127216177906030216239978041857633481005448388703173071625525647995999986935319681301015629709787116730696494027491665726749434320813231461388692553349492941183163877889903259401093411157274298013318145782816879135142439557873420591561458773689880807917071145511547626616820817775747248427879712981548238520368959165240543730524667287313030192582952498763932098573120916105613572201763927169959868610886760613384364961695186548486046168484824074383811807417342224483947893998278014734222305786541021772926482091409485035013224151559999016307147814852705161443225825478014344010953366023936264249313852294054753641683646704157430055837298470401814557100296962346985059977885573699802182230354923831879762989415697721236384408891789275277528471447762189205742545315103747997770686236242189906303096282211773219708230347745455060238585911403898969166622077876832601239617419997623655063632660169906611689088687741333780919516149770549214171181911014954347869382062098082787895731327899060020863391127847153684304381498150970304770886881635974192534134122191396287457810993424832714109178276317654209631250713669263658821357511998754011579028028507806698333841833826673945536831965657170319462933641092726672742449927473229138009835744509134079930856836048467786653542105866800521154264867497239537936421566535872081855412598194547427516118416936625563241935915856950889053531412183366239987802211504245660015023646910815997419202544378736102267129412282988880533679439503294048049616771107287881031614677303715021835289024146481754309549059448875410425016804069999819671937982082773346485581585910776178828497505468567913990401138456243604035744024619123769440220076042143357338726039253724664089664914714654730072195292737417679613565233067804268200024230741218667486694628058788787382995232780501070661013854028801191385573091138057275589368194030938071886379375821544435162655991203087848205239374935189559715815518280481480783131053509682356716123550963161528665857859019528717754642506412984945105730353324334890979972094572917009587840832214044050147411438170956577125267157798170976763847864206487613679394578442385860356496644631401310486670561346276901749283229004327112081922956415894815282655842219261890253051381591180342310885149122665391794481743390432270050687428881996706196068850067332835361468049859608140287911963112748254664043703847828840079815791344523210166867374112129449681345101223798429402194794691664815031243187396911960215671211422794306820104087675680937389820546842147856014277688201880717174141274936746781751322771090467300153094677730692232909534956944916011690468181827234778161975125727851535569861629220291884745302698301566387491770219476050941748668411972766044408548329750498907825806153902003010352180271792099508178391212339700700278329061937133682183369615408265203927161518022791528640768315032997406092804831050625515722628713132768182478011691549378624832240172383707271608864192942118171856467481185694008705299611314105945829387033052862979188264932474201795512442329476290348834952722928308040122263722761102752038001209375208856240645311250372640153996437123370790374395120320285350254748277980930302021966325093290944881905745102985217283069962242195471016519393297693706545763334324332564331363912210835291355577008126505397931646814945134120751218835054739685955538780919473746566279031868161713641615215540774535438041479845458406344747450856802808623241269693993112296405603273109279384916918793335961485351700181496982616480034402782281398587901486285212867461753848503480683865201680747674402114766556964387396757966442958864095775591541926150719665373410817064974822204191350352239320369277923907369558805779975526019030814355084924759818577979802981264125192698083107565746594693511285627975905780034193234760013696114472901311372932651887731467214107412752210105151558657134939127688557300645655666359352535450945737896883580027707210807546851979021567766355960858995244927220497752998154586253592955688586552190862034885742944354883401766168305532660245835994454330952973620564282947453966410175938780787579040143195672644502565389640520071487068537065627117466761571918106422804643826867806417817017101455799878594929810286748774716790174355039931696835285921164814878612862891163759927684710887436616177623930982949823406413782807112174123783422241440699848632882392406563774389808463170433981419017041770458564678599349411376710185104828834584759112985991132618063116652097710932602545777664047811397981202739627905217807965659334830319638637263605481726175440262684357264514741114361974748853281352543231321040655374753560914051335764484512650315994993984759123386762589988628267424214106563170282684202742775354785278498062554779673095621350107513570108143767120973610656933898112877006439508682263524195798998752445315132684357712526955116568426062497953005641342367940326869432022127715528452294559060131663002332978618427293697054256408957224731479608422799606431211557228988841340690157060791698553970627069498692261315505954581624066542762653609898824692284240221705109208845226419380040506472351410654462939736295006268706918574350346890787025266889903105903073320209977070195562670800784214175004024877643693827049667540691448956340009298523549912969960465402832129951288171829317338025893433608886395618814530549363321022467023712349079740681256872488335280182087968683767489328659515635001584373454271486153424971252261517808647183501990499321781991553538737856234550871431390503843286965138769032905340152384282439639132568672927224870847796968092736560421516904023007501736619499358544714404152214106474972421615230372466125530179653345435408898008690163071891588084555221984311574223129451967037586260587762633366848507527528479034425016537649163317928320735720436314962933262171984120414969390021578987584055068836313189782803270681820620114709707824647760276296351324513522519224278604476601784554635868956418344082595532543340887101615107036746824529220467808485318529560302603933699879125296023073278584693716270374914483889163375005262169733233215240070875809848564628977918098482534272120248127256555150503057004181198951860921678780927093724148047112032092752163821969300536677508468358938654452815223534755755907638023785215194601827245682363954905681259327472895456989344711418098131536495974851541068546097863303248642987770186355313674508110767638604733464029576882115288981356644930949310435890364514131755241478099253505914813095314712262341354064609059803930072954096921369456449857878131484983471061858858025833538008663482207458754757769206741006757177870214802490680993540340497808697475231821368788671920694203441862152990046866853574977871014752845821521535098270986352770357562938493139316042388716899073982395618988722188420611902770942990322757366871860797707077215592326418136016971727774070288413457177320625302988161726406498017801926964155038729328624874511566944009014691037146658952807690750630991658019040282491239634567983926956557159476136694387393330068373830818123094204415929595171871924926797929712950294915811852694465448881606448909108574738497225266256135983373917831949599150654399837939835090051743387881718295516184473257069422937536525515347117857618497747797331677160714994214526381704752272729557050017337440135602978121687188613072957200868270472815099449365576135300683820300724872389186045558234056763187626236258904340796023955291440818688735039163729934716281576586285346544476718977966400943420249016434108486305364084940912887711996506980457880713797795159120425380257091986045596738860190163441482900997297139228277863871263080176692137049349769043808195656188012979091465075440684531805169404962484549525186336324222226145869950092979045626886597039309839695602356438896863299233237659081142486035803545169782067694889248663833068791765942638200926377890316582705029113785729750974004938675358051632321698473633858419735204876339455394642739288524974516748990465145947388497787436575894707717794356270743257228553610149292967565026585100600321814615361292859106934321487868637434297702059825451095805417445562508116488195634432335555091540702287345061766348980049281114848603366735880522429802762450658064166164609330965832277412016870046186470873546075946002355373436366858463000829891159321746543217351175531575551018630965885602744732881743617645365592624617643877740379976886080184145764476430357129839955569156559423117453065948362502060364382217354409655353950904574369386510431293427166581052146477362856041042715237293978124871060598593201780757738436706563113506859305888608362023477806498797585317840167290597876570281387580260323333798832030389685399914520291291252264234896619763397182681060237095975966298091853481901250403158996252047170767663998683531531966086875291254231153750347550051536740686846995676773305775107923504903457787782633964738764290564016443331682245650903957006685680098251827330581904243226112894851849188221425396861310033713722430186839559644173467084178320400757151241680837554131482479240045243081253677296897044406796431797426815935920313582151463967892385331469168480192378561366570636094221329625671822214085376580706834616858349637565564815213278800208251696180798484047486754286481247189232457278488099517849200238132149505597686097804392272136566791432558387293962885557531898513390471237808455940718448328361153361578025705836438593371292347805105809160715792371735883271261645606567945034809907997205084227305474190778110649402160166666295094593246968082788587382689608487744561183798448657304543205368926840349142345088153510167857570666874956376066630729363649798409105284008454623326178181497976141218187286126865346071166509551354778323062741181148207171646652654270991484788077768928234579548611067150494736473997364806652995373677999340235327496480103446000856397697363373222947146973027764094077539628839012582466293969389877015862089379918551693308463815996539591339262924500564406760974231690307802715597007444183278386392005915041926664728752789795492770341508263915478969268833081660479564209112379312512452382628913239114259259248872353135341403716733799306171199648037407664440361082778150937198926678995883750525547609294200184307444389649349681425354244228754826346725993997879597972547224411728760077126088409395048119215967488739555862671065490302132402247707926524977694495520510805641048220680217292763561522377385106360209720313789483890876087730444433910703713871331637490928215492129660943559957654250506597023923980013397192543988353358193260423553346407090728580486521415339035222970604712201304941234553577895471248630004705562889455044608622266485238473107331722303856418653118021793512078836789316324319258064485005114528227697470288129755672304193896966911516840342521912666860561300384520538933691121008120502524108795220346236601390629409586806381048615670349189528899594434218075363312957022412607656628378577631058413324970080210963951349160864205194055137980373826514725989990212475135972827648704803024095769246243692551113922353178694829284218555724374736182657795600351890158768759814426657626582583777353798801168581116118854587199032823772576597479255550151703522520432959456689504597798593133546030580462871210509920026539199902203280298551349905589529620350811851911623933176841545106106551624788219806941469531402163854294846509930575901842547725876857641474091708005076586416337693581466078187224450583794243757628708545403350110537092671021601688974251901726647710911877340196587613192382440167786694473160364332359105304639269254864734057622116648426993833030504817439731193500536761645050844763047325637642166613981817216715311128910245585162073197007003112540505208238290893128757564218754167861569179700970093805014298466685212001591511327205923213373624510092718572734941352894812323115992346158969097896744541306276268725633046823353137159651300040615332005626421384322314827035473586350919884465338356840048416846538351475298726685210475900910516731592462648535707081943035235987550492977333075317220355734702365170793159327874445498164459324739383779436527800310927753543734929701120308885081138511036298562059488346961563623208283108425028737613641284672645036795749821634469459924402320386636095796527312504891201235999628480875170027135590882128244592123659726362362619317174993060278006727038520443869442023962659430717338754484396493573940165446942543891831593959675009932984755318320197095868111474034114643077490787323473238318431697758006951047596253478039290531227897202831710307704415204096202753606616877509538749135648654899352851081375466230230104416440607874337993886594343197397276280988725535964218368862525286842920940766935310174676061436150402241061006575183857818459430973816665274228223595232656315600436346060661799295434268127824698023110783192217548828248443489421559050962496809551681614178408105806817300900263152721796074723457974475343900826623840807048876766201256697542263247684144360299612706320364247672556623958413633466963420183396378254225447430632805351464492080284011693507171925134344917591634464815473816005896456760840579801659025574897671187722539527000178383461807683357425061963779397290718664165775655492239895116050443618102059416850541876584715902962594030767718693860546243793895291773829741484639269221118535479059909509729976074738729626472760521045951128274356312709605950237557318061954525987653198881915837078060946073010461531407967225257577860927309190246919298845173987163150768576635186493797629738066031650319861817206511878673359197652395674431888795336522908865200801404998114956576645013571486997392219460316658901192022613706395492150000809680804936515617904441399365473211942270762716806623267993172218125745760915245516705097654927987579284966167376193685343546860426007927821050502935106026991107729258332233138942398087165405046314658617867219949974969729059791579184648037035187388643820270609804934004556786093076538261926526318112021863859251656925865948327448316434614594036961723580597179588829058381523697885331682301331452292999154059230227405855037406285359045976578596457380652160026315917742888124801830766646377077199854694714324604154308710677882187690707969413136784605770183828392830947916091577622835129330815994526976068402659423392885871105440868306366385810204736320944965349887762757862699053539155327911881192633510691931273397666740914861397456145254527568838051822852660871349632838841836848480136264582895400730650791560741028890834546596253808696255262637115923594826384545608725836860376198170672633744812876372682998877722944540407706789940164381250027554201698302306954511629983134310718899098625410160029355244154862591376159747870918515340256888813019892188445661116491063268883242344830962888049657974271034082237366738282557725076771530518606164830633559801934071098971630988408746725910445988875959605303292488993638521193949096828371086457135234560158043864297103538466830596898796808358734978576267855658883836495162723545207087795334676586720491617208798131491416989137566464545697421666338802887093115965529089096858324662094236872595520958765867639645258106276095395529149176518173767291898766779842511921680755258160046926728928376965028649208798782224421071404646730748519743713976053074322345155253212123587085161628521453800836861246295154803945332968377364248629645702435818923168622649949921863498324681214946737511994819504507449659704327176040133835522236081534000479598193685223092588145754597956696947562389495724732524848660706542882562876735928839761419619059132908399469163841005321889186943256572066776523238247316438079769604445729694465028343061665221698708026175757051241641110920735772620397041168885940376105843313029314448290659556842964872963771613219507321997164144170256546894610127030824597238418283604031166034891537160762328639666165618560009467155491519746730842325586767410973340298461696756421076322315367897998858068319892283085976337509294649038791074370774008463493623624008300849500735581649669167597778658081118230477074246964360473279351820384719889611703590083004556851252805095510667699602373878235376637278226774052051061532018998380611491985952875002662945542273526058148948809979407952381788622443301332364554325741038837042323980921416149632755395663617686752438176556625101337430464808207552851564911671828345413047238795984888999156275919082152195945358943987391987885447878558839301953170347124025007207286819666318891540923756298247737363589629303730274864925136919788906763582461536907572381188900038683408930397937519930653817228736677538511417161821464063005399340793672109509412332835057142652831949674694850212250586274045481109395874053728880966522799491313504114857375818994915227341352040220177174269756103240539002593855895784915494068759108510900445669877902963589995785804399594722284335544039138455157545905101223677094900429072516327250643891141494031439293381604921411482986961512607568119300488516042892565334373068623996218120083759114317308944198998029337723050652250270984972059596353606069301554054235809356222199901761551336947568289739010093518988689102305620334560674781595563737372431505131046388436846166022210580766055016338443951339275390504719811126778937842527429307171428737605543790415357814619485598470604040101633653118930683696593975950084585133272847308800484877403931718396492321212575915598639683100503344056052789887661147243089207390677171334489995904995565286687043138974556386419506525626338200725605325025449791258937286606936652747569545855493793654946690595626482216601109072227166433627147859946459999267490495496151264230852976404043695030783887567665223227853593755677217005441761522757890068849222464725810068548316761687053704714029329379429575971294561345245527545656824943971433138580495097372060753941257415629101102326051852161087629611346623796743611234251779934005960149443294796416460031088377668870592004886201801963376976145058292176891376685475541938116074706436461835509504278367638447274620716138197119177044448797513778892289958847382008296507046223127280621051269910394458936078904429066128912164886732932771245059557649995316456888885393740496576571688091303924234856937644501999120287840027354636310802804883903986446286631594078401029177968777418982862222702853291914550355495243566744611953366897039280307633613422784813008059024523229864536534759379247009771237251485597896223350550371408237388559899963572576815282498573230291020966336552980975186916429280761927498322965219448169604371548847590855272358644048020175814257540052934387946196431967349029347026961869732830560212662858359414291417643270438839971403798486296507440722652641634634289829191540694582238400532287197813012034284651150002141596938756059895846743378832151044581733491029314084926196254430106947558632673613396013154936002702882265375501691319481721677272774887979071308645912517689622702343482671737444762540360443612383426636852909793473026221774344093610047343832594705561796242470147957759938396128282186704046594736713467400380288689067343505606541962915439823233191663415772757772625566712728756776474035878251863240142935123099265241861053652623906898057679590093782672125122055111315834782392514171893266684869674104933862880589331412583648730855968523648709573522735515641731600057043568337512858648679877762687891197017419892629750373901696681145531056396389133491947849112600288727202243629554113302103288831252179038609153411678577623388013856364347123025313312758349214962681684346180565506437686484432169160099329793588697132634594804765801673028762362637540464177371171233375552907616845760984120314814906712654478813087496692652495072837633958248312795542416998444914156090821234201446635611514398786928367644038199996073613035658764068334110290878236852304517716218148049432624678420340375691218100204857133468386031640918904933187028256511334225965139518362851792326534003162530311776858304390585530314347000949954042899310620069093842985984946257642436427475502009295982199705371385675402423995822493614688183578390529256276625781476282549052153118845167267925851062996411218904742903268982903001953919556490734818124668433899387652291244231198145746620093780807965110820809202500372217656466226546285167806975616512298469040287638196536023135636136497663890221979236172338854918198095735229701423204549139476002030983118265134708319579082742177973229110014981104209291997270793913105416884305647668068288143263931229248475280351556328279527326560834108816169796102396306652310043702682309153399901101851784085347966645769639956438623259072566307560394705513589758512702593763532523454546071157876567775171323140719849308707274172599038347990837752226623850161890001369665331022529573865193690993625896333791041177586051878192070877765609994109805155176052433838149857884415802148300377380729422205761142218734191201738097419160390896945708128691961868771823441333977805975939917040852574024595279535895516836710461224141484882350704209894946405334610298148181498384962874854695004074324843010042370237702693594977809093900955516428125416837951222634081034024006017318562283671178791286350576512210523464875470892286547579799198663491343367457317808000101592280324580415606204058814973369054688383056831118856426927446668256282605693182711497110790802221674273725205608523980970519287617281829491707968108495634209221568005222657659050270810105964689600419159413971344320797487520061970362143653107681949231466574683330194256177258029656287105746356679361964293350904175915476056437228482315205448832642676308711147460636034732834323009419042086748123219633559808929813901374321723190294403380213835037846658247849282371602845709018509399863087689746361213922287446437282223068981442710808767398474519868597356568324758502379022904387433865650163543092049497513946517120423996380485152404382714004998736609221595167943665520971624671902878497234306879414622093306540351514653335343817621214097499529081334366887421960854630056294187185719897965490389226099400645813457698989029375252603159479352051728738371667007215479619563757407012855926075633358043611785695703271510860973326600211008827123199163759340997123032026138109889964222097317552741425536341306159729484372048567305363345356618321960256972367743766404198553908458665477313344243061721260086297605296720785932256229235584626284633318929283198361000259218711370399715055774932048759783197671362863201844282336539347163637945712771588409841768777705511446946524042208853820282498929639508467046570193475974601082109002237981389393889173661995870235322219629414991396048429927934116586704877857111337265349285665368928875089626084058604973081180779650060100681097962304559548011897685661967624238931275652416559831945661471675822057205150733187438649959207729217154115270702515737429327406030388997018176392492844496144989211996008741455920119711061917813560083117939437002185678808012611811579946414717303547906767039162644803691523001638097509549864785771530193320758707672807382416272997985657219816684445193115121472153946260624154747884492531474522234289814443935668965208172835201849104468501236353466594439101771286059078923203698177814414065765795314169342756627442756479249572256177112244150820590572608481471404592395307959706042717245927521655060051371539677724263182593431649599940848813489629443980192805044699030743329586964202347799440608555298026016876274594816524700132047509569931582510565956554511246812167410441892014971291705911320464869299521893607872571989543326870276421120797111258063437179070285365686818813064931529035864912313662571902811608044992533173093318861973891372118396348879203809214817739751512155506071421237847824951464949328585000899517323133417944919571954937381022516204335585096404429995065494821817491829820980285016135764697993067913222478498512958741989762340204826428706202051130484543207456436305468298589979035884055646100674589972300286489589524145330379221860767572196030001998405346104236967394846598198903322644713641778288583186156410899810633325669588014908754891185529444754877770703325428165404870114529025916253519801238741401043603630920528139960818578217505919920444071679901533844586401542054227660394950985253171464765665886681458842246276815471774897706020161939694773855297795179206393425938196355238038842483958103927567056400517745841545364779201707342682078953784241931871811251340019135490752230188536642456151886403026504152062258752697464483059606000866480846739758746940310044305071100803285756185260033706833217834100697307370364032129825039545915664516251801635854889250188649041767130862347416451200097805267165914094586669529719432662613627554666276397479883132420766002470825655516863465415732273037984633497435417605339118055495848517100306504714657091740008220220333420842716210255069982951669623227920520679012499910597901723864217585369064213618772371091338814995600185227362965360920637316839784737149841162314047954571631028508309649294656142890777360309568914137573724220084319536767372075167234021174327264670777570720566446538170861043049130199330474798596351648879646194492952890582573097904095062772066683569442798805496198375127327465076018212152053349220808519176266170836135723334251006968310417820797186065027973257761157165072402736511990861376703898866503275577438942275815661730769721836436801942195847681141757576578022594122936937628548376150113712094447772678839072637650618932744947410926405869319895905855996960097204635671095586425942225071342281083161078785456208386552686224968775589567428400965170789743998364521940287896992967688552250992454811316798119609584499945128301743956586455425349246733192769929221149864428842742821896234377707149143857760805808485642730371713537642453067937869457905752335076438815218106566079270751572528839918515710526005618833910853622127568842615368679981807360170875673642170133324263530619346354543601726038855255677458062131463820548899779437994865925280732477127701533566724305128745511130522707692262151065261479813961301205482595539849829038221658540002787182817945275934575981606268256693535910919702531758789585078642512381690228684408855504623386176809374387125500306276779114460427175023690482605349682200346806279793975282372351973107085666232473255481566912018466156539344860475403574057353264973565944918990736160811763133524918574724029491422191055346694230286637390630837957952652291658230260997650740918733400133052343101030377785078752063516583462778448353683665590270558349479612983505612394339024757396930505229513081104670913249882048315378942261322355663430981141830986684768102825715502868274838339757192587347401153664671682629370155268224421277110523909179693192391277379771768801542246883496201400997322757593293917724086463489283646444353876181138341439888235343530623717836037727092220679014913157494612352486498036806094484885719893841191968471524836899608147222418754317335333742369490081762643689316367885345454285713963603275099228957125803241463056342872931869971175945658363103616835157351924115291745856865483974709206998158899997133603670512517832216587046941565206271294188303672861697327759547489832700933761709103805515938607797518316479113151091832801275251593651504886079398848586099308119349380127789670910847840847094315489455770550455036182181154602650233359866262119075457284333340654655923652677967900972402255903766627701571787453010678368459746242411941460927025518165357449640803707635921820480703170780049503051527919804684148029262375914410938821175845422300258710509897434053801960809670600172944613159435393190215524986391770306032510939596603820623564441379417884276524064389978721528985487390825419481126849740034138058770293316002349752331437832506834683239029486296128917710704498770623085845558300725385819369995627494731655208956179446276477688277511157614704990194822843238680273470746738628147526753337201210107164668619616006337713521378211388572121554773972169330440194716653483026828509805531003676041798533591083991213560094604211825482838260805945116333374599933098540090956755312822504067646007341266354406248261660563576912527998130161592594268648699500472477533277064999384644411392955896914652204299081224390628600046503573812695217022563921682177336732020915867504500478898168703646096151846004855741439881726097384472127464419545019833559323176882955783064580208982952763154907355005465411111371947630436261732978590284651319161466655167663506411933457586671378181098415646592962365769083627160722338147885085506388631774907872349191987679896746362545471260440954168197799220710427640251548433196477390558104961000164705989515785294399191798519780608939567864719736389009852422340005442237631164031518642793802179526568429978142883832138959824393958877015579907839448920670917065520349676998605415590210576514771578737867513712547304466033499423963787796271176836236896244596776440199697869302789570435167443150980228986501287745403934073972426716050025587854988889409938420910016817387489835845628935275170791170549000543621962170642940432780627987378667673022285201837041592135242242759628375037299734959143125112923968531901297535611629672308486174323176389298817540247039152280625468479103097962829343042133940228841293104759404346083566834323249561364754257986254455449889635167136444593793573500702773176734884517488709966825081043899155677099848874017882990749484423316788301806059737151889964295032419913988064778214020010411177747896883955510807421116480422750798779310315115110843383177288725255853668013231927523396907869301592580852419159088376804536260897508342110444191172855632146461237202911674061466035739643190133267351138318086854427530611568220064205077627624316309076339574680273152917799081012535494361259147198875238666399374852539797888793077692813208745702729612199390812546255462541090083430520403871083838572264217675630290493017692951152885790854789541342729679084551526624977107434221537656995492169311900356755887971969593608944405602798532282974592300572929022501918690499605151963466587384576628616558370926229549052558715098878019153598544171672135730700635697462366450699943859586530458169557668141518863751672958285519470256814867521612134585393262425217446952550700769270083280535053695163837024826205634521190864360945508786374555688416514747774466068680273209052745681753951571320375462170698262614847590710692505568871840363000530513868109575388748063346329994876955374348108245413109810837369070751045263814615713736203505637412061154369839564311367318509717496343405832290723583401618290608716587101601304215919171390236458970590273481568107228986719530257968376456398971876922517593315586797334077373304321675565391075575423891616070212271737592070056307136843747821213528898979866821776283257253334518323039274761865403919208796565258928608193070403573964208098932108943220085199416761171752735397888202661874456228202205315283142784830338686027996517517975581988333102562543823041601894233917038633783579210320377866821806189086326486741966200834537726721380300483534966960106622413864272529253000537291773706116234865438736033357315122713930047525770309217990269105683369868147007004668071319009006387690689420354186765107497339382475859863862891901184985160567627206356818364125792244982802899653618617776686778141029039884734762717902348638353671988418153776428435790683635879056700585812134278486017342992731149852582942638130658497932171960271888398888136721030252937373068728428425267681849503279329574707045375230320864088918820469202578114374706774210439314645278658963807040853074482407805394314796823543620540986524254461309609568972992532000469372276519264525234710438680616284415026327290612571927257767631402242018562351489059030613122440819438963471259810672223080736248740388234464280483917599711890693049486869311881573358946333731378306463075822060360727221651203940831736077127229108945530997277130413106141567730248755030303311974593678235696920692900868406551784355069909796130120859134208252365383197216400257843865315526851804559506527621829780729270016262380753984531787493214571767442842240498063048733634559557141921655599069316011685456804757856944582581465254105690942130415186078742436405050757001169784515992851436363314191985622039283636376980736964248023175052955013733589796035987444259036369071724627520840312123803089261318802320710301404611955903967347832214727621039428519154515034699239286860608789482720401315517854889242118587503260120766227587948661078061994316694602312466700366406945698803378941916927909305638007712556961113855111068230718626350878130165915966571995616639269524013281937122686738399710231302371860614424028167500027852370132974280057314123377107673052630029188543218495203772625172519665489858630275201985805552865567017412424781398441147945614036133723592910024028800169542825276370017260558174084453430805114569010709200685375107498005622995679393703609421655852401268260862013989663997981826683814642688762945498686986956018358721332468705175195617160408503607021926593490727025109947572522191084244559520783085143427489795831409061138136873218656247805199733098940110047570718189852293784438141434541275082709849791964579292080235503643635350960125171771680565549982788366872030579533233548922735814390956051222929425451105961566598998015880640054229431876949270762221110284761808261596446602704309729054929180957757759026962478243427196842521066737089539128792695710391317015524198956659379628884094286905195234919075493968337433851086788683112974840774256142888024202545647075085740339539876746447064724122440508415745987731692742806579384510808293347136974573171707801215046556077308798757870502442018251306625132845793796693426746591767544732128729799255322939565415828683586256392962270161695814361047964633701681690383700255736494401395819022902590430291793301413198519600605393959301511803485506302148638173900592786593779628397460050166002456192425055935165239389938578583292259171164760183315867395892269179867719926426770722804451657455450128217130748500736779344547024871488371884766882437818598556832300391829250722212472339543814508124959205727385821638671741214554440720007746256677999930338858143839522468418606099465055117494931262474754541149008992988802447511714394147171562048431661614834901904600119092962556851628776043685120922176537252030663261027926045712112346384308976910057607603820506269489451831336812975700849465036278304450342429885580336356198454450541852394839890825148086679715953087237187329524617526196498905920546969084045225197466547763406553670508396129526943779829719822550740087246757960737559298851192270040140899223099769250729082437252930253655458496293343701951694483160099816953821753975089393183088183490256194526897726401106041349080453131450107139376971054634766542938733278849650778891157044338998759686206776694117023532572196970063355980127679632173540570173738734560027884615557553918888819015793780554417315212471104852527959766608726189792991456157552097970404808675605446942831227454025633219115710445542963152252304360826363084422103356833710034748286461973431203220247244393229338029788392731660966573419664813971173290576318607759419141898287478329113668433025352925249647921101964649065217824280216584448011941483756087062646822170527885558666093973084921172488988070552950041388669076368399430081887793480377554118045469519337436930740150043869156290274693614588145704566372976279494406160931199311174180452044928354561469971287682350175144537389283837680072041680696395364925057869308093258643237958397918508366785268709394339609878348151314236645262541524927558779906532561633208127186353644050491018131486487972806483608496665024892073569753621719047572055407926966384435426213099435243251883097135308234078731415494809665748791962070429813217624378108179660000362780596168645858331102483433125102935266385776539714735100522118161656726351353841367755589213883356137546166901506117537764963729764127572979618546006530588154337466463750246766187368286013593899796610488703732129989880771893034558284247986325865083297164788136878369340431586994415840560731051700807409062423229834214836459375406668988799024529677503806308864246235400067920501694025766842267333776234700738508610419471106994358045344557048916857268425464900093712562476105936696388997312784658624437991441399515694668108392632522318191172864007455876341045628857512550568081525229392792597814861747545269477638044769959550506070304057230748023470574234467241031229653495050651701165431324285219759223250396349180246543163466129180222569771408902123393287886041739410135263115203691114539200387541090012174008003707640680658246278050875572041054258157045731547930958472208291904617945375395547055895534904623810081663731945502358481019922271929120161775202444668605900966401426557247684365331867035220655801458913652142148842795655866270593388749187863939123109498561212629941292195705509821590414591386112526656218794569178586414084184662918123127717018560764298414034759248597953641392957002953996000447652417411806360908910703299357601235674502894896672436831132348273563813700784818092204544487869713639440714068381085375023790679254919907435453911187544169787977445880706127946791026105972678506875496861910266428987266041554000355937062096146877748021195590129744347561903690150322987650744211659407494846421163583607742142679643983102756815554612105716791531072217779302545732287453729298919495464444302147434944339915261997646175605004468761414451971378481762117897724143554673546702425073478364221897884302406489528463143881634350752965333347820743987447844243948343786215800052959412016958449975956621953145946385170657449406445413770883853227475395462267472178164107859715062639482911743733169123087794755840162452434673160765279230383361084033932278592304370696142336185151202016300371064733923601594093487614139315780147375520999305714396909361417808686920081272999501268940633815459426180425248707055293695120120933850061826700896112557402629284289397798199536585334676890135251331654478486211389757939533763847704378960005437463152679226126554035001329447959332038995044036912341008956512641833327189635116513065117671202257937290610148423524674378547404696125822110639983260451581254754677929322160100396891835166867336830393136298532998872877313365140099200771811594958529964781866067889568730412979681933386864036542998250248976083898727879968322479948612906215381195278117506535007681270346380699853213452396070408503822031138373124673544085400354980559889762848218255029841751924213819952951835534403125784310766698198236289049859569939761472019504074153418288497163679555729981157692899029453651754415265328609725311247060977431006428102157231991439287247182840939967413832697591370192060393452424462818209416205366883589174586151994610289297586116332625393634857916508954974755610887043082657833533954872060436193138168742118417529818004502462401321388921541354063163302382161565464533991219188665880282830367309947128978081654878897206258768190147486576432647455435864796605054419314007833058157665753933917660149690172511013519303276412543790817246689999810787074329882860632105428729230684618965421625785755601612552340300580197329431255534421488652069980970043014298345079053809234458243679438749162814834015294287829919084621132239087623502463789187701226754763087919453241491141091253487734704529022285676973757021670272351520368322814498653030193362473582464002265301781786230613182673475745562719183138593703869423224060783415856173750148103203795100191326222685916207583999928414258360755023703675143734725006108456521231782069026932327170717018071750076671070243830088213495621142096666279257629475353656122311963034872979923961295610014411768430991443598065566847331837711114898251668605288243158296681577367429301750530961966351587675538641288368646401680329010209836414539013618201231060000077579660767714453237449036664538190330356596405377484863770568919521436067964328702651141982058714099621884954127590552896627174371637870154631182349958080516726387898690116970574332525233066881141023090637160965393382917542474057228131824852865622014084294835890305433176866938862725299013743012988285332041492596472487084288708681215621556590555201187669920995349288586951293492562058852997594598147350552550331514573498130249635666005715621294128820162299984814529158027274529433671346133989549925197261429546713411065508748687356789905052618418649467003626154556517859007474346830220335306212633198282054810388329437727848015435298542340690991512207114081916532842162868282636635610834323566621845834965842435114082527134184467043885460564089153311183112391186053987811676276761370365842848180731392005624904716232823299108066060664706264035428591900796973473018870585654299212914106508310502492118115256100637422924329390473242858590436910997808736870161271565760862527256304137946186853271590894846828027643878196883034690139863099353489043993961413138596462884385448545178614698948363593025023338886138660578825349382042975420534819660539437264347797913552987090440975167142565491734186574028331056378689930376561815662351820475549941943497152154891214252064707929043762128454036356540042644388587991544652650458844150220834818998082523762637834939192990877418633119502333553507950955019850442946460037920770326472316538371677976322551046150834470572786498431040691955211902908981909550664375400366598915712966903738260586886220943158567621416946277003446146558837096145418383678165326467179887047516242002769841056810499347974174742755566238344821872394925598724808179028869791780821130782667388227175699536815810068349441770141103531411070982796796045742155734677372931318357429009881725107070010270568161059092561977387252629549670643826974876315270996332315389780214195846283702358552280297758021406191250393900095497206896922935154870995796216818651729414300236510071410275558943126234999452621742518340731495182266541367071120543595047705298405516414408231604009414859322767183356104103195233484846079523646610699869631765885028193317090927754380975029691292829028718271868676560565601038836259747689933191815086846351020204443191415907723646830255391680889137742672332139947128849775979539773479229678936219309925112006630115661739065757368376763659371892114223684991202147557197223055741005725452572453855565056864605371122682267950192963103945844174558065212238893467377781174877110853585636510480400702351384140839434491495873363170337452474420769031046589402807065204049010261018063071440950890118365282910010426311261217230160730391427829982605482593748719707894559086334217056537691155991337169641525291258655071927483459371130756268223314419307505994006735363650372935500767980421512143519725325605622643945414113167472987783687140996758965630701996956082462801450491199124071218574805370693964038921234646978712255066960696516150681300606294107400804707570130916173507733475564877254736912252150981350331929933833438210788554383323618735690716080545580984367005743508507531994097659653368721043493322280618834992004827873811252750304920888817484642831901653960063046650291562089053229473199966789104299917745341287689103090997671881480309327162698123657206043315964964934205359309749955463534159984382386204942506939320142666378368948120219976141798608305898382939006739514551757354999717075389248031529410901185149261408759447372115939328926370506958329918100862084041028648992346326034564237042482425706390912938080170465965363072414492818375533047948623350633663637588656105890660335316291117659790023653012172857536620189010164981597772472905402267078626833877730111700943185140357762194548167620643753196878414851842589344814052958399638497025395976212635978594566911063706013322795334191053037954042597830413766751674976878746529964917834233642700074547548194947135986680691566664585329149030823205989028120587812681576743093072101761358226318999288797323093201014923212637326715179649554896892477661184315456716175749393840161652290784408942315087668705466527579323880554912666169377759895392556108040693811822480005135080937204668602003905500914116539448199594173218719034097188255907262958428371977008581794185070102392475998828961357377875643588549634256114678078334051871095131257599993180519092190226656156950392826194790160170231224330575443126065446462500868662274804386674419442015394260381155782754000040402071218190131574640109342733574833610146940368545125644320347075284483893175456176463157220928781027991202902189223828247035054633830941944779746913088292457205029220624985552355105654164304576298864176806201741134808923422728834745432011980726606895692588229327024544775347217655283908061743002542828159828767471359831392486775453184684460838048150815663541946256581329635955059482907633010681564496651788032837772344264957347620939757595579306386710047774393400649834055072362181198948448212717277785138995684904476270086131269781577572295464760335927355634301851525659582920138209150226200880031749728538998215039065355933128282835302291042484991010409600808129227371345158145829596251438171754663416763065800124676193027393974968282716096494372311355756290781019612424029811176798261867140483954668523855807275940560932973124055553730447992932564932798114831833202137311156232404092544419362171293573215519555826930703620869391030956262579288494465718175291633610508440138556367920711571888579885134962980427561385500828166953039086989620802903035538006255632140366817790818021164843877948278512937817115195312920602534993978761754640800188549112650947737794033808138516582177365474212231932820826980804014905348395503964389278202924723734827169643746781354156230792934930724033675169925218892240566961469968147387885186031428976353797624324269819101596656181862939220488095891535233677225687364384668169767417735744924027732442718521724582490379444028830673844564001853656074654175605371082546817925693646964418020722076795015297467508384135231135616254995291763514168838458188793842769207700363308166744134057171504307644550557086201962187509021388493215588493146361185166819219333310687104157219222584513623221990026708380222348732157579711911396826803848840402814592695923283959641886626796149305159820371186283109450197691335579388158951141532725042249535888645052952518856976647677540641989646125632782259701702333755852088622218260028535928144630861090706741716126123002253062294326943978032683573008816248684496380618338129063172066698253927339740049475856958735139345476951134818732264175263119057768859219802373209352298817249598232180205141646542331746026771047957385695174672602807096815250437335898205504740080301330175581522716953096751972016120092056623087754287106964586347137428066751678319373513256522148383317367230811981653422398026247437655894767569216343687766915649479989449089533354826086379823253949166726899416749983477046990214640899683758249505829081453314220062263702658890856758926305062177250459027499099932791976237866665291918639558768793566387776474276695160789608393162352529278325036415584678024618159880514292691440698965247194819339632313685463418650909284138271725216953836200632300921099620624942506081118148675129816086548637849168389142024407461253734991180744446800456578072347621011306844607797942213204417518481616010190843118577837369230285339399275611116062550093838015931151113590785216256048538691432381224590429977294696432227371518952580297336604535600707534380412669670586791436932809218304113925179378607725904330105369386056453122825753943173722335852211681543044363584974277208363422787961783015362502801858578484425971986713283424851276948108214828989987454317220977924036083261987325361585956014193841365176258823231664971366187149882091304281551016224391160452496338425654078620540396847598413729509315814877737124018717977838047898994943654297767325701570538126378522274697246787424130079364232849781847838418709500092027232765464981769718563115946830120997154727353173557025264097429486253814814007859420937562638394686737163244650066947567053159947268781125617046006407444558074290199970126210536944280714092216615182130793486989728370011952930810736667285487985787148223531687967478735752661938542362400071391130567555033885290142377185416489229415567163845886141110633338312041108527645828402610255558454722593759618723463643099396380123444892556529898272029900367843915104186874958244295462621261555251986745094446529022196496329554000070385210563219676582484226507331253620546260268684522660968880438380474372623233161666015912793688199594050257199993291767339310271001259536094694379663859680832664319316496584963397729194414518373166757368853645182023023814826377065301139112891369134624913279126032535345919916323452775814247666027954795407043305095730585710512198291209443165335943240846813807488753872970853754416828066098849350666996372897944316567926876367066059226649550352104308343571403351838775617420963086662250481525113784858825700250405158386183616450763591975664564712150619898520627461072077885340900897413337888452905606432467837237844238116245396078973114333370609605259730199650937439545624668662812432752778817857645097868654913892339614539387201609954727731688759973321677118441995894848614261038915187575363531390084472167159313610565905523068822701639006046465423719340430985082507735015485199317471835737304491506949757248007908426935982914383093138985548754942322744949162792191174416817622585153292309062702886262732717271373674728853638621232215215659814014346174420864122382487018421762113798480012891846115029134072351040099682816355155884962593470228424529656446314581220877964148139740521318982878542842696578224348921862124534021422918738248798312836552083881102235045871328965119752972393956001142529640219606769679575814793597999314184981204111154282216513239255907098748163233710191611397919813113343628756085191368235626377581119520159283010980245617011022257367211180753783939970561978347858998010395864273294684313310109468796463429787772268219444805699924553685460167533539940861811762259294277647153412400002769010274117619239922487172129321988282132145815583308103276766568215762232861023578888664955757065519767142309504205762010616009270364200234045097208356485771816682415119269448506815186293519056117128036592678213698507508774982207319334861979007258977582664142806319759559863145370970654776647680072587850063099401087894554709720638038948369303697002697458292541889356827697675923286776710169803509732769360272883121039870404729507335731757223271391288682308969775881257914549379342985359447300616559315055902450692901802949396531937276413075979435030186195182849400682794556592773381062149016449883428475015304083572143224589265200027521484688613520268320201235650451901911872323559167037232979034597875506946927721571147182379966807463907229451229908534653261746797338216839409164611176212107568264733826146148780221208854610941607249501461647180175574523157572564916552016964627970618347370461961194707193166112753777075198944648689161124640677993406222196506865913705310362339187592819657416107839829879513864770740645142244930292524076236866433594986611393309682004315015611717440284570589293425048899723028035902438855797151315458832846190466314888130054461650106191633925396324995668918855812076832961375023195402633096304694051247986849565872764528769709915657361774733919053124868449462587226912095502070721707162187967918776070558048101519229507432633782002791831155368264376788757991198116796887396317781452995442566577309275671432912484702302278647522453354025140790949182546253529101439352289666482429845599342557559177758575824235233897374748446334004725931357292624483984877701765481318806697061502288930961065688203005792824776845650575916401812945586968803264581170511288126050608222011029481378867623478883248252825039466886560479147243495936240857533931494128559506580257628000890635688149232095192164003188097299919802546703286321856744877047667974008052444941230192577061686079333377261667952372310225603045607349457206356031317070375962721464901942508795425966836567349678477964017862775009417083925965179211371888502696058085928715465641853891151124482809575136933274382978784025912924252701523801839428277642307786599800714990011271862672569779749355858588276207844192101150122755574177976386270585270654598893783329649518770115264414216448752086329424108541931861114096827628512901437848023439124804724666828152772743115489646255670802912294104703665441279619458724516005911000089599347648268573468246049695113680191131432130230724663416373425090192136199058793486103011684913670312515932112231432891632315514863903892049073046753790603338481462237904763363720223176833541143297333311418939424737931987551333659519236920605564181536292745717249538204457474709743381119982520693905592573907077743606915448349546454394555065175130465938835163084824746341099051994962367971035899271356201097850561624995231890502155814684467724636155469783168324827569631357175583147078970917287783371804851989545984382859669977686925059438280995311638096443817997760350113087073944851928516254905890311087233296314882559207427401434402388147125455959070011936654709673891258727027356852730777519396886203870643053734199636785940852157897724435609553832097371222349936362340929899012531960339947214295787475147685543217321671274622768033233000563823270722754529494217257519412510539167218643358594453492687692208238733143003926135466300572963673315564909795980489924726693864564374620224968338000050557898268566769671142801876726217786557664915770035246110093279468256367716153962437927712948381379723447290968522053123318201578958447957484049665426250203956746823547335325896674648211886220773024416413964005743958993445124070810023107666728342986005755493637474986490855563048804573498089745784926319775144735958577735630772546785298233325468702009571974896190023249744687725350453317273092423088905788306207272855498567467904848611804926653657381113003182547299877874226322450523541721830132563417954396498386793829456411967522772180797079505564445083804357892004410159910087105620865457535861988133754425521273028942416530758030330807963603979606664242815793244860528724956074874090361813640624302017652262395586836828920962749246091188942919022126987681974610643447889946335490493675843048514349980646095449673288773001522154402956812345344894693259234979855786079219347904248738644206792284192513273004963905388381579374791162995933734710442586573721918359134231189246812151005641755378356731275277203394208457733093229393377414746291204143364237584532278001041819917548416469079889666380349031404208579751276702343697309017820412023120163323706816098096193762383531664281467808566072208949378140585082658256120641566908039133014503787374700861916342078689658413132733633143633823725986924785670108198872061494310116009326430205345194366867309888936587361852746283046848650865893166284417428158134399120583431847933143825136125768653093775747737196608082413879789095686319242787821365341453517151201241563214557726125717115423757523043561118558919663144423086936670511991381534032262106215943974271207654652317651989664244752620471519096989174455118437433125604112060004810628341774495189990610221341264453400653485761580063364046688273922022619214475711159414547570565243538867082174995562889089016770823973102051948388718354983432880888607110361769033231078137963055727389811291277038682799321659040531468963259863919429152076441218374053356689581994265209152060722347870111507849459926379425827381004560937340373847005260432400476515103397442629158978594216190276546124371007314153313395606701209923570558935555864373324662393682733813766609885613860817560855257518818229823656205930398480268468925648315727203819634275024490538138712272836538138174118903818629370668796552740183516011067772154427487631866938516652689190966932412414576525175477138616790707468769050286308364149318965595623542786245515875993374048688880593635094764046404226690237394346938131980945539830596379527850040281880171518968731583106825414735475048320937668798878682016249772079654622965998697092863444271187840432634846582416724416037900486290633522739626326436896952186374585547737927708108320998006560378549786179281682380184437377739659675829132206012553928697061311830757497364982101473139995137801195836304657845862188194414978493700984027560068549802633573502769035013349159994106340615470787332906037072311612403418705507883790008981769470259740812636634023320523475949462864772027962521136864483778421277547089060751025530145464807254596276113743167930832271444495182515532025306889930585319483180619097628180166772303612166067813695171764875979064176720782749004474566711439030261848117098822188891664963938685131934691125989498624773419222103929318565373462824471898957875867961128151109965937010037834603669908366054995393142099942349260195172005600349859404096353991054727739469799041357870226320692025454984165726774279463961297439136852179485034061807728509874281227690114136816402846752887542766483471728545123898591571606211062103861150414532497879130121380688937808878574113569402360108611727474907686345867962597361001991170298696396753605633035859850590240448570523144308227985585804210667606978466858561399205325248703555458537010107735008864951963541191453995475570655262775843576574584612584156310747495367701904508846045178961035630096449832567980305263711009034833683273800925855783963976978875745504097761666099027954291885893089179509868123115630538921168142337958131082941913018538766498384326660489096880186078698996946395195235541223544449510914904279326593168916538452464761210297732380494910269720631973144576872230188864547231035203360880327345189251460428378272357373813799044513964614587724157800991829452769114892564495544578208112585497462991227232646490397507964230600261945260981238603894172852569764474274292893781644102259782780808093811884898286656450750469903550368236404570287861926400784608310625668967210515107875998062605331021001223580899087864525527739274544838949424609773097681032881810483775584905357543698547824872097962396028564633703672244472560265313928132432260277494460178011800643538046561772418288441537932797330316564262549644575247852251514033329218029943636689200450280879301458362655927453036932085819923685824058244928679704700489293410367432496807871678052871557152697953873176161393561325930030985187458526074604280714530295334442483635278630915145811167703384349810903471380868798951289092704710360333677107781408348446246860614725498836547671435078971650144527699386002279228873124616118886865145487571245875831948668196071351297809734289009348299609161372171840805688912848320307378043990298011977674459526087245017878848275822031416079664684533840137300363393522391326174642283971469201272934108032240148629789074135636204355195830151240608782357990545993705598339963964272542888444321935083739604441268034988549867801424120139847994694742672513457504328416115283189343362578255557624860446989208108295158121308074724848831737971440657552370929620468722922975057390432552935848119802663290934039894973580929027356502652096862827876692654166187793651464999633518918591982811237177058085129088914798950229698022775369781832643658030659460809240080176890723258414412971928242472038004865907624832984326661253026851033499026576578579963305728578158044815065341472910340118651075275759146213859575557984653317465242124797035629657648497169968778459841432813641506265880323735372672051002039187208654889404916333923844805717563887250930123137906973034464028369489145321874796890368908009191076964875226793196883973083136328551644284854543895511923516267055241661011619193956232121540447458844931776033264586483326999953276131156081986730317987770968854732069736111069687352300866613257328235545132889270735840381580895934095400477668633738822098999477588872525139289471025761158113058137307925695089111060363374714300481807454470712358569670187616304402485928102941244816533043001976781251848873242914654653747653084078562990904537378476391634106971349483164149431772592573598987741410425852565064699225753338667022937999299024833844979636165826017703760240428543525146892938266773788401005040778149801065156552974765023025304818482902235166349070894498768111961215106508070884528940298303191343694788607197230910879065454559290442696210241265089620800237754863792190058221375417994513677375502934421394783438454088249683005596980722742714752346186384496330037201105848844426282284718356695105783641807090871181197634134679230482799919294233444343374526571185195827581724295569753655476535585715371587886731558237317912035819433685902461168954935845484381021820980564566711522781111528663148797912241046715034541226359174023105072675781565169079497535456954661023435063517892628200738767157841844853233126474816964104500932952639391072551402638097234507421452663467912487992195042495063983505756316700242220978888450142354933264477085420732956420064799904567282882730897363424016355981512716558570876026319347603574797113673228442544954614124103144112136532959073184466267811106274019900800574085133602171132919101914817238581103597632336215944590686068858174582721066360783247211055398822853111623083077224932071876031428355497239999095438674791190412064095816350306921536539525593982910836444057789476865590642695907855588927801481153129605282973963783052239656879793291341582956231550105619750057478825843506838948027201316800544924176554134155367229678186722629752193572967621597457292998278457699958185701247041065275523470931676021088746201894983099905626803547323919174388035285239451968559022629912340556236681684202614065946016614268981636489632267056714545276155208403199775521811222283069464028275458309078800952553826700117480894400858244223448409014439309950760458749929609291944867872842446552942603550401536630485727845750678903342063754856518026058646545350492315463660672149559792319961283892566068624538219662137909561418094819626802348373704864453909857960411713107012433147227706943816242616077917473589306040322161173190236290108124146346823909101474784534812647369393780345086690201178540922691890721139084273626400840225609527953662226878036310749929518963349372478078424620773854564629746985678187794641332775595949591985874191668447830186688758259850633580953047305926279587882662813566957418566351836629677963353661625690006588345284789326123079425333212093431309861700139402245159398630153300275885744826155520116321655830540110902479913174431860947888944247191765658573938336152938916463157877752069260989922377842721076226754713629677265283382604580315488184291834579056205585231384674868809874757418299514360895275711489696984659133055157182490172640634694738316224845702956882134783218600502197579493279575371401946919871033919215034601174895493500576483118480038321070455100031972994606266908170328465232638024224858174035422985108136931116248203781568240267054026506092762957413003945906744527919799664729933275003238785344552182030969527725411833131949298374542996743450834945692079455833089572194166974255446825338646561066514161947402732330689180554887144239701482488141302433322116028228928803159132754604063931447565045102470784782700310083062398337903505920853878236743848746907159107166138352709755851584349132103501222558659285742960510769146892529022359382791271100717798787378979020601040537927126554260278572353850665444666703866631450870991655715371206920784426287258032345585653143785432590390181683860053275496579257260690379957598881347306888807474475471119322401485057132580064528148510649450621787971736653675812418556178181865092565915089678588385373460069351497669402008541424119586157738199026180199575558106225483616404106207630901758560745738847326450713338575654604173253371130280137894079385793643399533627809231210839700233028364694233862029910331376974507251928193044810605361488981272372755345364515179843869973757297234479617541226385432501523178083972557268785022568712168135342539028347810191915420343242593460913311364251073193994337038432388613758805682715616485493653802378509039348336224822731820740996845329664200662680372687820264867057829851192845030221581505303564175689377542106313879430081690861925874286987546755092349447396156707592501916836911293037748049551990970398233638263648913505843039964819572362115740772576823369907023744639354292702053460448038310231444811459137953847492391572943127807412044060803097587296697310718198441066933408260496984151577165929551948655816486757794233936898827759003578942127616047047342116721879204887694233196384054499475111593254796176239384985382401964770818520948648559242287732496687300301024626104466769085254560976052527675426097221758042315321576735329075348153641113756403344937644773157010744177623582318651700354720537594043178245991335983391817819096329898151391257543191389833725440528150815457031022896802995772275083312116597704221998268965832469412245112832949898729700252886927820088561271599497751356215241446212011857260152524697229091514046407531921992817342803276185996457025802115601746209063589075186175753000042491967200921485676401596976159704057369425903568270576217269808261258458059616706188663328402633856482864261038593074900732614647683459041578797930499820505904321300238863933029787387361962755332185958012662216325846640775464765793633808544964957096554919468161205115569439108079681353938460597500671795063102561224795271996046570862538431272191945200310509319123694795458561223792958467448322080383851926631532382845070622235541635575201604845859578772796435664079289773151778925432460163741951653324854866212599811797246357628056178491675839232577223668439231390463625063640230283172300137855383978440596035683326842799266546160672110959606388342429504300233636510873394591424660824687867914224109725995512135343919323395208857001590380446982663110695458536384642995474068040679609633400896596476123350118154718221565202593800562590621502729012224260404147261584034278162605459873385724563714777921604748274433441112967312376761198629786698630802417950047309905486807868392900997525783605684232527345124938846464261174378459017654469540965159470872997650711276266611757869601903289742862638348064602583518365195914728710254160903417107626677581504651694625449579938289961786666098572735726068550669586903757230549955720906262171394703968503952363129448708741524764225060652166970795528304128108686049739229536592431541725993932707486079566741459387068412327500416690860257614875887987623593673475462930459683470578182433923747399924993182137763038375299038515104921386268559486228289802909860409840116650732228999532240562234847784269088277733330025209570716387891375728361113161508282405867748061283780997658812245009750709847914399252401416224053285985178406026775338192282678495278866724568933375945160731956862168560635120350246309928374185078076042047738430532548387635924125575316364522931635117865222823289644483191026924741636339992805353093665926179864424954948846174813289956813731394830959499581124735554883738711252190337005154680402367783261544240656690622404363579199589191618731985304828006197422232098836693647084018123214174762767322394733060040517262859354854118824613991225459936046289697141341652030935025735593612611451396476466490210627544573749771447155080588826860313596615759788880825134084175124084231421887595702639616666768421788501511665029595597861841596054792017855481164654185831131412091278284596904448081819980631438903805220749709996445926804268473445415578103344932059501563201963053976214180739908627084806430321780024760901439771564231200722635434932737991573155185911006524727748519971019847797665568944919671648616867079037571706648356280803259648676734045842056865018193702426952536481695581459090936590780768681243863993425655353304650567850655486555712821183817396599836335767803088710405729720638481947048233307935220906084398628018386708952979494559033980397505682344935367837444146988538880452810081360625583295193112119347517762845206651922225273866969263002566560571379874677472263219110395446393846121845585775692692112744696565407157141418197949229614464039021523936521713197016823791016253905630796286769037036699987201010551972758839049026661939716483481149742391173870422714295049803918440920353535056464826470908831627172704391412142384229216009271291236006701029524904826889528581360849432035380413569645159309243382773010698290740036378191072142201091906924187216027755580459326490152150594142335313528627788269126850570087709441767082111178033916132310778845476958923562860626769063681154808619448865059856349824207852248210273557171168286043742793001905324214732698076035933663485592468191202394714809212332841860500625853791085553950069351432572141821734241696582891687104773831105970509981349409693995533517245346454725301945250021970423672563394199259591390300437260389765339723331018927319980366786966546139807538001500749940589639656960444463410488891018772540175813648299270189893187435147571951190164326245651420062310747654521955306220940907622656396770318223285959360902816252306279768529106713880771274641902570560244612378307890264854860064900878587772245828110243449387066147744535679373207145334080832496103686003164871160455763852964000928899056590388078720153816868605784536026239537615843658764131568954201845166804253112509061280575860518512612612637270196042362190166991290755289148425500020316639433680320405711411604237579803585659563124749946956984951358676171716148613421187649219985740236045258155314008760929919647446288133829073216882269131573555149018421727816778521303836603763561290076854453156388109058718069408177819078957451433595938390351399592322158154787478672620334227303779525481013433488701126988252706945729704429254738586395894031625241817680103388373892597828563795133490722566439821360408060769512299054794220774558697799330344439044199973576079750280203525292863656227166375301043481541454332706533916509959467358711349333821669894856705573807822002173120939153007826526128684514242907265999057095825486043035452329999651555781461768952857780536654894859263172911706262038297980160841215931881886962902828715797871793688490402576691969478911970166423079447116300479691660296336654116567141292665838641676558425834662650669041699510798199041563897096165783606780345803858875490439836681107946259228094843989003473574576572212780205076636124247453027283277919753687094602692110264128505204647715113195909759784752009540677372174118439959013507272930599636253552751836512584260472280813050170163645829887952963874735239442289840412742307669265753891912937927022735871589067800740485921648396309083923403988400951287322298306185307149444124552897445431895856118740001809527520962851371172568457262195438787859256273722400118928592109735917744530909913760185710513365526899609798279669130166471364566970732370814846534938788898100994832982220454610020172043612751203153811658299101511869430491144759374415119921482776988466723909198092150851582445610520088718546069873013725536346329956445546387264452326955782438168955311089653134069842041218638500690537990290112965560297304964605482196018497714995871601601863218792857765551482609868891466417867435548639885767216407980993078464470041589252981212008077546940444869022853477093950868213234073387381521176404447604834555293052999589302071650213184557608516378241629071597940866179526322650908706250000978529459880341211082557760720141887727490710128389363243734475532766109946298202924784572795959958669060460001018255384867456565827575071585872968677167511148726521220658930514702981699114593575970624052382042720167609089719364403104714270189011229197278328160211355975632554869999224338850451985828262910381822612265599259159708291978623319316688106297525410684117108625987030714408608388908161734018394521786761691021784000705721511533181834639810904855059841908065379840393196765261825490144962826381313686830190537277629022140822825320503157581449110521496934008005917184288674742328188920822109870751009609422271796061186875231086513054879407303247558551585727129568516671150265857537215249702073566554287480481883816894380929471939249707834269119816210471308309570279144044887529446522288091642693221208914373532634347018941418654987580854438978375427611160482194498573399194641634510588275964150749708686870653330876746855170863672200413355069089822703363808724832477362384276712729982790004723750336569135964850589487117971773589537523517270453298808976870603717168938131149261179907638681757227782503037994810530997141332106791117693908249785759501734734327486335668431549974255543428798138728885884082866555063031169230342624006519246182085129405138410943833830994337323561184083415610952547445426678744153945274380854781574817180554292301725770825421551455231168981598415763033104102486785934451395633720568858890690571190839996979952133448395228759228397786569316970545027552498603759381380065895257056548715399259424999717317167976251830780718006517305152956338263279321271806269594806341649691021116023646432358904772434776651725043701882621158437644226666204751278252351887021789802726728027711822773152103035872642082452898843316831579166649925682161144990342466951532463913570478076852689899848932052533721012467448559451168698251650863150655902335060894613325964758574047430716451021988964666857650930833004568187275724168076705921604355468100929255939564895332950279715672189202732570815062770907173871031323842496009919676665726212488713499205697235869332407381117705573234609021579847223452138277157958034722054025896644153905341213744700508903387153834939078365114580792027210147906297989923573034032499697624060788973218431088244930826619080262204999011285974929556277217464611468993929401059494209733817594382878025044409968753401903886017717012459122767688467571523696552122005772424503653973769690285178582720108433598339845445681784062574904319170877438241040318671414204172036811429895036772565460710501286018318843305902670413591446899968847178334704082914681241547430930099815384258505632760473908768904927932249240953499190341621154460821389836454362734525542137157891521320603765643461287733464232652794907883819238644475577059500911944414225760474872733464246079592462981704641534606513308409571476487155212860865784707352955176812758232095338163731442904741798402689359511383623361903652219368694895392929861056065435057970271551124260864308592728205732038245286337536004053715977663220991349122262298215524644134152945655157701519189869240729862580527069848312895480796254353197417128584257661140282009534969180216778750906409638893891048450466408657503729405221041128000954731966004650043944216848594220901445242927222558490593663824402773328362645030305335399309698777034309071233257624941496016107924287316685263884527512670603005707641095261429896648818120396063873408498555009417321987796675327499620118697725690414469020624776565535065664237591469173330727489154340583008070722148098316774819302173684537002122864915199448086439186071365067385266280290156868007386584826956762542105298641165933869248253833787875213492229698895497703342047861740980716210184415161772214819110043733371169367430877326697308599010371973977949610284291618684127575699139864921142478781435310883070128710377476645242406304328370837731525611944730557552379109846177353129064424104470894516690488069509146073182689449278788849309395000995070229035343539213325589476525032807105285424124294687830663108279951403992648538194334618029560143112432856484696531717017391253878974666097145394227727410114423938795895987891054566410426814789116268572803599678303987097866634444047449502378053749408916979173853720974707345273979460572492759082492782583350682569083780835456936366817395591500548911712294589342501939702089639872042336081310929952781885040277128738574435470581971449057130415919250755715118568712451386170846137621994813881555082938848375691452590235639700631112601221180043703847770706721578829144725047038571195085880934755063748382935317775380885589411741926329374954300085072224839222875439442262626959819118969563052527909934629461536093616354944787917503777137415907062317596724558368532599842155881031625624442765549902532750176313629431277960119164305097169595321129920452717744965463360265153656582884193638793377535522100075233062499389170886030551349824542033286014988225189244497897136543887876073258396869412398388082043346266117220437998133074235136784990845864816666286201110167877285493227258973179629008389380937836886224309281603626918073213564653715350504886916477877918584277379081886131475435737043839641610866845447786051856988364354553941467448836225690758229765668051777774848742973152174071722240899625202713446380289384331452516983638073117992146783653334217478880597728426160203584308289244514390795487419205994670310937677692734600115726354786533037870508825586261691695475273604262765242628038247711129035653109206137550104153516350029477360280304265156068704450345658653273748883138871363601280833913126850405697305826236750606618539761570417421742759409404777662958560993046444536969357131235331390184473101670285366894180350236163261932678725773121497249824508730303420476258522565871384417192798648134969900336823663592588206010751421305993540511823982213935958424212886801556949601316342658839229035170296385493143120268575172092434167716759536738545958915630415154340888500416067053346654082813070083289776148824969628924016042114161510361797779321029713476265799794021546997803877847940159881608521421353530414979434853189195283011575006555852642361877164423608307897345825052329324364026437592459180056329087230507629703648435508696762133108287701771634937764001574077061929099773118327157053720920536540297077678672665327793308599658001092217362389041358427951933508882214543651911343401434280942893214788848307387257704974253324646609483535166578176707446537836480284709692610131864502931229616599437355582029288202344507282771381373531087386815666846805841655395240631511573679215491126324775012652980708686532078718046128679242880775557065292782594194300758842780120959101663775041401431445651609392042139955072749878724457109413555504501572289709470592871547857842375495555306882771627860681824647647199972980036733287720747522653591039754964088642547652414313788619066227139203374830355538284344476445982436340653278136319578083438991840207295633122742404063291136976226856540001062389860478166862977778403127948999170739672306752216295096528789631503782846767916109674558488735934754910866919617224603794332653671753266796427575943996049976680661204001653302850494997286070427542509372077385863700415441026059524493707585003637841381860779567606680646172342950075239776514594329489671900183945085350711525082628454534527375779691224833371923427615820308014628017675628250240714602509716056309317672459307604868824879005384715805207507448203052649668981999402515794942321159027841043254258353371777888992395174636657432613728518110052927573466418481851815699443404088180376875351974066363047833728440558181929943124928206995745614238266530509813446643009698835798899933364824964722667678660948382182006917644779951541006483149509234023132985550207601297659765482514322142772658066657557824521143511835733723773049243714259570295855158711563888077995670992404167839450785418474597908981580413082967546815203466039698784393830818392374771627897713828444340513409511684277340921769072524763108922444664789116879432513222007365153456231185501387421523354450308938853986101461106907489109566359662948150468546756229289415108923729431931956149182318256112906025836428781721949291753453882352799362858896363679518066994355394737960678838639432992182785568412558677995497954613302878621464651571399165914028458734870270526106981706256806358660128164497972466681641619698798867736847470963519634967576772411719388989116184101675724906528123016396816931500308252014897457973889001526824023777983097240046310850649974105912095015707758414148918052832467306183514095174913707885125975348247692650042368546235843601597072961828044309168026370057859215113722012165857223365413744447659413954964395531325161609658018099208779083525790375772675062232251858830607569323189563374733180715366869988498638691437039379137969021750962586928425716912905420020815546977772690884691552481174499936570726048504395080918943285304474939896300603185187727458210524655774108122548587461398410245523154697286056159900491973013387453043160232464499265125017042598959818255652388758779542910909672190883553577724986861366152804958762154417326193041179249699714236480394563630993072083516922495396202008388151191837244452275263668892099295766770956673835188966195961605375350086023233648287212672794571825927178717732484309582827357398194107946656428415373520978922889002103731720275866429011838350240103826226941855451746236005539053368444799037802314935009104335155598361186501260495696025913457693658762226557706320751802591029709744929517888542021192971691266310414209140107864252386132081347634547297753174408567322103225460739301677418956020272992031624797537686278078459710521326857264537362422553192509518617187601345112433762990535554619591752548043038904417376179131696274344878531155019525369978077934471263842488993435819171956729612216520534622308553410454617535160285303531706014088121363733345863747449007128683413621307466431499196264587662383247945685549526493664650173730252699119087348893838082204903139990505627544398890446347223256585859879118866887408069701032026820399164596539398276313976757586756306611912485289248569949554527475825958380592669805669093152791187730205978970631378708933883220709508976733530085556152945784936406639124522960126695960096262492362354350067173565750932462110097876387859400037811122554818628659191302654661216074980353256023443563676312411815896469738561508295193180065715412630622899429863180944708829996977823600837319327593124537302930803197083916792112382203775938691282057040125772444861579782897032372098243141995219135693399070137648657237940901897310267731464770491543124633531492311649828461191223204432979879886545504885502817224127196412962142552440814338331848355485316489156555947284549415951832993178851797857233334982197167452209398227947038948309387006888095009500176018651075682619018212259879110673576574102371886627246993510757585531487585060688926530110183871898352111721543535127593826432969022233949380459763785580907317163495687503270898657045091638820524807942352227535687082560260318281292577270037991853012635237990106194259570352197978694603793409090768169039374240329422244856490624292406904135555797817628099397846780875087378892721735054157216861062524353129717528701700217138926526862619668687123822200180819981055671128721788669286651408685730731420302602941758006147543396996144541957801734713074532518466502487391866312265912601566023637862665201617416091315672128370430238318580118360359563761144021963419885177735871538027980839239623069592894450288127077113265979220538364752490063865053846735265471279601392705742533572399284392566821190075920761228272723860856213827653499339217228831328929444455418559118523325131830035127913792520760388229329076831775728434767105684327997447620079687854596090230370601547443724261146739763761410250891819342787823041883115567958045412431192103441351490269095501799996042072322609942749361962125944584701579942673840826916807034200373342817358824220480345776191805538441867061092786475446871109042765649096133678966932061865099048116796598605503404920596174158403183736624449878891035047061650009254994233945662165624604863627523675719584621270971010358678373762859455190356948078418442046116427432686078748084405425187122732222002621434798954295282674932403815009818480465700784161918386349257477692646056917675531836754822789203318027266531093127116436793381962280095954133047870684275861578398159667863531221264910741628340363758489867323878266137690359301362324296156031166345795033480696041468095999851416733156416636610638135933370291055809518610025965969335853813370266720930385742574216786429063642546277737124516142500896386538595275801322289186537906079328441153123957194433305971116746266490238943266717961130794582310441191900797838817152230006700944002400638759226943622851083989082522875583396750453543274241265645394801066480187933702647796786435630154195928502562439369802444070041489810128503847612557665321967998949975116516655256803543642604731499806941576711495717908706191447997252271479529327963073535876112075829068056459270752877176117312662945676036633571335348362257492316090884997339500082390802270834018442186023971562268946975901121116417635281961788002013550898606998035550395507696017523557173491367658050366348098917662374727779443889209867951693893615953250815761042649807718788583191666025875455855802071249602035690143602411606765094417511639955251176046355458354558683733327378353855866576517556532384665889863983862957934979865807839120288373221654180551015045183910468920950564429261871307271889759719852246213142951936737845472512841913917280843195020814872144868180912262141950796248583678725120084959052492536635255753971301282522666319312674727117087401687401981820530095690121079949369324046386341005226062833597847775099361974110216099153341241745632227291428984531546044679324631658508205990084443044529235683561305958572769849765100357637380948890437898149713389441121553404782853834102515862734522092981378958015125267959050168838110797793737852314075453642383267753725911397231685879268790411956752555832558943262474631695959323793280773972152341316510233269555100425671347816568789443259010203076129931870611713111472446847380987616613298215895237336732356716715456141755516238807971200015234531119945417833872460867591965315696494597543435262414717377027351623521869084588169433264954360963069032786367827217343378723421220127791453073615284429176459375754527665511736166249377625834123266947038661801099526416141446943686665541214653557251088231326044430205947829570646964208405066397206393173650735131730038804452622596036548486365969426951483721919405374886648224695513800141661753441310943976696304892594972320831753099626143078452993318016508452080323635826442101627431013661298558705422918469185853580002596570936106888670740836870849076125799471641309963888597728060572543836777759459494879039592655876319211032276505838730439987043541540772170815337122816972534708480460678481530339827425354606736133106255364807823517193731976382923197606879318639973939709329235846525925254878475606695873672602507496468659320534760333026702258789399715593846707346382221087165431159871108323635901506917046254335142205615002339931636212269316141645163467224870089085755978428672090870503505953911028556125649913517596449387846853627188016450215023465660857544006212932808424563547806671370456568519259335922474643444968138939640957288030077415667409023826142450163971489926715058806214047363887717765209161257743011347519545220374908961631221049043534651801900090993521519640471458864773560214651224794178059004235182076679650785800263851082616667884855895074915864512661930983830583482629690713170673107171972808077684848057965875444137992944910704747182972801787259017034033300092303925380610416754846698895731350680386861742639924436900050778323469824069242703312234425338168695545685424131743688576721218523392455145195436629288774904004394559466550740842702513881542258012779936249482761255301095759410701557524570174019788509769995259561720868943409159725896349283592949176418770735118875573352390975338613904611744197549108582378945359488173409788639450617009227355835690040585622723780649116217992575263587677173378254508192811081021590238831184952959703028904546355239277603766971804645500936638939527129375661836498772135574322758352117961769740289374567771171020960197086099888919748227818340645149632401913419859546667518630438217822980536476808596413487848827651335906070316166008073856450236740863265104795655555239056932413659061767319157743940613838008162286942147836605812279660137868810364223934492899015582775604767214528875269651849840975725311412696979996835831311163623016679676374068208473522076481987519882298630528018228873740084633583983983511917977005782448199586712374407288542554258820673303865935123488499797026231342809325846120618731449057393342952618555683158647234650823356311168990392980746237301858961751274620110241350253016504735987391299668773165788793314681146209300688222308872061583309685836479381171758723221188044075636045626651016083443677231341484618712669394355809447299222058095400341747711692494857224976113166687150949060130424278786117002180954723913179444184167702457630140229750183193804488448160477701404081374189395454759655273539614603519113393012231332991332925650798965230809059858574069510691920327933473397266149554170561661608154295217879242085018926158908427708999081541020516351796459815754559688069426018001303557855470271598760068073314518161940783672212238517331773178365856999962215938487588392248992911068712777416931374725695651334300630652273792455105626692188080781183258673136960112090771466579443662883300144081586309863172641906333044044508058228112815488916198322932731818799958851273783872938509699050069095815055996862377712942317619729404081394181360272405148208207379513631484335422793933427765368610352540772583999654861874606811085441599378263442183839384485848529035304569715109912504423138252492529540089600277653873866357415638827431411023599533922274661428089503023576301847389969569687857964761481338527462600017284007661035335997001107429588617909344856882386140221202628100987841947785566957670602082972972849321728359478850747856268835413960452050327339001159768997592348823789600370474350944012621810109481571513305005269673475051595793024141924677188377990789709674198562062060336577626066200393475145895121231388967680521585832148587562100493982743377929100085634596084787274433460556184821630338722910556433093467219264786656314689814420038187211093438973898630381721295790929911274307671977729157837674854628928521808203967143785079336373695007727664266755854199958856972588894171885473245704126545387279293835554230412841370132131163168616764950318207812335280786703605753169261111141319274287790446455907453108303045956119947788929764950706463971681451462945312429436355548868636124882656124006440932704627209919380249935389605974433512849065936304283010405817460612320439445967861994375881821078870552909724031508851804469767207049321932642732747494746573527063140084600227060695596769687699358161220808761428908243828225082716265451015076507112254877678312710489858125890314808011532348223548575625016361343244575548970840185256248785584116155906291570640018619382678719167145422978427013185563530075923391743715042252368714308028697389723065940874726155832002885605643054367547301269759923912140930782051634730568394435766080505495391291458645641895198421266755703261404016526464718191682556178050004366263986812632605156770373757632282557237224033732656343992610107277749134762717616978002420241745421963354236834210899820509839969309009668335172915560518003291237502797413833634655705452783485374761577072978602826423169895661621536415061191691186958507630088773984133144332352216108648075376275627953573261927680750591791975382208050553608592143706425588204079499456805320998452161952903487471729158788043378980271991757552841249516455389736690366797745851060492373164749334851389131076704781689315092800565250807400336026255879746587338958865045549105944187115107898947642772391413200859027313482305147114710862568442443055612645731317975946690830413403496984189526412808130392379535423395514516436858329717672703387996607050275380884466661324952084705956236035132887635692831040423514230736898302257618939822104514711649750864957931331023051640070274041872292552531255505075196263090141904288158378608018722688533033426032418874199474309487098090077968962215212782040363871849869115568928526788514369208111989669919917593944222765985852960731611027277193039228750373527674603136498728601485908780108902769648101784192505137683639443277985897834996707510645916080799781498674621295942992949510345561239528518996648389315134166342562538722904207857003100505766723878249942293043318762933107599216334103488185307894578621304384469902259715109537842483964045195613952649940910541934802783338141050549750386325213441665253257834624105431372420513436561007097502647497506018793298970049526351080384880012217081134423115923301825065523290008053296095052967476178277649903380464927564246078440062247751022984090446457608828400843839653757251633090869365950113166805903176065399413046783186045006298095464117932227606439454509746403119000404610136363756652514763392205640853948811565665156414499546999798961551708519238964173504861644019602822837023105319549445571577791956758859753036660988220249688649624023737697414908962278262671716470905454589643425135810721550993127870018109479337800194288116971384559781303437591174498305039727200508838510020486452766917597291317151669041458699094829963978857884712415821518191513119364659265502246995225206586123710861707775297248009628557381117264350439772399159135333727943712149397486397926247924574630926880601612683328108013730760678963885303524762479577296233036320607975313117003215631577396114141726709684579198896782331749802500904092769839889486946584061970883711871716267895059803799281868790835967674438673941108953719698618297673845895439244112174432607281434415683337783965800933241626531197588638631457596991628226060779033373953780686154995433439666253404137239336058376135713663148496022846567534731883339597694060242585033382282696716025148826483767031393661503046556944035909979588086530647752720761812141539410681855315173588005631797895081069982071232635714671453116275825250080620098353029985987653456158772655905776777052350680073472116044980648839123443149699456629688381099231793759615151983265012059878144161793289005863320956390449673274096775615657921695125695757343065011177279446769975484639636764740951978746985740500256663043049693037828646730889074067621720816291000927084108802198036646903200660489829526544197361650808708999139972680652562279641804946454156448767012800583944430038777135570780465643299132187060632208151427506224046357396332303341712920530795518615942218913417439346426986003963040050800204287041572959373530995771667761525162452409290068764840944524487082963723479466340834676788924290451598405086071695341689272768570261007189617528775251605114575792348758289688272500582964348325725019488704916732932741441469386161100821207301489450942209156113531966015060095153004215187968005009256702774616975269173663358847895310487516279254152291573647418488012937076008264200657418502417040705431717287584945349675596925605810680009173553233924655397658056115062668571458886231368778250270750779389298522128983767573394440612389601946254801496866953716675692027945004146572845670685309943119591039872370249270901043532552598050115712122632847074507459034059643855282087291911849839551668044048721547532339125619945930281059752503341685465676518494539988852432775783503720834777412746381874054586392925447115055543227998182086818796986470104656134118680053965131346723238124944140474145964713110072333552028123385221405072386153693166089460593075675862667907505370161104070340909262826748877502859752375102385452677962055306027527774367819405779533840765937191233904161229938965877540504209331657806959653412589292769002105835347234056106514555429320091707450439470199566983662770224702288304266506904551219438370568467083823573011816322854340018430494979858262176841561991791993512415309491580100793747740403927636888269384149937580571751713447558159310327457741875763711877571322468922722424933777711395755848434693143205619352281759976456338446352366793269416636529382929947315541602622781043404597128258224267019760969254233568002538348946563112495170146899400464009118807408707732996430309440435818340841417580184789950262473895690754781926652219934967405417288191105033252790021585459431757345887327695863977413383026542251574881272858188927328497769691108525938565217239184042582582314470310647604648145020222102865333086563744022595880471321869450144366817538530731589200519065754801582344915484431777081767125204611964939450188625676374145376864560060142151261292424645967306428464885104976111918846720498664547599992680177566433790034005684703754475628782493489840871400770236296504170750104540300696831123531729340302631722131708617620296043445482095434867636952493941538476675380957735512146374990805038295646709020523046739855643558238071200134051795358177592661179297460148692132026306003931799564849444447316119372536942062347563745047826759397321270337280578134312662111738722249280633363983451930368038925930968899520925203527857198099238057623612284960652327697097076479039139423140213336869039480868768474330801226886994620347082371630972470472502810603314164701447412054213824030812834719100930862026974909153607225275128659774951950701446835957034266146025302815338482727764497900776889807445830108058076258028265253984671218499044394258918802188062975995631428163848511209471349952422729096625621310572002786025213027165243573020132199505317112041933385624321811596853531436428098866010958543685260108529344637841188537182627216507454141542909241257634281683464248035818333998660735773094094986065706615844070167350646845510834483041034071433068861350648161231335008442336241417442522038471620685815778003440744224089977379525077227224252216325270798286483423936031993600770157814548549973279149571524204777183259862557471172176000475918686134657668007479138823888252605950369614563755509483645524943318493757958344708256511202977130548905985889360490419843661556802806391016931507941239844261414631452720749063421674666562208207338740544102755527732642572666260325434141645180646462013591074636904814091394881734915019090588786588657560805463319115395795199226915101752611355353654804491538052352430920956839133923664186021848657405653138658589180388829010049544105395042819085217095689709852226604914977034425634152011335435956016208048334570567858284751828869432645728470941550706639004202184742841481507293211425552538487682398405964036946755855870650778052888118437054370766853940204366790879472757699767427174390824114225151702319553260149292053248523316443033614105813480812118784454016800498418637195377507912250981688395943984374349050092769074304972197321668269078681894298865543260393479960279152866631674245204993576832197598296140906096002775007541161182341365951954364768265974353872503433557560760309426459371768443525658456189413304362658549333964488136678141899403537812518636180986143109380468608423894176571709198375302735294605318217748498067641007278068935394877856208076607646288643497578138491675496948013336164585535923421874443904872822023274827900043809743722240905566579827925407920182719176407315686878899086982344333242984617134807794157926078943786937879321819276238320885621982562620537061570533650998666043733527800430297853858257772582081434930689509974690284212321480543625214410992658451320869835695037934121927877015483766846258848514803532821005762259531238439549984559771836617746969487713373602949024320140089369543524642846703906282961292533317560905458015241533626970463341560947714703878331140804553272026698516916550545808852623472270091856838115291325160755751473298310481745116901185447389050027079662813573733289152194735131715071421181962239506403606625079376610114109097571987519506279076719920841561838312623278705367794958720934808531033700370796769814433398653194730055395503613737169035404412274418482508972554341132914140992101050279406078134345274545748910397870395925576771973032662920585002184124305611014711726658858875858110980136224271917836015056300845061260958035114622186897039265600676775227127811508691824093126398323889514330730920806181836705332722219967122138243924941338450308553742913951006061214064015277299204721624746906019968753616129309594435319670213870262242747134252951983464115021525852171907334352876050896948985966187372464714844575400426321116913066108000759019927685277231229433845375373445561927073184207700352518881985100009105886970246361413394637364036291676485024313959222610891431245843108024918533766365473795428101980063946754916567388220937206795502245397495279360432187604167371252941868904167875605071581918462839749951776189847012014172849225316599764249139615534630455967370036698271392447461722405377563884525060573831172206330995224613827515438426248418305454616142397679580757579289295535823158379105998810001363558358025381930496087484840623244213019673128572797569638089158911415106268293671325339044322044393512256271342583571937580755554709952805865092748914856061501490586722186301814539552715433774411574843014604542104723710659093745894556018507470655512504962079763495262962858574191061198684337435959902767513512428421627873827040736179018226421161905654523559821346500984434684749893425519419061256853947121550938357783997339853597992080440914014013019692058848162416577920743850616592988429542875926765325764612786581365386930230643249514872291568341948933977325772383110186072859921382743995531670717977869463102412096562992515636907070979765746223022481118369933795400372890400355281383879166964514630501744667830267733915658485131337332213455591201694281994463558691199010467025724886303914313189269027234278807655956714355081008523328736761888331433062584028544613817909164915113898688610204244109694930399461881564346922592382271542373255618657637319111383935082984473757876309088819066974875034626160773620105614764919585888952617573029866000284492088330986935638966693573658315432198051146302918030353282391251226514579604511291362048141607426348368904872534774146049792896866547180431109637020693661800381564926460176322823546752577251006348108332460496397458189485625071592798514006882345658766432861696499447028761727860740162787937600313403053653720016336106731197354021657427455266137724641467970163423221094839273520539921618466844316578051485787487389956117356157422927107997893783041174634233172312368706298879939563796932343814093077303166738558758336589487921922929917029253219531310631375169956489555627920773263344399560699134012345566186600272386440912957768174567455620426969663979149248546317615555834788491120313298081093820200166708214261953839391351949433245587415772583694811634921404847335467048525276266990959144485709083160423866343355234799524193321743127082642757150153738114470464896147792343239188365976041732760691839647606786632267492919332316113187767391913271315644913056937058551533950582292262979366928009889012737440110729913075848391948372516387525152681209356155068966128156527850437743856737065968657129040745040213967864098050162871632426642267337613821529562365220402118843091692449620167039837724022900775191199017338872565494516702488423144667330169795649313895385861239811166830825720223337246985737787251767301674688527011564277582005939357098122586901258892772753477512459695452503898261166802128775738056368563156444219945818740281065680175318556456529558228861695528627420028196403061439105900321537979539693021851942326880794685279140725877194846904117641691522747211068243909658349368174072439125672601413920553750443877850971869061283089542144509045453485238152261213609136327962561871364143164942213935544220600533827345153079867230668801356293013165017655537704716300915062479212373919370575413872603778440942173025911250492386154938190070397322698270844593309383716314806112834117948631308461995943078968496411168708433793344057007952647802553242998827021223958907157262154491883119891179649225568725795187376437265210419618862359708076370825191601974822344820994433323650040151033080334509873420821279214120042048018050107979856172321647350440136981148554105881197260873953942549086287378390374680988320817221479683074313026938154363684537845761557520199479117741233670859357176920959284028880000629172087162737977415351295805029709944241913807628723085063578557022002901343270927772987375157616624748404739285155086316421530282083526501557563119590836823073403043927151810500275265003370868949842881323568496500724939884740105694734338056373384023824360725388733091113738840764500037734478470910018648045541171100256140540878369928869527413926193790851385229297895810628398059044992413872737639857194829128448347659740140414325981885024539106705917683246226948397361157181489852877065023792132178926953611637930446467710253991656844314443202029811685936616659255206559795684826916762997773403173737803087482081178487672545868373342463345241994141078015369212415987783399746699739542951868182009064969761036782152809895298760699571035690960283710085997898989463348720957080217923366574870714677736736097246399221575321940236988042560150000758404117573195749841674033303526039480973788565390288665909901358403196480373293898604594203986896616222754894365507600023458141070896150939469264527739423511469401112771914913692543785853948352726485755216020872048124916910185271799518375607328442667718476795407111621801535398791824774981618583564645228030863239977138499283592092705553078665155645276895916218692034701564555734028766926384132577036016059645969040322551231020295599709891641809071291457489862443029770711389414628364848487157678567794878143125124329355024768726846894693387893096861937217245242168739271859503264117183198135708927075601079299185145627502866219243697984178114140454031960916424784392143902783386837264171155494396304194058880675238187742910855178800207881176791477877311363880277285669694011827275547502000935927404948376919641741747437643099358828114902415856717211865451819540327446308508490018672136527178874236275133685438258435726097657633985935364879062020368888102701585005808302800529052500592040995400955993382815605515780805692775037640593242285382169458924730837269334803451554408908180300009713590313876036950646295255811932331910420173976968511078545102058841174742956674264086276226066772160763338326092443117163266104428145958606250699868607477542904124446463286078462792080416316171887736540720514693121214325169234294535433247282417296043324790290635405744264355101657618868875755289249058307322668857940636107263471314512803909679409368497933681487571329869781321192473059949601402778186483195060983999490292484822645196907669493668091852924654025480077219908917729196093156605486780271484478376604390600314714645229672337382101872503917315524586995542388613649792989340573091186898229687569221987835267888481656201217993235571811933947899729411316250382377160747601225078909139136007369816164496155077115624751848671864274187522209836992625110794587674427102605491018377141493953846017308993344936047697330192877913802703135070732109818820990421774795824467599020083571168178448830478739147534493519381401175208813705984398465495570550101894746331785135447806050024532228986959561098127445372003405068433161951983630318170374789862663270724406537943927775061173843773910037015604508542441718294622323098741599261379231030639797519629062149549367514934829553425573267340573662545638782087724780170125191080613807632941910483768620615503990171057754937943719814986022745743276873586654721193724736483688847386369550472304586168757789926241799192428880868466327656215489453775846426936601705490410696791396585650472314269792668892085692962878423316515400879707948404460626602059142071572641491184272577254451851792252299228998925524179313295561629333876104160849199666317442308779405887350839478730728309916977398349794368477463448015790691042083874953549261759171854122935975189900892226217219144593067886197603562218812780638813224563555606806941525529789749690521025558711666880394625316581559026470171799000399024833401918474186111779142508795783220037431338999438878790174932178328570913622593452398799211941358296486042387182406741709862281219018573336815685703235943091990841310032742416308560704018396764542197565982152583422886796490617533288038337592518802135578893511916333635912565307619634468859555567903193134267533833066316434060769725033746120456578575427494456057731809473490446364211529985330435369838466098461376693430846170005490836101239165487402155201807438320463746783904999935185678107922897258746903677495791338535035133607550732132560029191031551310728317711625077255153125730496232722086022521464840220284279859329283668879907714081923988378503562205294533615680282037531395403317643158940563253112358682394728921042814777090452957049128759352412051358687603284514258273469448854564319334456061039277195821292194131087466667665924574913853915794463552398869067679969535565940340083926630948915637051551833293940005032264170884889946017449665907668684722866810183423473358074816786082569926361457941434157737969727619536251481604750464457139352852592175783952785644120276963185951519925370647385437507348419804585231099524566402639452567114830535968678311138004081619234069234032609897041045680379348360105449292069273132391092894894161225287725417258807157698002902327692992653967222231259542378978187961729736923126986290413294069304779269034079608593696955308287063349885358980631703790655102345550359811047226307843243788750268086652866619701235843107548719344699613511024653823076326385989468574353065605827530017359129830695156395419433781212111804407015361531438457987316667203618404665922914000728615704709231838888371259011377511015467281568312617313584544495556934040160625159122144520263040073167862421234739841566360615700229575795125960678909491807148721992011513386033420124903343269019031524711111770537674903792507047710800078072437972199974867805127054386580977383660845571415922313112507699438505749572084470616176464289701673424853130726531131411329692244997325898693793362053823104304688116727029678179353151479252622771508731784134720117508291991814002438516518729332192236713933021839371801828431923462068612248771248161446437262384667227387169270434322667628213359572086575925299335704693016713770629372316184028128146654033939299764799450835563529313404481499746082157314367827706020903620002365614794817961669533898203303643151976058938824031310458646245390394575637688705927941914463513165656385303413805511607383011523496501602628983311752665408951427645487394364290003104649756341864670633839370264043271999344450176536211941839809140543543120466110710229491479572822300488815098928800520298222195603137155531918072367580873515739494158638634659242649298271246874287378871072117796093428528221850751761203163287865050956785978469694397066857436394417334190563835044072943862175261006067399446571445256508218511081123473497709235330607315603438336668128028972835529497834686120793065366622984886844589730236869505731807170927104880209369886005259423468558242146632371483603347088790508346751416318599787318213771136093379679226713048084006357127404476190169902128050362495514649375628572555347220155291627360048420717450788079507618459136069577882486187479496027948214683255363696480557947519580422659618175754553725757800638500788289428801540451472866450769363642926165614640923760991944230253071776066476460974890130071283206700958344414867959642884426565334806269850089001435859793432049547007397901976240218318645022518735576819538466957130700628882926375616032787642159655931252924924221613295745040653822016726239861866164858143429888315192031590579600733663059264478017682428057937751925499116138740816555196180080619144877294851166256997724515082137146328190365180877334737532213901795694554698558946099509944819766231605827389739243085310494440787084726990640317835935290461384822406081401306739211940359265892291196901683043436227971530484459807315903713539908523055541358503033059942630753008447497312132922813900414937292573158103903671573439298137236609677070372399756471131383650360610405488716098619039618499361053903230560359089527165216882441207600029377720542005493450599593284765791445138948041792035850852529938744500649077050320426246039291347918605296418151407354308345877036201626136356475367166760597478008590314293613337929331917500848550960438971811040988775200492122237069558581249625713314476066506933678827688873103244542439828907735107267733266784393233220192621936564466322054855219636285988698212459059484145389835524317193424912990061814639592356382859406169029756476311262291466746536626582357583297221661709968921215263224954097253009276090968909298153985477810475460397048056409701943861124378321613301721735201695386677893805184729999611330175309536392020079729438433442713241962980107195951189408020760785422475347076597267957086043738013371561484930232571019813287494389614948548783732970942781633625443633308269399055796881049489203758750785453764050536575757195557194024139210826876090887690522636865403018708227018835475847239992289403407907951367963796350726344224554191280957705903158772555892207789691111868653692807238302403892362710498072888312875535071751133424809692876972015866751891421714342557639048959469858075006092798100439092494524081766250952741727415601614543159451852217185574955268475277271673891390290147202350598954961574173169890428553994402830278383776236501085909369192015402769486814408826839215934253185968629688677073556817836034197051841911679193966183372970001938229801502724830835080109717730911105870894894672305428927151182464154409106645329532393545051930527899093172811499649272530603470215987196134565002063107133613651786165441649703573682097625837494386303922487734357175596671101166931279192046208898287538871071536313688155466795901553145462365337277109419292748404169131454197001775401916619419279523260188825373033775233601219617116125553889783561767083773878526075631342058656819701929804205050345095013583730270205832447069646396922369063859331108112201396771000674772455361451739824657873343641455185212468580407288018781059764871776307978933254645800932156135484194842177917559330935785967194699195056191293167993441194597294243460001028579758994049694365666190975793295668054246701383744999094886569721752978624999444038632564887331676004076776907176911021713324616671369335776775179668748237981197416413893296651098321913188912306128832130617534730645943263123690219424876504426568006403723735652001243194823731911164158611994016234561070555880366626031622166878471348964997725714436357031875007532986006333082899705127914581977792060780694205054949268204440463425629715753409492743557972516015720797972660701996918700986122241889692247833122306988351930268001333515823480974691137836974486763207815466488126392408284186516024914954979864427209866051820357176456894993560204307104892958158650639519173056385593822175143013143480759866933265048747990380564683509565616398416023155104796598859316847452297845327115630225679638245805708738335984861594269992353031747205620220372615270897606684602608874471195186752852500561782972888719675246604895413107910513002573103926269088847423715651830991635467374572399438350009251653919181018423706418278446319964905528885699393252826562628242869076046959122933888826367890525889629799260043658351292859166016816271158503859509920045023828805257871607999148577951174107145878927892859445542297574892663914906061225590184674242048983069603260992416053731980399309580318458741875611965516941030258842746132677152860416756259971668900919744620570788760619382471443068200786999515821869152348094620599473367284161874380183762446843114622719971835404199085721267006752205570817790802076422387700830231459632437697248430228137474801499459678297652451111647562844948823911265802232072339396724873534837968347090372172780718219930457961708748466832260754831194646363162955046142891818703440255160661099604396822797600851051090393629109199421193882665513643110459377398233754702234897098938238334960622241445881815717448698580076801768098313544889080730980104598298840671012861381855597791311265857946279763440209325404642565232144878549983704521267864862959677235993867028758906282699279492148880889025975297177478906720299367123678763451986595708011874771798648451089825195533914045264040275752862201560983909743678839234336869029379490238806297699255692023125042770510894350978320237026090787722102888386917306520297074268705923543037688984749133115084572724089272768529320256830382290269854983092664279816962154826437896461283683804207320924463481062482376286784819581085473378891721650337093171623008278354460953550001570873258537182960697550817043583499220434782397372708582326963623701760976748450030410906040116877481312364157224925413673506596999974351468311300047904376338946838115075044798362249775689187063312159825736569343060981010581075128320284644444466922583587764541076542454461602377782788423014324148376077527228666458631768687572843620346387264647033781045580384086990018470013294906720162910673208665601527200357037700877236393370846191528320488231140350582535412867184976918987401837011197112474081661540189701457760230237450381123110997102646614140418572610895636960583124466251033442176986955312306918353300561885184871146756537471284253783753602700254047815267696386800281490670826847143662704493834208868297956055915309143195923053793897090912350168317523156938922081723667794771797136271924145558888086019038040749460151095181573219926316308153672778639533982650376935093196217493071036054682746385192384010858938048215379605703755413634194531791021440277244002285950510525078853005636254879620396305141675053890281548398938260561846059692543092305011844820244405735333994864623246986164271525520414183945458833906450700211202816269037643723678632709238480835704928556654225657004171664346794270566931694659035590025009811020461599706922269604303931341501123852020843307834927685212802322911525197379137517432840567171957865482009683483949354987063341045109115580239978965553728671671998063562188229089859713594565995658390071990841135290070321279848681737876376919750159650347621049267928002979882816144262470454993187358737961144612207504177376803842330889951248927382171911705995177134534299457297252152140383430460734029321292971835990233671675519020483679889348578542813074091711212749135188966503880595036488660019305177479737720060385947944314665010410771923517224472581698761357315539473606361022608171954947748733465753076976238292997066593811303556669828383083276695476109668865318112204113255088889820627979806480301121722792334181960798412999720720088418393872211390347247310851532774836698378248679654485396054673324517828218373712906848843226097503190635530179412648238953511473878639950548602246000335769136031838256952239304394162767786502263671590542608217941626062786534137817872842038156593007446364067398966754926876493957184903132121136562023902615229840628730956481281693035018696850371310954723293767472224785729641708198589405216965981052533788923350319872584948893728640768329664533840034139733684656642998129620745325565166107548253738167396922771695636536682581378539295928048639346240680045612897367776564992644452755616222399431748911099786814130034087861609640689091934466010685781739964966919294071519797706196735563278083037486762428189532993799350174377033041267846394107423900040751986059181564659477586096999941255968962286988157890242657789777920452894572685978801512039187864497160499936222646124958687721434771817782721540331579087438333180945029353819157281454183268211248197232597214322349402628954695747621010807874258476571478016088334049625546506324147444237115967899237058982776656858977194579259926929040833893272332479302542032741208279443693635479139795797203963663957821049584163144039654240938604752833259243435007813065949179499077038816705671448564759014708193628846063438708308730139992537252983668910410331359439434771325452511125521110927987277859513827089163665909520741709275251299026204554103080348103227000462081993134977410339699357052008134906942080378722037904643828902499024012213804633979802421821068393468508849301679182896621304254933387996548743861093208514910533275877322690267241292966256736459068755914896312050174243945263893979024423237032649035968525782137809651504544989318660685590975663239442261822295196564215725418090320998044966138139531209853479671146993426949382451496674751598529004751805276612260071977572249670815150580391434618240125218092935634426976907759366545209082025060278046714933632677872058168159702504818400764542843654950033719423356553170611002844230300420530529529330867637602864565461103827537415474849100931287259564420569761099930208810403531866948926239609953565722335747574315878618459048319664295632227261052716481983985463379437083657296409394888203974869606943333151457916397207480723433442706976286568508894730949815971906831106120010286752309520111063997859704188194278438731917954837460367190355693038399401548373818626248926181581754672309466283620556512169174703278872845703153454448585223696069798688922493453282096934356761679260108472382625897599052637923259164150327636255946077462741704332544934574448894772168762718277270729479679929407037256821061295089993702462171998898944678766862734579413522640334981775308339939067029665213380346983727289053247600661939254582065928970141526129507274262922793246579170438371626932075365011196015575259469406191818184873777134268344442405293066005733445888690588803931774845117741023973587752822843859586720282398743743529592115562432243892896300272910568728872681616117730356952723169774369592914248446211898945750116903129574251482845174419871337174865767463539747457615954160878152194938038219063171978546364806877248861810391894489750730538558049092079632148308935231848037909066681345271782335322466125219499267652914275908909226211751081746705000595680931351952840080439007572617866577512574528843305355317484142917533742487750948993354373583595545788270603739739129226937030124396568971237739451673185967041931739307423102053944927937255669514349788055457033059083401130455242088377453018234714836854057038398030083490146661575627829724543844947365389473998534287543282274785381373116324699293836702958321529676293169015770163764597073115455682766349019482504203271623554376160628961010317789208130071331349683386548654072526999424381887465482728672722781054698999243638538389171009159271708230490667276596162378168640441085875745479366675438596986709554749996591202364718630251342342866031230832887254261484650491333914084557134897421213326279563751415885938343702328836763614272109109163264381199307118058137053205218187168903404084228331495613971410009101715099373550162504986980212807755241862004587089684443830634459894955514400987651922004434826887012701983039406922428539144344376925256906037856331636359169597563628551168556316245250277545376196294289043661945896802391851580679143860655457630666538550897916719672277397520763582919057664796718038856453881886603506454316833551245320523828327827721092596297947436508273341906948411747713586694162355151541897665027365243778292737501090510930825867898462418684947221879450928673056564729372657210556932497375301720300342984629399035760405532694801975212600306698038435039953622458649675717353644866229608676650221147619719066836700078786195257277249607749530158270401915630348962763155359129352170209298150999571189777124690854467614485083505413333978482613439531495371915024132149252570114576270103268359197885516410361473764759625097622302881118895404713480424617911538541632328400543710846426909503621868337287756445555844513212607093650888968996261040660972714901582592651684776350623657335276719538329789200090672985653235452227481654101948007407498391882302793263914494236957352889952770410995339475528270108194335733697184319508165751817731361789203722200462320225025710195997579524022444777321462083760083485538773062739020918868352510196397670784185032783930345616401418765456938000416667218785983018332497804306684137087899778060970875131224537331792104776532196322692920624441186024038239395826938487694386479921582750767801607506536356019247816328848950673931704750819664627195118968792595048559814225373534918820225223225452706403110045058649340196268324399675027094197725799996211263154981806629354071558361027497190651842740656593725451257474213565274061255142087368319535891534018300564376147556000590188755943248998734235441853629889772464142911298518495310609053070368529095174747046621759278212702844272027632422188650036282932734481277819082473719717873312282624529339033105661231369437672159701905627862510231496508385051784954746257928633548467647505619389560487127247631535427130602573246197073058891449957628661080519401608773839935947596879342063061649761016289384743787627083980936528689093624135397422309740440123377345283506225830076819495350573727124729146302429342011820559428587540967299824774332995253289388910288262385002918686066223060076954145344014154378027435465277981124805950108815688653909581055179251789261685947619890185128854853300197191365805093430865137339156714425310693345585359369068057311121352209014898432261639643263077611402495957275755180179589419401319774573422892233099739196245423781531637399205324766455348061014367306832579576051667436473662023462120548832579620677794658961534666628496225125599883736635615457380994239822341397785731811852669450921933340027839566052219043439079521876952862953625834511428833741880138976683348345199235437275950997248847549985348212875416021214200071674252732281865847130243740380124721275771551735438068693217817098469304772138693436239351851772094380919024767919123501634197498300194349251439227328399895275284543098006139755700791417081678257933982580345053035043559971630184552816829264227963795173998262569721393103488869523650338876723534591792138831157879766244044458568626611876186607785442345782556217513915151217506997028267121482353761675339029972479438694009843980337239260825759149712252496999091625168224188302770648315381122368712756122608584023252177282389919754616966871004680666839513940546830147066324372809717308526175004054058463579964387130602504665324509851371135047840666967408120622808495247082736778489675066868066569520461593590640327826022810236552083797774909998813393057249306686654387869383628943125351751613853047656960848342689216379531764454189162730517522167897208041102237228388620965663043269375053812605807435715564425203015360659827372446319420027263684000729039135232160978068208980025039711541356380741843338384377559456889934327573287635899539343330132152259001208386005125201093186688267356726049987995351226586460768784544884183383413662542219697146325189211728250097412198388943799647742461118287564927400801095806810716319090555440663768419924830303824453861204763918078777478409553293677312666506230463491542094550301318699283858704049776949876230868160119822506037840778293313714869319557690412480960028942859014715630035995211875113496092846464388277636681644429087235423656262418491311097071158811075995684882418627659429311553264355336578107862493660680973525672832824388047149533651630446322041993562377636592354694982486122240436933050644547086698381945613271731670628721129223308827822876856611293670404310973668158215665253095319273576065755366338130811412615041827425919791584686097566171115535926504724528901397973074836568456676376607503000803886827448092560195250182287786775116835185139009239907351059703270669619154073287289116846607505209092006071456463839356591565542668711062586079996634045775888276982303474499177127874165892377979611704433066549908819497037199281218530920424550101018728097074432904339482702886320072929682300716061300967267295626979183862541923927466039000712109973496105323355847256759415833536503896957888361222771610209908180784994235623092109652020074968190970233682046479621093852321055876215088656767684835432116346982157387655083783203733814319900742026349784281011684895754010218975450709832665427621469333908039904675311152024150248320056656158063597923618193230076288272946688783790788539740489695339314700311313244930932277053261300288505434290778900634031910022855993741995905453419829483886576419108382166429914611419105410407217183757715506151351539277140087755200122840978187258166270893127396454647725980889490463874441203383403984705474826484342166015060409787038719760453329681594560397417927703866116917540306056042759474927373175806087531129660798807172302188309181631035546996789996768141132238405848721504511097775413092733480856139943138919564591791374612961227432649028945058286960183976632667681848636729784429610824575327353237855810127991695760753661632844571547967757002225920394790124564718859527332353801320498670716155091587828895672746134396154959024810526757899163956156292280024734147290929456542414423842797513489457306058339555466206627021001410276707945843521164890881686243697965682341977082233313015802821876841167102851911373496255504415650032201321878072083632156727583289411942930094201762773431074932221630169690371102119681781459611298508035678247175572259523376464040239924499411713322706481409220890393406774165907933582247961761271957579062321607533348044259252472166376532812491737879135545453182838865387075647639734081624444987933614312318569653401386442209305743912872763381581387125506737122428830099858186321015635349402278310563117033107671249904005132001293489702721309952154923915078590421402689313004609865615236140525303927254313140978670372367159813508704144415568474093424285806826691887058701331464632050819150562484760044352070807540878211494946211509279233564167673683350164228427865293392832792845332151528920409430120008170861858410750441576216810260608335682836973843197136510829362124680025797679911553999076484038049928171803756534595183845950993400933926031105087975376413354905293957087659913428997297701816142947608013283728437159059062879686640047061491784659514338089797901747228882213053141514526750479695173436233472615330300093049742656539457947474078856366781947087581203460486212211973268398503198398806751235560721231422483976820693357970254541142678568828685762181461668246755029523775266140894926217941023421516354117757026907294430769570908960644149658816717421216683181149637091447791393408677917203636047183375907382009969094501230844029782431989830742991247475096595054024321134629833441563938684666384511304171688046800828350179909695445574285813277440301400336368378712361162753223918520093151086954785404060385142967533705144922858168231754675785993324897043319474811631365687622442092119616398478074939906325506586104726499462785709118482930764005230239571694045302297748433753449693479104278804649755091689284811027335593809440469348957848319661916191568767866474420917676961460159614300711876371159818435709487634197399138085628617818195168335660513197809453225854265525165340525641898360419180987756475470093335456463863745881837071930899277747477765194007121001602129242904288437751885569693798413746195948786640495288517970299440341709225712698364347792342000445089724019564277684357400046918068857882963825556857695524334810592353696323776654121361365941658964893601269083039121890796693463878269946256898943238426947900195449176490799259672833320150204055056395822883229865421520127390385712551158338946014788267961307059368446271407317663585074877351536087854710599450815737503768721757586689747637142045085859347552037159289414490384555188824778224888605676817948448850542482711765602041275625108169873029478991692904177807320820294539123872885057804711502794340678197206798706677346899175968570170964221498843862131723330140364840906229633661397312051267854801975140106876149786782238295155301447754388009420919581119084559317284191284475424593024043441560468496036522322070391819795473902374792889430628755879895504346332729229426581981899384964339039017485919007454985194324377468897151635061784044765817263836980897975093316068670902736290679673652827703154632011642375553779929847464033232739853551610977778107521262296894986051351716560241028710377241294082780755589199253507584971547702149091468336554322310865474877713862288757608100792717858979025987591886351963060456666333631921740794453033459277301240490432328916988631072549085903950130666659273011702603766298106832918880154007740068222930213859576454235684172436497530339103424759546679776970800273759435800647152486835066819946207850017810354281282583528653403952123279660353632408223180898254477105204750370425226479722869915914522430007083320007429597732272579503765299376768720265918931466788798396187665084089721207162147080505329655306838233758647809970173621775251826622594488975554791079002943280737776954120378881938575336245355575553862151372157904856451955247827238390439225555860854598378324204224899605866221584236888878281887503287720578409778708991012397962235928130415428146206709469072943044276373570795194638240638535397538932514553204039865813187666506718012855292092902813884649449913148962151109657353827367110519461256070483211206288125968749690533254651660985515328470502072184489791513038599618270755253508309417881533073713333483247287774790518106099400650621846957914160902586333765370269503363251590124006107726551850408574372050402869641903450601543414825874821359489668051697162204129218909013651942661633491015177709354187823411594434257301845846047967497734112396736746076937584906354299939745453007174309149674014521858837580790841009395282512399394188780009800085298325011797155246966298052393594260533425668348417106596468996024067593181873007607716569646002749184784539283759773956101054362297228330796712427595819133817907834096214082773026094598302411681339242540210247908295842719227209123104987777436008228204047939823835763173244317194831569713300108285253401780917584652294174735919734937221873348650377566376945451734805841274192964806237884746960032363296456071875008561994006290196361814327696107910102484774499481774730369751899228135576935750144684547038179643560419274820296641148426475538846160928431736673260951171414551466420877593721160664005713187183194037824930356602642114555465509638156171759883263066063541502910121381757407054603475894377765734334744331361457069549958552068159687192079552646702350322893258869265521158374045717679269786983093658441605217539839796914164692130528871247348215268404863354416036667164545205728789206539039689657009883303927822831246398832259368184889730076202950191392217469639190081298224475781030178407124137118133347420691538063731963420372270013531282315612820927307873336065731882243303526775361685144012848142160469279280062614904237264752955289806723868980112463526170892236094195142983185054938776422055983978423549606838430804446309187389828110323261749424902459296870542909598932771886727881814902205185942496497864372201915084587252415137733086590163437389903690961839418466048047641285774857339602432888485615948165391309950784326152761242743730419813219131097138233235365219625656568413210099779346586712530980916312369454565524086709902579573737869073570795762333041520457760151388345584741962374792667316394317081104616149280635883891893012927765043664289222295248659619647425015639365130455542218413698115505602264569224268844270921908249138797460468842621535222232159695297204600356284480180514309235146490648315581470733739099094033063516284763645243070399022890691032269063357760364860551940902782680315937808826592838678858928333981443121074324210574440779725530487580754382718089738160582946051048302938386321120440632379853101812009680047840131210419317231158801989412899950944905182352028550174784547276205986369707009621505367367800710401866180814138596278076915303308597359792227429779680644323689308438222161613445029092444424134286820459892391441005864948555982060284922716247787026995589742281427014367258362020191046924111432481136567823885316616782305910130295772373949421822062853229253296628105627894293746615051753207102325403956069542024998214315397713255432975868552527248013252592049623639186428240229505652917173498207387727486453474499266638334680804728431021137809271950366939837088898079287353281533984742606450074080844329450210486602352792585313312965313224536877330895416706614836311068277941901052865443855254758821389430878387554697438926764549662138072288425723934505208345421566445773935903272319758171765916091499223005364777283812733416662253384147224262994241192462240097854472979829127844039263998169698249831998810282024020189496060671263656610074693970892064689403357049238092701070510535093856117942730216979882535416280152727203897968351604236902381883598872104029201907105608751001679037111105179391713754662368383254144717859386530297056462626094815960597311128207255718281113324607610421774775964548391117971361887347487868253984586689749210617703503217366706570821698555986605315272702364292962106033276295129349217521429748836174989730538729795231771376516956560760094102572096526413672280471890194845365773052324718457685643453133418091260257540139039411638861092776307356147710429820371485588099882807701182076886043581805556974289513493920850270360998529136566724200040934068156266480004775036926701006718756549830267840394977902849840804112864904273731878732357492335157779266546405875527019733174152553436934333587817743947667698653410903424182885600468244271735589195629962507979082737456067765384902422624243413944410514766832862609811698696299573291894803130938365787720305440635688808739217336431685630197495882407785656469110058448506322174856027869870825449234350094624287811424792557092875881603713337049894447935541357861767774259300350199487881893546457069989802388428594340235293957359036387799554858018444355982316908424883535500656784002486228853977905919021010083266439140423785834714153921125211966441271967985001403777378161139546945562639343963722916983970344316180226380185350772747903835838776038137578386470121363152065502850438209268547160480494467248770511152956399198461966070480199092254387591936048994177642432378782451275097624575285549009194966343005632504215824785039438656573470302650698002722496538162275541258123830022466850559270192809527663208055323913607488598549525769899507927614076643457646429097181815270408434116864875195291524250698686972091219727276416639989480352938155720610365285429980422793399098463092628786791888447458228183849154137902575761730557372190989173358087060952118139139228370173304768818085099171090504440130249073627223745299812479422165881185896380881296789286027173502479061364226666970965563306010179050522655425750442591979884309629281030657817347163705682133316954675385257041275570407558625868324966666399960771750714245424347638073499350925572652501928764086492761849717304589762514871648859159895125537522822295535780927551577177349425449406463653286438873433421753070279721078884393578408051947775698254173932129280352819043283042266081152776150337280932222161462728022551727594025891404956780402766853683560064837512119565560379290890174970568828924953768000551170445147090402764770952661261789116435270849476633363303750476266818134938316846983860367178618075709038409994416681888508857156733750859452381605828850594971914115773519469163826632910009363196937626265633997143885908306240500221068562483937545166453897795264550145438489917421968312193140137299511841009750979419923746884095425013212364767075328956871649059351028968444317033151388148484475429115655149549323986047347014309945309592965732996406961790565718915571395922522237799661633492924092690021217235135430809375801321612313775451234872903356146091481642758104995200236087135985496480127596933372611487822048271416542861097287385314981069732753696855913268893124658863973778605279647314577443870375512914383631014808801025549750185056343837423264942884038079814325557800163924992969085284589836391329251793706254015022668173596465759859416332244151575736726621923042569556660186221382619088019258120372388154600776003859044903886176642120015712766244087630529283978600293770835310900439186588120008743195074102899806565937988870123097310069701795579926044738696361160786515983764865016794328593343196281286555160845291905914267792049399041189678877878667430392997576167646554681342473563258183134122662690037483369850318720011746032135725115548751022769220143344417041475936503892095454997699002142804930356954589200600890881228980848054976146423981241706535745430437630406316824995543589767797872906794047694811267909513557437820175241646753461329758000981295779099727071190393638094497139562962587268238358947185416563847329242758695098427673777219233217527653968660617728237159657082113035581036381518279132569446119309158813353194273406654288407415997081949240291838849762574831533937525466736508284396554011389663016763904630178354753694786523936554798320943468147633789840657847245614207599449897741287517449458145346573837899796025595862692807395026992775699077608492022155897434673926377917530366643870530714852519470220957089282863695049358558489320909558686670233457554319254514425181288007849915141850033013801828358291916795101513506325891573568794876741918382330615913768592234983322508319995527848625505908486745504695160242052152523566763826664320624401134624618483553823191903078979048915649288167569495129760602261851595750909144277224633135683572235099411255280916228242406941132232568995320003903020219696821738613098796980072131163862039032729719199555770591894651777093108673343597019086754637507774941816421366245871228362571309690425221424092741444428629467641111573339026068992839959142073445918210129878938271304750373833166795787273900628348817212343279316790078017927782057627942474196395117775094573952744389586335334736796607055052701214254429947908049134644735738109236893078603566236646115074415941923079912263580537526359624935883885499453578608882349064790166624557209478823103870099917210865162700174127764789314306360703172683961166817967359974052437218012062348194046773515110115013575303935536135039838765404636303172924040044393454222886650437559521679638559904741481073663576222693266433064224662251361964755994793944751674283039388495387860866631365660876086740168682542438595093098390095082474146115182797151479253878236323116039101597908370532676133565305010892559736947825669352228981542080144662048550197653232102181616621953034657184128801650264483177753037857572107572167270373519222403141487053328125560252379096528551710604474479118067319707100206860334909523369289943517346016999107184507049095286957774131794120530566393158259808009454159456847401673376199344464418595248458578067918467182672145793302716286484233254970208681474069158570524830142625134913013179318973838245254931717540343510630594415185851799332289184639856876612867808298214112906685003925620774769600566532434851625148542827048561423339710633961326931405248211840228020876493282460070792951867118770746416457364563422226184718124284383548826605654175590498795369362959566497254118371933569798469939982669708232831209910934125599480819873220386864574976150073150130803594050406734056012325709787469629188299464967009553229932888316237622770234460841617862958418100330595177229060066089581303058313139558858804827622596251755183942649806312004512718100192221949705766974884459659269299769162079726642341433969809608501454529911686784527877225801508574285976431805040716225494651215268950797614098356924309417467654518171956674720444984286032696803718410825938273355849743868558051359522845528759636138602758981945310017076089442733247468724295891164782188536209845829468303040751100830546676612131694944656386623369731490536304878907883287404207267338339692583482813533324626119663972767295769874440365471360016591674771423861819916453062722898155773566229226610897177977150083462794644093605843157320637834761951700001658106021009287840443568206520194527028568264322176071358160175222197346722332778027439894359711559780381276278065260467038575085560255608105166677818382636916211202759547635750927356103375651797699465779495961144911621311679160046072342568134822109174704161025408424839924042350962196912636812091643490379266934922254635101740341015465437528316207061053908212266935397141446701638713391957245620135139204050918614732321829361951891236454920882390497224882879142572991339778222478186521013391414371601077808100071612966209368046726337703019405918478585965573088936450785793600087862868663380797636890280780619857010023224477251403933032211957205696718642388023218633477611259943548649924474751661178360316695263754160436006356632387105927935792175687119998228111108914246461015465535659621270420999440319758735153439833319560989417309386547454651409993893976935539224586430358876231576156258615874628728187813371123513458788378558042169776439852599278904996242906538896215821222189788781162583829659073632484969779876120071306818833725190037037740348722504297349609934766072848640001631992960669543707142711831921409924423946958256654205419145120455361423648841481602605377486614986411028375951629099962209123298192167833923964256139072775365707736393725119822973696786924689151371652648697596513443576712282685837531440126280418404622869358897358246373787848447481641210733816758775922822307915498221080479590434831933876343307339949925194243372136321191536581087255275493903497011795310565274368888944085474666472727078090980804699730940520281612958244606562916550769680235614513978599953561449185685794960899022815409931896227352107475824485672452619510048267256152701723009343943029068805301926455353042977099978289188712729775673122508012156908989210462061030326541953558830843463311842324326679350246989405747391049323557387286249786807514404987381434351183852558258596508486197653483051655774653548492518470623584636112896123106347561348782919620808029021541889567169547057841263606512805097004486533945692126761074648902182601513600217640420759343042515496047121656063826907266881060328142047412200888667349415179972464443148785230281956677300924345252780354723713324981121114475271960517285263909324000741008504101353495340437750708682692909589645056777697550518169976547742490749871376897080542223103073699862144213444970480833388629036192462099417006595275523499456084088835277119951256411788748775542690695378901665837170505976068817790849116185702187460703920041121012738663425845845123645938488104904988917124685739269622180648113410347799910285334504336352935599469991079748386073093832224185655436504976494583857095754758924181079549377643168962607343645891301527446565211457861415577099210493343713276548550207819757756130190263162731243972242674146601694043536211266476206689557181471499791222039059360453171295309555401228551081121210265729697565469723178282753589325263383311106965765815561173594867954759424190295582012445750907537337046035362261549710395443112933407783239085701809046135796288485527163402699650631291909942696959662255894979756287212877571985424196734753015874634707330507378457961453545425206442308782408414080784627967368738878895852044709279081010712119877987278359242339335575561937132499795938760984147798982138182650343224013063857454488549358970704862514278724296521006566497870701568388386453995903650801711143641042662786967241419983265473341112848793309343958086678907543407020267937847743455352656651292901343372346289780107820115522188723937312016093709704068632553677092619190039894188411459261537011666865895636731505221633041077984886772114941600466211065860524850410795479483814251404996368249707396894144246667174873674631685170456357754242310515058098647646417391062874599047379248881072743081426295248909319854957628983241719089619983841001815466443780823753328402254416041489599319087300847247285574881837697581895347939088019845806289421123611333546325400404665357173166732386520784503080166195770809027132411891654620198070895546091872385437261138749662997666582523147148188003237950038066701185989421959948218404892260458854876888023375940142157915429528712356822719394165950006243911835934267816404835416238496792420808770996375733873397271385700510172163901028140061996402955555109205148237278889395862250635820057623558604606700333545148883088032069907961231844923797333900331150588294838020687671024091648595888839443246563446675746335849532241416518803282548820899182410294068318220651171221056358109508052676082430037550648338281503658350774394016308024374809798482956648727702134170055891139662180093523043539548882559026670900065711885335952330130700876190428286557679076216907339408560706158893619301348780259524996703159143624421997785198300437984441454865516590828204141139376731810408771959657893608900600929857187848245431621802453861168378585862345107828491821691458643309724767711314959030827346185247892215957636176194158034130313191841607759441012157439417745313000107950564422525109306737523223688543242791213530557592621003112211862038297502753817842541731173375517119681652409284367663014028433123610329234523189183702230344454974141886397398650837286068616943625131655980642940415960955828152794744894079600670401560663542330566088822410924622558187358804282793469664206274112459752152202761318262096736092737034186306804296209480151901121564632335461994960497408344435453142115006726825166877950667254182169648683330823372445854924129216731909818022915171702763953907659608450159458745976073782236371820491172490303721728475214768189382828585241866401407091409917788371395692161707697901006019230526629784219510099218401232206291400604821781949015619479026466313128750290832444837155466248494038615248535327366354838102400072695037536724813331564958131952983295824894569947015409838635883751052744503875423741635053454843905912980101603370240650914196544064089309928745635036122491584860237513287337313061777643833491141679742795635358264326565093438974387697125404890995439761030944701223017049596779161345460240920721494649710448748038255096475579233784085015704696540926099375292975065756324454786401781820868997603550120460528987523722840965641540104304874662760719959290035181390822646562780069174993818897575504124552628118769537357505250127280159222927782677371946137192165164001807111032606654657645725683990411126551032698984776200494525732076336611879466854680756555778816168336505980479975289388593446218272748276975735348116703851100088120600268451219316134987292279735435145251620662644675504351300995887599865911443487330276057832738606108196032567833536252139853721463271371437336685259428978409279847787866474664495788358966808204514776727190703126288077107717808759446592879491058281275131784511939021920436217399927104174817473553005514968071374613766826102458229788902686407062087169184080590668402107117975507316360971232104299798331921659946411876739047383582397271020669138686758222340768371402512878602433601375456956121012111866856952757609838762420131806009730015109487704186475014603471909560016445913258160110887003424095108600659668246618613700340454030565015603210896111956432794011332320624412968527189733900293043875268264132523728118187341837726683170798223668198492551731114048429226360049729836646471747032035892511190314552637820369748273764447465796347034362774521095560749209997068596631083188119705267540760841852099074526412683090143476734298550655555049583671068719038492443885017162418959241597064389551791976124801051183266210839518091919316864715007622854915463321002949231384348040570977701398274451934839221971306082370165463372568013935034810121226605114976878294628586232064347412112626633527821577473245248312413542866044140191905637144561933616734099663782714960097805768754169534454405994793961814891494772883934449386237854457107150266682904961403798499699799041773145349852052515468029679746264819668702286164231214776292412429658312763661501321599568755630321383495785041950236693928204408381491115068656842809603044852969738253800241726769870945805588238766750880469991238113646498178032327138862753999814306474612404775417177869633386139656178859648317563519023653894286098798132431059641075020220490603935987091595477942138098641791325093915143022918235919452911502943449313412362151981821583120320294860039402766901266322070662570651654600527475224010199238734690299750611631661928185097677922609310051354456493611645965660284911284552622478572687470611594626032730492603873190984272702230227936371756711926858364718578151551335203402009425573257024135674979298326066168923747723790923156448369939822190622395983512927748740492188486514861800676468364747663490435468522704418150329473466880598025997045147190867269754209092714637247939872429080014659603061266441660222860405072133181508294609888507098056622798154998927924314053239903486173808021493341026331550511037223388751481620439881629614499371184147306543972563580373206053741937671572155162520262879124347517695662745040518338716088598437046467204976925718626306817461111789650712733894134312640042190022842688463221924960269928537680961589319489023042583390128608529021358552535228729369277257311248398058709622089306846646263634164743178986700047406156685763785710758427494742964857966762548769795941069449268116576569257910637391280917433293427660082347445122646817244791345411283289744575514650786956589905282466534990938715111169679515364328261511982789866889710931016959104178450248828735231923844862422636297349757684392822631120200047132187201701783710975756685537139382475853381189805680552456175892532901241044606138626252972014495518845924861076157532019523792106931822465517728586422660477869383984421519139188494771204012480322261461711385947975656859117457472444182755643667550318617371053128406159154882124971937173021267439200820411175498546836398413567746088381673386741710047033045122372699632967533503556837425593278850528484397099534151765903293840285069219964260910899068429037128452934549490793498403703950159436563446313995129824581333531389648303954685377742386758238799595073127916663391213576229300823813749950880424143677063411867945790202225251977023599544884292304632875492349672208730074226185326239441584686508261531865605778576997292533518074404638289730436121312487416649557732058303198526492284003382122961982940003572188960922276076892173732137561281714012789476808601846173476133583047799555570110846589918465264716029062432682309721379199995026002007677928428128010218904655036864494068516374694740097967052287174665334653476683285299305839175291925684229461333033502992661474903553099705929443017566334383432230441543437034764664049273950265810912648824151780638495584732129259848639143378040535637602806068612781688892152483564543619165845905112065370194484792425462055879015583333543255865910183915327556343253047913740702466588858551732641557851082711621409191150201876161758170251311700794414086348631483190552961554113186777476030955399998608079384374976227303703716974916229200218300013533918129991829604023592948162240375734996478981565262268246922466182266003346563155444069190919446133592294764761753098401445696494985417874172123136077955700462315757407016476128273409638979769774019876160194157601529109109253122761838347867951852419370607979165590705751518051295428310185359173186365292029130842057807392675741156313456410600481485906597772775589233973047601761186109466683938317051367676598060864546532753844171933248210350034614387006425749998217425218212189204246983459694601714541080967173547847902896490057093695658507360279962669616846431118237198194995401755550793724878019693376504513474123702327858171705272875406768086778657331919180654146507023469304107602604380764983984187762433538838135818313963322978304519273542000124434770143914102028058351376152486834654009224148555589073720292194609496783093804725225427153971564461393207175620510574794738255630340449984090551893122525815170644691359945494107897660528393799502191260261204772051458836877277420393934927466174231696612724488814202863914202278124193533297421694509467954520673956977382806280091534195572092962087021781623595731539858049405991309645978436746168803327624713133218716363946718093667473440335755526219772548442024999633931748616681168580024161019357181587639139371591531076342504338406774911006239888597954611355539755839653053924251133851519729571507256719493159144543886748094127009297425772211701976780777554115314644415888813546404610034367546339543813657379417552022983704633781240452763115958787429154142041620662489126162385007770392863484726233343506441746226554888964328960847169212331084463333505337147173330331901721153077481815975318740320652065466630383402472404436419295851566207720195731935194885916298153300551052799525400109233465679859706454051429106571050430262847937593593880541200846812071657259589682779436299311192290462874989338151616124180754183887659727170003193889665336565273596570472983705556510026802792385167950336520665309178435468005322211811784568324368004432665902546285945991038547579652091234389503251059583028451450194530989232771984892807878455467496436275646169662618364866620367155784981383986825287619563857360852041933202576410865853082078346093735426744174587917981650977606748034235879437881661119989595666794464838215477158445223575130963086132598323044566468192097250293449035786589888840520552887864065938982709410986621527371617524492691264722285626744317906706605132503314572067834404637951426017333495920626461812732873779400130153571573662376126852832110391120166194811558779550403940865122360419497579357189797408115563734672074274241577377404441091238485558451967364835048886830993138982344212485495620233919819006035489851804406713580331408724132658155808563355292356505562434062217386358710059109166690201106008519210620615217298898708361337945882584198929728135937846386408146209732157488764585454529056485693476254092899106691922560246425452910014982009451475388690585078215749901642383258266123330308423601713313301974026436592810516974600611297413499543611415077890155231616362758211607345219385511127230089600339937108736340084744585828116929172840147159292712719738225355396398764592473836932611280374299401387580817617506936047380882591607654996602854941583979429130441789374134981285129943317567582440767341769510242443311732080541981225031554764825787016508657667023097852712134326096082828084722273551612798021794324863898906029251915448088529449249132385753214896412844565058336515343983943537063223690868184748916340829302685671978579660416012152288340986449503006136379847527887901953417743484446727480043634827618082339916100874051122351659677445178308192167027512514354946996687266873708278491919916820259037114776598260684642971682887151964827056579379456630484995342582827100202874575142531348788698880801239182527547486293592025797500281821975100994629178378511034667160915765076894240576434882324541062551714557685235574081545523266017767432094790156452054668753256510525147976320111226602675248332139550899312683263493013685192428403094260238790532320478767938488157817991207588399895118242016254924399375292502926833808912965124723281499026982302378886144353189879921507200178726947659321610518524050768636489123517516719370737742162435885629406235947704312005266062569762509684217812114888298800266160440592223293316241761229087433790222878045617013577237506195216034268628062905378649688713933857125624169640793244758313698859182729992757829492957513048250436660285323714020549644733807382457755582570927007591535821362248787395198064475365092283387321973789450989488122243166650106987396166729899209644205968175696192318398661917934084742578681546159414589386406022961329500381200383897674502086338557826679881065690369990815678277851637829345993619433669806529792215221536662888399402680386218387841389549979200722893711695077570617240023448728986838088894693258218633782343569120740289568718856687096061273862193498732632240960659606991760200545360381658966021438717712875530983709902071330847123039179755744838100506832809511893292721912316549409066402145683598744632162655757397928373087028606129397723683858149199392584157425491463351548204141285052561164143847386215794850259095916940167019222271520515924463847867368440341019760225485058596203745202103401958672160817127019264607046079599287131210748035118825068233530449698126552095670808845419410225351991313683529115972228197796519175109141257490667527198799284399037274106458867169811835091012056834981767731009548469910066421703751012964027952668079262013464908265708373127308877034985381688301804159107350878027897814445251654077081274884737965503318298936026105151709009201102220710016694799486064988416099255778210332925422202382431616937945524450771166127819572028994905923717876307137916207732805190043595063027837205242860716863197568319944953596546175823793319549221835571406382172621701189906243630164683498799430673248974840299006267563686639344986687029574632955927635822741739047673664683270987254008256582740793730134212501578722469359336023202788021334475471169254724427882347885720204784810966824957325946506938183932899440856293295484523469547324707209576815500031362868183058735976655244562923337098003920244653970819808809751677590008294523393382538737975166366848481990619171892305302932752820522887389977798577574644330667384284668342381977782239415152243638987424951701065667853026766643708546240614507510982382650823292192311694659360552162437012743002394924600084644191371345373908817105432971996259217859583689002275354693441992705635449944646484635692114739545423420930350956191259629427603323140283815641958123992168435705926115521864367293908114049884299540135030458261668561511919247042480677787488387131898718967382619247397490892216965648998157671704289017449666205968008681990919566483987127996000606600983366508501317267050667807381053625332404361561098011084767554948774942365851637194652793284979905770184510490917015335686136324438948796590343675903495600216642655815244439282787227173594594830789387202484734203222900521336068460531292940974975988932013490501554663997880699917008737158891759567768947270618115030196472891325767848161909193884597730528881739137963419101391228288186895766691581750664019066425759118576388754829343629921171912710549773853730155778381018844418606578305924104527243196692276439468819023029366036893929143527900678345492052288961178860518754083104918089177592609625711828832708643634672781816274725571485025357509356019445337057042972793165183243697073638748560927282169570755935217982829317630403988543895057250179465534119664384061183281712258058093138653669016323415504235539488039771007125070410567877416202585990840071768209894144867462299227628920255085808162173150838975538840534942791905673448766048309707910866592252931017597478538255714719464529629087845195651740959478943963376856887841336334073539072743766372205280224459160534573754066183716958052421718003218602285837532259788835018804231788756894023197519743744461335259745789740055466244243249759344049537626823640150573472695398011010025658251311957538915849382125129679967725362127646076391067226918441110591666718231748120661947722805350257938618987107329311431962195583590075732545492654405344858762379970486963982129062304652602371545697463982185040240616064721224738628536914542275828158930325786719200381523130703012314500162038355855970846362887285686618295880381514125979242712228006580721753759956097530281681324319088267581121397864589779915670771233413006140507207378747754227133477723187913877806041160283389280732294629861094389948042687763090413828200824932764378445694666855969135097280929656029683784248319063766489758940229747652337370707590295732296764107444779028542205710833186416062834832840393767133814809415308100383634620986740923141625772592601642413107683838536096774393896453881219871847087835760284657585006626430131835637759834394232563195673889217864742511539146483061056176185226614849862117352993003941962679783511543247197921009990235995010185045226336213662954175879041155291163005950929887093720511199532095191976119111178565685631458237425273363487442621789437342555944388272109955258344048078153363012318172504761120985862139119503812768576842227060228808579228022789927013545026898289812867084694808586907736873104882413520925337799281517828072247304329560570662234561899656929407990430103180055883851549560037101536288339329630838861183757251344292962374362569028623990818089667478407215416482153646698525111835609376953883824779268205403556229310339823461721774992876114310711261869817671651010213281748432268604928999621374426489178747080052177899145979368325769082544704995573654607383329544550376054556169384629935269555982548143695227451351596350128443816576238782190283447784194348491675433220898865725107216380125745592050062613832353331001746356326967882997952231221335922955987771478425621528196600958248039796074188068648146222184673502384649962094829002372167471513017616183486648569009580445271292413610774485501645401658821009469531851670949653202836855634394275525867623093990262646880252100234839881081031395915672216752103640311682769802044708468275102160076529128596181232892391998983761546540152884764023895640080091117077716866325847151888652134181009630978924681427776744424909848194620720991186061783788272560602774892025077565496092241537218489819139994930435616869362159642917710952569509706990063231006108564855544823176816949189203353825938397977955201780600261504538466022348058428066808005409727242488709889918140301721083740851971684465550686866825957621317618534741443776409811689746202037121131861503180534816370992805100579393958183960538157279905317356462047256467564657337523249604428666275422833411947710115861482251329057472336964545935077863028139703502693355867202542065320191136456842785222711304993084740155083205534502207111518292503782458415159542385729092055909315552709371573043650713919706627072083660506535925780753879966242782962602719086367858420342617942729278387207422703925864789969888520172854373296389141798564954987123131742107811174584783471481011302200669188117139063322377463914427871350133910136146547582354731321638779785942292590928732660398061705145105189352613846356490075823486329152025865510311034138140491015735161788607576439646188341017565444148747743969587125931820683929218116808835597127226537119526746391354728890901025277774299066816800531987062324755696316479419943187728998958907371744791382210691683031443021088327187369372236371598248511277737658543952206649876302769812346134536976210473975484439806649685515001824287241396293002078423904077017175308740062110388698127516133110767104226560953420656279648030919591712222568605086606974919587195285117201863014572231112559580580300595904517801620915600339271581356193961524505829409423830675223104876027568331931395370615940569008254671634076885187380620283937649414169522478976448274159243938907385870336831106474829591656363194075978797738936856825365656798119405558294689075620974863970515862806160495538019929879010726988526406869489610033232728420340618845421289794321886897072738273627785013727011496387088466407860794265555255548566482536726238855301957008990944181411968192782252147436730237577264790630213627009294351935375202448246504450281774735303130558784042890529565361669557574603044684002013025834728578786034796429662285633839093850405959963382052013134597759495495915282491367582655773708630985343103165699186477493523558769856167640256943679496508265951649361856390677613408634494961092308528159575947324469299784378750695779652340662703489343992200393314202215964047530798772485471928990319033113606753874099262658761458295245462962744782530607137086100932565610910629015937032345784651094254156584863367597171410368246906821364595022593823586898034205214584241562109771259419886051741846098105218023309134915930553236402118013539938273907609601881270857002216149942023522853011978515148254092669518565676534104044454854881776606291533342393558830409770803826294318944385077023904084750171040932368683097904497849323892155985002143587007713428715847006930247167663122853028391120296158483322876218731270254402750988697775241867197258039845678345286723372626819425913768922373279869636995719475082805749299080160929638564887577436681305993300301065165671686433116003817843318094769824924266082639256472210856302821228584359129114203603272060182523237946293109254102512454170051664917496978501765868001286325445737872529326712774516243343601273403978593022215996177517361486667939676563322195149342983767903749308251701618528493383442425041832303026410055781883185442893640874032039660088923438710023409268523884967322844566873657042343156698938113117085498055633424110903902940206987883668650096416369170528156585835647747550488319116484306459899663270339800109706271431548717437048112170062091860841624596321962758189168759471508236368927617174851631458451807054356379707232789574505387584471007564558747372456716260758755826316241638301758948123727346583284264334984211990679033276995061878866730634490328278376485909168680653984403931713825696659592365734822356876095046002069573673695394353734489287894541429944924229654199206870717179908202751123228830206374093324308284076802365996223074507239548291325100146231522838566996364648161993061080350119340985512877308159545015497909832610070008435163220914097131668390509307770678257938489159213209928659807516647762740421022870695803169101976906658492941163014490417552415284079855841920459422247224085795452489966149963129567459931787449783413501974760024855830935569788153697313632144525114082928418128045024919929598456172978864983652967173740653502757578465341870784213098057357585098708923218338602766809687867445876739370425061052945593448000033794844118691034384898199272178004569840882561800277402469715569634535370581771324966543170795487952577664211206856943407407369416521104530170777514495029664201508567341856133087936907990859888819541774261880314414174869352930128628687697963497164412421773800196909748627996089460936425306791041745935712831904029831131550593038611206192754003474299601297698456728568007574786825685265588805504465028247234062122672309876509524679555116757607551897367108186648733913555473038717714825992498209065563624636888744281635475973802009270337279723575620585201948873117573641520856887998396255395067204576563708667868496167399289905166395473480646884163216126962321404300430349787937658955255912612733494431374931875585152203504887715420612832321554250103695842011777060581131085740672176884473924121518906742976799528434604620851042298929559015388617177785962596590245374799644805737542590339557173690179397516001998758369909403534602006006114570812972728649244155588597502427490101997527856958345334494325002578020434444086828907507743961736705538376157878638538700095357333590259466811975123738983872665368795543001841504480720527649445702579946868034994929416867471047452363136504711526982781055205996265002245440734287139919498025383338505885393649941733636964318998036953211463174617170203880708663490647863404224584691355904242451402814259720943368039404264695762203519760525374669196864684057485227322214112634682007326809912835968043371248986512484713338659995815570362412843119237138052069855463052239628600169326092476187523212570099594164545017597913048315852269009244055311865815319784593140513549679750197159130563640796787427438869743181215963320242453695090810854010748674532233669488741744758456018977639584490217493459710477031541979472175590310489551507130337509226428947436615011461711285404898362878232177554033558151308900860023111908928317197946152733963981475579561048165472182282092824126224408661731611829531462701196213661995941087935835643209329641893562895075218341609495628660547608202339439036938294410706907378421593711008435508099349512584805561426027948881173577823141092156309775563343568928090624014704304068096745414285001053129110144071931810600556195293759944098161264543744367739789284558236168065730568681889329055524837773886978833848212690033855255772963294850362572416179456068806250567439834358406885865279847132056820332680158401186122537107299459297219831403982495464301364141209379446478463296730804124031579167146810717215465797595084379065463926894416436702026717333321428687279300067525680895947246054007739214366237747036693706479892806834363066623573549188363067408969053454196254921859594829635299144250681242195784939762493626997668432011717830947897645342821592110544192539567389068025874295234702462536272058624452991614257874992015478349251604342385349243843410303807273770776570147437343580798451121498902138772611307493125184849712899174590950039321906256807723932545455469176735002114278251591537139224752151026195751812555899192237756055625186257778715204024235643008015440647378686471774548533756851330395773050554298410274520848824563801811743244115088666941720292251387140525933292189039302348495217837323533446532626937774732504109205508276270136010762688057349283410615014321179125841093281226749115294969194414057983354038200794920527262073123858332785887564779056721104165441661470761288361000624384130531050140081010798755577315225042463587242081346517078196813266473052652668700975390102354840054319103030585050732848566621892307361016097987301096045787862725969718214977745931912172420855203832230977437336272600910791708541590654006954047576946452693527389589089465660935532169427129426114018933681755821233660928809368683610841295931368976682546341618079733799311434919945061976741403836739591043325083789609765463216344296844750471808775387966011594691058469856934631546715196731054018943472532735101233055566492446253089798552598896344445382941448838257096712360533891982931364903499133212284219660873657571369432863633838749656941544771070613803436739395432994554889460443286211704228102975764901084613036258098852044456528892538656183554374669050757948211069811160943622727817194688442239013643555822522433014093711548401136621388410824798090054297249286908770786394338356975808913448554837537677719658959365875154327502949340116362862841933060481710939239987919008842034872943437214946123970170343033707916983162457660506136245905491835880524520307312984242588018709607849181635833763214177655264846608626744947775131163374609853261567716821601314781904456057708920308018521540881268882246108542068433312797584809219544443889667113144461789314741293665128198790259329194565273687344836398893389984361211680689865797567488516548886337690035375291987757693081057355173951443795272703800447049007285730925262631673099074000684904599758787132093533481479980729780306859252749215403250806206296793680290963657119655454749832657557609467247229240892061371056217009793399279320665670945892120839049846047586480114455232781360281453445795438733659918540295506010018789625823206446714509639808919967566146598237014128736646880385940326652224087508860528841067197999140854487007293022017220260304786380710886172631415313923748994778191781040775452555369360545903637816192863942002266964803975868226345375812853550796206064636202276341001562539119946325786788360870252437252628303301021044894326226275322073667652910916281998887191616786697698617210689500902364059291757218594584763068921247043650275363283506500433461831897030508283915358506052517223442293318962943725776163152226873950058135915637995009070457200726096898837387536982426218631495121398835716735638806300562903254751451996618172677820789627279916563774802991022509472440941980146869018862528510042336659066430765016710023678735189804175086476038055608827119847886391169660571257581116143322031623986195399608106448911512990383218924496711518198579850277044697851841628073295318752217073754278078367450606084368877693049830230414364689139837008269396406069456288164169529166544373908475728196961464119571580663688131248487829600519236538166969144131643782128080377458223191425066537273186601585557631000545881914608634151201340660568618305399109284222097222772766642007099875823159076294391295156349672083809897247230420387327835086014741160482852042007439596077939676657454574157343814376292956109531158482092000199683492227462223320349229787977209325937345893185303632200218523329226604326327773869929525440037460654804476294982724042291465600529045986614905305330341184232774713475287632417746860051035196802595048933541617738765023893191084066521380466746652964357719605228927287905823336267171801047870741509786532744155522815509790153143256991410913299525027699164121847989035341734180288807859437047470037468716698072913698781051913482317431997181756973247169341124042193238323758158340750503251210242327215999762255953608171639659554592152006263493832779387174509876695534287878977466443638551706502650448577147587895166390526126187671738754045938775924493697246870221984680515191826034341463515337517354398346584036650078008251337619581112539605958941718804721787463604668507755956087664614979975907257254669309501812266059756338320451208463864464994775567471104882581862451811482160241731135115533763941801619860829325848285029721564124935435493701472218371490931352746516140422988403472587358480471003049710367861996903966400318902701410218747143973930479667127146967452485821961590443588575047471161083558276186011598867992523277670077913488062706784305823037684432240837285577758508216273267775521575385493139188944331137097187976549309906304370838121079727316041468874104427329403072777436378288442397759487234629173289643236489504230303395254772328529225182097863294127922776106997648396446154980303910368747636700744207201348680420978344656707808500851248926091270815723789681795389714716653163541792741324937455510490677088305382910466098618013354927364715788231751702295292557476729438071843235282789387873058507172169878408709360848912758296731845035233009100824500894600016837289698553478156770898606637024379918187127137483594244296364320947275727110418044334601305107022177824729198840954442915592472967931476641686467990945637704603699887007961285734670508717635799267264190775864829795801509614971798643932311870590230974516834357125233587442571650251307838439678124895410287899686721555835181821976729237267508827191325928904570539216996231573413598101626063438419741115955987121948557079154040991260843153449472936182597146663520940304301794361263079707780953877079498286453666763263533422068945343030626974857296018808465649020974995525667340133802823078862980681870520541252040119990430428919912401546306489607552348001929454875288055706505545235487917895598744025091300741641918093997294682210357018981186767215490449502844625996837678251688727079295334993551398511723804911695566612441880493518211954231454579329549732901154976327970042572529288516760556706957888189166689264962782660684281788855135682201059864864426897310404206420388620214159313343356506079776483728611747854101318195388209632637397818675015670201035161382762235549907816708176258006326519090723097311326126453948061274615763974697290381991575806307458753851733483346860760889646227012140401657955979081551364317926971432781160003950929530530156640538544014468195674168914395005060129899532520624256402569997354056335685117062631293788209655763055783267561616292217039451858995939277954633373520501688984643648882073146139928560157646190608827005218388294490528350185640650433641753501393498570510063500442327755328051663250155536001685586063216180167882288985927773980708234430121876498298821950764879374527324977571646794376825978653807770909315826869893218567541022181137066289150507191692405571751537297985467954771694404608728583402007168255878503502580689802794309461846725801862557176999143666925677662478882563671023905089297579824895222709418467443414664411911976248630886752269173795608464341636763558830851295486537112507449037322882719925727151996600021666938956050382795190662337107102964526112535482018081623405931612383383278721545090905442719803200644225323600124989344843636759371914232277851596265768452530758485537358308416515247778499835560996791452905537128993380417358033223313804348260191619102805347598662385415120389560611327005564966892813167555129799676336653554047090793988866895306857810173302660568853689560211807721622589219199243117304892522497125531228211758822528265092358229122520413837008286387959940875331422920255378831925901788817597894307727113160489156785086783738812236288755855266118657336744602261173633288022556206861495846722660537793575255583609340989163829636599800730784500136994588212051974271662951889363661788724519387988391498507463670116146235590918089146487824769832377597870963455931545706800552820706294643107638481718364124284488322241634530641777649280600316789700191373441459952908181300827357120244541781460612372671440187538225274535151552424500790797536879918711567102845303187326563112819187358142050423077462972254036963523357483065620485610864093427383318334634327351271592642393900491279730288837834637442360464419658158438405319108290323239391500637052537770106594292190766393180810878765575969070784073173239732355063441358556746002928122819448262638691858136721604139546331879072561693081540996943760021476848236668959583386445843391397341957739544589473799649939650197318018758215438818580492440153865707188767878906058943439705724396806766233077750215424777082377904412690412076066171751458329065681240190888065205921445972236876022617302455546374056207480813993774670094125222153273448841706368152443582561186966261363834029286644970066037996750179376316763918069437678433862149089623561820105640614012377885098835667084731143716888913942684794853876466509841171954337028921584835072586019765152460415435606762746411781037958055110585275094244729655712945889544502046822567201062098620677182166748688559677813336730489413888303965661219189330587140477845513287672803014322099270529021061771392127737590526124680357832336122316724513143018328278987695299046550698848503343483983359922741648106833596317970504048017163575811696110898875265050394554508189045782033398880552733617405890660762567887602344899655818219507130679827984374701471305670367804002790888262609687517984330621616836497577339489618134418824168865022899678081627975625692274980874020887688103594369299203957265613050681288387614411959186240022364452480039479994244058253172682465135209489596658726936634884015099283759846464753424030561559065105449169124218607878117680038993076090690483506727951214030034045948829208453567271632950120071121468376544941407069259621433285678745746838018539304546243136985598732642070733736209526825330022465956542110218831635555322102232583541986992666491353192963187823490149158700147749921910894650128017261865842411995774784463808881792358967236549615822753535499698413029394932056796213757769896654209615618393575485106101873663140267325061995658143840958843545927104275247448553201536290028879027363715117097611575104474448575002325858148560788985128350955612212441353238781623331816561192925762099918516879242862423080170586007655853464509921222138629193200629166710405344413253099405031484201600328999231910328401724803603264117395877373643931580547563446116674421959053416946656368004997460891763261639369972680056711919008111646000296009990629766649508010850800515867038581971813055231732463017352876930349789853304607612670691519805210418792169386199911313682841025843874830863102275566524082814123688895195062447293752240366903159218186432340269192932376887151770807674952389899214924574176299185804334862960608936311062581001413806306012314943627930687332687687714744549611824196603717301173226721154889414471580764346364476457590703340858879379388551175194674235340453941225240645707121446590466567348092426153884175026364996764039796403950645360330584671065916086949364276706384187525076396896156031731192926863383238674463351811330830743913035433722790714103079528227165884110344434857882180908028208295544281220038019526602186359524610566606314957612702515823033352249470789046610507885186132600708705312521009241881403331109803432544721875356433943220404659540269285044885564614251052654795847216630572994563578827156077280214821750447870011247793657070567309892113872193059290580864978398631943466325792242834020275207962010766746046940717056095351333399376074927130117650602222407844780821493839639881200547789380056657803599043114871016372770352144947284480659802102462962863743293337500534210984024858609771594603462650708927576848032018361905498852289280953768213151504355825172037286016959609587642513950138220984049612226242281734043402808939972622577393303661029868199221337757916373560345378075501813255961569355010328329942384997475152433810011519501213178050138796465628491543324891943371832694701926816767596061591878897636526032086512658522642452411995901898187884508287694437676631849223848799241374007672294068073105280395354023660352099842055043059212038827556559304808391165973062450177252527879079885468508425855517383838338519943442889159122536441186696441712424001358879607219106134942308330297896634430882711074670005236299743261023180271422662226187505725439690773814742635221552448324008043756966990710294726405178030151618910268009263587698184180130345266471055199507316064326755040487453177281647974984931681635188811325461499640318314012084999975450565440566511483583871743810710444468199573634628689300271371764306960414783227327567890305080957691434783086703540161620281849114412320084399928213181848433228813425512488866865448527084230428400988313855490100379402648447623636375364651105500810294066099152481479263173087744064207095391999167556393167624758908322427072948295443281512295290316475060981071517094932166168130222008489990733519284840900143323698869379175997792387280564485863635604716964436602044525970486822151441978159123227475787721639865752760984089988937377750893740406584561154045344889826356794496286422470716132658749959558344008024494005256475311275829458245552383399388616021670954090395096229843697536057944381677828156635171719015608678501022971066937877214909889193684543867259730079749381103429453581189213029104857204996735622116733366350076432627405882954486157569614320478963305917252500296559546804876536262815497576765802778755902367873481625042453157027418353906499723714308623953642833379852588093656358087875872114167358200023785857917146541612112026034272557384221551801587463057767793952936789125329777005082262500819374164511416847373657252267778908745799682373452773273606299464292416996715508622928060803167877150190204161663020493507588377690661867461629647016770563441830896762661887440329705177881452434012512226794104121776172182888508159721642083847933339829566994034959379072820339780087960497013780702940145706183227529603485302837192226100593956449912415092778754613668231461289469981672588247118985447614664135974724040011672646403383299904015026352712185799138187518382154225304799215388902846165379294723637963334793127084664272273704354107685379121319034331192450634520767333438091681290392671092987571771480282227330708585902259139290525897400243757102169955326576133351851876638602761997003980523930527428933709016910236752074517701696404723753863828765431904302903579819304468286320454301891421607505169966851233644518831394315814046520685035597675284062096864840014632988026383254956272132582757344853558300022255133185962288649772494481966641528190407028797109505677755838364707508929280129921465508984652700726965716889740132432879571982172311902810990922494210691151942704477358752026602177872997393804329178321634672128872843369790316934859245577217598633216922910131299649345656945683126728480958429250935515615358682033736722013612851719579917906788879489778741557950785828040051987951437931024097351375424452291066587300786546251418820808073071926898391350492537754374420265701651485490390378491533578352391950918422941007958179462613046216881844121746806220722871046251493876491783338925853594154399135800585902429854085572504489429103113066841061052521529436405894282256195150902988534967011852089646433204187932153336684750090937947458624405009441979525930580847057304417142280778565703712794758093456290877047988346971693235516960591551290394654649194697695658010447721221152971788542420630144935999036470488168696394545987395664956844680082797406485939762888615420634495952047787647960222248140451871122057621282895120964242624397691077791875989150916967488496901404178146248821899204721539789701004100445191637463548493777672404896305617608574901906641992085649882441665925913641149797211057092004834635621911259205315949520772857285350227717869113431709507474177404611259771054406639288875718393323600024450260387599951742135949797649404000414409398680931932864233231380731072605234702226995502975336413333363768383076991222391147770558599778428742569645259730458979891618440091187547381046980438055951700629630329433750112437691659207229530151254321394054433778916278191406215516820884736345341979998879516117261028410632336985345662271408982502069128670444116902582047965765068060833893544908621143873825659946434978803232721758292694516998631267358751095484558784631407597172019624337085219967792883082041708362821886710429402426005844004377358753310704188814221920924607149133502963690584664488320319474101734611287867351794220941454660418534030155181556232143165747332666107989803109068170082688732101936459561785851734505472858980078728721154172567402441979028843225315410192140135091238671110323213731459405115614706721289593263819675803769072313032161582473040701388589334636633597677154707019773249548814517149561588915972704031644349512185974704146717150973113294738480850210707300489521237484215403899818595132249014418572919357094375241592155456929631150144938470339489307624355383423543950785791770587588732868726361377231317957631881191749399736458295599559616847144784415189854307741455943009162727770640067845262221886063381067248472690244026426741339072193530058424406225946425394836856547845053434905296743058974864956438929352506968728255730738865347979569737963739416312512211357236612420140264683198752349137532591965158061938726661939160510493592652713216922096224639699245339494168148769759450227569316017372978252259321139227972644699078707972112927010072893164141328975540511298607130045424497219982559230173355939919666258862848902801610297741472814721799607430468636839435837620966370592178003581516991294767315483262434722529800380095958755554513635248529233660366613345215784920268506151949203452902146178514203242331042284863520896879742184540038734941728320117627378226479639784677713658735111930207072225600375074940781039463389519984544166314322973160808440498281354303038336316353145405299148316425601251068208565690016030297291658467891832210586994891004078010769247782572806721865866449357592377066019997260659525543327336425038947983366014319930730848093451615088048076463666752908667169362062492873981488799043653338716396911672736970273126537428408609734869729325527885419930190416842823213958579660248737540654392608495318634134694686789235833606803394455761856487011325964277558202631925680997158944893454073545166932384492149911855493382824457707668823052546979612822440415996689237159295093923732119547894507408067744489003806244345752246115557238942268385930515277549765454318083490238729198467486931626088717921512482924761589351414914158904235105073534967969487491863344304793625203651055672156988823952034980523015312238521251326166449473704612481860990143956546372710175562161122110472247926506088187921878564564770201918708174098274263885178517823195293419048193157156404001782600804746415453642585796882213147120219506870737039312153332239429647101433881763991811507421555422604821990245008205203155158803107676568812198575038451204473602796923884894398504077669391919178038513117904637264578728005664995015957625302767342474903557787303206946697620679371095314087874660907190900547871502275738615622840311999793601481740181407268559346424708186513726761279734277641240894070241225057591283320448767508382482335490062243196257292826480566009677509285325730388834182425044101944383749082928907704415181513432790126318627093441028058333197183938084511247877577905287996142480968537580976667637015694843487431747574899146388916335043383627398851102955909972689955904715112917945559126983594293067385743048698989855944326198964253434921711717619498688138115373601192528376348122187771094392593220573709562698164645264593052541308176804768491799670945909756270994574641668731299851777131558862076554331510263023608492235320184002464426949822200938856198141742352942110120448887865176204772310072355773711756964540267737869878293238488465868548243072513224599718195176378206516770173496390729119732315211045083889636900343634564977138841805680298414053230978368787887332357458437167785962319311821299654426422746033116562189958073857091407481709077707206012582553725598818255400017096790909741338551791505034624136279629433752798039212161244942285734805540929961742218675526706638715401971649592580419828457272339435872738491298062505229908230414417964201863239335975640856264721140987102756842328471054420476927372279586934325516237287061306248948317683005950316273539272221555960371912609270563209001688446422399745990762836038614515601146790867195227442253415373563043636807658209294481681575624407583542094450414818369400724787199371608074714370480527241227205762001482655673842585276152042257561677566344890835515904034755970552781149851302508741216556160585427292302899331654735499079156121786647178134339282499415905014092363201698408680599677236463118003230917231449065960183944335732467994721363667143093322687259227699597866342198486047640383312151598246334815753891362137470506267760949391565434449665030715756019052561493434123986500863349768772582014261603587642188657530917405182417491784121530322238300418806639385455889178762006878814048766927605976263885084187671723906882151375344690742052796875938629657498654417762942518703009114961352844389205145007155110873094664959499070899793052340129573493866881785927244230815215906606499607550272376081272387058512137274552888617735445449593851589568775195180268779856482520266240944486188286727054207475043536799845846802118161245119179164083882209778864182756810585076775657286484828360370249328715819806043555879980375757476331720000544959849872516688565706303352876068093081590181410593721378560788103151292531750411050960975165425371030855174854899280792792165082670247752463749983785047234114872240388787796856216589184157356593968703031935075029813828952996830357304306071207546629980584795107732290419143068162870295090071881413421458284156116327645897977943185244670333572201518300806773009843428145985559436573897199032628610071674691150902659464279237556249374235121744508031213499874102105040262541157631141230640337384023024844739361327771431778326487227872000031324379911584541073200832547176553357788419738811198783081161282533435001379109732645804567535626928483455102531756976137831443682524778543069370631432550964076224942709697276210616798163074586477313621029169131901935053917363387720959307728802113849522530852335642009147582113215081416345593732766381646209964150418142792614784856112250969744180739940121864957617087742985390839419901188858773363731131301710135777903347562044395262607677976568538504151780028622026017398315357894904544427165705596492052223188354474283111934696037119412186093964743696835216300841130921221376123619315550911877534644560429373792151668962024254716803778182746385907968207356409342994334271792080288752211254331790114149116004796389603318772204714551925930589486933504992233576520706393366578610808592005775957357706056346934576038849108050669551609381069436621287588273316132286483143147176721157046192356146500377405387217627411136601782358558451731002982077899936468177687598057719690442932656414928889506161743273954534823316663997917484984027478354053591200222609439905312070766019667274321466731325059919615374919120610926487819537779061425351892234661396095319606252617842571586992437826609161717464971634720477389613148671942948249029198941916758308889233973117415554172680947533102737797997098175650450547360227678621069754045059261438837781516179253790106064022916738026962573434304645300421104252766230305520724757393067927263937131887228801269585549042486632283070227740155528034220557317260915929275132872044337772363815466022426272279552426404790691285346647439567039015366644825118623402780402537808866611353566441069137697238823654053705720326485133071180018862177768059795321806543675321022250428000439940618518128895361407337239506631151707000571386315302132936855380184898696963028510893012021795064707248775032099948367568717247002905581456984051446746945071887173763680287347355619685317530756612015693057034430987614972306895286644415640748345880898652566166437972028958684422039218194317151275641117761475637140593686400010358802638912596923817062276371676287480628381602275941051146269228880912943302776649594724973844730933763274600371084359078599766718005586870287301832296672925665119592610059415810036508929062603999789107646931019522717446451994436169991555641564121510871438208088680752297850814802286234135318439205666397115246089048131844519231492910632815402792248937822825154576827162459611763956688646174239537158657446266439961554789051637325218257833325356445898929059519260586597986713448274478262666789841919627360593520221496681570436556904167082575274458817572811609561481857224369546475050830284430753170779235571329348761178390813029105991835522622374686711575705937749093797579381952473316322662359826956998047343344026168796547513042934616242661346074732526957031148814696916429336907194815454817908292910720694297318759719731015426199335646153283618228701515590331070614653042170066882533797013234495060714168352686098813122722054090309466460661858579999141539781448477415640822589035406449064635106154337194004013861603507145597360142786234514865734796217978467570218989951333364438192919053008577399504523493495718968461271137688957597933234953320895381453984677028512410913999962409428615356154952015641889962125930051264420968659725289941843503668188048075291059723360083654823570191986855092603500487657378829516292374183271323676865849464000596709506778345361003674425949188581955959269025123931107259512121156338241589606737480071832468778413078096938241482915189560427550175420651744208813401454360707135560267634995975759600410361609612137736218202235639801014559249360156897148979333658549918634973041034950079055097103732948921976405886995320189664933508204310048852305942984868017855565645389715296386871398239389278862831305388987044163387485323665505625430238286131768314743993446156093107653849475846489316215158358898933919567329443347903909096450020152545297422360933487377485709060186480705169912575593325182030441205733891169249497937444418172101800486952748158248607577122172413829852529767035268850421330346370320590111276927084231224737403990344676189570010259178589661470456118869055431800013574114545384809162384560193982145769801540367447309332421416472755521908773969174173735064145951846078512401813774545883762985179066094251799695036587235132911540694118558004057561078043579191051543895293017860705688578117217421391550953207211970898415221542531647919304616049811760099940434131909911892155136512261155018131107351940674896418609402848692830550221199243438663096612299837616589812747306690040713313153258193032028149674557028927119805023083429490724610549109579955078936602634698465662818805549010438789895744093141529641433776902605064364098326821763362870988262723974302300550638516752892264837509508861372198333534606984890685568590244467888633643960437818236493160750697952536617770448078628521046820932682668289722071591098008197780192649525383047246360795893917370036932896635802205065980285338702996809222867542712913386999402663357736086375404720211499273339955963867139414159950635550381622713179928761432989245958663210228050727201766328290281395136246392598794084119774242147849748879285348132922617580429695360568496416333588361246477604717663033985377267173732323243519297973342376460670072590569784778225901022471861849551087004140155276349224305850649791746999412247016670031010443276265309930152842068424685952359105309696810584311855103760808536810333170953490813488313117223593774387414621839265017156090327940281899356126944963967143320782904731916666780851825519771728800627735453991592789034010786288963661157080757926371251575321256434587976758227986056217853904634438782602247698316447309116773137698654394413974813448003818298103754950588539835429146322753291226062391782931996213986918817711118424419627718789923057350447245775383119433851793221285766035212168779011404776589767784356963513653291514930963803910475450116996758780279997955389558550059045533297935637026407703334811205596791096608804654458199117569673353817940202977420844671405547625380016657961957199126200807816682028859158624857236155994016255477707914111600676407826080771078947343728991156761306850732249631591231634197588462764728819202367627163751947669533254204908916102491648373349659172708001471152710129089029612110404724620656228209632836266708889728464849194505485241475581339237736269212766280901070396032994626272509471411769121429133539751301514317746716858402905968622217080111036660714630206206422073967367402754445111531868035737119706126321435523468555443824565325519496223092442226276161810763532712184867110387486332416707890468852233292111150197900987237667401554791675344748589116281268686736042229943560768269783317351763941137568187311853109391473316134714642957480258866120984333362644789232779921718938110490257508983329575231138511638411810192449913293008778472536273658801679273239119566773773460292311671472527543877323954096440741744930881033569016899447326506293568124074685916892546509211091423164339664349653553999052260304711487117501951086036214378879284074498252703324251691779534323933805375341542863344920057275796819187421842721885884666266028133915912265087032955629743121006084764623824061202097408858510971345024453456269674845217493795199836601359599598044210553393057994635412156592603739545481307090026816164735807530907005794698595121857669282043359313336580210439358016107908279426644878203528015749847777187536663886871469284922335979702018592163752637064707239232807117749755236536241706263154632700590266304024739804533530204093931304973971307917181514886323851603514091871517272596320603977518189877379429833548962149298830651687972617323342951860291979123542091466176185808120657850975540518126245478535871423498722824507628021855541643937355728734131770795331826410695802318126782729262172479047867331323026028790147648543358099932443723491884995859948625830676000122047336344668680030217744283089567321206573109092985212685308293535203316260961238719270474910316941151648388474797456771234335574429812684461432753371060377023811587306886288969394132363006060504289965200451060374867696136491725117214171045397236983765748250928625319917610379605050700474527519870692438307972081336510745808625339870452950365773947943751943255366001421055646414822436061646770791716585117656108592356346094854976447796211655113187009699029140731514839039089918159185783326502779539578418251970561524675181074563304570829594428891506667159297604128033547451551004399493399113574003681082145201003716633376952121337532395906445150652333790747504285781596952756961817847042381784203159924171121572817531382552899083172227080319334018499746246615068641371786793594805932728519643357368802741431586900765208723454663736398318691202096562075413488741155043517945705202192086628621570465012959513127937440724676204192266556744533344472968171487354493873384801665428264237833848317565438333617440873218792199714309719390756152899799193348168456648698943157601438028626335331361857237931672366063675494380052529671399740350994071219337375857120455594960284445640461306033622263621629341224576151165419387916848132809624695244456954621250879118935398322196378999498705755174877188610510452587091200155027181112140083303394599977286587045234191667304068557004717286117263358849682710717450035389033631066658091122161122795352059735631542387862792211740027929927660272309100878896448671977510644852854236760680678328702716021491220890738359867916779079846546847654432886332754592689976471361182191936371970943091897609589330741950915357899815945626817403109118621361123870326632874592512380172218592375964203971780119733013545486303115628764539733301035351993689089171658211844720253940470931783306012396416727093121636937919332391842597730527614792293021230131636529561376233305284546377449667838557241630555328610532755207843894044247233087001494007564853949389708563666247235115549684263707422419853407218843317118086247851099998176232258058120204907270236751559960385584667283973473259596127104496948996928070408723556135501883486098273344942119279511596389142170133713625405959158400657637103362185943540907214950797192642474168788661350962013130319398165644318423191036741420512556863328098552077093239955742204583728924383094811084233008764153663084724168976375194193998480863927695317901643727802977688806162490841933764103645096126040651273694733432136475166867454187542353324904525140012619910255049422060899086534891218519778520803538297935164736163639485284975628497148856270364254376152530348567914218138341546765630362935943271568888511396453417550113555234226609517738178180389386443090830539927386531988392370825144349766957951254066405582132495347608244642379595204674037169104022865060164401188212816887278392342736929260620640964091959614590431451723416161791510706177671741511297009743626357169179809791310760755444007274823165853639170769125919005551128507328081677051347490741450119502481084276777357730810360845003755565026865827089490664096114629969042922698380843496813891492479886224871671281240892627970065093741291428012018819220654215938973633819322591270713038489421629319110049071492253628218620356176446854469959430764190727133878182633847902690514134885240883415970409316671764584851653904600109634729323170245268608078649180077024542605338592009166331507927787324832590160442171566874940579151896771159131892750178044518249937438743299329143554374680946834026083464252681707351360267844117117547680302578284327412712955509267108574023047469600264457118930180581121892575725002417910664730201129469375495333839271076783815855808875670613299964991589394990408749778235503921051363016467163408622693653940345676951865277526856031286808815689169916046013679356000288784865017387036118613661682337006376249017187035483916530088806575237376799068155478888938646233804336788144738626369751444635331513645033652509877954130939941467601122228501278273455755159561984487267288862169113912786444182650107159343331816055288098093137576021954484236689181404876129698357403680117551891330057226994759192287243969471072449770404732967513384853728989198514487912693399562727628630157178270573552384501936652886942503015712886490989930558977451480649740071081376020676606100283353983207243594567205949451216844025305614161150472376796871252693156319309816082329795042589816674800878152648677364144935695842879538795111120900413882435069998882091565554032892502288051416967879299266268622246705254906674953625013269700318245101140735192981527091168287631615254533623132422680452228896149709173971135352554401236086188154541470853204672299469390714881886033268282617228269647851698409755613280910904929942058902099758680270118297143811306166501656069405094174470841365931729460368323148867837834015846665262779381103471856527342901126469689951352204381388359254084508757429340483048052570263674681999971113924994308238094814731925760115285382473572083149105271608169922281418675329911795524477487920246982478357701790581768433766677768902177649062193699589654676599694287218010978136921367446220974783004092718190513763561232548612721452226168051802932568183109314139665924531034423688433970673528726638300045419514644230326230190718975985612470235865005420759825248981990750316538032495026016937230583148173147524304359424989148791890628026340912272673533448537779853276889704761672615852883514060352527088519929217133070578576387493937455594009676153752177828011626903772652898962034412615988106321682532064438164061291711721200955674738391672229623555746124390155990544883226264416256871268704850034492114157576143154878838226244938257190720528224356540306686433949527866391978261966212889029317080915069335476093630695038779648380650097087712584207442114997169855615899897478765137505785362724536521780662897775073271570349854774716789029566639583511119977254308821083008387197030016360375482320318110345196341997195708016263754256069696618343629726907066223061431318636181161133168418495161296479946354081551662886453122010561796238101443846201413252468510264137934116621666604435554339672608390029334249856059230477254301604859689878161532425234889479927499568040575087859615846563996882770505824808037526244409922842655810719653139621474222234153507700313618665229024242427339752232201197300895968910498540544742769756380596262269087884764367655193756819519963044228090247196597798141122997611309966894840654703043061615428405289846055561052774316709454797654256999443256151512704117768402472629905184687393844031749092277867137465048775654003526182336135822096915951653100302994702612137983269955154794300452825040411617899229947911176412173992693774165820202835024261155795357710192869502646054359241180066807823341749833422352511940395786903578680997957355566463481841092353566380532162505873396127301651792091526963077416035393436148765086569589441668759310281972270842130060698903276812481364340882914506935350078426900283389692890036766306519621256911370825149526413073002057234260061434794784184662076337424740196523490639302966223377308206402287040880954039448926023755930275783818672711195559036264381803694410269895609970224026851892905705634115763456634535309178364491270655146521452745160957092696019819351482504230830933240208569382325737324655619783805079823678391489644132121190325383719305126121435120543467213802491720844572406756078389118361442061721960932418878715390653119345624231430505959758138968001459327268036990315314858981784218414086270354132340571406372423344162305201146005372433545440858047849152738356053700832984194419408785772894289429890556411184890127988174242713094173250224649989776184995844482431963338771360641700505758811206260189035461258593451545618175684097314733842014951893758158996012087525756276033295003011831880956429108679299364914087426322667213868491522412990329146293202682373490956625790320642804533851675572566335964328298369067971544894914414428445736613121471652577292832283872251912278185033318457537523118138891046873011202533293433033228176744479092066563250188388749917831245277956878032518570878771082132181754229913702999034634082431982200181814301695015867564772318455173516019353974118068162554986334692974279363836831228620901500847632960271542055409234721977487555773727712535843792997336755041353900962607546017704783200920900004370304772062396931123619969230694519212280751280626109033960808551199393625766456058454748929845661051643776323020476293348833136645533457348047357156744499773471782198157392629435661485332563525738007537342458569627322644329253912185483500847187261537611935992117554494687517220953402171496733230085430312773430084421703922356580523746997811952384744493338373857748511427462252203934675721232785066105269132797730634628873726222419584671667202215168082910005267022364151265227407760046197949668504424149290330375261532475565300931531455774156078548884372041571406008765128076133114000215176092898248986294506264798639727812087334479298478545315123293340514068472557469284862631503547709257191442014221858878025727912833117798221233680779311687586547771399946239543986001782171404451158779337645825217591991088192383005166331028283723613412721407224623795391293388364187931553299328948798748615386139152307468917410066261860777226791348713632214751656850844199178069486195460193408937081923214192638277533759194570326450236304347568717345295839955367097394731137451394332819779112222693972545912493837982312660709638222596701900838145328629046106065868563209780150854223348481105906173852298620528178960495007325704272220203936136382479583103543259855072621403409859627786017216895598750303288281768040946852093886403363652364944285765333810979533420258752306609947377791748340996405620837330431676710875929826666843546700959970485895374841511522145022499454415283865780292853017658562910138814417266938379020705003419101213867913463546522874814071533820290191923514672126838275100017394805179223575910310629411782671583818637819546488431229736302075907294961313226423551084910264998474188701812740398720306793583123154828787803868672076345498495199113445099124424731050522725276683206603485380567348512636931946652992516290262646589416341396091509721872364027550026970108838683249414212571204886964565829636160986536859883788390280207060702963996208929169242011756462921271784144386609444841530713275382741805124756047008456141960786049544859255813071615271768187109610417028646244510638699279903132980239383229230786002461112125625374929920696236055497397793370905509150615995807462647693070614654733657295388010846593077370926439327096173358979875513329851735335805761982037560717396495121026056824215353943220657878065433368166837918392543102962997862558313815084290234604146428506331820780266740857504296549353954494865185275647088143513231959734978991714151693732568833893316283389645184887032263989305568945183919124308293251565402367538500430945522752298621936349993079956068968446618745989474882341366408518853219367311437589463565702142223037174148120127262829105733185783922733479526068004131224044446906957003432657910956173422846551383028777081709280043703275264455762009029489870172647182289327617882346799595389668011402866870526336706006304261299460849499563827559906026477765219702537583064118146128754387609857828996342210595022534150439826096187609835216523165433169772144125177003803902159813797489132029292775543871170339116322480752465724972962312476509351794356748381143152864133302908912377714661246904486455116492679934634155621188228175642302405169489544428168314140490438057886059010737006718298499365040749470278557386272032710842602732695690064120155580946913710129842552905449576450645756003740314945879082105473559113639906727806481459191706433870697147736652477844338630255698388102589879309501971312840708918719696749394002657194057221592958688345786698103181835949381027193116152515301740904031945172383224596330526786264210007457363367972646143529714988846055291907822957213456926463834792175940578051303673488795449473344645606796676912782679904942003628806990026035221665252664880972246721212946167822822474271783410535858490938180843820769671226221556492524464101160066383911818308730856354226721501721889134911144340742316720185801544096839417218455292470306663317439699203209991372307939208706332681495027024183632373935575659483558643427585271530364753467460118162312180861113799324835451482289863062536933279374737264046931267375653401997300907614262122865011585689448208037142836120485831617475039077128760465033612361352243121420491140962045858292255435749009027171143100562027796642732820368408835142189973676612851541741701550559669295433553384988687023249020610644580716922863343391855394434659741831033154532910259130360646226668797794557349045467488232753173759959372322731037104452113311533828930424773972419572744011654184843155648940489213580557085576275584955348891913856437916383424089396022097880195875047614164578733843443198087351575166749682003791537961029734944321094760732700463633436612590711792603829657765048983399682005284642342068544946993038712496466424858116044200046669339857416855517298369829263584910447179338446832504338447175872526993668623375707985863799511764743787742210295932621738817179921125649607665490503647530112846059719986422397278433919677740389582319175573259941937900854928259806607678949854843333553305204429781468642262154639070566780479389131776519220499357616638821963223572241387580488187287554778343055337141624291591814407249101833736072586131305858393796369137316050463865378761619976568352789603916541221197123163706463843508750588046575531967200804810632083118215379561380098353559526093637000645317080644202888377266908268009424750615773653069536999464734442641799088072365856916238996365175780762373186136628030006775952545698303593502093103401066548823876059063096671525803190270180565107741796599641778895066406027884717068077927555703510222371473067950065096075380534263982026154071272137856032274328861680241733894597905050321379748466149030953017402300954957526179588969836097031429140848045838420177059333087278988292106539860854978417702268001994317231256072796693509378461673808145347108132937634521964744163193311786906499824823727616205615024443944723233791069608396885603267436594476132436686239105834352637258702655272723546810973613675379988543402247829732195864738470798498514172853867527792306584091743206050109910223892981893864572160416894923402085594048059798887199075389944836245759181795872647854824368717842805118165701035999489616756458144117743599941557415640541980940777060781817873278088392351665272981172947045182489488694025397849704040125785017085252294800326448553982933954102504934105444614356130453712369616822024270875468032257772246764538690691735846329099659789270857241360685294722841899888111976949257775673473149204541882499353860754485383273493160249445830184005201100597121122488189926014090339058430141050559807188444154763356093389295582703356383918920724411566241363467937554167389089309186860803126378923091291660755009898084043087717386876849306238533350915041060003830601639488536879210612389410574394034606240163718548425217716754516397600255050226439611525994294308693498690746297837599701612950308438036606600589226585293056378866958466784875726002532918393071854726101201435318123008262824539075652638481662843067124140915353230173735777223170545453318573303986361162909280796514000762580295868325211303562521349985400678329057981002626637678051720624754016353702521682187355287204019963596188736069347306728409608128864989228165452185240832827912818493863635272203008598275445998989995835111574368787888127048557173814857403078036294204859420644334157901693839596815335852775087815743971924322779883170605463400533096961159954373203941299551771974092493728193869104247191680745755805413172816833655379652759510402582937660069379484763050243686693087498612911515579029908914751147143616550977810891689159389043228611630980896160154365423970713173398762556138393349278906057471453816915692648820151026214721832503409165624542935311732839683741755506978877246043985562610853373740287709972880476114915778576510475290891138178065469222072171325415946797805559574054495325587792843232475048202572961072119305427203445431119018432651599832951192425499568866292451206155443548518778433760228457318552553020385780679964233347394328325507976814317493529036535523570833622729540297603622459678702246796108729006536915811032977241127196871846317120153108720228291216785136832868288998410063083059699732951240183437928080758668778898496043772754027589522929366853922675139928237161596447373298270175090837568027446669159111149779944667113569108892437919930942472130807308198426259314434796579085670082562885883611446330706901910636068599518538704171062385680432411229940699769765217189489934971880450386432175982864331340232731735034487552793783486413104199496595525770669045671843550215620189672793973426821625686085922488113166647341429891013875712757048305145943663609924661062720112440987239997104207565439150686310201357598460146730265119903429865063967600069668795828289243397825905874856782626926330346837233212406615776029515653722610682290383661336834150499989593428093201865424703607359076560816219599759343820172461807695817834722127150399123937330805981643494623136717495999946304211763818147830191021334473569265625880571016446879845566172037587428149099843393046523931220003564424865028020022103872381508554360806108595381742785324654979231101510181266741384662946267400340729092430677564917857934277516529509846000986282198651935014863141311338234081864181019598887229593585603437224236723960151462789656548533533174007419842426013606673552984075440257317771495402192754876256636632097951348389232398473093428272993909549226286852582803762571040814041407092153377982471219334648252071838785374450072385259360567659576220402194519247929124130758546485918127845559512533948537732743954653252016862250537285001304537240004647444790745978251029444790475972689949375374692808933115543550514205161236368344100734984299470708653487282616826119499544459888850359607914367111963913932091120095413351288550899249339285379476656164159254527588534790680348593042101431778577117245113741846243215533722405654121494232234673410032864092372275714731703809305846661141052866534929215704384371938758254891849894465897489211239804355925364919086589066917390808867500913233054266548207715736402520816248301658987303608659808379615767364117736273466976156665392134829345642399129280785997987881520429221519091416907854973618725169309999132270006749972335155765795143664747023748766149644049261348608299760978362604927823173889497922468520977599508049882697239249576598722306469511876779916054956726996908515258226529522738588543930217342747557439187441137663399412859483123438484881279457601367100667616597439589632554530670816842945121140912212009108666989989150010205569248485237225542131071661391982827657429818829175183372084175238696768280591023151992531280144537722164743682595086088863644346720804079957456104290101965608808393098287160616049121636045869086222897375645574135743071591089367242331664477332829682418831492171649497251401194936905670952961527043291961756410101851405960839542210112530043203244772904509568672868692837978994453347325407832005428354880451308874136319369558168287460790465669459004074428841873812325676996716469267998695588605208063729838321123862468120288170434815581406294988306263459334499888403865260573742230738578664000237741531288590945512575353933694086944429394075221828471001077665809512756702014775408298259436553900777906180300371040301910921852932847824116551890922870290124041600452149317093577536081634208565523320144384538895834220684171388239953227063563872426113302172360887531969248201179065222750848154653606346843208352519510833216068431733436584680591301574087870182295987658228300204252835566932045019819881714582611715984000117232324846223680233784983905719584208339418833025000410026003788342211483673054749609677924297044999837994790440543497108962658967669130028499096038606304624009333797909203575516255166640057112187717239030015039609540518458169993864304498040103991612865934744955827606683482489093373386292669896469705317415608922966624289143819273723567260303050110341597015039075941159915617925116562289244176755772026392710897852605994713153357004590483012453586022457077160582123321852958758220305193728902001773432061942873421475237886083007029979653155681030112879925893918338779647006752027036887724058406643691909028743876338820971458010174951013464584028127801131681398978065090074076746422096389980453326207651496082597745227584239041345026846186168145795337175946226830306366614536599202803008432528514981788177127257386753550285133836792305674324368696202727569049569472142242467988436041192263169155678827648422239119627403671459897414454318006168862933763562397525481610920180628944206508650886517438844517440293615708910665305181913440835241738539089529473312690900228814761735924054727557410087221186024807065527347854646708100332528804948728188464766451387194846470027398366396786911087224906894452544993013613598230210096649662658249790741793302604479616467896121763047354709410590547677874362769811146481959467653953313260216045188056852012381853835993525090558673048169589393126688887107245163758078691852980464437598493901498640886729121561514693505446800392775377162800284446170887283461332016027846935141710371898135928565444047388935336434225299535630671486435758226615070847224212139574905881236472608079566539182107806975919196272996137682505271901680135018259365039043148923742221829972943591050476651019843549677158363903560509027440945473762000866255189537989739869552494420945283689372916225586445881857232200509734021124202427013381380975063870736878622413461626607614186589036757567280494685139294924694749767044828627850379939428327879122033297139754384364472277941952483005331330832659412681654814318367241851907164537118394561885376718611463451009876355610396882403469322743163868563893669207826287866646316230586562320803446703322414896584429086201191797751836078981178470876262961531940034781546405063456598584539593367839204717781619611519781599153348323975611162122210452896830871383545998806585780135485937490426395602017295786811549407988789989527859449531291247582481713710885909691407061933036180030332389191321684024237117855941479381751226153735529282048462011908783557824107679589872826483801883630605162587458132380717021270703116015993195665321105590868446372301121939352882993284356956065971989301484189419246965141950471310036209138468408714367868832381248718738058221779691668726770528694917232969297574129371576503104861498264996394254251535522789265581765932812281351990499862833891769509864987093885286522464162414980091336048094161672069334242500172533359024122452069662742838060791570974610193234327442284279030092197167819796597905954912721055386447240760083100058808181907244787034365745427947504666021168615328207936704228315767741097870656528899580921512079009106248893864651748603366304880883858583654754195906352901696079598667197919515472675399988477621888478510736605567922374551580096127346370372954709964144895440357070050979597124970791498940575042016503073921008375739413281657808571980285113042479613451450427776366605487057390164979963880067492763356999017421424708604276336870153889542554486051966156011457074311012678360618976337654085955844167396998989917146866648409024190014931111734620629582307787057948676463855675872109951364683099777160945465572016812285393776737409942830395155749453169206582037145204582775357833798271161575355475475959880902888250015132690306218375355881522800804994621992631395147590076715044412010286404223234675721465222554333746454076955442963733651832944081148165531123178885685344936256510923382232508875197006402178562624050439203931155127424198127866118045752037903135226382150021077213050240662418300286247765591111413089474976417044276328777473666951415296279729847362290196362231543631914184179969689628035927750615513987557853672663537814008171531831879331479803166307354183824985477461434758212203503303949134626725084373973133134613497187865221548479521132806558974510020324872979223925689275374902704259866856149040537528450466261442642599122957699498459561688661293427415216860453695085827710553806842470639686077813289931062855112879954394336700991915208886144555645744227925330947510327863999828608664778246977669364695968209330630483252302728616288409185402107585750595233549174517563505589431674912911708620738469600487897826391090562573959948749249597901109019161465908020748496263935827926505836476767083830119688555050518615798097218529807820275467907773528459488554864209571848095773550264183796622010560620176724101647596182317714441988100961027947776081962562468208545749937593917557725550439016442709090994033368202101818918809431446872511944883976072610642894763770508381680928472870453085471610727866631012203668875829064624965329442150404260896079559602848376811583310656398188715410222918563637554680861467680606261759125475132626589633416570626511726817054930109406586302669220422989483023764432367142194636490032001891029510553731974203939930380942870786655291476928813856458781496647798082331482664021665548467134062401859714121754244097871277182877853413438373825809953777455566863903097000614928407730247009172019952462062453919858592371345074239998517182249542889513234350318233448378831929595533487901099211718992253652942936533625825953909465529635813744972936997465118753385374870942177080817457017422516040904388461215741244528502023798390369991138969673477880497042088863931284389157986861499535720637694821492093062812513122808049966626255322428383991735202566745252299084099463258646834111304208458988032414287824148608262105774947533003770602151682554216858882552052891371938772498690820253933629404730475050099704407094693589196990053347830446358119649104831638160680743239747518873774504853932080118920921762003254128590019212850780087801080961218699721567278787836037834285050223359104738610037900336819582153479531242033219237911869797381093285010367827880608127452828831039183157044148037271526911195891382735020626616788136738930058943498719262754217586783775861692911564196954978050050271744148214225317716645648976255943758267643094912605529285775355652731149295608791108215961940175702492044626207794680537769554416379023844428627076001335882937229058956135310992448792377397001263801039062103629710054009023326620528685512923889365400766396639839257245082449689892624599243943845087655789090281898568343345109961963840911643767059605484195253505687872305206791620579739800869587500465611961545040162976777009654701852843349776446794960280372242292312092581552380645150731758263978489716595610762944958737945685198459060936913497322702428238293584834762009727957320397390824404902652459373962572954491177296085988591097983191619192371557431477730561327586503018671287922333999409221062679094625850811692827966923817237985512762993523860883177146897285715591047969113529008536773754899551247186890395744660004847954014478028822320824256701845114754583859463997760412123218294512072077908176823315161845542195987497445589015119927062360518963407353934875640953156034070693595825760816676955874920982404806665275624551923220032514529417553964682719023521957637963789759417505215867542019285365596662014504563385527835712567120512822751960929539092457841885540127128286062203184030416252304573349919862033683941854919174431281417027468348053312363654640800952279867998081678614387670229917642042193577030302889240633823371188316668923472566531471542619736924881856774442368306762858080355776670852493943272675918271305802820474498683109238845183965692912826914135802285087920263815575944588577839176304153824777450273630047967685689590574290775328240318388741953284725057582369989841855736097379347926210756480012760660056848562895296270365033407284992457076821660600430851921449939946159274018679067024925091880842549753825000573641152765627882068316837456136116466105945296098764787617810657325699441300696040441275748480590815431525219147593078104140991804367706639566726344353562456193564075135654672716790941187948848086809230938328738225004285130861556467382313448911976530330590349488507090436408551170896815968188535559683677670828759269590012226813063407905218083141753428838750131652921876633335743143710101634779665888361886988349983289811640070259655020476119906884593064118801374335280937951098305220586575519025533132473935518421572608823101683181764097241796642821705539235733182359972105591467580990960157125453625914657358345108084976967080717266943718308124966413928529324205814835226274469375858569571687034502237757777835981585809545667455462729794730797569320508562640503528302556722866775444828408620998138979303709253264259640385349961705463860837230314894810013719990131970126280108496986832790805995250749377542359999787837446577837123753575785267771063814356136789079473724792426181599280191554236358409224109269519498675837014008069125945944555925467047320392800470111600155954170202879503592920177039686011345630444923339774354557165457271495173534529046221587766932103972565405338682391305809660021212324831138704907261634988177752506339880373528304413788504053529141957344862622148033294954488890854507924805426837419406691885551675721662211092089973185266767829352661329042761712071734330023452589195373557475092687431529363428449640771785673995843814894210462851810384964342773551924438540110560036409186090659830023373684591499584014449901293693725893952889834811556455810610307945458047566465048935767852752111834079945987442056755069846162829748169274340319574481121269219891324355031983705466444249609636337484865587143693424000842683069466472686782160543076055555157113010549963694214120145286056715492814503563608857935420449883125571959955870785833653305512108392849984112684790571297220246550138708205244749272341919503603039394603476770851534725433807691354302103233118270994105254373163717918996081338444036735092091110631733765874016000186973042529842024488852703317251469249747539319823503525226176160943848097053512457087513186892673700507442774120709790407346312262052900063918929099033196435333533778277303380095643552023728118934142222131638412466218762656292621316537474409523054540169190591210298332548738443149969008179176662444562571055001406036680013324958090641028348771641935647143040955057638038573852209871616795910485222080708395443816652953500877460681136027308248856626139286677283717030323783233467164064186510599162481767070634565314676407449265899040024929433820347665482730341522657904235101310929756783048481363297639763227467327299098939274496385721441290848706448070466163067183262697301895505226175036704437656063860897547480919952639440353604654399823773561902465026931295891402221059887340881632225625868617445324411589493035550997748247415150737341194757333735565276274185191642451462010498782629453689508844623211763580035118418359267598642971281398538414469096917190799516740467818935875027443503551180799677762498706284759291327261688448884939141128745320572483591623606741616344638801312351161263321415735073587378908986460331910104790495108805327624363438019532053136413435545936470419843997327319281830257600857675302583216967146468343588400391420370724267082601761625339029898671526756221981306035295948446464040396885600648176610903305607906503876896844673169485434389183689353793341689876461040506024109359855532664312999759390263679696925137693692615910228511721654148892157262235977366770146398458552104707476388972254902217955783473853630081933437898874815680276975999495121254415702713764902775150787799491095614895742622739879403322128257532457845619552714971773748923110717580044852610875339714409334236416700073947476053387663802542958635529369130347698689906133362459084735380529991695237406505765703934901547390655652892580819446962840122139245511198760380740566099410523116436019256847220532851072587588370887878354074617797601531730495005829381247505250302170023610957367090784022351162225972381301444079847918133032105443244311027197910059137380934837758636139977194367200655924569938147027619184666121180429617186652831069577660924377161598315124593617280103901636552046619370925251253631396559201177821427680194280476586534858158747031199267709791335049110720516524324623125383157448751295415603552750263679614546109344416853578102731389969995468673435181034432552595169300233005059257279978159048202235890526047920348250750421717345546642531252852594784406842133378979724559983814529024913412772434245097179511864461506281528392865023721292643684081326894231693151888189538526818004763103077803899244121518719858272225449899967787514587916023970766660441333059400177251968288276181389025401421411540322218807522149313873039438948386348804885872573129605440226754011944434427123955690237907150071386106419858388879568805486335172808444644724813277238595610521301309101510626429327631624722285985257102637159462999401322655051880446573989800377544218462997919330400605176161879860265557607689149567962403302092035338230064198575121280549087681264999866296820216008393577425692390014509676551896830011498580395006624633861680225506687075912748319753000145540601541198078411349482946568060170741821944826942029145919311797294425352351393310112186883167800232663769195193898930495655963644304998263623322221317379586337527290159802676243820849089436428312496796216250016352996689304462584580416724907109041427954474322776405586064497993774815979061292220293061983352618004261179665496758054829018106894737221612026571626304363530228212933724508394353437096785432438058312889505278663565717128803698528454871495079856246655577931705079028998685971436459307797350701401522754476693419823926389892945353431902180169387585028778687970204616823197351992807669758651276064682383916960148671115009603845938820051061526646256272708637399471502577181072308962043626415525571521279045835429590591012051850860519983358295202764452425123577351536145132912213357834119671870758566063500029766458721899656846809835422555679769978615295831620657432073721099684406194608527521399720774602837961829406778265980996983586608974386510365624255625084235435456301512197111167328336550705832479172735651427694109849863570666188025284345361197742349000160410913598065825325104777234873758588466697858029999224197366504115511962816004732157650700516628984539963791941447196127536849638484184078353921949516076075298476708413827460440301770757999666767568612536105140039171681725678050138978371865837968976150172098480602272151208763671116355293561961304020927396418528693604726513966875563040087535856868313141286860922825551242269595679930350249011366770936403499037484587419891089018945705198578124784403575786713931970855498938099970654105791690209598897498738447272613724351806561649931638973511197033103939780409280947997343377265021224971434098237823651965892886279223277990394182050685698376711662377215144120227663379491737437342283179727940119374539049057971446171836025673221405521946218628591454389656234024894537981195596496870707302186078051319309467852848444202128432499307154135644230793862725265852084922694843993948530535272706823358639486081705774075169738521202106289594177160792541306991346081438246328669352312659073430366809538595608450167393229096542828854097863778722182590727434195646611659593408713448120299579604000576414684856384192084025832685521237954962489115862600940098765413585870619251136537194814860857107708376020972374659553114403073394942348448615252372266625317209081622694000211227591834255298281689971968761014385191901289880742428052835555332523257154858756144775201194680111550944054296573101936215959187582194822074756153078334803008549943308739821340270700031128588792796739627366092071269711513819537715546410633745558491963169175525559918922408979783312427354538417960278459589864706009528418086646771109464159843150009597494702207595874936960934892351315530879522675319228875193269056992695901124280084378089758022372721112814277158092157861903143823282221584311973638679727227684958136328147018276523616998703831654805714617520177978010749005200986222538671343789879848810445030271773860682106718234856661032815984091857149084770741257737215296236289514281939493449231002475529468768814228268826338199210705003148229690781270685023609679524561563176253784439086838854547176625054868861453885894019065091841015885208833696129877316727526919756238642760951369458384261852183389570518641326320252293139134838082128796433881362984553904237312857385590062328719791590912181710334920882873657259600675103451691730348406647731247285364986970322550580285121031458139716550054021999125846712475229623304794762041748357339651293388462598605466902068727431079892009360086299625852649556926342244349075889871207540557239177888983747400628311035989363975368314316379155350844599499815179035719166459579726405356357962285223232099956252907295659686256664761182174368893655265842097358804838235632703846291741042746340327640442472179196338923330045235292002875730135630382111728971331694363722061750858152029084972463690556676289218426265178197651953852464303642562032129591608958533598154070650245252165708822643889695532003307123860177199426979987427119660353048528358184414608549134506444317130866665673247447943228054733913760627581890428365658659895466488561709859023357189364711022191554480141608108632865265720250373477965869802896975687596956655171572997817414912551945083377949744669806026864318152342292431677632651015505374677709204156476462475124967230114288483953970606056072465314227321889583835501398502247980616382349453661289940409355917809265868236064198494786394927392551467596218556484340287163998424165640792243204992151935270942749255097209837640554799507636962370089615853142082854978064406575694610740124283011677091754088048806266575048744970010064481728170337185716876990520504312691267589423546424263219268161260713525593779984687684876663746373708483091302303187597551925243991782626402799661636709436911253008628435029788667148387735570095408509510925426723708716285087204991001466660693435254396813242277505204120843117783620864259137414037018939058491308853076718033777597798154504060045084281692653954942424173439682579794296332233121321810780129321979360275038885263104587257887904993301724937169929033635452907496514640560912754875288157487485046656478815713364324270157712065088264725709115452935541510645510350947107201788001792464135972138429948710459775527984274506977426564148834068300809230546462603894832672239604062464659457420252210842881282668896752789802434682655789626562663797453689109293468920924841097023571316275330238902076986731432584276094818388124585758734014097068671895618131122294700219784482415815445098198891529424289069346605626079565664394339342799835882357116757511632925562149947095183522331245810913158655773591758470369414848815038632640986605244160899442142372446731857685405261645960803590461604594774723205628789108869923420195755264555491518628810370985562898184920845362817607417557822466638790726046775548345174434818904968805637650325035359262713745149886240548295624736933344962330902739113708105840712372655403944406661654666981279401611743803144254583611313870018005106422250474212674953997075909715271031416553633477320054963549146671949925664377111351964712248442133833448299147401916929709782733048209657023657441662164041385975719940110755054813835675097536770208621480224769057593128457961205201060652722159599745589563929274161013544777148660272222807878919031049330486064234888941265365091980468047266792907970770229050202576713844368458156348290022266587224538924207586781264807425984310372314483507393491632856870879893530898303553843839500797078015089931667721215355785047682448066812060081609252490055065606882005394397529404297779977739095481218233882815997862843934489379186155563845847942592989490543845037369764733322568524240216019590447240163994449258915452220947381972857356081416294420120829692342136751905692105337359237781600665668763641463665790435737824436651668510493519577657907919335490054245374836258264105168437864450295918358983964405685936888263686371050276878385312777705665995603001572358237147154721905671426014336879664684364914394999572722150580428992181009895079934494421419902144689255392867691751039824675824637343805239735083028068718734460641876299320312170407048304612916426319820862850786951729018997001434289682624417807819162644171950445075766685632424567458175518591360435999585745988250355384667413282045253701080509023511484048195305888064160408235523512941281404845448810370856942626000271639230100860372142424842912649571956987321905242756339490162246454625934745670300567283750846724982527983673495617708983651654782788942618610518327692085036036217800339152493371484445501415791162505068909107138275802244650509860986883276779711832579391871621676788356224198867538683931575658977686520163945282738867440651787566006894982173557480744432557759069273637848180513357096270189715205890970811986200522767934991330405828456720358566472410588945530875223646183843964025960112548528766088662848307636012870066672280267000361494230261254165504582961699316384370582967507053229269109161196749361273729163120586368847905250952735154380622219327300289599240793907443857366909352949258689440107342217802437077152816124253190882271732715433823740147454362184333256802959940771301498332370451096996545320274533507021770370706113819105163588030747477081980826531951055240343461890804087728558871026191299109229595088225181920585188744198634862518824566545078032953634810263484330308372418113655627830193910161835174032238450979146875216238771442392232324557636410797470012553983247122601905304886666493332284863290538086835170964354044025686679116884443421694025177269167200542365879524586487291931941963983705910834659556545737455427472252563872049196484680456121634675557800183911458050720291040917746197882965048612355528726975520004238203818320764255364096320893392454496759815230921518947305019785351001529957353054281128364842365947435959609595698016202753023959419953344628208264979236079421886804110602415874150857519458061568880834301854125378195459697414236778741870667215842752231935277070188776280303233740286266042073050523785203542104257724425591404270087490764352482693868107163766930730372723741717542458522477357582702959966498541023115101387432370479915917879029944855016825586545153881254857425414604291201232285561488953271771724012262799441082686913997298743825568158111262387326261042642491914673031393240789967378614329041420844114674153516742689733703219069028747706020088422190321251655289117173856747773113661537343917519627079549216170937800543404578737896895794065840260922267066639747064746191485114465244380741520552128686202006717232636847179672315491533594924534289288748593176642699362096734074977450530705684314101332632877759213057623147008743738450762603058757749787324207140665136179949569456010819284319373673284179893518959542351970228934729769771049753586499567318504695098739662801395315247336067459574653673422509659501098766962373414060683935034819838271821186844060176157656025470113953735726783452694559607917709449717272346947334367803872237757479168689555204136215380142825486737769528370384142793400440013056897835562279860713607059660446853343332247081996051727615220108066710652379501907097493741821633529938651891700778898834763609236188052690600640828079713434978942759592887202610785155541123973730460975923178834688072538351059080021866044902897911896725936755213964729068579735073675718216974036670698961345787450610971203501479565375164166153121647325441678927750724594362819238256233629810375653289132823923222725067941709469131856699622676300847493329492377248202516805506663161990345780050296216095097127831349754974849708075014692861779720539208773557354263446540469175078783629783037122212634499537604587068254665673292775397228603678192473260758753750363960555755152470447904689279007417440809916215353523795515931682503917084115733894721483377058789369541534827316071703023202492909454665531205525012632253174142737294089358232313041403596709104925718383520195357751110303018937387366729568834759002804669015028041569220627941078976828096269661012137488119556311967779804681249306478374053162747606283458684716459438243677534276082695576532344276053399712987080520898985614420659347221575351357313531509643256863269976011816768872330904784738782610883002718765026082629252331944769099404167002640065555971369918146697911356778065745105729647119638264380698960233881135307214985853687086285871789268796297801608941639363012094163552302777342996301526343577512504135198341187362058334547311853807457268433720690522085625501050610093794285614047418455921179339272708597251152880056940280536141144924020924620879487418362248544537016734793590201500699089471119500954771699606451569340980957608723061167985930544742494585592763754265507909850782622745241428056419619579470161814101885939670292884088175071326949126451479245871388347220957012545376287115461358447101311323201495490944640147600030237632857171395365471490013555869633069258112640479200531728092117912870096788138937329594906876916230917822286435333405933967916024289327484446631559457485611320451783064649166224181324629576750918590298833323065514502362940434740549255611764221609388471173418957407199850352736698693386698517025739380660230279106280853525493531661945852938854013476198182979019270269975539762709721332077521428883136382794037795481043639684621695249482298443229689692085335553085317409539710027448732528352757362479458012780445503610606455857803573626252556360647734905686383246005882645729967286706470688197188048995918209538769867241261058123133718832815387305324063517160488373186348319448785524534021310596054326978736278990273623581526866772864841376321754066899897348826118601800293600223626158849590389381838347815021647310891383695373808683164369908798085930128373528762206005362275872876794657916805763581432409253055023886548294925725127609771043084142413271492230145550249153801165157010725991966088910334458778020184201986872557983485892794115791654898418079655981652924400286000892833089959846125154134736412475537056580724960733728968639565510344975858300171880139293408159346577407491687314019903828427712262333244605887567398385935007695131185563168457383865551229294080306842203625672459181138606350480155226167063564964286732345965669379924358729329116688498393642069797039019159319455970361259262706370837171360797222924483897365994926322185943095293445517054009459274870328435199388140267085915289496359507636380732347053462309324415095756918504808919571739191653100024157142935668690970675538485026108040743406457426342832522110207103450374538340721719272860930797090878640274037560341962032609518023331944660470439348005406358691029418314381980766263692292015196267454788905487300853342208815974032892535678247804572344855566388429936517859381542871473470540776250407980710868325712720965952470280931298490597903061967508059944421798850698316109638043185757349320897027921443393913428290098389029276009981034971675340055350266575485135820698171894317365218737272703866524342059269683995858771658075362930491745821027533012670236222733052137092747575492754032248665363239284288788071811943447754439431574633737742190514462638401483845223060132636502788451471704790583180583489408569494249944151554838633423772040699601933580313753449760284449951541090113815606641323294310535403566334982500900534136214959747529802823984619728367006210584613977815827467657982601784729657646395894187742496331695884228391191590565640228193496801758163840139429208142088204546902994637652059988197831754480127119965562213173244271608021931664460718450670245160461201179763827239211348339438798962905840179686360943255300650628889732392513616327023907523959826534893994680658059487686462751410940649931153419873217299143125910097771886869455712444493582861381259764637551134279845737620234356256898312253042059021490709996741603215467075388165029658639915531513429055133316532483088503470195490556744841010321876589956758394558238286883108141862835473194755252747115754025434804661774803878685983787156949134278530829472887354120431902320905952954328610661326976076266926611352114662527698412773408524191382685828095507583757875182944195381669964759338058109744197040887688325257374385618259110897501964314793725720708094058960553970982858004455630785998611082978451980399882309416250986802635162822807560816507048348964416836183659463297691973326645044332702652964407332608359487129720563680362999226922055550219361313094392925616898258938095311543481328951849165428725462863519781030237300349037991793076886122045326513181013816898791956784667866144331058014381259912791415887667170290675999071222928172745278544319176377518648854469055214182947546075537345606085563464203961766709575287454949012046603519646368735772929742823475054967865445927360627608989246978241890713669103009266781913030559195116956931783197540796240338421104664465240458186863932609646353033471129213154369571442206723727019032161283163660683535359140279885260953147441976705764010907530604721386570676654997265613995625908185085303045559284076141246522180996543530716318507488647893313715980401910580102425541713566189612060110697612033871217695362774814702404628795944796568929166656151629117736946184946177683166359452851171641400879610965586719421163816545789355943747416596019104026506996537608910884905409088076624223624452531328521785687211710750728725802437027495835664624563513977205964778734767213709697787437222222854441505162581475900160010349873421642873794152091728087438528706874529967585063462361565683806568468586659128839299398749192804509759935762191530345339640241628163756457337985969012829274187962762503806403057998223939350958921995278510291646380478329362091927804077150418730068917857381782537931265322695642984805750570433859369934339345604496232593724330435766714771166426205667161937773757701820493615978206551775960445574271401595850624208614320221027947003286440974985311949339722052560172438067839808063019803303871401082373702021780239991965948474208100416246313999893872678129698371396533436978063946676428600241528248737856394129279353836077076083007500854688366849683447381380001948099946392793972548092617557123230722879914729499627829318121179995311913933682914217080039171083920399625324657124267114807621873238886630273263260510227485587685824829962737856303750205262948831696089490129163137263488580498192487545535248873262394393675045016547689340206821458565566171050775119437380589413425696041313947581919706682302632423409024450540958834108768898805836001905800856199491033238845013313960419454688283590614806279170274255056983630386819040807698607465088442367761705462260845439722219403554202652033104455269007046882774582145696636674469994288417347114807023479517943077836152757400116754238104978226516996793270179099132535969256413102120317675960263679551086925989193605152931611639993790605221621826257344736334202630750572642522552550069625037213380532448446537714971705777121738555021403641091178389721417976354731764860997323702087657166232862736406666652522444844237047431260270194052932539203881245611678392260714780011957184750455611615250384482208269186674529500194547955474267031195338846336750475341192430517289055830639606427300931789903397134393158405916100858639382213820227170819247577821001503916384866601709081390913595334061901462690424095680526240107056477766184073651996598312015914861912479104532820849003769623579045204928147481448465817268742916011125678009811772691222090702378514866112437144591984668576309473751209424335200446505329739125167083018255429713022606746609800526039196275579838950906924319004737564018360745493485910179447557716286315055488761028672918186758647664447865962782729403999320990533549691384757430422035802668200501835248565151703420994311072603747508216434958854143210457355741980118294006516384590778313094730099299395418271818059977319955225376562352261687988048284720314958906256968944242784076171974785212111708675294460367053355570333619526994064352330819095743708046560784123500619341564951004973317383620400422734437891578965349586115919181358972444956070703223227828015791485580886632670092404234203139271646896301370562218550399034622946791769783297015241275735845801308975952586398550215463677050900703329079755832652569733099251994233523426743245262878343487803932099014786974131728112549644590427779736912668770753379381052959792195600945196472452145664478112940888425973995022893156732048900359565314881818133524884486986948006125364742775500050420404621034425555880866214425237932464586130867091526143968878163367734969512409007739167264140941242164561853646208583805219480898873774634285140004397923506702424670667069730792355322976556684570476290256322597831961833397249154695255251435143479730725058985393503441430103727693308287010755526122132379489153242485015478457009774568367395706462453231678342716059951325335038447646180452988910089257614236456892093712162335777919010169852746507433133940386055838356051252991146475251049740083923818804095246656978219067500774512734041374694859890324303842177375760809258836398494285249166123974213403066399683994573153145921895618542973694163929127458660214919325606290835478894538705890991028776842634490924275819538227715445507550828207848836009388575040713380643144643510663577254200107215128214873801278325521947726666964351963995138809766453243327235576842641531380978229804632131537746252354042906035801705619274468848477598491780867455498329658519534616200108125422426766724465919850037372467000945314183285138022443386726425015956759211414749624518491204720646756094059335988791797905900136748853864506869620656149908349682257856811345564839572728890376856473485870278747092443784170154003374569827482324692217767073805998507558616687137871868309680967655837021661114077220785221064026826988873072896051684378352036740225003301294220879972807335520332084982518794763661742905528375912856416497413728193651143325413215966544797508896637844058341384482455733859312236750877569174580777066637614313837033604334586746501571999949357092631498313539476010997460000053765814494573326745861063304932150297383939354427370993864150604817313381076058253094394198785753236572332304795924957505802346554857601740783004076489467682586409510388043743992695534150692609552099668496362196097541990256689273001830398841155263548758410191862585651958949917543670137752629621235562608907598144724510634531684374203926963412512254942553244660392238541492180254748828765753640669566568544990494814915280503825352855646720044252289431463574597056054132111347761834591435006804097516578939671178548516522920677835710752551395314528231222460774326485780214710696712582490549532520029801187432980385609820847498781051624257385362174946834560794401386804272597372177995976134849268369259049454472854534855547672855092626966333515439531919926209022290117916503540532053541557323962865877885010012105094483643693554565652987025104273373112703686432701853930462298639018498497790852704663810074106064199346768348792149018237926231535776760045253983094883499531297315673811035767138095060268988103260660443176435502995330743512178353637422630730894118909833411963860551522024968443939425305314272823845197724460166040399583547279137257994876905630996389204706293760505652182054213457997735548935383680336528207608125148943624690017425014836948910324978639419114600540230621618556990861024673154864609880202781073473737770491883439815296069606171715477091558045391472137944886307027510625910079537399951394861744903022978921815233955882101576496402094591940900160611658741111198073433510338190204012029929324031443298771647219418758925676345923219909229015572393372888607136940617761645093456715228049982747509278302635993198163991685562604495679935194832038447039650098998538011265861333379477552130328891619787933732768447413283162153821350502232982479519855842530644062732756704048542157953717334383013657922716976581525422725319026917215835634790655014339322211845457743373186545271855941021062294882520434730878381222298316872357783733734451559948232923392695789294479982420094939266427073943232747132009716034757074410728503079630390757270283805020959161755070005016627792429318124505238672399685851931779590388404675565133255758214943153517959498790175939954018699586162066971538933325756001809207795785012715852501324370267983815321683151058802737455893982251650796556806740552933580416458692852316528925062441034507254751746696957664759912065568479831778838624441646954191913411663831359509426984078970554946580729459831838654621775210631145510433633536617757305037406342920891277502236209418309382037942049430183256488151462174731495312272496651940332666946548174825341725229124749705114616160054281880540354198947234572559079014198518298148145990271405143266071026229634919481259342145337898724583097604861888669585130390729173392077225689609836520912793114821797475064465597613403875759224022396034735708491833781121498925829532335444378531833361017437217127075561619143805327266024494866847503438075251839224592395717830234714190223503503807941127277487289504002308047407224556001247620731599212504578861913386499033912685147243309106085594366056248486764753301033636598577489631546413465281763741261581100781736701249544796541160122490093946034993309994023927494381350400802944899168793936676108675503546923865708941470394616477845589307011895036016968430078158866532913562055689169725157812754395541621519521053001313362218719381457197443546784636798831874133330551292210015747304782227473543623380608200983366453685586892563315746920243151683123406729773141705079853683002114655362735781206338697324687906485958758167228676488743765465044904838056518022973211179540565437944615042021563406645608062174908344929657888829537930350472608621682320154984933606588503695960666607613634125466771426576696693825333353829686677801855476375874137561497408516836293864444543728252821275965733418806978040386375624321359353338276914364031872205194448826998998678043790503172651953332428847616800651629802990750232478834434240656782881288607696374064960256307156567675052037053083913616628392164184509828446743051228444239833464130153027392175042011926614572750828139037673363576392544605297160176537577389894691397706717184212302966812872049713645325528993086401233052322605408161138788925319487861723276315274802047699701084142223997929110102895691963294280332770835352538903514318588286319374292654222129276285260042254539799810059553667839998923929180915038777361400928153081940786066474842382259576352851784924147444843684342520668215659669197697288057366703621563551249944361226689330580394804546277509788735672716123758257138391394108724319551951605337651555589253551826979714756066893173531053191521229835917302302675839274164931422439389744310087449119622244807371585249475527582841371687338856845139719357174351376651048952390290170630927122646840669278348399886285959423967936456417355871840199018757254634606762070626278962322034805371836351794691087763851991107837936690226478961426528198994989440958364692651443165658212471792078920335140593667828494017798965297981505475435803177585622558690610123023401093612955353576358432997463079288408167023366788970128145958847428199428749866143771185970104607861183122285674946913190044825643028262007248787525394397901252203517990670108864444173332942703850477762959484381499099891262534888002247011268538660594376622270365082672212322235157255037650385409525310175758687338353119969360241660039650928072743807137547048484456886848919687212310981990987307479532054140103959736196967523052442164056190052674275993979137268686278535430551791257504715766018492371822393484939196929539449988380196572662503651757494033119695979411721257623713831651147962605579178440278188122553834089639827049789072574304430334117910810905995054171220773737974775030368125820309958441194867999857940111713933242395262703619927063772417033978111333238271568277342014790547261654340193226714421801961053370502633374273190455187948713485249862668222211111318914455762210422898347390349981259778110809013186425670889103674298030491363651421324982033989238262331145775400763163825126866684850315841111141155886426790721346040922170507459824720702455243140352011956531392458331009142536349587897907439371365970955272555666600702420283910074594624663130745446751130599377751204119280556497291512349150553278102298643060840537644098917444310769987172760038151634428606521830692100917992794170931936294247745806817335335970175989328603148532015687697915652124189670040309591727757081603018694597140799824436333287543192214073599695262683038565958452089565549778101327453943408643865269541406604205250151308378086645729974925690376170930028161622503187003032737144860512516407239007008823823906811473995804355590351241221823298274366777890385385862391814781588353258137893191305164723901590515007329258274620428914392667534952154942924092785612941425869372951468931427054442270009324161093344478176261888491644169256081359077579447386206015924040120633749989542529116340952448531423182474586867921351026966287517052106460784704974666154518814151035167349815783088805062902524727849132883585857196877031633009755390490488456644897468888248422504227410769069154782415861985184219579094591392694553934970741708260129913613729331990899612447611270277043889271701723488617631963685024672082669876084819752651511784683974330831726048785403033294278644360911489762879741302033675392689318594580161832917944010095832498058750645836641276952928598265770333006234582654955532316653230563737351219528492148963929423810595598227092759973032994737505687449872812934702606624477615834666170491626975717975872429291141879750748782171533419974526805573225600314170463422031897578207730237386246978504165097975844527164585220435513975928752950895465228066269694344990148802004181186420397742204042702669554460329909254959435202527964887345800543458468494529753539158379291130570376177366337579523977108739337954733211854879061926854224008395361036877899152210452106502003800518083477093161510544129726850899664228246448977642323194767560243809769463100168877605725679893692800865024874467608245459575013283810001229747305653999137661127606785834512958030384050253041663117398222113792207474393966300340704960764328821987339877333802859793609821535465591007243170971570609710596868869066479067951508101151970513635751636112075963738637573858499983786453057903044394301295041097437837274732158210702226767570396614186087744396909624777614298268125725518207382106291429179289825779700233074929888582353993193563942526806194864206708332451046817067040554213418765164192197761886802958921872436739129792967021700260470795407599880696538294706826294750079920917805450108721318367103021403412399398867410140472913176444209080110919803524432113336535828527182843262367250370024116259482255974488083176067370154856289118665446550456305213779045057328185120197966540943027004974463254612122414112832936643794032198447927665610927170763559401220553590244673070737840681089160484022631613165378822613062347649322815522919522340925183960171495570625339301919067459718990077654358539453730570858767339377522556188759086266557260714813602684304809463378108948705332533469315286522818485015039938003366387897338934112884345773523321999762575438761947829060841049231708697927266856501771784535760144406871716869009528068034318933563042709727787065088633337297031001593202232479700410181494676461336968844790945361149017446298974932300375802531917695505241625006552842611437307622654208268221345946753703366218421816566443477572096300136885151459679472036012139399463261145414446827526486615867566816023239217047451257013486590616430860058855687920847833606246304195846417470830336606533005342062042836863188883242668160351752140074640269007587610894794635150844959617000501827708966824263274755293913446482687560096276222425072962721883787469558539680869873126892374812698135012870259485298709385372271299505563015937166285821886591605207403805726033045131972167929147718675630529355727688239029226621973058048731140117530813389217011861801173372514366353087565734208941704807219335988747973642686198794102854212952941043654806166646656095350681267986083772342685220615877477450454408597241235728136293950248772132291814474603528240905004010177366269864170218167035181897467051204279605436662794521749414856486403423375959054906013609693091684106291636794689232189120912740195170618038721228430708796077311372544130605417298995054837882772704666386419113779886974063277679996081032755656287090677016148581185167152557206731092594326602485559388718412430422561677461510838972883424225891485050847290517606189977758300706565252084740820884217337391076739811488077333220165889114100515854223884063672865672508971288503845294031629188371445378786613054000917050111154718543635583103320721198133485863115342360192029371830435261690844019550048145065893768715238471241858207056441353048742051561451208666809688655364730701451711555839964583567800349094903932744514411779916379631033825445061267296629820768928347383482756376171383960793925089382875193889083742482839533422566401300588877665791783597740406707501771087193911457846825425001211040115678138129566257255109176460365967780579961308628200115012516792484947604849884203733393954346866859023545752309540738153041167591919640339500823221212203194858219244347552933753017393518181466920530067683549832608976267360301178458554875270307322003532412239102967066481671955925453221347824974025002702748059981683762141181833876083487925809813815166160414642080752020537454958013051355297538783179556066095345275028999528430525995863149779903125995926852386759975764413602257604706511987193235262649108130193591599676247754200546833291360809332318453091032664269570273636886158684198635589869662161263694234626987065295164603659088977630943695328921497180259712631079198634234336833798542781592437536105952313676705884251472686692596225562333882544491533895148078035316009623627236262932109383812134429259616897760712961096532858126385635284069187072690950871990848758805976806154343849833078622373299505385954465287258009173848216395247618669194284409202032528586359734273652108417792406533769948709190400653628400265799102780858816942811241986780321267661190821206876943902568983185502950735813628332588132934978756119965706477032335460135933015737186998527595278840155231304466646700704457016737473029447784258379713395798102341927430114166335631047200206230346672004347363362091860740637938741083779837265910226226628166836817461450888105867940209169623707026722707855670246696621523592324890655654114232165300123066831581370950117516497474177077104786711442312703082596497028065230972652259535026093760320464181040128257029715290996630179728749671607818738643460436560312600913080199055913449698243059810448121422323919883233051748761776106038024224869336078269834879905318712019365657188113798828547000366180337646164180800562110656657135445738035572162702066987066596116302669281335128597234227347404355045030184366157059758602591897297176293782075851521436630058441375435301528736386393755920249401991229614783120533902040215249571623751771392074048121632069561687837440675142766118193570409262254428125724467479356699022400016162793569997737936222932889951096671881472547244744233245083281611358850626177813475226377416689306796189069817385426207116834520208661722554021513152030142615363529241762488724019384328470314533568553211634603241191096900498066163653704830044010118129186561089746980695576919135851555938337915890679818785736968733491665317029348327448262349678936713440726772268408403907850447337091690161948341749284476857660558238949976266570726095917281026112370882204240489674179817610597121652434189876973254051835763906896752464304945981403996019833681862821705860733720146993569728500023185154135769994130028979845463872060925991656750042574557721385582160662381881843260855908648842305772902458375483327194659221890608225577193031024428450880238041182458745459540599118793898665243467776067162411186100101040907349130306713696907321594348481297454532146506161170158707923782677675224366356639191960427312642890214401873475928547074256703449969176752335984781388655657058999833186012346150364759381711586038569704789249935904441279760418898209130348330214953067826196903024060825099184094962411171475019366825471966844473398515303878500511069790200649735354559385757078833367688924611079346271444198027290305966709465426946680003655724825053853726570034645529843754856057664365484689591987032555090859093742098048624130992674323728635611761809716368736588525875429289986840706674091310523331169139017590611779084055504104097301267508771676860043264047173173087489445795368280651668288418809763876877516772254015070039336937988371358231367550158528752403375539868709478397561579463085259914621207238560952292201024194226436550096437281621236592956492120341931085580480579252070560970733110036108725733655124436397417268775153220654225639339142498791922029924304015135326183042516398217599879940327177063065296019659466033166091932252139785174202756045328225580091107055701608519778065710143163012118809125580649860309480491466761077207455026345069561581532830704419644626444019789530416738083329238465451537251333168403315256389658947110087988118295323646800461339453767014912177042821942828505066221884630508804097835701153266549162552495263850962757967494757716034923473596280176155626743906233034700445381194095286975509385806797026611456848448463089914943151524881780244169740998906039084394418502530473572469373056161853793406882946014254022114233731397240857449458623776193225518556891103646376840705160036061406435708118477977704059956412001046014130008907880893775952957450476550390531835991468545540757025419445358817282302171840873401560659477066982172966386591321277165192516662912421600260824045564181828242071555930414128479212381485951448399656715057646027136104073454888170722718008329681401203966223752409176259305011964574375389928646189021874107501694155173074879655579434122134018619457111141451434767911050873858437954322814623925103215251780610220029850611715115229246844062336709270892264532410781786234930020364861529930701368469705066369587621303871918496736262861287731353077213166220888069011784522319949365322724431774790440805210124268282757760576852072110323533635517332228465853855790725929976584978688690119345292746422752555850487824174159627743927269508630037391972324328096423320985806746974551157236703879559324457584531226002395645186342413700109861502651950965012763338281967365976435594000089837050721922683756253424579642152081415381403528342327457452821886539984540277441222545229422654145010246288388525706463919904127385863747237719701816615015593065525804024490929824495350132778095325642634262634327989951686692296919787694623076382134287918534016638265861389810556650674010634208285394781800204536422696790163479917796814269701962431418370179332392082069639114568653435751789370246642695952596006543260916042709032773341248793762208978545694318474194345106203974665551472056170610194612226866815969048383942904309928316773541444293722192576392177792342237733971484881819101699820182786211318128453632639843862156550967765319885417831855867415823900430534511707373728672801882335457853069599677880674179643009793841325405448123808319030586540851532278542313542837423537587216882363220550706527064952513569636752121046320641843223935637795209989654547200169683510743077019398841978707094769498748642008554707457267060217127409566926654314383377690240131427899977567787241795713572230606323052385635147631325572644675977337769862841750940339381216921426735638646235434020669430635075139402744288976582370030756493010657345186982126947578850411919613610460934316440741533743957724358852565023137809475431957730545187852072098638611622730433453295875474855127338327972219185035047871897884249287106896182108994171586776120838015161888651454001285859716463013644965160551493822792834449083767432819892114291043106111086869216552792079820164932937458134215076551187848927673825487935117832351611208551784108376211752815007851854778186076794286414843233233191097266850032934128914045858204431557610778785762577423838489931572373959838110607812467786358556899652736884524094252870459643592076057934668432414532559635624874882117912081839703478464175492914224861988169835836819129231902407171295700076874633450585460536189741365291148748788266701276631750412100720315781088924376640367730911755309040928171196136210539234138733422593767876852625713512243413482449243786331885276827537431049035445524214357136931385640290400065699362536817799187855871844730770582529743505748664127084654426038472744533183529848936838988978082890186230744840470844908528494030394342955463852740854759015268816000374772522811781161157423713981950740674175343184146350544342438357451924861158088003960668343940190898737819244040021983228452076515479211369255074787416583660242218546219464307751521861355815198875404635517614095905437385700525013580939048596721620216069844161569078771684068127414376614091118139631085599151661481079544515324959921366825499632712373562568414745414312312060488195654935028235797994376777571835665900690204179933690917282410490623132712442494160142851609628077906360383358414199270915422768425817749922199305725803259512377120129944248407012279686794447341806792582657934958914767888378915440932631656700608894731093256105619880308605486520877456454524748535315405011168124284749579043721594155394367029071257786536897542289496401161850244371314084346303543580647721271143504313625484386609243615500319651085500509071583370415025568891024584004181933520252124498457167679255682218023266396231570964589079686994941373432621181495473897856248821720105582789845333331365484894508887856751904044595926531952158119244898113529022134550383565982719369493176565781867600470077316918164550341947667743801815903330993025665956668060102509265301151501606224686163897193090214321417040021914577268584078652097221680980634034097430869072988223097519519831002986126704890817788276877579611783302232901846001907160874768423152240507743607793306997142082661884079404692580632742472750415657425467147233099626039572865385905528880059112225774689762192823890406555213719749452232127683384515514576846611277668820788347588586006488657357631652755699941191083466144561867068127494633928642736615115589122408685970789270075033942198758365359734300410695592267610355330599310591763127935116297140796065012532936194013665063079415700502111880435814945337913208587325484304636596357544534702368957640754770441557149317686793022777531198821848373019117862893069401115893599512748299120530681295519298249382721477955410129443773451756425117165262161669991858356468746493579240977245513328023629366757099076978525142266411911935854345013740960793760050865528342280657264780220420613079516996395332476166228915466846940969145152525634154269767270965428923669684031925350949067384509020297243180912312701825519513834600293788217620776766147017910569870953277066003084161810592065874865600514839521848249925432548561325085851974364170725538031964069280715632213221733454518766155755263903183393965684200294607011191290037403223439767010625918954941108166177756219216231211370903139719951093000601030071533334529015978893587985958847841800525379600879834711092657875489541907538610662201899597895405934378739470638423676775021833692887286605278345445220240580571136296007597466519777111126309694695034238465105314336670951107606862905878290788220871334642003643903663329809885008513378149631661885771080663125580443242076986475122165823616208346814841408315252753960506270666965263019025938487440341266063574737719247252151652293940669552453422481299918326565944237591205598820047286420420670742228727590740971398215723796321454991672967308028648644840683221903368490269899297102009204118657870251785918357505527033476887756385854627396075099761474005721928981829667262012031145826081585538269222510138256110254294430679624364008997810054400678021342767076425499259367101022846748662259411752940516675558186269417505939971153767539966509833016157369709227005573096959556492723851825757875534178887526397885559646244749232640748216285423380363359493748995268060167541421978835090237310576875032819182590521253318493183061007022026785805278515630243241955539385657113306225224623414797114479325789937362652202228457992303460117710415744094124681972950029114139867615503525998194807352391545285811182229818156494479275635533223506290496237602188857729408189351450563943338935339776554563408665552826581360008164633345254494845059555667051631077088725052066260225605736292144516747211388601691629300542051242064155552724019455873595097526255337290938999075288085242342552687896232612745355757808171530910245963535539481476277196916419842611182758862589058043661548756206816374340800476001644198438029373414682867771761604142854126064256415809374396159129242713631367317761244589933859177730611332988466552457482834925231194587069989123810600838202270265985625763339190336729400012642906996683842381794361274698665931896190453222232936031663296014943687182809327430491523893225625519111473007531481288072064268422269811361855201544798087601072876094502692494540614879525977809863600696691013778141234900206869198389264153767225517687495152040148830312041130202278064596458948058713779967688734939187037982143916720645908696518972256916985099903102030966573633018772157910787814264457256174115841858776996356352915766115171611755619121463772138011365226362712785035214533306584240427193465708056180564286269988319327273724685080806372534586774314356471343299136108458711456701768060241563987452403858336379398356339349445950307144276942139216593351516100280682600186217108027589909163454624602269858671745423109772973060195045575021217866729268633665125807105050017472133692072698071927790633012919033429182201301171302068612463736153617639480556112267903595998345820736803032156050836640166915464026087260506651984907574962129633119204608642470105996627520406799085211118873939526222171718394567435843662502594075677874552068831770210182263928929333199461895562143393987537774182334907763855993540087193532155781063434926469216680197306958779347172225448079118111196392639276480012351772571927478830578397113669060645525433191903222891936095497184324910090454066272923850274056338385485901882681494358436458439802626111161717658428160979576525067876117951163239926351700326195341509297500553404886640965835191659794919350863488219261598144843692437545565112204194805526823075332476974088472778743545235927210880405262583536868919931984460989716084467426367359168005528478634062691271721731717560616771714634755616198078843903113584777164260510474745766361438320854993672197457399797866522775035398061891408888385909321374375272033623025787795610472928563860851309157784649600087363339203104897781691990454837211576932614722101693733956770865691376111086915327835405568948605071082295424809180558080958528406673528781480386538021466467571438965475808604345129553935513095869321108629931110605839939424965760106574952402644946365524442407305990365284908966648040467945517605689027631717191876872772574890336567177856382321653056921291150503264128157327075011383551978930940891074880342610908827414137119409123094371678696136360724776571046234861504060685470464577187891660382140143475097305369103110844079695504562377538119827552159521365018775633970735439580120471966019512882510545033173051621634109051819226052554631226435532259295747572882001626270808236042444590358136199045960449167540375537272061819889995147771614932760797999354053231793037435275849954268171872137473000259335615361921111292616389162184695669562033564970596509332371688551878420333041807503066505560625174160505262331664091925223825887095521890288129575052171165597917130825340460843307977465476881666919681447689732848391792177677642710321517452447950735880763289054167316031811926102417003817756596118256541525180967987602616343017278370327961732925081347047654857656059010727673521385459827689298733297583299446853656599192720272312841968966632593594772667223500113719502646730844926286095985262052240952182235920031470698269779266722504236559291924920543503544423909408805762010504653092697731349410857279976380113049279739865584198988765833201593343961046875079635201784729873173044084272669658406096180546546563193025050149598884019250855963188092332801473038791291957958251012920437765334741089180758072471272402761666296862622222316607044875229214715071461596077335123827216691545527291307887613670400334477105207700594289972711773659192429913212080970648963125588439119442642483455502072746152267209925644565283467989949066034174136847615577313440734698003798042141226713203724653210732173573760491932062755646766549039130286899780152779120272475105329245955273986420662452957180086809157335553970196512931004832314704135049429359651182657240498204431397567031470537098506131461559915459679080382063327112705397643894613068335246691567644480584790531856264957839354546836297097508864072557823669299065081270643207674253904368857138109407458556596741811348102672978012876597705816267284575615932812660645753286983567541694373351718691544942980395328095625329671764742784192171054963853414283219862148618952679148304004542302437244624942769588188513047879480515092402218472726874326028962048598568318074375214862909921339139921806953807443634711062302102023990801664283121979039310889890286812774491398778160123696349353837904833738861649739886424085640388600121735603712566302824193284413937152603550255365006846913799512533015708816931761980595766096113281453624863814374708137609973392793407138710218356044379465595763210859726380561131738627799618662828106580006360605669651605002754632000642838339900470686106215897801359187080238837576895579111713270218719138612446092285094662178800912356646714252845813168832334386170263454531063573268617141732682521099271958324907832321928980485122982303379378592697226931958950333541260677636845192027990112943513290085258960490613481768461244818586345267324944123950337024289552856674557637765483130391544907241744699033348963010326960851264053688782221214621521942382509078188940264353675156891044885683292128360258157480099845832054876530840824256135089359722960318588388580383581856644121538670876760124831010463084474432188014479093367474688447856414817445909124539810323008859206371015635875651643095961127396401586176978131408795073714288317760436689819626413475006971940565195045505167742397940196899862527890085237445807328867069741773963572545060985423456789852042507322860709420263948418286692566061665444072045775683939323122654078124783166688018030184225045200535518686848505584530852538497542612057943053533080747750826496088529445572785003441395589379335051184030225298706162915059642259996005856489572336531798691366969944278665789125256846260414798110865685571739072133078933108525903333113718587728703492627902715673291686627166749081993182583166832828500157570780161193169221931514754937755159804654092839991094937420103717085608605881785449005704104136040435137642468998152680609255401123465329504349180537477356166667104692983095678920316482063931739221248405512034780632111316813373224063216455415588237846091942738088502838312362266549744300558099898299574258432353764298631465635055283560477090757473282636770439630979234656297949344566413960851464371303932136774212470904452721540687921542630642597260292018994655298115142612604900763867141730235727276839041559723450666693866460588292012471144178831782234821533891876058363276181819433227695553112581904847517462905620013468996440716198232054347184611020511315550930226825107491990149608178562605108859036584745150376384915134000329516399106219240557283008103521761979616832213981692408357639556211657126112192905087163255258558649616638254193591482181876195923292056995506376458182685575221152787011802994335467415362762077497854054133303136335423682410108464763749063885279841490076464697648540094796358954975461448137636970591635699836811987525054793069353207570766780148447701424716241908166822490074207111864881547728917186535967765395799335033427282146054169649600984706979585592643042870363664713071314782330611576419913222420646099898830762685836055527409904784676107604241784215062851755735299964786255295428367429870664579433758010140740211618614484329765744263428528704778556308309631435278783041945019702946575777732816746858087453931603937253315899280579434631408735860861778826334927746151184911655130681846713677348823341085136403947939208876886336339461382358344794081569610914293877347138934237736191096460564244474779082076049660271356168954106444832136598082938909729618912118342914906163896386106937520895346883983344467189821243478072387407457697554507436846747135024858818399665568196344528811941833172636825050611864900394125520574571203603557802514190435267183721921384829905803224695842432315898443251039654435350535432292167470407786146848597625574461535118800314305699549278471674544972697612839332518381972223283607075227812928130106569412629487306342688373381817421706086475482763942423914027532180429519034116351704698074233515560578575624509992532017874996366404734770389855873065076038709977318431281098978988208543559550943253902371895216820233442455725753078792633985509016455942373396625223351648750589556942172972448959988250892321120347958941546546030378786175915716613988693268737496847305496532937821475648105793808285300532447080506569294223400109593482946145390788906616264021501307353300331920745637263770770999399922886212243248802062634850888530360107234368901360642758142528398785949179979611219637975765192452186709608809213711197750008781593043072934488393095757415924137528597779729189345385050803831986774590025186579172370808574164297153807884060713068680361982419715774763895072534684045691927595319372237022290155800656076047385473599044779967487499697694271376686955331951253377640985870966838632639261649456086841403745684207194059507017430354691821509004664939985517413893851975731215682616228622318810967297476060130283311937161140874727067625585677751199566674861519649129701933180849941096181392964927893609021253544332737506426062429941203273625582441749834509473094534366159072841631936830757197980682315357371555718161221567879364250138871170232755557793022667858031999308108305763076523320507400139390958079016377176292592837648747901772741256781905555621805048767469911408399779193765423206233747173247033697633579258915152603156140333212728491944184371506965520875424505989567879613033116462839963464604220901061057794581513092756283208453158465200102779723561292301260586353601164920990258745552140396979115340224158981324505722923233213104539246998366112750916134187797227187025774473612438851408346593203124872819298983075689239949381959832188510322875468017653126534895937994644103925671627137376567097619003782417795264140347759263663742390124885381837859047291046931988921561079247143327560002901718628542513963400457589817466555211460707993228399619364911473121269194530146775562326188225474217492593988176676151278888782979077553435112170839901883452233219690347465794550944768920757930691195466900825957171675926318703758916638893288894184538070029531880984810299724248092559155043938279808620169832057636310256488683733367556867575147223393786399927043705993835058859055605183654797144313221595382879327829489096701746076716010803728041034848152265656486364842824541104899413015270893607882480630118099269149851590541025574787021536788477842551734686357723334383406417589014470201880422018406000125079287353436837527969339058758306889900098667627566062713589954294693088070900005823695779302110886752430263587825512056311581937384231274168022851932522399589298184480445579580075384356355445305492378712540563814234364925039176227873471242189196891382630673102852200967908645711771653120221399623743134479085504502900733349918425261109687613808162888580112718834115417494136345138868088956782270581343850521480437693859925257885006784709339973262960295107668375552308155704844481375821327099188170402812193272260910760537489356705632522648960781514355497738488557175348316464621651930420895107806278954949083214378973758334005355895342545737118085623018544341094185289551309575967769582402181954345544547652471426683189804236684167240586428806533104869216127255054109244486284236046666396687614710584422726127481196528881151501048066826334780645290621806805655179629838189287150692670342310883360220256883230351700321764395616340505104257122581609931547519104362633875885509204845150672483875544944792855578632597746636727624655764572031942833404210303615883393384420146786723327798492220915205224772751087797360418348658333643140276396939107072379676387708089075460319191520078841614957763735486468184411038424165823969936822816403630388781648321432715341952500755157175292986336936738766945832516519119546578393646022340789867123877088666110461362640957639919655620296225771822659622911817677173943273852488446362636125648422069299840509967656664801226976925863148887795490060138494246298656870524908014301382883362081809730884634146320228781445746837567593989299292090446482599656139592628407710419921392541826216743024256480573535503181260755295068162462657195556551934687475933671778795880849638571301299366702600290205028254401101143186684718579896608518549500279117400554966044449177560972123161383279759528681651460606165070491001329550775907480344644581792257388849467331106987374086277300755104364314322382840286428932814628494129451646668272570991639671686030409889616806990615100501015735514093945990185335935030611648086858994954553660682200864666546773191947841540987210695710321071144350237223759089818666687000278406816137441506830047470409998812101510850728768591415330163221058539738262003037798199325447725538193050677527529436069455487456670389292835759987060311075354229668678976635265494847514978702374532535551517383788757112670904488589949095301929724724501514160222534727091195469228345289773867084945073165004855246307999859375870927660472521264530313410924227364570617666376401863501013109855883578572234566278902174547966064256155068710432324331746508982741375939327951459666246263106069562338241733531495789667839414023235727687714874249985215878356517177262566127223651628521628785965136544297475171225608743258477955758481001695365239434594250762142849853184462962170639599047765471075471451182450446505583958836715200686860474768340900936386274413389351546504815799444149800395263671280549677377990138107674763256494582446302859073940700718622789615490288327208177365315381210635137386345433885697553871132360789240995274359876785129307423363141747545761075437101737051871802911759656400685830688979190440032054233809779693437041277550484212349571539105619283983807504750755255485891551297546342542805109580980390410456235730027837389659024508210171583404519906243930056102024318330106572246135885972642146233262993589794999799849549745633072618602704025519897695432869756811410269434641010304056914564954930232519590739142410385277418028124115748491682596148011008863334060097212534013737880714710848264355297871752413035971745137412639524466524225018238115325618644350302819368701051570959016350625888560865041911092664880528360019714848523503489436822480163517560279413987818097589446300401450653538036945577926370824999305402545221006941952661391836430619404877711927593858185079847068077663009990756829688945546330458217004081784094780894083402972113713962288296161651896185164941613681271735949944929017961518733151529264767529460607409794594173811984172159510344286369586923779675750718402529991076639883766482320733899862437353314717542551669599935784294622226754895676998738822024221632146788443961752511108071077724880621886793651060690002717599887418465075313017503604312038278079088082811695185612913852844179214562860596143135372578539714232629750984162528567115980264921535266745880387391852260084102754456217098064161581443311752576918530310671409437765521181005597359666620875330887224791694986524648552355121959663223654920953320805703351166273141024824030747071276006637916978027523744847892300743948204720436019582276900790430965465881194864393720769977854684654264504725356659166036168871090841797365879133566522911428043244268137502065357122197363779612286565768688671073551432572912269759841774595521998000246001104706778872984910736346536070703377015669859435331057982819037956216422642878465917145586535915719601634754398134377644375331816548969839780011978276323077328444324145093208212521715641256054005736614995162432034682607678721939643617137419822472579442147975912838651878605480219467726492607814170161764870479947218496410489568406951289628865456704223278939703330931798248392657075353760764908526776373437712717981392786967113257069622246819533936259012742245305381441365930402446894294008222746330739561848127336284910327856850352911385768236402571072208880447669630028357030009924931763852950304089197422291647985562167570676527156627792939307319716435016137952607895059397582935732352215217000108351184752051655261225239868171374162475066366990644839218127067500391619779986318211199510227152971788053425440240321868144584123751856983721699137131344773738909928824119538001706269856834125048865930432090039408943452432203058358047052999655904391642973642698721404293129049015523275958507902692457665096415007774684878886170454869215528316049558407528070920635151616321500593655176396049900364796461220865103092840415758549979551371187993386237846448651382925278342265933077777740990195162092569319948623908262037817707627039551938251780587117737380744242739433265921281363945383004553024179415631399346101913636651017140197155995708024238421303262215084377606114926885700045747197662478919600303333725528659943094199504506862852949106694833172184221157550391183899655884047861198855920911227201441015204849221790571671805141371206884120463932961125485107911976689009881928379448154669960355234923886259845362296456715940103452596065982286081842345856104717930854972475406784284588843704639739065773262867403683941139595862633458467045288738639699574753615306929447850883148449012225003386776121522866927603666764860568529417885090796359363550515585914503371560774038450172429909909215409716738554049379303835475199754438483482505717880819340093560352443327169697271839249352823675641571876861752595644831500401552963859998025886519830126752446868856337502969660706422589532283451727293386862816326267680638377473627517594594272166394703003976640189437210974729981851186907356240362374610461958085377896644842539613121384640425464040441656551124879345387303664724746330332972622659009748985016809265452536662571488220342821394913550028691091819428597728472435263727367816629784338042832095279214573572380011707187593489878936108178108210550127122508877928686600748991502286297027061839006303832673313385695545704483590553500607397050837156990675847554202174995088683426647711569000877853601592482872150280097010703583054044855973882276809065169305050078027523216252935291247475240774191030189363033712341211850839508658846464502285412734117145346290090744153005025854827586445529961278337782026239817117908152983077095812534533178977550733398239202563370742361013090679121025999030109029255848597442405949765949630327899159635309568832894477885552180609165010911782683220674524633216259847011110981416593062754977981733940705730642637473214924215086423336407206723048974642504555441273562690590346067393545480925566444546349939477361093625832630910123467269497392216287863936535112797072643772839452659443278347478579339402241513735483031764972305326810556887912293885879178646094703172691555603802280773868901029919273359757023781925391263659016706270860597884665085997973359348926470382865650861766953741043686806608325493204653176787330980319610512402799309530864701866886033471558324158960416705354475526090702787686609137595871544631630345437726061950903265001028302045761300468293648059977619500346167638970750626882356067252948912202197292015160258683939306779838319012046320885844777216789272669134017242280348558947361341223543578529835077850058122734147005729124934847454189375769264019741048188010668638154063182522305782153384397722864233181458641702277018027065675896757119554399459608242654703576099658266546963955745024446403497040494339924668068603015644136801446892205200655153732393549852661337753241779327791089999312424666263179797388688249690424684731930347930361333305790389216167524210538309678212370574599651080911423894194283512207445528922777586136633496462872490611052391922839947670084309133128854318953174497340631465690791289577985975314863683592475181478646967086071255214110164716774322421637017073816414567873160130208213002403524216883886643133730689677644196348009042199682789555382474557684850693682538124490751997253798308152882516467456119880867522189843254351380069196716387142987462009572720677026654131433285590275966051728074121324068050566299124453439220599112037656661417981958014287203238829143682312224217993058006678197871646605106489623116882957382975717474588343731614066131066156298985430281480459252977597926702560732498815877081783489414466170479551409834544744021994565591418199513785986221562779134746218830994906403758570598705985163540532273090076245417562751118099150469036857167733019227043639386483639279458733663224796864251054674142236187095873299701323198920809703453633286479007451601086416390906198384571553719617881126200131786568115212466004274541507768484061222793439927595038338401460692759306501914427489784699699002780546688163762823447563927009629634961066679637742329728912673421989381443660955889155459213329551855751338311422133071999267567656920417708629764687550926010026345942121704638383710422040665616549277666744833681288312291792299507680647602518626385424657849190232130939803335250429112978110538821606534459525827018464970206032281518676298047592294645238702570573607946728955985925098999458704986204825877016673578894902893301711139452970644916125960683006452113902846696639754817408215506377418553553103594659814405944128757463385787354672152978511984114028846495231421116922552803249379215827474437568927791079859082417138005142170795550403168977800868214183182820315155010558112889184759955556650984183483583522655330960222983154663487857108596983249928858487953394794023246587023245115274630857661323731094587544027120537198663449628531442274586379734586172629582481971345131689666375854676246999562852002254489935311318370040462629647296927727558931352493418702951741145678638804417640819461987796109316460281814911975537932808430738463637721219967812060875682995003776835323903116366789941635652056998758108430345243488631060330124532924969252532635705884486313779352239666851416156618088822717076533627675876051231959738469937303222655355020439912318068940458270029983057378405882337495842095017692633449969163274140254190763850106432525466883251789907187347195860482187437836834287900655771963945772704710472250049357716319040772786887627698018871255126427044315689070736606921960901996974755262980396098316589837892224853638775819415973180685732532925040440220343695819525598443539719928510265556238353507846663937109771280744253504980457025213786921002442190679829114226772094935128270783758720298900774719247041858982800247626657659261072348440562912696647725622446382312426343294594051883237901665236187780583510372240359388023779863501745078438966193784371237751213443763089182604618085382631652494557960037789093831527560635137382694657985185558222708241955776561860106652161800093661292104083839138089477949036598892118516351182583416899076706218369852265532192759420076015795296298293296986682691633370064562901068301033977622048122398380665897878730707374891237646697914888389240624334837479708369348019631614942460919903541808080984407649245156331813487948222402195047315993663159964882972616455407024036227546281633012330228985922183050404965200650877975352553450993564546307683004419600486849906183388364146573464467680594728633919869629476995222452729602165331211840354366475827005849871198414193490961634144943071073274314928717850855429601585535507794917536367162991243271637046649145833851553900330352743306328905863990253157097679530745997736648524345306293310393270391545605728169333725104471303385352707431322529603640875616974440545662520078421531880244715825767179444436722375357740162348947267400943509825306785632127560957419613654338387201465246146812984377349806586757879651233090408013630155530823024802793128959143043092277783447354815277097130583515447367712016119247169612780948851115860272264883129758873879417787792495568703646184017322761125260184114531818596621552344325180682930275225377914471009066303493454000813740536856540918576869360706077323881131674148201474103473907750178571635991301212073894536662619307722842929473344150359429901550812252188871394521194713599582493628501384653402919044958849868585802861104542688748926083190908439009760318739535605343602781683190765653279826589405435276302147279415393062589389160773748930318417692696563210518505668888303721019744256186233938045535590436647376771268893234805751020408862246215191969264234830054794570176945338242483502020022661358954388137450655393359132252718524264059935135481355468902380096799430574863702611804911983708888391482704362384582306065737953535391037733847697273400628515661753652537121039976843311629091005987197110302573731992230716681561572312114744792348605007199975670471049671143723615837017555982179953020238859986098250952229424836760525643276005878785935381630923973710354155707865334511806614587034464955916109730315250449789539998427483079590681882646804739287564778844706121644518518080169176224729433040725939425311897907692232442722294950128161275857598890272398182014479679838538043709093190289132449416557234198813057670375864161389944342422426487718636701431791636989357309134905767395673300452058393687305711136634982627439757139586146679713884204929499539789737619368174455927249397682753535479751218245292573242174827713651885480790233832880823291688170883673238667143882856628943885748129546170230288072999918209460774571489676246693249400449228215115151868290505742008210274360954781959510857147038656240059156670932235030588925520931878652808327170944237249991768137979828968812656503777736220622475856868910917594762865434460357913723354529165852927039831163898363923049205537632229966434927492262968739998344276933633958243634442973619503529566972179865208737617307309262728941385576958194805522059815902738749321712050738754887942407950715053858742276379471600879438692250613695505699682939585565783157458210220095798425287085981770991817865167097265671963040906931159951290646208554201376525787217795314280888832863262430197299854518056180584516978878159547032975273962729233522341924277805653701627728161212179978119957788945489264423904676239405810877394740303140965431122776109530384988304252552128182979476543795187690078058693501650058321150758763927039305945375113849519420811630082091336934806170202552575662297420813631040943956702764209313319710166273613161698554698955360382890495250082568698892906055102788948586087649506944368312208993529495675751976588817385710991078893435230981813272417090490578106541799842839877265802442487310812183795936327116199618652791494508105517362149977408370108566695134516507715788595380972856635215733035814063725850440269939857904807981601403337471462743116712870598640015932437072162381765604680260135150932332523602132227703366099228444127724353366599268489658493631730206627451316944996405276660666694345484223144812146622859943657158421747621533559588216879159912615522883635721667387977936170741854586254809603583884445463515378821984686955215111152170868135924112288741650606085338288113153085845381204330679078911751970046670765120028423131435855989587511991817127988205121159672140141077157577530803688242289340096551769743924600851491747168883670599871978916472545127510871312242010005350616872538771895862772776558431699089693634961559006774544075826016172378859458698933923769521621412852311608689174423149777481640555272331982345712063934673661872923848835107951381492769580912279032831873763369152825683086879017819147948890601779188059638808816209122474231659613908184845542726796590769901476234144312825907057859850612233405490901891500406726609081376143531860726318491517305206515080369271528531513890769460092372452918877272456440124992349092269396652187202523593958374617879268496397249287257256426727832748698988237429771425342541354234602210216031970074234029382600861893556657359097226395836207924903445265953342335592355999953951282032280456455761756612178194889882968143471292831913379286571155216382602551680904885001402021550504770179871286272184808397663411957358014234397959563700428258904425433617837752652741882022106013229138636505819952609962976001317313321755631322392148092072661413738496444259440290221369113205443174059219250748169997594852798879801775713837774404489549278830674768752882151711748616809920822032284890452937127904192910940048914867517161034268144100097560129351235808553256518564252074577665811410116764536494016793879934011284048651754740247879643162908783481379370573994232755408712296872112292899136435412799792126144086283165487384086033573670464862910065693652504538094620514903582675355682124588963160740463620326274613518152333119178570847581649776905874636918068285805084114006836667913062776522901197833121732138652256550041066235065807368581039283301740065879626832073345703976981264545491931452620749462098001842805309198366426207321717785414440982922936910281157519844460869005041752554833630766701592973956020933497847967311243354079164049276640331535902087446076842669070307918122048652616079197161299455082483787739279647728268626580928884448227893751513473662040339272196089581486316281418017695329204929258713305716267802981466810181469979446610956943835995979976100342889021885097984695314974395502398855667588752231720857598584846653407926835751652376313038762240249717789116749730254423699815407497346244749393360600847500476188604335318341692767842131009793812993331277187569781457882970215841662130004881019609983718765055941483644913751930539365702642805268536054975365302983362723189706363980560354217177534529940257309299705741857997770227283063641545750210838693626763909149415089645342337051464968677803801656447835940778911660758926856371998985107822901665612163832904327730664465290748477940925187709676179258246472706258311519924771806893093426708219006163657297598903027435711906129936822086050219092476261517022252542159443101534324228431650050535924209485575625103647689529624834477923050581301084821470089927568260696551363342228554108815058783720613763484138398853403307178971948415076957748166191667027038723373169056471544049716965517413667622661957671586649790203882441061828395871088242653730413344141574077547314806877384789897084363123179598789828622886765731775530964219212946972838337281112926976764764618230918079170782570206800500199864048582284786227427470652888793508067783371921938177701291304857778163257255414866199462844789872352820129946752925557439010560056080380226580612655299536227486584739699852722520515431747381738654724185952981352953565505939994516823941956535993704312865296291306850612614664361677043552084271429136070289829943141857972430787922641785165187498850857284384846060485909618772884260851945775900036061031383545950873340972260366075620517834847395396518668602870003583179418968081431381104317818128435894073624773517133347374317032542787428958173021066248014722124996047399795180035121006868049666405577127837202228557455789319445205490461596722016021793182261814163033427265844580014092433765931409378753156802624673254221210087571381680871798509831307879655098273155225927980952727732868230640459200085966199249947552498655432347843095978585989604655403299011899247038587916811840099873881943865164871542537109858047558392294142244847616624689489615520913620289752363275074378353037386275270862741125268440733053708845149591274746417767863977636695063435452607396911398474158926480816047488882921806335801552580226762835098993069213269296290936028325939091376465952034074994835308906252889710182428327239995420981860640520349849438807197022517879577316171865851253723047622937213192801957429279480941115919166529621860483697273478199048566748426245497904439968570279524141789130117635098665897024654384474973848114570930768707586016434011216902674015510564018796840180377540253587337957329124853489974864873713015615793697037491268862990381565062687554337109725873792388573365711988146488219605280510064279643933202247938942094342471004793850429504837657938680933281903481322129989923243685708257137115992938121452740403047964575365989537537653470914678112471195547529245122999934849431610985591533522652356250815416605057917236602163073086482642165486369856587260988090207522362242852130019753966700225137893048310376682312042374636504437204751969566352449382724291554708261465304208430858554826358902519324832899539063550831478533050080569778375485652616759741435352777571849368475925777145444324365809477317334415287190059938950329322493928986880718899245359633492318339488316846337216256124869298854732330487286194198737665360880265127830767731811039348457665389607012508988950080180934349709144567090137233749556703312349680847945680501295459297786481903569746564154197214598536781121383785970531491640310243774213998434005172008262868695677445055329032295929605996598455524534755463147651661971493498306878551361826037166364682184210114922271969706643943242761043271470132497038101081852028306877507082370288295386367744237976980595884832052612944696598894760270602295762466672626432433463863804263691255245722723694490326104143552956269121789235801370040784797378192592200693038507027901397410780142134272044277793572063176165280890032106678951544338478937126954628030864752199725145040346434429897089211999027743222261271547423494447371428455309818741654118942170425230467119617820832886246690885555834793867149842566786626840675930421161734712744513689712096595078795548425136488285084732451822449948179188901489064314125065880033855172004245987375403362884830102751507637721433595339104689224804741208517092093924828161214011488393208499846594652487335761578197751895296792085690669771122854095831094564568809446452219142954936135522276856511653029116623419131484238653561064359855153148330084635740043331191493078845779359452218911703802327145702097132711662001521484371619589276718060187995612882736776918304959397860829055733590402387512204854549395927460255324742958967089065050382464349611132485824630664665180060092432503430628369220335287282519102783001114914671841588625346834592186938592822403565317892573375500688110713617727210427504809288860665008035739042294500823384694222780197739948566445358200091640884907374929481635238791231019992769300316002213908714682700354025708145919911179279180012935351378034301158179777678266052258257731655291760198109923844196766468236814572617736278462757219231597052177716070361923759012980322407418743112138767399396738028078021279912465676778910056722158641162854880931616902162631007245800727635817104840257105728332161195060104356809425037070310621639869948764968310405147356224229261239587285932254616928121658183337378911535578170128139870381947648895191403928578566676282345902196113475363177764021834594447162138239138395513475544161480202179395389665805070671606076264201577703338779276512173529609876508309675773155358989430902189303817595844880230220993272161420581018044684396972279699951522415583617844823191251019650503914644676931970969283903039221716236542277249310539194159644262728878740256883517802409078002705854444510834517815606768829999535035655671471327637064387167147401108905115052624880281852750812885813477235142159032429072301228545963910744430138685709384655279356626515039931813671546093989127988821136152845835332663219466135001374079077222640672545433813149140560242962853077317830077662551900018906747546153088546777337860541501485799009165116162759160832990839245090949796196210689093044466241468371012131349629064662827249810435884031733745859729955399295512720320931966671178806030692052603905671368900476439555798566203632177362955769858392517227439655452068550800381769831325992823110284822629933768193950424819403122540758315875842310273562271402368087029124188731295130415999506756878275655549018543128687574479657865178843346355016098944330708315653209214034295633699677855735611002787222231718469057225575716518225053906726863606206263851975359462380056806706926152689383883600265084969779580222025854602099614411832832893376667875096411624199856191438710951803204471673007620605469957789248098953795961663759803988228729296581815755505791542807729520863108174926214335865355600171398264958324378306707374783920199010109098489629075873541447850410053356916689712008272789728280533936649264302610307941485967769204481673809232729463067975500609691850926866159518284649751117742096782791321615197684414870579348722797996840085844329404080032639688895312130912882546814077543735818598184894450507307314777877339607336152370940914071103599096532992224592632095246991956327727184347678245923665200440348015576349029603758583786608847827751773726928642492695521543720581757865162178469250694927952569709840361412664771891068805945133322773408525257552604557037085857710736351264866454132886145916847219138619390452655635442730678738701052736298991593460976715693464654858202061663046096768347010384936659969965031803730591102220313071565930752982844373060219323953698062338111481761422965184199183810191335133709709193398578658013007546890781793054616779825031385907036695190661052706885263667964182844578076573018943716162809843369627751696251357301752320855626039116957144089743490386501438355408263880393185502902894490287555444141916759947710384499750097758806727780314871527220038429863934778206073816242863381246151805359944833731503747923438842540365053192065040661944071655780210320107818835399781251505230864601961586105044156384382215636139147921600417212857423605106431547496876642782991204258741329366659116729649333822598931458469630242764815946177635020431329893609111151188594916989225106264850240445377352335843455423877063386896020698943250731042194214479856185542681705411406765140086488452163385736345240434411355736137869753973818223577635732990175783690719991139484911853269802367386071899201701133621421265261872851528824766362395790482723349458393787715037892712822907447099096326404224859708479492382014687521100291150671978423780987713136757403269436182095589775679297354585570002928173494003687111479107485679107511384590334188971314193435370020492370708405273792391000174846763603292397642540995309225249841210767002871033393780985254844211989124171260039925980614212015375586270805247747695541175206907304291479523932277418998607434291335645419155702594787292704449635360238012840854268642754584341668622013040934100959022130092244912873452449734540787774040600390073123239609834103648245450750639695632400518210302946917820093539781944332478548094285779790024719353343660993831766625898872279601753215378064366963593972951125481324760598394140508445260239677876902566830580074746811627168231794357048726613492799726868877385188093643625465511957733556936470294166086810188496976820678326458864395364934026340702803123079091446605778758436416153795075656780240604127470039201064843148216207137179356336221374974692950466881155464146530509660791073414587061024231325255463701056547777301103185050086614598390686290134775939192579122679075500100395428492660257271430972094148516591555280370178875136744927769166745736801310204391363224491837591768341432361277206750559519720156566795122899736576894903437383078381815070703448777731675174618859776761134901608379410976443643621828030537695319227478556556206088713314981214764323966769480921538731479440804009774304955543554291395212079930714097228766924973609678516867212844718828345136835236226452189862327508183911046257234203875447716848760828782158008249181819040423771894063954300711819853865447826369631742563521096659040452235275961390770573305910986801847006150779840922154407492831409466940151519203030265345583071202668370507265261429822310358048000851264950247307711985581597469397520346068241818466257406448256030514167886934511061863492653225671898605063354431200295653155469761421318364142494492682957573716907784444755274742005597432603466697631757495922146723305483427533342090216919200280867133818151765134672724678560180872806985793062516391815900734019178126337720629437217584348434738567376454354936764452021055196413204190903475109089559010733926850768992818767336590183285996077004219611615319892308668841564928732239391933687758631957538828286880243222928574906283469880031800978211278346447369943068589274459351460331554052161323918049602851109420092006810860967113716990163112495777335628881475776751337975001021482842434971314482215556944824425129651731005282933000759688032026971471430557997272702402384556693200309336153400134638822651285849604943374136513620175909550076887257237908399677877104327832361821807928864451298570472294591887639017741016215492529443404466334553796035815259084482716504714210649494339056402967120395788936520858735686384856403823401247326470157568285626763148949096486370878037736537056228632422749199532968099537601176573560706688962334065473634628753017400138289335696564141976244273880653200559357195259929416191825008855942980493562562347576387675325026176810510294378948280038181909401633385362184824477857521114190200115722154891014126574623409409760478059024692915223769207021504308659984976907725846512005462308926730442308399098528361798087488216517501394768839219596197383521902537829218427400267994986835504779867088743493487788426349113577417379378963803266412166087864015102669353853929117586753982070454540099155480994055594771630227826822881996691199207772768569004256445342466159455191246984940917971312767081216355879737550546953960201992891686869013167822532699828311881176520517131424030310361907703448600685769071256829912292289041651418435412215189270926191182789072038647298902831244963716722622607947058907730151579237066505377355736785429749614128323981072567805447784550333802582299900614329006567458113138370620933451382728850951005894284364009347525826153481549343334392320278401906340610398822072400859571454785636314427709357818646870031383115060320239013819367383658231106319423511375220125930221646506772395367401083460724736060018732335957259674257792577875347464847438558336672633057975180627948174154553576632455621990677154365428762769211865397630554166772737118471255681953742987890612319779768238132231036099871107441163778245341555930694652870645143714518255481709386745886225997193200220125679477080345755340685593956471166039497550936890740914114081986740342973089775931954775849403202835925283686826560128537934159295817603428346619281327360098610986205325102030365438914766958145612587052851476579044833126326126127547596737061392946434465502398563499069044171681297793156045424478118151684323997331024904086120232035262599455138091994394242264420730669942230207875737211345397840918929527188365151157728433565072833963266727277365527127783510960648834916111659729647707283397881762071064236965358576000178613345742474716467547956055760431599211599617105310000789312031291659211814559773632128131008845996859651547991596733482069257258694465104840901607254303794793743992494817035408492948271673935387930918914910594027388257563442674029204361297196900355320278074601299701516776456616608662065098314906518399081340365789233077742757928881785397478425345621594851689925631541665380460861937576610115928271916265498459928441380917909345028944622269874606236912491022267635698462472987555305122807730603827231476727333923697147318274650823570649364585741650652752803365758850018679830223336153074856777018962152237772807866297099713846012456411393353523114439413631136412506303170575463867164921917781818872780499865142962369203289752132044164594823111651568070936018232574719615128398118245002857359411366899363002865197086434968015837737896070734050171102922190994235678759852991064219794252888071598268543897365101995698553713435634484449994806623871155983268000913912923052134531871093340605485288052802348009198195206408370146529805875340882775782419719096684509257273542291597339420966772162267503283801683670126832708771819744711341647404233364332417845575142917747955397326301847822378751103346784282157477199771872490788456928785591497880721527621677748783937259466769746628364636432463687008889116960306400801332122554403325990551075960130121782721673509087083036782806953561879824324975854315837024551103822295526928308768789724761517563450710932267048751958354389326726852062510652348642989681785128034625718673657734084030317254417206056261328930674428227072781896951304271369338673253083504352362268066472362036535955152200461086854195601500985180774249137520429031883739076881451106331945943196801603423831429470117790733995188051863224936330373742898766639557300491231154254744563575122821796031493192175536215597517354177149627057866660916604012942064133205601987988647919102808257237334409780655000467608465907721327762048534428873064107521635800858604283381726995542844073600686998025463466014465865058701796662801137504819512746475513441094129754440051736361505323319561402763360504371484993550097933965755693472835807893270151761668707167850521515782422118197723059610271802211376055775650822451073394062340440352245923246713297292472959059660765849167767975817545550062928970945807116984624833363185049505413603244603712252300284036644327050268292912129801325870485545184916693717561170693157529500261180729980457387032803344642240762456575309106117734268436397474238420782493396132435887851143322143968016013555066950049159500712952409714841832052405471308266600028940697737467479235778327956768661822183116453615298104323673965210990128616679765513048336670955819814573016095731952786889761794973866473112581368733198256266722915555934176225089278870215191552231720125761879462211681963125112601512878665933083997287020958944442548385781340346747529570984798348679100952939317706777959528293558693383892840178883126583401820741311305901231787549313260038647439218420243114250271793444984910953826980412133780639573064559498529120754794534337882186036781686916246401860176098950800575704000761361758372686927888940127937087916873132104176749274814698868386693374298945290009532262062343955709036500534702209683672069955991920696231039683488885524679068661710025052273563193162291648015338363440666933061191630652332220967717505076652650692894526710466359629139757041795199540763859269143529727392652585834922600128121059434154609049089666844835347947674018409169344082112143757599184497893588798119998837810439545058220926547815302419243428754966152987275206251242164565241443376998212057577397697925545297927554831102222749780411672329065059364070132683811693711786170936533611466179195889581638008585822727314639881250743188593062854047725219732552010331502112217952060290226150814842798716088771568304889462662811087516571931580348379138047560998119277925819381601346382056761579194768885811197794657373137141289694042585864260846135678036380959030494143601297651108699532755698212004415866804285135148594628009450268028278907836610313319398157005323577370982841962611754631277640017925566336886841014662578726448754017609336249244210556522277284327086563814525893989409528629944912638985150263996892528078971437305271170348287863254931135146856674374550263807933123389098758199744638354698288840886795836147857200410817819526727363079370197316110803551330754342631975832662312587344047184927537855550565974434764146717174934162313996684108407288369123992903681762489783384230492408691604933358572084952341574638999590255592984648416853092093223945009984260935365071296103829391417838405967360131769014219229446882477034330998038266333091076135795356703162032015652994263383638991703155296710115717138660538111098764980914225322121188549785837545267354359706691190758277342716570831105588157820265771905571655522991722592519941711820712747163522022416693262720429458500760267515572236450025357983895144030656708768964025198436204767366947624721322207648935318529813483056615726100467461609021782036809278980358443462833161529680014429438343481325149444783646997109430062787175190158305497526824970668196708424004153293142670724391091926901660270122754997262590066958906364102019680315052141840001461281315143170462928936126045139925563659908703511182217009204878683413815583686000102213931716293817516148142204543976612832848954879245148920391534687356412779380282294561882647003672613810072922278924383414328912195761584682588953224449126237210430995921748569360039307287559776435927825721958517328920328937364969565481001520940677075843319610801919152697035944972820542409921774794885510189257967383219073395543848219021391354610395728756414700979620480167903182327112961691883705586529423202821196777521103042782428532307576585752550180387277231195154073084300710042092231837895251060951014674480230778414332965396911748552637492501813651670165981316934196951682096386488092193002764928908785590657822322196440044244384550344447150271472756615326049843799649104637329877730946655241608174552773118840166081692169472356154594563984247435131073562115161225469673113375472032106663905739594545835788981118617832426123825838762948366419784369345594147388745695455510687953389411349879899059954332882565199318448923391198910242207273250330478044348248263167953831881234536432034397694106763420507402776209925044162859873800854206330940449084087462950118043876819956368097741251214782564145810960546394548353831212074113396709657576117092170156919404670300527883385011960688128543691425910512642937976359638044261446693690374144702409870790060928659145662774737070541847001412606663677725697066185399828183951838693514737030217082914386683491895573957114688224894383476801514731784208843090801465885876918771216564120483834695079910607882425853596296891164799513974190272537850463197216075753299247670201361948799107363098561524347027748328740870746213978975092298947562875731149123181919277777555684302137964362495009385085575130624494616128315806308498594205880457870407878551528971936045628264480468720456617288093146516702875228320465704749684580211198177629707409115942079149302378185841312320755823659980926525352423475698678428971031219337805960489698219075025130443122699831515645095797914381524955732103585350796626064334473398120774844698645352134394299139578401188145901672609468883885592348705503210140467295362906770080220595087382918085265511775631867359546374591584536339139380178892601912605510345935075796753398399082986482242321316517801147047953340095408680342079569541641311313550566611792435082263851486519280295837109462616696734295288820969592714431338276132100762149785566345369759884637652081064039283865914358829710499072424146118996711710346786630616969050373154315338504144144443857751928121208210251952609025698571278291938140301420620261068335039849945835622115915578356079576351529961060405154827333661767738340649685644925242332798264200981421894329173443574786681031630253844207655672219010059280730909007858044919184500382956029191538344890796446157112001822217342752150584642775137451467788523498681830251369238269629517702177269252870094403594057793411291506144947525882363904148618573414183329022012968783615917652399063989099157115955935567645903307681641441984512994186091071552617321947029535925682083110895481748873289159476087459481709888831019006508820422218668822910632737036085447107471080489254733089705230753833338415110897307630203273590578988048210780693086380536188557964576105762301884463372446961159796969993247663508404660592034432171442571277392303411504250570863049572511987677019386637092064561089793815422439773833602862228823647975876174148827770096248951018239771412569302220063135925192248893819373619055403561577008465329752655550304993852573128540382461495987932705655853196932478352187628282774827369394806596156489192534771984055387480442766909259685595602072789830026115520927791042822663101045418886527035316674729290708564254417222330910516356088208610990482062786970103694865589164539921911834540228033104218274841059056715058609153666923256340298863351846443295200776864308741967528093764326432667222311221655688367982646178477379962403004915780306020420261561550694274470775141569961269799188911202001852025753172473166734276301624857810328892558895728653096703227553058365533462514618969957762925211453212110173905650388694972767360938361076016160014032274609601944499959497956058450553246586726815516140992588355962738520707763715297681091064834798071614408727780878972653512490406248166047219772830382787489346632451728611925481994648363841493204896286959830606873356696369058936571003607537183228090046500333254945189545304990432212018851636421767335338049369889835107924273882340111678220436927326789717628905290072279391349130073362136046000471688916628348291645159557537853927061452696511502826866182775895989812266160788175172426701279400382972458090886398058120068469191247304796243335028204994290629868937973461703354981969554593943497347119475737975707560983410318049692165106000970189047905937597361811310649776915452355792944992785046532657926073080767134576586502963519300932386210722533876889237571221047783554618750318007472679810532617285557608628207870615185810860772330218683679671617300793985576003899692837865558302199811983269753707342390390255170953790998177745137354355241077830113771510690835493572449652016388569639382833115088283618501120351219263590546208740091342003290886788457335861032276265480855561382708997750055390733888654381340746798232858362200774302398079124246350949366234744763789945450204946586510514822441848714069247339350462416558573448174399281913823090572108488223592620599568899669148376919321848755288233104568842697180790689720641201125894839641595315591051404000613486368980330041007791371873622903180977508095685924404343654216992957251728419059444327413373395429630322378307319151530070854226444533188657734075277330930081530175651038759856113266496742777940412552645447026661690928363144064666644590242498689709304246137531807473765544945722189625543114736683336654861126194904517302935755676719828412957448058579147102382637354425270741547274675920675380133547184243405866289276239058703150369106957879221561952966173594259669608781940057004485197614980801131357968652929925730726608051316313843375086620182670502661617051748969580745413930536605642897837358310742082571815762564225739488558654194245533327083602167996047708319577234899461303298867240137381561814641741993358288812585185100357345238069008410885167038482259757335845375982433227337124263747907173826587243538321759054841403916134907641222585421374124928450234435778275629309240482921788325918215868391563757819933607813287982324644119532661547668733796742182821495911164148220320691807326874966564762201709783587922791005890089452871529473825093450713957590665636918587361998166800330330883594270454769129563867551664135368546646838728194152449323803213542277056127363776863300154655331217770306109944917816287594149662082174961689145814094010051884137368317977586916111737699818334754819334364389723046683161989409131934437671283300584626814866054607388829484035387397553190231613588903338033066737896418147019279902719767461014687467886922720310232163760367874519869140025879108002535450389491651185177187938996083144651640533089528087593621528336395348210287889193488981684712123644183483644692958782632711217167586681715307503860157496777451051880957913262792314446234496165421048343427391666651103544400513462139155304651500626073964902044466520241453464643518702267238191531198988068850131076796655350041038325418372868887650910198616470041873068301452406472612757902605869355945174103655603045705613822115331670199033035807239072923106121834616879909510815564090362602377793060125127036578182863698145726670498754887007507754589634676019838447558494046947841205782241045799013303911220063754143728009954837944907943869565552839543563007214516732568488366956564042161507114229360244900783628082572460079304945286859888197827807645173161751341605220871727964712829347318818148557535215042532655805446924131028208124974639019013010620842404740269733793931084838337858182508026721904912542394494086555869855708992835325574725204408931833572694104579463866349582424015299966961629576094705809269269183385364189579179843725193468885150103519313123300697356788320164160960937559978190513427884689504438139235894900130757067510738217884996947463610424565818054231358136513432504058116783502677030101841741398867614634767141417854256574913205124820122690689635796027016321289165910400738323087798646224990261039165192404179847929612901441884898578212523500219538250514043447739605546759338317414094099410265409760523700669826143402074950211368732716441124673456486378643719309322933392854697385748435057378149936226690531373175839437543240376419791005028448524774758652852159428694638607929722462280542864421029482597815512365148839285420105043384907013376790449582065461237314170172691998405028691005327774349574637527863131774003094652619616936552669137863413285781168634698644596882463743753620620324329767649513949781544774901170686073413798752474496658297790072809895000353295008103546155816161365305406778262940369556810481939522562420423290431303534381273188422921121849733848808029348918592960621991808985255875889504556407491750405448170133507138970203664351170303417784556628617157261830875759864052978825838969374616183436375651122068492743861068854409311767787660439578688484648034607154319538920918763014542862851921229319939209529603013558355495291958565242609225300859675636717790170084457139114431384310059157681675094581097104696600092625026990015096991869959466590247284103548378823322216720817938074201190433940477425920741931877374968046193309055548928929770822295763200540037271738836494743120898543392350210927915802957370122260708274608641174781364120788430294826006552814565032677027357222474210832190140844993769716739896642085714845597399302025520137522791961684768818728745815443237906112429822004833415967961258481205249381201923489000991212920168330895984108718855848677116453653218245365546996318020032677679992468368277154296439045093330173330201621781928636615717115994056708951389834533996186393970638594528210694906634075061042709130986167300015909615767302501668288426152732375026632084486392149052178070542762641598751393940233088093413195044269065352613033984962843984142833279616914133550276722016089926390267425875620953919360120504649286172177776065596275374216822214679095880056741434725158601217856786612839687866654440983738846615459461313896139435544845543403887339929852878363427481025375249206115264583062354172885502320286227824820725848444055087551327061675270150982618563660013232534817716580290368181800999510900807191530263851058480925832469454898972399654641232164009214268191900709396222118646033241214911916683625944407696235588414392780575364392053070584657431629103517855282588177964202147774815683823425565001999070753042954765390211156096939228041016247490735331709945916374292041545888825153339539458061047439332662015578320737680562791245123903987255079370676631510831805307195747939237025002546536397109416979212944308885232042642105170758802232700591173698649081479993613474727760359052269770401216857661874999802206760931748305734484130860138844731486970500646809194025697107683631555324255168354528006544892938735735676494860168285975410956522720384873512124450311531627712171058369656500961872931803369917020010352646853492507432847597453672047420570359451337511043839592098190427021307771306448768789544430143070667201582190702800349586351509928245767041034955974656959433710946041168074029836103035892402375353327906084326431386805943029160548874815762032286270092767688495736387544338460873690962837101147652836969678836106497175524992320540980982995467425791773337383322086774867955370269450421951155972443507423408091337738806591337525835458003783563356142958996222086388689503006323799465918286945177527550524141149302644977925146317119513290169466788685738714307615115060231558641916899576429811727905964272072944981502475187258378612109015187434019881006991818994823833638377679739239371758027302035314343810327700447415853220274776590939283625419883553120717605484234353392636007477422111061447562265816389058030615122945790205781255482017320716626636056866082223851625813504837094721175316343702397576598089060830312969737599634710545777869091675426959634625115527674538843114668858873050400734446043264800500295051494086449828312927743991599540068782360695029824012812837075073679223892835953394483457975805977428442212859654761078573322955724409943083536749439233828848662203154265534449456042400957370053193811155583027717533284257974453242605347223240517097653988473357855706242020075429409966387470386054390385814845871487804606083865089453322289030505677297582953736175107965791881244183290792732785164859667841672476465482633761893388230500296856063172150643520671310679318116663216306271781347806972050406296173286995006355833913682910205784703573531824084753682056449486529971734105035355734619350359250373305946704092946884688293700272687389888500939502866553466106117725815072042695831982702412951176529798387426625355572852775548023218639119849038441045154404186627727437787826483852943914570910332252329465880267711928339771679388196723121278115173792078368490115200282373759593656173505895324967911388162142759582102190309109349165551014527749896717584164167932121597508498691588548922085616117832286595755906462546473816499766521939503929506276876641351969037146198899116876531046803438246604630793901970568187998493815306484251358313885935892320896594200836592423084627586015272979689454759600701019360519138736967058659017380108090554371675063659543517465355230083569535848062358313786250990073398329546239584735330530344554189935384180294397330349204665142435194859864134893436102080910297208881888776972772892840431743383182176156684154993366331264404902404101529718726530125352514780497544647265911394423091253289207909721358309817779828178149441225688698204166764613953412976526402629672122539180030166281242295198050064750161462851249543965705117789948627961394484093361754571581899755603703080278537943032505013639504733197373662941121564817007508560444806315137063552584291766186712229301990646303053060461487004505358926862382503170497298987957729334235461988049633391377727018145500914967033623084124385409983843705812481020257565506479983551304123987965489691888509216160317664927602140803755057076389894605923933023407565505713052913670577253166875124908920627388438457578135027547891135670714351527289621724023236911075659954418027188436980738649851301547954814726934882726750189151082358637398170132799092918179506454698925152564367720486441769353820704407216185336871092957019213698206551769205679903021627162051936528039387593925174101543365098303255246030127780871882556831611332118009671295095040609324962552761006924175489740127732702522171390539159501556610364978777696810105776455952170042828369560295935006704456505158319330730176565696852999526101660391068654998927129732994023656477573303600630814799137457407399241132359171231362573147321157416109819932467981175650051598274043546299608667739171770734822104143513462023454956722593190917867911538700690403075685062935057087822947167091562009083097045556888624047504799651681090422230823888932091467491286383460594082803337865913190839401068297948614759098801655365202987250982404071967376656623490667681246689477946371129675755192321066434374087000103699485459852810352154720460368442291051996701478786783092671391425223481619622903832668392866058225121737480311378697356044740440702595281983952320379832900446659804139384125474288052111427038713915639198984117716083093382952729758762224144768885209886646123735001084211985268628863430500061416333460071298272047432612534719521191181261259302621870992544122272708181294606068788878773286196175337066278803708702225816653309932801611476704801300656985277195872945727068477480553038181034705425033002101575513297886481119112961690725241550028773214890481294508686553047865675878399093809083316058800040584722985626630205885390311937773434813130492463664681597558360869635025378607307802830800278221805811888970197815268729172999732456356696472338798964264318906236646739877834932824871376125310611133063009979427044221966611241037772994635881040697659542601520633737419951055580393999940135632763889366911620579513145257271126624363342299010025468909376504783904229550509425987150075796909539050867255172618486366427715536048125574443141981545770075853524151532648888046140069038186870720758768482428594020249256414954686806546302981571128528533429523631233727914858367581998107460855878037498792246248755168744870677295966267098874042455648297293968713584561231279164713207880628770856694194651301912053305603207887778964415157744239537979328378393987370158610435981621142318207370319090161718610984976713183378437392062889634230870930229812646226271963279590782256397614730961574199763177350921051269614570498995837792180709986587288248339848096474045561379674574117636005531043736349156010135035371099068591676571911396349388827775146604537547940369177020641427153561437370550083773148721079898081076746001048960870769357221901097398979036348151211374564087776279963933824382434172923718991973216492646552227929357448124746059082662156669183767005326672171321166995582657859002755334331621409878952449240672038083040340682833154895826419071214271357872650235403395214114943971181603401886673248315551678673532823759983821995725206437039189017853576583504764502961234927739165178947544010974963304649229380830988972732551846723084602175292928837788077693739066944888295327382304801918242361174085425331191479315489695923611621736134896097755462576021714450522838847199600916030637103211123680283836687262911332291167007078303195604887154372005742944927755868049321233193709499829889796702321529934376982796377731068152799197381897398356207055973264887223610330114020128877287553344159740418549323963886280943310549281557905194895976214984358081727759600689573910635311125695474405832652782947770923397998719338294627055384485418603344623830936417199796855445582006746937753506616079081862174059847504553718335805443450895671672324800062814715429944590044116572713040427806479247877278194760758849654314586752247208151517914497339350823809954943346349264600722191989629584507965107201006026355339554961294538941133761887015052381806249149447072731948449380860888612812929141395183760369787080165260994517750789963243819675331688213889503564993089194313998226479938053628713514026265603471668781413273559148207649192267343920144588396452043295290160192012145295133555660782743723797114816741820594114970582807162299150977870424906811386758525087683858754117933870769963567398660581231156228610656020457995681876747207878384448366999778634611380684949584137777644661515675269750886549080878147814682093764805638698815206934533941361020369987982555460536440679543281486309876482626769420117065539964191523733451253218217721713783416348784730842683063904144603770307901102796197451354919703166816531463270393631864517019745865362139001810304778978646453768022195298974361903514467632401189134382764067852863681723516016048451928457630535341850418173694084188559428540943640694874728934994983870084633998388396548287149594406039197884687045244387290851137329489284323364222328313829975035242542714781942983912078950109116469092391599626029367376108863195254779020683941919258205936120428460560211951201689315845293577670479620952335819827170656237190853353728348475345257983985473034608374475307962960247777323402269760685388217684170801683037946305168322344515675522291705153451434268191100263283531937375758868555799247824623257481124944019999127402744292576147518968146226426598809950987919344509949223724929337866146551446061739502714322799329784875844833192936446958721672825372378868445715396605664153107119516420921713416931594157237862305629475127637672308197152560576023482678438401561642499878364032127166453302057866991914230085918793237640288728646560971461128945796348558603137945140181145740532564853505595250143273796790417881696948139116434789090156741607874624447677249641634074641440163324584803632113878673713747153793589620012688079639424932106281795881211964712472407864461780363403945933549379824279289921143970402642130502468480320192445988200508187751649026450927003334648383238174928443907381453486218104058584370774226386717866008055947973911132887091774866345367748560957716035092323754030306846788179821042147431437251131292744417409768337743735930817107876615319939906523610842489789540733167518772296274308430005998149326944719566656561496953646158434861242940872164627704045223627058913574711936528850048081721093652891550329827986745123017952017472059149747051638019660899290534212792607354826517966215744144449407238917175962801967234352284014966808465587026445254123316527457845885459014528197037211850280100897125755289168670592339432471368130205258003730044518921545543969798677260260636658171793422330143297948397510697424326081747792932923945546614003070780879704241161231109281301000147460952910720411470588935709026552837315728566999511197694029860626405273606221725601059858356671150332505759490677756268278407429255231355553306435257814663006975712155276875517556949990729215467380369080963561465548692200874846597273843755791136455409943925348318961229052598779021666730263807510100889308520784143290351592816069443385360822273066083089011316985903028065402316288623207329175328419453218759420590971924746180746084635158055392177777868581771318090068527175818175714261954674019458220953331935809364741112659953412727194685267816529461021247856238627448444737933851937744896625300997623375223159202548655606059371034743854178123958228710460022069533242924448249954456349870028630245979688022143360334674530438453935141724089518115089469420161972507517099076810613951366924121132974859959234626628857187868975187315038277786195214626931828432431212223058701680442695101127322986381095813869224281175272739524627277677550218088202160275199965923813659349375883948502465540657961765424972457001339922919711227382008592084594519504851388557151519149454935176963253019285694447221938875087258369391291467580957580794853627361733713443908466921488649398267477599526008825882166419426261930169106282343736847390670090918127654391970270638686350634077109177721694570871519914957368092196265202431740674473983178214889473549312450930013691914503268104202652109276794525466141309794091645381541736647986133666333411809077667520893884947895584972187893422144393747162957992162480973056160260313608566104400335912303847858023074128019965748752804184294080421467142804924648647161553473448007398498817718109434738370122722255290912612659123218771021093588613696037104714101811738997084588382647201604747576924303388228800401345584042831775645276152409974693696915235453467895038985352503631912009806960335426751127303955927631156522108122376250017874104540683202113766826747203884185298680355310987878389756272006764239541763764809709228831290771947571867141364659865282413046126148340618227600083507050171557826566075233122289051425222406958985709407873097265364379319359460760764483446173664191040111595685475790175578476594027618386314558964660890168142081224726511342392558573654392782609735653692242012944026618218869541722470069593504549097094205186690067616894653370813682231667783680737787327567666807531583591119641853753173441807006055068019964919731909982861822483948859034917234508052879998170413703140012384403349691052261155534274320810135874382916809310606105958816179772907479565647173636615435704699231313195632641909713430059340473311519042481889578417709481443331292428232587255578397326851252662636595018850743168243773216309791595371237421125195146378313039912211639846478976699300453660355438141528650759306648580486412327740839414024153028284263149821965539558680277687824662529678958875202465843930995817818289365102223399205582701359336802061113917225681209094083943901829171886425220853728890253458798437064337439871499862394085523984175543072295821225098306026344490547744321484674712675134893958845445506364628929565456346725459577499346296416622460108476755758049648606386668947345574606933683156032858461119802722558189095109925303556204257474067622438127204401294134723034984700076147010007299227136436100782181493746074011626932541902971780159844871448319519304166471924401528090463102537531067589659389122078201806553835903107041873856399826737439932893359790576163032435614774039992603489613797895632975351624965642764637394454062192376080785913663288382002929382210082217956160777236708721156287796601675156293171475955928539155397685791609441389851241768339551572022492516812751988474093987044138616795488612242446032873545326245504454679775762180061693052218876481013796400017590831245297304455706638894649090676530713584803080634724822395987268745922914274049603722817245403064799429003219938885094837636220823075112028994237605985157458311842831765123476876119827576932416080385291733639593022192451721568744554497449103619263951696374716401734611855126612169579151392312015316380309277489557653174966440476789275216048173396331008523902516396633766260793429119204112250653726177875596479001374597798623233539688779457687177997960218095529158123318853839983136140646533460953568948824481483376987078537718244786661980500908509379050218635328207487658087666340703800267700139587635566175858874609561515078786443748942595556453487490499752883185890580315526596153987559851994507421366971823198222799070383716564490752653776784161302044697675318102572904963598102429634334075869305353250388282970080644826307786015067042640210117928398023727916915385859933399460902056909429133097898158039967316913747119170854441502062116128457928597247153512735490838801808601937176318737472098278868355961126232175875140736037115876133894374239074706063102060739554599253230822404385064509373664216874047119072234962812589145762693141785830853457868093582575967751581102014255671019165013428660688914617898659133819168962548761005271755379246977949598300151588209560643594479568726524714783000210508007659190506913687106602757393681962387463696036535618044879233671196361096443590367780386975698700066128600908972763784170681011023878327509556049863437825040729398711012419062681184758871778219575668716391096285613114851310262988018445483983563346369858961601638832451643833773992517561538214192538309284727574179353157974060772489854342438438245355877388064368436434962046220856817708429698234402047119136181368221567731203353161945410545298915549684475400595892053057027081236264377096347119504281136338780474294140106627187176646143400995420670355613336273253448831942522352664609751787167622528333281713424199112922596165413918546758746978960629104560960760869857851640050788361893312892630359673135798811322815470134970321372910569118863527433798746400098719084919810817758424896377131490061087102550736364479908230863220851692910781105822458070098009379303459424803490695549739993764147143292485181574852938571142292149809031778628090584719380515643896723150913789153034847192599958028005079997989768263164180670999083299620957579935579167406966445115054925999483414989795135437644361507387849597023731199324052676472451739825933648791552161619866553880411650567163737374087247037543793903661769519295729546061317761846064750293180187565555503390488255014671129752492960425004469365785497078804890437734786099942612121224691200346572833706086840769917324610697894910664654319506888958520697191426844146713025679690991790816184334395382157635932317359006047601837402827138791231193066521735638255297444185546158376187321568157553594310256684655923832024758835925595156630144833873346802877254115172365180643918454260329006228278003793850868686188460059083710586916494443454565066868331714465469448942349195852048187817858186418665262824511578600700034677796781152810887347307034073809162120623103790706858265263880509896005945715119097798781546198568394022454274371976904824828976886804026243257850407846044648404184535100517018786923619844449612215206290669204913751608729773225419991042818097226240319857219147396750139380296713390537414189131182614878343796938783470719135669128056336016756530683171634021194618120218899847823495815416668240757731976573190032956874158014912822329360992880785532892420528760506201182625119706636279508065975742132626987934092692642888469556595750596232513098453603153230644579255566605573954973491897520788476440195221509337741826110587802776630657532333924041579390120005333074668977049071895535818451067339986761468642176047313407455962664376967689219267908867637870975745856207795103855683781073730486014348324901482925766975098932782717975508731359853653730686601696816513238983215728226617476770978226904675905049465913741386336738639549341760191080938433352488467709654868104070986405750083477919032671162991441576455886397827600040384828742842443861493546515886715731271921762048173857757832194101564681233308274288950519349957729656901780312582712859870819818020018642640529408637594041388185472087488790743835758010221570537512107870535602931211703151602430963131902654075354782687825123052097392092658746103909275330038685505582093918994669470872712894659537011377287835155430845076604187125435510067862704137482915833957450060195340036021564362438881831892340026390924485926815055033472619423899874976692696000120965537578239062105700591978420770505731047856838006931547908520175594417315597347091836581043427091634094224060682571255585501172963104200985667015073854138762860834844109039799490063107686525962628774696949770716328882687828765005727600603993952748683700681151684195423794811440630481162674691432741302191820276372248888866810750918277659893393885687663824914183117800195444084219627070250670833852356365142016292855555970048672825902320987666513355438224769937810979737672240453920162650062559719056002199117493702662636717577719226650714596507252286346418434323171075510855804666217200930802825159436275318302935346278844133152752351594876559887995046170338856095054884305286737286173769996197529663476443792334066140274083722996951510312621131088948995460588905459764060744920276424449342417666313459705955848355249221445267177909721367610794378016308180679199951121423842304886578459372274506778692420555460958393855128817276236761159778217722196789875001301358757350873928790139894027498981343072068437980754584511692459969952372233191619371045058243833104059024950010904180340197077884592138733469393704088242267353424084030024067032946226993995473026833974047436154180927495284009114363678909453527042118687516903973635367951735480552415434804208440853721478355844254783013658611062402218146142924178574076799508197070611795756127606788754413161027026343821720009740730158344216978998138293949416967316934122811432163603049679274613247557915557969402137401412101494166963982452659604063492820645350464763675265001412607488918771742814744030991232704805398789204395876358143955816503170625854907078558585247659698094437772943085908679342481083500866990359292098395114572163532597777036011129571411236488016786586259699346054394980334033708571506370972146606360353792241828319825770046092359480007603647620982048017015967988161174930685991710171368583257142063944662881146946123488022028274665524407979362085232558179666018227016554929919141776451647431129448442602487781478409672150910808239857149545255879757274662510277729255190487290751796470524928818033615454052644380943245238825091022409370569515607954465230238674297272721111523377627644440776562544438331250172414578536718858657399631224181327651514676701406850787332925883997907216233695381942832166042030104179994619404025963881925685065359815852518209832502937546885565055533977562652445147847298695570796867605584726387835882446894472600635742779711502318405949059747631007798430459506571752665210241246578268880009943747311412875854650420236279463485829338049547758470233337787503043049092959451644581399712860323341348581526161789503031017648512903182781551072044616008934673100966253658237673368000816336515813168780819116985299641307152298089926851411881878401835775431710370497487607761587561419320077687451406856009348023898390894845660946915572963531308441873754716066400696433210327170835276144803053913497222203519476885434709404097050376633765763549501615092242429857701617895118827724370753979020310031399436317825013009178738423672220723593036078578096900768339959803816693350007481986001412908850692889696635149670912210555284013929884518337747244442804550130685078335842132240909023183112937309893263224509968084903600924287929173084369688408666907818840812509051401974124025843605812537519492798710532516981340641771380661380117193494478611233079937205839995199869238264477952843846598190424271918660981408426499157746058205263484658647446181594245306607911404908596600872160507442825865427311540597867705964990595159312949083760920247678150808879147302364187228922196644043390395395999381489642669022394088598287035971042776153065200186457889045850067849172792388542153028924745696893457404202830329265521776037609522652754348686338717261615421275480184163072227968865970299063635792994778873978197634395837425395020588545304498756288732523815433715433283372579001894720828519820697346145488541118622190112069898499585929071219059387499150066228027081394790538092328039957683585680348289853702628882548998543588469514688053188175440985077562809243821181791362720550609427419404356531708785619547111006489092905050442576861317703067553925332322054338859533362080300806211134084566507369509673647710526308149037568836023555707825510124247058618487671937304302464034509994963373705507621763253948180925704599463379323379637367036393030264619036219486165542950215451427369006302908360164689918584264311936458743638163947906271225307500609318770694729948526502778488467870332300739109482109419448219563706466818339754840137177488484584509024651959458307752108442458327710439385345290027326669556817399204147698680146028165307210992285249035578237503360757698120301173632024289765228329259111555675497741153798752139325047753087007747424387247210216427850628387163803261943237613560986936969237450051080535913307759833147723018751752934075582215826597470889069839584815965211756789245816503566688335450379788406236977268040720112155415819678417500591907469346485459657820948043704575829006909626242630413028207404839224464228505254583156348487040732015949938241050244004109677570683989228912567495690033024761099880584753666056745904171737415972506569201195823321489155840908233061654823793435902032728934659612878684552969174113406322661407381216586023372345917390591570158073007174200231143248974502010431861172865466955768348903433131847862732929803160322407309556113290476746009671778198731316600479919561011843289348693551484344966509587370851794700194457039656716073371752480592606726448161001872755180711312575273270478548035377198071239226320322969200091235473531544733933837805299484477600858247588640654354884252744910374108677024902432377615594800097569216580901686365383509260928868235259127505342745624494215729250729539149467890887964172376971836175561556454145381931878387995929677541104602034801724033140587641225808722220436063140490615798832761911472898002566335265033391746122368431299301829037454796161352320408146176362410862469054994992389033616031457712780475870724998140946663406198123086396602450554056833110527919491172277212606136441696919556437921236411830788679866587562507445265868556818414699018451613848894967740330295507740705262079572520205221242507031661529560743563531432750029418678546782720093516743220489401651368783038220535168959537497586933080707271892356443567583317004611078381819522558143702121067524633687832076745111963374795519128939138625977645164918624733716977720941085152139953362567560560367886882586549586122093268291393150617024195410858774463906079666948859700420345740546119420970785407422782843557953905665929420080807821081815349747884417949658386185049950095229679950404191888109867644522504129401746103335549859076924175925701506687062770409014751834151854582782442168383831825250869734398854883503199405955070543475996412272843544640125849467943458695569459470986821921765116348782457813722422400920193442703479821250481492858526922346714373200796670761522973844520662160578325726478661429241744561667057331450700503406501738304247105358027932984401820354994633424085445732702649924708635480216702435233490530527193036061995995957784662929164172760713595038243914527851218457131160073407299161287438673026144795490979101613892245091907480499692768591200228344312533648540100634349730472257208362753759543811112370571968613385115333839868255350699757820042714949293594817995662225406269004232947138869471243516182102123324131217532476995517228110351789791401377535387292713686175638390497070454003122118804608965266478825491654799223921628059081531543471130375001983061550611803922185611126408935156347285889070922882940196520281644693895603964130191018086371003374882414864680329428768719914277407068747777157804817648352910051573181056789241314418943892322687067606514776206930431147723058559583390601139896053413463829302573583242655855024448765262122602293980652561777901591531988052226928460264145791787916624734165778160289300448083847866199842536443499638123930151058681418647655729483527373673902458204399340741195374948177657079856724785778030676491736413423225109550094270327905308881768269175643058816279374639217917404440541362086187026808459454984870833721486237812145854930725797415499846205641780679204490787309913811770558801191396878298865936070270236954081970715039151449855412913987699566817856565335626977520758158191595759463037734768265890731337016161319078671097572573610531809634288694633880283771724817353054825233413973596340967462860224748843917719298449138075035988139521257226497019484769602327352468643931018633388151139342473834263485260358067270229626643506717060268043913215713929538204531099775720008810593436156041159524499264786569670282163228712556353422731991505046988511010564664413505873739096724565103184628584039448190119015480344412859102377874992174496980146258689520281324463495933854976722739299982978307597248212444305188038319132026344092623052099897559506809713871249065773086292197662552673211828257593398801017786605901178059770305269188624332347623464396384247899577928476429758050456649169049941913360575923596780379562440215863052249329836527166388097728660373861595082224198976332317637073146651963133506707996302772579877225391242138624578678749165475265816816150912921022318571775316476072022797630181544973841836160073551975965387085959753959032462906029093775411765510633468307573650651907805251169538273558309680357074839108954781343790592414397652176811155110039779587967196131994727764152130035624824392389278376596871845484602321864715044699950175357675231490660530668211077635784053519178967331779856314521308363302462061622556960418507079325604596531841521746854264077397477182040995200761452300322608981764834536773402188673980083718706377930026750587239981215643837859949480948223056484522156705245076336895650722404138463323018577686142041155619239469224850692566990364501150976786733947889326066598156554942258859364756337478020955381173179891688047353782263734688123659272041575810441365379873138441407549360573104507650554522816516598256441712111224778008406730482881668438756166508582633017204979177622941783582755202059209293751671094623562713124622038998962293278310877337205720515030686018712557154972791878611906704335690507451546236165999956276482631187669913193111293782208957566405537537149184335356560477969600753756150101143035465447621143135472539915308504918508835421799210989234671010775545906915682169219957911639896513551485324883339750294971424983298164229797425330986727823398505707075827798267755173856314342678324026716110518894818385047943730726884880261937813074062084497845286413558584082267985348536473146792778038448316271459496664877246278180326073812808648539252857245891559681179999202140140480653427963774451872056433693326331881803736547114562832564506516563100461903293468317705924516764241863691818400281288993225340458910690662560104527369865446472825454019351023332568443703317978556019379061451847088137302813877812153798025893451173912549256534319043307742551012967282350719347483724308032686663585540288837953541235926333347689626597481793565542059996218490310675674030841672663346247274059428112120677721976931630137875245937660734420417290833412190879872725663063428685805693590479279037640279662744267124828205658102416086813554942164066235116384604662209817300921350136225525158791823056210454186099672748476544560650255231774425801378610829881327969050005485893019026542926548553081350353684252764795195785697494947051009716090926608826437850705507313822222718620248813610800118220737419012147559120242655806580002264930689613957503485662245634553540852548124844702562623481790973514405281754492866835636577691851264734417236824763707038973912248419977126973342926611953710958844999163789833125177598687427290815009336166962415535076182939291733807204452224186494228461678177740461420806885972392634722183337682246283460402863443711232179802177041635820116796152178043674091189106279815403845274097594887260578789611507463025524041481366501378333002794240997252400800930253101802786319010558281661574111217183569931867144844795362251270480523412545903999173012339992922673964989552477216384622061738764413198415995328904404051640199837897863239576994563925957084247974033603068885851815661860794075621433200237224395458602102017888616254134283707361080949333052428422599803815192146999840303475758902214811243337777346175849275430836810483497258364097674442177310285324768390956294505320519418613698903521250163650338926428524269311620299291036028649413150608565838475958177978323752328740645555437478686836396165007932215806679273427402474151560055838154135823221546918444973794056450094791488110055750203055041227244807115122295595065250607827588723026802120514180066707431816555973584204361342258549280094030044094165758039819432888816175076166426358829249006756700434667401800518518358812743786696894369865436688434023588449431389118804825962313459158675486000462043323424748744474494014782690390212683876264963867904747127753955354699237739886717194842463586357520094053423813399906119716062204512903354796630031594542513698088110891094011134673824380989409521536606963578610363163213376201738170848003732465032370050846585055600596693099998948523391761745647281006237468291100214707062532445470337824161912633941960116004301925107260922644674790944380090199167173534847928606849064567260047537750890125512469845857307330184572330012895825987073197921021608746910544843041713601115111356318281414666890683128044553091546900067290421002070701583102551196522932573014100820358927914728555324554139346588294176813079657358795231736914802862768366575655904904946300005934482401541523492711964736938168356597255814188952732788953923432116864299795921695965130742817647347362354772151188547186699785357707114319051886079268480999877763950885740089906857064964146228587523587279974493875664545671600269053947086316155139242885757812936799398351748355261033905945431253903512895742153867774449638464006704084152908863454475098120715064572581171035423051653538450504518386014877224762849968286225294028277091245950090612893836777325233756739325945279011350287108510477753410110262257823672614852110617597905614556682587287102141497323622088370910976190883294295675001222765911195147847572131948729162425078423506332851676045179588018786648916185269345068459432095411174723326037841819358203924185037051649878132410393074884039242227022483384371853634360533337730229456750412093677067977898934544273498213214499883836566737095121881322913047643889806705017384308113577608625390525557603506207041315889077820011366844999223480070483070333956556971704669442487886324684091276018170206137952151258456641179593343544063103351859134495723259367564547684030071400138562081660791630040076256156687327818177651784329374433645317000760410954918456787005943845553488168176844331172230538090916375706962894197967514327228764263318915508604238217543028807883655870850654509686925191057357914563685038546460265341575077791018985552612916200253181951955849415325131849783949859989935390082675806066356331381324010734516965264832534436493810037208041661769168716164442757461147372149218554603431318184517241168483211866319624233286552158885443373892366247795295195447972293558192195331227651139457648639605222764304035727787288596717363399200622646692735769214239533729173843739241613504972253581065941791921917893335540837048849955909871226940571826957658602361729883504210482776895475868777353615346904919758986076064702565475048605352100549139104889825661809073779837337249511518627073736136689983232857487408209001521945533334111084427388832474524568180541180992795812416190053788809226041184924763559953638524020070910844905404246622870489353326682699462912149648780108791483407296653013223653303011900623594623082303632781949766423405898317402254309657311701805471115702135628252893301120590307818548335135357903182409031875051960535600947318850066069174378606704656147034034795182738005282758965504200276402167341920519576567123117366419753170002776711012495366732167143189746155484193230168383961159857734756261336509556783655357391120778557456830420097966862002589428682250045915418242358931541436850217093941803132907088995685318068774530212723575643929353536045784458023981010535281311548371894601915368974886549785287161521853637100964893902232064437962855745655496208729841832171344203830752840642005094377746129125250896064309259812860246489884224923348607475996437257410065832349231576843180785246022543334950547482773472633558673970258767509349767215616266314404375954073356487037713464962833419307129474269294538385465970021636295074800165138939798027269455868539114956147862078812593769859980757337173500029854815280256020331879335354130587389744122891152117726424420019422383166059453832227603036249616046662599576196473409198892058089590274584619985219209326110678430105305453201191464754276208440176443855365479813725251165864461897763451968408223738988904430611966567039435747680764685975305895222540830331553247102949087686461550482503110152283610074358169144014642496472806882049524014945618142084856317625512103875314200949124693044273430394880730722910939709119400750934960189628850476142457455050981380656524653014399102308153136654846947334726387651600611386544467157075075019877624437545401326899411111900335571338786948713226543658912798973034600831795409659949595237765288686972547460484795404832683268076290899130225082806773258271979576991006257854368244789166006345239536579747671215601618331871350133870039947182164893927289367569588375075496942039022503799157375790697572327107289991440316405179842606853794299292568060776899641014279129647997500238172046624871017583368889294622791734279284187442938250670866290137177495575490804459104798534069551812210551511815993097027729825986454276221255515875621181555369892547740789170321515895651306236623879336851924914068232622300207569101278368008574012100992189783357245578078619709747175612208785809423847824272548766886524351335859742855265691486191960382372887371178004311300605863539885834075967983776985321827193778942494423007922656559131681716936778030978977849309735389044362225566665111193503928973874855793904695374291040765977395542685426324111711605570765040583149272709340178078673269748722468490630622575348908197632131017104327106996441890129583382390450067131999029453105792046862460004219053395424026828406913204143206286576406980330059554759026005330982642700680232788752557743634631512469224722383415960101530083400221445366197343588801958421964441595460320139834418802053994141684273160118718063524913447434122596520304531988917162324751254021995648261436349731268393445204985675141923020511435397849916647543092160048159052079386679535788578519665555517825783626344977536107878544906245716101799710495510795259618522918146189614223590121972625963475983385123638480644315752213379854915026210912917384405208115476840340530169253859283586368652119037511365797795636221826675121314173559182238880730103921167369888817216111364104900615805272514965548320976615256455568927168183421428909638367291775811520830527097472090443212607220008539805320479769925646083385926230608457699732983872482143045848883121649071798597340741313508727922912531669579665337585274527363355953399694801950287814100335429116047957239858793903398833370668784330427841378700950342948267423984903016394592319348472907914407908204841026050809969170069056490311531518372319464566283163930945396706226977746993894269275239768212433725645262552038911960396654403023444433845803767904537999281668999130903029824057317612560282756325391675188598180745834483242464269847397553329648179810230459689359136891531948348697651597970783225844399834051323916793251780996083955384983850599346207555909166382314160918530008909070294833398527449914497460276381194162569034694702300763013084439615650041674923334970924824919653130485398722230286635246487397332425030523706532380767257599918695219809284930097130748594420554008854482665741166285338551522726759256027019560985161450067183200035819619106234962836431271502540610155653846637472147371674226829240883657232246836703965447005936702081785727395304415327584744890952239885149658410801670378571435832952294608173252838249079623844911397665196507550220564054079450698687486793140544630090924368338293153693890752147810811047528964160791513317086429597200956544319434729966713151722532397439543036198335125875130912141038455761687362730143313895753237179171430267042602004454665337561719295723990616348042202021852723870439562918415675823993049750394724013691151748064294164890188119691486469109625101422630207598832589733139982435367486199359218040712775496249989422066126308296128606468573382391797249324813417916087682719409556399951479082831894852293715425560900178436910995450146540633686862395199705651684519232418860612853266893475215403260546255132622039596923221658547838793082451521968188150647315933007842335830960273414246859474108886913720908551809824834004205124880182611184552624855956592743221345717106772577063555970232404109134206517642257569146270612969193035145694397264387816193888118471160646698279965608698016294758386510702793154476014780424515891232530788729150464158732752102309198624815352859901491618063758887343736958412778073810495099193513756800586418461995183540629845830612965298496595279535548172769972593194969939606982950662736968776418806599459053031658029290413580411290367693576636246789997061337971324575785933596340413790939088817833668096950245588950103813957146585535934065345027898055282436205522764754030857890197765491470163799395675767956387529451916370187601642377655690078646696420274976462382190175471355324398200457049768959606215155772850415695725783797117884506430932521515706198481135338215220511533172327619119864389565202306340473488322284022086861952367603743606583435121501183854439871156375895367101441146087139878557238473936571002693228397267532234830895519598776689569041025968733657189144277973855372538083890272761573858503150286960670037859372330614221294791494890892840963427235229953511090578721389235098393809840860992850587671631532945702266328475086329909791947312472050201321627839671540997613496410139428317743808455968160445115689151391623623283693774092663020436704716230180435575746645710310627710072570048387215900021555569656513254055821122338077739492846956685953251742594683179175263690889296635584763058507486199388267820738977395926764229238756294268773227056667259152711331739047887505814730772018441788962317925727298284850681800601216342470633456055150042827313348685819013116923407054606160537280749011472223890262383687990916766879293170332362577327235492145609393055205665929078629018589792521266955596907345864251743246030412153837630803986145777713575388051180211843397938033830389748231273326058428742401838938620048204258177212853270939376636482260096367780718049290195672447920519120015776728837797629832883759037776561215879369810896442649664274295644944442443731866807308616916657240836856962812423029504513547697192598873325063560426893428410559268621928651791341585354797514011391045493069179491226113669719628815807047543003397616135552220589451734694895352317329149410890596003362947544284588135947913424171927409837270181558511565105721930943491775668101098833407349905463522200516255476178525844855993891662055627675824841559303266381122694528787399784482670584277230708708340974011995013806787237681427583612422105782555407903763431371200369036781213404573162773865073484842806034924714672832938452853626348298244809133541860959034380928241896263296892555672935914088284584679586592110457313376356604429499026809904340953849330569185112334506592019219681856546836024301639317162370109161050112754838105304008220579317706606402244510606792587675107820982282646297746782517173238049553991075494394159763121420438228486452881918845717445360248684289568883377745001132392719085005306543274091712808698138003017302326655332203720706950793650525892635031857270258172331045619102565628049186809771000689417112768893997405898409257021168713581494562626378982498520966132797839119653183204844153530160833706499593118334407267190351234429847510926492107449074683049714856675047257503785978218268078871273142538562290857127630646564453073329430393587336376965405422516929720812971834418488019894587221283529650429602746687156463137236474251264923677963143199414582798399944337835069650150775535470945208149343671770322411322646140201842988939533114991233419366237902032264786264075606221681728991299739829707388757425571999708393230857578703146493473360337512338581610197834621629808652962371267698748949089817323420033613792948664725184788570463886446306570742839380419264547917796097492918633103878622681766379079124425089890702544149273724698636278484088104622322089526731755991647256837894430254746161494758692136776351640173971376154488671382326570075264279161185911789151559813702058444757106046629788610866453237084032085297054404093117070647805390704003343099656114862390695098644330083030939809236666251036126337761777055364458612519113696808793559464313618913209746066455735462449515446119962735763614166308375149896504686059621079147415137776243373693846761068288256171849406237742088445351103934518644056338114598054438909888273023605758258752681095455402274027178673407395153211072654532528669571530937657054888448954001250707535516920226803789133822755918604962501596874504692238816422675823819915071670793320255745332970910011264634521598091842744308623627679501356918823858432132849465925040904960320353789712266639544339028789982325596048469328964228626855445861738205790017115281629246477943961130775583158551227259429841142572163930718574193489930253505066556413153229943820570452359977008098296596175663991282644681892213611678647267473012115197384803466721855140022267335145424473128264714036412794298546255075126437071083444036688749012916958698367867332375060215719123327572831597737259945091949909135398911998184613022015224546039901347280903159302906707924254539347025951103089393488891486125734296892935276491187909613349014958434501736907747427978551402272059273944648328304330128953875058093972625045729216696590827365967926365012371509321103430503848432111174134033068512875396602879967187516758974796860711432371594917638202750535348794780980959546522978672013482092614543092794089506592892242391357077704233460094044698994560553279524699012333116554847918485071895788214243090441414770763617506351798278647648484406399091210227974993642414901672782013481156179292256805380834244824859340111007691741754376023954405627807731050236211174721691238754716181309978351370146379230650493040252811670128722708933804164559400119459385941454287467113935173894884384555944324570296086253246326984128794531081703572472535350497346496620250545058712640892079115635153369163289092452444699945929042392174234163983234985571732503546858998973536835467358624135166845290923604771031650292459411794909090298864697256198093733767279264850886848174451321317137862712280621934805996768454165698714891937987386786660780818167224714910985604805437131277743336815438433829771200900131264772558401287663355806774834576881087293503592196821200697633197953624350890118876979420249217327196140533803800408485827191044787535727040374520707509427650995607123709647237506296631340293002771551148117549344504882069877864410277695398208047774499522448343532176979526306497338577833367403412731881694705028571694973741076777750943977785905640125318736005819254491361443977984424662706429574929583372098920307756567852686053747898788238025483845690592056086488924454599940981328910988092358560215662241737794104895150923370015544614921221794929570679543988086231439984496286484168005882024475425533085961663869575424692466566844693534103251314498322196151040303797212276857769806546610658540378119784727810256676207161153674946376270450704051170699432035188941553268743803931827128275233536791242771246633203553596237242548764934077788520190964574152826103006783494606365420641364524814710391583961699369245512145527364176150829026812373162899875629053719599243791934769021418321954677603624575721022835849529844802424463844007167531600235205733312516980394047232239882307245725957861925465275177259207327218175591468855593656008331487733160714443043487581311895517341242241699521676093408944815315560532313655440717666329969025166917501092182743488367081246999323077902860532367882873503778941048354385438790205063211187492306206952073886808429471993943027224630766834685248346175447453392048488048182088860688396893551239566415935439241472560314066919572864252470414380821569848407460626212217817404897551493484938802426787059800809154632604670013469684103282318244916093038570944603153216734385665509199739327525655733166129670834947516937817496353185505501816147789774866797411253849689748359805159089086613892500508467261487388991957389062631704737047620986260489992036390220863441401183377323139800805102411062019782384222165341329474449535804638513095327074892195070813413119390555636276640603152782117199124922865119192560943566827285916393609696070196896346869617052799713508851621846099579373477874960364790413137895497374711995181074398461289950012065034806733057989523952737166311117364004837019252279194315299919668655256901972856866611271507241818083481877855639334906888889574541667424503230975959084775484391811908094939020036268100420530389123443695395040579234840066312829522866386090586973484459091792411662773015941048982114705670106502357467342678014826888381191980963860038699833588959602492670762088514237184037477738655950633174884714525777207347644586473789719581682726409525513315965924684544580109793012641439567603276293631260169837604570602782813975266079762337530364034623990601791958563267195803242426100516947335402942505198148910059350218460308121227887420295182756182877803663896264200419598212740428041627972282328653161271676447370880637715951815084695615225870358419694550119502349966740277081002712405747294868122028012608342947750376558055780783755570161114947361675920613422375743369719957579881042928385337874190571328610835770264375682930574816263388996902335113787192926163795011723266044438331782254623337120239123205548899388124753370133286211467229420772932932383057644557753063697009823462923199700510886475570701717559099269744935827774492398506282250916369566201208144557421616544778407764750721586113952278617407484668550004849118309533223618351458553874464430557646128522869002062552085551688521541322628183364390113683490735034625632183431514215010905467403197735643063432182451972689409794962578715123652422897074434571753394507578610472638967305196776626590635492892936594384782188816813686301624669234017216666161873206901615038119659936471789413822562544573605048578695045325696490873781976167103892801141165526827360840275874739187497590600345536896716910702317468235017308963529868694631982695336561293682155804352041126353470539753367618844275219702772767315447500872619224231592395586383403238108230443514920664294198296144662410899385874244307744320822395838049285202650821559875287237165705109792109886791457182133833358467905293244691996440453801186141840766442388113392961192395327419632860826723848783029079176365435750372340196521329889487303736423975733875466826035323103581367336132388875175317065099861107266196884578092633431219657423511595281108290279245359030901624418496640074825341328833457720245778758067851921009407517281404424212234194190151411592297992008322176454559608096968295276834576638673576074127040578260795470586974206370758703972072310349744168390311346751446996916100660595345611790619320314746474089788687830293429250602146598256885496353760735710517363203717666457641433859102653449443760161372057417798088569645540403887722279943421803652018889374407331447657345093245390183440014448038952592539261861848146415777419500595784856693259611388047654166743690160855183742906898120876112294127589359321163389944462936719488343015536402583785147451429459480667215128057523557626991862118469672700012772113210549957809065557631005612140156600544709352873404272328936143505457428269660940723447682592883463800075051120224593388523004662675364696089012957158492779311312487581734517688318390935925100467261251705960095833976192877792128440556899578434182985079151047813896756549420213388591285754474186384109450839463597023193564253642746236190337407611529868258997799505761495107162647075411507360502106878751011092431522976117758178595766022502640553784164026135715800010382374031908249066255053052120573478446004191090813315838216511446596116671619632581470611827621878794543925703105144512979129829310211847196775126281937213266252824129968000123068424415279317143585988917414396972472850633039685746478663672599181391257460168223548413107907206318143882060773085432158737246867041537230435234218487133342626462328583884291491094537281092980255074772413136090238122648641055151370916214389093984492317289323819736543443977267689921851455097382933226788295648069850436247031919648375583391445368638534255301764065386282067677216853855626508361559027372575141771025599118219878448016799074568307909685103805798508225199401061616417541753899891346920918467919092805981764623481244555068048994494013451518694467219491239836457530215795900780687668903436681762794187485728002183449856987313354425429337764209060006533660051721996003389475791993048453163581410486418922693432590366697264641042723010388299976563466737980545574722383932139888962322331981558911245253794109997519231753509841857096978802641533521167058250588717124119651608160190733792560827667462688706132318255493751054416262247696350674727430017794212239842121077035027839620303643037211327894359114102488009199659250076096553369973534571242048114858167025416392708044323021101236861603496728500289238614799821486068102094669801673722958708395618607030283150068994976768304066870457506529385656482656212941223186103720168377360711947139463651387069051759198387686093484022711421334770037878292532009358812638021208771369660656552452334663922059329937710039956545367653064907245653932371282359006511616682776226882616479021570780941998189919104127232336461047423457207114954592141472217512181893670412604881151427223632743064362934260682892892025172030673312301763210872303777653264405063535023736660980959764592578748584950422360789089405744233154896178442959338813884863369860072427755285526594257624099330926162926532948462085954232581493136140513163790317995967516849645300820358954133568440232237727318761460033038797395153412581944333472010596297504639395941346322836769367960351408405697272070841122129845233902929785770838823599651881495977370443152926242160581396011417060546845775211016503389846104702327495400963827751825908106434024017464158017183306399122130928152037805890687011975029124205350192381982837572251998663827355488552854109295784342673484535638739519093100369433190056075933754263259933473763160994126411558669411119675987309906097202475597181930824334821987066731754502221634661522538673944678968859030902208271421148974523577471554529052349319028217886821924076175949976113124665970802237183620435432155791496412778663097880080383713889420913071916844439425293920711528535805430507608192444525776989381547733718653369189114005595052646116412752356832032602823829921383290327578780781115421082634433634294125469548883143699426183053149774116016808194421222201569961920834228647117730046864405140271755272464044656826767172934942232529069344473725883037355445654695762960675839759540982478676199448093341705784412491206422089383074740888599066742133043516807809964002771490889919268300279056521926531108311610669516371201362879465032015148027796850733735316273746877416934300843891065210994908190055466954400019909891895566797976029040446971668681256692920314800032973286579865358897624339605271951756786198230284344481511508597798100142813824222983296225520695244894175181447202466514706180197051655317344312456432420699986546429182359014080463694906766345268994532061866348755751151701497097656457128373681319529962250618199025949877631501379418461240135133009336238705396565353547989319812332141198216154979126196918788339156695106463815036564793791588863826464850231011844607387919964297168300232463570056223549903015178474857082457823343214999333357817352208875385576538880603494464602241319835342027242581097803727060169312664461222838298015854231686038340941472119194406640062026152996369810237356986542197981945396271342915166836663147817691644097915773618993673208412770142484451872128822680206507178613729776704991770416167033422892576853613009987449351367594901136975616299294430578074653173967902191960347262019369085146073328995044679775591677254522468330941897158379068180397269597487210484415597135902460217951508393406240135945767256091747171201046773953007591365997353699414106191721312694777380910921688032888270104937486853028021036356315919799046138554042216275324845239787864405780711629449671270869105450591406893232985469169129047179601168754363582572114797005642898878177340034207384953146257178878808008583632356873760397294133659135718033063754016801537543941115194503947402506236547664166165790368978647928635529179605220310606581104504699241057390789343067298973853155130540005428085068358599859868080851539727051827976604337580469163849568955421283943253133807226181858461468531661541343922035810188585833228366886595403837004606729496319808537204110969417400448205977153800143497009247500592004794176499025727960578216964469080929870376818664744291459363296142542012224155852817684179062778170337587638949445212106482885151040365661844575369538871918399360011069870273861311253683441765043741793537000391704670886500085815684539478976789452552846226988721032166794314487759967857436463199999190500790446697128053222374847019583903509882204947946381914099996943270302060095807247867061966807069310406403064517646209959694394630524207377798634243775169109140156508843198098069811070085132045508624639595758174010209524188449579773699703215871943684427205112790398155143337097382291896071009449352920982618841975022581825688916440921618592707757839709370471363674606523340900774039703474069891008151975546583265491661954188567674950430388750313272564016818727219888012846384583528222499278378468365349425478901072470731929771045392223507191514192412113071686883643418857771788921614342550238662488985694309449423235526764451713315834099324937903085977772604437246409650918080417206795160818117888504373136571280998634919404727728482205420081721103839337727344462532541818078073262500690878765738987428166690941529132916232521935368158967544628371769508075685217290363014657263539185498991704094695809109652528527130351446727717106243821214532166169077366028105575660243606156520925317168247135368407812000434087564200591618322247443470482590089501325294606847059389939277437873191321970449306499936575978724811257394018583376532832933686986946546070782094903693484210466101985250843530125669197565084795704052754182942133743746065775956302386296498486406153703833435487327722120529060193218782593639217958255733267134082585800931770109650449239684052920423027665488618697795073262289552268655951375129646783645626816391969087174852505815647570783237181486274116737839997564909427782779772566188305162027068615315139269250382308356154222202896171379092062086924553789075278807169977961757803737322651451414838636241335697727601536928875370571822399975643646546783812751477266838165597166188800804687654911752006483911722620856272215758178138490662809351735821858409749880320047906395851326914418789889577542978022683967397478222015007179344751045519822975757063928717603142852774606687691975914749789043698635757292472620342251235668504271231781176586600401782998673636565244893229322148932456082741232368688453298164982260101898411553520778208814184900391453268301878691947585047781846625985223821944318716023218596802289637563772878658440397242897843386441446473875847346542583332583192350495254382291154064704751524436564388210421879426822266045292879272804754978948282300017476194445753505115080070595713597053512330440573370957764245881807767917469238205893082481564153492887314455755097075512197815017583264959023734409284787237365270006485070401596911573104639447010405782279903167983827653344077760676534950662693952663074311172179179930995718459379330452898967943601276754184357059261317989637443306550066982021415548050820393439222609359607956571774597616662246682420152116866039869791478489163219330691989868576077730187618489169650938366222966177176883246206390645288850616598937555451790616204570594035423146208287271682347416296188560942289376483296792035141946077772827568669689016616155219867565016480930135050976879956784912058428693410426814626611816919631219226077369553345573565655766268501860078432233375262925909571271621340879380857147287415764721439265636658007722249607078156066778020735271704501627977527120631025860212677315901872858144820761709073077231598327236469841136492532904858824178792236510987810421868621244963386083658418801418511458864840276333001158691522763666148790005343592770803926232154449929268775314541219574916278523457813798728476785847942973528711729246876364740149230208737304532485090662281670610908795030010172799808478614796874122168618367482336325027328427571788448852254231664481871331801979075897916757041258626398832507722743024695086541329559289338003386216248869141645115737088482183224642614484458114346474001706007898390099220642686999166089373705533476689878872793033311469047599857157295335764660354020155966068686696142706077267018947094691238713342116640586612934510939726747219391436586509924389214054130548467047583928391434163800593975309962783333383671351882740918605114337502908151526753065371718490406220637766033997145331734317574407579322228793023365858359638819825194432795712493373427528533356351169641819753827335872127899844759079113969296592251641294544492033508766919261779393470946457923156936314217147837430569770720466294319462205019313744830846711327066677292117460351632063190647519065349725671417435734602393793844798399891509240280304866381200529834099118490419223062825420690286641403677045032237713189037541175252353999424662556331865632484321202397840736264713242248143848565491910663604027839767113653439776732746599302243365185618636492213321425962112391776806141261754333622365752503824024879000117052229879107919840306428780099493999445529418475158731241907052580600706366939498860662827241013861553452586121160004969744825161299563106869776466849227514083613416297369538793204461763658307309679666660696411749769523977164869583544912411643529505473051537777711510645713890875105362878051506705403091093143474898331400463142399484976422138980145799109539947033946865328236795114701208725920710523209305660906959643332125611108098223841963417493904397402737678904814788650954902674834256270764310269279411668166046790271748616383539270369951694710674544654462321129457047288115771545372183861732367523147394510046820206080145927222558494879565146666763315399727994415862455845631063402383432599983102317826801184009956413322066637779790655379696048811069197188761379415438243152138058993130051021640722537035882472374879209964895970558224262644411761251054914821968486932474962129213635869915910567689880648720428754441504975845988421445473672515686291081286971272343997326027286818362345836312928390374481535597364068125581503436465983480276934710317567147598807668334967897622254125877013873714440042251840960069974158550498369921395943292661334379997675924386893583602637472115578976993300754804771186927542062759219530159070927590398163867944847649385227297601874257751251387188905948103209988213582081675040109660967090339821209080498964648164326493034514422010017108955181264725764433481445192293713203078652094188349260925202796265736570237997127165849839538628489098201465163403985147548851381738211138959124745526547057696578648337423176928223221421579798835985777978315670142921299228307350665606216126534242741659677137827774763149900984925540990449207247272297044893816012572643444497637217339332370461725265945434541708238178218289674552273204922448128731639039320368282616879793619399055196383454786019772225205705769420310749441856187756319427865888199384370675563091900851126720000896242352205748270115293984573203914908849545723020894162147357874365173872862260145583722410286380283237456761422245164708922162423766095322583370958783491749724886946731140123144185375326850498203246121838092867526628698354297659418998978730382390022536386825929863299882859925142482043226384377815186115322940337471706462792335528376760029997389797103457932448629176762381253096012222466246817983387862231130302681189526936031638542780114215358837467716027972778534789560594436428723433463969553736750457069308802899373253858384104381696338857308137052164753933142024388436947164204351284280841141793345205787790838271944360628804938317606132948840555798526362634129966498224352832604528051878435743530592066123336102495833056189769318425558146546904931530188176301643229054143678617928875981711231800743179389736619009828138798637391335757315928302247903057771398642089129483849844223452806734701365261328860412851886063688840207215880518981129898817213069655677353533786954949343648203756132655515600916800627838171068374686813065498114838012620563712759209172179082301046519736298551433777365243379484071409521004654674681990873244825413304536977356000354977219839567741952052621554493005593166664567005967937559131846140987904499726243439656054828962024029225355774368122483667312593193236275778551906282920918753252736567702979287145200029675196578797923424112618598105630788969214553371281783174443848293830887273598365167936072795679195987119245580601735687598971233550207958898143185511367841818951534630437408416019787053556842496865797111356268227130750444698350473744869529532336935723720805892807870023985082256945753668364400233117979184793492363492016364344555177801121394576854131076308257187602395495598925243889481270825536865133289420393426713312170322795495839384104579463785484317039702503723397977706759997281238864794461797147070314826307534201902008340069220455705796731451625234366539987664725446084289266422601855178615009901893247340550471063566845711857961119940326020188584087604626215477974546566456985822501762483270867521125412835070247951712100079339543880018875814357265668449995834694053211488128376231697927682543848858134933775135620069553107026042663231300293850015586417224971992563999857379949393749896881175335365788908591380706851507551981039767469343432686432885976813075617534096632555327672688711171253249320242812397574885409559625072050734659587651762057595146490218310733362832124340043990382453073206569652466009029396223681113659971755205145631769844840869365995673263033686623661661339723217665678371249856796869826782124966784774537506063565703903362128910633048652642120660391961896114203822197294437262661833494522952275767906171474703271290385690653255144748834814646107651596864310982890334437247971269372556881358404159708524538774829954070050164942792836606900443102443654440785454831436897908246406533932803153723475721921364949433012891263131470059494878961466489364719861505008374095818188342678800216103344711605752559057226228673721623944502048763698041778041634793376795508287565507168183813114801514697847520576989423364409119602917373897884678426370848164242193288350496329997441750376057604382689382106890727876673815120453581030038338053017859215962119472172743637900032628923228969473765945774107926344483426569670983368625339392791774681546193478221688355810510182259843305930937080808015925059580891572853436598198029588533964012827377896433318629139836920039598946999201291240238461537635727642116110388900170847726969458542637347941383509980670969872061712098484480129554134952281077122288647273686451285854219641544396926948486606511627408887272873093197912673508509981280670030864894510055060267898557824490210462105782618499527966043518603031959846250807462298478166741754211964299468898329107262374767941115936681673628843202946248796128334905286698135629524886115535190983867356218174593629532212087237820612504285618347321431541000299461390028219385494000576754220287503082213293485414947697665078604745000422317022474194121926748353323867228872474098293114769639122778228867157291194799423599519929883336193346490247112401466805418146872705036584080858641335886659268571048086310089429575904499572823292000553095208054635296959424085899478932381151217133425226111887592104701375408178792672627419292879097477028478699331632798760972857016947925089230607489801631780725083679793839153772794235145429560884105713169759815814977791018952473140482733254535451716278020423810423543122860011844613994698065675551160446695886571627711148193944023061129070099767756342459601454422620859497457293790944431001978593811136036257526714378215391224688862471672878461974132532297375429526278003883092924020057395391734097741858797178902133459381928009331851557597212652552368657166191093183579120994809425783652356211644246964906456761956585005876181848521834898937307052545770903887833583697949645343507101634225005823728231851551606880952145116372884434558219459138098533945022090221174120100517569511074517107691011360877793573312883552370575976174414207540931559479990663363489692265924353912311437329087758116826153762121708908678938402776858498104376463691527447667911958618672803144451761070261515400297044817719045026149952047223518387377768568903303896980334958214975906565958803624533749664567587324599020015792392376008755342890184574568133969123952771305301008327406330744607074222468593066176122994710416220623925843988214810819589584915906712213199407796846491147767501555852990230583141465754180963713832864644897804934398745682818119484884223290620974525049005489858062741206007697412650419441294520524585193005188395544186039870265515825173720545251369315713420761527064257328256498155424100601792057895995288134713599158434587973011609950760707449676873582071788143491452840632140068439940714534904992635257235136340007997864387400975104523322274629420661003137303561407221574130071980813383913390270765643436541674726725613156433732968419956918093973510847300878328403829300169978189268777811464292391309385088087920527585100198486341002265185741651614532837292846786433812608184544769024579145385943735850473788278532974178514205121908001749505559670918419392410657633722623032814283047865919908367534174084235704513330290989080580144067898440946122077161187913285782322344596517362641472497751927661704131544730011807385461980154220104687794923517466472489424049149229399551427600266844302549191497037750605756586311762922171565265738121061582736974401961774794981811131742009893497258282347891069825264044671862058337052290011846655996501012668748160724662448329022139377542351246121629881252543103169655601295149596439667893976779123190031618032872446613209109309282053197124747010302677910243719481688754843010033432739268669371940215549783022837541371268811412308609704110691590440820674365274319314187961783607404719278274447977498168133935278288164866854896118001772060401405148592660089245389120356358083822266265412676956491868696099676762341885645824504222558430166883984644875625256952833940437315429662307397634961679874167512414806988381932263103979018410885956161201340729165821236739013737636940835481933591142757562565613070625663557747379204367467723209843199559399646933395445592534946805042558733150832113793488547190015006950811785048677287293774692754784529896976215526274432593357413791090017337751514948714550944814961815635746640861458221400291771448133655233822659747050067238280219974521436066631704630167439304857739201622372514749730485076194405823137593187779333984641604250401625772666115299815221590008529624857379393345879291902291684232371346925110237093559540251742499703360689115504517720251202392848201691248769434256186936928190827345534922972233425868732285277577452519516546523735535143495888137269148423981141218816460319282429536125405439737518099320085104645151594634226701898880640482701927675778123459918096593905228404653675682314908567939862253708140535151157048809075483473261321669932136741036983427251774836142389904223992978523562039809889936041369624254892804210348081480041171696741231372428808575570916092892600306452790730798940387703218020014753918790086240254962319482886592328039079131537926130272057549961515023474075360247146608532146875799132438348573202779573083101183126607544719577497983846031238889979606978462303913980261848057992019731363920724594780809344865676425948654632273078078592062030447808154021294350661834167238164650153901539564193088099447809774943997436578756715776591859906045842682686685643581862100781831859422358698418929671107436566092613652691458698126158883134890943503242841752861812706006501424342004735299133821943774067072639177105715848288333479639605287413004909872854406504734511077282011342471138584349387427810977180915209028420439515770311283555499355548626125876237384125164412126984955713204387104037058775489030899283559112063306936036502203219578324357426271010581618899743111792252966080668329374978072192311374566164833924276049661138129043406625706829872056218081029585983390201040092435162234676257654152026618913477668005053374023266520480310418568568537824779472288832029136377899029557619220937176791763943852216094013698123196614557050880795504701401590377055667735680065202623848559863767593759718883290478347967698997726824647894571798249498339666907436527595418590852506952193381122609117555525552238761706741252697828836888775477480758659377062537311303120328300213363616403016297611815306301515317766604565590368986921058340919528552328613341353288822371746637188363229623098196436166170749678866620843125736817312732880164673097637212372435655297853621936831149674253053073468081762024942417155129928558195541482062749422856520760111901557787290731107492975898371061706707047389361070477418371562745205753621739415308773815944643697670736941143471883793870995970167289063907616271435406963551565690817605408991393415472749057505925568468345900366773403648611629730006110937776249061064980117125413804957349155046480841145624882258113790886130371155112654469810458798679901971740334317650079709383440098496390493115429479542530553350344642621803663288500225051341668950999127761245378082236282893227347540859903688004838361158728456133666161582537124681454338785872304739015790751496316409820485965591172852671970762624621376446433240472883885575345263456544979701182572735920284497529356325120851012606170044401202021538505385058451656289049477222018241706912241308085142914798792824848092781259573269280787817918399743629994614048673160548846679006886533014656799866170822005680001054492110389037783125367466316461292461917351096749315874280704960601520044711937235906826111504338756425903017746791392099746492297332140827103006875871591916837469292296167561739987993648351122116630931000673160942298908948494908181190793936790761333493178762787712512499731376245758856863493709560312683033376788526701414844452566253997606994190437864157297827527187504133143655599760833748204564219942304699763023477960157710199874736948267168611123270720527205588052629587614962908693925562926741504697322150448862443600027164026755362345261482941172868232010175236177246909115517032504019088822676098483727987608030710268344767979951284529589769429094413077818764964715941564476377152951266590529524538691767704555371612268970352900726028053534651236293633773383485868057812709988380782575212819600929426738132479973856017566583481454044863922457825000030083818350060292950294905790403808727107031706168349596985213259099086742403801713169356248125101317547923696347189574199012506538384215162977730030004477610953598850872297726840932621247524409380132377481875799551512225521904914937541181095432593041107554604777470819611036568087896669517478711013840367221993890862612330651925507802496272512042486236708633557796871339390621264986330734966665054166221855315135245153373076178091605391518804862842154499319780427845216033601207677967057151997934506946116453897859612213476353511741608150571797061046402640679551279343955919596920587856618740450847799710977988170051871222440185689917011899215774698631687270934490518683226414014593340957456114528067439877601968740527130609068585990629877981822180078144822405632246378246245635565885213227477256831071462372885220130212709706949195676978728540373917205326302360800731817937283572440663019980309875322985777009034271193048730856264369309172475011003088410190993201851623814275684095969552956260392601078118853019907025492079992557435060549931934639477558898674381031461034214575876790592032542732051332376209654797545294994066643227743087503972597910093090912540615384539654815418072755904072894706056732222135952899534891622521347960030034534119140944679971233502782843081068405926902767357644918540156981148035662100669677506210732155731484884494417252112279707697031053951148361167106448975130509461825984571916452553166260938159043836251560299877037518189898097863164137367662542750743345464868858871499335107231189648751096309489019561927188336723155832782393665058180108844239603296526767491838408750076202645965586672627577096522069047004522548059422820684165171121479754475221125811993020036776798213584282667678544997933211883226171428786765612766726688420908847436326062759476235952823939109363459285590255060608249993112849955555797086861947091549207193780441487469981182086222921058865819283756475136345050096710830277651908196510752299265108589455834314567692011825562495166823314218462507881553176313592176016174418433158292071806206590952869821069264689191706906770063788852550430484691438751399903565909029220118222685278589167184274218520396394192491987135470133256131793177834657790654518175500674568133906418269446229440315350266207465204717727123546118523109409685442723834161090324748691888206836943890491861685180632347368776876670262541322928557701698798584766551322013643610344998528291391406875306796483833695649323990637062442419927325662929345779693077604252866228745493362421879561585994111782531097850277653734397878179382540918082037245335652205158448247713879743681278254869828635681772598707094201035282630181531540368732804253295124093274453765415619838210697117084920792597120906370176708406814396165978617738901047483248816483130486211252732504677858350151739319472200199969312710186415609505879597543784479445809629207098185840575560778504340093088954026193385543563063943672752766670293037990050862709464411668094027860060939439605814304348747929025836308094997283219126134147526874742721721901047799351890538808638180950695142100461370667479991921394224134917377341785631504282583039639514865294343004796289884158584288719697703523594510583506376115141890123958977694155572020683490288132630242254983391431641564575174750924551363642845426527844131310455296025624985195460452703135145135397254214817131479089929523741709165162886324301719890037368026770798049445187555554874831297951491520236210783034321650914073255191550745637201495458714307440011636084114966390623458003888552089120876750651740577331191337211707022545638883117390965339576768595075348965955723594049252050410575707466265689259251240092625617495989974551514862524994754137817051816047469796533413912941712285602478468676939490216142568312125098254104681960641879262193803424312998553497692713941682102196385756794713612294986934711363342001045930698426881480922724891287238616976173629747741981358677805251801862809820574738865745845117559508770519752654859625080327012586547892872555565544669295961427417761701761974029645392850849603812666181250577984306632990660434604875828528216405169467915589848192849330630348785688644002544846642221725149921826035172718009704805123935237213569301259927386196339437695759585026905728297588392948209902620786754731230236274354259410692193885626482243787582701953221160243799366589434677474602644288554746477081555485310670245562819821504842895334930752991361725029554287164771418574114175134773153339812838755681279938678059650203716312078220160802772126619097868382633013213772147663292843591202802039459084357206745913934468248099549947429918069530365689472840141926161822832865771607453752741343300805179565811976961347907963741912005064960669646255790586840580001273204351786528625398149490103311512432831866179915689880476085091947915540908433561958533317639254856145095579771523669854549346028637611925438948010979541081896480755051325040134588543377007159015174941593249530455890424467262874500405532574271002946323433637843596538467308883431982536508031521336836878289797775568265647688550258641030216838755883573314878949239254523392778283307017798138961519630253108616027681207909394307403999154461610969254951113606328576110889594020099258676905126201600139218608651966307150585297966307779442159938081946211984790995930118516777490194643678774989201965623595672128469866758461559241231496997565574528520637442975370003313486752510617280963504466123391742168946079086203579176766543148446358618236744785180368569302120110969389845259455833246132663904421647745439987299053733243982887043198859791196734914855977397749051192169668853653957240639956065717053930529315674416407810617918900092661331408589108420660552324258432275172362529923222041276788443427266829076395998294888699940221449007242650091911326787686894108623773617972661265532110711922353468687022231488674371970556790989579333064972705486178944401907294743498334489558169072839707394789308652715110906797821614287458124182628589638399251280543705418255370477665599153670853799535501091073740271915070479808630372357783975947595505540752864131464281928490267176034272718155281584618881580626569369729479181876150694026029291854200584434041610489824899367697835756443231675482333968714274160137918223453012673059608064356245801452503427951808194962226461663002485177138074361714144505589990422903427434460688603168674718295899900511661710399671868091562235536114439177393918690695025523130439072435985176256763643221541288518558949098321058893499513701056276750038476685247350320335167231643830961095370156675281557738924927799201268174077537900871622579077482101905112626712676788123348668429360888255828273616161303389457496293645459133050227190317405515635940679409463333338626072100668414697134825797852043415777785940688156744570701805311911847360809738155775577500156956852318393942344758643028311729346713209176167375751465547475319708589449382677883080807007388175411782008460832659099194932518849541338981836103271350033268187310463864093389229337613805536461064958977997994389300957430722361100441358873149865997270786589707574252947914182751185956283451933312784379970960606702604897788106607695197409138602886007798899584692306229895923121855804073705253817314855465565402009657252359316263705814461274152243314024978773642556505231171157347762256450405383068381311706781844936096764197207591516858580960180320012379886039578415931656181828283629272298725292783928429300112016846742730282411646686936105204463988232076040850779631011764159895359955148160528867547950696827991723444822191536021146485692381487475355588218964601771921794375957122972364153695092813639474749703142187278374945409531585189651080836177484533516772555762327472906584820788157166730098152519580170359703394005108959202494464917997403896472675289294093108715677149778265638558023296252243131829213406498426647229579642159662290827200044437160675313446171528765239626535345793802977337356325075772018988971863341996143079643266312566026689073442882180028607372589775509647269090537812750776504814047312900613759995926731626329335562120384998141643832212219311847469365432426940847601346364953407233408011036518318242890881571147838981680548841775149933404457249696100328960473418213281584165277597204518398191460223986450535670935661346512949154582331975617947586263982475559846729029207188390952359313352791346273587915713300332701979302489450567091196547028654770048722740688697009637884269069572570940463442727316539102053777870206546543442521116169398593207899791248010235679920953193119602742575933115829552437265172523077782870795230485119800652934531333963099558031123767012939430693808519895793118137379160372591560701518766018842145984543986908844316961131194011163531085401832570490354716801675685438291493533234250896702208538304218934954708980894482456496522567303038306352571658932078043576707216512556320851829411227660260917169388070675625560084413458107313953169018510911037449579525980739095619259199368514155873044587691820843663636828177058825719174097969582260602239180142523818399587434862231166576998754949082813026691127006850142790766252754772376104068672599736390622427358764724778539845884669497573528763963381519470411381704560445081756372706971712316167624551261850194009713305714021288668540836573053611379413975385397411664026163627083038859530693125004798488425791182819376863148864846668348124963003086538413630854560633283123204991004835593017428420695151603473423927859010345249822333458274194222826373013380288503441122204230593278563147940289935675566141184802759950375415992764782424416621603479969297166775084878374965811028414231446649719531233202841117520801832124603798471334681091470028162735595720192627111031840564741515201260778806582880736483370017393087476767770512738684287156639732683766384627414029420122137979639367219213499706985879318820083117608262081855610435023348441678913723826070053108636184354917319016423601068779278232008429785561561441996284592534360480663583824537059076925688002011580168546680299196091595144319391952413826285553362167433325932277043231201238618684939529414042472760897655633786268100526089635398293621265822036925066841542752230864850929439928181931848032063310453311398560920769751170616782549361757700259254534393213666514257412901491817526260379666750149542659543742549790004838779558284076650583553420768900636023605523485457943542161065047060842943300107630767401054203528673330792583913895802480241277771042415109446557398944270419499386488585213941443058700193925814119894599221144597171482636289181547050090152585805708676555227458827238057846757276242955054003736188155182603036526813842435072153347460661185642725969987970181955102939385113075461940895498773683556634704717231479793411311944672414055919874596209281318045442409089063719507926132422902116306909088259601728982758342481747627944835254446928972079118080759529381092127502243015935914775326868743792150586655153264711373059425848020397632299435093746945059034672499436687716815052364901907066203353869371840728797560060393900197089969540039015919948723331817906008655348377226012586852671894524718635427201764846405630391339287573332988737810076108079076429959167151490807313674798737019608737951413868274512935416757012887218309513584005725225141294927955472922754078899441153681017936450177581539473093304630380729468870442836831187192416892001883346753021369442203058421691187007582077408711188574946158129940367395530189775880182592727229171878876995490885574255109772314552176014651705426955583114635825681426286395148813007479206982226809226969108946970186568449027704831299391895456498781944492853376446604990988448077231984277279408409749304807365775788343565298367571284476874435440940064278526735611105498047360181627131992982250814278570423457980775691476501284463202395530098829469946305488129205779193992208872482659891410290456240245691125124813748417856655520432800507369562103189201273941570678232919843773647460680298074915075022693853244229193389686431014664430375898547821363614428484688669221375235669085509252004986091999966962519205535745611425559265062825496499640315802306789525453915747182449396446025627942940638880238698629353192686175307788005829270904509671756241012006326191832217691851251061542423868384471254166795663741743735592314216253872537624863584252197650428930993819131245836484960088077773314485939131469928809950259788783766022610623712065110943675844576197288037647910010444767326101574061712854762482539609508779620126568039566010868783051679050869589959257856981403699887865130686668559497119099329977519326426137999248708644258441556806566612286376925837871430484634950417952799512849177192386180702804745052595584212045137684358438592646100588917240978011405497884314286556917528931984471076230134229969511206010607676991750621610624040017867170000950747872744865960555794558461954517581149913065048846110675552120698789713786013905387387913765784815455243677326377639500907961019714956155514380073656352757678328554926815430422984951638550200178948459227841206135458663079072310412972952245708217719963997092472689633413334463053972450924786978167085413826834591993439563913177639398575000413156815723356946425456004146172454016512982317426929276956424568039685903284119051665830726849229567357234802520261947115451130880750621591599223387486474034601403168540293663915600774867184539439299148678212485918317791974514941976192106229199578660999081607806236088798912324925543468585188826772954645924886164956280446189992220339283333318247595106172356887083181795231548353567771780143500631085240771682178360975194487062090103221397760320763207173040106947301931874677112048687216563663160381284728422789767663366733261751766200733147277780615089682709843535228312393274974016916790579901823944441430823830472509716431857530842455035482727855811163424922871433510519318154113001546390037173003487442884943270439035858527137162444074402797785694741623661639581614654264474521061735614188507018808396359911690658803266646974870696162587908316573935545253740526541192499765479698277025778342089071131717576205416008103683720939635366238285611757665753270196624442735498183397517874372907168686817472593773709215453036997150127161880430352556491933450438766518469204071332669080072503964633993795966132033682238037937948245725735649160798535479683287678913561127142210718926857004535810762520546795969106856528832716341172915913965738983912373427882644923963447330860280089839470965885986526235357132680656654105872663839142998248556427270578789693521323099380952887570986059988901166680947795940958868705264546210787975839148208156805019176363744926186933165259975467300469593045362426940840215053946771483864022014886466694498898880980054638283119634239157598894114513422851895892964028227679590313769273243029353567325642935551954882443666397163776801830108993621479567888170176983832431666143390663405036329789379248761266497336565092668063130406941083903691359125293573095769705471079168243954108873240284345162212728459437649060684853887478992665010567489221552053015167417317550449204069341374184027906457445608980657726607427379020074091256750410873744471880269344963251860221525425731204026658252419098889825847727215240334118646808901214993670884349550810438692911044458963112112142336862226927066390465874191249215847355004695096875524830148004760111041631426900838658623078103396092406798086046423467457760201167877784882293474292752698997203220474061827613682357282843196034580826527796311097584005586043482092158765072672281652559411040779362709848272410206653129979885949201221789359463139486524280267536071164909145121728593724776111418759574201280611620384614334802044832567241703434179702658280159477918272055679983833449767051383977605961209370900343220127805958713119405803345689642027873886987315055379451445942618496287374186004664109922790629325815786707153350859175300195339871115326580042936351143373001857681497173865295973441809952420394045660641965761337138425551149639835399814867765770082437398631983287791406380933502309794391516114603013011895585897179460628175352035274839344830393118258538199968003058733928109573862088877202317843534746361685259630306488432025192214358728952425458009681938424333872451802519345253548877280300599704621241961961847009617577045439262033473589000699733764853384836290225192611995941165470081830463312658496808704905118040416871720273173320026713140145983958668202300803103066439740162311819384303531739832606318503624487693786693301090431946988758390120980315395234441540510449330799408230848036112702803403301238137623334805142304337697608803949450646553172411527783104626069766686800044134508958134044403010583049881416914393154982024638486425954125069785387422750319306800238100704721678760166641617516761430437719688189832618239988862896103728826024759345226686072015409592959810577782914314545897394467550714827739528883773905267587292720685483867673107738083797404345232127063355780109326523775998374392081778947409450863458737790776269062125303301847165994367139710975363419356083931695583188524164153060566429897172043248590929689116851264752354745123650360219611534307975603514478042428904527631006482505113607516115763221765594701531307731266309735264339679904490706086668693954674301810543352352971890552933108461193469054204528899332787394275803013113959948185399415015077334654431820488362509814519760944343266901688313655511247858529315300712393167093989011786900158473858736738170093070900326208370261315352734974327735342600178895652789712683124985514121388525069269433118177363287417181685176859874114093952677123785259699468002934430264438296054559998531595003261220307742107749280242230832331333689178764201118119812974929885602923300967988213731915900715971064216347648078349410690750881862957846539071486223650684903451148238223621789764064312692060086651411092829067795213008058639288085433985699442298972129837370337266404409875918729847002948849803846835029283850032329360530459987748819337168781347489290008739983970766235665259645623926317385876104650582755028068278504491441086834603735688805550219333087929345815093559898740898216220430096772450531932945620391740860127649507645211654505731717661945905094168022454471967392265942951781024318452820316949982064830939467240351380163070879955418077212917155175695240971919706886604620123659108824529926532031510492244949745949204208160490318264590808147726830557026531095458314744395125858085521490389537946364702668607408605528866418142768197413578820688793243730388465183454756656480352753872983881141448308474840307779266032002780288396456899080140625583925896356226734073862598108988077864279392763526023932160026839758544332962512925558629660852685834136720256494452812289211067923202987459031809252331209719239746322312298092645655382746688146240388941547139794447728641627974749221980638487250981733927531230563005732207818509087572455759006107616190156218563882463360227932578416845108635977725321222686859355595108994337598662624007149096697251936029437101399924952291918868913401133984861959298316229173696061169784875261548378393682971264540574606094882294819491030908825983969922164372289417437487380660735587169682072499762403963293947906051478691711765451850310645747902661188290679391955827405874629222074951975403755834372750983943158117752774630591294651277675424989681771055547591413396305990386804215449458101599598783347817923425669562360844835083417539771889282500253167343477677911247473460889065134796480386729039118506046672373275688936858000525122203964410461172767442461620568304568751873016672488845470862803843765675779175629065519085019474243903460485555423213508248984487362918103810825173852662486809917160355448033933305184613737167273562086986531625061242541539315897534584833414319044710155955621506988974165083733174508276887342839842428389454498206757846398615029847990246522832930227725965021122250506053993649997356410710124352562463130481183795873739715724113544796353011235748418819846622673982580101073021546970365634341374304385205631465465934587834098148824426260725103752734807235931713030041852648242906269950927724328545553326394242598363601644072268585303101124412207832604290553076231843181039361770556782723809489821543861507867911300631888983547046105199535664897227110398872107179331915026203204642758981024800654823477355971942080226364580972779339119568830539811018990636112771526680464605866863209443377045337878781312461586626742196668811909159238499908802230811969885812779434330865519862873526450672717676914844056416952659398412227783436079898274886145284972420043719222572708246864025408195131656038506029892743190675750662678554114093789176003845271670725724433711121956842139515924293207653625240846082576305446795087470360642441582865891161334645673729623793321677718359363982822373844398502141412291818354570071743913973086365756377219487247131461861736652435794480634002179034950926757446822396487186462956076826603904376228498215395503449999928039478538072755537242491438955392962552102377386185575165203059602712208123142398289663607680890789449672318266513803655583979955340226463068841070922493878096400169932570190125041353581476966752262086515194874118233626844276790426076820613284334675304213835409844021325917396613781035640553660416815761690889128612686885230231449600293228738508877115152757919761842866757879367657918687628792415750935270209804935461116056098674847712063858219250468923543061142008298190843994590616895892675017901989986820402727445815423327219050782239765925247281840774636860053473932292674650963230646597238476002018994806281449207777767966416696352792127337791364231258991414150849256104059719286058417676865030673808548675888222251576353994369118410071654248920928767771239331092885888082838562219950961332074994080237804125225123140879328581480479976974447885027546041863489792041224909016008967400247890292470489672610106370913528496647605094161322512165932923355526518660407029793803217625007563208381547684132422713874998277503186179181679924252869833673257045957334824280884879509367096738903904601170850681391876921619805398790915506034540730567996897226017068832765792170117283110843615725326861058855003514167733937305831580748140091412522579299107230446499256917749886642232252897560372487307087151046910200443873680174292493253268623425936971486753129097433311759294743697770997577705976888330829110497720426767484703941325776362067079523700732143950702184758784200969616188998382969389149444261551908928765410898686641167449867019470490854546066194210131343878013138144958270111789981322050685916697174350175170756752456877482337468946820975665207596016651008160357063832368406299597447448178896032819359964863518557583321481883442791408099390108635409892526628305752584764014065327452652664569451979984748087483835038849965495890373237305305742260724357636711556667470619509257936108936977358969194176554616806150269557592980703034328771740839003754638113576271916734764833541144730043903130966504260189473422035187544597751723192303210929475296952053297259172752411475262875180979347006555624666573848600309344981413039827890930404121418870384480132888501567995505340965316137962615700924126565127670585868170278117123888248553247619760662943080915587361948780426377525416777921595678285815380770683969530843879556551601994120237661565317927451772058563931036040617002995078064984481929134312961648435627281743209085090681993924814273953258989593916764061320296985206130869605294925464474430981108949116310534193941040133930339597260092780479478357880158610912682148814692732520062500510240593094946335405107935383005119411647424974722970237457780314998437209308827225994308097558810188812124903022956921431982352470040786195618109079948063044688046643050785151957718114693178067316857825909003988393439315570637322961205963577025304449053104390285331463574244033698432715890646087840463869608314142275399075474929646214597531984506841621398372522701659830013068516339879888501810532912052352463992475019433035467140204525151026556951459702436908778991497415469186574918155742115747556332507367763083801374641763599801200498391505367772490542173012293905947891887831129463952335717442121208145596032005852753164615589596996668677279455607335642274428182930344144140575051419165979154452232356903353363381175439893415234450395317577583382522187699969139626197061035066057298295844763225062231916537193380903722627996100184031865849597297931787596214200397030768985027993042595198640838022627857730930820867372994507892971040383174913493570873389033992669952432310362621303347885337254063573004944154890861548559506534816304445540920699829427698900606426247512219101057135087752748595262009130001494551918169926084252394257562574029142778156606596727661881228018320713164615666059100805971131783624765221569759688411622948468500704086399021624908921114235797544936806468241188725055630388821106545726477798041499598223403828824342150688933573974266244304153268914723203542185722691489769067885233194035672793324375015930409034571679363134194488615530416448351268334147594838543835439609401451134412271413164849993291999913445741275535170052521721604291749628784350156011069647018694481852111792695988890515973387039322515312632302252254631926972312234355934168695005597741504295263395765854286150123343302985413754694239305812013838595682488823753844776199839449001084652795456476077394840547065619919152705030401230013871858530559731632603699803847963516003383824122963883261756698818256920224012434611412275238752350052616692977116672073375583703882471598179636934757561716567127075135417931434469675124866776999212388499710061752179848521653992274621373173059051545834892680585103445364788865242097160666890889360820435935126628493154819144242909854375815974746992201994355772222646853141226043612149851709798714050413420944522365986946656697106614168985041052797430649573799225922838313798968176078270959140288126987938073048718091802262889541234176376570305014067815760978111668044573076713730072299887878283814409199894286430912156267211715875094295803123901096134787441790566463753264816769313419730263938236304019932960099410427531209605242102429145654260478322427168111020945416771470643286481248005958249169321921753786159933186730209121220639961781250477605574906053078411688462972831922286622046973761572376271716792298360380292695362514242654555714475989966654422052791542937818532454786691631616991236270672649451216753106883013130425123214591254094398415795511911739861793763023121438270924534044281732169710952139327405044597073628442081058597859107711752826604920519017725747174615928892924070730106591290967482892707878727687629347559365788373406472568074071996053239354074973674242597165774669411198875291207041885627925049491521271571186884514473311360287699619224671876349127175021082460688765497270654412300962751258131387147046112179449380891955513224802003291529916139004025651627844598680323217019633208281675148424417922581235373267061185559429353369235361226247038044498527379254641461133365966596182590821353061665474610453109578162632449118948405202764625874513334835677655770728545157588227379091227044730033547009005974427195878465444892858529171189880025157103222807229956545034563038237638836606265993859499020235226564395450343967602426511405087187074369150212395067283241433564326285544614831736413320850803840046946867619019513785255442063772026827282754587496377783205293793917133688596072411519269009638533151229872244127591608141557540926105711080848514842829459155408778201715154158732942102779228158484727621128170072151968896367872192829839139379997067878672852212696570046375557882021154440317612265862677342435408838687973203786577653149422944699198503660246890455442737184324963858277471261260968808209879622138723159613541798687837682603469982695789569341836471169505183776424507627237659818906059227750016529409558212927840224979119100026759437807880799914725555201059318799142320301834396854224721486249060413297198226360047778385758904275679943681443680489561214182871869491760367479582201261466568228218722244581514619797733334770123463232588530513931885768854262052902809519811837746792044708204893624746003915982985552358887556536663820059713958053484911225450867480102664023010078182891908073731434665009672332492848401521099886319060764065977039009233111986130773781593130661868607653450683501718112839221666265364192576097420514944234280463493378519069009448325666229574551721383804257030834092349399427437640192960488991098052040244332873094744978643403498976768951836506165019910133945173790306588003855234300167346515653508530271534966784225460317606186403835537039155313758551486380770689158491062829331895291501579075594257668827094127725155048623650078130273971182340529329416094181464243279619142925635443307381238912623753564935886877355747316224409143819106403641009720567353395863161326352726791522248197028815182860147480795531448860610550784325451490856782987133404517647767103488863488680842620737641302708109784454069876101428214460038298400817938560217603182599731973417144149535189268131029722774652375530138851696429068273020430261167817814388711438213104450661447706783931365998318654893396753744628800487051452147154911626800688310233057361233104199136709290798265306864464979406505580219665317697194381126303813658800956352705287901549756799332366454508039152476759834553102352605973820052678208677420689458501351590074244872489015056983380432454486205828834552519628846203768626330775331609058965771099494867154017295964960341900891725334053039445385325909735407499855406320703046979675007214674966793837366076942146258645941509627475605773673767000971176988701214517890279789795769147219257551701238099678034606260759961939171241048906862023970941436038753173979988318523983563975434753900409420340918061870969000404852812433218427707771002262019680116368592503599361771339833557669526876286388687773801266979054218876444850252608301812101825779157346555338361690708585913481475381061773790174460136936797688066782620509937625875078712541024334115789670904954850328314872655105979216349790371577732513699249001398346126717785565312577077252871208903011967122770096187374107245361439568307320584077618969045765279411331319794657925977953269366950901060030159476903511639626988533866872102831695870632758487301659646580703691372983929639391097727374019299996486347211222725996388009768674753099313262805164855857970202905677825525364826271900876318344326393639610581404874807324898708065297921077884429904331721089624471035833877951521181698243290363322665328106020878533095937549428633154003161884249276484960795160773707357878724893403885477433878898856765229627187549875360536860087454644346131526426768780983154896854491598870524114884554816988964153740862027396915133548433616293091735391107662362682909179892640666185542461996674470052617197224692997280717867218500956936350275954174721933051126564337395860476570942026446948364360231160040386203320770871555252065839485356386945866645399785237964676248486649752856184052374414819992750510456823979525776142894763315219801295380731981723769572043183065198375700470122767534205416934700551540923423911625935391800312901924707040069624476763436642779759791645021731179287390248338172767766555003301878030755399485528663694792154808126339176148455814804765894603010561521644709389183409873990983853486192389248281379791194715575557729320833545522757740215604692526993805016543524463848935557454491392968265617132452944637871886378662500610955393664773167086777312806043183929019521159003840017200643609572590107382494613532419703142086082311244715210385044599058596238399258691337374523936253435567855727345390977506258080276322373280376784376084851379439392501366163865893085826198546092067092731652708904455212448849940827719778679975821812174432555927761789005504859538605498654038019264555600486593111135218617607376840857337429895264473124519459560048813411992983706500188305544201415123690549633370176130980290394463090030812676614379072223991822781757117567552973068959252658522313599747271551399138795609476410264732118353283121457019610988011054012228753949477636485988875324505469037806884051523015840144433622665717585446590736001157009363219102588795265595097855265610786393768165658568070225097701679101802679382871086733597932308970593512942128402054594846566046347890042610704283770564915766177786868886760036750180171858138140111699657920622884723485814295029693144193510724571093208171690408743152415128877977220794396943714633510011339868127907904794231818453875006004185643631109097619527892522411924946371340780136400994881125011952545945354607196653340305927977559028977249725412364511609690108590704745392411690588614677142295023351960952124311434997096529849563828552754143743772834126102619326462986054839270827082107652366602652452841298781786901112318541218656303039414735904230908290084919219818515356286015472173892605832272666079682295292711907705630214249582613798242773515792350379907529018286671857161416647661153481804744288493852090891773051062394997501152477749954169346704497436644984975990311358742584354871700039460012144206060731671269152260788106554163838812556694423367661812993224638797783544598259934063629161082772589705350353679086854377684730340646708421779622774269056828474403145239428397861644765188999131225231911192421177199747610553240287335836283121810654033921211998704795411723015603115825939210013757227205691652944085297937052269295583228017402976368790975029792870092009141656708652577700470246911315655817870012351673018170022200957850978660550929047264478603572587380447450116860186150397325329416474992658478808417773509486357430392228800328141065154749433608794290548027405659717557867981049783497660735287812389290219911479522363221589292747058930364613617347015065457378894845145803420516616356688086116320673506143161368129022380754193348725454031940482350776926849804956572310719321572107714543144167287813767226772926713215980470474983808068062761130939280900459776797285512363894640133268496484386673233642989414005820877389380550380750077690320776615783449048603268726419455760771616561275110011422490697370837324694141111609748421585056990743420619715916544719180004055961248140290642996622849288751056517932258214873934637435656184528578321534302155942519795790351202929175339188756151986413402546560441715240028839372014257394072412103854423193767550360984399556348767691227738152045062634020568063048215990269640260130381224731114738752378077940354728477520578014118581876076566930138771312048451265047525288909185681854919928164307169719490313932473580306799678101308606252382537545073319120035172551501406227280213105790773768361275515593916620996853184541088796365358321231959430249011977141762448663373751149970509727600079251238798177730400182170327604562994401039017479267996672401406990830476534926552711821558512776072758980174330126619069018210566926467047091733345221501559360361505161150047883436352682888406644350997951080208344220860257828437081761693101848171566035786879295813860746968039339873154585695939805105280125841927566802449601840649665611263515091112690877265873759360567561868955432679288058356809717048474541084977580078909283507240862511280400124386630260929461706206696365823120091911923705122329289450347395664568066960210673258928108408454748445831699368794262853094775161511486758976038663990603339824720322811470053902425785735038402361628265851337877345124236791274462295467981047465353847450116465388968649405963509944383999120932825602925698729666544857094858290451526833937526676362912159069556167286023438650977739116715383220155217856746760972471999226587686811861459360383703794894240079275380529969814723802348816779799831854974696356343236496285455030132440104347640417267660941690737623154324148392167869420910904464494658665884485876678161886559487138956186146792545654787306994453405970243952081949188141026489732019021747881070995073637254043918184367526547172262073424556773156875309059560002382677730895231887602213759274986645347544296557744794151430319775426328499384309253848575605971465690991958432021851027957105928408441121315708057973771708770600209298359063291504904456641361363954079404283351903300161677692270860418857440373007378046911322554226613231641480562523483040847182976384234509249675316035013078790587218642169970407365751677625953976488240920447117806548862535950676262169418665518892880081828064462265061704270564370787782342539384875480914973784941965494523053646848842925752350614108558608764325773727595709554567555536223462090793524421722241336867213731054231955555231822318098358584557424652718714001001884016208387698359959278603562919931687765493043616571590712117503914815886511732298861814603312792681322407970031340838894228110033400076965374465490229166996224894149603666925045040083252520310745954091293261349570002584189397829670164389985795443990828571637571075803636012698591514203803887413903983055111502868460044318166939716079863173030619550444318687071924725756315917432269921023506268446552376007451544828784791663968440254821313385669666907861865501182243485600181771893163960301011673489128925071282228368958033017138661053308045793377508018508347121429684897812533544626215196141779014823806650673865677612137898530376888100098642119699976204864120988603423894660916520414691265313583000777955117134180555766278433884444425839898220362354241272075415512266487829308346231229331192038288682446535266557042316272195328284292343660837000612513174008155769196267263713136729172382698032144999564732349893740810691838938562044679856411748767079719767669758882328945716964748544180350631727302541510464775223673543694170255018723377721375380276274756397484034850253358455222252847272385457772948158426315279786967377543007108819804993332280458786295411999085775739661996673664679480839245844040192078753262803047335286798557779891261426257709848982087553886984822816790891098417041598204942278568675402967285589021704705815293437052070309005375615321243016415886700423956692354177601462649452738056680899956318567090370492068451187994500703196272742432616771802889234311579152061004802439677482735056175887870731464565621397685686161874954249799306530943181732701644978074309953212076166513875935092328313348288412929989467717857767659423754535402545572500310081397818390905250759755180084134984366943907583413488245175598484150058338212023822260990356237995508875617009900781254127016837208615267418593095139067385952106703458911556956837724958190903569201941319743235208620389061494959625271981071078578610277993722913856604344015393973253024884405929140496361209631392891810154023596586183066963100389925755681250110348812046241217524896695251272593903711537771629895616141313724508193122494358762086373886846063984307002444443865310404385555576081735107842150394478356247159725298467298515942638064347650315706436091201867204822194720699789919077139241580915477283393030903269314974442626137748976233306431412253876951372534978731886743359917765730069440463704358417410404064223013158993542712430926008986025525977937163149989001290367830005979969884694255847085969724281425921815582862044399721641837498498878961636208366591059238671041585754122799710155989705129530947901200207167639910770265149865140665808602569987251443845084162940264807030608051395289327526420560739995602283580146510427486596304263302266830546987698062340176295626643302254711490507431144035727116693888143117549022639859545874784082800179662047276210525548650418072281670921448243296895143711820520808066551920331510491307471702838309607063780245589589536192847375423746230589868423346351379255173628997095630590896839558665627550696914936809434283113556473333868542887599992077716739065238947911867696797165664344905240471004242908704803351836110837132027932504938475510692518645400452549822638788977416839895743426284241122495981809154390814372576288614344940832828323633533323904012240103431451446642259262335060063605340859020624276570325112578559912951305725778711846063258988735169802447432954165847446469244089159625656213117466818005116896592219609792952808200754159324224244972623680457872546928367238146520113282645779337165481410066844860148676028466463364060697677919989866059738470430135124520889642880264978884159296434262115926318065390830973044585424083491137938929537584542209824406669940941652125911974428694838639921660196662809760051443054787930384441029221686259795969292530514148892556099426691649957914786518271625439386490930633078584525367008005660227898568322438137690478702889748880538147971064966728740817445218556110823423212166011676681770224488956588102741927951492040713680838289563920580887114877064769312656949088416234770852586707216308115217997393313391201964345041384892965021980584619503446406692759457371874916315275405187455055989969008359825911322153651887109812527912703652108474209801346461296977384737805209233428927227351006793038171921760587595926832074048824061459082389138125489716479037754843806028270445635541220252147371916898467230741924610468533363106991278185079521269390525950825279357464736874299203438846248666791524218769387049678066234834208041968265984318395702782388661429819831463610091309031617673422998839104795679577410648974631962042186624211334861957185868722984366394280505946796197763387108954458294939835076482988330780107879151839094759383857035725906330256206187194640823612511959475050442061086528313991298032761319925578086777075841883252546076861644031083611646065433208686525687207900894718094356112471480332647968333477092451343401850225088860484369179352539703953368338265742186244913131463409632771927478840729576331519584503554346811290461769649453596885783717130090602897072498284535122009184085285003026014125414185756973174063618501256706387126133907366277691786368384058533139099226817159483173776131045296645491729090910507597174060164516032989264059233676956926316124395692390367062490942759498710041084674453605771607130422661775260944380237048602447503471204748239237055914407237304067288295137815691886603168779075693843301722523605463352912501846202120439533070130010821592612708432409961495401864616721887239799688895436558095506359868996112153732276602513257153845710661168596600782801554278801990687693868020980019397616443742235737726705467728273753007922318261933142845749630401476400155742665022504487890979796840003420575656167560329006481180424723788751524322870678608908622740420483448418246410359467367497149946950065507726124572182769073932052540344799042275012155757070380254555441872618038997584303504885049262102294558261051835631673698659537005292207494475614868579518762412617455523379602756007626191700732612252619229563772264228496677179444162088995404755857096160416546667722786972780605912163020220234087268564274645519192872086795259376899537363036825320909010547662778379010726227587994067495966517231730782088562315849883215875951542288217583124001156835369863512715972628367229419541971945417417836550976381157341396370412394771609744642489123973382323321485326183547126867338174417677671981460236895866648321959652898645788202015156469097013590918275069515984703362887458919058661323784979088163100400948637742937542991355375393725239286092750865470975836441515311022425162233146119506768844967484604043428829453055686305570514127207344142118714451918086522868575133552455109070855763167275427461833339046048480092213031590206131486823315519820207470736593987175458313011626455163294059073062118141287197073705352093387722653720837708440675991595809184601285591235640874173776244028779173350776933193040020420768405975299589606325663962793852248583323885565042915575029065841582905652934830694998823869798436215834561750429824172215385582757625361458540276647670775195628981468296582288619122152907978599097685214404600333826771510288154774377393256418485453894466500008324974836555450059443633898881908170146814768707743494374253486253246403814417417418092157204547359637740501562367430255860639144339093299018826467119419930915299131414492887413569174413316393830020489279332112850585390940226623402121248467564672088244221628565976802086504853741723196378488185202530891428521605982127985412880097976972736742615493978382236304146731248599904145402057239185786636356432534006799587549020489270085719875953145143670052851638584960497980773549307581192609389068871715794513071787733298720389360687131868853208315692259130041285498639088223398374913630243199396343246236338707060287700602497144896452968073706924662351913159923096887598781566391857878068580182102157128255872930970312523698658251866400457044433616961409321209453807962425360426648068134940659263137593636882429252228100702873014663030718958313503729158209744459154820109628096470729327258022569705285245376863097915579749425754149851275224732169146464022887776279282297618920133578872986689471594312678840707209458222499145740830533787545705162879414942839926762680668294082022797924074813649001337462910302509848689872978607500077208938914294000353852003618434577259853755070921606669961689343364363411342160114848458304145267118059472028984540258733674713840781068423758912496533753251421479735412218775465693523839798156085753627887724863278079288184039950465350118947953180428370395636773382136560495516635874543653693868222898985323251755762668188191417309786110661671485502684733709293965982213282850896693406082396877373173187562190372049704981744058334179100860829701126209685234561761924830008844698561105615984621757992030892634664801506899492065617686265961547848052025701844284712767586884807420148459342675081476794965520632168987013926936973315467477978006643750060872398386910536878933715290021536533109570082548531091833957640146144249887650177162475083905892536254109421001843841530848869583122493608350386242798589624649360601983750113191602178089351798880713547204798844651664951792248131500529882881789475554545892994253962998257448622606146696255755148130518827997335067267202019773653091944901360246985258361789174909579719920327045921803315271692092211854110240364827323956296024926997386479577202606276426659834575960999016809653619526417509988984410906696117928420704766639376030240124431728159961609901552657208999809865435587260187976926461613776736371763110433606586937154075972341494175649437870284574935324137573987599184926108151270519090033971259743051430570297523951776099583708208716198851099447445306142656395637961828534214888678191931648715097320778590509098824919727945988520622126543827404897029466054737550366236762508243277810275775468828530786088843113276039499642345224417506029306326409996819911655702804142307784132238126953198850883949876834734718298134553816901566080257191530432292891711291189934986495429507742755737527443830965983732604958568562172278013578261235637615530952274620193820821938619974538931407657003872841268419411103456736523449579910174591210255157070627515841269018145418659193332080137519221494391311390322164307810398345490984097789912671027305749583358884110460762474028662813671706308591895511945386434989943065729606727446887524552019759310660042571795411224735030235786929471911361641408769474652846690413351973714468286371876204136070787809149677854038222379031325933707416713376670300074174297889810942077917603705239432210746250536561210893912063748003777852982810399961982366744888654858962175855103379602689038290443620117930662614103968573857757329466187920416717398710326247875543226747079766098661328829907681159356563964633273204741739784265369199190646712778194691142976960118511471239916246438581746961620165320380690418516622834351648532800087527289125465685629701201490423918431288488389663226033266490504625424514215347584116081980944438373488836186965881706169576409427254428138926942347770515747622285386000212947858872097964162848784823402978623645157658953918944950241291951379627932033037232242176326155841484954516904150481594884532645326553653281584852361499117017491452565020673881465567418367766013622884181398544575838175149216798753623630224986650429880939102699718848802597021704485903020255281376143367273000239314876299433294208753934637510479521663759369485928545296692388206119609240108921940593703503900889489567554362043651223813504612232372382866856077012147081993400632500504015944476137330293113072648737428865343019135662635609855517648157420585324060915889455368833801259706382927178595879134872875146570278175062411446232761653556428807613855546695349648767049259826390047902398515700112973510422734980397930594893217731377835894642742149082818960757531663530474132916766726095819881366751938560800708344597969448541187459637879570518688388410024575300697902067470221895246733062965330342647425250643770366535796179927235140168088257230933194932235877697472080831632355032305372876567519744991243310734787102283251543468653144891570018572714713571395281870574403999035495292821984194312175107601239606851671559800959248113233096097277527290408919323045138192140595486909598636156394978700520999400453737343156735490812703704510200581394407500195798398153412379254954412683033510100983294068693167631486522184212629750354696318803837229693273196369743552064935541432839605757761496876843255071820259896690012147396634121190161145159208872722508230507932949494079983035117439139983561499528317698741053009191646371157608033511517823544752890951669668677205601074949728003859896889690175959651632083599249657918715316651765549612330531322300490379802892581565885346905592047320220448582157391494245442560076874875963196383371954892180348425782151467432798324626713901150955473503845122706744168158795314683679900968850352672289130370503480372551647510513950112069430326188844836012931414513267422774490205843566135720229760256924370832441473642641686246364411282148668230832788188494762575231475975914601911830264703265364351048628723308503013729871313054656816719716890905587991979239236783607661069139729150170285367070569174329791673497006282391209582141932733273361327046384978971169436863631742875989441795970005150265948402811553367844892890987111274270014556977186037683662578910129563249421739324232168356599413714970634463931210308426517347819460763480768667087802256060833998196852703913918886249039676884620136475618424530109411795428278950660962786715984160333835560517106636856399954515920294897909002016370361939133668720115887227353601700656960651464471120340094309551938779368928571657979945702661759806750658584312007097858804395220899315610725582190373890438252120855893405296268706039463083862964357048224731511988823264965123392600187450587221558420062895641955723634632331736133539635988828154163245820868282051771812674230009967145556939963211009792089279391206198925227872517706263567390676915075036279049590617019026398853848242279793595660084466646208117859652920023970017257321295381222958572475480299622804524803151473644476070058401470111615758330158798602567053286960250376685894688955023257396063113350790062326814658960061059183444981762694684360620874637260023428731048777509719973729761222048448836153296814104084191527315302909848106065910524127947206721677857638503413335352953768616347649393982206113351167018085933748920098562602163753645763780873079879441630313293316895436085481882718279108027649824309170051899256377720671901282595644396814549721198775362462428587348366727741388547074278988113931036710074026045809509374008931914550371596430022079870990203065777948063315078278940388496027687867501150352659995965391190385099575413618646077638276100001304674420375584841941075474313628321747499691401725627458019098307308145989564263710707449293185933599496778454639752986682330066260519705295839655493478793407689272982386509972833688730942514477529332553010929388909505962166350064585168264565447845180421527102664145472557243576467412591500350973442004140137796425302765595800327792109172338906938023083570007457202077507051320768536767272669298257278806558077391819386526298795127174848702311339078814879707566297739766886745595026821138724850673265308769626032637977883817039169225967070289286107234695501370892227372415747352146311860616833296428089427109325645217857757270417410463370921490477550989291583656236696358717002254740672067093192911298504984090118749708255655051363127676195118237393101788940519552680738315732701998473140823010125986798640249312652998698370675174619761290586419715101691903811305389962591544058977983188111848636733518061096425229334202379950798747141179724133194970352120390227690761693998661539247323087743933199384739346554960246748514595610893832143463804437642967447806044542861177235622881235455493854936747031830938630059948081007775522664098580690978871378998953777268055931062615837683270227356952548162868397754059831321881072095957348925727333607100177373732221572506245554076368125818209945643331566441688211124082029632424927154040257558438562079972481372543147979164509345891752823037794163366234595408270359566741034205830065125966067610571237001968882883335782652565408580060812476178346121343470426599076471885291788165598760336660595722972060467641459384056050985003866257202499991628345347601214095757561311377201422225379992258192630947647380824921053667270233756952747512467574585656475437187370293203808164716184881757492845639807036059299858141720705239145558163312398386041648372208155081340838489890108366584225927027318649588730149154750457798656015794960986925857407280916123745761202808037828969730368470554068069623149508576585780179457693095467489289107241726997087828710790670221214053753348991612709489247267572344210192995716317251677202681645119541166379138729020266989452202267016878474342065359295371655476871469752207308654175307695502877479965694422846207438005525935426234468118729661835447521732595472403599115499033810989292538332301108126011194582913247891826145659005709191480498898106410926531986415491543906371153226168013913692077903113441179044933330532860222488114011183121690798555552765277012968970799415293440757744481215215833914807326588549027739291894694430223060336436124352701765988697804072997295130502643362922997685978827880727384238664341055561867323340524330442126542258092202612807937786831680936909650393071851886957554053551924474010188943418513036377102371916542473855697723434544164292942818412135505616030340415197305170567200415254841430480032671364932915510047527288635743156272212124828080394804923399414833168816848856114246398562772124899801046925246509842976800281988738917967161599756299490810318094577654993003353372766028986041305137208816749655798938564649312549305261794154357932439967264638223127993043825027457046156612228021160225297111191472604790679114334610532916291139941814270585956941209348705329859577332450152356744973314305978034707598118104996264834658498942908313702882424640767048658194554011222616640067209749347735432236607890982793629180178659752966916049133180586454418649019700531272110948672892161104504999285033923823873427727498171068639662551650545007777297633522839190936341662686730283859776285488119063765714156748522900276413007228464624776604071999694613008712309698169611776402458802404012277418711903828145364087877021405063492045688038663506375827652148287252840916675958836895125614744011243810584148169296968942308269772458826627968797006541223749113713683518273816786549949908789667069442237087859447037228743161509109596631446466201164070945609747984902336368998006439917728458070166806855050901362872368692311375217531959132603685491079270852283226079413342844843869645538234043507367517552792845759993897084065342413403330059654225845197743549315652525394904076905497553575974283270739261405029025531357059032776602472873309375923278180121805754870154845632321548818821748220175933259548451238642854569852437940055643359240775739243854042343670253663096934297865742526702990857323452167561710123261449059510089220234401191017621933825534855414517694923404167850494813081108037421525083298166315034405878206840508107976351147787203140491779334056996245570005100693036175538679862105922113749601741647859581459938472721179339102336288987467100288436021052170030892146382834642017249337751459461845171864693842448751077048033105857362742225568981078359505681344078125767276467759112661617171405478682692221335071159277571118093621635640070319886152791549715815318620255816103602208833140622334375402127944239891115148261761456759828494129184350381437440406672132027369655909465688771867557646895937998403428439243642831384999361064558995730821752409575198040756322481727837193912031933520095796798854086628858417158654024753194619847844915636237942278008482519000342182972500368077973282965382738268270964577883062907325769696592585022478834799000892773753323379739199484980079456201626834352930708261139150815401573863587479108768681933062234033983618409712895981877562602320509009083023276126078423856047623994116114319918232855723035025632996230987986981372198738395349508800511056502551983076631001619269793411377996508716998429506073438599287426692821325806226561042709298555323533190484297057597918028685911242678133278920001306637330850163745789963926841843244879175040596605681343473002115212736490381460146601752804951232356523323008822931562318907472490518120317167734021314247820386106747549184568130175936336823259562941510850663733241345865262633044277892032996301166478431055788674965560193634540666107980434433101760405369658787820701177835366459579770650091105134671806196456268045892855313927988654488718292361747895538135482243227886132438874537573063925535056108022035560618016580113110466655516833625015396973279483339203199122342273318161913617394790971735209725444187397616167995449157406664226388362108258654824667000046603045031769080346096803893749421289724462507372378801185645049543717747930590105413309154632762282060176177726835719949947210008588867775294851461832830022160531607450286227139406225752271536153117948325395295552742443222018538412130706088399437290030324169622364650062679206998011745074151388569172249881228694521886700365546148784018091905968464151740997383864403572306976416525888924650133328010595770874378130562626917433897663374685287599025182271698006671366646708361635272676281649125400544732434236003266930910899393768313144242197382299322978899509262145427603142396254271230092705131256849634464869986491336884943639089723126426985662762511195953309015856024338982430606220942126898955033347468679306819675596149852797331688931123863928159704872146311784898941116772994112153556595564602254923636029767497358206868245320519582507730379363207582534854244796943684323958300229664803194516068861469246983068428373136376435257635957350148686021954365414064201558168884496826588112346578630251592084439687290937301123018832008241085506946274755850721881988176641625353285219936784509184182428655803081514319124717065152153768560754252963760776766790355340420681950971436961093717825001040346833890047236835797188718171866901601416549973181593902753404297029478246885715803080708271595273198839570827244320729419541477376160496369054079066248569819214941742723336708611922624396286500454742100377481547483680701662129709692506903003943401395314388437285136146794894202202440990456468490128084942230059632100179967311469204503257922153562548371953645571305199770032984963931022431021180511979176412110170676120373178870189983365634887019288887530215727875646836504202114486565320041827358101052483179031323330999480349305949980910359087330683426208375330508051534731571048365541101858028938714764639728679708648175511967444202706231028853344602840098064273631390115188257354508704401278803203088045899940139285783137032014631169008275408416316137011378228175894830757274318712663013695540649705124014514793856161607269587551618897759220093725494342263026666980219056424941329713649058451446070935457705336461927026351091734441874165996058050721762322370670527694064598828269651738596744318504935088709778844538955509746429914941415741063308802091460270719921816981821848327678140565798031917860610615469014750739181327737402257584650193362927178684413597620946794413405609798352525324749547488537619645521287202144933951857167797183240136151680833948120338647768328115354036761880487119525767514184498817143299528951896302121924404678378057413972164676150352183581754195988015587818389877976475267585748818331264167501749810815143956777800430391656241421262183012497813989961269749311366312453454316541231370246544678922138633261672210957095956775874781360274393282525867880943190187831786885162815506666593489901119484204008654954306003803917832796210697202261917310139471184135238262439808203804472560429396888860804766181485442792435502261760433830379987532493633844337963930510645729014703350484425150829410029885717602209436030402689545253902264156554722967444069816099570489706185759483066124539686153354855144597331415848823064508729062747461691612693811227240324559977885023567656421042563528224329378227841337453906326841724811294747773030374330284546143127261463231054005353426874295074516071168211325894504737799852590628088970600841994325724353565991595671844195326672363569542603751340160430291739059688164139004648874461987704713895350172088782930056934588329435186236441050520472850795809082277452628379309621245247595045516612361438921321303632724583994778552010358178117546910511108562484397813271226425738183065824881492113345160118758678218223689876871510855234308438356729146224210574386173325666174196099936951870348029905664774658947108378273848943931133757530927421892233623870241278137474699439306717379258961666208232681848594299372006722042496665728301766117251770474243838873560953063077199230280701657315710923722634020253364566142117210250498340082245863258341695067797490762157337322084574771516728370216515257272690632420731081126675511116947543113934249625225886563205594333643320042519380168662236961207972080580740842366932359222684518055532782070923498976196712171677979162425780181446520515623399935707138000186543251139952406157139627860042748761022274703605630086648981855636851288380978403164513015656934545393867343428477068513872235729288140058166779277438303949914245719052875735721815448154682097769230039701931588853344831834588709784166083322294817764296269862440018956263080105855695187343003230459129313590389824489278817580776525982661720431484267406228422069358052956902096633837016605316358514824802924808353213333866336552655846206542647208138004228866116415553859799434407771856815108755523126448545964525682108101363543381796045718686396281912497281114155466294954354934914680495744830271969878908369322495792479826449028468729907283707520127828417701296038008043731360423501447543490823255460170757247290533176026007168578534904476930884455602408001824755381632930999047059579577019350151577466033079725700373762325590290641339382501275562649100510616602673582260016757926804227712563042088963082394958703325881815901148357758853131200675974897321484873801355473336822289584377169733243596867061474174214824198491715314444568644103073777827889633659175734785985830896048923788864995744858433237190790563871810177897048941413043979539619304755136966890917381633740202841805918926362634932358957961233483397612835753302169311053950963729495957963237906257024403791754295515233462608114735451617283191517000014474899195218776476917796619525687211950072287996953030485369675763637399079443068124854411943468769764884058346616632214254392467783295252912629907876264227606330177169498919015833545190931969710555142543804634544788337295850795248169098208668872949001376274936027610045903568066045868909058431258692363897381507878483913244730620982187600698931976648193331380052981213588470461356389427927750975444271361557414241267121343614431457693594318507539740155634504300721477338036015915644231515266680816325650072654491737090742236099788501752860483087906977643378024401438369175765823499600233283998024261432303051647115052461338692295596198359018526989237206162766722239182968662229969012836837210704579973823259553391994273015201586329031086623608902874311511451889364441672750585782363920478507306914908015077421383261345609768350470320648086900699266616858755686557297130854886848503055927422266456489552175234253394411505534725112646874301122506920502936588393469377742735748818930547630545685454418508778334402716495296764357654554237608683138550128461793410564132515360011011623132486698903783227670525440629689664390164466242697687371277902594848672305041883512738771499958322927201056908176477203657453830626321212878234468285712677402161319942376745969026344380275818965473334216076195899910713593304608006360114340785902223013814431675618941610083866684613067297879981602699198450160903644503543006885749180789117498869185855912088927342856240750598637464206718268858410438991569960048600167802922715540433478128168320697425259008189993852431294865490970147090348901658048570591023809840230292095484580270313579975506082780061492870342061018970592855562503690666603519135105061273768315360391598296544096119848260379215369282152317537330450074594560265041649063874521712882164977966308965320357792770559757387890470897607282272861556133365541746541733325319504614471596125613447283876079497920347277890260645594036838939830512804310689788320922552674030990727666325563098291433773362487639009803746799583633167074909560157767806252841815856088281251037304566516783812329202644333428924799895376370028470882057317814802861566947067176088301797629574365703863766543046743001822177521707979011378132020917101225944593947603263352210034409607288891180582302988000139210576990206104119422259014412676393754756585523326364613691909630559005238784905808585472189314329512565509891118545790904743098672451982156484092911235670470447158165412242094848952602395442514968969986468927865337205038152583553395259594977924503735072336029292568166440317544720933502346993573428041628057585312310210403470741055394794662342247219765418606633075609383928430245561876321522936953094967261453911550427797429139462348116389099455719879805891080940522085663477364025185331579289422226129519671014878689533990411656262361099307862774431260985791519865108219376344239750924444318888327216723144731398927565393874690848378599983903019284755990844803139757226257799580238371821182610778254632805016627569293348171019992136884912579741783441246362148079932630317896300773162287411001414744682958710964094360165114643704044042410280223715486434163126869710296745723799303787091192660226885434933928846977833183377275536002360452697553331207405219443841871317065004062303142578963962462550805346231951577272160682467971323982350711214667903334253166105009268282697832051707970606477094753322191130031634327466649212585334869826284993336490749757627177624238424575293760363736930665698580813242457184231916598443524836383914723677091125428797492840916714841056061734952555303808025489089798998339974419688164435811599635419445468244300187739344851567862993714124642025542762803464528194319699851567759428015890117242991147492324496362966536112256462081778084193736717417486930319865392314510420342087874944638342007423694674167379137718541729302110672529004985058939500157644652578426785050041281505141101676109024179981163673651173343630520421718834697334409607550618922832080020682321882552093166826822405525067853326727393544627953544503469346708868997829659766680155868555439280549691600153824644154729634264346247442338095616697486432678510537404871530783285248609214792938904006191940775854125772182974031111166845751943377154666059314963226057639579506672379248045566267449590160990445717007476853018258359111847027181738399220659114697386904071066889191440478183940152554984309841740429629710037588902667980037542352007789188689320658825673592163374899321907433307763236806306766031330580993650392784996633058344105839558423547061392583029625605937294969917786537007358259567291655637575333823794650667028133163367787785776540384450762237028156002664687600833008347769410652242313219628171717051745747315803146837794422992062584391451630642192807623472117373390541241689812221162744746047974251534951561448784645190598055852749277065110469689987912269209543632918756598497581600498178265342268061755799778870982903979477692149897138829441298992190611100972733446442254587081125627516076895604186952638176562972535253204654732232141127349449000707070999534382370431029954931899072903894039360084645792478097477068937779236093482406529080446823873867535504321438033607221229022859001521687474418687680218974235828115058684556368219827186838282271202295355952640981192206262566181745386204378976477473674013011410619178200547728890882134890713634827915593958898431114146844929317959587687310461994662172429940553363456043726428831492716589843358014580972576277627480086830414876612040715194827495097876062854305260609174030415856194771042402156317612762503789082642330948321292769031081330963355364460998113468658262919385030633646688385280452043912065096659934376120972103566183449142063297509359110553383819962863761112214598310028863877752253889871071693077294828968283881800878905575896287028220349555592191964282070266016697470450758824123649246793082836044047799202556780810097082707396392589823723990315016973687807385505372806600703393590298940585507101555820395192945275576341610560242684511731947093866005647220996449700057971162868387884806864575452129887621201133230783599445579624275161906166120865922288443999371369161337747764796754640447522236519879189066686946153634030497850427056326973688971767816963589121479450885603249203591050005270291250661744571090248823185230873847337576096296230032316319317705124188551887400891445227583872030393346341370398837475003700041303032374616810528227896302406571954284743956136305960663672766163707624386151793176856378218167072636652637274942966882649642156690987657556395389815173715391903738736617810851143735491718269151664658795431436691657455991450913469830055434697394681518491285267436821633233500240041534756336655543674785343566384349230826641011863794636824274147632133085558608911599159806929933335873799921170987761010008635122696610858237796007729825299164224524537757907863767700176204216980120120647778816812285322970158265153759104727982085810254471643890921459885993058738998061814443712467960927896016995930567311477876516454604182806808137305641139477003395510592967117921357356142213349770103555789039312036795077972678552069130961013305799573655659898421408011089577749635249030586721440332122663394577760336670739898663756555056683759019541117040024041731741919439459587410094912791893583220509607515445658310764632202074155673007349298392237588602436330219358760270235383485080903097240472306748338342756541939017566330534359057292536290666629244298849188897493018046336827406041879726445528790910374590152796299864191120641276634166546726010310143946482542731940826051925252551470778065053819397034148333188388624454468587502835136793106925926554234554314028772700964462593259362048415099761861355931150537433205957617181753937237683494896588055619710338460567651780607714378117511985495815026595404789716057114274816704335430798362768085737520359804547071898744462755156865065289903442705242266329006737706140738453314554636962039851463484540503624520515544809019044499277919701946340520402164922587968547709646591896052550802043743563249955278875640185485688090466172664721930353980257689554075607094508921639275173362484872746063445774606143001504714806638023075078467186626866548062874953343812650852986179360627305411608775132065067076009515969692284706002510591898168605636747228483403662313128400278349650264207429464809871958179891982342267801099136726586977957271563708382060384675085125037853686890500029292459138144967610368015650494006450172028100844074982488433633837738945146423499807434875419495706534048759930629686574017722989220704171237938036868930195047140805316367924427611498728243497797345189655310351516300192841073985195246807211364384786874646878389054668587014682004042476626691197850527702329950255237592021823976131403013182078110942434189403502878184833569987541954914249076492818501276969258450798230992456397400749002204140040814982716177223278597182320744436096387298396961769523263044226671403564480136950111512736195952338954246697996090297111772949798526018120959498553479360399587022603538684446006003645587837208173448481728984962334331616852328962817476865669477744784117666778555040540203287723129129612007175618218574966072128601155009432483206606717083733843924471749765065065395869480652749851096435044131366631171614909274800894797155128038089060266123387702102460871260236923627820427206321488569558386924455619295439798282458631291559701611213933766704160478146545373984820479320623054588918302366359110708613236136202530060581680116956767791721865838986110641028446669353951289078736735883788090729393355689242298092189993758565251999683035395720430381542383232155894813487973033498622566948609440452371096311204294737099983277523759028794351014807960241085318282272720652091714052716399557006854888993071327044426381171361613784216492670845447360153371535140322522669399315646939254888609277194695095102720565898208516114169375891858497767339581073955205541136116747458894000557926501251680225642913290464512246101611637758958600355196330846263680948429868557821245923786064491086261495283867385748460624329476975565060173447023224516932581959420480174438618277900997910269979436377386102343599019729026657217693490531242108201479010762344221176404981710940456467147964831850036460706524373799149575490746437935566086687350470688028880227371691506679616227263677914204453113812965788921907989306792807951963438554429930526671181883169318151533000819834137033633378116513644784495643202630447890568832539132756855006498874364529724019039321942361946858186092481991447182231256350361070990814381682009488814574791834007420880549282434648220201809006608931218487114220238905961481295707898687067309632835077280035846647252633326092546798831562814721665310429035510638186723945926224918971857466227564481923207912033462940462371645508682074780792120022481044824089437677296457037505214884323833477844236576265962577476421663383869681051556004051166589294226556430506743196066321493832685232411241030982926183965667265375709622727081637652222261279570378913027362242454280235776949669797916037806020611998296537668641486057372437857086856953671743052858867279415048697170792306809919635597090667086086704439569492989034984609640835521243208215872209856942639442068086152539322638514641858225508872435640761007555798603043006190293997750365292449627680630161939586896748428229696682871600705412188536011252621472619919345701124941360400731371035601235449141445611326208147972202445629200855459676710774526294464036987115667370523304227692060689219972122876515923491727088250526604784919584445695914954505203439722196057022428705963477199487453423035849734555434835752259005001326792895299683452830029249678715325695089559947356008771614786735890702422303452567709264186130652622402665593023796108908654028523635432570109503857035922516724133703077459528298681995945316181099708617790431952149454086998001928441783404417575747549841723432243952542187721471914287794622704245511038404102299632182148672447851417004323907658205074417433391390254937226005191780552886683592783596861304844805476520701103870545679050667133268614691793209741543043700590057514024530381135085976232049883500375219010731724239132061208453416364254209019908397895169749190801982570754695387176043555031029354560318825424123415380260235799848612710272619459461730250150627201782718347507953754614282322402048003534771308735855438658380898655790290172089921523626028544134566644210075571317411536188136435968339178366853039551978979318334402665763958177638441502047463839169434940375471889635956653883787817580085294331051564780631675597639684628454868517613078492352192875843857174211537274266247549460074982946468911313202604982426666061782362167521162446765571852014277072651705457698952689158654863836532657746612478287586163955105690793757904746800241480846173002350065115943759950472262795355830956568529055241243326065912396556616297515992467856976728609578387082972688818624776428246088909131027716809233417321818638941302991280178576810041184533170548780729935392241647084659276769596008613384672589179222468401965236004045192266880502291382525427442729668668684434699936464495385030296443141816833067956606591922422686423372589702974986779822379869703509156728825011897285054366969991182292764320134661426209667403469891881233491284987860945850830854116026791874956383997265879385404937588937626517521431340091562976766348403934059711389589611177923727197312008711902838723850420995136502089599650238692387431123007649389545870453740391327674275465856914324922344248795497854319421772955103290436669509712290579410542229713849833318456816780047165274303446215093737456890883427726549979589740027715869728175671621774716062393562513213218337706308123619906676206891261103358399766852794022800693326230427643632008046027945439821856926895760882981052034704162890615142695566326024123584568477402216153317507949045061899427754164876681283060876768034280137061515175936542004066434433426496963013597695711095384413054751373806515114656704272808787921116188386702583261483520335952489799880059843268521422166101213864234444740355415361812545123272541790375243284652613400156403407802950831738706863385821890430943726825197783543414044146312250502899850956296472199898959957027601716108002639004542806670193688700868737609635517053961091586488522475225982760850986863931908657157051464794306498079474003599356783157531697864016412102767359274484082147931616872014630736832680755323555072337845196658339596199008857560532046490439871878000387765344984827912729759792678589323883519784359774519933790605004783574741301134385776701277467765584964365349920729112750524478067990024763808133608376915934307344709990872461246951158499905693894581929968315256934346560165049073654345616899244178541830962787746864256473309080177123473827498653704276858941835387066249694535897512976364921662022519559782048820112202452063180174318531405357149398858353520725336059281656473662228037512543318119068635804501106000884894872519903861157068600129173394913291999098969965204028647974786711411264149735235506028280563867318913520620182265447423753075914797277834548519658095711767037248911322187418488420537545664304860548417143542098122079034390146824643080476309399999880943640362379049566908306658934411667123307190876886902228908245509439357653700881395446857595822159242377133759289049456699134195775694872099345523487974255495973472566824570327524856342058030051906633322261472984466356644139474153616390319636890970189293421841296547064212044157983092821127551232309411970468703667558586291468665816011469075818145323886259946881306110085865524313303888523617875416245193185488543052047658769717818718606032450922670502356233075286540063445374747739810330175301063928587670660068366242391593447479238935868447466881343976841289522085262808015247811580908728272091068270714887926222001887207133583473116049387503202471350511097341514271885107454394386359982516893867278320760656584329964192668772911788055306398770758928466546501756871388509785305437747560815981890538128597597587290276419145876804693039579894025028062844944399772678833460349871447159111864087508848011825046606269492813255058544606680721928076722631854197060899727279328835630867966582165637662126870006208613985795336872183297669435258658521810219711279998852328601454243886492106396255081129145245255616566251745398210791658322948273919890722663808593877706669201798454373338257583356165441482274134936688994627566230058234864163748912925743454265368720986163347195472560537649026110986160220637151720317310722335277790235623011612215887219068318476967121545447777189197636476756359883650485373868147111897171916809442453201656264658424153204609521975081387494362727391153970389810220502072113796428981678456571999832095782867548246199255241689506475624458756804765798271042064918280049611417899632653493836970996186563356252519127952746611645289324394250260539499129767894868554513836462986138705930084863951448275428092542582659281811623455857369643512166112757078658787389100475094950207414328556247532340688069460365866382241592059477011627245535077018832034127506165164340989242766361949066040514759018981828470414540679863377495897159330321086396794802452236021904707540849524380936220742042164446659094186115161254214397853035314714220427605099109995842582706534280655169953376413540568398590540391144111810793179235479297804177400311890283401420591317860176181401013906783945160797340933314529288335682667610873089655686663414746979909201291639517765647604100135923084640778111857701714754709305227961078051292259221379667679524230254777868690986986395932830175267134925739424766570379671996549057910346451721056316111628475761605028027414734420593798738570939365997645840643634710234105138685609815436419462070934874955657151525876473986387466291120525218861978644719353401218770856443049497646632721117312966307401474288533880713955483966615116435832796327071497036647204554823907524170487371109020356888784262714328459682948590109912056328006778172819559480835958863738006020331258120404741161951005570766375139185206350193775668908791222625529151154171611594311232297484807946000842736178369452653656863890892237921914888941513412764381286725354394383665876498935117345954658221046207015694624962982968658694603297164296105830273629466407866954804716068767401293098388270112694174576728496538949967770013549707175873976988535701609968871924398012575377886300452996060389424525329812768837975328294347847471727369483897844303154455723327192581956779575201768405949103945102487040529777546132413957473702495806952190611935524656130076060817036606398636909196877967326987420698410215404135877434994424845398736628997937049319920124331087177158890833145936949751344415030896988848336704889533517343836661375049886678850189787624889604189195656213492559957946958215127187360222944345760312341161622211878306263016002561513060089617958809133778599382757389116617492200048019466539716725319999678782464652070420255289580612934879221570703235051078873381035613246905891254280167314522261051097526884458173958528674970087328173702650391141880863625786006867709535709454186272037182959232939429007320456890853846769280767670607836273145466135746451186141926996840036355245786682528605523608783926337209495568657305888535524273171830355557661956018132069697052314728591603657415281937948039078057017766249677677083054533996441041149074448091893544237158751316371206909284971881865265179569625060876808637992992751438191755131412856983804990583832466407184353357303197771923402173355125247540289594645193497894187821116524420719647963354028084276825874550514307540912886970338275798291725270125051748572518656760529685757171043985177586346549273633497837457855775175982311888796356064292882610691522113877304690729117843968795717996919087674744626893901043838930893590681505506251804283424984828547453739091196550057874852361944267365338920352933817968794345885130965448082595216533488533142585906605270100209981304986906610698677234145150216180332181725178026163803550800611514851650187034813864966232298355047474814032213413711133904201565046862958632573380327318893633782129763123240816594658125293560698325945482097271872385586401208542652793657843708612131900849444631669227680474991809781634470515081160305546845477727121603537840550710447517401778915850144033399711975439333719021937161199593217216504348598606859907581486633851593522539828386365787049426792462482206465907637116079911666922700483457738349505076745617132967741574193605423046510863904707430966830213531313738391540186005483158199947853684079243886303894244866672916246547492520575545499832899550524654939646411067247024618161519868529574083506627144849297627610327661507954674098048556480451992670006754105146168240371336646870739180576224596451211251721492844607838729506552655624078233202163428422744973406670605785481312841617000682794165240861605304976414153531076247585161143189632664121541764788398057395181670827546264019133427246943406454609233310750056137488584560105870764280551049156832299217771877111422882139914235138999780480907419667504293426884405876930973969884921265740650738424132590499513328074891848631251366005168909867576618930641860145076889966436459847824247637921894682052933286181607285862549019360639659721734597424668534891907715096959471598414958835749940794307637165075871308430350659656327614249689170270472511828931530116351364012323319484777355643225618088550726863361566702774766513168447304589233046845035827341392155205655955505440270077095711891235370032893938471907130123006149485000977330419016297408129412131007436521696769473711944650430267528745652642711757677298510022731815314791218667823176381430013321357233316408367630482863502462292951039446419729011777230673981708549428213168548786358442315756515126424619713863569864264862557007288328497746525656989358881220656154327435235054226430476307017596203998944569375407760427720642856615642749640623182258091376046133355409258109348656833959259597723292629928394070710266205069602619147507145467295379193605773395142158577367025812554777780561818384862923578290486304116967594759573109216364874512873206098977515744436062832010751756050589863773946426723725663313291514763629459652957375045560330850717021865386497970399826911957235654663966487883670532499176054762463736883864743239368030711240814009841313418719023246139816728474348568584332490676322680788298969985320550015954564258464295395783296713684086860555137613483163819971069104112487722930856559611628925194327289567357930854882534621880597830361967314347224473607401904882543669383859498643896715844346497819484608704668424405885058132909486752810350894189176873601345670398402540953998391292616396401197585040283059874751989038363763360479521800905639994071114901634881160879755828688711237197841131277404749774716029903909862932011943419532613068755868700479115058427811892736018988455379428009383559600305556424905749338311315812689358091718216793938460891311000913782169602569619439156385709772108529485340840222526315380757648143521110178606079662021536457451980428792492155960917851467553471628345148097698478106679469525804386278933072854430755186746740317899205962325306968498506222564537980193324071470105388312457215975293737664144600024333474634216156471090800684485733100996979567508613229562153948966129070760870594577321109613959572068376981733321772272294523020117149582746246142300879245639153997758798889343605192809280534275728977229827041082526506032247474346553971244458211009418085288276642872155303732073030536999833190954644601349058002772687336090967528353698986915299188377794470867320805117295882852234634661352117877708220245152330986947204880236983903747224506945292333816680915602161194538071272085693994427112547056770339166068504188339211207102057971895974029537191378850823954184472972051258301450223639984588818848079532110961360706818576227037222246736786329888261953507748848219258010102816773487801365173708597515968635069276114868186791543306331072840528726329604274650167451209805724615983531249796508336096289846517924850865498501765792674836830314023725116051904820049237568869704813235670138712214034852597571698231493921035044538124934385475404287716292607871596597100032425350818006798504784670434107138023000235584229276244188098312102784984568828190562148611688382921380769559023859598888271842714129831535746594838350886367556872507237005788208080651643085130575390714808125198197275440604286072130723311251343547351228237263690205923346840895290394418174722218080880242037454292281950515602090325706656667513552221108389323443301310922674560908964892847160090016843425686030240651838712536444791084482286345723428630044777153567679200512680158320684514548462053772408317023075118582695882781968328062931814157962923029145900923892191050240033017159853602106898165730959705470875430491535075728347102136736590782988988985918825850638387058232361040134273680214577279781265035144713007668519889889948812511324071231122542365537410930571377676466308898081974667344019485396742746464858366303858292683316324747585607341129560442350481513665036436982413065211648732136172781537900111843876479214730602485996966264597689599961667211415767874271631457434219196612543824868063795065670783793056645487497150817126499227458770705140178403252025837430672397938751940738347821354249264480459416936012377841557568380219322451567198146831319351717687676754293680874293230325331900577611530377848807671791587371824189629234963357730887133014206582406472018436866647711019508225654418504141048595092331516417566835335903568059777488262860392163051142844014771122767735978005569968564515698154440497309565618208141072345550770948893164663871587978269909672010477004866204157743641851008897751229401338621572559796673030033335608965045712994860450880103006995708118327412201402884673187612114721507608286450080493350605834124400534992410079189789715694292906019459616663953573900574082818979586561063021425094057802600387806674702572785042310267925526866416478375723919265740833531010919946058689126296928972279969561618379658625395145776565138991560596911925701426776971953622126921492479330132225341796733804545690690022448631454369928050895902879853639911649610456934163523738167270079824864959372543294414750174225348800746053668527410735814214048138192609577485753983239643220276768982952993222991005911139480903062578671946852207543672331441563274745841367829695182090907575373808152255068158163451296858430554700340573093719565115333411882257911842912789762442742486688289460841733772762858914434381079663241858137433846559133612506562144086311856550748203659540631199451447355236649530742436126220822158777991811731823998791677268624698100133089934413410325565124475098167383057838800279317823662668005733866283045269150121749881110106626631699907408954678887249837606964267560732765502029530643202456584880357434091901845796967091895835921580643189211550207822254058962123850483633366864052650953988539601868748025439599077570863564711810781732083588241078933984849609504515786236906937909102983365861250578006128204283298987013036174255081417929885102043927760391008863991970883894224434374762445064994325335007553215013569164544740245063414217209263704944162854493551749667395186823377038822701742839530648662140220848023569461745193504452005508429896063854978848029230468765093182430456069066241201432328860358702904692695699377283699572561179998141680328892009972076764727501627836867650540928061436825599340753710851249533505218381221957941843768750343747861356974665962198992983397941774629139991105033856608029725055647158466340714418810406681604659430800847607423326968987058334079959140117356140151939292709382712687357412911864787881737933530797239221133192308722405119877675739253726165864549426970835248628842373051086923121187061719785188209150825532376382874542005836687239908789431347681712102521577682178540349826123344573321254174317451021853549655579434151924041429385750734501873226311269652614808725692696035706812151890737658509891075362102883715027221145715342089961875581653159753732286965870661344104392456144311878952574621725088814221073288321486438369157788502205553043793870438751785534900033336463282506360668434588165228858439143410744908874009501134992575008379355751565553008791180473363980280727351149899654498396382793230869298165472619999417035882464036822960347475410975925924275022130272331811193692525583679483444535581223185016372875460245591428936179898410034101496736734869279655352991676468139620318856482628636652051194815519831936924360187203396258643477420244385483432927070408636023717711895787744878210908310338603375716535638376914811155177578318605865271331483470470710147491440729526717343731889238041195791375831171724954701510532290212277885637591441268359099147735772189678566839478966554619377684371992485409203477479435973596459075100013413684632705399423663318275732602790593132890071752423297998820287298154569806857526027208534508151895589980153798591083302626595034092482208169698309450990517222297747930929601372231162070631805909809865220498412675160968993690871531261541063911409971951665275210265513746210672397545367515277226642733250075533038115577924901710819799987400343320689495430202123349165597553413847543345890845972105651261752779038737155802168102013489762300439393301236195606740565507257644762641864103827522502750248815204212014489487342731576724397775165196048771591399337573305215631600582818327524251249842892950456972662723179499982241389204581139222881970967286681341996585450892541478818661214316464611550030894295416415008044351267100077171910660816349116010494095288591507102731924530092103376157478528190111785253196093973770758834535501621051206186184601695948479242265582832053891743414191425338734928362625274756210650026892093054980381913505075158331536272952690233545490673069070794629027098043069677577723240682589082882508719228992384535612496053360909311987714976853491877105878152511576321782688003836432532084554949660599231613449029622982638366556956239029163639924053184573831973360568963029015672027874764742292374312083875364779798021170664041400362396034299054782146001596438490391408621724890011936393620529491164901901789376774177008184157364642482280347765983399559419994742351380877202735649965374651805059283762459061501248635490405903504435517739687521256993922531405466616753260095964401508144713408500599413358682401567968939165232995690256179570318736346002549275079758572406998775376961069554911245592937168161560926997401474859490971957528393278502955116373128363160941400264127714313438580936410729183188557818439119311302159185350578578267813740951513988287209329872089170879655840337995818036410913017605836428376834675026974479173273639254982660928654126686250869584057683826773635576101884075688046293110000176313820419913384229464217547622876326889510325650125780660911015418261759711786301184931204170788848170354445911420924626742573854926759929721582663012489607916028079628300823769849842566244627305478652271247538556587015184259367866607262374642936149312230316971149938213716237773410189346841249858333389712057460987653349543709544581047341194560471667637148877194001858503801665391884435307680678552100284220806101815325986672325936086291194279528506716203215956292623442108503037510045802167820585943121317849865165018388971429281020467276648339658336122005041226995409452463109054148670165621311141881464251400068594342141622950137241195028940402417152962021482131694268734550617483257748990172706786802213580520163171796597062549914891010408225901388069271225998766190649975539725379242097878052790312274535372212572367819816862775436006599316051608547194117693360065530493270015499640941246294027607786146284263379978708212413096748277295256590403333987130166360520515294387227092653002312857112773934391997242946561603149228864638304821182640063463224452327691249279637091900448243861527211738977530537784151082701879026418975985538377859626418290682069666145374500018130044232891188865769486602758387733595904246273151206531070012956386671945837083873337411674660109199277138739518504590880125893321230007687377301554965648760019617033561376853791722498869698755195865115151889923396437740402644643992447039889660574200480403272101503624189294033641113926337714550891811958138338368725394729324038967734941772757243263349537617769172900183500288324688388698795081953365568493688942031617225709608998387769660411434688738071363573288669456573139819587650261070720575343593698709143271078791162618225497690755373296838462371980377723623180973689147636315632068037900973628028108828758505399141297181529629141765341436529914563455753001304422165769165917258742509574579395765389375303642168057837534330285509866206405407545243569174626281387643468459350171741527868022302377657152180397749018457581075312454827466932201410027293930057292911762103521488068409654478422553268707160705059089900628094449404154412597990322412482501203552710848242832728758955828234601248079035945360755145245577897068612561556066185751995605593062939881571757993514221864407194173649071924161338862112697131969647091936269225927694829854536449149570007423761292129232360305966621359283628203069907880880512199966860277424965605746409050845143539104932913904253388842512770905760115118420203545641450644444901078278998884806471368700843752079399228578028570193534204744462127764800911598182661695878859097365647894047839370717313572873998225857396902077210380994288115046429888309449492404445478673612212302275703965388690868566088878787655369870741551508575529398412203165367114016065424206518133470142971786862867022801143070144416691616740865311435365445747979988394858181760937581338634333376661759053378073669357353601526752879069564118965020203335721073380889946630961082437206862321930214671845836389087018524113291813432830975165862835828020285355630548009557159955832579960732398973857856500547767477967039151109049875692102382551433357999550367301982074582190004874924269957415297989908687173042152473827524060590708247425701122782745792350939963373671874818053274311205184712026784775209008338648721303678557169164026097322614945348881087908046220422844744366463358250620504016213234850767221552338662714270673918452967533197678634661371233219982665632436325336658476343210835904929872094923993713760828094399503418911483038155747141781558250235426575791262848678437134315589620484212081618549562823673704885374015744962700878453841961001932284330352487105542925179969360705602019073534329462020076012559713016860944185162061647608555184614487697249685713376456464226581958552486763535296772626053500058178860746290906891752682041228890909528868065799259408343170737872890393576060334005101882156983757269545998261662979798504872923890214839218468672883782317659559863016746105706145244787170759273139468811538432732880366357955718691146742133107729056064117946870406282309781559799161001330561753599614577820190510878169108395518585811506348385896341932492241019337353386825801779634725492433349439533473082088511076100196476808353529697265175207363655510909355072282687805558294524373537109200172114203211924134565477028680441528898107039458586721999950155732480998582819470502432768537185822251395416977225538186320759406240060167501352676384618188990508765608077076064828011790562265025712498942231771115445179330141561339192878046126006583674811470149249586018186630134815283050041236529544847445007292515242337627310620978272504756600623639215152786663576378964897752010641863285768075574496628115583021377143083521258503874873930492185858730543853577257749616460124948441025664751994714839152228678163934673005052408981453360414855996134939449999477083994450694515544502249219944202161979384226737375393794962322672228538680247533599251755507988106530851411593662097230688130432002752351011583980853672678382306446751477327349643973713917962064289300760527297244036738805221630060125468801326284755965788140816479505828996653640362638715752552427960856027553833407822598553796481959239508187074651158962279304137427245813710972246796427637754413561875923793729007025092487826160594627158088038269851838968268523505634245186334611322082457168595662903615907177088823775817829744285312087177892087308068649657525082682394886835583060148094812032255072605444721628048594932008533690074156770202563977480400367071993127796757497985704322401303035123433793841119702982166128009611416748679205903443300609203812071232696215160248074500048253161202571416539529596794209693335225759842989241011248112816500927890735603481056779542442576021301472728928040615958014521760395499938205343934970601811690056256577265874935582551045380544207393872318672692410808506895204082913632421098919921528071440468452343826601028554106980718406456892539457833105503231245534582660125252842103459298640136340726152346253288623613727128415082977926702619662156847547711924124725017752978966778379712531137792572532714962345955160670930946024892189591970390274840151777137891748599692943503261652849973914256396997447220962817598273386580541143197201169520557135849025900335882503539669388068490012693504359285097729071504215746082123939853055848791454780232204462408788666437055229022017513997322328867868803834704299729957167316178360968095943803304647250107906214013276970724397377929151801933582226929961116068371950983215526350642688158703335781025102441279100436090852823243652611106292162470550400115289906113000287138331299345007389182945695650546486332656429625102011943537538690127668775616131036105010873797083991112806263165352053332606743479082036071811278414295898378421782142683492941943860202544985590061113756191290076483078860937127407553629714824856863504977304212766764826464956017887605603175750212161249680330203544424544151153329850888819224034339863853981329847909589209934093408521565545020860107098389760634298524519055512557088286615983162921523103198162965315331787247077870150713116574450314087492440602625101390993397464907079125533621640275582869441445946603647644289324243138410629907159992011055573787141455395568430795416474891840988797094759226817144792769848846309970659975182429697268041894441728711457857902425284315840592687860731474834229117656869677906187818996389143178029009599594437613553328507963596913968952459494712098384947493509772748584066159285828189341262359503767889095750750048031697919292777556235517953328533782427061978956821403687882225670155978399042307690342869645120576062078302913392873158204933604688247196725000513187529695236050799007226821501397243174527838393105369883940406430446603358220634101369780866038392175850949145371819639767050062460109181437447390112862202615038517153950750246570030542748998998663210644692347052448526635841986921548506073637363597010370082004549913553023422768361566092371837623766132307179429403505162058983788057576163956318965132833379910809862874371503218333793748127100691965566098102455034372043197579238016389338378849728009620067495263952292455253000391513286520043049480840044167616635725611033609089035787026666045741186601123915357092230799350627563435866941212414069020009842972885997105526204600735961659712462458728001921492282374570477005555522350790100742577964174566642181376076772802141676343117663347609280512448751798617501469765110923140199850247521055514321832032468386223638698021497325291726808182691602264014519857159898630636476938467346243735336212294526740029736632189275577631336143305221298373289362416838097663112178439064659213185276575754245214970640857261269485555515169441916963456349485189554909986185470749217091939721501418158355491517780349308284162785303200371138876697124701645305296251462535480884659373219813246040470050787455315777445301272216787096992396519448100276677245220982613889576119399825821350595390610825343830738461376643424814263503035635328088255456582869514568834834438986408470699615815535565709359785298181541228102493116267716647554232454373645520971605553434476004957991305958606654748091969975852369639105430605329969861777455570274840316051101500092750983054177882070165288780564858883539300966378414164514643065416094534649274971944308843019008324345001071122485095846236331155956540350010253810776548708890382448210596021756746917076126644465154974482026176935992159001084678942486308093110974452168053059968747071949334148212789460240478998678227086039521789819115257591092440949061082194157218824513878752510537877999275056350892651778227569928390407262594300994068365841150601554274085496917109322553335139905577143012245622535920908928995487890168873879441498176674091947219085853207588134243524146844094694287344230346798148693206669054764408187907564332780969073743156106540035033625634410455405611658425666194641315699592028166095466040404330784296094233642800676425202468843790370266432738375267344456677436044759117234554431213751299871605349417899062407462480591751545421450101525935018579497967709149427762987677618753591769766569335362007526440055827223378257461241917751039896982850087804629116124702935977041571227868208415059989900350764905681353154496010505837825215407229584781412092260773883685833256991559582762574369910089538863525857915815462974099288929556581087224687989144433932867800612434479704940951149872537221620712182814722472056079163203546845358270539996995617334265564380213934441344178143274734745857133433696450456688363452453000414941871945921948433658051838847285289573281231874272357208174646490615680708810117498592724304880030470536065982636244872218133622058442769634789925536739568916175956008312751253637311486289182885319964774051306528739011160279514724037652046796752757209461295488494347706847358388657408629879684138685412903844567349179194724354737357796297310950136368563409865248512307442492548600122048346377696577486982380990753387247381016163310452201814820517102454902704032110393175291412358590061321995807115235246532730824518745519017632123239266091955360533793394148102222392043058509911127812208341729985428532488899749378137714924235064622060497016227225755592720282304524616814483277945957726840574073524387263251217738607872522373950829206825862458295828660242237009164114532251562350867283570259206579379358071723165782531026400259164948657585156166324005963374332240583635768913638099660678333152055381942981754518628623952762224642642676193220057260940708007453797660206932150660480654709236700254554780937431296344699511936457022777042894919874731465159991743446636643115270320963181447439684666070170386568389290413726145179205283037798001596733221126213921110926943732426514745153290256779778978627916800742645700177658587727644110248817538709550286636628570263130432618216755997340755163087411848101599477854617199275806420800764503939309676501079127964575617677717231325287087711856436547981557213226713167103428333750264809232709279469361875423717132374321188201310401325775420615534777473809549330295605286314299239676172425951765259603785367700486543020503790556079849761798497675485222965689086687886272722881663572996507421217816710131844648983979274584104609174019553594521807726496016485658963312765177725658705566386246770220297306716190496476017555319174306942729638024399901578625879540380429250103996228423609657996174256641461082878246713086538672251974748647516003719122316432937361372141819045144539853812903065784552577768190642150208663935460111797607731446016980772214946201821547541834681569866974952214374839557436099093773062856953891933363227788414778314701635879527570580709036694132143464672142162087359745240719634441913987157226649562352091248948290329173792347539064790206405968944585818188316372505697150824954721001143061291121279649246144814945267320461180948317795371062613856065928110748780204744533946687840582328308436825234982878787872310438012758432652887593289055971390870948934329187893635875230950319724149433114780268151432864570907339900064646030459459193217549054705331778036306110802383790413261021706542397776828673948955234340911459098032180074217482663080331094320351022449765405874305268721871751194126218249640705330581976057803075872413989529192593446488328642132208951197285705808517291260809700897099588738088426128194756274681444265890817019397069511420115890096932921263505587869141442250711178957641260682120364973158815585061608863608760914541064935839738204605497699126066486974172746045562007307799702585100042720721119043832265993412558525421874103154732225960508903710990512434637828463484517290339609407754596635713245910096175676302902348050460563679641700962115939272348472315463593430594204787839165445590722304172140218548572929634729920690259418299343356328337461915893109936665149027063145534637819213291049536491616796863368662028092059092817716963601643203871763611018915264744243719685340243414104096601517523306310100542766017299959240798605265798181703543837224418970867749115571413959050458707124131886615996672031061178678423881754290008173067900077007691033159476847127480514574501241696094212206856387171920333447701431277835842830361255866972279922760055302379575476687610816995326968077992105624219871377642748393459340077056485682473456437429289628673243007132756972117828634286318030784608054389670312256520481572655059017359031806561866576369790133410038804810042691853738828839376414093037236973888255993801530160276509389522256254865820311082966387184788979192572735164865299482121112858223778520755257947041116516709830106738863680206503235122142256662902083851849739796921945974039967225929357008422321654449433810169404400146421727043690372530884977296761608382679528932724437332333246013059258415325852801854229269755050485123165132011744502006342289757497907418664760905666131360606644004496896969721234901516010316169115391263614115481201917544038429731064806138066724067945384198776309052041818645539885600160580820853034667419992255483814389142688603905130731134020781032205653990667565881183469712473184957421049259820412330069810666026726671169698692523699672571208396075810659906048855065255945374653337081631251973152731509999799454316474480365305254552258583884370365313584891449688761557809865456168794153263334329273263200548073298829269252395654703527415093876485643436347363905600675843429577925331852856286630802604564350605186946639688276836830339113210582713166901053696589484335303439442491749943703289756126911849678667539674575691867396018426595563258669824736263280832601304162200783776396286353566372265824774101874639846091378179702199362466943378756105142309160349673748275321854244734404698672281446219733445690655932260451363167757227697617515295131368522795798950006308664858333835887917085487832614008143431868553643254090059256577569636579451518524322789060466114324563345943833363555570874383776819547935859778320607279089685104637662956117536112987648110058105062857383302149141896917573236407922394003876101877306882080452098706306966501154560897823955897565082189529805373429424123902516132091506835256236064322914635015292687625630883954795867360657404046759760319007515602628699449176991103325491903646219156548965836387852617625447591030404311198331336748963735430503347083786802598857297142357028032030865175777763662667141435845626237203172929182711565847738519149300268114400936179833637598155369213119461654115199332979236583635470079853115340443755117269765360636963496074570920891015388454102474218922736775392901525451487617826532699223409345883444360653235695748306747586395982373806239220969791130375009247277674812096148001483698284586688253999225417483124877990984321388805806657528049631693850928166124148420485590436537526055706720886601983714724694885590600234629566807486927644853098894577702525592765513684348179783768031252200620116549962193837682463811428394275757335877570761665688716293017001837015018371039585441795042905179302842629842405220488528768701799286881022341080945003087434323860985202259358393977991699514148065835957707915336042152247757054138158305980517242682030239138996187855331493701001817375994353405179948284660272427138923242066358221373564025556391612460435931444564771617786686621907569941935452102405595785870962624757823742240872307394663742301511563080796212550769818434157522130201316698531153910951708625859211707534683392489847114245785797092997009557774905369344589302196286223294270737091393848809058076360162335885070711650705922090342270276836744047177951856215846423785380948439170215403091696711801448335041535015239857878624824002286350512450978753013336292748956588101355998357666413258418676881994182655877092540928202536575689091692064870164565203135191202308844779214201823238348125819252306290640591388907267004801705023802831075498774359515861095847845820471723204782141935956435230068240829331676949586378324337362921329744857648844572769422318146291690403874078434253998654761860070316378724449687240839325903040724630068839252743783432099978003100739485432559619959130543183380066808421700764717211710808314731304220101787960272769551848693156300003864739585964751270818062020291128101337215048299141598146529659251391347587063710574098462531744517551592982692631301956316327802317254511633752804934947821360965176783054911937170981083493894118411172845296156450433953058077636231039394002147462021382486706561324391289240805508436489450514256223086982701139177583952065947850574696720645565763994890082350616515822556520055579669151613607540596247592653021931538395770377091863536334412864433604192256364114309288138523092785864451792785038620459754236888815096591343013933535047234965132786749615875083439583719620312666983978789711663221128675959752925742103835799650996316027872506722612147074920282549401618272791680490582871521562264999860631095099917198795515037916354441215833577121665893514706355767077417745596504672346945444524877845827146498403990588973720719033607824291423543920061436960431765997437993284717830226778013327782169230146694267987382059428266191293591555024153465985971626643880788644806205027968290445532482201884727822601428802407661448569722237100049406235067431612274171114202159221157017426965220879588473073503337778684363090046603224555183258031040673635343221531325637195333564631541286439360189218973534629125332333389112203579331345521202437639041302920016518888923233440353193336743415268776177611117470226620554021693834770359186456374327614850160973606942232708930860722587503955621337020952852735317797731572447688268710501885838486303984739014431021463616448387936481069215613600358072147241946390307629962169121096320297878988358402117215281543006237161225328515980224643399157044372202464484053930451873942975393879588182581577817189339120338580583359144752382433845995993656299864217873554151433131337773324135343945809545978778488642988655869053115554377129586633595495592066866857769462869243414197437184868229080385250175062079643000612311914676501956972955333436564362693874714687171405244092288072481970997001029853721090647620266519015108944919215938056824042653681861982156126999457275648679946421579928782912908324577029090939431238334788341536534188840835214965839737824833257850121094767525370725809284199339065677110460429888446881112693501571242807705299641260875618224627755980596803038251962927663387009988653077062054296588416469634559163346283564227567391457178158236031197613064851001015750483303015477030249124853541041286723614030603109834943042506728575608915140967276243590336456430749154247425405915084577324843763421680820285207259555795894167592312949853857103982731575146959282977336649264887398210472112776254603086831856629752878771442438501899141792823091662196864474085495401585737502962855267428737264805272024411634342554429170057163180392424227621093184018957954206048353193616225373538142953143078525330814781204557815557152399325952147879562217843339710176201734575003437504662013304241446215111486995042668555217191018526234214092187859669436322755512965099328462471669470803189683634002974667370176447342755272621317185968334475136868181327611495065964436630031955609487562978955322574571495669014372876870647816332793905427614474932536237197419267005776690268626642562608898998201205793492659281260255085436402902692112150907259196852497343508371831558103437673193681937653670671727496921085918330882405893462547679710062686029515817745583011579370282473139114738620407625574173801490350685606125979679306329435540942938004181564000707613007592679331126110428433774770666950669371783131556775535361614517769807143606628226967203588742614294540517539002302946956999832630045124204704504552732838619833178152000382490484779421179267839858265095500237302076331124516009915075500760196434582483775703043616515373336434590775063947987536945671873303716663972535500834315915189219847902921970050129433994957067115048407939945012025656817976559611448112092993310591122503478599214283562252485038800289835341904940071177193112113071796240936287801307587845366869961413548627100360075079395430673270373617467264671721232945678950727566959774562808512023047707050511720851342293534279564975348578443357420600289295264160731901434758511412035691017519931942427221027338912953579533172439041959283374152254685107442774831487892636916085780793030535901406016219268253026530980745950067863032559662050487409317534847754301669740992582330180697593232856742621359677608547525780560539688000324430900042515501906037944998329384522992693628959826783586242809522988113301727002320072420881511372573211035368558221270247846535599307474706782765425917991843911541150220829330774925895029484299602267770932398160333191821168059497865809107723426864857072623851762486916630568744061351067092864733162746442251238036876847035189120513202399915874361043962271238322578152944039020353602093373919114998818805250687333721092700762331073588852764144890028861247685422986474207787587453955842417710142127152203980142699015880662857098805717066939066190690383973744015310793203977127476696600523505433373819229897671421449191743971648926305292749081158885580695873160617849459169133502018099285506792887259846588967995360669220761985410745686289667688437773502757154177569375930817523727479531539411267961903504965162457589722393262539168621561045892261122899944954455318631502649732988896794420768215610594072840246013924555076310963485344454161951265555540015626728930134172547426109126108152094686625629036168573730461126208076495932281547054483037750351134769884801902594830331581862006088707801848170842616476834048247363351285117091096221057319095022686860660909831834740735042992839374286156863332360438208709426076396489330028340910536692021310222119696836586727456015312977651715118364953230467022544193235292867390164358730470744812443125270341579722427206708979721174632563485899690717655498649346132690381201051279865425221457309781322820836570760738005036756131503655516426786843724169065556251727983490617586963176230322966964596607698571117955334410708261550394340827074396198879351362723743908790745481408318621665167417497176686421087527483742302347712720286718969147094306763695325528555079798156327995736387237054133521911188188191599781456123085370483605848991472312204053967727196304170880802172397612590633739476473422620764308675055604607205388904691036677570970790897052137232211364647613402318306126069403912027989794840009811640692879502511474420171550097892534300160338997414005926068207262097388106093629609922585516606618458710117305004098291135184453639260481381371534001157272765883049804039150408781218283677927444390874057909142430904986972548955699999768550735278428659295551493790607403756304909519141046227951388357647740363620055497029037582110440642710062869021858425083473114009507313351744322957070822914096122582435288468079416766437490094945840252865426499547506466764070542399135151576351916449183295871572574296111393530457297069006495773680320186575616912350882960932407899264876332693339845231382780951541981888481281781276980011988547422562795179926471949894083862026973552285590081221681950794700179590318230358113124919246751304513845069324527594125700757755217145148593380395845129397323242455180210053079393076308399839282017867498278506895020326619567676950077938477596570392482836071326157110650383330600532302659529812441324250669466341348794019470621704071927947340343427384149500351973275253742107672828932785183832405252019467836195537572534087278391800366522884881570515918190763359420211230589082897207364951907196256708594114821675009704233902205320679344091557533430814129046856162359172291325766003733393293835931917450004788738816071115551176840090429213374018113833990248372722764221155564404831519641414516494539426700179213078689039546245962434721063341383489835523068374211130211061371331910442851680939568036325071180191287764330492163982088985612521367624319840904379408014023166223151966332525367850033908059212172868844271245226003621108690306593308404466920274147154799039833840866948063894385333039919684528255201538798518536200180578581791278828884915960592642698589540339892405524209659430462220769068158604852539567432545256721574589173970389586151359563141552859335901129536939938979021124706057799005303078615364306385828704519558199149130254083633131592227787445287047987270685460040269075825835941985842511475110246975511475100702670977280638022316749886705632739884537494120098848264560772163743307229825239418188097188470383113082069225342511606094543192412715187603626382682219841244582311839750650006298312703648811238880989616787302539833068413331499008653992460130428059188080109002770124236001761723653854106333681768304871076376282785015393524713944771590854275741988115522813403084694671110438271145488691198062910737063952790387412442199261886909178111327270722680396369055278194559260642510318949796098240696911807139479494113434045272878172186216113643122817817114641037980336072067287260075834986892091579882289282200398006185130039181309743852312887170515550907015535575802425298267212123294646463544472303175846425266097743433148213486838191411389484140844221405070951729065212872528011487024317183137813685589049122553118054488118794887400700810829093329887968613198200907471635698292606090322509165261050863000872315880775433824220594393074100087207402442925164544670649816081495817041806471860139650408822922711413321048681127428768071914016721275852741009043107229199025582213730670521286915501014843247697949640574618473793771251773121221878740177397963102075489569120997747012128245360984293099779402282655208637059215715344876545278262414877879605111417706422078142855845846465569633140123179850346811230317559039243217548230256502304536755927532045559156546315874793838548746064221640994684717026456327955626062860212218902909027332534031748587685080309884180854809318059235554566830423354073212547378663948168675807247594157568767992352855971096247753735784978353813408522439700426075855685772484336519195031460143740365410632067557551647075866650939469733302608384524242620582247510034556174843572487429988063677811041798252663172650524076604719907621761042145459278301313719450249081059181377208086016170512698547249091962410449709256525517866736601016845945664452059094551179241832779872846506395574870652733027193203505389063047543617864388839929228895179939828726590454311416259810242014694535109537683447326179822728009500931967455351323373348932762797414824498286334119070741396339042300567130833374969755707114366686571962587401232606674557948093635363811792271942909369156300218972765091813164970143772648616781228324340281150053301111736313855858785372685847040310954106565567162722983161297620739006117448879482884850881925054030897003425289698979449635932553749925801254540679479443276702672902121099548437697928298894341933563828775765484398068724045212662961014583481924230663397834737516774912497027128441222369721542076535032999372365168820876857049583002004007802778047019845102154543407272316663289014803610900743046044196904984594628606304205404302702958743005633858786114400956088549020840458994447946566008868247453788927580349324432039968752789158241629799950877198859687493845164247462110101850222605585129730069675704818658480621342984344612686258743745206630741603373617697338711052498336964375233831119199687223586400453245701760579376370958606242078744701128564722962134482036724256829521468447493369284277955831282114014096597674040832901159438314885600381728770042042647731890685545118846421868858750727274929104631789558264769835592157224620408173122652906394382116852398416539484347780618834348949041736822743617543086311338496165055973475496727326928619136308086876548060998434481604408154456017587584413144775012051029417173912399038688384684836804647271806504048282428680122370761992811488384318396099856384579516937999145424465986926614582772641371711901375713705892019929287843450162319928142565932571697909063669759796655877965616839836409216964477733355655413787811937736646228341968390014553372078483211164730725968135546954559885771877116755030366001543544295483308259552771078000183657980963551924472126223191092348515234300014997996630084499049587581779153306500197542990218830253151365016933641225099050478985724176728382656410166465436371745690080291165693365534335353633131973760292715710934038706121245986223933472195350213219228284375009213932717023077028718097460501372211342861045585248929230757198025476058788335132601092696781694885621452113034190719561237118114519633340298718566606841301175467544197897573193642847029648514895951212123452315992751892682280612298943814983822551496402305433599161938899244651591794636474666431252876786884567170755414680990022981023755787793928992819985146657754927510063163308515165806111459114867818370866102312651638689323522458605852349154271670528518449450282723132941531210755024054638638993183453146901101996816041634558651769359993096035866123936418651933371763977400754389038908199381820186981364220768777215062319486496999431820218765735259367635537424122963136429383517351601248194266346415732434699072412002043291221691385170084812745846958293047076256867344741950630549379168872540759734198178419403255554592988041336369701385940688723159215713335465021960109920039586501072419534111442691701924902011188038056358079210411416959527132249847476034577772620037273724335946986570794980057136122821078004376589939385040404024574416426182205451274782965032547067452190452859953672135187886026976628190901030955826814940486561255983869937514106613746281611682830234710019965842555213318092568641374707341765619996619825206646998741719885774662270157275066644402533615266149780683961931427687882271150002365270949948374738126066377184496451281240971792490727594297652349918599000569748238974923673930751965047631259719181675408900949013885459825721268195729599155366298055637407597488657025467719284111115396835466043186998016116962493020242312261423687768267981280059864992597558607707775778721261194088754549083355843928735863585584051377750097366295520129463445917038426415138810861593925498475833631481438453403038969144309048241062267622185499715879306209694684154957250034982836974288221051457524569069370033620894901588628815141224968698074723369975215024412523803762360095642077689593959898600459698882778880623362792728253228791167688568401582931751052293598848828454954647503996051036919576202147791890557332819138936641665401902916569529830266817126108492237804803329876065946542599158897100456319570804957828627577678628718218871930716575143774961676879867584658308807462574806215096419704050456085195001753003576234839992304448887059027285908621191921976853161891209026112570660861540583849391910726489838663114553993553054204085566427659878799456783858427182764830936135454428443431814923612006793870511065356139675655712925906505984595311742498224933753652011961969500145256152490461281058823049767639819518533852676301840492853731435853702573012428414129681670192160182449001368533105569778147845703757231001527352389262891350171851892689413006418377119910974979273610887529890880071868878749967866890733761003872850700751774675051042272579895881838021823024959677054839460489968102757947399116200090609771836973571640694633612326700209689661244855159298532959985826808698024009042071915519420889741565350773879986022243934286200077246586910083322117977358908242019193895761422906296151771107746622562136965723780263402411245643911610146128947202730735460950973093079816669868895807891160239468502952905043920070580669564899513050323906154391199493739162684124714837080430528146880534563634358830085465726219640728675466347396636129365912950955568409518625332243851011025297318357726697521856586749171527247326374104502791549405038092357549023443622477211505817268883502812203295215613553778736803725568801657142367564502176877956274078087974190704019650941602815129337701310710077937179893285160363486004028679892866531063902351479858762634067646411731591486929503029693730701939546036882169214939519590444297718885683358567331743055811730672868076628434631990297168505855546238936005877615834333546215166727780188455795269438915279878596764528146861386400904825812769193637157901341338941271576010865992063084789640425698818791997279501834307081124525274455875112485829573333954765081846885504040304439114024687472324094902784543602621112119191102792481335728865287975414249788288327715444051743411313190667370930033486172485839375389241810991247234063480362748563854528664464314532935883568249748333900642146851101504350965947692110045276533703779864818927523273284495825491012428704544871692555294467504554096176787361480787833355873432546356261172461708495169209528441698523798464731479818579722309016467394945757307787896609689525643016682550516664545359719036797327863541770069101685407747763801455311172809346640255872586470245057499320189390563014262521640528617438072399121652276819801966345777072838276225796006969716188404107911707424149814254179744171039262455830886876621082298827288076455704524246291773102838519081538445746043919582417547275591834352078566185914284802697622870947127318435170098200850619604093584275612710244689044132242022010411038891605099421128254329541446645523196076935065598515848516542119538622251715324306932619148476977050577927223968177323477708684233836549348039303733185280884078145239655041024116175100186103827117951780343143218224259334113668307387293866003523682100540511430243709461306644877907356899579034975525133549858010035887269659298754463456065445224217227819916757152679628669223557442065368344751203122548883063104281214743025665061524959240970647686237364242656522163883822344851873651242849012608877468855707785392873707919955324864698338975431337112778297610932590598050028051127153986301449563489155594710527533475698138562077454681407922809821592710013700576393023685119954597622663641153408669327318863925177081842657712168820300646618031354879130062820473115888591700974977509287836340225674774206433035431501123302839310001364674871814383988561949321519764519315928568595492067662999743522978490202033428072156029594540434089598763426857954431988226280744666307345859215589786921785359681682628282154012873242389484496275223003281191942112598313168698731457432581967906771012482249441985295414807259290277841042673190250176450955502925721924409140756622170056512993409828490545491800175531180467195634764927665396597456220282304641304991576547873800872472298883854918211168710311976440264376185466616630356837886906621895882269067443732389792955466715552613343011399355747716748196077862077134482176290499981501595717537803508506789804729069189851537212328510118279734197994943397299856419340505150138753742295780826322322974410921453218483913662401724059023577471600973036753603664684873051145414925103403990446321266031588601173532046424819212090597429991882046615775246050367052381573392114245292783575557240409903083415913489143353288341230022793954672923136585181298550262655799545665662621918430888864596519736002033376293984410736519329252652080175574935862949061553306134074962706654195016463304987916916187237732115941602183940952326063212239305272525943493310416675715603196759338774055217517444213109775658159014065578280158493514690926179834445836791961620634521923222215457215891955722093523495150525582819882661712470573890982385534968144642573379534323010027380082606408894199045167479012833533999557143941358379417047704133791339174880272806525812833235986112341055383656355064907585537979869571883040263245949007896218521242861123959998727779045501964050837987259433460174649391596315999317561136845485835115621541457095670126354328866460329007994726132053109240488134373712336241500913266103384809169877778624430619041950035836727162904728038785603548847381719747728653743626327352875601367671273767090097867455223270214768799870432061037500755947479730111339018082774921726394173657212785575380058107721740810969809236933358905505268729509527750110393814581035253191478365364293976950158100883522260072603766551970847334971628401539331618159549713402729795071949581985577933421672659015378655242029700770622619242690025582947222206024231470552681160653604454931946232311283145857402378864204215693162944993068152632336392496611173449712223183149666232310085736220223844227973459822017407927193372474850163741467228567734596325942938093660657375097997312080816381542995809702229327977184622452136149230318444270164174420086403597748718050953360318448624085399718222835953941390169820350292263615557605072193509203506514704444362137776860684240130693777683346357826584801090810991029103877787635261944382784078883991027210058671436785271122749007284462837430657853066472593486408734907732017129192604063761757438560395367348873530642316391085464251479903049228853222186708802415782552360909811920743357874538379346431991121319472235879802524943452850674501323234578533075376448412329779770060728553744386042545294814174719070699463586379345268648120797385006793234226653753661448273671068511827548717501291281824112622445736228118618701117502942592496368335611218007664333087366896090878789995756921875676598603578091723940199102914977136213726271835660703772466147034469964363547551544801671405079627946048828467912595001653169948001843572642044011890837226325391791843690034703224007901621667216020217615299029902192087746140429639710982678527880886037990290770807152482335706559565918127243206802634942079662207361649786611408409820926631301500372392638249218319436762323586321058610430754506710405783517462110348683942449601111862941890154802640160068570209159806245149159190410899727729716078732435069537914162033467446028947431796492024430868427425255529223432958068087951486723042540124782417346846137938099073067850583299083898778741067775530986656867018156618201891493622445628383679721907476061759878502824296404038552210867880252912209268578463841054889005966208643029619340656511612634026070853241887369430106857964253081043619619141041899850703478016095324821018425359679328695054683856632196247233466493080316046360098569917082246349259069801290728462727962501930962494048043118556802598862927399357750283099622184612153295510836426991304222667048144139298049268773460146839156145547227820009273889134687275727146942749040655262566617991298090963507999212134990223212253880655422959386963398189575464006721971986435852343861305251744288159082161422316003111643235104058466010658705679284067494045315540824838120845457741738759608832060717780726103506053587647583776348205689872476561534465892129080778699239974896875767905362803144293486793137252996965001080673751838134180873374745465828225601593500083514218756293771444859408140980713428313808947662519406627834314154609290426223431512684052936176475353979175632645909526240772492712942950573803658796143607147241672945983796728801117614877552210112184478094762397992662015807140467208162850823665017876870205536534840345588544245056744782555628951187093582645109004755647153531732030465507146568264744713911814330304699892001929419901848566917122558044639267541581686974948394244728736768100444114889292221177536649523085170222535478751683498615161461175485467800485208842319861324812790936263381603809381213094136167349869416284895280374419983325089328032966307826837847944011336173664111985320725893567163628748458302406655374886630005814693906061433469655628664844800152265261664059584894483922816629867438119996986020846070731070562542738286436810593004494516932855622883158229354293450654959515562627270277324997903171845645622771989606932922553490245573730527154449983267067450118796610751414392572778990497854226892455943241812780979115893335333267318234612851845863042392385531058041909330168725151050292546579019362113238827293437194907793934373159860286492252061666369452979382269678826233009327918638919635379727471753440644479181341820520051981383889763113888834929328864509015649960772675313781358393682460689741869935537868074330035283711247654081422446633952951246224385231572402690074880227053973290062757395655366265153994170614860970597240036964743581349253156439164957654819080611814255674906096003915248740430830180568987845046718584610419005627212034419443984447844601921707221788045882126645532000070627382587358884869147112539410286414152705590071460693469008645096653572267715612696997173774516312754393876453105526993182566886123701162483412622364690564376376464961130858594134730162718419604920023915583287336825876774409335959711696938868844990048367732756101085973964748106476707131122047753139811870007479589456989710666106630462831727653169769066133200836348060276200506052482930269941894748845895765504046981723610495943638388660296538788816325649987335615016101982588284545679097214133828897068988862170680113657592043466909855711721939405982505944768995017839992637899053266485645801638825119177479246993380234909454886960144190920564504190268518279392751642332376940477479323395943387315381369861660972165316077855877347990985079774476399843260078999199038570974316192275754063602054382116526071719096924061503979263151962745042716149489121999020011119727829607844363602304456065327442026335561279078564501492545334410740037643826961328670369514668364063996060313500058339189818101437343146558587806982017992844184670024317621443240278473332746775055210466132481880441338652035316737148440185302022838711935556421962097453910853392828770328782740689133902712868629992189633907439096721953982324579624594377734489675408450899249304868335950662860153782970044534330174581827181714494499310842034046433651336409793077809569607846347126236840484420334074870079731824085504235151720125508599589687633045177838722926730253649407216762603141599487777678773249698922941741901930503738404926801999117713824946475636441786816640828881042065203082552726145585171323134987246089684927310810183194527427731107235924291022386288690036709208223944045881430438848437311899169197517015117562226455843822513871030156425288154611645133248887429659810861515690197010449503976036946090806136708734664111337200500499521365147006205749943472071550875061403892871275536943640593942138223400609200304798833399781447122035945944814373284055947164838752173989250965445022973608071740819341787961351111782157982429714512164143797553049406069820053583036407848487950912503968692084922130559816893828652170026107113377869846087835245635583578406158197938715894241828274318658565589172259943941223530998967987825917146142292976765492616581855738423080597839643191205373262796313261185881508304284674837073155401054736811366860445656977517919559194371502688972246187528310988501053546931474147917708378781496938297371553338342519440800937071772793361336924931138773777878282555812925967456050493538288588534766537820216388286758556047864194317579652077843841513924571711306881468457204163745419703141901124006875091356146516449100646546477630800606147809631322040204079309468029745802165188990613804388485496552264820258824553789723769117538551118451207983050399173563678741466462009597505894417467364833184594665322033008695255007839757266702454740929468999525349899710632794849299597068816809601264033888590860188815350144457741635884823371823292772366570235839572307819128265968754648026625071616939280881155397246988921738716115479263068383452959631524377547054703604786933238773511542629230661873348051430620857608565252907152930067858850165072629114544937748968713359327769296028253125171061414501936514651258146053554324471592780783190367393065944820286011254679257781020741554510740434194287534935713345430161984336885862024851791780895652233714834815228584340784292046278511354840028155206089206992120891045027604144194340246078796495663890474255704667801372962073617744606877488133769277763577094317822521650822560901566225416091927849719988518054863690081806170610826045214037023350718852275932756793590600795855812382061499897093217688555355621111480659916242887724846571491805842120467788307868770899395520837995615360932970672831647157659437573524288925025279177696641692115224766980891684738779547706479078310017240032645772260714487472541593285066752700524974249772125759484006618170718217867875866537984671723393232363457942251731787269323912673746974575737640527363980584360683911458777473299748999232540134865640969007904374010634195106086690135381330504917635247201467747588822835164312348527898686289632889640532384665919069965964577863850825796055066300628386630834802690449882154627284412108900165939463125609886811316166424404707211259456115838759981543354839968555895166620818945434809397066720495062953614844769337180942959990912062893108962325756056440745507061793478284521502487682392702869603355591653150430086075496728433113177773142636822517632562787940428600876046775097829101052568462187385141972692379290074397133549901770328567194528518037903352919777741418696660126926738682425505029764096567257442547086525886862913945566143724637985925872209211861493864416571830102458670179518532180138993712003786242241393514019820982118822887953653128942013983818074907905481767491657852278303083996970966573600862121847706946098527199907233201101472159625939887445174819378859368680221031150556463463964882992911527520511200395602629117092778260906470686477921941457583064261226094398708019091349740088009727113147840920028509282357905603990277121071844226177980002620470852699318734067840605111318723746837098054343499580174365237129387485727998904784413145352869090033595353232653934364618925297876740067215092322623980548088976881497554723933370595700341005774318401907957543264398140193069250268520183400103929254033379104801269645643495899713275354665430242212384310717077897562948911330088495785784017691748967743049075772641839856208431241067718867309610932288671162114779466072104746491708529243719783357359736998577834038211410283331125900648202033756153302080667545439646171060833244344242130078016833811334487332983879158811710093025933828819709723623780514160772414741169704249121956947887305819679339941562358758886601974482559456251260398886620012573434121580613194496232555084996559756919626170503090217332735009482021901762894923681693656883559420568131277539363177447900200039858627061490626071826745165187927167055843774000791193053858749829853771764389603077721143334747641192962112939767828908023044327124589937421589713573065132265091275481809262840566805526948494566081377884983117734170467637868128247523793748231429017108708503236110327519051701647902860202622020381339917127039480880451550969393145241478568722563760763679765665035657475391172531944465759433849765385355485774227761233766134853327099950620177649760916479071029920044444404478838858081049965801149794142033510690646398227764211791987637295662496640263594159532049736017149571857696841582090520648230489231843645443321271775153349923813524631749822728607471548422630923654050392517157844362266262346796724653963514807395027569049636530856169404885545508490004257521183069768410566187156607920186583984805211017948930416152897168177586749980557040511199841736940178096774491842796497155712923759363910577830923157782181472702982979485194658316312383970103985786560045712996757685638140453944144703901804209680745473923918280406663407545124989449734317760240169450022089622313274271922785875207717762637011681768387532199101230686195799642513038220880129090589790510346523602527466881375866488353950360008434260938248206731614074919090580254057711374247014726108242959846171131747696715694809159167896100832711005045702346209721325971229521363054510095840314188015045113893647183107918912367942036519086856141075618225370388788096283456035167658063284031776208083134881030879616553322991512036719667594831951642552207367591177999761849143333620123225118482051801621416255462595921204928038092464284736306194291962159092297955579122138916927055380455664092685389269956864468285468190663245983097346659762080783508313117389559999729045586391423879521961736287117041097784271250366715658371199768143875507705992798638825565723490991343796386091628189768904219386514915643671523761446795572021289454171666576793703769618688595634450335714151729828596666273541612022350294443021675710755597932146127494505586723897556868799906598679934858065905364791534217413013296616111718479465404255265715113583657468185719842704436458635683237672463967324478227114751908921736914478541579120030729343724356512343135060711944339388748999117075710229172510016721721373703110193042550518963631339826549415073201464489265561857641232053142485242779534090805003278131642129949945358893417850989972101734653405883699289558865714414365483656427532161075298110985546938805735325709392722947517452565038949692791742208967688432418083822625553163444649366163732952038088889129440652242590629078992806152307717492690361132578829672391930260200364229280528520720139008027764721932576712961014948399650362195026148799263547962887606533006799935204157544604072334562821294338266604018368433127464677454588538952428977897316954161767880422573025674835890785970382045600373614266591343121605494126405464082751681508086873535254332800505848961259360977883953626272103821816911242699698456364943329533633834861657352199794018178782055024785024938210524329868854392755436695698741212549470460535491599785756124112277568724337061888905703021470158713834550503911440411437922897131209899779763879598652581327776707450185987388767842417470056797025043925357908849653403485833207770261813285156280401845606353422707687926517865049831015896525148213390284371086905084393765531120042793220491851047074721797901018865582439295121116333904541815064961516563313143493482041303519700410653562830334058373922191978717644694728519863433400515473955219297550777127238039323382802445882309031726248715005154574266443698161540841459554907307528560459003702945458608625385129359802195715236951530371009243206071934378234429866833717813730263059564999823864470404597151605227044175736114325144366326770433177639264238961901955820739068104384140308945527510120491562846746709113265513170484063823533367596167659099538458086656744333604544107429285987243269693150573835948724194428546694316580942769498859171323426597374432442516127620726805365729913097084246675120112107705512353921948315879824482225422738599370683271241849647441165838476002003128315884080134038083297376005887143694796395279462403234643708721325311058141371127928039629731065041767679539500119388548347561847581429443383722007183280836653748348296548706385047033121707441992397452680566159364916849994486513852973860697266053745527947432984170878082841773596858693338084042817845476919744635944193951281588627319644309849089190600902826581556460389579232238974699141697393118631418381034784975041884288738301821212949278954419082476591650446202506882664322331403348857728556603493917063431152184458563405863401477407476202113842531085281784451058801196750351159932951392455442831982307949131744913266843596049045862235895498728265541895407979970290421726023714864213907916662818105594627240294179955466725663446806374492732857922692837763346989225778645236438366028334980003913897222429666662960687180454040703357192719710693846341581952330227092575260352321890574971807403458633578868046299434195200177118128036810601223772873160518784565710709074261078748790141767094065818233768061404560983666880022625764110799171268271703245724136230620436573390263298071116612620667616359771788811491782602728898232123100434998513543508525393884045913429263318523531122249106515523115358088070179235079874067767777760749549418033143549507346156303710918315015954865654784898471552231194233336746970448026667504362345897911226463631246762191159016979428281755237631501551647622724218370918266277727965144781302402952987047359733069910992800874807707991383025531431143799771761671616468777094270814014654237804875557002277460863459916978096170790647790771604026370833832501383379542903167337938560766847625199238922314198492338639435309636969281487984167462345431561041439733334717637303292006327213294007265139732946680101495317987163418234536143702213247504227944238682908303087110519404451411900830446372839235143441144238156717460871535266021255864080727980561193389066534842825402767798941264608103624288565933338052517403451980085929715303955379978103677899549129882524071693735576298705503091613596622117032822149408598351815757395842064417833452864680297556411383848933129366012855592609562169521363417660993816002271952653716395847534412817344309051847632253267387789261079644542395239636017921110311535464458603348485743825927471874657481590100184969044215459259262864792778188306773214021042652862171913592872443216871251870701398442868635733738339595085301674216910069318785772165949979965000108017539141697084195924302270437594580688850499332231304607273529741434221668667921222819198508516401250784114268988922570491729401159570690861900547350500173065653328404838511427807194367515031862662306693527579440208447465687075761505110923015154941715132696180974648955707187973932335574457392436333721160883953715678681138695652256873747948051726205622240878021863130590729239049179757637054942636978597337608003759390028969325821392040641989677059227345169636677242968703314315487436671415326408337699816738667870448441498417615726653102937360433247361938709613278563428166838698228561884396476450441052245795078876133248677243113151134340924819293539183824420538293668807406279978261054759971355679330594129715669398149252508620652400394371501685465788502723684160349915863522264367718651688607153502595108418267298516054592721915137186841477145536015176356680568402984359785310455518476185290406367856296807160377774248569655699947832324115071427088483729952655631568433367442513386798529773643342028732609294178583828099405159132079349708448409499242713417163822089710016560885174817315954238229164810064242105723805593227123974261201350815647701431877291233068925166058015886827190197554153934663113614895300087730625312800252938808093908849327709192785708898221812528596900743786766992403957671987826257628649595810785976211005377811496727637120712937236752816270586886927539796404165098395939830457281191580340842344453606167719488647899033307222703154977138863629378952179325440238465802174729304322249979781155682564750425651157439910527258096021668862122132608847020368976940387036936199251477135168784722088129654330914185276878893288601857369847552142389604630259021675840156880056208733792285524208212745064645044772648252369338369765161686639021206268761401954949037559442907058640242423573063812434686580009537297937948099945643599340407083678886203723828197679432760309298624191132392527788922402872069432342740405756177433586606283903928007141488711539942291214012766490328888447794131516521822816476992215487430268502434963790516143979576565335989008652594788318003340765175404281643277500501909059809000365751038254557604084664132801449030453870514199130921908287879676105177097322458867723964116645344650689410231411645614716332313953640376318870096864122812627248640079749620561354179060553014680917927930921981929354282223877994084255116792233357526936638961372352763989385882709617889250671101462329927805815366012103546350765800179398742178369386823253486164200649032922945653593183569805089827875754080092747425440438275406413654972086982870799516357946515456237630387103247742037308113147877026543073935966264504226019049190252789384712503855264197161731567433796918794728230286398309385407567619423254574663280374550604788880736779743463886602918812186060969327423381449379821281192521628762687059189070451484660355342789102811655938128451209912452507527177476114245703012311042217866285026151229107487245690679085417442592555369814135101114493680192916892670859896200284173429512598680322930477041422292675128171031126914792757368374376861804039504640079492240003265313304067668809030548988189007964203950279974181888674556194400497687397118893409912548160700653831278880615045251926736580634463799989244409078629286034564917232184308092565558467437154492635440140861414502920583440337245208912945255996935775177720815411526731647546939949525049821738784612363827546122229255470102371106660059563658352446303720417131193969296540646826592058627201913316962678604083269160407920841507594603938551141337633518124749410770795510934496658103506117891219588786785014241730039293550274216098528345037081870563946480260566029095073615232244329940711204240618993514880551813560737437678114400622975331724125353328847957730420101544021701291866787456490595519702992837556102077481176030925498899943817438474164266618911689062616265695913205254077443930795626145131822116224157961657914452724590471750882024765930514283467688114686347584796433927452685826306228615399333058817653576271939649575052032201427634120669231618119227096366400675652500664604395501663148098212131159674612422709897145610886780604003225560886447180568995473258180679877843469308234595508347949483222924383972275919269974914531296392209586320631287040912726267149743971630139997447056026908084595774106892353593150411371689312138843992502375279547833662374789474841284523188891796239424140264264627650602483426116878770824086679855680905601089069848195120741125550201529489776443249093067908430059733840323557590942804431166785270813530236234670001755629910454968407288452854832032228799120032139679541331484279627303887377636436880606680254156886965094690063229032381846743395281564255854823629471962277163844186725327243963324274906864003842442979512162314182455574746401926879163773149743603412649530372234609594720875571117456464616650735579503198887556269536949584928501920607195946552512954838182164333061174900382720557789321265228782240776969228584824885291075320165578816677039197186160727933982776295830841306289823207024731158341243543921354558975230602258124102505282087751476482405067365722054936121414382855178940191838088364926906703318727745513450373478747017492678818868928733357501591353477956311222230742563868802819982712399160282817378509133129554472961738190051795011955688823920758748590440179034811098378900354316743352646493060760472479173795424415796596785473157896419713753955930595202992966113331787357294882507397824267907396566632896116740106596248875128651829320519975474268948153922168578790753813971726200832334098646985289419980070558868073993327889731022666583694569668334226050875631814721404468242698125157509673624945844843446288398113448586784505514233184449436057712935699995868210347896007588311480734049811330094491808017294503384400609930460567804869213669182131255697044231973573406086745833823270043389829686408975255495223627057919042849737724036289783105104424098893260186104121792041875149397899931454613589541640494073150745838684596108415248829969216739557158145066823141975066748859281101292853065487540810685627315858892116170643171945137876506590201556480722726856943327649855922251670864147494496185485216101403955299764831093421999518535470301429668837131707766417916313363146973178970287718344377502519174780470861172510592687720692794063346737253935054456862692047059810814080917152893109512992805739975608670032557452296348473235174950194614656923924283615190863796800789506690379482903804258322931598229058035036266281975843923178440526794451179727274517557779209246393934837963950583547004095014121921962332689218834756523869314804708778241221225335119216253915248623470617784018630416133905522057675284172860715165768158087595133344847259767566764280547889115191231822563112579078192817548949150859604332728464243723487517578360863514909554237381689777194417486083296217403136432607234087983244649254397415764610760508106470436044287871289296035924879880718965384301408524375417772607797996688858776255476220329773391028828068738555778165249761567728368649009630229143075374183344731042924182684488460983967412075265224497767415527138057769293744197110916345586835477077245069706821296543334365693961237562569973604759187387058134001000381942655688179410201502828764711003955407073063803186891898595091100992044754491789557453376368628698072470753087004147680024738430217685630205991581495790761789393194544888360848757926392696154737451321976499317027150596161982890115588368715298941662925955084754511291052004264495687060269323475456543746333035921406864515840494475658732479825125505211493220202153186053051073323569205144920183965954683998729038660582631776198520825353473845548304937086065067720074592841827915828585366082417476122780495336945467593834987694561972773272722365031503738128646899780276720555524177683445791832375770389893641037855514454853495328861047805513163524904954335878983586375574372182222081038045541895072647791359718644775283819504283834644919802027517676104258003705316920223959449561636247979458724308054215243355625667434515683131968726786106541975138710718437598063912313704912737657902581294475428572365628493660107342748023271250430680384557749191107470103309655401776212865495439236045676980945563652515064312362983933815121523755411705394144322928125331916022385120945075535321418648296744365441115154059635637851069773992326669187180464239430944027803405002710810120422531901385002218784402865020179307966049280578256200266231142850017905482222049747549164844219787999976562627153299628368329585562127108511233059769602589725129314136975487648097976830521081951646120363590602405425332592740384567161848686108602178764587824220826878691715003765021037213229342872906933195735080993970877269264483001089032782282063042861768335148993832144923726944671936538422781775593550287973927127586022451613389275267986327993960604747538473989295280844708615392913448737344081986783872885322075769138194587852680973843103633088055847105640150795143374182898297971407255423613417354005226989183664289218992706312990972174157343293360876477248817786402239531547407540569187267386989051548089909263026217898465711587119539574192389261389176665038520527921127895307593873524877042701190707026527874050072511210686120095959615869978253595845334278292207979152961916627927007424701007894227256594599495845490518788296632129993414511501102770976386803349015756857678707552332397208085467212965715622051096584643221490445380490047437265171248429608890652483418998822604612936123858389021953485730679113783724655971132407255128081804789910922016466123325334802480084133077912247503631826034976935776607650363966804401702334329684883978277404819477308264766473460024833209573086374031517027401653209111845765549292789193441075567689777662147401410811202053443829362354218573644326988394887953189819458650676441476880489565620857680387568221256293159238389927448842483374099669715396210307163586026323596454032676344790684096069835200360905872875805404636941971474620128121866405749032967131073226645180941928445814938182743632007157016566928393529960085217536776750516796011828370414107184279652389801855085658432770947775670238086696825773939736482511074508919711478904901610897393557090701088687684154992631573040497786984457512142983664322877466820855436055315565015003398283330950400279462540668551585559806635657642173873209795794045714186781993565694016152185955498484703058077580829765214375574930543503373934071902710782930273435285547499500603442080021210362421544782700231736060082390742626711613215060996574665424014984716562463978622891460853283462062555533604660738950416340705421459233653814012758608826237868805925528176406413685912794707166688919454105300243118472181538533806429419480484439726748395184990705056256525177028504284578522669383680705288577565497487648659861933480707252827535460101275597320443287991996634147586051964371478465834365895153957808505833228022648104977023726235647403177677285679224785881185938284587695652570622656630988885606674440597747890614414919888914214169062103497773502978930693234280591334220600205797053790380119696568294206356052721428510118787882009046778649971890589306918025154076119868952101308262156900154359378908361028775536334946581003660846541882632213524627443416849268828263518295365312646609033634420355307782563890040781647238679175892499617085011648643322297126535217247664672936950771263782410756072075812567254497299479332854797367409515269027513174658066326447367265935136498179387722170840152747061739087360893917173407079667407713179950516521233688437262857203675876621933321103673150893254862826200885525560366889159658053024905165916765078596707653732391835255491525963311873440361449156272888927297913751988672577143334889313203957005648831775187778891229489721796989865109010645378357371168615923566840760972892584595485286656770897283608632841611128238658487737106715327754140853066446627958897209487197977163063764924087921035024040700357586668218790688123025648586563423908204074026685746204715590037705985657922730847521836581955855246706401692983846806837699177871794876321008995784645210660455591019769386168452280006859647190283636782327012509105406177372569595690353246732852132242572989517593085578773957493519403675831602918520712983617085487410700342403981620109450870724422999527191722489174357247520979421404199884686059620006337895560588077104452139229317319328799010614502519477449146236065486282782630062739710018444269995088007938573372316235738363938627155109117613391716618631006938009586080291897229406192052076028767696221532465724471997455183870277163864018098181984798727963397028806090309512849928608929758272794269611439955537888752286214913665864711791122137635280232259520830070850648397876265862951473639530125429036100330917247183900269148472058067751635525652571831222285288663979374397198210323149124280624677356655609818980435978623811911137440792404918820994732773678083747081340300120558083528504853090636639428948613246430706589975983267279909161605716822133644434053274878141158160267056571049743812471492158536590412900064895778681086376726398587649316480993935256138293774811140267567917948266653509575158195743337651788212410529458260335687464193498553674245740858670997002644243937682316655745393641761736088536110418372169970881606396000831309681941371676404981748659608093889710905797755970531481653358519308455135296508119048324189314141834493553446386340460322450051322012126657433502092666211320971460217354838333013112445849082269976404109804238404395217762561512575409478841962694442396044748803884881510068515577539869490147475347743097670652519999211662258435445466842479521415267423170957702703367046467260393511807338746459104255973301326615537262986167366642217277257583084642650068818878442801773016073610314709704552025782880171618721981085844464806602154567266848542272632804435254968230051686540592554535036590554910189776078892990008590070626129597051653829200580618377679729235754095980375312314872741275338490763969596718540611574267206146248513712978898688747590193250543282349147258027647667069423446703390439858084798783465708138080825488276208198759255647798376854694703023262824431159087050137296416644558045152798296286528674282624936087237263602164645122735898898924447892509381425941703457593295312444583581730814174528782373747368368683396897990650533765868365232031608874781917142554204284902915658869512873990977476005092657203295888963226080311934003240141756593231880675683449373423560393163530342355090996586430717722299871525469892947101119460559799550954127036880421757263358224962108571281547495842550633616159137533301523540921317876543366540301306085042633409092690701110274440300601883036912526039936528551298262703803257727414716651944008465986712206496641485033700192940095415537782333865198390136580791243490845245879559833612760886130225748853857498006855075024297894933695081586212622925813416364321247367879258632971521042776805719532921065720096578709456119427839411886520477514091876400027066257740267625180085387603808522958906388929660643451151820049102985813917893220191393089164780701925853894067057412742293216343399519316190339244289006738904556481690654225596271227248630495195659919037671865489175512224992456937098236552291826600394591816231598593051823807845001221994942798262066419730221758947025594831830029119078855832034548613923510663847629387265331898103324887517084235580143946531702204021866223348670742348988076360272609013377069832250687150167941930806932876906011087128300673538578368296310884852744978948054491778173051538614833642556969850569354783191983505446832438392561851782758152470482056116340262094922971667044501533079706556667571807680280291961062977712428603441270898131914720086238999889927678308697718666748760121313978470874655370123940554344781240832268531196858178013386517251598857846422260345154040931158459089976895672366156901987620928766501112210435838900579513091821680504575301878575201784582073111389986611993621730946748468673526272975218286397601916622579949064768993231860634005124040188066855069889382847153488614863940819983739359713607664971450706512898395523842378898072800342528122031144986617061425515704659523497567087547018349233945872915388218129096443766495249270407016252262998125823026155215385915855637696553699392502625683270879999089771629238258859607103835346187998969704528722704438046270663386529084656277546147844790647804574291306574572973194434539954361835581039121554995873486788396730810330368700535117442970544848002558134870594748009348624215038848940445762597974225847026885854182502312493762908479826197599620900621502639551965052273297701888727736977789109670000240501839293495928431504379819471014905811101442130434223073767556835194779289504187124998141320249848420823825785788871734790438534873313617926443149052324437538946959730777190075201221097178480937084260819068709427697719946697738308056698022096998268384955863150909546397566878844836716827682760957821596060813124999655224453458700103273211895564390905845839087709738388283200424505832528500199722826477318702182890449808710486166386601749246631666823489078071380831166210393247659725036812906182425775128429832318024763080492343766796518513704807932631530888482562783017421330038584090403584876080916309978801642721616504684371356758869264724500588826327855918084199258663051514905745040740034039535223095585698123221540304533376921426851611427353869332487792049024468541182250079531969053054325159479388767331115985494870305883145794585665656633416442353790687284500823437617490037359749400493909273839033058360329914805732191345018762696495218353134590865308201392005312514495718258742307150370749915057103448804792811969718439009296470274058892554697661376584386087627365104970293887787314426056848620651824881330835299366592205176227331724378275113947416985962754367266295373427170702025673709352101930344729125764633017595210657728268214585011434735440070745002461517229494984134293090472464020772917611127151691140544080623008742470700205233048533284911548690908132595569657606872440347245906754235155383810397146888599677988784656023340121524570663027507434281059376283459693750085893010325350269798117328541104704266509432767660071603777789297276750236288652692342501431571137890188965258023830538145166583704214126306810930191553049179674077667463152960923056446481179848650451699615031200064931506115637576878463726737441430182201603945830328465125431674824465691441251722496546507808220324477105140269818137474960989574547505949356000030296970978383385260733350008451639740040299315526249865209606401404185089098374217138964778615955664003829113198700552193871525896948723376003052688705533305221695538048668830187975763676274418048289843923084648885191097014009142999925996173930968982596309041027540765732384450474750031455852199662246255237431831226408040573127849494765391715926028779988432836862773873635826262587051340962025200086300008338429399732069491778313763810719517271132437548939039182926199485860680228112530909358353491544417238741429076531996582588764128815256556825794463765140421272567951660191027788599719834172280557384306294794593802016674914535876627067108364045732559049578181121084513441392732739205230363864147459162285728648056456246201527353379263834585124139716867787468671001369907558912314263842247287595866306532220376700488283910077539600159501868293564426149750540729779657962624701502091941816745387615982763152792805849231427074237688947668139094497805533320842549253578443094253528019381854228630812075855550784003963916187893634059696983024702209386367575921374333616458115715178343290862407034742508537466343900039943030437863133050249274938559915767905835041529165251841405198015364873130519801877866833040898118373345897160079619941920067223667244622708845694719126672988321809734529046656877532189097943866158960176281961911644299136895788665835239659665127747099116715074119580451132139778206618876657740859685165289511312253199176239989562288755954364388375693105568014185599502162847749837015874935213642175081105030303326270026600135419195730486116428310802378748213491012530002823024193956813909311288929590100096769254688539010933144288982068077091736623996958544004973858311918147072275472168205633263047169281648349222877277916209172215067274737415833612561385118356373034367236896981681678833870569569479002039033670296565149396661334616610217769348418256218395486241320914324356732954378978444440289921217252650548875720861969465973412027183028210821715014432359550744262750462482301207324123834689445676952494186189821106218262098931644939174590999951331303794542585095148084563437073902030273659930611107609723172608298845678367963359986412102879047834889659329545337941994602310251185224674598223917494625731065675100998851309381735230916403013984917229959636824484077123254853052178419000172133165295924747905609347209014216788382266768103402186319269836516878005495092887757697556835697271230459837941962594176279394398676390489553463546262558134694428998600762980053668345906523226287867394572931189312121839004210785046954384089376130404331939678757081973623255347502666491695483568355959828773643371078433036939516456770550510581679045004373391062400198991771895380696101907054275731404147293580440355895881585415279923716892524585378063273776418812256740770045510664725254762262941227109825721010917373349341640176067989064471868175318321539954621513601054839459441316299426284120407265167325000538126879053255478037545036643309674357215177745063734786991109933545677072312026074840018015350477515969940033109687734822795704709803691568751474807386638900455693574118471851126308702910029988335690032415224553951511149264203905144223089488233215627422393968632671922800185533919493119376311486202709915565327110245187230858017821489091761831278506705567952665123493317475005859237970726649935996973927033555047565207559975581881645088303016441431290147058368306558321440865595939188944954431485038370413067360088279521523033860248579878142842642638599027127869924555577179521649866342105021421458204467798849314833841646019317708346292072568959223652924167216225345746796677266499548074395839376661456513040967743276170716811307097241406085138933053080692989592554795319579021066392551987454505903235202085149931896580630775446429693020382147311160617578936118985870013819823759004903867529060402968050460554096959624742780288801389651983618430121905347708866860847330406974764915426587782933480229300883954248258056705593584187331709316720593584538988207801974937741455816208763624938100732414244651587022246401882721692327497700817215855826098750998349650462215725282520918193183800403101628073375221004195231159101387904863830961331031066080622709818317555520934673736778277605356535407917474627119392206153986632873720448867017868016736767066708997649032250484521961308521579000588698122621015653830752598666052033355794798156994095172787700222911751432559337663738303638606684713720525541076697020286995622136810896046654781463633476205092576956058354686802584874957960414643434387797684381797306179928579865018675269502088742897531045591141490958534295874436051727451282638755336277114133284024244131225027497283007952713130726755518949770993247641017399206176590699618806006036543791544791318589111909268606394650327802065189773293807277963448958452100173607519592230739438693347830322515312579553247221080256995711086690187329896470310438537031868116706029413188552483581538291391656341794165647292706245277401339596797684529231112947904960357852319060992195588171562787275260048842386183973846923868720655314648043530179414872128972950452643472258783477768738755951677001724424381498154941076862830319010991553355775509159250384400606079053023845775453693483857381957533175026023532131376956481444713468069214554994436312607416258823013924227764095158146828084717290656314895926188922991104164878819578985129031773892969551555756990898846850635727096642259284367892202108372628473066594387119307293603159044784655295620189310413349806414012037302584526685325347900961277176439970093573910711721365005173638783485311034918755132868371150515827608899293807749178734969251470197108601563229689921316201677296778505727005751792645063975634378982593802990070376442649445669372046198793348209477983137974489682067911161421221092620340442107106137618970641768966621097074103353028715983977476922883918775425167540642168423029406550589814812925238284039743676625599162240801677930170491572775560548687436061438015335839510309877357264998126424908079901946362268568134441732573231180174989413229124480098600565531140504981835297319570499475481811262979864315395765274596493758077447561044143154188828493317328682062339410592518108958084426307308416460505521656242937232242146214786473931424276429453940679698040187806792672444618297525485163686646171018865281507083333516728503532659007039352300185306185964170010846464366715907254327722718494260769553906423386216250602838324689377641066511863618028631627507530446988733648643216966006645987359309326111112682438165461493667432430304925895123807348210997945680037247250877228109036071483273596928178543690975376959585783068630145860780807945922461089035699186760787008016232409279657233858086765721760036917132669297176028625168864852046434431430219694409814907266459142195495885035878365552615848022017428516754067647800940851039532587674106346764870862981473189138358662408775362378475592634343842272508387925690920898169205035543981719201594252875936665689121562608619041968464514658885372501531524871904015108617323184357094641195023252461792865882555803154403598724714728901490564402868791541566624287557291327618199323643590117827865899931681921251284599934338321805508264832985139476105439354874387843115175038747463584403246690435714062271495613335646416904843630354450769566234288106078192507991737867928065519905040143092261268867482313494998513222831582677747748080026376583116666038295101863993574181077615387638763406722850078844390504176478452200954977920170587949117417518765778885807814549337734159489406125305513036483280290848065272386304916638627909282020330867805046114343559842266953938631837227210095565904692140745042164803379092392805615268375800286789271586850861841662796539505253318854044202782696753167903857383564193992396198043908743657773489613929001064886269682027378345163519254429501294926495485199102274444341402056959803634202360462104201123218197202673607399821244218751093019456183326126018847477867182760372141780393077211543651975067917767039523293368261161872037619861108541791777684335220765469211415875433178650642600782030571065470547982739549421710728332089232301117491517799853913620945484067228199839507258088007216485467294740207920067241315290012583529989627708597560245726110477074341679146784015194145243442882904627043802609960046350259755362369207111760342888942001720969269846691097737966722082414294436000568966558131526870712230222448820157595806098162617698429988272542837318689591305470919788410363734479752739421563221249800041518086311429397588591193117415975903751915068667888609790553102327178956009727794523129444606185120052788492312230395550209521062664571318458249849698162341708975325185716881318150252015874981617622081798184749465076080835909338945067907741095068451312811719248191842196026548966308760324591887245497512564298158228625289417204860472289349925895841484282911427757024887975739147836559012545383754121512166926145930331871470298747783014146907536805961354579442589767545955123876147065677429481723434687486298919786990305454688650620557108467721371173156324158389076488995862555456686030909461342143518781512577897696077783243610306325609343007106288193301052316855523667919473970519347101260239377600819350066874898390553876629551605684800347909033542421637317225739016266775257786364215107983479563406963709300935017494099601209770532804639481831092916330632929475655853931120605049871449239602530346096667465667637094512398363089997199761856946914486979246226191584801699598898525071313356318778038216854515080419360468994546535982735304028605873332819664821699940626503478891259903287141074203334336782890984882561400558800338869470705548006409001288261939639911999453957887487486072077296858769557980046943097103510679266253203782522262840901698458326250491159342407667941354465822436101986484091686803162925363154183968081740316698724289867827051678203189323083709497571933057279432227797716952599684726106265481845398760059869105930267136588424842324043457314073951677397218532625588256633930143090964077764044765392317473867010260882064251482641921013274422719041685578702118269943109609521661546853106095895542976575722535538542750709767872138209861723507972099909271403100049807543900852823367879540633871671248843671927388457146747717367202859702046324506323723365184464001309213362695244623624498919347311248283484609969592594432546038235369469528648085499533595070055672501478548210145009234771288901687145082145858276715155842126123507133503185699088362907307149462513014067940684473918405627082724473804763556211154153127484494839210369205546550100866788322264761610899178486014080846446318549868115714428742432514726463653079201143941493725581907552327392375826992668922752590318114369033025895802858707289026943886721549669705894873161359486852299716018284593193025655666031891674234810858014159248399786931673850224197078936468411999914863040925333280575704311344925872934328604421254787555111146198609624987861187977173635517243518195296002905251938781295151564800604627647060125261906220840958643469204307837930352491523471388319682313630859254580459914456526459914458330885520806827917443559908537454504754680938983923657663300631572454848433106045903017255360509361895725292915577685984723192428926867732532716284167162052551215469973689648669302877915688569903703153942798001249290830172096707035828268631535375245053983497147755428940045388074866758523154252707573755464857646268001594028465017955786671228233781548808063580997299468151248186928918914935611178402795629803459576395430477752698203674944510418694546478067769575842945169265143470432420135479026303012709620456120375724168132214753121283871722695068361380377071697202169014272550751177950972851902897929351768067517517072774206615874503254807122875763082600284940084601060640185724342573867837105060358795150970083174258724773745359624369857717058395759941938621973480930188115802236428357651247840813569700083734201254556759037815966582367928383812015047346276477454051209519911860649433652581976150779884078625049497783984360836486948892037444011359858220837688921769294959285735782035571195040478918797746493818013127745424187442546257741556386554718489310953635000029075642766373711027395582193041725745050105040023885386062211894026703253672307979773685543405121108521394504593670719251453861384417291400639418809643115592960092755974119841458110263185457840082874445564759835231380090098501030685970047218537120164318181852798281870538983105359314426567873449904664562585457155490623922641943154036852764823262077929989878062019049434076495750102924044484288406657336247517690417468757226805712401172900279708599134208691482258656772651680744044331337348043175922566438152464560038795645555544355811808104223144360946561777627339468024599620283562544359044724171580487218893783969821162601453180432846065841881683372400536888595279348751121233438687027302170524171665004489172230209249916352345911962789262926567483979360813409579130137664234333831143893107537035128469656602123423410461508144871073150429998934735102230984138532119009406913941355967084901875659942515853879710263802194810308238013750675262610398892301528643336019488342691721496156991542143626580667663806422974508359956792569652312389082365244030049773804237894900962213499677560540835512257074761608715236503244358294384284378065061616953009465387056765717933521370611494577028434583838027412288967706706209331879656793508109772823903035100973292858171942768419286598599850530282009723284400089504709671239607921094696573882850587805430263983116445091421400217900290181194105870485684226652248015668319088794240502829011751156197592087802572210368560869964708483627567800726299228790096533939463028273099449900181245975657067834350081294419938455048154666055687684331644621832119958221514140699217540312603263804748435839954170633226702684280286433873655267823296147894171182777652257800666826986829942022489981733560590915620304916386807532088544064377608596556787018884330092168680339172130334941415439333464662668960106850726702979437020590815603633286801485581612302136841451156067851394421608161845788330033264408975168594895677963909212217851467494896867235335710177886875380779542115361476122558885167723609805071365988252893135271599532385773612161782877349685308217473581026097764428920745762342168135624347177069139862479200031116728498249055408292409118424613077075860110157009296785960539107261419326693100137395649493726069128640215136285038356333546504434932821715122915304542074418467747552096810304565532912222236288453527821225304758990805941666294248153124248190552762953113313244569093854418846708851483402082449762653730334142677546987738011256627017619257422584059930709460955922711086740462810693332034623204094874825902707325366378357658629630985699133801343212134855401816570408975397719916548703672023526465173475181662288095540831789597651521361909114479445574710614172573701706640192606383443227544546618656949240768919626513783097056787071587465869815995052995849354003997640811791339764589603045674247170042564599337575594611252979851690789335696341579534009497228798076087709620268616264334492909376227314493720728649040600050578320331595582467173329985765148570763912669353107793663990129492856631230627109458189091673082738239309354929758596498262857643156946665216135902555096249579937726997501146562752347147257520865108192026446335039407612560133726081456095584969374673421223727215794061483424780516675975917679633733518007115377992203624722962027494780582359969015063895712210088322867716335047357108795587298469688626869023839755954239833456200894174118809104888046655579466131802125107774173548992690068901923914280257424086846702290708599112484883008989541311369532973371370849027542861223214532258964128472981638648356594077569870313907171711794328045047568925146000255012802556566241585557332873130927725267682294709677871995461853556883702987273207707764045849066660893058297898740377622804969805410239900196912544298313295823561850375444664428505826464354058705149138092304182578441159452676629353978109502436807512526062604885997808529232284933564650669190224319942389056296121434668766570527601359698075529572285732991398546086089246906473879249668034593291708188569500724213827895321015935486252949179640811293138885545569221908182715902728074938535788400841165951395213791996048152070123025536504448803224142849481784333876328970666082254693433699595569535411040235243330045581422275947222465611703205381046216288157794027499331020662377412179943203648246597794482704778879897410732264848104103189000186648288692055525045398948074030514991893991626454329664338446088308266696118681490062920382060349715354532335434763834704761166226162069874329752340118586866047810074168658686566106928956970846459191284268804079206944137698711041697008454822908235044453468298586976140392211366888731351427994678147307835320013497195855103055294292490033841740248581797203330816154405454944075597553124544067636053868402888707060339670536161863571190194110066330022732743306600869238014558086418964221595786760775362222868634600089391151079608846132843705572277402001863434335506051913415976000247202479858176669332506679740504144302461642837738938101260706396676051995721659080949333771108387347499942363454681811957985374728724057906576009206984926473393679938047661300093234174970961403256271409663721426987059194293769684569204340023706278579920730074364907834378520698146597259147443179192769430196437417374459152795200744765722125163192205917445974253362871871484878403076088087793021904901402738297051818380204252379807593507534069732316739589700705429580103970052356399588263099303707763707915241104195108372537043733933524242871834477185981694624151690867394607370279810544939781310136132461406156416441503293845591001285206279996137932723534245069852352864657266844033433748002436099677888057705304005135692505832347361643477431263530041505841044680051754552555009921703377215892948907837386058969178170121851331538414251611807334980999958467524866610907679294601939712431334382567816267322308326950197592244243548997339904745967695901365049763598304165974197675972935775698022460465054651678927132066161847677155904718245285857744692625530193768645228099859833989091453185765249979534420059387152605214922177703311878964024248914454420243950436642964733010670087339708467311350710175408014140271689933348965652389778980870956604556490184249307705738554941607320485176522816733469694948408260591791636353623995705691053597307270564725839745486864744447424188699068122486998809259038408267134335572065968364488675236146828125212894148698518883471487888932165768615641252385823963725857960597235816706182730225860697720634973600626337802675294976129435993344170077998977887717332532207579806692118472818976099087743144138391306159955411024397285672351309901026045092063740885832953416236122510710102891115151667106614793617770293885185560346216942384478525210632605500686143919085110973007891528954603532945999970157505803600363184184228493666443219858974483241262221018275155790819538529998017246148771884690017019993967342953214542776711386418329376258885097049778756458444232914941363168568538972505610905506642681310791910069029732259474764754009162510725228177642247124310812756973688293395482457379438234868510089377101642469847908660611816806546082722655407736699453609300042700575759083064557480909585763211801848260494003621160140722267278428176713648184198492393873924659059361763131032383260478210738611891705556687850542644615907966303911149648829606899587630647512684318838212335886332535848414461080521131856930047427380476778753283575922887321829912225491585632679636092810024431149117008436786434916994921335986690946807925776305636253482936225092907827231767644977721656837504091553180954333619126497023562550416280850869589588046680311335488182017739396210701050800664718344380946625129088419382525061512701820026982542359884635960321015803838553790524111375424030661255925060751879617293494713257188069610429396093284214525976146253408205788772913562426612229210077439776043836266567193756680221988504564391557698321634743350965808064914618652177597182723773324471796768363405125747109791146883940897787119310694710551758036590675710428295209085054130293396515905981976103669519092343447892550773002738859379526082711685373651264725500791290828889142712140454672438561147116011251901501288054899621595069916514503782323780694925087014288953211065958887963996255745506699250832619095448624646414034066213125908274020725935211594260615874544775039424844090679882739125670210502355540373326845072710517655458245508070285593733450115156227501831247892447173165611634816453796476588952205823367277559797330611192895877492499712056153811765488004596415305163101058679705795954934356492009004041776401672062355563067504297348359580221480108770136457948992568294745367659086568356679343525261365201167233941464392264911451625049539256147929742331608203537465311290068884373491321218628754421155926958846820025714774822823668149639541106848404851515519672758777664497231860184456589824848340782197060021951480792703695594316774629620173938778833182276953606488869308318465231782591880756435264040555881002340078083273427738385322878739323613311553656013351253116906601310484586150877661072352962672171464760219141601627817602688623698298341705563482893664839479756363025407181860920708311918547950892412163882670207305973081479568786780560972482259146689539209155338415178446637186568716609061095529164161288312651574499930129634703083612974318530606463838256694854997323438318468643976978860021384533270297421084804724223430887349395146861737426627520356879717621069750723227523066981713322344527760895016769171762591891516410070715888406300789472952296953966784819920532984699867072184756746193384801710883268117224550098809443771750040803703108608114328269201873006504080895030745047055991395385118114844815123020350731454056536360880159612806492174647895385532750986588897060972475255579027400918571283469985561413954006478343839670589349260170125868795581195231094101737971958262888948464982307453184044443254208368722823954428569515078428650686907366594637927018362362870890054132221796517963136557413022389338201606561554555341702800452046229363106085312008529199180060541008441463779799807174969038846912953133647996137885823117301528750823818150905767715047423937183445564647210723832730120990985401002606186489692732623201482701202646322396532805494802202480981979873806566726865061691587855674635382314888810941536540438376249696700084733719257565984982078080833853904661204430813291360875947936454340388828836960228075831174003569782917275906812994402892670694884474336513779440395622390385727239715313546160349759239365608122680060083315264842048593226686266510604025671618926184239842871019921100600339830549577753812025597931386447647711955327208592349853199307071249679924768612153794275810544325322671049211151270370703328827094507337945337191983352466764025179516715104238899147428936920057916641640695698216709410738080949117725764716114079705828948149520682341768254576988708460495775999704901719640386764193852351673205447455421098697590263452079794578449369710946692566326810736720109063287115591197082125337024886595795917192184035204476656541956930277519677721558051762733030225432766137928691731113381261764484499705206057332607117238883781877265415018715248276653846645255624356777473896424629207264512078269565900500608018252747025940277862087908655771596428659878170167685110384620108140423584020885368290714161192482676766203619891236792175452166411919227597576466774770055684677409888897199267842639127764478589600173942645273071584749834724441603704603238984568301303322397853955640452489691826563894959506874464596380151267624109924782517505182906172299453997986483887818726618744205865502312859330976973436955998758609409442492615768160162500042075777374736795009352961963473314010138772992295360801472898499860181766721447626259420511111542826512621138325818823764469461949409390882890345661704514123969053765531379792252265048990264182142409759742639939644332188244438158349989372398425815984764849978054780982587949122640350154479230877732782835566181415791024130005652497858005075671526473483267621990225032329458725471219521143395368028864957800851321198191141221597501827124221544418694025744182648242573898113196626771251807533253541261038279462644915717687299659959914325755851808147524296445907231798095397216229520872351206752053934922514418904045727596283168366408569727821073273433902857099367660069555441033552840317350147362837665891691471659625872033515250241382383785952864992308625963242639532088157218842309641446921553971773366603162906736647070954544254374569208919415754780067329481660195842461160778232536093339378030393701746309176664099037128577436952540146404369252116459939839915327516336628382265216193676581706289346480667895878781031684431514729558865207291519632695753342004567327151885883535894881411140889589025347311124452921607033699468579172944952809670306269570709660058616972142177048740425873620749230442775893697184623384344104115157815044166881247646282471396898362643275067568568961963154954676810252909412998117613573073461457756146460647001999699231071227816482801160212723583849845371415939170808204732630935775716148624903407731596229484251610712637878005834279121177570261242639020714433218042045982742805547955186965918957990647864414064986230180945218495690199934482540161326220104552996148714607321782524270033629550421508543507255013031669478620584259319679630458055278790790322504119804774390747822008215720040405626987602446970657649092379202879396847414221978032706748711268316397304049371733015117331139719403426342412023925400783667344983458757756168365095850570607387545778905976346027585192349462326956028633245323086158537631310014117515732405001987079691301025848674173761638390895130552847848129373447394396159037055256692412669355574457441355914710825915758838637934371117481982887194217902757645796899758190606524476224049056130132421604643218403125186715548878727947216147035757511322048462337667463858863509396850066566466641058263175927651327383566303241479809871473743633060297403749115356577465742784568092349865132904298672903408951756802762616284685652887963622862992807034787891458902193629203998012392747603681105080832428215297887029677155755157491278106607233583623038267091794013974036510721716587327336066413750626913314792756275777387788218390671376887858575239936314582082458871009819928498674219762093562886027560270205262724144101794362628010699992452681574877686639919908510557029698788152566060291514912542226185788949411932153759016798755946272634757184512401952376952047086934795292753519191631534403822741629169251177423200292592813885591293229435031539357641760760563825312508548030044835102357048707572130199349021841180329262471585118245479320326603262735447636144163108009495654841405160466649452536720311074488895821089298926147753801081469090536039299861932746676159135976761783408510531420856150987900508491686137229440657125999588572686828925263848862562278623377469710100909263143095174406778968332647911536477425432964203912848470210797235205321048497719875412563349255384370005435155988117481441032405053707514778030247161873805476723739825872999613933257226452940204813320159611637276232756270442448609728635229762865534399925785281900404302214075869479231023184524319219241981250364587870702236771630629807660721186271986974006229741555574127492334701918137883605203838964143340923683447183356465794779515362002888783452614905419818118296771073263128309598799718044525381873717109235571110929007525376858005926216425325124238918200329094994827343432361662523076039208269424755256867319382099814336939588597612710175563882184296866987777109446943890783674367431570507059019345413710136061313264270573980682535088988652790754487040876164507901766590609948324629278665789007154154687306793252045026379919982497240180129450859144127825595002360886903676487024539423978381903732687951158515895859891840303694713118801687136169509062823480507886090227527078612575471783359902089475403357424995840156677655105356796482891695563328941472473278437234589922209691769128383634442596317011408921902933345806670482889728451285697053036678260191431638887657637519519315568833581651736940564207840429646850960667662377735683266553698550167718881631002017012274671341669561195983264667640159153009367450936961539937905534873972741412414350081146024212657115113957740653498474699063356899065666029495107737629595183162507771989942223895248311298497555340182212886520035866932978156253141323988527809518107993214752389908951150815584355307456933537026179161194069177949160724806386901716341278371439907657912166172253948925830501238124205329105977790961615722347057865358385594789944858280221338310200450049924294112652162554872659326897896831663904453502927924372668288005070686051308824531069487155452364265936418938826093697188971970442654848059466034447700464531508781581431554378329529733370931398563421867298446646233769908491538357439657115859834362514850599161099481348437446981776461002389265506280917555265443425055739410766549127736002509272156943015030819893270903828029894612444840359953897013661789286075059538710825622125384573848918846532089219586610421583578633179411443818769426035270788468368560830684345094187641767118369328810966802873386167248862312164469529336548730312679011168592423313395694607949776548503030659333937503391458129428421235576387532394955331840499132070047799759214069048266025037938189437385712401649962749902307313859136201716777878394021699374638891221735880639379769947716193625354353779037944729883354691990401235088068709974866964300527243486615316937629308957010341909095600275044671508410164643232837731103722494323342766231870357104972800153190720207773151075415971044185661667965842590199304685918250085564082968020188096057241867995771344732622158185484104953362840873184718160424096726849317460847774706627529204434518469327748714194984039259186904883961322074997086557744406121883294118215224434463473104480477430993282622021880626823903507467825148712743327664319451385279427496085974090264336748026529971064309992272404353686382684745571776758991100506494679634262149294335756773640188897997355376866695398649206330941898157623614676931131202895777823039136984227562866040623408057469270265851198786498370849084288414221904249812623153393815394290730063956587069920874615091634746890163271551211011727315030974871927138339417472201381832484591316906949323671160003948695419205352567907793710545684913603593718139949046129004027580869756367830961890407162699745047337346224956715615163593967797227020641869211498383772772480953359456727900065343170931182910463108823218774115948694758558289342061289800757346589418531542017636997101979920834953801329965529215702054691082156798527645996735637005791106774492138331965515481813075553231991530071370385698946281298963400822271030384707563393116847851356966875099783140727068940100313641568124513494771130810672693095746324627172396898915667046238862850410014939256294727791134700599513557150566179909952321391330282195857041956931521682872665401730500721761325645719767098544674119245653253134137648774279862460544826123502669817949013881454990653365982875263821211488285171204299139156804617774304853261376364480339945442261618872276712038571785597098431363134833568379149850700310802121992235597973959884865728745862680885575333297079551547177794549203574308721480275126609331134741470626143969615945928084828620051551296970402893493080880488618222816606368889147812560007678244760922326329006973903997514382584331396510819063218769391777003550305994927379640938043736768514381855798816186049469799924114259423766902879495441304998492026203603141574145724366309438107587177721789249981795184180424610082584987861806528590725495305791886402833098113770645269316409987662971280179040111528433545972810278367027231822174890458757716826247292132938665203941716953357810749137498550308348341279995867266396783093692377805950159501841993402048755941703964069167036937220952903594474503498181016978948294555596857796392673980299966410032183257655367744125588866420488699052935090682684121075414409511081473522342289677409702895022299210654140400153439074640672026503097385680594674973189499483268285331531077464906380623929787453358556311252880296634688155013807360386378216713146809358112436894497910906003513074359969051237799262263859705911713131705012050167245638575644012400282832084080480383058704356559169405529829961371028502143363613634071340948987729711348712808586628102281321826622980686125228739236641106434989717839624119544449553635097080693269626020078751880334776012844954508203940179485570194805030853293635892822332635556799036418159636796428171900737697877243879472395628698683063486452599203991137625609384526118327152176273401807569527962212305666039776792233333660540421017261419967440328009090790086195715679896357806920014617097156079860275483568131237417086875320696430146194269554224590152966086632545086468101179982765050763897957372386107843801497799431632132157529376019351998589610427308747965152380220569611254728365216804527400102165422695558306107623411578608431226207524454263709260127493491141085356608775012107315193771751369508072854554144265744086647774637188111288757663592341635370048682520256621658783539925227650883470597884434969250893925161976152813842226259869547127738949109644344064379251911931237261185518647604555267966360090152074084598732915769640573875100903789529012595181513613513418631767297389051376363003933961978128022839958009519199775775573837686859628876225305839678400164731706037105545800593120636005963258005844921097097145849525444653331195412873518083186148653290378064355808820210468263900456573936310284247418606263633190027257089490847428287351750226286560001098402110464526346649701372273793547132950125925812326759355354763473539742905641358711892249731915545501134943473213077695684874716855587575461277161644174163416235223669137426684167151936749671818959677634742397656173283940270710877641251679913386665129367317326268426547161719455285780753762471339574708152745125356262708436393940378885828754858444264167903883615965799818314983862821409804054898163556290175952573725716798544309959608890943459248138750126506387415599046264632893070066553832644719888190439050058647551074855791900440382496504633879012591124536490567028654144036581524305080108213469659647510504180209753688736650223923088636038604770909969169857694970231067530003066474113727596519997037023464687207324907693019267601248866713122548821263557258152430765557339264846054732910112673143256705136383910581690809491435733658508741049739865156712877791545289545722813449448215340587850796759636557439632072632664555874180616281527814947363449737089990886241723045803213155337051865017997620101557372762544377155413823429905911422789058425446497735063344659801594979304507314280134095533675855768034961218338530478544934191638169780303595740014340836018045927512844513986648145454100673188365733099810375224543203253988599479578138426344996617386050287848616665851197826219532308164977412870106025915646664020265558628176952024825976241835614023651807061454736506889341428701859908654214022160962734250782429948907941651922548235864119799614296129487402640245462368375525956724236694561269033539945459986954617734939217202747665123616145242347675411870028271556768659369242458387711501937411134731666780607251789818435265651952263694539198107716187211702617643698610461770978673179725507152066918928242934513345336303983846682732099650465923068029673321245571075998125702364116127023224100953092876759331618423266524475603399094686819921544041139473527544618531129046915621479380738122931098903754447197715727692859123898179284557845929730634394068370703287235692477045235445514171874833627894069833201440422697773363191081346513427915571487858889256202850080764975021060587970524904355415907971253444653997727108974617528153458291043442901536157949671215356606738488341953541145341477671527787089064199683384395864703528041349430242872829826039910739269030483504419074113655387074391736316282424533273566774665748862019151600357572452992504111513648113066511683657950757695997222856338261118471211337711928592689519793312740093265009930455949177747310055010592541642511202360205667420514616572644015244542750646910074018810350207416759515418369159072480514754694421969860120394462040573486718072150303563256051948115257568830709697035475641028775782646658870800622202851195195344679870203690843285122015908505769325653850430998642083673512339827648939854361174523068539136074264583747523322877077189316384071228506712933644409548627422849150055267546345549853282214117539052442789094717447302962603423830009655262939195508688712657195877567791513713407552495543120335761071410738809012916615876163173627234429851169362186279696645763166358213979658529111297953102970285308931151776393216958740256769510312702463403859230016697499217848410062401133801745181903156895098336236532613442608961020746278790202881771604765596177082739927789407503099731827361425908571103601437958924025167165160414929507779645846398606012409685134052478835177944633317820275170601506768278701944696339009517123990184495425119658007534589173202979706611768681310398215413649552146138314796406675583343869856283047719766843949598046852596665028920264419224636297694112075092893564803088024579964861240684974731680542450819674712512187484627759418710717872920972153613010562824948154294531173463931522571119716281027173775677810100863978753074846976238419507766782082005412154030477691484971521253647351548064284661166885323559158395350788398635883708672776785787338361804299973463988679037088986767922257369551703578673837525083880758716013250125964133511997697969471053665484507058505461205714620180599812390901847361674927468755263436949625172902561809250673725553441593884563315135487482260131931909518922289497137795462348311961756612800580661824128007583654420236261322988868546979175713097790653032523126401966016443229485471328842768162940456856817780294190912983684687667969158806581382774896589984265945616190972180141366167294051781791852306269095065615218093424473741979652964141541185008792044076974035292463720014075313721281932797852150794724056561544278875399110955149923993052947302247394613821021378147557899258844167941677464766832983817006884221954861972352932305331559252942287112503845374137489045506604165819507329431461676641120340459299198179929214872889930212493106883973794884743140898322940121491224903308684473870921041039863163417689578490322834927849475923242983358730878034126177806179875907332965150543691389195794557114280745330059173532903622150012697686511364799803212732038196468224472262314459659674846703423116617547730295931812340331802213103935146773820396098275701168542153656865104658301666156563492814998015130267335950630947781338517837089233936140552663724132438657527813875543701604045347328877494747811190549466438486526723821104380542257385041906812226325106443032675559384000742503165196558454384791680242890682361654550905566079244291861423507661979239692542888334581770558345555226733606427245074889226027744975775864393063789828683142247756716055916486940788187937134235657901539219044425391573795240056447393649869357602495617157076420438546397050634088528339147945015189340431893283747341432615490168442385592934428828667912619401414877927444857418816490177342371150314367940636660534416170645229731436664182359781667660989392850900073856061926402031802569783298917126865831979685240145046231371138739593162429811024585432062918343449431371654262356280242738812533575283601608772348354720508163152472809072629551030192457794844552585867080981835259592742202538308633477250792140150817251771753344557497262213961915849811350101688464734830960445104599807742199255847251966571098958779807895982853885979778356882225100447509980822851032920078067199400112036141036752265643186784066645114068070972454088875520190734699337905125201848409078989208527224500292469017912642705475377185619336829782917027379032190713375248641602223551676894718585610230291566858293965718334412046615384134874569081545445947471702495483919960184534663901341124139359367781207707359518410679882297660390699181352856410130222462927582806485904576061842527073321519585411581100544526075930982979258158591232578605040815764089251571454658506243174800528388692722107840840946385634569149443997881845060127738114122367077593012676423473058058158893180248578514741138060484751355562309585290738953395655993902978153766052171933015936182916279269606678403534583809063810770483742180066514889890828366067388590935990860932722067650705911897077477759073832782276883577575240513841725676523115039654957445674203546395519796986761525234235362221688963174124485789314760164356674132072654911781952632151974251764033389849184480189530793514718671414201869258276998566800568801846729771148864942940626345968352063206671578965491725951526782165239256646290002825466504719310299693521944828653119848703488121261010082091920111846555574240533557254876177196868205025050109811705990063264893929868828736939116042139015317494188012938664916377463734283706375498198107472869169636050989477618594743719022165013608317758996479735218733068274013111754303421108315296948014558767002893601978565082601400482648132890272244395652037933247005609055051828651267353697273154195039159042813600042319784475683838590395380909871739068874665115258807487975031226017699926885307329422904935373963560198980477902100890102527561540819622031311166797134446669885067845408481089037477574604033920215510136423109065447645989127243659797638321174384721916080824554599728608818290662916866936332331011532483453389034087843338848902977897340663837993830099240740211662378179073318172741933469869204925516020594375490394702861729395752586935641967753306134175103084342363826378314013702135956058721080435988233807669117028301708244792302954210185625696756934303270130017625356727742686964541323668125250741296062745460991626200613297343177815098737218808551483660852304386454546693824970411689650388154595456082431182207356339575427726896464381793030450537803987346359255849586381610191545071386286769346990656357414284296990544242350671553554376956691024605187180103988265659962594489019349191614346175604921260363013461505727478426511791322278561834618617025145849237651793741124994856217543328111016800620180281156359820085108324503154698131263901481021156873016681336656493693842644655752069571952108346175003698820819286861581176429073437865612608188650465457857719024632537896563019298204182940291454182508124290969252349054941929885697528466974346616328463165028336776944492025151165611199994999002502567807504533594979589996844108302729229602535700272665060135100820264684739299868469845178897709478394427028504099154669438286079459206356824251298642449562445788026709040546249836033490673529058699870411086748114373484432899561697662587853795605933466863975784661742470306441516553963571334290041245434785664643445250541229474079917018647484537207963737181242055756048982693592271619866481976086012189269700455156288261715531457378404916162606096477524384724394767711721083711245206217639959017897685110958661640783001331817106296199296884729971453922896422848490207115918759560178440813072649489913901918302115995196859566964401907080045167802479074278580807265649709830211243386403592864649230846047499334936313324711198961161271364571711894520382017131321653294842599897788070237775178765859529386404277406856620457032831056268035338259778191081466610777758806372818221546964544206916627700316982670531491535886568256971291011732997177381182006985936551354279575347727868381332128531876466660208458303003313925117361779633970829326281824869748019294965186904875860499635185386474115661298829435545490274576589893874121542136577541246209219682086001166223255206929196590896650253090946591748592304118603293438142997779417152385894671804697591100433772151320191375856923739482523170139075482351218492040131978782543486968341589056671392627823972915183837261525134421339291042007029439423547150911734408356200925531056187885035088863103246061022427182422116696187753393093800331511584862402193088992735630048925883497076475321230724988530592481998419219095020276281205982160539439165917629601029877905788746294757206041147768905923329722300454679785918980643356746682429393257532347159795154129297125944138800587652132920485332679113264981013571308486361499650725749901453050543020018599871718485547664342570160878951482302167026320823264111946779832567608913153770799108081772180534519701131459541089038873293174422281754531312306068208982498107346485442544708819641140268039761591684254944213314042891958957811694204227086157083700880556796140448286981189928249708772356247103791135999300430701632973465642225605306798632983745052092711537264575748431770029281798593288914979156193971569048509901831332631186369283083819417582934758007175906357843846883229366814256354604570379607843685554368456549339444159865392413738910787002519553538284582608352316440650246811178109686497278308594457844430466699849649880530283966371461239377158895991103242882664657636433882339060729047959487597608640710027746344876154579569321562726932080925889508730037387500318635853724511763036515385713257812483082373109691851550116653053143156635996283508787984985504147749286624891380555973420900861181710808014892879444260721025525484005902153862855988184358236442099733386108233091268183427340276626544144844571213520994068514581466665795522985417384658804632036177040114791715601082585840114810094277898347917673126087325433800289109198227679285385493158341537884946820436888614554413943806143064220242709427121161406424753535877571094018414166604299831610436840964171701510089172269543671856202028746819196415630545513388013743617042617516457857309527263509366395793056092433882471101156806936898784070724422930136763325302659905365741137501728903616762518508400301958080240976121631157973885563223112308529852197297784755398728989975093765081298673179784802547267242178668139867295433637617327804793213923751672102705606076918802133801588084755977528796417658767599220000488427417967887076947813272038965305716074330334138221253760110755651627515908403956472807430526633263623090681484948032790704747679678167015754960387411459036401200170894793757016526745440314723463930161508165063099229550576446110509464312302987971263813366725663704771281226658012756710926025245738123111893562046730211636351140833880775484167653783472655127894528992266899931502252736959476064454540173253697158847103454806096443416304904050679908955867258476854063616974927958054524026288206959106563177834280595774432264279343305651938782340567870378492671123550148523844328392336447440603906417739025599137980983734069066712911993181650874721355413753702981397659647686454378532048369147533418450609880031166890124681778643505191505599566776895082172628571532853546878423873974995438244755501536182613176095847947759068016568103994929987060905029911770630861369655427963420857600630967164779006263629118001815597342892430748051221745361613650305055776246828835851623285518996147106214471710385746366439604557967901466206793553690423724176981462929767411955749717098786398616584312308006051399041438420811560547710636585461931825367747312848991195010739149477434602431062153031056188518991961332338571887949258808732195358064026627822826872799709791195875463266703808705537701979178404252427648581722944839856205401966421221052660271727107468519931683532111869654247958261330524287612730328800893595608816994358131922038450694361999637022517271569422255374143893531739413298457532243342651512713344984740786723905695529102133799003054757633568851081065735218904080732193685212148651859257832612187284786475256927233887785394322888965636932927516677187889499180644344053925317568929385814531030937208874984019788902513710857510400911173754056054089553253974676046910463246095512978981977610709246601416177606250498606192595372481421574876183076662437598565248699365847501777350867770734547313625881320391410035137204735573766989449738988544786364130547370353353035145701830464921820925904869837082329944695497156821827746455147944767395319462231668058518786516293174100911437981592332681866697802699852092884540546690020252690260654930681382655379269501169084838978803165564926177409113825000772304964131285522991638356054756610118684255393031381554815495994166997178104240883062075911541751646821626773310759868160334010479191359054813161656442683246018553193318986511568714215210053526377373235422893359041617534292299960861385691384989073729275360867928010052538139990548317822719943162794697045103806228730058461066954176283586289977662741997763091528015651476996003274971461542976693848055703661941671014581837694166305705985307452997817638361591810105649203627374453082239744865723483601109527847434282983378824445733544042043774184246806161162187570539069467681374128556904133435467571095097625970952210624934484838013658524054147845717100423383963274028076371432355711085436776881284591946245089833662716083976369727080818607569285338937675057482407245830814385446294643258860500275160885671005741132632340292163010235072487202726639431935171457414997405960578923852471555388808407867170203931450352638631954514142248003919454960493232031015262007876830413606062948741944654134630064207125119719486383032393766936209927116678693356051403616971589454037669565236019169167559999822020366979933619282900153972641903360199555434125620899410431770130844866972774849107124062960849340576715805415455750023129773861662488754157361171361950432551207866443251388538397647516710586882405571984437215723089846452171299912340429936134396121673577068234975348659223189876345825407632610019897990191455164978239476759186487375968728511386139847421155609957360612597964463768551397984153308646973465901740730989689392414178363451477740436671462754630133550821021632576828489882331535961145301253291049067648300619056729198246331832092497825633641913624911691547686137327648259290755177741271521350266992253662243444367766647562335066226848817177700313880738791974858663723234075656935601783827634624068558255084535953576418650107216940947516967041968459564662571025213617321612184370328649070233229899892160222203789181029260260552329136569532428879726118832164247796393663386663100491212219556935771604936140078171391313330626569300512089902248181614501983873838100809270269311382169749857067288901540622030661117810514766374444680903416958002728057584263422983334795531430660456098789521165128884821633006660723752917439384373173535401122635346542269274954188621933198298581884538108634344250673571120291158171973384990454998559885167605134573673113303025279036785863615449709867659352359343625950476338803100324533950172464340962630989994436708257836142249331280819779011061336218766663977003396106465475829050520482164194725001101156991575869751406574011777318115799765579798863404366817406827121817810222794316128956584798258104959715948703200278655363654717640650377976657597219670404202872449843850302229407494544733373339067212045655547084540996572901817580376628758886363038367084818240958231274221067917286313565572114475871393091848759331019500723791038700456299694343208468143216532622740577854667638090712224117092761955318562881567751939266614221094838739402593700263417538370779644830183667567516551800779285194455321362022508269061663782944649029969599800105550336332707997648382028474465432477006461972580767055955636075024177397895591548860447292873473395406325652094056574151387695561691435397925704053831555105755248629792651044693643745463718271097372744133348678132508253968565211406742392796174868231282283749008544188478202590957512527025510136638939263276269343847948096478816523915397420081109633824941843000343460150948610955068114404202894561882140658915161218566101308195936453679546695677847426426402078804755025996652866292696350014485359422548811363845315718767751761027894894725121339214460360847250837375287211126932508741626623863921573601421161604720230159582943775231181009825281065376630961616332799641733155733928536535732445246523308038776381698542615049662467943534122639544984560795270961548543849457928511060605660077299825143862068444120576139814429051855792712987952326271794684049069973872734597736263156000312090717377675815793654622763032718267906660445404205327992870844776516930461060932323502112427956008770311687828655663291464427409474881820586302690154169749240267239004496108307924694288692263797914209618677048876312895632307937346972722355559674697017162631629054708944900948101121652479229554374477495108994565531136519417152390947697736525050760686740663388577123134626262471933926536126728092149061241966252564050707148776455000998359199597854670827801479162135086654645017438903547711087681600560072635357857464177175479319220248084507024511463370610205589490571050685932816669435038052983863579629746587571113601222327277229585791111060537328360322993104441616655922766604591955293927377662106553722776963550397424730442157698849878721013463583953952113945170123970954889239226189792446899101425095385381713169492911219490079647949624105447263302695715022770515676569782973741245502258997530631228721115827528295532599488625134815903797869671520404769152214950932001945165375497016718933252744217359796141057761150624010007941966088605105839402670014726604021679495426914234612050961610427757841618404616762539638354207873247330368374048594859557812449919760333218199028158967902209531637654007536649011048981997801919981675854482828062237024634774369792129254105090907184809950260693678194102304199350360752775786048301214623116005787048724095410834630543285611949799197576078427673921569948346512569103321535311838849510187796857709538759674127741853164907800694834139196102848149405722901619284974533093670788022519867939314263204362875667555756202945990222695026736962552222646216257588371809187018651782872279944569177235152354357280734880287809479776731257485268702725526344268923139887446423193440684548175417238521819670358586570473059335962439335876850729223038574474810934103363039977563610615506880817095551882451383534920007422997784689578794593027308434418622670241009943690347356727867521231124668813650255749657465501492154338471141312696108571971528982200132119190550498769109798931855468637742127321021510549128093318934024728858494396447018349905793271660098171210699590035029546986583405770183666711064378659278891613794180037558959352607782634411766382440810899202661136635956370100141764779349425272819115455438092032371936889314447154735039460063599284142920896793933792610416480026236760600695409046971772552424087454363822256107994190881656653134818488003007389790998533031701885901976443706101966895035878079198050574385881739559096854206164229361008998954015721207200449711496686974839830451989077778769469993788721865505972646468887544292467426864661747075328044618386097772774518404277154285611540249786303291153071857939343610639277745523607920712322128104159345106916049416357443706919485893352044626797134248328401626978883199646957650780075851385894616071520695088634749401214113716855979374398718985279621994923112423930410497015455236392812413812015653371998368166935394211964665105973291522806471759362013932705286043480401821640459334329150332854934037914523248559762574655884428845374349845948426503639100221714595429203997862457566078300279594340792026543075295773445464761724176119593609671251733741289393750420943489105690378163250810065474447712067436032174734372839449377691244362941040552366093574579950634293035364624718124157699807336294395174786882933800209533811199575644096131703043286404168665739560644224254359277013716659436903241159036231682017483959857954911457266352435488601970669384760118844311633231643365570831539809169908601970461506908058302796363360566342863807534770280280691738546452038440697330741465181352401913028809730628246581107375114683244464923694364297187071052580228726726234351972911479690340999422330687785375406633609814833474046865007924938785005664332910940734084286068877114982033970480144936294558624194910542846244612038848927053922477814287457205250181643726331862220252631409233710227166185465406450307963045940932787002146578443252499590517326607696871901517804434028315602187905514402668000208659204801352969337679326492370900109681969126363116102474386957397725649096321015723749703578690134422464814165473661930904468181785203972325602038454608087149461993817382166396769510151056885631565841571907340746301561594343245432752177728255461716999857180209593164635733854802411521576805994225639307044234098000073654616129120578512093224186074814346715844884547115765300726024355563764495906317576858982590271529886523756393580926914623976032142610635540206247060927705428436023488850755542613849862632928558965138784177279535348606614535439248712456771766570659136587062655794890977972034081649448979768023978147693894474361487022790790959610987547277912638382185582165631763001863053287682450705268510806661349868983587704851041059697927287890833051672759996677025985412085727510530725059390354343207942726528442462498810576358576806663215910022104650823031507283791093520179349119930303495427373777997644936485718470518976611196475691195472147689896728311922149297690012963203772554367759341624173140574777313212580293106706904849542518204509086009000169370157059660801622782450379043356453712695691159177081313423408744380259387914058052494706685596711315333037158254812244357412316904814320420540666583680731593296248803208475165327164171160468388070311277741135124095617726528521222463119683770362317543133578092195687789947725415719992999962766933267971844360289129885310648624044078542986721743777835336574186535270986231763726569697814665295747357126532135454340060457866328954059504610905700992680237599832511690403640146124363238792504814400649264711736659059970687367302953012210725827316535466157458513104150810830745623700199991538468831256786063542179364112351627278849759254595607872730456124325627353003647981222843454137374364933329064062040992591441689387871272498284455024223395264318936972900836171998734591831551860402539755018474825512115709674828757709100802744797048729956314144683692669135674715545714939688262140238658490613124423403611452205250270966285494928099458566359842137796770247096399475629747677786497236504191806221943144946501239071972482612222295552459080601272642044162676357738290108305626339552846667003986210125220295257191446805103417321013178440948490393825976627332281040820011636805230726143043337877399962187448041762863744295489601796492963028331346776286467533241544508762344025191689987188828852035513215252236946623348172467964742380829069747251008832047885821292694988903974058479975149028557718156276781509565185933228868549244985539642776422350491318638110756981983967606494927724234166147412695700450894882901857245103022248143995535080498120520856195308192062304634564884144753826637534082598045102484557066692098201387305165505288414639902990535506693866128258831259636792128608442019184702217252429541779965065098565479521186720975671308289482667675223065034759386168765207548620891508560173762351010571155732080569480751836774580024977944806523463650179669295442383815367171516365166668577403427676211134152679756211570565282818270168882444922703515780554868800116904340042228044172067018137441558469256267728745282490912539152211431689241006562285010569108702995560379614039319983472734112551019918757224594371347000275510134199124253583490994129076027252453997576560185912929833509876218874898296435127479170759456584438785615157153375879890519434293211561299130728403816745752845989195444469630024339977439118304482973051906108715403544910034677616026969376918015896546581733981712194745100538171082192044564849493322213753280254251579766813159228377030812461782523641143203048973496539207361856116409387043527826586739789842019371831226640300660573877648974927987454003787751637342822113465710442794863444163616682305215117753890250148175667385666542900616962845622066462618462739736025104128229506431053668163512892109729351771905502739671338804291904863853816119324101058164494066236862560565344876516675922460080799526089061689952084961185141523660372934212724777450964054755018330840674120463710950552629121056027864758703676974018858920595724440732808008222505936703600078499615084892803357603765558158623344530372792694067807304830884826680481256441115330431887768303632609956415416278094081572343852907724791548901675178498514833814620050084485097331821288565602722947242184204920014338152488937496435423307803906439080531764907003014230579670282134615108000433170483876322488299118598107518277200898668904793418595956977534859348290826923263166008445096035293035276762377558329012876740779976504087749317589174768067017227186965675553150249365080701900124062673486343873887665511699728235766454097295911605944515599381371537911279527767405897045149596450399894096831466395030979030403796374021782132709561932463323678191428742014304061971081243032861925275191722147856628758253834829916380600615406720341853290188112049514582803710401286121380554963270663026844274898648610980458945893891288120338389593852770357513196266399437918936506379335310611818829070943819330519687832273085789124645315591659509109851026547378393645308623620738773505144300320110653076446984739889183023710293944074999065533982480551516702878240663767108466317946465792654945345772999087744380728325599125898178074676732896731537949620022921232033425267705758753860745091141084575809631868956648052869140924065862410851344217544499708872523730120504296294868016819232339902552753628950865554348952984471976231724529677525821685973090249627527723926094678964993777044428863279518393161516917611670011937840350710296105523321695123011153109140925891795587689497048706748565749558947029334890871573536070916442517679542933241208767121892557527985231867315094309564248913908321312354948627700091896306154972358783072783825450301417904704267226853932384704806435159748006282826234275000250294308720935467304545416053620583076958727849480230758634647346163082533833260586341556324024475779918767325544831051497162760835776431995618421041661833534762190182974646019261226862650683018323969109733877576255597175340881168589222976309564493468754675706264064482624705181276440135733726683747015596156779807107474366142419596015390911485667941682383170158717595232246808140788937697345247104461350220150690674943576134792593518716902702656241356419270825249077167130322929655769563032187313161965770108694215020488041299108739637347848944556095100784873720343094763971604622149423009781794339174226142293243577222433987347802239886777875463400608324505139077343691595237742616507233049631509117196637833138149612737880543994093224368284306581230546534086481130730193165600325236486898974792405718496861753738589398876297411350733701879720615724131692681858860929047296880905687290951266820644511816357962439038486116661955187119959624077565451720226416673537944340353175051020463366155208429025442818410772675066557848582458874947453516599445795944085138486461765177489172024044425546155262613919006834459684280060613388772337107775776663881830968651862125754940954626705092330166443596902831493551733827229102796598173721679595129183737499624361718168417560517253771922393061752677157383228965465582961395741112925418244728034409393269736520306659811687961495140613226972676819722801642996057813204834415766075077700581945948584856112605127145727386422686232108495918167382523472614229396818355577165615070859787423701536105739992003916159122373438499409992050003966326623072551418643664318439215463805664786751036082646279073914357679519565174708295819040684290483150311927117318897254400389548369418971058125025147446125317038129499560122793949785080135744619127484493658489373513991426151457451274445823904150932883246503754587561984582070052145086663762305427708035511380221277567293590020921594555289882337480000528111683071436694823697069683931736456714582745884390133645312859947179916995311218462276422430397014434264780193476732560806781053974043066079504603920879329074390032850820164846418364338378673100383882488876660441503418408966321303128975534660551615268962163979009801749521416417451670382356482650174698863793184216320131103994365069201432690537647031300112129111413433771351068832883917890059307452311442131915015339392124281489688411836705021876617082026248707085010289123270142781514375821503648767625285465175927488608870459598106447911503876160570574122913269180354265132238227365192861636811663331890201020168455623752510837554091552420057311132900561818483133157924544849809820689233304565336744072831718994688656678407724136822971232072610315249544419243313185048498351093022382376800057253676328985496776223019526696574704918224962387970554955816577600057215475597937827580905524746065617586849383460375218030172323176829555960527686490019969549962781938313566418856782067534577006889481598566093877765115551115638295868739491601584631633816627315887812092287868495025466482308023341878236701219995380739657067661172177805605450092192900213595968350237255885623660405379325093919165393219388085371530024150074355660411135017328688759424117172025130433664675335139068268378267080675454845459052196908782110927542555235505094036057987055806622258754412813212598908136516889076980435898096376466934351896337625745543601287648580722052428170083663107328941779725361508526260688128245922059210434939592297372182582348555230386622416745331895670596886784572526854543255920115058796446320368862901710460646790667368159597424444124950567232887925376945238379637723203991543998282919474175219937961932385999231772251860585581104596384605238722573491762026469234827591311653778765765968780633542715391584260638084654648337755937332168946056320828783675880356180863914099009144040103365241549850124872795869940420154805784478238957123690311071910731318654545973758101599248795519458859894359193261965380885804559358077751113382387252908590168847604904852148010868388569542149515854313729182649557031024811133034798761217293404139896558053808887647061317827040421677913271326618797869755076923326140396742761118895790234741434299250929150237256844565053425379012757530994121027282020678968277858179359685981558186467848931355507677681753753869458076225024440972895515712938133028977289247047719702384663011276518371982428467642911272535383022435884027448808555429704964446458420833876888925230672927060897421983907602341674436118247131623749895059594464851974154796536774055511139934039447300517853172468208030495224104202548932877409850366709621517128286863124051330194883792940781531037400782603644878386358681702548173449221578998433788278901412538691516677697256986132362853177522988240833995389793292348514748863051997325621514276385691216494609871390658596388176595958895803040531601994057177590774635842077309203659141893532933039637922720272636327180553584974117201771427586655906565594021117628027534128554726589526358109269455481437588672319703992773735015465132632357258567781228991372150362668513125197509534464964681421544641567568330466259620092205609005091872685160994766149814026925855941879652801877234600359827540495543778987510801856530936364487168169377031856909751960923218815450156730785752751116948170199594168906697670174251736399684270949217016972410528390896312249397146197782862496726484851122204544654317800484824545340811189415161095860103314456036934156888855990008152570700596947821585181904750200044893916014027996357181442147866136155046028904002834099082407712777117473899191573239987041230100185893921664530217651888461289406497276000151236915033715014496749211594455167323322667613531371098519637484198959080122108264020684049701973604861717014488718907312747744391693314174216925744415796884342981994581791462990779776565315955346737449642375567021833969819882781657710058580206821889305609709695957108270453461595170708581142778307651465791891269669746220307348295627224025726347031387214505157002473442134915147340522859136659806714293012309828514529859499920903835362270032488254828110396746611850296914802220668219277762486855143607160024068965410227885543655103835800414751416457825788766719030911293070852003473359782864343496459614117164922346101556987957673464892757260118631017664061354410851166811193829828654259709881958657609383703752224242224817868158577505410914931225782668954236046086695081838675693829593777415494582848177233141572348459005506870655448342053168902307377047956062353882428909697181163848117908697543505468878224661099570233046703543974886155424995926568027185982415637086868725941689146913607100433942896109287632922366963347977089685277262761545365618515727705521719724044528365467463414972715865391880534938520479825519359408633789627491068079197208552811320250589495375777631728615446677273702716281831859261064277887438763004933989194757583214820189421547195533198577192160934399208872135338352587251864398785205213520202492664833147822925766046090449453991217697528842373154611727198353092989301062722644042830848116737606348739750746178780607309508403387418735981457177044231732789573580793474941408948970408267152853570440369675859663831003420423758526809937265678255064170028898086841286088900666824435971330538707677069550899142876463567489977677787748815781658613153076278004558325770332711180805855525510731034089269815795732266695906007103566948761741126193892664456454140982086240620877925914024752175235885602162200055578623776759525705996808099153247483395121333998715879111360626697641024752469308506954623221340043598617659623007420502998151514371297379497079229948166324951779140210700678055424926387841095005628327068818600136755609914610729163429326598765102936319038710690215432968720169688929793896085311923263618440242020577834390235171417779461788521075832905049836218778709996542202162495708675099875667479141723244873452515522724867249224480562897746971918378473486552962620863234101427004015042235174192063376268606938802200603021179671127958118101197570513114177598035812959487055274932763672395490933901328662789061457894517663437193244900236735538230196431928164999071756682821784142133176514547405452052160890987887729276140052304652790152454273288040857077471442314799517747751333821706658916649189567725097958015747488063221402270949266215305452604339702361309342429608038492635817313645998375472912907942568666988592263793113252238217642142413912008350638421514692914157146468892902185124599475865211511814722550406063164999462134331790816169111902258403303001930311179755052649852445555841931419954182701332074625707923155960751980815196282772487169656841973909118506996534655789449714628154049593088811197193021623332893195165026754893733665742592628172716637770844310817952131292539056773396888513935006407205198690680770754834700907713576885042633039808784748687413282739585575291662806749135608985794178285100168295027208332835163131673200772553918497187465515282661510412322215867851503302772613355510201353937383176622204399711964890994829083691215287699508483003862721661917601263699546954979721941303222293021465947185620570066111431921061861606518562888713457398315916033734737257970394416068334542967758159012033216590528005664521466555273659652593755772980722372661867938889378210216879006388395861551628235947559786908384880071068274582717171113936910029134183396694153926905019459946435318468533664387994997542702372756121296191701936526124107773239114666863947575925383553064699721837790829263777523162773047772749271045715007612468780677496891765229067783970345857272061525296145511618668305947247821631797867377065316226994196812213537042055557928112636553932084696127087359727596651014590160614966403584968153242416948177347001156208511133949980627975623065462091837686269757846155832914941381278615187484093428756701156069834801695140318477760291318511881664344297064993431715815006266133541274178064324861348446428346117466655427026837242838069960010409346352593954224191253990764867787860278917140947780604001342573136473485101945749721669259004620459333747273101285590767828902540494621236036770412440268561016498257047096143811654076296700025458316621595590894850402648607025269859862678429468886975483989762821293970939090178330870798403792285267377224226177548445196332601513221105994625221378452094172231816133932979228470083825385285087680518645995215815094382696508452819565539899390063811669387069935625410029752474223092901201614728604568128908209433357403166512233800638597982546530828208023672133228677983227307895827656051974833253888885273815297147862848863584948744294475593379345974702922123901773629862945360224389594165025144729550330926644882522924039405917095990674756016580470018560878884124770440827008932186711885302599545773575187394817064445804728744655033261272503677382923214534700111061339162608983094458400060840404630255972818589010729846891305591443721607039801733276054359763178927288871715738065681316482985341523991714679239365559478238336589465604414938270660093557759616936618933849201667456034936526568546716742076153597439196803767766954181593899476273878232069624530082985914202537724967773503928158660894078178409897534883194684036200219184965294893637517487859481203008986666233853046385169055853635082515683618983203170925451513388444135929744017848221555530012809355983058361210425037258224489842805113468074547977090431253759362773234485978781879083819471362117825104101204443500274081257499749958578533794472603204563717827083072122852489368910636707256578632862540408648874675138833743724548365764687998303368955520277115089457586725071172270100604467233011608752349964320445829768896674307842685233949000238722316128028617330956174903008594804087421486724961875449041843941568067629713443259277681566964812310368577492885179964295312270085941072197587748529710980409264173869907843541905779172097119372699736658142032684660951228450423491731166853272426512907916747152056076948239313756770605909789727068237916343479023904995104086643409720267585126121830092160439669799625759290520121288949682043983290977005506032286371043844764639349952899173710456473360611059632729652316870901970992989883570094051477765519164241584078379753844040071029384829183994829172723807781571251772961452847276228561226239970159158606311290718499215772290322036279028364635505109704597491980061593756414242848158650892638415404045405505465471836635020404712363250756662885005566980043950063199545223125635311550236954478365248308063548965409276716165492205109750098002150029861245987513532464255562388235063117654593879416352719744210440293015501133381004282169121771415573778427448363834686611842537733141031579638412484173654192050183961242679941005967133120800194998437520342373537669283876368847724471790318849981574986611875844736753940536020562780598930676486102939402810856573387257802578106702560784267297383169827645602432266966546944550425825706876317786037736542159294514617922432077588336722729870514748126720304758790238216352009472602593813109627761781993243906892391491958611216512019531557178741197833124784548667595114991785637053311332564160257237057180475158193423991254296632124295395296415943366154675112988328215836403401385885188461511275491588930519287827261389564384963556526491028607436054765982101475881425329117108743695733015672908033737379226500913297735678407108564853547151195312742684529047334214991264610534134525285406962367677540202499229905255278357225546747814147145628106044258915021960298139146233161281038957562040267354049519108955259093553015190734839597314556249774950814858169751926757045249209640165389233112537609458475073680428436662494365929708604445291024622233800942394781594957119517939919907816057152464832328223575305493769397413848074441956881779336568142516690481254937518542783984328285204705594609771849619069503214152122104265168157381740447281867260269893952513299218162857610553340698071901202474300780967672259518438479687028281109606806099391657200382887994499430970644039334943237465041896217902408483772944777573459628765562601065539858791092244925975837818217404768564045548560228970202154828677341275512551579397114275120921571613226881795352033295070686259654020346589635062157100685381557088185652212316332398396500209725862904358373084804444469111178651229418119041494739717038255333836954864813844712737246114242684415166619443130681869801830715093364223569955785533100726262959467697979706858343888773593829365022762391411998794053575790151189125259386554431154115632910902642595124991363117570750976891932565033796382245185986624364677463584796449490954498424838396761285575047683726163404732444862612564105571193044714161158540080327862136049720032306096076216952632955895887090838942570612940909704471486349456978033699369977888465186707793610936623532960558574647300270720913195197728724930477146721839198532673306686332681706217374240756776788350207760786830320303717584935202927399404491511302421187590597932385268040426565767849660832449553735378738544769057159598051720485070464541553176047409771631878957394959528075996361751545695282124850492874738439721192159540953138321313221056397329935460905209878988234589106086607177584133907628768839812951410642902749752884276655768358021621091563946464968587191511177440417187343841108864363863158826903814384079711771339492910627442856479284764344960781053725593512680418446657669141962542274958776861662886143338359748624863255810897928696225524406440386038841014123368286932428506749561030035988773011343870154784319589781842330267917284121184808851463548407110907104689641571588925676701571817988920660253991102227313626057975047619547314778836080639841226025471626690315410833196795247825615532124763931203139414474930951910109266920302220261723893894134303708749687012024895796874275907478759843266473637413381597311024024626143305906559259383045049319543182532396963146718428865621081758689088643731922906357205167244049890735909416197344483559674747388844608888073743562261771386390844931593071875055339525168624615123773573078409710270714905231559505944014609270759073568008901927670535389267351142741085424219691792059927028861138117027598563442327826206085645276626522933988106049440056212212317955117037579117718516884219376448430531406733107637041212661149827572450276968303190238224752238178619224189704443271898118551024856774337349491806426789998959074054542008685719761991887817079271743645953952307862975141122147196592022481382744080374121633072742460133093285885867278867598491687742470995643741394577236750173254415687274281487988725484217286502105848713274809949374570119653032926485044793421098607534080490312058791367790144645105663748530810457778317373032062635689542128854918014928080145819389810415993388828693751481202598505298268249568226988617884904256503939377162292448403891205509819601571511450123888807743386968279338790505456418806537847204736413069732957168229391773960801027758241466531846376772253643976510735823424371909200561593546250700868790068829617879725971632106435068705261242715536558713131642731378544298653059981107095870392727812438538211919756202440295031397275850409314075615742962539687375364344474251687611028054968203112477503720136285666664179369825094200533727764414446278599021150332500311983187585396015257608059906268100562759107530557679665667052664400452847767185943858573605542596080534461587687190394440035054585274839716628975104440263615495948191476886465240547677767712307161114597426053051512738162071806029531325160160571941111974219124175744562803771690056704282000793219501887527262947318923835667335709545918405304576692854946627236967514969507294357499933420807622649258313051026915877752532089744406466564840500108587697900183588988551711153148089496025372750607236474225390048432898925109352733694650385223528130536014823621090742006594904045665989370705314619321185429040766757719333975508487358495413856188659819617529147838755277521521584701479061467608560682601472999431274215696871497918509556491922388987591205823089286478647735053499146834057098097449526182668412317054628938463662265848525723986763458479563877098682696846127438345132134323577909543362057514647633082226901694628222852735812526628352607825678338045342617461301773907840044830322610412551590523539438096806881745104386836869416499950014346771110006443460572095085804481150185770224060714630472862011454590029331276782788867743700560631541942792355331913903688525036044043795990897425487436053008629242709526155371231567483472016544330574060799988122171971963627292333243296627077103815094363579971642219126049283795054750249506885457744705491270716875450729982789363911322909514041506296611713971333286115458999726974236090408144933530449236785409344131664071598865939583558642780209143866682521720712647345242608722566586152739147314518339671958260274830225192898987472356321915391821594418019675543957424288309159945223265542118753715309027369348893581674908887602756434318624419609277572974145052596614998722931982290751361827419679484952976395333947664857431138058788027686997476243032886719624861149914998708631142563170819643182257273949060075811516446197268338390826443084299422518387677613995617977694781335391269236147721560699897064619246170025335043989851688070085315659771541209660465970537384189651070553531275498500809742689509908584410107984915370653771973599201784340660359524095219573897158008031265343637913878686908736843668349655652686590662444016891209919814463291615093934426011321220077014635032805185028013714699463008176703193495402316894554451461470991839362736702748084177601653022612926295788805000870129333507422720075250089328170466230263289604228540526355822973127407002241551272976713188237535882155294085636776257896979558419943704923543195254482827083654256115299736789039673868470753338091751675806532998497890853733679626476672768912955660976040715386612201451779546353336594226491671431257955127037864873918269103503961830780607466647691528731898759619852855498400460128540559513620513632350067824567516884982768342598061839716665868498679892950895046538708732188820932228997341780456779128055874520654936496177338904383039379775015147028927017228638719650933241264178898064527938584157927721930882552001149291961053537716832480656576637908569445944298481762296018828863506997923603228161194568856989553151300140732136185556555171444804337251520153878220666025550088086381348717936052246443651709493840292259264770612347091052993164735178447544110105531003158415419667332855450056321912056442613487478423057150659185771471244161957385671712403873974892972272530709582167745503947640950920431813415602533002078449176675287544890355535061220111273828587892035914220957294790639256843928502781304493448562276409364946533890891071721435661567994915072476810031150830902441967881509263133464016633135692096677664305106239931941303758159011628139639503454440291178958632717879322691975719763647059915428606049851652654657972408144946552364348446491569048252282636966360876612599239731337867657017513834245782028575209250091577535109016849818312366626051086127645355906707477125708496149187776941612164995511552126120084147330738703421785067597645661446781149805486158317171233959782299447872592582948305831273933432429667419473280889364708120943262874541848420123196614958510156318344960578692838039816680257229196154306048979290720813933586221202277207297502911628684514285476765662462998627777474453093506065438090248484850191980999522932019150725570008333357139092834588578471567397893608850509564919384575063710875752528897927984655567661376016920285628121233368299699798872933841915280734807998449277274124254845706067464352566593268719743884071792061812097586831189807883219022066118569823473805368295314476088200254028957614743235959283288934992309567197289692679558166037224485367705857882804738191653500666102630505793775601198279993022442248291870334088255496628185450824072319800471423933515505151990187828327445842193598148316523486944651211486741866533290172149700358679397838947239686948008821357159150528369290157334843072139804141589531684188061904896651792591918437267336533157752971368376010947235097766003312871094686842522293477110011852216497352233448272098478127546956708602237794171271843888755952613667942300622502711642130068002711165711882133599635885113767744417456716290124173332490952376568994891056613451142116064231156912195859595065814731217426711113791512845439867255387502929822184897297878391529388422812424937382900311564824108442910532414047793095368887224484774757832061798165403109841868688325798047063534537058115249276736138962018255937978495553245515718772745315704575908585341919926601991008457845647114248141646364378749928946060713194886677680515046051078676679684905255265800945584926340002634655905477752729848169514639511682273440666072992287690106348934478555197485935269427606797645514825642483022850628522851726402286655819570113379342875147275320952281791913856132631959663297240225915082948569424421412472736995889038384207897273641194902737373311862367409166229943051586400175052139447329059776214485300221840628133210370533051273156071079997272338543268973107040821861658961179727878261578776453022526718871336742156498863869154552898957299117086255706750371395022743562692344508862033321330071857956512268058516963110766666944732128158034775044295389680097551613420814508704503710330920780603366327977177824935278228207381571403266073134335258096981631451228539276694133495869239397121710886582191513534435661773474036400833004440458251682236147687961430092464041553918446263210358217806175146058832482762296856328481587800468254283593662867486032980549220555363656302197158637322149578254264725803012858008838368152640484752327099764450774259874937596947502651267360910598169127137223742859790397780989470757295002742400242233914115956293349098413435665050520017116708308053637370424263488870937370428618174818471225596276944363381855871317607562800396919607871122502455043157230042467851607322355644545258232062683625143773364053042142970255570818865087665776606480559357792198920823057524398112173730807641801952457832841584404278046383916670744168989227312493873291677277852129969979871180592895382065663232198235854255472934502124348680791619632520993074899206020387066294338756865608355577736544629265543171950295738981219543053648195316162685149989504624299237040848854739843537997564762833609841445113989141780466171443644963130535234511922196423813443589934628418979764819641434014023703411790280762882881162540721441102741608591340696340243707994968484041874462922847083924832522399963780278686580215563015008058204405031120785865915308372888591176033651690401721081028491146145409127913141813711954911100840460792239621937705056348125926412624494696309145647287775535646774946093348295780906580806623525218081041057614855435370855071993846313356012558401480328620584798803736652103988977177578128872025487586919986839877130081025161290011137183886875507814034090436954389673872218972621734716288740261563621060499775307700810756549214121692699052520117941464278439511985252362115689467559170171992709892649781679599790485001133355779322365744266186946695616115003828505646823418493983081310168267350508550862589894878218557084248530605579492832433442766792018306129191437199225490706476646082912100476211649107836505977685745844925406847173453673436364679442385841154212004832724175341949849746426053974123622708644720408112956859125912071349662847644460851822505980244157644305009756368012832446111746023755486332425436793472656200901932056709498609930523140229796645318792688234217646295704423309300509163231452719262960218659964395606657259763761158368282017559983383553032681100281125430227180108600193980546103311371822579060828730650181329602926684716520661884868636284416942619230184140592881295018250306054325194319513671104542001711259251794167625136989958535035278392977191357123563485516982469108481660508584936089488280547833794826496273113725150703584593109236186722822940671749528973794109466038748176587080846225128761218422446392539186249996707649219205537260588243501647534263928752042929322521888473655059466200652919737474368078127460834853464622140831671303410945004354208727395735173813398262145026816892351913396435433316434826216563670510603063354197273525731658678481424302461811994787098559085299947124629883468114776006576213852162349267511238439550340255663687439467120600741213527696558944526080214534922755569039064281533640906271879772653687900611949347950111162496832265802194622879821545184355892274609199869648477921622044158663043067372953496037943948629812135908008235507492569070422504011493870324447455477978994767840015298486238507974026463918346445707057928343818399738834621476348439763708290173074500134366263129593544075171940206426024108395238107546508289984938187678553335638484780397963204978617287246771145767637694689978488251372578698672563252310349487061115327252812756236442729274990855944044946035533553858245085978741330436758888623711382861516968692317626652368962355227118337427107740390734753354574370371664039997900733300523951530502154309053278451494248367040631187369959975502245042264035084996947254242990990467452244606510315794726081659700197108484293305028403179675045299063006913303623162561831814189431562125478780022693861436411187630662804262404570243372642303672015196311656226869287419038421695573490122580143642617240582213053845262954865693241574559957276553216058197725970258517851091247124526794155823574706758290305691789578991178660346005854519602618054533208903190780960107557160898692974039965565954844763530986837560770815236100837037986265706665707898506571054107285667797145072174181352316675100430705215441528491866385301255727899040966880021534806812970349730537612125880194499582490590567537530518911500250728303689464695695345960629377068830366192351641550823773084617577715211558713417763742746188548329658337121900504414631069105433091946444446632199887907037566084719136436505171168042382047107324677438677252082253667951695738229082516061360444358021179360396336732802516348252903977129198235337358364622912921578876950504072178036969961830516953225269195227161904389530573179073362141363068374365245917276720231062862359380908494279901053937795027704462783413768779696700350368094721575335435929767707835078731525467939282029402835750834805498846216532219462803735360866476596460223686898244430529302031584138191294785134479107623075454708385793316996148523949205417545849428986386812158468929965862315452760422812662176472595779919083482628270441871971841183319704497876776563524412355483297372089028316754784868136491338259641103318940773528595759636090325145677020492870620512362733181541798128663351260077053174315407450359236385187654832746952275997580180762266226650494683867583207838590299339051546829706235307312840275994297914350220696058989218888155050024359062843774196290997254602920515018975543483467367646736215459971695371554699535463450583974285774574223700661787223815472654498950145997055293199335034901622932656568665999241640280801426028306076017448874878894631921644044477382653277249001242598609176912441950964867876490868183809733832500674776633311324570782869504879071054560423357496312639647067021482040559595962014015709382033110107623261978190429216986631498112162276877402818629993060135554524119019322149845843301096863506121809386424356758189900845114770512361930400396018092282850597988524147967974526276399811819775610115913509307808446033069121228622071902770204593165350991773444857129498598131242326715177525385209073017742577647769458407549135142290148088336815982465501444702649490537323671132334887107577485431250414719957944680869066629075118917677978115005828243723882306581570346784473185356828057395181898666118785041470470588849293478540307066528862639932191611830272344812993993604711404709017434939360269604620792096047685677175110981234672065029992442647381299559622473222313415477808206913490515322786601809628196949153679254963694759324308971798695107795538409855883973995946587763365565641658951590804637465470169581459862551126243543681305801488587378250230682382193319863216313649118445966627150402816462723843524045765771909799141777667326504635278213557226621833468664404385907861465646794672429294569066900702463487917188996035825410264869088262540676542382898064416016762486433395086827097025526892584372433434836387871133984750594346861745756813801656669341769044416416235935954163882459384260889673237369245721070884419763174469581846652324454774161602977180060838408581303604626994897713182194938491127172110191030990790308207379868491665494012870487629715650037500328291306623720426912681683645449666888215962085578624503005581448084943810093991186071912044123376869507296128070831635294511736001272439099144672619201285565384197931113557246666622737664033613737836231090647243994926720339546009965542013300737475393602361315299131802604673347640609834552829036941538013734871843815516736767303065104180731646382664172296257383891567723049314454530704241280808779640228080070053024979392696194642195057225675203049659817314160244861688772396105606038946330155434719152417144331723070315257145056852907895832119546431626479508192304192317213965348886356076556269959623681053451891074127629756183833657715057315166528965547822854784797391811266492705849678796028985216450128403357355278126083659311393208285682719633178171891507636070553208944691746597086821927175201657406767673522105495454869658559627097003774685072801108940920463402783150588629553325625120858952613783484155519477968952435415994962436279256904545686032186813060585009058689929235815368939443911427068138076775208483008403022674933876996487389486338192718547954861403613515674379241414418072309175663413060833906464467731045371772244604046317761588018754564732643450822672444809503223641407493261415823032533460561232851422163094584891955039658325852437436735202841700410761197958532827477002597341115719084468893210210256960703965294220714591196026187195875323319852367816409875709896364820778032580875913613064906185499962402436578070397852177249489727318701472242173953776230394824158788405122712200686877958316568801318311076702912737331422436088233522949967693290468976863469502985633251275135148959632728743467276362622912261913425970897240227947704307792449874812886588505220397258738173679330634010059799790588440704861653763557345502950026417664547976841317336895384610089422354267585704977746900029227736198372148907294867819946297517602653205808064668620804025224754565506331694868921699692019485110319873550833921399590839914919149796750801149021424193596846646823659263740085576346807930711887086075276674671466665653793626179908714077532986586064595461558086710580928881559400416796391245021670984648074411282615566151694819673648606546357800823667857145647733645407266154887458917670557337154860284750328831832013771331036253464832297905721554143529144933180944668337488218467670229775612127171437767729638874466484326853452500361994208823234779838923968174443928226583153385046057468193396595139494122079471596354618998248661932487297189737765064536718207849303260515112131029931321984701449470588327698925358715642673154647327634315824285429347618340299987200696818329795701362214152310365828593203930090795496516991516943578941960097837598735710707215008067776148331749620039962595738044906255303664353446375387404741418059446612582834427819158597370661257610642881541722951790158191046881181768739673629280202656474507738939328896346675282504962485371921026123006144392549026177728483608438715077131763226701826350936439265321104326246173882952322364517235769488481331162944759747631036267645212674062951973783101125751356581230654579663046370707864380812941162289075860426183392965606656781458514945901952099979468827694080734072010918913629359917780878957718982754668330527338057411164379347926966056970179396124552021876607004407087177624539593353885136524575425499802201575672819079891973943195016475989298114648436987646930687328081593094751053132262155740171025454017254107149845107840324845018407877567862309820507407960483100600991121499171538456515683936926294861748251561809584620638024325406394483473248403744646675727080594500599689016486118040029789517430840128041538158979126841986949369407628570460049388172396191514291015208055850103412529006871948644077369988182742036621168459923794486869434595928329102216334014632757299046687805920540812932149983731750029229610028470389673026029169916124787853019958440841470820134497531644070028449914023786271381660970648914819136343206831784325667519936627552790097392361224174859972724168047123992665158817593464847117830953363486182544123711865544311715259983199284679613255746103741088297766872517730611666982833547267021423206645878982132447639241279328749124907259224578991640961462563304704267655091371168547993192556342479167733369997458557699731516415355458997085195371276362504040033257040545822271162170600234538895165580509881462760352558518485082439588682597331011245847639975221897368755295567050244078041518221128825202128040735273631884823756725875599772679743189065476538464044915514609627313130951463007758925705209923835718542294458077533292844373823413007567522435329261884319359979582598251401531595630449139999167749004788422117986129015517708117103373400764409291831094511792272995539215351492898411620008985477463414885797842344169706775827258805300863637712070272932036505264634279182609916085625415522305498745096530753956335064613681019822034749622292850088616977727979625496581352397297240367358954103147641372440160965605642570930346079904973957233459256289574649278899090121289302759264623478095995606044267603907805852649703530830265669207302751736838820895173765078637629899679852499450985847225769955710281374212476448462397713262192105029466625809960429310712708560553806844495480894966497204232067851818710378638583964189641995223572217180715732296829253013563519503979670626393086823662348146537436282055302588398471260738346561142932147027603131489227125616064722024226133605738817093276196485192501250825267923053064252218706495452689935046030903351051885438437590414528281079547531437369149752640555707898926216287182626758912659301933955072124746756340570809295597808315381144375644415183219836023084096907695267845012327570754832087849209916134159528624657452195893690372575949012350469910547419573442547965153034236234261700703296384645783071276582959754229030517276630242922761760622410596147939096753676606496653525010068748587484410796565952145228799400493196294288669537520815440927641946171977031398405860424210602762471591265320954369787545632452157936504928861104869400799705402899967068643366880878804050755076664947614626184217387067291773487117342365452076280948034868888319823286286249034248494369252788519101053212342443375407128156734766463110358714314280218371861954978061100511480675918524092967519575660496382213237088503191459293221960901018840133007338435518246899311176077101761230852937798178453153576979351957953342167767273316111573705856836521159248580096182286396460521484515975726248242264785752092214733288538487531259715215171780510761769051734018819153592971538378808684879594553124759170008080164228271372877816119685870898208161595986137277965561787635929420584047321520469597381501448177214195082878023961141775409108579273008490412820911304344927266698043651755715921801089691690305570894705734914955957848826643889103229748406955566413347953972103185791612661692692315365489988109947580657542644034958531784340561474471592668521685184652201103752862452155959538733988635108092454065719689712108846214636521578491577932361186434372766769629350551998697128604609192232399658400003387658224497746394501295150446921541750315566411083917222439676946207722880125583003709784908239493036762766142153257056212097488205709810222242501666806577002657532151988054293612180708504143249797129429996896676735142965552902220103432302677503194153925668612300934681731416373524650968676172752200052824819786482977713500800166281961989498077689154337865917485372364181160202226259778396142092483186312840956267178264099900472763720564238753542283480326720756754528488458416061289565926974138431390612063987694913430018835867379240631272945552729174275226458286825250511132104051670166603758055977460671608502289072011642047462780899992030268470360240958803388083827571362407976943289875595959593370377024147671829993284509609484247353773300303170189689578557187837822169481093045775683648325215066878092807274164359055850601263066188394189656130636965986240628242144573898073596522027512284825696810812931666088568288197971787971313543812517046957382770179055965334818398623089157392353318499013528937283061643786671902935734260923364039877713500480469484408537966710828598615915179296648854272021575908178757316117612482643072985816047651379035507110080237760625955949363128328980904871418510605971720831121199051335379753716858609763484914578295388355112777606596348054022607332107414570514737548284369943590969535861104038814471444963206636395942003891392409250151108833402516805164042421987962418472670037758793158692553939882536142110182829043781914871291278309356973933152443839760799967529947888413417914727432015594082017503860536034703589448446514667278900054767130265392309614367039785555090982759872781236586344460577127558017154993884126440476217570339179648255245825312716981935852378221922854669220568697172094092660815165483661009353809828747662360478208672190272241127117125350340650254496605097352214725015210807038072461844787987792957837651342309608848137053219697476876688166997996295265036974794904698291743544076011603821378998625001799480357239564045671562535712859618618567060987153509468117699085894921865707147613717982467420756311494079959851037511247971925297366303710304449568696573444517575400728694138945549677885608729306186536057929429118607464484870716963059873845507217240011679170668188577306205223208937422751581759108300123209435418973428679089310232075499311394518218589226808256584618596650018851736721619597061113345463548388352491835487353217345422301170887136609259215601522051980157216063057840417386188883403552888177213698942096786628469162840347198706460978644124004498950749647631297488276766629530351684614994689851279392051638073320414007914353824595067286852721818795014746830758216747072643512464699366442823033789344049141442232117577786119371225562047631916110356876878907952086939508920563508793687740467379728244586016946159176157293079024769932356193723922581443846235336244320089606201697257332297239178497138741454085847379710309857310820719168568593714709935846844491993084222769291207329716280857136966658237699037322222480690503487615924945733301089186934217357890931908717797369050695227808776146134327544330473275033874867355631612883033624157546303499399764029565133718884557538526117269633106577061425328038564898026618249728479793142328691039716263428949989039583320915238065792138209413620372054785739210523067458290843446687351472499987755005673370734752082974851547319614433344024843719696038307187588166004296207413539236104066344286207789745287214125545787497996085644120795068619404749900541241884629850295262485786292571400636668158259864092408828006051199903952624772545710828128791160122933416793683477540561475824790209706191733350041875367604409970619412857170357375005840514459984531144776122920283110818719492678156321453577443934983913521411292199815878943012939534333797596845477647708543595102542836169828270767195659827538659987308677752951512270155589055315037692524573791074142268847649822433392239978798228017427137061238622525596158503921946187285903490130199363479878145593820170541420172678864073133873489370694983959594617736030846610545841716934006010458606602561330400704211714170790495921038938472040211546136163107287198677150087152490059303882719240057315505696081833200192030182900140236052466923069687736926668911252730317196979887362662144208438934919279816406673714217528283511079889150139230588055208931568441808217948796722823841411712960162400729516627647442301005210768372712609531435357692554020782369704385578024956788680539413879870458432970833817375086372864694299973837821521771098694649316057762732266960873267340239583705197668182246891442329742066887782780130012852418516325275078878629783765141050399079611787515315016525000012483812670847023626386788771694502412743316846942514508847491288407930794262179306359633693856876151490335732250389683734041910094082561589502299787845084813388375951767697268221839700508248916016692013879435809045519343666198483970839609295180989339925850821372091912076834562177136517362237980726631391112361923669212797253327278697918558358242350082091958736668031091957983329312537076767212709185847867010416455826810399707871073802616363670774526373990991526042615099318778280048110345181379760353089754618642540423741109057163866363952830697096549504388639489092265330983668390221712286170318704150170408581327150830021530138782021947725111388283433025790403643365389424340094036556798932608187354541779616338641572570773675428489064972198592833328016526007054937292853835226012879380991109211016333232814421675129569467328127665319810351720726242426870114697878327393643392756456477532551580751314612547861152068913521837203027436217068568145694582153752866891798204022345324641125473297325171116832048687086693589575098103282465113816506108870958870521962691807397039529045615713585099447231847584374159537634209368009830752236397328637588752713545975447724260231887962877638230654213380863796225631603046054233672588687072684276388049898318551890830672412506283174151115825426234733146591604602398992697599642656920780249965676671214510708930525515885124271282352187839893047523316765733154178342468663493721318017123531219901140912637864920298624853889848844790288003877055459331047320991907490787626945795496196286629101253342445896842655448291237139174287735182709426773351588183822398594240622198110192146550961155322856585959642074615954184080348741624229656734920096872981606727546516981526472240580023652551141497293431278893114540413932619066523484107642685454789460284128295577840619838420531812335046661955184944171774434561522050161111967466602724084519939567635190921123382970568321567853626774213388141485358752083342084444492499075265474361118912348413874572421020316426175410823842338798611824365365863221191972080402260229679702329564632391941406240098943249159346280764180402734694102121002100038853585070425558011478145004232747312996563083940531862415745973550236724626609607603621928339799532628415127585265996070670086997967145770814154909707545493635547251650419191981755645103135320870066344880229745178612437801264625250269703717494883942997924082422828884219571472384199759306019356744020049329249227390601629590390627350419362289386985587396438474804140501329274210878758372371017862345090143362153921285189278600247906904167232550679540095334113432355109261085822697366236774713773475186265743284360754556712986881351131950419147179035563367792699438194043867180426810250574884118901922908891579185294235653940674399642667018676625170148783127026118667283700281977750215858507187403989345700139340457914113038894724433627826822086031951658644513479154297221074701573699555742381376505994286891417412928305074006816575605488268860785410252984387274572141381200013715448051063762334575396960481236001821179361586443380129259266059091945922209716276448376811694253809423295180296147204862343042812488557921128765332661861575588623758914976635976262671317999287985578227953370776744671389089788854126711610112477956955001893571644511840044577805108234218049933900742534402771812005699624301521655667605025338235914856490569448111763417690613942079098248472407973252849005479302477122694387162530574720739843156945453828516231556051361247930254494253286660746275457889448319872275700565248787905582144791866966451761443514120960493856298541264102307852161157289202149210708500794754908002951166044588805896279685671032484245667571509508738352033525660217780495948403915555302546514654866091308705238859631576260935158582606848173384648024366025101947978459720062552594800543785033878640075983455968386084481397923877498037624741958926542580736896210097055812978071089379002482533861894017357747837869026233527705520115956800562662307031041972029747315914741263949395688402982176400215511107707933358030743433320971956547621273806261219556650697800271309133777623453325092406825550599066490778751753866228503839850126593208723527059140915410440925082615878321765871085234857479670871609726657855818042083184177594826789624695246105789577776916577351824088540666921567783688733667765464379111528095688221559794726980766969326419490886816355988924853662946529777578217787259112280999347614330368284009606059485584383181585628458018960811114901565516729114190753115370055506568379897594350887270824531433704009228218349204285376397456114911436188605057225799808863966773008259004639917175556434964924499553256534350427293192847402561603618614118786437228772181567098647066414276290424787381728381010606536627823593628732401563714852487717165725030483587850950867259587848617759771007643829134764486960274269682957023792564632842409256513922627921519426886978662229776723278286232342844045424294846402053391766241774210462386243525357124558279948408821351492219627767513898399234552509630833296797257100746474561577711561951383855468380171673929590348268564858855550301700345613127381144551620481429929578030537220586718630322647863463127246233122798329629080695171224760184500408213175473331680673322004044775523699056028458188908477278635437874826664430099706735157138404624610474020146352886363664543505608717849905327637192574606724423517435028172147345798240684081850689491532553320317616579234939005085101254864620207888986996230288130542424230457942726301274554491629099205677008170406779037792257749345819058148862688883721513957054710900028839160040873311174698766734346901574228839870057765718746619997630402868171820434414543086063671428337717717861214365279564512662920527875035692788734770916031960016089458149508076443468326817611556387717017069611735779401272923399738377506673501566495744557602546562135607273956945673682196253870047672690407481192776534284776315796486882508315861961491805694818348758664924326276833255766614687449054024866182177359728980193391310486293444573461902254737211650877691406083378720566433354107677367386269435875247792631999103429316639902060797788321643539837653642225973510476126655057755196615133814722785683561020471896982941295367776482823433058257465820111403474139476383338288139913401475790898350420125447852898292762965360400804833062325779554115998681290634903050202695735813896460437838765308554977882299340427400977258630351996526788717910614882029306029704873614509577656885577017205817099116892420040413956656846696073167885563729634528986393613751530810126066106921542040482355330671717524759007499462069713501987117182283776480664183962876031896207550616364113281900979000417973770467169147912096509337534451561362455512853816947158860289925396954090673828205994407096406623007013258521528736165970227093680236761125540594189599970701765307983039762137086016877603529670714611988487691534259038351543015968389222929325558282232140626366733240798799278601811530440294114321580335458400397847113101565225739983207117427835095999604658979471882093454532480357285956192818162532173821557134503087516652589674490327745448706192109565777430681864520914739791855504372992928341281161890215717102355807381018643830542649806930037957979565139287925716006008898243874290090075977912049327075654473789988170649209974590686055410116094976306168491586883077302051837764432111122507722509620816876786478006921831249607663111374037869766883124232892800624419176453010969258501563700193500160969257525409814658503445221630453757445777507822336819284778489138933027958016346629594429229114769229477176136766279363089810601620447269896071959414989461522192875858817136272438373049544773875943317482876962005024545073025578080093873976801058462427975923336116331483982408225553941099333179434386638419307282510089957428202450674024727149628312925945823875293822161032580517186002611964862998949471832441452754889340471259303318874883228947169843359464368810260938209931597423626598698399700815873479691761343579379094765804586667757021225452570990187994503197678118744229680312724001166617637846953355432028364386028974644202071091552340247881641259667213481851834175257875196232075767338616792191940037060021569009318871129855539691471706342554008240761272524263005611969972074319525835699558451320738178815890429655776084143824094016119772366456165047603968396986742234485511556722026583514585035920038553541299507860372614230485657862103182251019321933461223211946413612002881215977363325627922700208000662493289347690423142138578866603160621176543758537134694693302094536814470441593868981220112643007556942061774027455949595733320109494741384429596609611224419245346708088546557764406176274545719140990651525039600060111873730412184289331617030902501555825425118996388525512594921672330011222969133691444976703322183113549831963899844672579451405506607735173061289019508943493450622664297723222819278481501282617890444801224320457817395475041946322549290061415756758829029645681041166828458009298190285497230522681273842052805080600337844192123482480659961983600253206072020635222020745888379432057860622596294584443696140087133345540176207770189363534099673244562607747983473952810946740115268830361965197066511276315046224875229603006482990427959135785498246838992880327367567191769876072565413866378891428962918349089005610204725402899896841740942078340058963566922366614493646838971294679653721459093312056623200168167967752234449244041077474506511756465382818836096297983814918036892696819535636695565675934135007800620937061643821982849291860509090105349175210137476172025856199337624205554365076565376540980865627028343497847682002111355372535424127153121654812326169363080400891113520729614149339738179651225232212870791695605191063654012698767414958089400937969603963715569057239407800498703632315756928096456464111419288547297706475132290418353244849865987778338757046601542796745518727955817897467328231430225927935961974964558680200887018234855455896266441078714208427678135848623193674573762870025499292719669348572254726764937209569905959300232205836502730241483361418449647207686910826769801317273117726829546983822337059102213358496512804751845238211528161413607603566066663119685464400387908893625215392989979660220700362981017260143550604066829414100109847117273602936947359841945360144415210653594478502897896615749750290098298918980675003906183500530469590035001204974586429218381782166055262829053469677812853933372933353356279669165200203033855665410410325593449974250103465151493178752302217995884209799474625735594046915907916293562027788740536606555720665628743016534405669589423396622098618636215181836626620738499576489392916997225606154684194580086792201987832543647243989993264923206150178537347611115149292010674929911713404647796805174698500276761468444915506249098781935876745900515230298972171137605649556643249900078712319007616259493415304383132131889024336889847667733324496322202102578488422895330821074811909873932380377516086045996568511680731423773098317714326369107522902475248498066221706415224873825261958917973917411828995089503656963488216084332899012351212546717338584725347252444349653766122467740217292634562269263912186332242775650607723450075355142993553067764539113695925309912886333908615135090310896099399568799518354754417751952762293872073085664700612423656364987702636811855686550768353424242429087573436542926808620500203713110791576601972094670607436003163718792509118247371611528852097251770830856627588777281469199494105683301125437960098233066741979541200553186359137393885810455049054648935613143469179799719590846325906637765855790003402278769943809212708280192632556643548808716670581965292555103320961310701100833037915068429714907454585167081203052972260480083129469755064798035344720070800553647406814674020052159234473282179022413087964456949046462218621409507851517373592160784880660102943340210064688024918931574003291527385754278669739360881707850477382916979765814791572050262214698478665312075930660135314277156192494412527223385973779847659319201028806368161542997066065467378751192873748579917717125258441660729212937071795690778649048419236725642025481650609798693394465823812863273147077421913298500534398236608214538386850302783551204284439319298727508332703876340566671540239953894198586960689334286551935258811342411145859960219032005076961600778259963336558187149096865548351349463003868813994303780241442205898867814649238417012842873613909820335720656805750126001889476988071864797135933474628373988241099394875933028981587697274634146917462813365042570029818776406740858921022851633761695850356304419197838556647520511197803379757691431789031505258847065670263914445013841674924682596718069761034747910724666887240316801858096517174403900097179969777810408334946202117355147556979092701022403895707442863595942351075904088828510738648216431985807949514105022486228384139368837074458479551881553979534686063156890336031793575799525839917421769051343763078491595028324643351410917640727255614670237149509210158489256564799052730760758730823241044604323880761960336822980674168155654247206279023165111986735838091314856182490284447587967777270492463643465954567416431472040092555764997200115979713372412015512365094820101607438517297444099085891931184203640470392176934467722625405377110451214632212337477629090227372940858945407977163088578753670159932471180781815966942330657254454458681354016822715216219672853084304135259150510630117418171251191727950689231849922931271560574530087150352115631373832262977318084817532983974840286186907653118810781687420923306334855886844304364142876507053643064507289470485182661860837087866217115627810226432428465390898648555900140242677802505612864235739222019447496696963160745736080636376795278653385889786546204227846245571856188083065183918967063701594987934560236058194360525470480287255980827265222778700021971969603590998659649784177081212734146355768836008589440190250279333269838319293173057586529445421249447115935660679983775925743808886839752893292961898596534897738775418044562997808698281991750963794967939928357585606624097504895975154153465041923926064145107395015556881080750551138957548859791501859837611947167908646421870015688299746216884072358609231415441871200023530713210480494161296967180640653456926248831812128948641462383523726371416390543843779562272956961946551850567625047459213502463739071131736494481402870274381283880143495932156998944220235624010781347294488078092628357391471665050762095315424424937067699396639395814003835696874628972210453915363587146559885929093247799600881028775758982961504560616844181418644597986930658768774828867407421608600888342767039677526584393354669845872353063545352625230587018578790986109449383818100296098274443106972117414023567236495265195445446275916999778733202469589475722601929654148263765201017026011077792746553389839524868227816678648203027299260789160728370636722539117243038240953897222109208023127429986678383789194386304764785429983591432307870528879982014457254703034202220605905428950778721981675183770945992740489753868131043551890803759734338480648571711911405447862666034908571687288260625624846670540736402107151243967197113846855413757688099290289888750657158355448639302336410852815408168724370872349689295158755092958163357643942209366241556466066123325025526680918569674294745111563659767614614408466353636552170707735380722330599946547530832995265764740583029188438021078688208167627487963603144262304096437871250660804671705728468313928306456838026736438285811005120824375268372756548260394220797843806431050768809806613990737870219884572004137323131812358081228448879617493683060475243669433356070334043702168945621532769226564214133792419393968593189986216006392988218729010757998504096063082873159154692936415771723651181791109956516884994266850083619659901011588672675449680223038676861163076238423230439687331060172619526416734302137440243533847384823418412287625484038360042204604366301039669342636345333593110364856363257177378125807472276511585159655081597165348979349186258832841546186320774534812449264330444659473373224950224314396123343850515408000674512957118892900930323028595408375157506520830711245782152261085395089338976496423456712827829325300670808039519680376379880773400525335705634165956869786459851163340409752940267408154610411820653915323422949047066984125185836064503090347778674142861863816666235346340127207004142013273766179050822744084007628498651858518645620264148106425841627296273206613873985561161173310105209780074206958666634211294905852721619848999930557161910270825476170678315449716065123277724738410688218861623979299777225286593355944563669119919171313594045327028534437646810926168135404799008784178753027291911819300789903302262630624651388402001032989563747858822229689744667626196441639737205723598857376041952614323584554260571407674810429119181305852442594604577606372815734148548771524774100733018411762817883140755123131050975370382081571345148733794463544988660061315655593325176862014306377191929080444226053753756250832479181207241063428870987044466610432009185546545511243139908425772197606430647426096257236795054718734474081898563319930928948674800497680931416413081761364763866203552780979024693017478124126008091034280892978352649505014718168982416440830269792617134353317291410722232254851814646573121249438152997592511718012042586482064396697247583698191546664037699028865837216561213893397817863361390952707231936045795309385846581890230388719766482469333046519034530295425063101119109540466393106139450323090602198427316397402222024511334755954219433580592553396805291711811906396143826598644834357789837097881428131659074954223999814093079510995375791827191916171462753820381361789384790904322585555272566673345218145910697109907015713672336603867525550628271519053282624550949937361259202298463490831487211993369499410849253027484647171667824614376617149943211625934478250326691461717667198409361464706083528834782548234890932241807675547515550121097549702093543221947273953819538860277251172713953292483050369741421930674533199566972427055770594765204482088544456428759274090969298966658026350768804923741816234412520987449200639787288179890556446282409811218599633078692781508787623111091901193173669024409638904030632893128729491541813682199216460070635181403087356092351343045977020682237891896807719686016141374279782362040939240849868935579118279557516177141800498063589557622638481511393385654127522931139616903411482338526122911303986431198038116928636765531466182411540636493035220572767222017878770709279590015304217614720029537758586675886535764680950493626720717232533762206316174181906293010652202986153832451128945033480675309851197331073552153215776924347477550188234097301453072892152981364542719998590037048078154851605108483145775366232187986451317942904031934112558460902068876201703338971153070813272813861617907340922644644325958421340101308185609502899024072865732750980457620150352532398095732900878291023808596925035294783867698797934266403908088065834034334626358602985413633426572505279107510732313381067129161822302203374547914404161583160394565632562874850709157134606531905211197079910475414011154108299664785485290113770777721641890723545580167757970638002598302612248745574159393602169685038558061605906501485382823935132178555286403710554143401041032732814735795127194518932229481690704070813146440181521016617580795197710444309846012680149748832289746031955822084705021116971713796430966737644931101399201064614621931986025751171890272449406475883524767520556095206349405173252726626029231423700207052070327273460232965433633858981410972816847377552758761584419816186226251415931082634604315641115625084696669196167716201523301494046735538862611125585064688589426967817012394104086347412315147802197228216808922229893730807416856773139679880045204556388566269948846207511579111288084734281919523614669448707654618815569724059942157377838886852043678352489586121150316530113930930894663611588157078278016967065651045023877212518229565951498029358525768325574994541391698938199165137798161642461163464304301784101353570840434585074401238800794178761207259775563238465807000717424472019740843136350149680381854807877468227641077469166521351451166989409225455572516381580545440794377079992462837834600105362140773927238717756883164488617207686182449340570752461674140904077695814651245270325980981929741479854547223859399015839792419517120942440373479924479633923489053373966770049185153812973325514381222459316029141990286617349643543929277886133024786016191617232665977201341177596641030809059170282445330824814075823288814100538957053747801114025719090881856259381085126701521847207445651584717473516549054253714725951009469494751182395113431306006566259794081393698080906582410115277539546663475570845756625878964956081293148405217663756042663888183118401414818226313331235446004953720405663983816073332295700423051445786018312869092652967693806131519320598031492013930945699315608528326950526888279855502616463102264912181209341566042331841812292775367888105087742353252255124959210063783777107523092380524537560551388266226164601173811187799093862565386876093860851303878128626789294556220997367655197587656576433655182971664935963756721447604491113493098081031687205472923445468499891891965115963765766243418584983731494582907355236268300390545078910986453157612821755665366417194576630975405663378653695865311490584243079826213918244944968931808583584622995276591227450991263344035558789160791674588717587534295100877903312970294723775554721742072202790584188138062293092334118955170348736155257113023428756094222864623301487474216591441439347151757141465117721151725334655877148678584431011472028527874646940839585720461603951894318302145278603901573435928596850850602679545818372149342613884708301909651324434547870875995154067147648382863919635412783903648945979073436654198324298485044664490498519198170252504149620127239613998692061348139686078204458358968135535592341682046284067036001535968354957978646570385694313496334008292201783021171465717820343465143537713569657835852550079150535832721963398050182612781916115793833969684613773398123702549877271044007041671252419928809818135234268499807576408011320355966898554729432130724140182316407821455873492983087276372795329747524985932837323610376113783945817446086386821141807694552049850584071755237627130312123300560261921966108833513445017259023244703731078493106366162430561417723560891907577596241446085882693456324453206681255193495692372994800852878625088117487096843744994225308836281262236149836325778657353091466003993691169344313284803674696528642907500551314844762549623830315996978218906993591967532580475979640639657571765311488808534924094279460836786054029122747827450144837284152366108317810961976618924029297557908581090558177005075419490817787432094598794536205851142989142479001161112047062432388591964959371713398762047259236592364300882951152545020691805544608270229277696591359987980434151946299433304552086777557128398390791251831011108836074419199632825080201168170803128308264151563830020891704527237595666178530181260202040079329219075906247541241733047676497233696981459099504936533972183416173814676000328658604347390506514953307562937193688685958279756429424026045277562266547655027230221228154946046320243782909468192259908204078529346604376070220396274278087937274342920530656533342234805635691291115230539679055124316586365822792517378693870035406271131063398256500624831440026823750950995525194498658824655540835641888482972588112623810544940190122101129356066911605749462273109211913690565328454128762116013534039783135243718392586143642998051236842158251527018644100875448488982088054840549395109092181140509589989481889652933392542357696311519101751300052122272746478217521130534914126309141548106293875707656737289724746831332185064986936265276582637312396022970759487930282228076964771248618428060507678003557089591619804178434718625314298605220765448026195420516714395596243591694603103018825261468171287192281715169847620998225039249812537211629512468440527503377575716259954470705628806857054770842472066268965786770194616444525437918920977894400063363297403422949805921436518552316783055449043463583744529980490137908540938829183200921358888544065709083559564705347642710106447389073091109033712813356718379480851713193061367112547531118676080480541972715928659792846514880049810229826110427807787410003900153630612786718506459340733557621969574017436389531844409410463797991056804073474221365081945658263847170296744892631824434832084836194665541376525381640994891726192945146549288305760416467233108550726758843251408144383369593366884813338925077582220648695022038627735737227169676796818089931336664877566404273807299507913466519603860714987799635359816483546663871446538354127443661375516693026438963278528574896024371171827183092696961336228923138200513111242323190542865408170646724292298789981703318885985131587296971440851976084252283744262139123070473724949091419686054315500027103405556426480600991935958587827826091929002699391545555217988077287562804118818782874711041337833966617505924024593295622632488620688057666175959763020194220794666040584481042981992647547858232795454424515917400643387660893023195772606296183779849858727155904078424132413920051973030742999154676458235563838041013945281517782343865583957037231929882884620168870044417292457008445099132198688194888107910643964505419363479410660980567105562157040814623156293278441753943916420732195100525062582860816568531018699481435831240395591100537476411411148683663784243646801518212177001529263204162998322922905053728240561529088509656643955325391641181349075511071832661115353406687120063451188414904094648061345073055745022150408514667230255168751140241751936155316156677080806930442482252542843136755483778238186689013317744387577556832617118543361588980724163691889359139501180928664085636844751892711960211732675756347379064184818853522073389794830700387813305651532866484187736963872917603081568907589760999150152161138540682086906745234425231915495113120984243291373480655769021817779318436555733416414845088401416516989630065989156466066294744334790371333799655588288562542384594522711108470574767809916921021340252767843744009302637885575150197953420142556922953022814332308558778667391843476087653061276248697558616053118192616844278933806055475153284839432037509140481749652934744758883057287579805673941100937494494650193408845813713837972001819151528093435708208535069647758492851326323285681819167033804686503026045340488279070822667705595658728561598970300385928666373829292478741257849620617086115128470605127123138221551953540211757394687259050676876424092957987162730073995749526977733285835504498891741986570983715979470628204792531890886680438074656634854811808579304597568838376076034555777126582030949598400063723200798813395861434784156147881104058147712896183694576701047160666550345540743468057553587277968309473336304386520846729665043171506466733072304793213598044507649379945242239963346905379159293545158401350673225559187433371010493757498549714977982964513158689904557927819442962704716522175586150052003307373961165343485163066643515395040061801802658318276075501462079106374138289075180819206543777092446282716280863961032993243517659493674858283132473156715694822366337052228830348130522952407994951715146604201854795564908311763235777756422481931832604696352361932174121767954179208258000440966120555889928444627598742278771904901872892047694137952689292129513228358888091328486718750279425973354190381627683308568153558070087322869931429071743835324174977548401283356708864787513450355781857971356183954757047082170623688969937819502195516591776155163617701432928519697396914686718917984841793133961064978310831038146695403464203839361418250871279727286800630793169525769221343775280974538621719729743746562018652776997749065854721495227182277833735597298960582872526500056285203957410860939611954926801747873049007825251874569853475729323706044760942637852356810816990852332664634240824832529858666183093496929825407229902479175080600657536382782678683934534124038694054868859378542882911230898169313921072028458484415579636634013166050962968943942514108334138841556734006020347702469481326437878698029378723112930488282972515072383181312481949757097519629975737946123919675752519916649691951293335068597271000318820379882996401478668778436322329712624042396361088070576381306484018994811806502065533633794649610731003408978019471810864486092887499024411307303098078524313570457392148227632809380243440996359837265618337774147436331156733710277358342041903488460172842329278868391880928118476792922454257683413150134660074585447054496861693850200752702279701921159712758088900408218711063371061882310932717054306026893368026713072486762779862622461782535747438873286079630222925097939466714300885741903821843526108065126523951575072700445385440001280149485562660425505179546467182622396903449879154092382980859589715700978865201310554829477770405686561408546889619363041462939802963281363686598467939206102866136053094779859784528192073491956173430212407713937202077430440230322379592019109409061039256944754401813208276880099180668245433535669164585225857287527404977934011749890140224266558984973836632121328615811693731790829287606218773799304218390689236595880319110491350380817702015825008337944244766880462202558972593848059455297675687074656978750737887456859332784961728948060924629870554336428488931303931668018597616742639275388797879008488555474508234643641765948586260827947404835019979874102381685739644507377881433663199973721611784377981486670922404192613518256912499784307833843336036781277538375840462457354359280057121393600767391368947760360468921382616507106343716676042172983942862581473262010241371867811288229439558632130383880214217402565025691273087261437150824671053057325951504705047942006444356504490333726441704870653611563810282274338978321361710873526668310844440893697507435791397214359022378304106607045352699109426745604039470468179481479931475929890964660417522978365744577623366624196507449722241972016952613214124967755159910101093084168653528878477184825089184696415540803716122103104810457598596863423173044573361778381660389545032990025512176896241351625761428778745774430861034688745969565555979117779817112540920998753872966668150608006663513791502641219479764865201654716257185247310803652549777716211824816868088607980869504210201956090011033591919401893598031318665802857425972697295495854584957327986657124309906421930815448479841602557488992816159893039216031949213985292433183180719844180368301297494850077670264765730271628977047181656042966205512739091585254354393576890621508209652416441129575275962527881121822076057309867428719287783120138143779853846683153654469925528434752897621863400953779907576069853845161839054158273680767800363185811617773525395983492056719679589107009725000272100712464501568679793299769282342148042436925307107955226391386005612143042691197632949570109073597981550965867148751416639161215768976599730149380552803854602899629676748013889021066840865856267090237304700913886124710614279486722018446633052465396255413391367214105921529021590728843408116358760114282859398993272905402305752956161228164040034201717968893877032816889611661313348568612213709761735668552873795049078269118972689640533504280324075276683728140291470015310249078955452802420633185920128947636842533510851855950457623286570643659621222154368167340661209694809199454367418585645154928896222886234256209946092986695775103764733789543727749977109854155435814404712661430570860991901614538766763600432559807303403977601305253537553191487933834678893737986171190434968437925156640718698697923709006767503773489510392802146599415591046047182336866004999323532470594805767997628723417941111097048889759693711069440943913420072929639092797693000966410771935882193583018262906629080908475887359945257699708924314372988820491590985026543094150187647948599141745763987700321798307898418761322072054121977819794145985309326768701384208047514789216191433975358985443558662562179256137537595075323197313412221784791405951423270790060969801220845121412873436073429567484581257564870111862611886747832409206495499453511978073370983367275421691152842160312236537131014181196861391137630829646523245208201656125750341916283457829945364259131418873374025593801027847825122022947722164962274465744601486786413607939447788346490625532439252840714967430705192036611084175945524956467637634656791979465787050059606142110050444305332784607679242238844255238855009519831873613931191323022152464305414480081975578210085620707480035493290797500628161749357483172401538282400818293675879202471058650428855952805344648449650474955401405849283633361020579463790504915538771831205502968884047752673323630093745368471014844795614263391649090670852485116538460720890002360634415851584381096763121064017653344951993484666599537365563443137181063188398673730922774852342535604365363776957658644540131329564305576234308762909793138294981134807185988056095006655760957758822508966604056125437199582538199281727158009338960198047465044202743963100533404358539938874690754736933705032914155147421763008086305022480963794691588080487153850649418842716240384864459649961026056618082191565452229895341226441022520833905121009667886849198655692647023127110384945326517591546224709042542334823478153627482344132511620736561487867764554985686701170314189201632813031578247030071922739017441218502495910092032706984416166882445312626392390770609186466049733461200014568810896236871297974704311634616687177208321104334448037841094671927003925642957131640642781149639403774288433054565625086242917930756690806312684726388926319664590878806537468538253681846469181887492240120186539069316933508335631741332213881986071115403387253771477999286146903622949005112015639030634781774644245278654455868506827667897490872717903501430926207739382120321955900787717260630326862586918338382561252350989385034059625788762497521780028341996393065260212022838353179166088281734438031353118234601525728302019490414465671389348698831192929245041265426633287228272943469543341006166888539036079960782828232639453101853255156709278505161579356461326084214660850722233342842750916176912038028815505626140431087476305929152038512141159536364008973376961737552171981370574195952511540391011363215302902532681068748747046905501767593814331473524885552332844457629209273454621344422823726342573370307726344793085074186737561216913362258968541554387452867250121039861075149980739200130324150084668381015889723121719690780813517024152611235351019907416363693280978020893065003072450690628198920735246334741545597697755615346840553014978220938705013616321446350624463394156772941151730552440598310545301543859000920180100096991924398725065701841295305692853254050442739048155509672753094598264759919030532224515808879256706680755574416398084495478545280472667572600133109873783113631305804855838841342975526450035366069662758322606639756880913220904301005682668548696649786443009291419874930173466107048807737078361521544245483341486667132491151213571518052679430810661114681554507874881321919811080491400714420358242530106268391381609044613033395742924592966752775344032442147777921274068681801579787651308461821661923473100796241238130582247743932370106140107402937539763137219298373273997312410634521646242053763210034913990339109911555536766267558791544104848020992469682391905555164591176661968261483646102384193285691115034181978499674835992479558833719275671148530868662043318622345320826895252959745128108490805240257809814529710866702205810572699880113057188390150362329961174624677892679691904507135241632961041003269247380499710945690304048154903704817684998476897687883353962109331911486806724692727950901438946214295105567972943779244782080865573325543004628113779414807630879502442821458868615136943791274522588618610616559140085441076786071181476220111958418508661416196828042250008160729995838462440605103435914630729725481491433600457941187452639719710822786322456311980892472858378021454577189865551919475194867604193971582201361177264975230293432619527832797702782294084061695772362784785848867600733174826640424617583329091685636721973109153001196952985511846417444663153755048827298569200677200151024192299362844163073734469658343980177613296614676414580132220339341003950387990096450868239566479306103650262046606586229362665492243644660119086834523891872110964995725645643022120441743794255258446595564098742040384923686102809542891264066716624120286333808187970253155600957755859089009059075958381382787262103788811826638886764970744707671159478650732508403406835490016658825179640801810954458934610006234697150324436815475505623527003067382144143422976780785203807479644109566729114470203435432159134427461943169093599506573992170377889250796377889072242841219425467457315209713632898205191638574863265017886816153158315048188987678935546853591906469246245499003826122235189423975593512694858181369081487867616934559207157402508274472291901623201531696592596437597526438622568116948664907045510373613161202477112752428517420087548749012795956476732226849964317263597495263116116413549167946163021991405070964743650283084372538000039907693377648695939631168655864635763594027785691322684951344872652221809782343468096333032264819546089009139867736462652011746901999464974816686629862928698052581104476137341344545216453206191520072887247625390733828997055844495669419751675009771512630380879844662466698642046360028370879681360336973348212433694750416282276761280253306471931880897767257711046194860326581882872506210189382206285131915567259430605725164736359716759654578458196791576649419396034135538066957018165653977439167558267572387588809844668663737249657273894211631598824867526470534259145334234979771703001065695572397090714483607454666261419727728766679129245796083508805303230117781864927017111463343390433781801052904019323112177931958923242512614854774346618179259972233956008799654949627348495547995017536402138859101869077001972924916699554525964050591853226502802574009099217126441890354237745861528785308010315399568283994306803263247528365737368352916612721469868288904717680104001151522989610403735133237451159682843567905291601043635755171626714866090941406006857538676971260934902071883348381431109145788702115350022638344428270268474000234477703418127268711822578643096500775180676831419601480124861839513162934856545466982007554003103303778660346890993435670232107788725984162776225447122652742542778166368031292004543162659527468495885216066424247751429604462136650497589068796196711696741633592985128683398995854624625617113648180012646353076281111967779689682566058675257959400818842295239485231256832357079507952533985346176260085415841635146281616962363237886932807131289960356702129333002602039539957885040070154397693875765632277467932185184660794707947033927163152968214562893240679917151381107034956258479013773889989168839613649310407267325895836515607828534016120300723412196369740333352367361211958066558610386463850999289439815740975997125312366963104232382934247406140721939318078973706161402410934696892520532506295915250700605713899301601416061911646390297975475727939510296336940386518608495798861363799945966043756051455260440438627200060169349956975211976045651780981353396264400552352828778752939104466786276635184165347000452742643671929262415391478329412400360472794667040215042994805446341267373879761862886537817699284529575505797111148976265088276539299667379662290316196435574729429028663398592737438487627195244670674581698923731996052722259822915856111626226012448738280705103126820552660813623732479971468368577998663273827586128324798595640843281007304824678674542106428010051051657211266670182496907638210066735976115016674419889339871575041672739795609392569399967008254780016309949463912507435400394086337098151358440672574963952911482391802919458680146293588086562411718940223405142486905637949109040167653008881339481661770476721110265033773179497189806026674142049151754784054906917156976592314558074222835717669931768266648828250808967613967296262478972559283377483339188224964216053457309070192462848995135028093332544782766374152894571290894056489850933050675249187244049214790137562801407045479859612156375365845370875597330950088783110513764609983253075566194467693720280672138948700285211945334633656752023422608862052647056370445015559697450223925595026934284858020522004982952010240073337079630238154114068130739924819764047946261502357215944403419842458922153137446503117771913184104482492707721468012630089840560800739556245085846012503402765888507206828469970408610231749842800055353030460631023363766037660540804581526293422083563471309651151956507032491972012699700821177541274995879238168077328444304424050183221080400907668012268828271825351417964337952774044563250143411823821830423382812746766524907713179290772461436547877064611610848059501079068879793277840278941815675401195569994239400439081769423992492208324747761595489143095762498531051596442875443887857378544680622885406551594180210554652477889664411582733364687852228435782033202979502617879497798787221093842585970627557383161765836850112401476050845783490734977583378193592120053293981936180523267039184509620031000158901389695449329441890293922835552668627755534813173776819263165795697808289674825802136257321502113039916574513201445484959501999769152321744665597963338804887205772347910211092739104296853374544352633647226741454588352651476958750385652901230604901799117691835416985100532503166547445916309390669161306693094921613359297606369335188061755119782991495526240460728885537681123947945262881996055778215768373774858088278606228300350029082672443030805518514924625269606864774918363124738955475317176439389900763041587370626520248179360360190844274580471008027856615127762645284127967568382947438065455987560390547688985510935471851982820305416720074337049257423865150130642042292030935519024797269020331002573211461715756647079143650862353114230279455147582123724060021379677533727564921026220694279187132476709340978785820689898667820167113603197997140116381962175591653081349228652691765684058220779546942564552445047900582069137209964873188834616937100678720194825930555608368506138888438903072785407560398824028988083377255662742014922136682400544660895938987819648040522430399728814506101405164110627368920342164482851988080238454236183097355192298951921777356951597978457828561461890301307700747863758386313285097694647316878389246023315145718346585633636776346394882810592604589518096561162297292093698488645716984161335338728405132216908759864527662277904489046311021035954675193344687182636761178187953580072271055961746606163994528457134319385492265377617508204523829234252371178257517377136354038328109955427138728663451751333951668949729378241560337389729115473728503588450924912378096230418394610304206761009561883916011457732625523552766132286678722848494613417208660947300523463944106896137603778233522375471544192635492948027558806585733032439806492310036090451055938788771757269366893365281194573542688088405500067184715040737309576829710537039578771322132796272636226219209476805779479430187648878308617954526799820294621350385013799355248538355328166817767693300983875141116217454457885484688510570855297379454884103009460067484194883144352545148126909729033714417411991666594455524831082815977168672491161091327473694985762575832278774745627863779181272709666339235563967761277211230335838626285866029441031904126546893291860571921673169186562354410643194396680539116912107891928389354884555573923734992993676982226200903626485607668030860031470296080794648287891450810651683932544857224936614698158947241094871615124272441822242027020064660989863258817927013512029647056374250494047590806527395095647390602259544629256858771003570848304616740283102259600275330121390878962234273157067031255722731486951127016822238700665738584955111050008559303017210542053014560475497736843613910040590276606226649600349320979592191185916777967179623221790915632078458584501046525224434698688296143934318510941328190612099956015132865896978950892334049943174626540003354753289282668976886012274867161198430424500083081643339373710093910894032176193341925558440116038962551062487062093371646988721892914492665293732011072402323053792159757773529717901224646101528906776331758427740360201548386400837209203668311340744971709502286058894321575470372141474733076138051854124896485483994432208522198297543305903875525017550410027595098955422066058716484327139074869173918305850935534505135168116713224370742703514720087795359437778546057501132599577085499990082746444823050566365997148537596882216602524469583576975106520516318421590825601412527305818929617799581596389957511820389069960530390254020822421609827710769579899999341604379193123756437137166146094795952616343992313386616361435743635596413927935917697828780110589406834463812429613235967049183577106373965128008210827374925084434211823848919377561529600436286135476734503888138793761249507458027354260760430320010810631684771813891625185538560384428243947677597130186284061163924631079033138366499812245919424719701383379934518931379498458491933128048456889409983376713597973201522050328162237513240140608245900102594558252214973972532399028351402502165183134656499612045416149173473855512232479366519047328716487455152672665480969436026066393700803049574807991088765022093470401901099290056472973904446880909168351144917015234879806424631449636493173926895933980071679193777657021108024835835116367429984814038188767534413005492147422286603121660139339914262184495420844114683086540999907470248273764114975077080874307623076761912028361850725424653009174967204036253911452869462762678154131190169366971314519224189915476496161009110743580268268548664983634976132202856033149792955731717512332414154387636638884473495730031634476905045134961736016656495669785134792889122327613268346619918285506317571556199064951612291807325622306451419988447099623922855793372859989414284376042651204662798020975337973966178861230954868184867727879036781065999088281216477335989696787587896490172944348421407943909761778691456625904491592464184018810471189194015011474498832434515181093630159339875143053555911548521375314247472546529308382073520262505695580482181475077993911275917820011626384062964641706468822780832179415683731486293389284300512360499917222558191510999920742241830525743034741758792619279077536772528321841324958720623556954324671208477875688907065165048264609195218648608985571085010154018287514212137951763306140336789683274852001078109973008775084053518177849928743573621887858061027912974657679332458077738972460156944020964509499808553443660290964586418231409053485855187646807367399173670731522977809526446080827259865559550060386956961397391420388055939606471769942011926486475019262921328495978496482256545472678587349676278921059329562049366771355835304613163091444513568201869768766384511310801332888241516622489207159411855224711284758252504284092642331192343467045063693559206346377245456835364511574256130407243783596136596896417753991511070514828392427931736832004620552882090616748569005736522366628954023983268718470306448434256390147314177498150045087114130868986468636291310270037875943310817415608077298378533755034043658604648942976901036983042550451176693360572409065199302070832423764081582740413736372109385653709971882530475564510801972710808451849647420069924329050062773173606629736212378456217943613798690269090928069151065037650166769930222574849245041754810476945925943038925843589661391817815701155387441800101671570971274030720177236445150836490886120429703007223062504789175594349239205974766966191740939400852814159576245859011578381879891371074787540339992981891525943889637708422141784024985209220631237209124564067512672535779567397525976252861965006648891254528966729052223951256543397298741550800911637287174698066694308306669543306099011733111446658609647293684009521647484633793871622579067614680501360328728310536266138746942635434968987849936317685723689372437087426132205784442698136611174344177973726838131026937133425798285716416100697624443236466085830205360555201096693919233283545553287672647565902302124186099499183243468566140060521348252695625592274793894562464884104064085796356808901014404902668244628185979910557364909742778680159614104031522554462642892577298319493982160209410751063129942957296120670252137821730493226482195642517678469151148366298004619873649626742651153898671651714460734903308202466439286091441195908342652344071304883212912686021825755574031092138319317611626809160536199090507972154931653101200067119858297653712611506190870381443116303572808809386065093163730928842790270701808133185500120048201761192199458729328807319179284483956511982696429851431262853556012584092134288280278071559040207982799056745491530122248743243587575647964829500570100711651170016589529780424508420708582834716638442175086747663143936204991247390183904495115313343555529941923622074513000029156296401423440352947442371470956738778877529736493289870139162752556450624180390414043492008976032886743907393739525964570319437175653883649239782669162940829690334226677087643177064566752969854243512604375202400953430799331922165364645373537622540545773060396641258453293944927795585630183751492733886782835283550664920237243103671376792701778161791190104399228617472071132142079226261259370701072933771592684627991603525259594746658987987841677303092062295857553901283928225527743891816223384044476236795647647167068843728615727342948490901152573265538524131455357137418504229615691428593526286309264852984355749049824831850010239665201996291736831596119358909082932506037320976910233938133508775400756938671457433399690674765704190276013562914303499966823590403861577246281781765632173265571476863432938710769896595541102095587133173894785700972129807873835803417771686726713367882670534151401129885859648924557363046082221886965787823862150018047482876827789359295551439523809503461080069713638630730196935392195596720125100649091593371330873695100117094728048678839818497893221596052174114434159108058730299947364993896663217989471699888443857309446840464891670428745069383314532135171490633987309421707923799437793112196726116429125886941689530302086803093551376812586812805729575630571525237769724368673360429466379193992330729622572976572347570012278829580590155536075380194001938627417201555550726594956175560541018143230895583683094294166244993884494926331183842672559812134057296271029876555420875245611282213540627883247627201692083223486285608928275990183719797682060951226276032170973041069044394857718973206106406885547165988227728677929955539653306415714524325200411135084177703062144916421194167609435534067252057767997777914658959164675939411912409130801606655568739702603704906557112740343690384908595002794131653390218932970513283716738205402531709110392738410887224896208452822318480799139140127008397930179576329207696456138979400245171300653280369757213973184374750477637032720677342116510650464607839899857290584303620370322031159876765070704683107773014662841853391001825411795729127319823202458249339397225075675471331316846636822692870802333293181608194808022913141768513856111068401144680671105607251773055121759199588263369340638359285898627719696660268134789385209747297819345990981760059041781100847526481228686182712962458103984464672084707155916806879738490789114168575484928321131716716700026495550006428359648340559972390707996956596720622399697367935652340618958133442425016190166468908331306313266576481014244171368710328538337848542993038145644211416830102359435763716381684150631226012538404971477593875931544567931216948642335481994002682537643514309072780217660200801025130429538149127474634876854752116325498512827111470684299920113780035582595479723192598406516977072833753642189258557651812352719727336502871306385479524712482789334647309644892062030841553802237590646873078519320888600726402112743527201509940253468384566090451645926595610991266750955654794095480579897984405564762339801603263767680770315075157741471708882185823117129777733876520055572215527526256812969927537766903496023887530276803749058583963585280359215153052271642573275665874890419592113998913243257903271349403503419757511345458779230397863336487439756006646518610316550839198983923275809833042183555861670093614247257642932197820741520997843628489052853066398060904465559938261039668117525494766649399886553025746715193428020387906048717942361614928274923317810309005803867263418163171482929637150394599191951968752378352709529910298970604540764698286449713380969820927609039645038823785159470819759420289466070585389699170540325909756413658904250979213336374183770892073206090421827949125505867777995983070864571937704771334414478159672524055230559878461289878783771191879646733258975074089156069953581579102607803955360673774869926097973745893913915563818183154812180025137018313398129045308113822144731832241974047585165715957291989172401821483184010262188475942270358708739331687899833221883280765996135629028978204589548384947255982506581891896832246140966883002107122022453355063572303651131391780244928313107668813200167323953184059452332385523122183695084987643071455409728562468325343318303062762135644410633658408349373034928786196631495837141886148397759020976886928270479844792035659926636374099719436367814023241618916530618919735222449294357844645846512724481247689407302853410781661070998741414457795165883181575965853790195404568710603536784613766141960811197346375771619790755643418799857782035555419408952688447685859577722384260454087426473669840377502923500050649186258585633250412293305944936692280591481179789740092897557526725860814377404688246590652844542012221893908820420359654027253774782347068463726416908569209915755745356060078256656341530182996574977092303231146000325376551529857793010263919767315760051673473200020378977167581322737920408143951497619415153387051992263732505295637192396198756358323748028464990440004551303598494677912164458699219118463005575136858957938345969744687634023015089440591498463367847550581606385218935539854243460352919156977105412506589650994290209826311959131545781256305603685953378977220059274225679795847259769894971121468021051886656307885485858438731072044200267657813916936435113004289852998786802226431122418214848218142741458527410713762557423889679279270713613394362923680320392744371431890673156105063080621318057662508275732364531432417640091389979849814538346845761233726619027117434751901005891430655015074774649845138864327455784630292575510078766104208709696817516988456667026869906608292608306091690757252848502870487943073723391204521644597350336270622409422638554152314708534946282202321637450129652082365210750864686682095745090452935190639992782169471304277907156170614647085318455410962531409137205013335741550034355324469736993675109108592043865715464435960377773962674053283461426330248845113439456951178499870060594012815058368642357330543262210226759959334331728695106501990551854282747842577577700017004117612234631520020146525492561379345504357752252592415363486739254842719341965831579500716671133518863466032116465604181370981822164761743127527378480480884399329211940006765279184352599931639927791207562404571967965139377177328262890688066978521505183906169545043214190499112863033756460577646499698574632240215925696205599398927939542934057222764003021782712239636017403487464271602929909976465671341089539189247285000649580680806139044277192101787321495271331914334179570168743625190432208947121484807262145031346041924324169881492137085603314775810219139526001564156006979928944150469866565080073213227680363912945807163206759944161783363732577487892751291875735762567018326243047555695194895223014863132448295933184992418159751605282568449461035911482116703538124005160464771050845660965034384861535378743386378574414090504386771119697697502148325355580544536751375229624820362348627584994704327378145803011846358189414455939984078969794124845183232323309593602622134691718970808115640942679437938074186924417651553129758274579121865037601864977053149287183290898530046627642353758513862088294644339486300875466892048669451207688803776861145811223756843277105221396528323304125168179556227800152139760578363012269455928015004910336055453940720314408573710682186343908735406916266596243314976804455882903473525975872333716897701732130042942411501844048270119677012762699835120814116357159603995969769899224740871438420141430323343966381579329434650400651329178361428159089545528791743671464773410332954961115854838463468217325258118141032697142945638849542591627996688822508724704778003749916537502597099719493388898070573748642577633379377889035986056137453315499412860698690236855180458948986238800262999669153196625630415554440537544964827399599276828218602064288482448595473085349139425942335170444574898301986038640747037660818896711048715954412170695507320354547000295371513522748450855339149129975404914382389710800771448089031093997812722953368928061665230277669362542497872151100599879147967505006476967726677986311871781202821330586632784193239841309551592370680898085437676317277108039718959590667572253700939872258677735459640211154283731620542459127005355188141198685917479236866706026608135027607504359867996319119186840189740032571201903780522721692471322267094112530633208616470293826283994293339426332940761989281816657763359349966958823406219114957359134024778136637592212264179410126826488762369092856720519497087725531424172099304251880553033561892826711723398559652279408409249075369172505656671058828437242508265914664867102683902302216560693114201198084155778689086920206288583165906544307658465441751562874539774120645168563166608316001337032343077880392739477215607838854016553981120509336755784678414813625238319019342453386097685801945940254813225279626750569843186240288753227057459861651123246038826271647771282332138254933727623826898377599661705557730374404472716440469845838816592314229011743836145095457578121674463169371597091505080788224646703395265929215710339582509643282510960300214705623868857140750591549693328759756858241370590124357541954284562159387175437596469562768361117881812443132188049888724846438036513790502002882389896144589036952784933676365212117348976241693006789934660987362569711903994655968814888157197696135179105931142433928186564969971187707680945765752105169737958060504545821892340224290256871750272978728377256009533919910565614492781289133184430006105199480552980241068145579323396887510897073071055536395135760934630758613168320600216765746992596740414872076288294775428242686595516095617053066919628364699073906041866500009337322954291703526537484546790647633502989700919524345137611429880458381748412095358283648656955784596048984528261186333593260072025875003744934462660242894730133317170195804319220985589051825085823923287106214828049816938288455578247575208775053200474415551148433499037371556689797901840868811433512480717508834789762233082897799973789947828398800387112846107545959734656124671340429820145694383180614005696919423387526090699072941135523168862593044990435629605277301343193276591873821099747425275603624271682278738561775999631990687638884174918530167545542503579044015568005354003514372213575523277767652807560841478373895143867098172503041677622459071113880795600624728273974711117228745771806583673566413957006059136791271837348251595082941792919952715540859417003724724234766501426077188711952434211541932319626778401850747177549429179420808089785319726251604747786767539246133142884962882195129246851590052368279737486244417469549867311463086162467157038184620910034436588461271336289481449453490163223185102205818851796704226927180067730850296909535793491058888219464886348906760357781663110861045000887260609236600749734230941287255770318569223996568897925808958996971351886660737109972446131513765818690615567225803180689413029255438556865927459579515242395337311427909569355193039996061924995238369516081249053300791321283924761267301350284607586019100884912060717253579584923160491618138238064423385864791580040029657229990646318860275569578988602911426612212133531690280163219557082552466718617728841162372085820394994479696147305693857387402679072078667371861052223068822689126758515104117101717163702049212289467927036669438505526645674588477282256870689550605742812814970698199150632006057191782901764587002971295955662768868034889469020752483207147200368432531014561951042115892452047075168793479101357397465406768749835698471574990437409133943689617653666957171957190573641801374936366423983932153142089511105312594528142999400912857542960576950152722326036840205307479823524492121882672738902412660368374359352914139992765094865238977135605248013565388871292379425097975215642133984320074454860147575900512251460462073304186189990506307549960348706331899732901377360831787295790515551854759799343276304614036039772178879093672092954616189454345548807729578021982831188348354822595813498717536861709649522104074801576637814870796387472953943511303312965156798538933984855343557048128101389316815572732133786779975752619407553279687656195083716446644283287449050599564425830614239447646610367488724666187976607346653160521139941951029003451354727810683478133563021434391874723270241930811978893334493959491694904594831357995668075695589170411533455689570393937039116728378161392022297819974312448178820080957364219907876407264220942036315994820420542173282817992825856248912581831221914196401608419790951865760089498328870650367129794573318520347210105703169162905063080710779094735308969989567479566005007640437955621007488769864095892402861815285946855310542059723169381200617280170885503378835564830385264634050322911461878193996218160896542978039002260054870676715465395929338215860136422028923194208479513419350611287622185916286625086534882494916478238765977385473770635235291700120276009749843740361488864960187727921328747373933801329184181512424083045968322348191759775675444826641461169553643862986924999555678881781788590497518935282495073040408514168008547470172155363985163682730594333334778484212782870045834874460190597263159136039664331231907968084178156540599785706295342018544960089458825480544668504193709666880952856666229072554013586434203905029102822081824590270882803936648558355195874168508909339622334029567025938810033395738917346767264565038948352102741428775028225575743099651548314593599868746006556505074999162322294531798762344665442896711146938054647477739869908369254044519102884030156287601145636633742044694495975632097714419110200922054000729683352473068244092301985323439692882458387235862199355051775645061721512726485182293065860085241331926364165312452229320724286163465271282931818101357790345452933094351516772403189582581825164965893765793066554632604439292715100186232415362855836396952770206442628713069207212068571048889237494258619583540719219510366933868682672272754194854363132887117071620342408571437556374773801255507488893034717153785282593516154317512578304692474657024232101138127061528320835009842584108204527759520604922865060137569870457713089140558554488348491049813073647344076348000099995693613703302244812156443188765962915807601882531866004063889851566878566231802893818084831690183852637486600387656558820811174687868983287753738413169802725898042157708919172034044772374266633646232634173107966348638625042759953456017431944184345068412389564694646356268500207569947370892145258802980089656922538404025493075731849517106246274272667655967920103034878559729811323792437718528790668600350265758141103039198495717927624999136839350403752488789143330108831229777730595415365846731465075991801626197183171154247804165088442718659884696727505264239593251323044466316903180911259656331247455596762603907673163764769554638031675640353467250640647684802093103038625606004799062896458228508285509065025263402812834868648256451906909929129246475686717325762815121935627556760832237783153542454086497686343964797636346975755086634879651664768600266367733280359392526690801692777541289577373966084856585372957543876220533818013804019508755344710195407213309471149182109872575662946223894714824975348622954245784394927277094001242766391280986464826468110113477221509735110977170699605279996225805036225029946357959385142790812014840561689496147333265032820838744068792316934646139066522120723199071475518258901164418973778973712659161753271536367463381971340414626192234955290399046258130500919714697956736396329436664824235936747520679905361690064530140744366704401817005414274770232780471864768894642327141592633719028826226382555589259877371547334958125879027685029652496588916611147619318581499424571407242100369797906472939019734687315360236462791513489666954593153373452617115003215390776039250836429501719081841561335108685268975552472663999414919339969821985333519667234061414392914551667838267314238048167999102677509376754069292390467048068463930505959542942660649787768399376104932931947204345368921225517411882728360337026303306241513804665424614208313462850236068293260901588223365969861627828299275959744174063644711269296618554522334406686375770816009804010867509043176044948386734976929056571673912632854130456748149385573268518881607175762554905130059041334986190581202035245466417417317659760860936793979686012949495080355210120015176955572364472021341436973046910034921942361389999213522234553847613136444889059042031442366911612982006391119865095396349317352423124828821922158359304522824692829946587012065124328746106167253939148208561402508626648699749099755214457570541851539109513740530750687433963474754969067126093306716515780184980732895058461829328339008468072595712111256509327716488556626681816391516663541125136169805400257955397886778602144381973114296725514494152882229127425040417337716442759080083427606768919709985362827863088733995569139467580103006234626675271632757058221212930375799645883514402738413235073238245349207705795028202281071823685952885827971575607082914921426907146414254499144574509123356690067526861535140684415530142034300913729567933614613701636542395075372610356514783774846603485595063636120373158227039602812434232349845319942317801757445785109292233440953182011794538990629711197047931585130119220451987388821087390330868437567484440432278247732916434575484578984473852960349223856196668568292142116114878540829005090344166732832861054480755887520029047051513543311884064249727077624100602783291645071624712694263508684943902769921677767674830605272882780231574328533154776862856199388923481900421218368368559032054215031500854425637584512786486037901362590566602087284329328213889865003014597689388886846325607294688896717353692104844470688038004518990872112330724704172452949649929438039805630858656140021896797466041063088115195158573792637232787757940595232793543558946700144115320743349078743781103082387690481919292036195888936549367732716470431026603237502726870087738917440828436259826718567598442234407795469089359688869708766997468496327165017189713268349939924184455975603409622902171373236700358819561251326159322921595723572755776432158794426587309763283226528468643935971468512441909686926385051246838590362587665588982552372458470027098276914629074966328286001775638667771797935728382920600048351695628117626540437776916782930831262544938376907635863828302172678008360102550178235131483125102108917280789458322609921677449569781301776884628772264692929346041879649195268858955018945231980856859593112936537174967593925706218798534066425966133054945244063716339259806407503899595485942380723447877411060385727137876413342301404501027403968873311822107484995521274957932923859160327749809792249045775877131612975369419405899970830541968466281013649728816404657007888468767087313699177605266712799376204880422246890222980027317410018032754903602199359031742920607512837570981563936611721341186967821438436193000039271539630152103625484982033577433369442035728392989926422771876271371620757964757898192751425143789838791256429623525255757816018978872852005341482243558084376261407444296996187744232690308489462693983381921125354850088379640201624880707895810545639132331355794044787358679340032840299510022293146125013131589765943648876639355862007366877674417295696863011615477354783371548667679265179612855938297183513494593284896177197215039403217542052405610465480060055746739078366488981506861789573165740994403859010950465154856969324947072785418588800871250815438323522146059027191601494681221022971235764090610951590068344958273462236772554645068302829497480512407918346713208148951821921810371257694532597995807476120785294930963873880347919929393091236084544289939286563626836308859152796014194084100148812454560941577809394005615060578666753291428259924836056106966579800055448226385933382977960832451182196371187037414994136089842453845132542792238393464948134572678648997265748949799361717891570147887081361176931205691983475824985515538832936610387601138907305010542122205651410785473667551425472624382569706173971436252577355436728712347533151080285385966808516336384475385760912974360460577538638683169089993734996814726587672961853525822727625775160979332074472294964037523334109113852709012474686750033172287377053569195255942225110432186970329539250893664714155290001460149721221686427167942354457734332973644489069070916859021355853911475315138531858129825261403562037945176392075143186229918199668653481170944606316070723528385566118548479108614537352247775093388335776092397028644757564953876152389947716303249428036424794840088633696830087241353753967451077018939264131760814193271523998427338634274181515135383293981361485839878008038367426932024772376431393705802758953910879135174560936588394449971080599624760716016923577767444105332076956338367067591241064850355064300060237471867601018990341227148742249081634174025304686498201049138195141152146886736880072703333983246213592950038805984679012228846931475237630170851778573108173361036221067640335314598744890707551640538672062229617508198221189784383286884377019271831023520521407266967608071169853929578546542112136676405225962234882820811942136411417671475318452426525442515320011594108058861327422683669228621949368326753701060844291403844842312705447840774121446378753140098127215580240874286712783025976246139373276460585450514362575134920817586171946930483743899617782035631216784109063105623139907158643076026799681385542992128526416564892444651750960710868289924555096062962186807545942445825513993681167605897760256669780187205232833375553999819332963032658769046101890397667685578253328794913791639708002528040049916193935060322289864969042877185045784688702846565589755678835551989774395874882065893630552769323389630520378241822310460128260269619235661842132316473451937875856538365616736033845748878263165375706284868522115865751903014224118044488607807730213167016138190695464273835098482143232289478948893027239079261526122319044003393541714248592273322202463154511680560126669030233677996917524739160184732422736731729195186688734244524555425849296536346945488447961687555408575598500772314510276789094065515647701392569667404523732160816918719324552184781053041460342650137139168443322314008671140217435950960604525172091868695402558169630326379314210189920683830968693394381198861629010887541847076618421864310268031124229663139974708495922943013753152579718352575798842214179340062550291160394858731668690486798268563663289190799525718689308174674515214845171145229659757116073986742288845976009638420371539309488397224348810277753381161234697726678347255594090345777660708651547684077091620279429041053239821193285657229818181631328777490484097096351360287432762454887983596642416125806820823429849125021965478952999667884067236131370700086855750714655729838186404855831681040578678550905946061345331122581356656614789413507026586748470309947327449766681582198877302586645087237098998523960930780881121148152117594816081667508744268089171518882564033160144919327471848962798831120351956361428266813508426716209096645773272837153313167793095826329608964676963156234917490696105392188373562639788684680458850189622814098932695794784923887949064712199819126505782377485083975877177941616209172592763117082391625882617610689388646730366423322528990596358182397750435642749385365089719699130997187250448959818350181244516984464835796408947083815531463786194885427819832394766648469038356923164485289030912715613386657778027866671149474401526824972395396120225427594642989271409493127100392696917236049166055004613492060192739294591471937472545982164618588991523576802989899827983989218992527348605352809934910166785263246431012873446257832434634289271690138429044967083002322656018789141460586358467245623684461775389109991441391715904321466938793967500633440354674727454452614354091156050096992374020934393627482351375563339255882184835698569993583655526025631086042050358322753589159826326018370759550196784133181458368995285218157655502024133754871214769163637296035784880431144829856360680594083401535018018515646692155633931785226043784154999434103323767658846626847042849132622252974520681844097909361984230812022873834525742020382520233191363182067129057257262374033280359991657345196075813013487502007779643818423569887925132647784491251338738132719805045864854408963565462459955809997079961341326970430050556219086497302543537981875163516476426924493321264334573934527610238272761585965175040695809712899038356480636943310177760713206132549906245479075655657471849778752832689320088616408623151986984706215439017225689174083380453745141015118141037825729302972875429283343667450076298415000023014757875403571791473483502549753267646327273399494877968349665490644030212568454031311741923493121717122225253406790491755936106200198067703040837593869579411921491671926240086792279663978374027307284013444392006205565724152325976989683402963299876062465686567151937875375671904449301042811367324832032348188393007823395883597807876020182157037123353405247425639645893718454879117997333826425444194535113104999056482865045342775829346429338709414630807929280329757475956927557494390278760464438997006822362546560418744973882325567706482653201609263771585393575578306008853305881145474628529733401803783557801350371034900354612352794111298853629993031467114570396631164992580243285181903711729047625070440427298362242324701468164702660115635351072578342266883535944185761122346928113964661686781536965582081957178527656238801628076756368339342223607435456551271477968376227649007222941548210914862955753972376384442194440789263895676888135144062361822029021261657056858848359241558235238967684620580598975218796164253042564095216625400867604163020869630456100102915481443610309650358380225662995269950918841556396430166047179444670069905813750029375736012821315298039826193627849845462079557663262906317415962424330833066395276355188274046209483458594633157137345542268975977249671516279400565375350486801343325175221222880463186433173861904348889786437241963131138029015362969005448550268294090651567009620594713166207044823695438899365930422141632156879455971089572080079006776786139567988733363412613372635049367631954425948337420241181280612894023930165898748010460947847352029293120742881115068615725651378381520890800441193481892015855354649619286744219599030984431888973786764345655951472970348461283489162420570528169232735612498207461542200649888459548462014218463956945515246571237818611436063631201565248922027296403020920929604226072693332640320159850477009275028232136066112823569364683570523104409782705238236273608683953517699590511944415590161515453714701242090751940788010272949776773436900284081224781560322793923715112897108791670061038057952446236436431965255436392873302024939526790340888192803585959719945326508515697014455330648124895274410896295171427650951113673534714783409908227946334835991082373098020795899283628837690533846948674410990490224392913020909046858225104858484978925384882074279410461212456845545628229900269484162239307170798407367927735934780037128241608301976764445888745227335128665116629189890336762792394426487703647175870763111826808232252807423210610830349321374730092548005557261364407440895916958434627805727729438973711724940863265184149584722608575809276313326248262644910874400005715246379137702005482058965231685794605382136415794077905844341991775929357266472770695893123872242314409668306293028662583974524907704342750403072006616161645960899115644237562340785149289928073295191744426065013560010403883829496737197473825269462817674269032200157044763279626182158199857738641011917112907392975355905106535398353914328348796377393284728144477065673201639233505740375221736813578797105605270231209871070785754562570053442975607187875714300274351779083223160404295443848696749773917144355725256861247717419523657833290247280352143329863108499701445640214488095436652663193550521860440542152101725607516048922125769178529647511384893285641825685953320900470015733246688488362692176420908478340164266408295144622456482040706027703544231263171160926742772484056882640533099771010430433124625304079467898690287784549828847317407115720333117973349971027275067153959683895888347779907912831909783978297813331580194698640391582185896304799830205386168316071517546072402443350447684204362771471388236886132413649156176801740266307452437045913061410524280230074047672475600671193315821352562427529321198230427766699860830059333536038726622383161352821187642119234090341269505815084752144730289910532985170724946871389892176466359018354439307341594869456162888693555693748819576495247738646069601720271250520237655636840728453334962839956958766535081647199801360799280166521363615820178276933361413906770170338282222106012631413652885386246591818476322660104581249577984154515773511316004838462175347446524116248410453992529294040570759793713094168634279215054856110957192268371587117580359155185152477379347408845920275779436267270928810777467981463585335232907632553303044543292344187905037237054369575957475564177856046763847444544394152746739292999611892891352447180274069841135325414593707967498958831152119228873702107849853997316072256242041604813929063685809720360368317863255389721991032074111977302320778472874605753145361290033218027709272692454244546177620801909724925074214016932396236466574068602428026763188069545595081698551410589633921277909824574279839543130404427023450855591374494371567042735591968914325872785358650327775220452805496410271150527152509873728163249207455668940532782406846428906825169347165215713826281818309198661698641126124858718089433459951494026198285676971484671592739546284784057280369943121276925353352512559642039649296835102209358748519324248429721169593588769702106406042892031429836192401339311986060346539576911736755416827095990797758801679607394693299422692045278368160722287710595686985828855796841288824243596677260330898732576414701261594087839281789880302348637489033089860568212617812777735788312806832277708162965405465859575724710070840943656570796000477571405459089002575011341013209520305077727918394682124041443233100265383054171029440549562884951166280508028244244711379596660260142731154271388092471638565081361415351349681592225760325874744087227241586340419093779152040438191175996002847443492133736983164179304260680266950924939230198893885821125718332673016297447954214052106589903428155855369116727246475728106438342288543683723636313340669029271703628246012735428486010361199697337226567687440297979879465164885018820504329197748819488425189072498713309362367396855961716226869331723630759386106980685565526249951709641095591890288428381688663686612529315145617467087889288745607156675635096104149297720330177517769165993460796493754265540587686472916940188850963046925411596712238958552233208360768127063432923790023729750898534966455447043065549879424654884769192478243938263959642426264621498087498563312427500501375894759043511867835012758350119912948703605053820581057328777405386357894616688946272371282772983974172244841859405765299297240610908189235375122315587705356176318147400110300289287076262633092756581265481449614840689373555694351011900255582653940578155574175514239102334671585500440724662379536534741052513107751857804892503962269649397336651945313095865878038127574629298157383658968120653960641920404873743916260558371111030159091524251953965911087201816018648534701292213389060468662166068625502563211120552423992429742608736978420742180671069431234969548451165139554857467067507976591858214954996375943542691371765757212415578693755969281901573210164139605478166383158258112742710966274420634813049372659872169521164330948437071680500025518531027072799155088859120578053829029686783613479446883901322773533859287276373980648911984752532911610683581526012564803733739051890168782795009879189179144381992911664112432760087720347667199174774749638240450374497216899543695682854307826508220628031058999483063451881079775303806902238445507965190401423660937179712204989389728668744390095037735304225038060392929673843106927884116232700740731042857112697166130736665691890435813508114838975178309389494636751524471418439814989195810143051378342385238772600597649867627939755361130311676561261477693760529691659810255886093117806512842174706875956746195980676255027948263510746762181564211742417439661287917720573254879680228512372793633419015351285308297627009916127943336125770686282531729973851114095024576702387268690780342940004890849717297052272176159614797041319719023876307607224617347167608017613197006461127432442053502177230534048399201957266668655519264914916052170607201895612354896436988524679723510558524740258433717687137260627761356965049734958112390664145469053445065622898593286921695723721653014650498646795905519902440544067399240465394282221911526086988411070221614547013580317150397207593041123579690160931930212122541530154292958173209917178345583618280525708561150590252504044156395584668805753196002844553620521057730722132176472321525679245457682199029599877185220459170410794116958376071267016008735391628559651552591925368086205991066239950927300632251170413873338334013132759145317637741317731910448986495950988201759902683928038955953795672042979872792935496121342686287291022915810240995428412502570037619968393690162606368857815675505396538902478367071648991977437994052633429812901548890149809302065792011144965929791396555136838092996504112697637904238812162722416393105282849984492554876008734381617102750350672712148186304749391334940249990032821723681344771479572697608026982539835498205968437570410195234393039912128345390047096496960170796679344121074529447968212094921091037047905502315605183930731093513065227886923603277280718636851321303895009640203946581117622092922224709299981261291677688060136723412136493288361702474104213913248801669410548936725820127563072521793081036867538004016622799907422346498224501430588817150314565198335964014807435106815230086520296659293328872127435085999722879767060599935319193199364060455882270681105973354235566201260622931420808304974591837405741384921819435605022255750005386056891116221406125952645774853876900826609604179389076021011986920939456570997835180810788016170758337170660718420841736288951802607905312341679136352478627805555238028928400935149572162926042397902538597305331369185604228112878180663529336026735294851123986918520882220190403746531103942060428837017682735797906444394576198377328267041952990518425989545328603822462073570504572804536627004582077336658095228068280117408262555111641268527314984086429861714437827187492541579993098455498329868175091145728687185414736040149889461746621995388358237539634917123485244482959700849534821798330966984545909274163702712775099516881363224476072068133375641501607486936936891363279977986510951180042350374753577244155652631115139835147336127767654968437082275295494731817789727211598161267717452932337792235887176697429727338450791130618179845552210869375734130386212028566601308211563856033551833626167865641708075799861734295848764201663848065573234614528993680624017604405766811587390248544816382428856616053784627783021357630287968241504655464526013533189758041401772308344400952508483697004162675941650694716672110820720154343325295533779558347913700425385363481459240766795595385765522717548126810151593568554259737062732988465818960099640126770152248766317054623446583940409338972321390357043329155124145556484560271277020132872553064746060266755638123723144174611180597838613508438023970846173213169403692778140096971775243802630206203665165969277644497592084709909600859500655399487474143093428689611527559404663415463287534651963023164028444498658772811837561860456761038752954943078051821795807937193890840811121909534762040375557279459955497433540236269258069096418521696629868913354140996601576492529315180881451133188747028871611042638803060205937903760426271043276224708366970785770839865445507284201461754790301370499825921403893033274053735354400972855338025408342545976495948811298709397280024176249899789927226337976126757570956972015101360109847109876763908021719974123350513410821493259783376950586110868199656692082096243926687979227448012428831525871917201226630588335756599900816972642452154477331460065169003844648026759218430871053006521141731526330399857208744577851551958207467238141402466097276591358719835498004841793220307455330575861840223844553169796500419117179918352965402807223411358752836676748916493653958506857074453742463087744866655968196533605378245532073553530970919691752561852192471851274878137849796909151074922146267793710878316645317577256943302772528061468988769060862599987308200565912254478986362681859251939409189141885833735429582514492096848147377722990288665384060809400323930960456048836296434358336896504016725840020964633959013350962652397944890195777229982329879419657939812629153000245205266767596427226787008500522657826496421597190409356040459528235566861377244867562539645511252020812026080775508088407553805356624486189929342907289367863826770677613979379610074738702182397240941795982636596919000601935180019127453315224480042326428029235894690849907644351935011457777560178970897018855337641900637311978249508075184206728986619606133104675594429199668456735304057579493151190346133907821340225296968773992636269364475040378565058779974208313733452753529774851666073807345154719469167950206001568448596341796600354436841187223185526791356434196652966156381775321742445752973511440972735194825897563717794816907869853882109829436852320083151510912556566909523211804263886541474740970616880407368824211529313692077160305085777262147240236694736990028686090896161526073138309923436812079791723940678254147552345523063754515232446930291396026849356405396380611122913487792767442341018490026132534812277106120663925628929963427410712658828735773742149626131525656575668656452970578286390826708940929684097845302355090969053557986580252405529417550001729120223589651064340979352596241811113302230857295282863314558934437075661360927912720843503451487865560242921689050418510247692543341269783697911585850625268122643802154921808223182152732839452618063840129149059039072795603494739136566860924840249618791782597266579093955998715715253546432152467119177729058469389893615661046980193355524281132041280301981390871744322528527370912096038678858380168211199621585541846298508046966905549747056764277361198125349607702231042141551481174660677041909822021338077562719882541551656166467817455711291140709686374838747378496209085541003345265676805390786590207539588121367060333952858329881407788605723726485445449413079667837952442724242938069342169642795653060568806382427235462309725097028774124004938774816065937678511960996354008270806042115844661313090524086355845882645659304898217955429425154467142669147279997258353634042142777025632808660807877240787102652287393511920768213836093516530000113138647999492097816135395276741675216927730927241213816425137944692317437712290728330734700095962438677395395665229599597764318519988226902267819334588595712163489133715637318571349096852511658018976246003632697847617787772501981064939331988052601854903284615589772233753277997445478304737317556854895966401547798109409051762685740879547613280474869331149977328159877061650158764110299746607195362569813115278815798182200661436804035395098446584205794258365829317996710143225499908736820403473328132067262982747168917937131900559030419311115927359246901788962771145400151361106329004551160343812390599330859858510961650007350446893393479746401867882096936447868410830228449454314606506478731401218979663531397266033274817293032005954085381944128675294440166549243625515563754155191335434279855646253752184508559015427830178228697599968364107930973205862867572363338566529951358115854142892931541556835353066567210720017983658118901225950018370015171854790274701174340968995573722828140317707185105672060132368902296475953069989987534399661722854307786765593864021488850136917725671101323835458248692843434366699500102511723913073649841356805147882811529128762288814656106313787142852299896671395853791692080019236916384032548740541082370391337955813811868054200636184857816141134664824368761305672828006746017126610138095691287128886532897078555316954292311117341082068661228699361085620580586989621817126898614321163366890747141998985284387180782120223003321229708282529690758942480469683986533322469537853103217200853441593531243339756324347937651562659667374185316195133588214505610144082828278277148340873404475204432111727910490373597998271693770190895061681044222030174922167582344126582984085327290976256061318941780521642753247477127479711521642170127055033392420791334441337979389859114041990726948311555873809408415185817043352088539396397315629735985850561330879305794974470192231400089381806691367974243275386352657226700322375836575883624051260726836145995254296288364378008827120339272018561140239901277505999341130028970933580938164659106278112711981949022173475256944414316655939047045979227975907271354278393645905555234846687709750822545603493244240336233698891533316368042516922101189209385791921325005087672751300806706518010107802323962415009017921884078881954292746887820995338685101389736986293633042392199354038037663041826126129142281457248831104911168235024582158032058121689079135991938684530125471407604425831293834428245025587188063393406279055439626594302385454421449567056448726043404358342908004458220436563753878946920010865185109557086702663661019419964596196647195427037047087817376652629362747578974493503235225678207374792702112486927649550340999092203440242363207273829697876937329645553501063479606077860673108152489706749462894904429657629093842892194009361039657652058082112980120383925580117361211374157019473723187420712048802806711095438110040745223339072997006748445026502114060465857534082801942459495944027176989792365055416926459616637078531594493991730462498640110284979056233704805915160050301377318092898242318904195949021083030600162057116586683106214396616973982767523812602750869528549393095166667458867606761696472644958789614718935034054624003357498305334901951452632650710332270155581857047238482681841857148654097981133406160527886853963384755787946811791373587126144957974147119404583232807720380768354730160685196046657264763846264507579733377491956324978847176533104308490726606807722049812410497459790390156604952752962731948347391783623202666790454064704570841996491170167127955015349765632727062756704910573547295438008846556273821442246310088450441291061309115636282080716104308673312753424953046018347930298056145131840186674605499710183285562903407692331379900465517955197214375609590246123959357655063165168645627744356168171993757232476266348592014705232381942469780854248368031011548566603573986776300958442609542766528841019475951424527323466694741033752071953134159323532566434295961452178482154740441442251414882153490420257206176421525626107100119359415363209841118294892941250127048312546619296435799983823032451759328510368291779834765236510432790993781032874420309615491093967361158120096586359775123534417106855017595453788214207966110624822549766012690810825914670057370786595751594589056658543563019535522283187262717196280429368991652457977072675398701086660300007682580542917138617303645544539525190921858042425527978448797525845745504212544928257953985898493330579041809480316609309755604426741072440305553314801234517404074308728042762354485612231362359091899241584959824509524456607765405413765501312105360696753635531157351504325611791771187379416251552713494773194525183670833120382510882560369580810715139264721755281752771334811931768378637918832342914103341253678815607092030061153301024918208978925155731485697806861920984868859001077256729366066998221583556917021626997820622171863274856991815903466494617610106761633863529840085017197181078763288098303519361687604033760605167051268788416980629394720373559131288131722360686334818972292099266629320496122179940483328104947100976538861081271259669947346197911338387645687660029195583100779556554560422186379977133606429225542457460094417401854052060596269444937855719740252568753082078913859008203434028172180809847866955089253117643480956557055912039672916827351598504375462149223847450208224297613364319091930424526178838407989287243791405924127349950903987203453960193158869564822678914518480988356975801171542125152000972150629153123229096078101562637516560107227408246986779992772933345769218521549105339619687423793100437761222167664087658528562961021450108940162945962306209247129300221126858150344948795185073184690095191904233806724383922812499066254404252378961238158039863059900884032522995801724462303197379872729614225756198434057030392492417170852956614659176779929806492205218755828191105121005256197118980944398236223423904054495693022646761562164819511993979707697464589027435584279523196459334577999650914693190414367756812007885139030069759229462857332355849574717204632610989374177755660982802728586342070683739335949298405639577734905488111049576528116020912098154152129457147440195936776195817365554431517537985787664958476619872392051604991580113291643917251598822529884499806529861174185392503643718951023960398712409599961012503586665474771901626008755388701957206279297931472165120957775646812946584238827189199551465575557237852971745459779577210772640461802852796523892695856408883751240110230143670868278010679685938885198517143205881803861318677783842525302969127366608151541456369500262592124246265165306004908241716933531310253221035518997270465409417706818941708500141688238149191897194021445968368761313871873122501115749770833491604672977008533532516626471677004688790931179879646841435615042359084762622786260209348128079832129542074703627771434619515041034709719065187386442528635196459761505186902260769921530822542892917328763765489750960458726447860533447743550278715605662923057981738938339180876461183754210797668882451028984519936976998545832340896227742858674744256410001349390499959058059405358714176097048685549057689334815806356530441056010527278593892073323434732155060080993370807521164316558981738965593331824909209497815749495265524447331465478634612390403433939315624626271337591099729946297477181134353273105477453307793398278844306465338548474263117780901685730466527769709719682320280854032288989830700830414676382607850387848766026550936327919241938863998540914154200715957157625562333403790710840064576178552138957832300703106132983208970940263418342887265137822560904817842109406012976000712680618871447961045152393466165602550195892969282244812359837215919583296633991399863555474009990876596388382788256968466514103709166800736237178199750435007173748595378619762063988291832577075549280835158726296897618263258346594391558415465614854675820017018323496174599134546731853262110989493691942791414284352834860526009802926216937304205431416984545394333893912120820547753328076203433631944246468257041091521868320085957621586914288481575203648173557536687439638249227205333715019707541587478873646401654505082093072908305729545925649650196993064862487858293169959591053984774546294567196119220813876495815469018076102918058950246992884332549884746695022882499772333838701361365379599237739919967526066429972925397598476830197340866750068993146427941068033937392025716008830084070827187002372604674077518779956942531542390409033098261316803354374298535304856025561533126169450685373523246859315576280343854748339436569235571998874233934457556029050771287962508043027182678486866102023738463009646118628046309499037579725023070641284502285171478438396458708600826398607789166325007549014469871622954042578117452254879831947923295774183870217632049596188690787521206602138771640000789021094047408164808614028853605566344317001677515791417703837323512035677429383230183034056384748485723110283631551764636393385984519563122574459209311930575518660836618736609531235357498572168290522370767167537337879581975999611691138933786429416003787586692721012445483085670357151528853547674877228513502445674286209729993942436135565767609316370795893742992217204891472373426321111333625903440636313253384707060193312147781843956790301529007941637871695625727664750785057202461170590170543676044715103278333885921246520336140098533802325750157260440145662546470443032883798810425203453857190659932421618634425732356637530341430363359798425261686318253972994217749531480037788118641140974434613983840305959368693037081854962004996327345497444831167318268354993081603048657182524459156661090732004748756587868454507297355716771284707827498253418770425423217490373071187005912711677730502835849377743367836739040700931073252754676769594250406445200569056750719032626557560023933494554716624711132685733817628969756871229227197925526675758121794046478943543120283759777511858642498685475311106152069547353147219068725937579113823553716541969261720212490251726864429119748393614285916755844831053840018534242560630834456379956543565177645627642352227953631545596813010752174229294557054665917266409683999830512679763315132179785929914186015758074643024055003129038828214132774218667689920635675202099294965209861161451626789628207995094754937657583806605567055413500837389384899069154546403243778131718921414564606310256512652437157353640555152418502404141814172334040688511974299779122682935338409707289402078854065762409532972366207463447129169799504425973258614929228146154292592649855342474377032273308246575696601012904644005957099520212901193198551841320643888239310101936048411070730497681813914065820946688041798804770373243483849057725545033210292022340725495156743332815361298524729683344415712020236280577924990904066878408851702972371331419674082572789993794319544965392116169286691290132908642548018318514422090404808985442599797145962967409948809621156814194198461874390342445181751708563862732209048746616894809516915549561065683640321479826581274139270747847076657731014874319376892659336259749506995516591982860600183378289572408659440260843245352843887139489854280953385588866194464133283944534988322482282699698513408095876962930944730189106778627286536095350338962332069449664335287476037481930392072167955377589617875712622270441034559735140786414550374597844572106655250912734430386527683214831347456921817881474819070304237335076756489797302999890821068401777186683460594388269746860749962034868466933491355274422658919040480761661650610892401679194047551134240699088171531918356060222508753561007728977147329890881005241203994158911077309120197575578599878454856465883244201022877535357121313512387888472963092428133847036653222884669721911951637884373025422212591879484519088236381067852480206055996043978975236047406832636016890376613669258284165473437709966097978914737963744136137350313501524990908005453899801213356614608462941717679911743909423666324801449601936868257728895723563148844879780245757838249919944527029429214694103510227828009638133797019715616296275696495138643118517216475129459654513334684411532213495272723847859404897012365286727889308999084354350726181228942007838867705214653621709715312682706979560212763611147304418461802765401203557585255445519587246767012233176402430876626332775658220392190804151956326547628397185222334469628034088194106002951815883456824837234446904537684217095058541645556389335752182797868909467727096156770316036356175757661115110982530402244253745465102498580324866857786316816205494312597392934216206522803489065915062314351319008857150239315038216340031215470706438206287484516445626212944034302417581091750056362446644868948791077203894817612441333036552916365622387450551934417012399708848613970876818225662590584704580277355438560830879991824598321946493226760805566105054568128311890695629886331555206006030385286443057814752988430024185355047685061058075205650875836378457829680578567963581362250397679749138183379073182413715166152083163438146698761971309277899371303517561759832522536684430773606586354645807651041409287528307967318273867346528491194025487192871944049723899728871989413107648708997836778851256244182175786309337783625048973818365262339606293353210106832217732407223217052176726599162683805903664404362163368509107483064614270915825501474407687056983630567549912828313793765244180235614459898486685082375300970157671081075599882122500741357467383164558040567148975173854809311518153369419087295740514561303824402421887484058390202481918234758820035992471455826087062682019533629471298971378287431482649527549303305765350353246245636547695868521474956389523970393143900220023301555453690185455615582959931132764867587788945216372414099126720641262845036239514143612196302066062934696176458257275228267609242040017139727171326181510327193655935541924085674128709631105011142829685895072403327574878357718195235961349774137308584591745695508015650378287274403107955318179813182069215020490895357544161047185785769162251804501732783436633228803534405490093855497009458824208603006543060111156457553977253420699629078619126100145722899481080670486972734992961547416287251920999901530476830265973304466970153021194792592799658777489930399043517086073786523824858263159232086891862458299351787094941217276952214334616296389303052970269041949626438651372596681068652931915830756777669092753222888528351723270370207426122561791419161078563599136928407656102447802758598146087866393567542306263420289334432274480813545603902134718103126781151688710128451616695189785102796516153600930537993809899540220545971915112683278126182042311381138614774017513972765445180018960476746020645973351329239316642909192975663368218268388694587741423095157400626622032579421661672568131170380966922500918568527219242572216432680887059501612342019979818964663281668319835337569984307846977745646109288445880420284998542440430342198841251758579294065440117618634820492499818602171949497160384532516217184450343470061895539308228865388439741173209063970191571093702869866686773059595331925492836809046543860475525303285936930238498364137301122698827929202859257377072083332995560968385342663444891520998246659030842148284933665340944477803224590798482897442027638857885990847742688107895784845769640530410945598594740964790980453311131642236177489570861156333250051810097172221740182397531821225804751545180069227481244576507136670529744991406102452948119071266965693778295397101722536540044393292817568536768057732863635803538320996063993270545209878833183435374999886560166348268640900497933047496373766099347231830222175274393625196672510489032989778186913378628190031458722545602214668313472357357227109183608623627268240630156470373694135354209480316819367013498520125541320833714622349882326532554576001648979107442035739946010900810799537043541800384129622655645108331026625716054448954839241812747512215011298139815625830908020528637739818409335868742148675912797038746322305072512201014481721652412757498005538143568088538171346273214166010487514035245258339230817619177710425672023969474519647458387466375990381352007096241015808117319041391306850103343965922575822406643763501850585925301810561714832647269712267639347259011583869841819470873442622942021196481719200732632585522003694479164983551552604723359588931362291314206462149489177600751237312685253330888003275320718830417092541679537464781487733640632380364811989838442657421024886516549526478346691038511429090294841837894397821594457399805696126903426278752841285989025774175419543910653055720611926730396112107255538793050720392125089430147579406185398003681838371139149745544633357485897795749673320995194261831794738015906580702771831559968943210251192179664978439089414600524651606596002304485532334218700656810009858757651698718606480704341663933509874529742568609586666592991425710893453468246403515670707838472408542078917450110569814724243955514464877806093088420716769657305797314776031639670971587121841111585787242942723185384111927569238815026165321868577486393196780886204892321669534215115631471384065635311937042945403202012414296916073272581674782333127892597275305556135111537580110595675155812281655822234641612774455838297686144548081809237131425924451862849796930782039379778272953039119931410963209376467300924507363360581088567026746335527419740931711126163858376134153642071042550709580578508429933071385217191141182887896633387292847235706647339708035881245084811798892879741755136417817251091118170931419480262423338997574385859235691034281684720415510232397171691778648368275188687560435139009422312487704827901476403206988801017605479287495402223301856562442110845355616977951771297681045074203625809690769621808001668087609115801672915963174867174977827485793015436772773061888077344371407448773772032323156852409333470062736956299926874883159732934201326347647912158848862652080271625896508100098132794314568966569399360137812523147309740490101035739295160274294640699953692333543329311667829910657755539245099617517209446749374032439872598631792832875881880552605171059357207669682564165785009296448216670368534301196848963901624069504481820145091422846641566158187440695181218277841950021803800515274222254624997918034895704685860272175685513209304990913656886088881497031395103657967357233988775604429336243440603703604349509333828155908129878255323873588548142095094643323691273967450624995716220927415606191815691637224471113185180289998571570506343734467266964192619055977757696063206988466194906095400631473606895141123282758182191108181561873669172850636712935726408931784250139423936200964592518054326567816134992116909965006044069783816027929615391733091761321571764675237130806761209764596752490192557822244650622001555976424875605269487493850379007117590784693072547224261964530961252006215522363778588903661859224110746639249688860167704995075751287222801442897075664271573437931575782032301218289688317727724952574353739010814107459142225646655980728315755784264480711224542070771447443224121934891484078085249345723758220286086930889110438660548219590095085215821521488219695227972824036933484463647859324292923119073235603588791061803289350579921996430051730087803334976683957280435298882779289874293474574198976139715135842741044763362850205191422515201321179176661783976305698438154788628653297341951044440837952194754135291567925577884652673694614017183562382501198505261943026530513567694119514172665228551360328817442470994213648043165251786178014555995258078097544228935107911764080702575647030551262630256921801705383699231381193406742555146048764429581698147861420294020546202479095192901778628805855575092407536569221178952707713243315959345337434837192381755391229100610950714376763966643087014613769406749713182088415325848046498243518809354185999859830681719369734205163936098234300416159977383625249290408837621296185623356702274271715160215835523861978235488235037492129754421710582590927318634256381141110633701594787293649500404967112479471511731960773799191446229524435205950168142137795374191310300287463188239601393283149936338166622654712132669468597900240947668092165433107367294341370554962519245712892031605493137018777394352184120600531082613825482438612670370512718014795378440080606432419606410759007702263086074164071173546374527540386126865041872907534179419019893177370619492476406291488832519765078362380722395181443144554765095792525321865402813158180302095136354779887807613707886399200440468836617357950589728679956126472050528909409625274552476898992626469447436535879313029466052935177512753374627480380450997053884951434010953493433908008994875725978507923022267795050820655860575917451026374658610803721806108780066412796367404549358322342477826308554485249851125673553149603116586826098680606470831638789380515021036158013256965536510448801425945732699999316014468179602525441212468091957005763198980307333370693892842824790260208324906541799583942388330912228916462078351171679298860966629647483082821360484860790803065468506330316489895852153240636372363163509187014451742304322342010834378474747963434132153682112590598472517516381621586870916501332292555713124203183154875251893365255153598455141114662863623463753570114985538713861816712192074996589982149389140384170397204297413568321503203760937331643621735811749196246868834421793202734917392131989832818722586616548638416975980870516087814970042041116596979385706129999863042281123210333606521982324761999491402781408909780002102684940746433112389873554051475158485443453077268874552258151836634121625037182137297215066778151189686150133715326398345469397966825767636005159218018284401648588282553888060389320279025017034452769442505553359299528794660841005853646463013710282682918677429555627876540192667143203382253476260389997002439064193633066899579159498696209435854958267078468969453415584916299699752304643155300070640527844927882866332114476885622952337887353456345773015271100492773767979751523186701257344645562129187461876777324280527503556664086098156327443592257558025175542650028119254140984749865727008423692231927182204347846370994345053830795904299453379040345136045751755696950366682059570975551937947112436558750675415202762649274535809141351231398801191358777999622833895098225478483194907154159320940200015684416050060047060040379956222791838283858219337585044489717069932313789495049090264548610291294273486837910320533051200759913422018339736226719000853080297003529171407462183783087760072985073784853129478908788551955424169116076551061766580632896108604440745755187057317515882295099959811917496031559192800883093684195787075407292619367974453254349875843236419394790598321598748072550555489144047009345738317035724883344280647176059668856105413810339080959565237561360314934436760856201557422273477301104104218176419661106214381269178439990916290759983133930612661731075739043262792614023705656080201778259056233420543527976894261094458742084823443959132720213740809633371023174892627983806133112373999502820449908165073881401078245710451436891136441834460485834959443611887296706663417144467373175987237689953470138124665549933218128982867601467158953218320383947390822053232966393210556459067376846636897980657693054151639022696146190112258887861596282575801039504841831091951868963359532873055996670419459507902505764231091248590068785481149615885010994959139556172973641973333219407481035718319969143485252284338898618138076976700627423542260207776475617984939213141767741008983185724327975347345957752688966004847215276420707814446490121535232063815283171518607906641062462672441019071016575765177770398395626346128558541442046032030291362131778658714010711912615580116084814368151484832136631419538080449847144560017123238323935928736754527944792436025371183492923394709928418475998713690776372591525107285709031828542680712557326041006012855943361399080958074367248466950851558749291497849996400168115523305049827804455868263637562900033077962742176714223411672399772678595232222848828900585343118835380536215316033780573229681694095264057627398648980673463507724195259241039702483180263805755038351883221815177996985817457168682367159248033973531723106854521214550273964610026358744710624509958910759281827979615114520893424150695854780803109319634949049145456937048557329809743804209334557218462088499677378576413264984148490427154729350782846034972438551981779965424869060575526708635424554577898435475770171337283714838689550040629973540838925569600382608509311657609880590042863793827532652058908435401909614023436571787678043853708011219843394114641879826277604246121811757672409880597335412461778643936474626426293264504794695529629354044397412141008356389804768613781722299447049710599378993421793544944080483739371992812701214430362065398514589227325377779375517570567111471949844008834976880609608777373475175576183205598353966894381602999540205051081038994698584765508643694989931923784018892352850739520728054861324663943124708252464737128529142368775064562703426173554415283192504741927705961825143736902747201238405246268426181708426339462864731610225030405542821951331576772861121496397082486850340927798971483897816839923561728009850713095282783604994359393926047264383745788007848480392344600467394441093480544010425527826467780856005111842376882105813572946319368531461407866053529092593935294719430624544126091186249443529113841195454403927335186591803722388415025675182599361739104937387964558145527839432125506522417663401473871841376369054553288563551885936238394745605988781885125179416784493482905343435200425441676073056260246009453223763559401430803624712979634788295158652361720411349865564739631762595198059021212868391462356523278262117105724915105232188056103685326999090193252001957144996302781018256206677359235702893099835679356572369826224229302408438533615614076151243341199666595791507048313026502059468987149185865747488303455316364028485114459988603773970797345417220021705539152769345022599923745393583830214085098647378432840735188184362201715880546102455214726516809275272498628747649274129662470209506268066545778689039520913260849578556237896182343713918848413035283727477040966631911314086050874357461800597471912223314786422262045470015968100738955180836981024500508765677487796955558999668663372271727013354880596045907632942524819688288716023314047088864344865984699970535130609545057905720057373591364309561099154234310952479898091010437712700778113196649628374830158054562162932827902247020241645474707948501307401425822621052914824162626174725023020620120701439826944916390166379957063852220176163098302842882108832988412252613661975128402796494126883843609744252282511293587823972471261207369565303895720235336817553686446242434850614938456143227550041950090948927991456404830241599362950858890849663318820800778256407877870378176376708510737878381444099079593484720226187352964802563645801533023864166742224302323374456092155341394384175107164014409139221211458172760255214509223614339993605448917278730208801524259801253997782919278979371274147016427922607627512132141067386210325336582229342826492037106508353632531829277869472921664440464151661965593189468907365848579472829889384391450620141591713075165378669781350454560889281302986709490821795288068048724311990231795353385405164913804693365118562776559620909664118370096009458889022869791836735063287954140559256833451523131488588123328504224155805561772994543082591739608398487552143212477661020272058380670130750597970390177573763250347606663477918089156496027316371203488989138064186050273450052587457391162173058997459400351484500172969356955020036045811557556480328991509318149986728725244792827785111379060732328537014350651051911367767081805124494601785107204386369879770436382254062477331569243624332184791582404718989862641215617912389124640683758612656279936428675635091389718496815780970768466425335838570275284285060783966936776503597298668761962662116174695900740584956990664937223878799501043862719711452367277949153429688539305448820110933885271355530377559660712759336262180026934242949932072011999030696190274616992716558047684155466216302230841985328601508083938313075947514229358028467425773317402732749936074334972886576994667901847745850100516211063267780061374891714232050053607748499547751849903692305018587282263233770132379223724455714184683101787435755153407790243482965852301615672721197665405536761412432295085602142160568747253457075109278926032531650682776471314526569779876602780269815414416663726185497064284965610404411495396186344043935313167861080168497877869137971639260506254159446662684831110686244571718936880446373066216438328876448758440687638959212102448148183911308923468825929483897399880054031486477238414436024923802813708383561561575800998008588662740989299130163805745485260071564132640717166677074492132987488798509867554568107175945159275002255024783896377250042572089844196772793344835301942704905231813680838522582146728389454412352348558931691202105985364471133185696424629517822711899403181081665333188142522098640098764301514287798188755973503863081654614155977982265598457880985130479969349452113622612524403173400325892471755166098999223778866989103343721063702778171815378730493276098189975501444551242422601997092977037974759305440582626494261074019953244143320578441611340570731380676755335948208021285442863011752459113836413458042686622510280394246898370201936014370732785901720113186061365742577380986029050069397540738243558625164018449738966719710949410387838480554284582993969337286937579510726815209370676561428388917596465763986104502938890634274433926345174775988151836678011421818826624156305259002350612521258619227059640264349433820359792206496815829982446828089895505987599301655912670304547922979831290644083274956385556228237848309417227175831138534349584019424204301449615894094207112065067572496152947124866662663330492386751234745179047968491966374156767957158300845791669507622043268763634849267887713575530065838422965576309847089257891761240513683023723700019473570910752049654842689448987120024416915066338537982263673719757010701781221627988243835402744230824965839405812363817284715562056138314464288615576672179234135493211578659479776159144171220934109573814584708114890129801565935173686598396799033241517159409130058199354365940641971632179891050968288533372554967792993047189922780982593173758295377137257650466915557915490497655540217087838456861915721069997581354220319993522766700448886294386374832914250540697281991221585941906623235191542743785240251551978514850130127192334910759340747639990513499880656393517597814609200989146777751857204850463615153052585459237499054367065962123840739811299460471774357014763384940731088776976478293182447924940089560053669530793810813496774088531405551168052817539769263579510941674408905355490400745269923377496624425591312601276341379538236031828491420338020350348656464053492466020117513410276864866717345861669816953657078995343420921315015651724486214223673134557657835983828769468619476787272262870742513923293926458117089204091393012650847161699845625698445051439268717452790845458916948462637253163391815110422315860623967598983465380243594264186704607926257910199222898349027368039754643262532351651713912146503498775672981538311320199904701301282698490878822617143362245100712222436632783082862131869696775289965991360661241473502119176358730470978817643077380939843801782853901376708928097757427642075081093863749043068126369793423268781338167676046621193824421008388142213891726411473905324697058440339389151816629813703695863983137917580028433516217275134979155793260314225974426267535836619950285827588821537032890537591279536067406089306823316166736834906697838329791612649305894234522643197103837543310050329698856620089728422905770289910907749236244080255554780882456029544577109580919540656267201308136585929974358470086764703273604900665027270593020196405172239532653852829096497007229337466191910476110154327509396463926585719399247959635654428578921519443115422258308561896675670282691404773960485799598172504784091150620122448161018767090486355572414920395051576033429371571603509628865698822601203868560562898151316818474991580231956172809342934207212069974528968901534658856829484245106116998681494534434172544196501007184596512509899610577929749517829823374384049458533168772283334721148926515642683489462541026078959252353334750892005341227752053284652406110069001466051589209748586872228602612439990883061669760697049663999645652346773870715530069871610110988761084784796843395329489079350985526418316021862142648774331175926273918713775032210456482689170831322210084244365249768976777496598684249901761961724716360257836220794427711584134416170028677516754017155368023153957927161211363860783739133937652326530026694284924643866516764020902880908930962476133812843100611603549841555863107894466953227348805839672314260654734158953894743751069049530983797259000435889833556612978799716185154677733885663842623796499463237437902058390417511705246491245558457817229663466108634189026977666347465551682238892765877940808440378337088763426733804780414113041792328962344191773456920609581976056236571347199705398730893864951247986495107516047114740501334238215048255646410252480994139475709704248473936637451562836874968966248383457465157978592821951803729579350133378113802382946116662950278418989550042205060783561594722035331726446113678251533000589222948665269527269361128882402169471044295882568662004922440907408251640862615492949143860824564580883180388310089095348787577726275581772047667010018188287024334380608700543692494017366628227128653714923694684975721496888366654567103453122842178982487642376909885754617464889068846985019473567484796233188885412396309524965156382117364473933368425110188293416617772408387877821888458542492785908205356873872394663013474133117210261783679249243526323026105648614536940836280313489615417111499888319863949017193937248525415728242017512785939412762067236990125210645008355090427535406478651322039944044701313293651109970090114679128375929372283797756836244991123631808064029865042065400911248832772879741268544815496355997830396192670641720518489772292686912477657417936637717063341999588087755319732231883473652546154400356757683827126433212097695659554084173806285695858433903835310211014708680822074573592509271591007318787697414394814775335914082398179669141426081670130310367944541190572417043145962074261560886687342902605344221002106811454183593432774343577601392979161997257450059803246169274267122049190730588244217538832540838767283260474524176157048242973955612949049687376718356688612606978637106844582306392507181040297030734338706201102340453151847877572356855323108201297602557783216149313330337127805382131265499563429007892181399760494886390646056133226581074450317126166454488123429666410478317671210792348081101999930448597839641098802481653159772098309795970785235164256201769840616676674441246849643429175759571470466517498585065221483407876155618638607828658357483780257973035634477560016885233499513577779919627665793677578876454492389674110227795464740812985971475791583775697645111904682162749397616615459184182768961802818507475838775881576935021445084832669240456430579040270739263110134272224123985312053303890172334642446423607155892845134965407190388484829158102179085902271242441877064818408637055497592024784899302337707594981287002531592110383427771229440051786786389093902485924862268450650166368696011071683408876038811999563903968752583714840170874288927187786938264886102173679485722997992596862873848589987789215722796099387567708298933704264500028227446893892347349576379575891147423754825799756904745672919492929096575317047290819985564548297049730821099038821872447995596260321028959231948887983993877257262047390220473270563683430000848321499982204575659812767875257177087460013391106295865913712265018212970424833803916763360233147325731034194180436034607118565516681951707505654891869857229813494316910652851492505189417955313616191612102756691874362389582044110875525123789196041267197339153108815232229707880880066670054997212860277193807164894479531209750985292650665673369844960732903275992796819646681782971604325995037883978290305995084458507784273355274438543501453584755928840236131739223171363171144465836785682155571642754751454092453903952115941941635539008121354137658940015522227926423578225629178758539833725048794957056228455047328160992109022888212086712399980599928369703206283482960801557941715749893865600011430672082720512263912575807726628514390567368526697120444011296937933497678907310066333930152973141709493835242518652334050077097875102565492546561859927977331799659057521132758737308896510687552901171083967549707878438043245902226000974134101943173396499019540468652856175543620038606725354239561866745069729810940626423264681841079392772139734647464944469160297663228488490538104450634200374414595775238638002167499910796785355930013682353627768429857794662448903196167232856041355395930819364666822053936869468608036616005577147061747948699675832445666328682578116935350239779298391920370601894293961307798732880151367363455378440637515618810899253609158754228646140486195357857317064089066648166416350632262667747241452656782274900585775932598602766013790863442354914866844302965236204454155578323049724093620205439167575158868307041885320138490715900284103246588777524554719761999765049091277981840693786261399203780385742653167123720888284991929879934140588070737322022275781140459727393223013237358309557698248395708896047163964237929207345634643310587586100511512779614953891306108510299353800472399496689753808514289068312243849632131986793756932302059885174064304354644709594000822957620349977274801570208864325125443974125993811911148188218409928989503336220758591942076452510198852846721248480921805744533720174888378338004993146170757341265590105597888095611533666068541760265742418230700638299161380505180817705198590815824045324854698728972138381848278672125500061857927349906120248719628163547192332107546513786950406936191061388494745412983267311865502799563378547599310547744670177825886052705622818359463262393777659329314067239884226062357860584622043300735294412373013285500954028107952018364421223325547479177420048613089869295769652142579314492582749037437036812108535299800922340092834920682144078509044922760496476408940655677265707720485208558024961604308023465289409397841523345535608367284449721542958967292357129412919042291278659564313634209439818500323149444376796646381596594898321625676804241932893042390748582292691680210301940134707772202259752215537949015583747722818340186896079571021744898315786772480533549014018049153291108389858625938190930478097609211541153625192341482043795834664157737041814751381196642260584729301852658323560426306122588621875765379707273302802996318216068373707781384518657176831314319270379455509874152177632594815781079160416476845448429668986779200882944263631544610200974285432759314610395539924582846011897878539356116823785010894967665574525459908425167070579097952814657012766640747193504609559606587620709973765522112414347046505276135473060062672201976132944977146359321526706547079884886221252828727791996333941614370068223117061295373821231637255124992083073958763011652121513508852606813627001281363298763067029170352838773142633551068002717410966912432309594481565200391708226754088208369954912073500167779976062643206735328005644207141379050201736548152016264072195561382928534737811265380458910120514376284007456707898932951909078176739275877986768074315094192824951673323132192087007091630038489135103572026632228486331647623421696731710095436638673988211133441190796465284893250783161502157493117371738506331915413055190405864530341350647820490044563628827594945420211645657498982845784152061319730216593455309409143181364654271100616156407735654534880635551219944314912678669416142082865081186499821752069808799897807153604079391994186433217474540867192696953834480269514482251487135156865833551101819985136075913550973443783576157031657187066003460241598687825477346583975848636682939749153437634644160796031036238796946936769249243850113747703548689596093332450905144973288117288595352543096752327165033843360297491172480131653954444659806972766689467102201936302647951291510830624188462403922395213863526597605817867313737647877718706379998238843093182619839786400278394164737882678974157812370291612093034701851403057275124625389036227971450801677483064263150923329150535858320387983645580600524055800336602753844693020969277469379145830451517123820745517530287094780712982836159129241564355789312031683725186825361112218191639847870655067784932097982475179054308236920339793739984457746009543798993893159247550515522853314867668458919894104437994661354635746147496427589121249862839424596840781181630228505394783530974108153029854308281392014682034109426379766988473003323556884614928690915496942824731220096707886483213335950306893375327735219457803187830682552397163469666308256045258065767743732581244494455274503312128359888408283901750216694283696500869834704142776501947883301745673152083907585841881062780317444357679578173988256996312739623069305364688998747688325184648933531899118538965572628964348401746404497448804332208903222686759212562687086079899933013427225279362146866487267598496456897835788536487174431442121787501316095217547399146744727412517773908337440549738552019093356626306512067144562980344146615319764677798566201822502315478180655503804788843564965126796568507987818365779592720993097176953857151516347043732150299176856976893717245355442172671677186822618109591351887888768470674891431519982198966042202263095231498229048003481031734329831606603433561187272604828234927033712777636856715778231512236777003291259482758212189139035258848363073049169463125731435226781445840481567591639707420061914490282638142279059139946015578425722035574180808388070190699920653333914186404144434129901494900696830074738797639465173302404448222061970777491737952776067301520919760100076231177390928873570740328530609680572303241507745585043149602842163609807534582674820465007170574568854561873522396861289572881129890296305679743196339848241312225077718349519799973636457597335269691267302392014113115188920463575436213073083843845836783179363608189711010680285327024935280755403520089323427049620066120844705813253279342887665701052631678171966202350151346763241884560335384279672607792870764153010443545842406953363340841012415110674795048980118256970877082573535382879717477889599324847905759822413035049610814017633849202309772452031122793223707750095757537784696190983757447432631445572175727578226857714214517006609349444521234140580833954868928505882893260362270494486640956496783314653841574270052599541242659786158803555051319250576867751687246859990739866346414155551874174148443493251923808744082491896919625652750736599802952186936764259555022455017323737567227011550833941066636385574242812638077565920737220971836705823175332179017206498301277817250349283720049072247372888047624480589700687934569459127871919453354492907523778514777163585942002463133758418135442884318281053576082398473761488716042270732244711994363416559877681392640910357907603134653620363207135331164443720215314490632288982311540247153135922249513807255898202473812803530821440835032184851058754674941406766336390990535248194213319046921733347502281862382421608612711764704851178087564306789334115880069956375439417617974817110050604283588698309779517735831214700044354079547649179402417524273989414949159506298106823442867713248848029916386931384289759163222047233900179085357999776503441798809486518284303241624262425544185499883580454668405147515440726782124637900293008173205841296399716968978438730742072516465189700092070734385118189979619454002495198939592047682223421827147329948949893641741123781391820184922429534447474122972635237962420267638204936614089703343015897226433245271401007623382747896304368824301455613980955634942765969820239535806014655556815857665804706130913054653544446393156780068219577528424685639535000598700853818126666744242596995688233191381384326219948765635582665028233735874411176328421454274925103745649777824054189330882911910176424800622081795380532565955886008382243921462277527170561648618621430191841743991745200653191260463492782265137421037802747791842477651675212683311613790160120183453570030459716511328058182514805925317100848196526763862203609741650213395307505672329867957506420625883753138365850868397444337047603376213200831094442769747043426840367576434713298164858625388512234882281869470418353155768158633587231053141711126171320648383710850049347348153984351226183901357529196265680057226816551837261129900573675900028220771446961136741037180643347418677213101308191093821926334893807366002163397132582658823119759488322840122307312500166518822194470193098723202446137683668156233298362126788038800528723528465817277724276236840516066533587060313598693990572946946171430141229083255592773521963325675195895146954040585369492644520091594454799709287578288314585910076286631179620037538325584112858353102623754940923981830547205947193631885315144127358879360725311710346752287339420410418309243774686379283806972529359472817612383311057764508849819427934976228875542271619204694738883394834933523563798696322536883366443754553957704831298482749328428496574686277600739101648449883576909076694545776595590510590630084772220228691680820036871356805171750292993377956927302665809850418568992035823017397815960353830840139758172625247801290290131522811498374819691150704283606111940224867392602005403484733716165795116362713830155743644491066873341685237337042174851292886419970574779553136954406661030684616039113577653796134253553348733388421224436708582389227231221420004556000736974130183254944818594924017996768839736109881205095509764328723615105756894867764822014577860499832186308837784690306394815285804060053940456527443645871094616168036355147823523061052423212933534523355909900412456131168769048877091568468876961174319658331083916643669119178310548769675513306640624860031000138947579265949251732639566416238041740959983841021500423496048251148496810588494712707995443585944332780103606557747398318285405416682893033245930244124352599731773633193635911410945398697917426384574105877000396171997078780211090959224911654557386918107054808859348123347880291901912385130277259168702493366889136086398763169003274794679971824623569485432000789186656125089534676042040286057000960210874089912732674468195428590944610932509508906446930858922619724016236027976460045449888678433733977257612843159474633365198747452390008216004638471935066090269630899642190708851322209680968183370902769101613391025412574747731372904105202707594993473164026867375133374552199550550137457152741302002710514758026048433195944641343018933508000575355147078668454129325458672329680208786165184693169188292016210020540991153019242874046398069078143374944329310374840226159882343267658637950636560005395817231921422392577196991061190181480742127182815337545477659238923041331766479220494775017874473856966139263042699483990782696668237144905310004716704862686358369042938301131348766909203609649296730262873920585245431954045513638506456451774296529406582774501656839950839175960147888396458436225449637196694917916057800884317821348223485545124304184341342694301438616481524017042361705931056529825837732219597466514725629467311960172436932275164117574805579251980337499417001640373776221919562220715305453504232245326883113994231770107659989573191061974133484716728126484766039280470511106110135951592269010556527481891591564184424194283166026704074165605923709668684897154879470313741043266703556517184935835578665943325394727191950231274877382720964485936532184238276154987099778045176235791141866892801137118429755292877866608411072409574653564884254256529756246721214081922951722468541510552279475067851950855701444515999959448239063002797844212823683129618883714229352667253507554299626649902620544951823587885728673258005836072466370761662703552661334446993948526560103166250719598304480782866378300456214029618631769234780381142122641189462792036570790246371788896724009305640534517537388502036635441198787436324778057198926247132369872410676375493445706685294329072612345413436201770536365380076200038879305602402036077360525457837744043988552599987424320565018543487893650436324225711280893516272024981593205962163112852229896299046048179892785771880604245033052054781920922821893909079896996396626262559642082703937830981138263895604657651033110141890398534011937749784161959238506403060028103956605540818224305929215759289571623937584496035216732591621730438159110226753973388448015572949362520731963236304381560455608506268329612516845375099934583193983367896575049786504776111410831317265884554358067150792174842794615391857674391465687182059575012851721811482820716006749459092424597135619437359288283133480890498755592938652549793020613447966968763320362838383522119655093528484060855597726030719156975363568717166362491969649451317126194124243054374872581273706453745188084678953263385796372704808738583504523733018638350518350855720902920680776729807245075951644010500770343787781399335713775843732996315255730290370313379742085285524219347691846264454584306101855797153725180654715010873129504021106365879299679626893293203573518228717827299805048523458113743862076471919960289048458674679040772761069795243930953040382306174626993961886105471882818895304747679554346339947258559920927240302366584996134789058020077466896986997879921223109497782898908837567033000604382980623040212523443081616764872555120500267005328765785059244902721379578168164361998578877555904142511722114318430935477738010289611546528849030036299380955455339016088451307659875432860906810170600911012452138481249860636606607802159270156963640303467636120058213215154914298166619422779071489878877675181120051851337270503516082955301486201704702928522577387722884172971193255508019202105989765318298769090021751991044359937701871433080733925241557604803954261619996058508099783468526596302023831588012769270909872434873698983370999095669782733526132220700558317909225148891722556518149205732206198490337091547627128876157598944331036062147124474920193902926273426302548591786727264859122398501666088637037739330693008645321077950056539177491944304636629648885513899864772051137290693522420048439732301864808940973324814952637128794081547529721488171954904638813294806766050793531429260712040209541003293975587015035757933683988790380005765724200009521648232478696709032936808283672513887735978732449598487399841258577060606319826092411429541560736165353608601961429697218356546050949536961091964649356844423375176609966901560828290474479113552262402129501704095014463454441043566600020931079675541453171938033660522535658438238181172971285703511242056315370416116546723372527913144708423972491216381106940786932136585483483864374202823923545193456128083007015710501133482162931952920964878473694863756377920706122045371649412341827009474140534008172593304061041346852785341005553474842454548318337226775423430008193337065825652876813282534512315528410262366627516312023215345681199734302172498722301995470403846365615419739770491295915079052549938815056556230312757682343623685706696173507033453104032063597095396984625914754159932904719176105398075642177355090654775352983211634035920666455120986648030256955987659036905766908266874171794183290005775796235228015730353040281933759737996901328391200915352771938106749870528499813570150665196293525214967932845339498053061266822608270813252669270140235556540426624310241122621382613895357488459736201676648228349404200827822258865765353122876825151869319128481683792514325810608252840313784590403097620663207000873239202296176962829410483918008064126344596006754728211771041003091304634620574676925715435925507991427270101981406511098000589491547098293027055150233843814778693269343419183078440747613123666356257930829868464929005141048371471142673615076249878346501229570500898157550319087069236361818266652588501170150251180537952376934057243792097550231516858986608596520750058164543722650480658913838429402131525858409112664010423705969490529655771357352533424338092839029310670615707393544516101159230746648609684641026752773862987551684424924270534933011572878220133090961118362799137873331413610303181033686096946189765013715456729231662328297184862354555694649965442653147410587395752942649255339403398579344853296265716514547417590344262499999065379260336420945663806247092885149549358623311285046170317808416442337212060548498194788980104255511571267779475091050369410026110322394493475647491091025984011902028234128903741708256497591256753538723021895075577351943582844925008847609537068312664882399400603601183810188567072877473416672276027407371830878396857384511183446052366205608873192803654168255820315125442675740889508686696535141265467145321204268534616242861759905994648158067852383066914662639050565561293892455635988484900870328843714426437985225804762434260776660230684022714318100574283758201389906527887872647539580456434766696124969542620201159940857213011636673285981576727328448896889209322650503550916668918640617334949358920770922706642011767045094721633037470262160339497310221603878329884926253835109593685684830481507670758245626621113978265956866594487557540866803571870360850011651581586679827884373042579838762055905703807474408274091986489826668676535449395030133928229487629410925269455120459648626247200881425087792432075262854220643033278294516165144648919170272150701231833001119590210108858420125763582908256567894946630015887487159861007693128865190227541092058453963283938576620937563112023217214639203323395285903074858712038509828987855118520086703369402768195084514949471116727805055760383926859036602691423849989445669332888985413220772350356402246573869271026099053135393339863039882697558084208712271708554017191010798109615502754795647035218388666389794706081110821683222726625508871588533291135795112194434321179925203167359478868826553920003016752784899265248790717942491986494579793172837437758293025707418583867416682434824486008376983331178694064670418954510113714112440682525824296930473476807453048615217745522908097797004963458515062751537365913755678634212409299257375215706264021106433257803295878430135255611502913942714895121858466201869332521707321664272880816311608730688978570622209684389501490267173659486506427568814351626801807514633786335198707756526571437911268528690114225423083241590678455683012753722321809248269828310656085533053512301652530564553513133962761900369993361563973449028505399630240623460329097543867569581159445517242772716315128385798757580266907535020085377785962190918622669240055866100792160444691126271624786033275661868047689039070126701490532097614666504592127261591034616891257903829385330023605371978286396035096024846761392614770439601352816416404909599248448024050703217627847545361228986128559219802654812885924269482187422975764183903296695884016690387836222411759622612973343672194969953560731045703730163863658280125622284436207218142036807502480247351732783768084124020140932992607404244930982685513810430319318329408278239305698911026216992265856106215908614962683062344174252609716726075527090138881692008148174143158643521023610479532831474350227382085593622452155537705700018246395275834894969939125189056743198791335629861494367702519397018728765134472550866419970753792093298481592833345338717889925981943151315731462280974106101048556390923332449295144695867639362108436809675777241688638388050748071152957945820029565033660638997945092833945487269959133283235525766521064545856718703990463447383237910927431375444767568827648893692580497507738881193221086534721477291870687057756763480109767209138548808633861074040939456189265120646356681114914860939314290888210939506698590976445569590491097933078304559110424371338824917211130201265114220363179225988205297606376378095924841118991229203401961148838636091526527673317321166595154661408959220311884392713153387680716619306013594432264046863709492996644012723607937882626265719054855178332216201325274705223169432880466301843057816260096483988622677108397892429562463381704392337776019852720776484622625332333734307830288519686058343253032582746368090539328033069517790506658205721762877537467104355186546717434014882882802052577658517525256412319809791779746518397529924205838822577142315404743916367262237952590703323453664942928744213222578217915295012972268206272184684138946418091781494498390673475882963891506346734341789610755026970665737528173982095596717934744374886807102970781604072672867948509531230550469095741468086335723878450467422808730029368247310965713894674424375718386528148117119626129352504218943653974022032274855647003474937916105676312233633509573367380514910822719140280191094955738942208314576681548988563676765410364282244071995185433850096677829682729580923119278136459840029107759655912043353909520577750350945385906705119589372984329067797137595349418602414359835149880129013306692148230601535337701553260428893133282576263017014361012252385804299700289408941260947277036679479243859988631261715152274311322879620279216082197258802927030995191237873154714210717908284059367487262384505205212582981850469676242778289635181013256889877706408794938432849826157565676760195023442238280284408066925203847742816468829135244661635457705378611588076233157002616459492187967092894670139977636866885251493971873154619605606861027398928426474267724335490720886481135478208553375531746455092219814485995583683142095011861047501938524210851105210989460255647538331948465096939570373099307279397434379429820354420411133887987321324779480291673565705109344820872810859347473111742909163855231643763724099375380499385845348174139410026473685454716506408737768936764776447637936933928013854920903577548161626640350928579471944277584689863758019367926770883331246156087755541006185964046268663499748526784417068905640153228240868787308934542906971776920874337645664232721208163192411381886132615989029426221585965206302885617141875395745748431483720297099987146984756548993805003261535821306985958649623878277924017466870488443441313826022634462391844967181614879197130332610684361725854176338751329989884575508237920020534731173493317884542957344642518305437884280715938935512115067916110864075800265241972888028780245608692465288528550681985069127075401333455448085337267575221278592346312597120442883534842348532807759489292384420418152871029442051966182221711917739273073715275561118689074478069928407092868753225682520115221317137463261316582431085827444397414030336771643999468741318259420903227226353828862548799613719412029995553763112910934561553810441475766805063187223549644379327196913483803625166943261549910683181802966134689106701971857198578343101524887219565510007187651384251712692964834957387294654155911085742887063683899262535176911986563866998297945346269152915726196220859619415549109638543940456505001652066802074721664807408022178992842088424498097628388077993292837683076801501520303944261433272877426731778031841564131619605163634708812287016886026246857738734756122389384385837556840105117320283502969333315322786956313486184115129188496357895014979855095631466736268943004252069383376917379613505413320373604265897132431104233587289233460021937428380898489013873546506885110839385657126641722154554662609569409189620836128460196779832220873249634954059038106310585388492449117115222525446893153285571846221252384915281638714041390799436861894802599865920627436770142891606780775490562590714321386566048410073175985303248095967447948885609696591430200614849863218724115717768815361471009226599272607541121573960041675816818363385563577938665239072364692092208575466621612165387447678033341103069819866204708926273879615293221191945848728619199783026462817816471630455917913607382224623727828126920762430942382687060750961248076404942835433194325228441224443668381039045459211300052675796225799236394970450886152731213744482369396183534337336763508642909387990860045572237146388410588433192484106172339571569852244903280570052258545492546403079894665852248596277407367395644295688668201630515562495056452833384607825123722126171903799371796561915198952733970856756873830402545153983147901118663602828601197567684109017546986718149603369876694208776540205530796656305713506929956308145075095974853235496709426541507224700746200461609754520526352059658668100265280034698064907348000408726788656279260002029758254769429809711455329051891694289721563476405129104442939692761502432334918864270003790657563680332925341990479637089857293742344928324785824689915736009914856722909747320004431486501156496237566058539091497525265047823802097334705139003217644448036725333268120578459563595451294609591142889878842159666367357062946563339634135198997659489830115087386037447127512463174540165412350963856316125935275196628394098754798586781987495367575089425152128083894697985629179446981462305536021369614033946842569232085856729019787824345290466687988622898782843628777563270874252353658294363989771885412363253940785905882328346527535926613415133557165261991849436431522587852938298720977203334770167862355525643652665588978435866813022651168459741851120701714063469390505388800574708362596596658336928690618393097700375625447245900203273669081751152529195138812411510418626724075762550868871305838493595559876108268615283044570043462915992517987052462473121322281614147567249188653084349972474746937335462879746120180157566665292378438116020024850538026333038043909157267018448125174766915870862409557790663449262646017821770886795072177820498751969755796333367010091046319051757130698429383443406355426301450690543853072924158729340887798302890242529203098784803991238234969066228511245439297772788704226207344977922749468846339808374307991113348217106929089768645830428722199708351659336537937551726698140501940496100572894024231785364204109633772422963688721144664078669934807048888508608188788415300371041093200917790108092429547176017586458386645659106389465598906437747557805969657810004437053159902189594514410489200539576715579323982025544023711685148302538954165182064430426790097843088410482349876705376545186904845948764122910521326341717403544077301410910578407695214714963408533383506808542834363859099152295341696200591212683124897986347219554827373765368988937892773377679640419359180947378295139734716604224988901186860760542831129834762431582712287125561889125605016836609101956800302218574559923930942190043986132507258036548677179997353638965530146827193394997636141329259472873422607294103566024745735813617455898208580116168836888118364654577941014426469919569634828806447782365632580007048689657617985953332642933588161315350433356287218277309315369463813454686769418914729888532587152287798307314092005850850553821266079442172397767419158858306142732224260990904417818934164239948526593526263714328394052132633264977823584846793889760178345175285342248873930670720873796394874006600132241387037792940310821464527923257836315311718763866032001847610298225106478501053676320000625034406737795667542757215337374279347048338162394365419841990516346141531139077793287731180748812780949770321799150564197574163644791506062028248173540222967766419757941684061932113802349726003180392866449789744327143294050481534080957930966028852636801166106580397752276259560488759085182148935463309651712228984209227855640691712442345784780048112700320033299398911997844016966262230408468292530550760591929729687328637111259664091154231879305997777768727409455364942429046508299781627373738407332331038917749642536475130817086725999795516791378917067927210077705007304993429187719851049645544259006434321064717008176600126912428193301934385496418044311023006433211860044928969074954674109172109914693593070279119905008880910789721695811561298494190704220599513120525005895258537104714758053159690821382539705348619934101885123744560087700033731412147345428295324531614790321098460762796455700610757614436941865040028362358069149784004659446218793660505070409648275840795302467596973592354156810259333176631228930698373810305413686121409991389116321167384029214706984213039553579820248277161246742207245297035096160633657364953068405298769595165262513494683040288361063321383663447049634626588608376011330282218686376092348790721271625154326157315318152374113872939225896739986349737462257223976036715437419734917464504791778612110203608035867556762679829675678285055744620821537399521132088349768368730131009247302657131877844301155358917674015528773208258416303257150599731931748057603528713858330219052278901277063817893800121425912331285386249765781298514976412543132944303228941833443653294413566691439704624875307356005267385173073203644798800824074493615006305963788154719590466930391219515980855846764311291501996294884455509033482533205308228302420615828667149429016582926631835729088169754621410062340579864297036684434127212549632125239959116699334477530181766844124785418564675757004626985252586238994995954302822415002290608088598357356304401827055507420810098559760568278296155495007769553997627660862567760156795284713681780617735017675121504041634908510054191448022475610392260878868838505603112981865517967766529437491774704652489827719017903093968810573439734358298972430050671463759823400742882781452557938193061372664162962918957843635056854377673173688337496990938970386580099273688145961097488682034025109162078081148413695217528648624917084880907598911105505887785213972668718083994364798083686426311457699462896778016193782987758054492520446623153641233962470603479588373217218644325604605987998411772999559783434443070770704248820594504828877204341011230659794970206676948418955969709267628521944883770649698646760356876123486813627531674716918884252125049147132277066904368641809704901549972119441013862784793353176546526678437609531929624081856261373745516376963631151220057862411046887340557899596294297953679860193004605918868191675962646761117788632115616134460213612777077150206732004927737064261709366587122204343572693555783106434470904055350466612691885172734864034670917680695775593752752938128143214398024975775524526935252710877968783277042661918550451184792369990956174617442776782500837593880639133169450200718006120818551587633162385545128221764132779548747020865304489179535353971179302144418421045246865053505927521788585711434040874399087907043154313442542952997823202124657234374475973558781429332234634614844189409577379216140801679260614653060468759917567143674527430686907338984074079703152298559712369864086176696145882451834446529568659756485159738444570997550321893396543457999669505180390862544223302999656805381126537354499906506713015910862991878721219447568910452099116920809081706529668810539114198571701025439900768895396892974784568081332719445007124989124993611867792702163782318207813749433213563603555398972353784021305578580786703749590069872945416250177609127819442925223869551558891312310464100149264294745230171645528419050232835640792308832977911250875222918623698674709751385780131789523586330436026997604886299185481198112217441407307326369726277185700146078341548798276887448330427835381061823783630435535858804236094751112737795313777748881097250911099144979873386024556718483760751617558169343933198757939326665491982268849099892472677250303387186933841887378412515256915120118532984717274317589737791378321074381891097101535047515928569219718934312702513462665066617045694168408462633070629348076536316731195083400488874567694672086676575511540770749917095779232808939980226222107595286169830969006221711084943433588196918495614827864507178029932271115453570765382492677556138448463858134539478467975256530229769441469490950053656697519442977611049476850041098301922719688043778091825432285605327415559785198169577655879759350692129949474730158835929270957925687645261738292568694531023911213817308986559465287198020857445778516707848666601547301825349795153021257413427052203477332134166940566550496552385055896534576748826365328972833145318424264405106154292886472334594596198864042172863363986346954232733245076683914057927078888928839145047292707444537628339964693259446138320601152717577031994145562223718499668865324030883745728407921222878512198385719918582893436525487661016798773229535960950981399322387226215009774293009372582399469595554853383773837821104145300475674490872145786711912719487167477392347787228409957821105700065150323063588522124441610513250799010085971843995072858595045165307311594883975819500348706631028241239831227747448305199579138381398417731716716335229320607886711248481620473408455147247902344223288140528456234582919480319115358924560517579303669712007907478517551454371195014398911091968533588344711041945034607910989835735141925673295258209616980547946896650192337738756003674593663929042523487409971239637129342563914586416898807021626997357071989391003308176270196312588175997830282939365213636626039998418011699742941605887153023008386427902454427146861072257005677296717262841784613902747051409428241506719792097636995108446570073942734307626739811475878423990008194181774156619617790979401745041747555863251946645038109478255719850816439439411988464597999396738288970379227017296786031061074132251157913915810884031052589380946910683922367304160713199622298795516934072005780751616989211687603300485837557024477755944590495824796273444901454535705261463470086479037895357732347770692206922119290914276691551275534467949232060218520671737749856260410362731945896842203000569710604471394369517648857041566316827874268279898729031955653166611330212149748709055137059845004142006624882053820328967000729292109695357136283832558368328111908087589715548041567590693100173197357549891807279641567114294191405178079870296393982999384868968190786394257365264486111283439729581335020535622554405826407656795490145561253277424686039477897177931015810415240048767009447444497414295187446244195616909366777487403015581083546151419457370793395815214694444750581344160408242905358408690044381786331263033505184873083593304700270207573115604692846003714492115067415264732097831072710233922972978451899225919329413703272087495516507276797961237648758950456209725794777470886538279196792804238565431790400166081514991828901999653223050141960392830332206935626107654987958277574192482785671683492053500394762245040582312440060048724035346710948421400958998367171533516903846075906247672628688265700379422643257297776634917734422744467389914501039246858447476527505587305911724202664200102799130360476571524791331356824381418066938015802915503127373546551056970908427628263437374230784840341752844696478184714172511960484363278418837147940849275130745601352038315451623460756861693796262789404389614683883186176288671179048238231817308929327121733915985412662499967997032251292835936467189675723295966670788604341936753252334737117262453764454727869374127384461928648658403783681318133676631466229168802385376041565770871618057580643128380259426125337744387802026331416056327089955280639711346516121419688247355623086364067484714431556277669911124831108788058708827029066807808882857999432541586277266449389980856738749884298919770754481207943241310338421799142506244127235739290467981601919557248680584162891239667144585310030520956217352522059907772460436922640098776904276529018896131984717318664611177239255486542992312192884285361593154312160887401417329996515131464743647952666951277230811808193001024844417295580779634003082832292576759467476131645549520074305360920970833359413949033108058727869041541038891486572934616393047702650028825022794736332317618360214307760063278794414478677830828179811076453615998760365064305329991289332661355550087114675788517124242818903095058066357277293522980045057635525202204259915580591047338975696017246631418805356586181468291060325238469495424824972219886120856063034816651296485293092564364371040815672603223813668330217402063456872370921745800288413114033591919160659199590904809223271438385052512277553573483085738861626258782792147835462793206516305720519296740489102730443147266356668115469131507965890229499638677596468550083939685140812829388804117134538144415265697941996373019859275553374765206819268470479004331653418007484580859802556914815021550968757280456330623620285210943239610772353099454491419618284767646314296835057276487568938309897850502935855718624116773988822373007037493806591344944267018558113720914163880946325721442952408196617310188745102680572902331706902340152264086870085227399895327875257251205390773833218744198952208680083267035079862950110053377941662331048590115569956329536286547937348341407228336114264279184030645950444000778928300417989735972347463058747701763940896249440517689794816353729454866075302269957077424785061078403672968120353948060343744442120777861322618417194873540207648977041966949044225239898920305030117947235664853491214389468319931095856034147146277471367519081433804157329091749078356387813207292994042045483132606218389597879378730572341889906718400903481791724758323633441207656523839566972195066955497351228990840952473210341602864543536686399954212654169880345944280401171620560984793773538851995126515610493409937450183610687817415392917888202723051176519427214300476425294061842083569993771285149508243000833280602311879070914427838336544766082410473966501512066259978154957919560146700011886516087040145939566933044688748670245538568152543350951754220280701771388620309867569099525595122675702271203136768188850548137311362955337965418786758673938612824587338785217406651153132888712084872779713102503580557877593804252162710234310398402453127026076529311089792830360008147917085545753972206652920926136508953937803894722704949684796763494268930694195636928814793111153032360310895583507712350789454228371232352788783405593820548245039586951581008616435334025304458144686491725683836426966260422271410274930224976179587221134320206308737961675065264421158866439553705196388914497311026959499272938880699654665826742399097085961805944442049536794710046742353084199295206206890541743281045226951041241942929464513019675418940376572444709850373428319025087709314821363011408500446766467201958080722546544608765837816968602878521915588370846461860883137813382194010751444924270984416135178492349630357995219415242889513905397014186547094446785254800756189311286150607178084878515008038412257376052154104314997259073229169092493022819853414721312568418963929553598418295059720399491382135979317021578380188121260877927643663822248124379756622775990876234392092403796227537175396541883804685084107143412328214670494177176181043900295025891514443491428736384059466790006566754212436260630590493843036882080155837732365828920854168083417029543874624789045729142381198979690693138940917259458715751144384071696691159396787056401427160439721454509975666250600471710407367258200317206414244270091475401157281498054238393991040367002225924849901378979542867297138715372458171961117136315861143598450614048926330064564709540834195252442114634978706051963964764647177278588695105852595285038122964148123114364237248828666242708634283713176486182622982629024069300339883328155779496805311562483127227348861273024231814123588992365904784327203443904696637219212138366866039554044442926042549568718970808396504685102719584675771417969765348738739948485895657164105823946138486397494981645414345516685123124954871410072896031196362532722926883197596340361197242908062732940948105251295492209414265847971694522586764549062772996009434561410437927548044368714557014719473984309606306256667526415143493648347186505014533901379187852040500181240195273714668968984899674169578874527310250374155561164175531111936001411891729266611618342475911205103409202268586694705247876030379272224190576117344441615063227907759860183605469483599904051228309695123528599936905371727713468946593055214619419072522483126129213345718542715479651087662365078499600477035640183262098287636016905221262388552166934415024684860522061293959642127155313378683054410001415429983202879728279692669597658569822432195238591072367117858122503289167166859265989915875850478705265328694055086007425367915392832013851755579110424178242906851396678354385983184529001744093220365842382331446797324683274789612524426678554948277460575462428574314348446907229742972109050028231676852810088376595010623176962695745621737188540542232191669142824780245791211911117678533217246365049854240679868765888063881051607877136531705611390358482520766325104653104804085362473703930780306864696821907443174966454394599875504411619059545192770351620381844342750172926174724418630016174291584070272050554224855575693816315181254366276918811618301977495665019414826060146872118414349514597688229541597778816531634152714996031597995597761292995825580974719617595846746295626459030627937265802945183010596327744083247981736211919829385875167966442847889361467343328552547103499093609334492521295785391648366305119325705936759281646979513964054692529922301868791218566089583759220563033159230773990078540382944507202638090173852524492724494959541325621495276362382623682560682767715488458062100211558676974044990384779853213720909168416374902668473376332036571433009324763728252589583814335099702046499157876486328668950987604534459534867077470800638872099440666124845958118316848786509278905342459382764318801570105019821927339646048784372960814612662690756085179650258496822706688933375935734743315201560371033579515798268700022567896721226196923717386960545402719938352590843648471660155543036249935505729592881823544047930123880369456001224946437830700339365446759327359560445532217767389224242480362921102855793609517419121321058831143138294821676436295232420458695653094827154708764569554276541456406166956697425771987349912656700405705856686099091966121174809234470329567064638541490814554665787422735762338566462812637610246338851985594716217120076901667818906102825504537830835234953661965664965144351971643267459627651015258688001781644983823571677207903142944846749229233132669149558464057333956816631414154645435894947447134506692720391783244466942492745657702918969645975881629628672697458369167766250118426684327537149375011286086708341460629257157940917998030023757386379978607870510058893134663113436855305540789242541940850281817799050605045035608593557532221488897228847374628797773284123215179809436871122897034063505361762690208307065345387346168864982771563526797918118230290296827676804356631829429721169476446175079317208373619288003251357187862987594768818816513402972903698082464415135631699153141251590095822963210139977673233114661277942111860762671366923965339118933361090586734678703149258234460477027749233639878639172414782564962207399930763204621487439405797086104418858081605627046284499363732318786488211817409472680440381874352831283893705653654756298240310780158920620931010050149789430398170452338155492741677753627075284258579273405330926639826015038810991472219086362401070689158236580513676606550600702737012970412541316836163837511691916013317752173928245060813407877618965990328795798785985225957349382059226143414021890412824819118077056495199079859369511063646708154741074324963610171583637620645052495072650039188774314128622370702080287457048521956793147946971434000005113141693483265239720137577009332749826038637018944892579625727895480060238646634841756350633644759075572758473456546509220772206315113244473368757092353855211543606205366249456697194913715705312268283133885745733032606209353690361224589323969294300948635023119364183721138797722441519486659164226867645066995866280609720779396678948016777829152545848032986156260310528426000279256975276297277585657536630582482317583114139412767063784544893085314148678589474333163269707244710054104421950007461063528789018073485123126204796282572280236768024525144941239792920578119573771362401479071254118609387904985742729166720564496688422563810537138714139808150992453513779087960281722613299371249836968268831869369731844952041671639616171005668278994288201891804323586282821288270746310585580233330374742944164564331617815455655081948610500361861548772932231830981827189845658641146862499195094534674280705891458322788205240769359803623023222061470750481352828335511503785809274584548474037123983439853858733570295455273491240341401424476048845463677960732545954411235378373580130156487177079699265358659131313468034848352778067019908504191852425526556147093166874385619089444285135770463085687579418327859759469367957872310995738658834542452562518702955746258647190660402390917068703235065842443888771193511731284362087748903689980163250979192109854221025181403127802314083038097840357157503767335844001934848684621000676442892164146078563956352153069775468549769892086014791899595207915927331870063532095395303565402776834903800681849654650274166466648199099935274192351849342824220950426093781838789703335071805432681959290657635464670686713910902905130950744638446451316288433865033790349088645816192336289176646272677546194351546672585969041884832547775826540270171933221038003689973163401562617443307650615863110091486509060802344252376876566606618341403686371022857891264099330444387179277834665708205365440418594449466820312184601384177741359112604841872033829409297725196633092257031085446376608201182551504113797248909804480518643287853697094571049700569233547854437656822776337266413083272338339842546661561934400915572442498302587298411323540110115125994575791635718461629680283264340268753112467792649499033747283567656044604477181499965997342146856934054385013265196673454273193857117059333602544642375255083038272976027766151241025923142662940612697504707155533512208931201686071904476176561353283627340525219482236265357093799108048533686225997565720111274354577689765236141684267311397465638336105782571540512969677333843513824169985707890248546782454581356256624947714623272379451769184646392056258144809287135327348292512169452197576343932297515464068350698091695743505739460553632574031523013190615655821038462933995942456644856324640386662167392385334616407704887939389896386352612271049096440618538026834234088541528822713745437145853319927718096306001045575946631703688068659015931095363651366334248958515430254872898756420334602736220930384878049957927155490797350617072238855078470052304455883130108610429272808631523903801343117115825606194492937224577578417567712152361800571624223926131260742305306161307260193282089726782408383918505865367075657417286298081539823601068798511899433270571456437716810157394209329436101384679645311719413217976755723139554650967551012868187619126674854518738683932705890656123864292030920364527471546886341923479715717381574896852437607921317791007096044975631765665175314364241620737166218612215436930802746847821126880051126941845745070480975460931319522607749096296264510006281250164064179209976849446109561152868497806808967431613777362097433514536918382246671073266858036595921478940554295555798924067976827781298427807064218172363165437016761071258761628297761960960360878640966700757556991164451428049352984064892026181377193035022671185047768584076730389471701106712696465529848746164915026596691398121582300314759581184092004140581885565371248467856935532281225589350438733601044385522860925709002749671818472440725638221607675092516876985561656823925532782341567003100552613949357486596615797484676907353486811401526045614897806503952246216914670588593908887388677508221243259246593538598251227654078733149851290518988598863021323548704421838674634041212452828596478164775004143896261468261699413575498024699290360739508049117829225254197661545411221495540943118401786473774630222239948591031464884338699947086164991987810460409049064294721172959929692775931043859727441218694048728862125512627629439710293938977061839691816288516040202702598343041991279388145071282628947005449881337199755974961704614896236316876266415440766740913473150385407196711749336794538722099802254945170181422107541979716822013275136272497282860863079141812601176776756789696088355230730572248974394919512712763920184923889143567900095716138895931034332691954334858098526597056168417284124715243050927352723282378706991376127483041392891638319154706238508011601623739616222822255862941843805045830006482790612774676979234624809431733868237033489665563662714102877527441526438516255973403447207181399281354873757863399724792418205661341793319437364124650964348918005169028594559326377399307640420910156976971947775855252035509510360766539399273820974424122542372683083295980723718338910476713396638171110850780974159645123305964343773729182000952636101700927807758559337158031498939863894597404960973377440204723859466422376398175404995193818425958964010634010101243366388836387897266120448791467757545945457675447412546214625611269235349415319175521287362592844142641678679925817059017857427722967900168634487263748766423101270499365962359382803702011419354543364284793627286210798159692427384560196722634140934383769317864998786871167720525457951354200299853716389042639110375467420930950212995779592590583318060719598951985990301529788050116174242478550853472849548360913631834384356612670520056379037292476516374087048928702973537431492450002942484777114276069577602264803794267389210522519867939851419285697574200036832639381991228570067731731287740212198063174154466185789129434862905512256260019304743546714719233596112397980794606847540947453117748736839045108566849259566300507293059599994442999362312075046114930456236474508163331509758056342097631177482377141898451764096019359631956359266741628650585805839000791123114165869600073351630693654037594195203276952133983551346684588961961309710390567257468360901022809543592588732912122439874546975680534773417062743218694966586895536082033767076600522073422569615997535026695350987004802298292943223245592638079799993778890756925684824009082882987916056758714927288814161516353121919036238522490929705425772712822166673965735546370051637520016462978266092826950657404226097603467218253555382055888112809465581014618504216951707343227173160502672062151522038376155106109735465557065718292932068704211664347176490638070272072716203694900306035927877224390334912630302085964107260203206007625107926703307689145912827233742942772714621285705741956542663601174676114380610006636715254452376301327091050147136207024278829263330514346133624823404680987410832918193203087023003611852105494433497457844820912274497663217755460556674353060763123954673098936642211180960493859212953798978517382768576016158173752138710607381995930480831739179476128103813304184115900920404993315108395724822119081818745404629653850030894458351817951575632292461426504888957122670048202790220767821295334054798721944512242918606111513572798718224119881045367961023807003685892167212426586775945148576998560810316511856947884799820053232118717430167411025890315196442087487659529692358613888225509938327131594766934122948848638940273499513615902087054231526021074263590372945244338964477882464624304981138686678625219273315278734932256041919555233014358173088431142432562409672586962155971847044741609807095830227607326875549435933671782818771629450449489823200574923677141449187363929224573941776828247884479936606366879954592887077193652391163780545945267322162362087354160565277999952307590148492796363048897639039173951671073998037692241756876988931515418372285248939586896050923540917609558587560100301886280901351202786115999763441214754033195433217531212199837525103199827603442494376835142764882554116789613788459679622787435013671954621480377436612071228622806901737559046904162928142424581430588040926991227700357353801218597265095019493384233837629738770811243790026642827713347532048481092128924166363872140645261976229272173165903603349856106236325884249131078983466680986595848868357870201968278150508801942387455261167060041107555451290268444145174788403150339987733184872363607081189162533402558452721711375762975827023811303971878273511614225647213484722019417753666313466924107850765084002727401503017309823179179814305379077345255324369153143070205453700493447119982654132016927502432254109877401297392390599575099443923268405624513996155984517159636351532736331083535501007199131429532180153738502621074066156421099635549172086224299495160159684436856493519193543191459487846458079072139962007670213139330520965974870881430425464670973036534339454606509750075484449215275529302115974426676506037474019275768499314386062829063315663326345928023234847162646326396908694796305397729501663006557314963440264721712315660489684302759779063699095034895598437183108620115590725965413152704834038599009414818154962764078038363149389307958519752628004115327533451681157655112362944132448576436303905896319006734221900473793399385659027396152598829437958349328974935625377525066728840566408944016977198165782293514774267081174113378156769150216922858598691014354137457874311280130583583648284155710120691926845656918581739319350313572214749170454514827592699320794170529208400138426500673357537209767442510484202787274514364574987355700750187091558548951599978196915436306902055113920819286497313978348150997622772553961419727182160365025949474315283205195997434095036257634809110879136216196826724440188374046726849654883823786234489607214706065042578845328972247318552125983976115721575814129795929575408776378927145238984722930542927876895665066741545495400128294342484502762543634262571119106991755325569072258324132971402633079960545030857743041156801241259661271495687212552059188049021026111869532041229726040066124299484650166805848066434141531283091556548602454987670857117038035795466831187914354824035218036425869342015372395587421585058796059722351209754076211349196410921285759007860071777867911943893456265826328911687090071169531406873901061316342325312505215302531809237176007460768061698217693026406563553253483110432330880268805027684444302358266078764867233075584487909625989083974828279114106039254053599958330422359746421490884302116886583315859504460108115456812815766700056929356967185896038672955643659715149988146682162341021546780175330421541487010471283364947761897700856110787299900345440461406342332458890768994548481728296664490107524534924890473462122834143696411933156696725777966925076596109164383747696161510484991049649946289018114239290883765026763508710645254130600401939680170418640124586656611530906047406187622944131219429638359174440529006238961376451300259651473057038479381709882679980672350050875347048091130495159325749330019594715229760010245322894209195270594873242454701384054042265736840527138078150439297479714490158379431067840729489492517687625548792280976829187574831079930808445419055663508984710625382030724900926848405901815184535306145003750590338575721829441142984205207426351985345477797558623053606950865652529497580807878428839741403554841276673763581234601848496799421165831997685357163306351032714330169916885812918121843686296447770766547464027463829398232120347753373301305435396739991176974499782793536056943655143937020643051177919529763950218847042249939080527417107767877306777657336979868571864037795339504931914515912067298409131745269504904412733468478619807969191497910030368391911417757883767971066275993236502862440928818130780899268648990521495225977635170941121476224423235532050217429608931264508597247465756876302913310615633370514261816717893072298402850730660884996995512936102456128206210747615472898920141906187399013128436190377717276463229136114760974081299640518038174983473504621692987615138913740644650997851975112415713184568509366165742324215939240714939484531899051464691571328926054495854212625247847937076719708431609457958194882560491902722306803857023338815077660815441442225926641076358815281139945359287777715327513912646929159376432363606999668574820600588192015731325049897172716870154932769421604240379251938370084391736478186042972222767100081050000219774354607041244025648927619632432469901269308522385281197137891682841626952788308306309309237398408377314851801036983990024465167836394368075117666152963746579577179943116874965077312638395367560059032615607011855073984996381812674152666730368195959282540540531013341137572754543752990070323902906323955730506447494857635163276673826248735385060980590517201072182319366092008959912905428286625901327222210660067104249368193472617284899303481464244976586955008520939050248031803379543718114405015210800806706896092506467332046468364276306439371771951795947279441930031287701171707823709076646365626344497826048068157039032358470471719297404519386883117656488396384701033682071561056290356938450915746305124657034136748173078100694363352578952530274551623213947856395808416784461363187059387479998632712077020134760468417765143084964419540916230597566498802227328082417896898321044456192369150465105668874247429260185738150604769993380772938524842027735615970200734542917373535663598492332736090789059774205984161071393147851420519974922324815726783819592753635682014090840078356650735897314697682983200199997954518138434158391211509725812227921295189535293416826323236783274340470105320405159646190111082000509032405400899047364430858869872187445140368564877326052518070759831349884136511239907176260063281178793648796852968159049144545051904663995064058467544835218212808571466545351836902421036978922321913113450639969930830500334439360297965281655437780878671018353155736903739055699008612434782088165803847869240719935956396464099977595466347431069720347890992769128597425332967704456805430674564870005436523262577626983376446979906885297787353608608950787262948319228028448926549308309596932224267399974357511050583988511339558072975606442432143812771294285118802850635157799417546757840764732935012825354002485444816518648952945092050020890062131763029603025151536138548534995567478045275246088590736659370954356398230842835316936720978780351941721342754244217381537595969162329073181864014912540965025213691251872802484542695007364482296585781685456995649141171452151976609471996532912755683641509697586587178795313684534333261113459610257396728098333323041152393999102889307911490778021953716875169886968912471941128996021867208120771153844822667020046613598630422506093901662578939892193179014070336817069794853837318631463056823955281598588018996343900172188885084976312781472922301667037929280226577952921913173149742421686027377817812538869721956380773837242959682442982574593292615523378690996592777027496335435636606225327893227255683898102871081266004181825194049647086573091705119243185614404527796518096373748782666479347431400076677368615616552621976844304914130749634482099604313676407985105006715976559335150136654148308014555776465381949153849872521553955506979970262276693096667399641685465938264478393954582872937684885878321847355617949295025867601547080983183442068376353613209589492548531369422064351623091008404404552294730679488489555915970706106935691560785495854344976506430397654506413540163092178834107615789884202913487743476680393768342795959146989186627471193349099905718673486786408682489956982496196641342123186931116888441123493441981001878830444053880056081893329904550568850405155513544107331454479923094104859494541780817078587404633167797413155314549908275819852837301176744383789347549123852390451752054366388793747735389691646325044097042400082579235866516539961749462893389168354769716843332085461264547885076092662391890967306250094926640434090058242856539193601393067510658929442157555603762684354673535476717405327728861018842898747927880263431427988347480724558193889633550379910884232200428033745649331773254657406858769693363019029857348278940056258140123709249333750083519230025368019645353597190115695765416105350118923966113876330307323946958959035377602852437908757268694009107592072200447113862805989583780606410346269292477276633749311819652282075311272936858814061051544143125600728603001652682831386842565277665381200298032117530541925675346156871916825930041428605267891230817804881192375885138257360749262910937072005303798354035856746738617690224489700524600655700055655785130135049102322134004291306904412133835289291371565150943086578027824157463237819172469366683100244305240503148383973389160116740949125544080153010439886808620277526964306646083547850674371436840849461300006893418640597010352566646147645190652516394932710261459246201019301679109255401894364513364077491236159148360688392542193362211905085176578574489614214385329699469948166133219014211741426844399202239737015632676785564534105110109315141005826706074966036910103807801554548394519136236049041090040229848451776987357784494958314097963991328588527860044711391593927815161749106183757469049906052451383542517657839799913514016950436583619401374685827498487372690560745818522524948578542782066917025020828308062612304590701468102321949569874569736893759939847397137637551215804306307467119308413542999215226373108512514419579971502685268126491176835459656580894282822509644743969077086836481363275094198147421713856410145485425674263988512354299828770175867662887223098182815439353381541516523285629348792492141927583658939519646015109682982683867853481459583394845846523672726357102390709093965544360743107619115887881148270090577816388525719829396909016947115649741121165125049265332719280377212411519164877834432949280327437978820104705267501559124285550717740644196345561324442680677484538969336113943123549074434895539364431383250844544971950256722749030952012625803139403368116505287910512424406137347578810086441926743789398287497459437688854803860577546102266024478744898313726367525844866155786060079036036397805021301556525122894128606350758151250931042455858754478396576120615425920259992280161467594963433058976298965244760708782859242089708340023022280190507271310576591566680507962867138456741122046444462948854551711766870397977617926005361937327008525204676927370778128116837304807263115653827678075374886055320804457595559506226249492571686185526786925511652217462955898955964097685893799356268814551155294690424609273232950690041458594354286723432481684947764599388362684588462269673485473348315775269799607255130044485154538575810737540419654384717084814970871291483381883892326962760449158536815106027496871448649546822084592898286146466318071641401688290500932692201071770587762546631828382770249131781998706304702539473161877311951600681921292481952751426805184542865776468414903089523452415759499365961581433356913873532330022357830442932184153578410255561602127264635842977821924613978052590233273549926669231543911648039820854899003750186223648909949885379781194585434960724768535835688707936026371070951201790166696378150432057686252899494735702689969239898795520644191985477841416470630680537474284325799081059744720990131003053315805907756539439988742694020155155032962545565206990554934835481177447554465384007615493296723376852649131648232983598873671738817733294179695387073937173730693009057503631854495567326484588932060979798237294555615838123523721424900790519760289544212921157334248343910529521329389293696270802701560648645867419353113504477164778785476399865379725988566940565543397217169364248424384134078320427023548185173638832823244966693069120486069530840757993545064873526249212018768941469593971287300046653645165881111050332711575035005264553805916208394660648806255214214530537575764954304721315925271575896990812775030971252580221768082839200005189996133737554368327555683759167140032779251308747382639727247199215757363440030795191038927643743464042963121080953113133526668453878433115468084539007488683909929276260468617072599521424506565538902073118866483586437641927683727803834067341532852567099345285532778492562011775955602627834304467559930424774377355609011646424259826319917867834022474032994985010759160520145325541643546496262214616053709828479629208213274569453845936715139737220688679896428510547601153846457287538368463816544814074646184102733172673396807017481454105941584108047878364081317418815215724555040537721183477774275396185668908146510904721122091071870145217999347062563636726291698745891232848289024519666963608611361280834712060470608282415069722364130658471830759526067837550916379136878656309205284927751999438799596680882762258284012511369957931726460865561417599333533286417826424041158574778564171797149274786602044279948417050895781114103028392307190555496790625223969575123208215978674203684205865473893331919405120441779982545370339383637431762152139008015474230487381117829328766303269710771011651362709111024149987238433674284460094003463552132819846331625767268279955831699513925411445345907132876852581824142357585193277311409108939556267143679796014028052502303103512415542797740862794367529982398000309519099796904841462379518378110566305383714488635938521494622766039495580446637110128142804166499743516380849438207977348460111867014210585764150172346310759837779965511390031935723006492630486196549127269861704291102246869361794143936942080999280175205313538413093433090423392605302812103209736067153499703936625644013276716364458038434091788839212477504761602402446991778431211697735530355326023292507796953065604509585248914901701164485312018307033680889415647654744598368700602177301592777182715165802517624869501160237741358481549155442092222276197269412385149130190662761666828744549301761108308775652966265177285687005779402079337485358255529354768323354726559538627443292231777967314386246583117648563930969807318999411180874764728445769432908475286496346331922893910098450590632018505442186725590215821331023159028270040771636240318064737808785296368335480725614264022434545294629313088121243361430173328981046177400002977609415153563261405917586425989070711038402080095527366055406606395624760152004373879438624311389585442204032103467584287240756276984164559230920692367138980184518547149291003953396533717301251869623053668048404459552319601421020346933292478057434966257000894787728883306491265985871044718205186472308615052951108397135374525281659756088324025732211995880413153163435403408954275460141624903928848069900467655719437745551177070876817812521619223001399962568088911269281407861019687068309024918250566892687019305279765257154587745463622991119075514927899947331698330439754083129128060123675624716212916230025695505842020543155732306072036045760794361993197305315793058628916997018246313993913400889040375489978554373076948734873380964551079859699750400112705009162115947684624953583981888676465750890810815387940996365650211588467694814837938209520860751276576110819559114196891109892086518552174202758475007832922314533940714493437293316061925839129838301899915216083430776311548950155338384584159576962218636676392582139404433504730460438669871663156128981193591271498670888389907466088912133168217028818181452538452051282195528135960394618645003164279339555980439368149794939593418110316584687975419810677275961348746619135211795978867288368802353304207206488713573333224295133878153540781083288157888781916959226344195751546932342007813537618467066774080434802322385594574571122673087025419992620636309081897371126631741419251730552231112983103532387177575150648943674159155155215176556249027758479887884596430583740371925889684987249523126900195897478130567066052940702061672205284838983670362119366370499048933802906154976745351741493703452481509547701447391926661902280623356789894029215411838159255328675339469355555404530459154574097508298613516209608714022825921024204233670185148410380878446658228029550188166066415641626242739189805526244251599325898083687253298398416641600702490275575984459866538115434580865911535214529804515272171243068392577038266995628849038592251160933981648526408058958116287345178176118415453253394554673795156443463243050840494227878853160109618770497179036654842505085315605579631767096762201348812784628954077749141169550785500895373635549586318520654109963044096553609417353785472054138480289669685637950975737574688182636728644709023810165978518933394904199913120133000011067415407928004817664511642754918515469776865593714899092935785146867271449353141510752671435708533895303489480003199361020364935019103603623638655939932278773490462364015165943289775370442995076099986711849064237004197365115470563759714073584139168037246651123816886139255400035657140527516283128654689219539480899197814673897453077257107149781490556140592666797361419599522041335841163306625172393771290261873008615254208805879817971097758428206851229819459293878955293959045834624206045372315524038867219078000644545594047443546327004257491369760372492366719463300752224743061744871456727783407910939668241709702599862487240292193156413973360730891454130993073965475158598888146060174181818476284732582266341945314271604534866983394105274944783506710247031355788824412721789614338673790641687727941328366136389139882574859130537875764131110800374247147237858160600110749098120499001357154784160350876993396060596179958997683736202436659384943768775558208185353965642666527830066580477289841801560763966091925673664976082042699760622571799694791935820573728603792796466494612358617666074440790552364917923534375985864763844820246082024660333397543860017329076770305757630628345380712249064066443915381660920035858583911492401105170629540233446965483471370745075466236643285481253463241048257369961172251938685148662606649199406560547282279808474343839348276763722708825049079986194830338606008292075041855486629646778101529129355940923324695970081279411534210797688315457245948468815114351134937760076685589840955642230887402184186510526534224948517506998540970669642385257593218157086891182933652074863434932233842492938594354653314226557984947878123206256945297823855273102430619408510787625184939428218932125831572927001544116989905457279618133511985408609839853786760072255258100023013762898733175380348644459191895579266208339267767587113860802833859724189520005919639152501278716454805686873833220596490123917160255724823282778165841488833656791528383330301484065571164142933200100832819421499614119779838592017063917795631411353197820126002865386276873369313554179592428443120406714414318096212627927048137036112547234302790789804723363176650459963047915433436796658809544609089704448789085548007691630013958838175854537027826398029087505941353268480926243692812556728147945361916165403742036044983375117168473660489234345263986789666398730634067334858421219234331866719901236981436209704724744463386592818265307721412394785885520996946205594074582068524710577559492752778558258450298839540601164771793111566617460401078615026297691404049678295754921728455823421363130755889782601195873341620009796244247096980576373170721730989304236100778706067420839013206855534087390486237952908249374052570178480622113151814971333045232485970534320754845215284551744745220273492985168990143673161774550980236613005592045917001014446925113667606064463946939246411810184396589689288233711423952706995928458272803566277365758967717857122385801500982586022319159944243543233391580492883280564133930911613229294563601178311360399407068860443178833117678058721287769650456313266640921345597360412917780894520446228812351284412586931211596823484941543094729639670286031896259922018325272931919348931001459619916434085420877185560548375676240389758796111242191858915781021926964920342879370241633256052747119098652035649176310610464449948678134796709758430198411856454720994113544343139732183354273344292848191953410898587494634835532870730923368984535787105455511623823040188226901993852589725596675683435036682426927734296761127584925722789045144825307743403803442865736191999683924477396007943537787133855456255881836883347685179841711382213017928791328571542355753804466367535626489394063728379689880128046420536245838616487482850302514906808797028626545603268155941283755910935731914675867378515778354260231638334332468942912059695829893630125024152162786607226486796429505705044255314992064517023717287498041614384017375980336998487756031550377976178788941085829704134204987273747130355461424280558752437847158430178028717194939600437472130627282628116455669534565552160927452697359276309057648202658584984404350245441643449462121610345149433020382572087386496455577802120755967374531003712585095517008576558346009762365390416510619059123120415636054120597166830958046741637162103971754407255088618560466669033474412924683620726192765590117148233542571495505112037055462207462786801062806746543136680741831920852873489076553444567442394805667674741308817243073144973521309555320829709652310514617044768369225479862407692457228807911260400395521271098495307669681443129748460695389774587659821365092157193553425284896114129617543719284533607192529416368790622630864699207021768257548011706999745520894938777231817606093831377016710609157967772355063617860495872954968407340888011017362406307768849187829035723782119144536906649466453718450599397505123742071771465554302013357210991789004957506593887971238646912413927072534192237815264368510101514391340554858966513849094348549037262970979199573988148675380122413040365145140605232415878295212121221452995655420875729878785020265481676840825065859846917864188454499558924161384631395033778491218967170825552489270263290559350708122997832299079469324599296188945421565850674603127765558905538159857017327168859605593388072955467840062798710305987187368033192007596970526642445795118204037453666228196368298938997740684388390353672183837858060607251498032239723391105607470971690085394756046133556594128407701416706985471521763767831457887177275998629510420257903966414381418953825979014929260472956240765649157381445737635874933750512989793831380909762809033145522598807283898586738986841522449444749941626209815285772830190109645885065072825631541740089464634531603960910376681095720184653466449667220485145676908159074242621351802596066791006587229631209439736601388578910933924375927814487166586772618925384267859715249610058782180590303921508806100012035534881556094499035948234657901861877483663586711870377984186175728011956827390263316224675211032785598572324670475559181909664108425383032140044755951016952619742552262094657995071788074918371843731150790097251658728041316302994262672622402715901533616261455199021782271657851178981004208159619746503804599940093026246201490306524133286576902393237332546863984382956537496587022239144454555375789281755301800888542762435712874583908655343819872740909895233292538795777773618310537689275332033852572925934280582967053892358883603893513566767696851698456659887099989789351618252279470763514401973830105520597041349539917860978840532855633703301857255009394045018414232487675450223023273687508033262173920228364319366074955497530105772491792686809884470785258209482953068053339819791319713576682846328609029340543903851993735873381459291781493089107932379435446059046371370804985341933730811908746391311217449669826442653688190968833221891618668524963060130881431358579264508783563439449779978847378832134454106348069278279538210008111697047561533156002180028114103145766194932882293292555600837735394325447904067071553102702353312683464910086820844285924274989282394170949870663316878064264179277199608732033384377154400903323163177547577227643782390634242981073842849892854234317658076797539863725117903968600759237382153330579019552533756948023113375350426307477296220221915939777216368810707250345849774364655136604061686632468968068695449530183700812012700794907704992513849181372469831981930231924902569006569584281170054013191883772327603105606694055235183211871679910023769152988947164541825745098455934539759935249426564867299404886061296986682137831327251701842555372719973044055226420766337970048709004169357959400752869610111207804220609347180027260315967379359363119336270530314633818548561829994332084764933416628130906530736310067146228824686349074023853975236541932037874970663685304921342343251780380392739342965507790884102529175372860059384498428111099739968666621110200580926888668919431129926656089271097225885224203725911594958506464716709664801045838143927831429844050254844427527678173021574318727615480307481812567494883487211154515518431329024597678527122910991488356930744059170628469428453348429002354699065417508660828348053411853792147334864529378870164041356586821373776822544939165867177595738001168733389425359183206981737123797110144586935020238715656177746773251493021523026419789419864137309418305946657807521754079056977716982799505903753339183904794286894983969783338869896704296426380102637315619781687021440490583212333621695822870046204372793074645544240495753844360887007547734114865971103530075265212955674823742021381031290130467698088718812189228642740267706642002571987313834490126248870987683269542803028556053872869769516079443159087837902247435668786966176059301574535438922348121976701429607585615862929932700854767878424112125856757996840826253565320934338833547310015644076299152196264571910629032508222773536800130222414931111260105336498261739857536722905943782026749657264680347053198856776805828496370829654063876701237291864386254994943799580025985690945191286014830160295149664524984682300431577165182058168070464656973528046914075791761557494297322222980446986828110848690288650876234485632080278797188210409986125632575520493027787382052958037512678835753991913552578518303667958643279267457692713964203359205815242137621507169893134006594468700049734927031130332892191771733662681619396491488207325721086491591887330698396095348850656619736060826424509970167986627272741597830264019599286747534533569803950056765514738445077787297912178470769094476245464513737395453057909439034348626756388983465013192183047749959347970424017568439493522358775362271823299705998620645642562894290295364429634500720272758840270296562030989787214000384286070713337433406247601698770497886831320196623822431648732566125423100310438525287514313529270145419711659428340647206008242760398927462423738037589822550042352078838458058453987489999957168331533227670230856593289463976516434472631414653751676335397262971942682721077831681225100624665077058635108096511468897598986485551451286509810013256040946209038922676193748630183732027682359769210154993302324708242980837785847932512232913464585920222585743782865206953184219191674611972684753889771398390516858690059593274718580858295319188900758139107218761585387673827611636619810081961183438002722556583265747707199680562168493357365526817713384278564580665125442329267312519589883635745416134360208483163017782037322684923673148169781737386439420085053843535847066501984286336894852624984311274553582023107963860294318298906197229401523308619825381575450636647163870393385157761991007227088116734205639818766178657960496143170989095030787800749400975870790604585221934479193166891129859123773433007224151970547231443636517193156007055311257484209739067917520962541017837372447074993157815434313546037364790849769149739165770538286529729610426513942924359464542043761051535184003794499872265437733870488476793323275644045346073920824757802338085106856312397677920769083598138173406099517134748983695357616108325061999925145369220881242528461875598637290247346512785422127713581868691410768727449314678937007616222492377358646992863745416243431416790193771863767789041332706762900227040302991919402146115916863978923307907606629925796465111529033795508010954242078530687722975956768400531251599027470940426224773996723490565802294691933205690078425046257329868049215995190054785781899018510395762938980527935121891405081080609887862773890858492353626329129884686009796692161196737021545688631779549803924975373779513151509725970128392727665830395497282947163724626200511158382973804635816826619241512001977714573707509400416009617042210987132797599368585864347601027073423322151262933853994352675024093164852589120885423766261795265777908596400864600118572036727641811508094709019613587750651396687325450356069421875622160632332898588510491349224156665401944924786592402901094812647609782514881283090549819473269994111083516757110194133016164182655469715440364092929939769382650824135532983056769555484379136227873872017789263752606845392302527438561571440814292088049053349730037718616519849298842521127433408979577560118692772271365265442592120090454022446304840135217280361793525556619120192734484755217078709444202275910633157287869321610558850613923546382757952615651369198675196184078893350660091504354868614613019711966699726538817331387318968806465082194537105693132729749183613142642490095773447768209592581932068955491376427677844028884103184762398499468925435924502664127567651486872639433871979418853015806153278379266798170298512462327538903070804978690767041325656401162001300628075402999487326220896554241284545834017456598161512521837795972130457105364533121705900427003649301775098353999123536743274624912291180644519723707548835335734994187398410280097230089456539873169368131133228087205485873903209383533077950052848603416917459023877010230932038703726474684440518278218911247104883800477702149236165335771432186713878748174521695660559043735786452256705465388191053638012687770079705883807307455868992764759243077460071412149512945788955452455641049727950151064494504259305105160074149563867689916194527755711780261017706526533910345036931284775179995015302574023167669870467748380498897623486883273774760267798022176369846086699232069973380005238581222278790889863173280915510470495744919755183165101103765510643190918108398670076623456204411015128222871383613702997293521166338418479726030200656004696826141922642638046194019136349582078054681560688640715871175306609983443525045602413099324728287081949355732561892665537392295754858040793159132253007406136467211318686384311836496952632223615180874000673446550598362956665005570340094877109988761058515978618924278462834248493978871187322041228995944900537890955393174160178606730164371639081672127097298013285024070657499482705514292244052395469476454102941299708203131060415164045148076062340931842108417714219928065889958160297658440927847469177243758175141970649036200751101258841549217856807640611981667047077081949746323453383436611612027283356815525944369086125589267064753651618111339496179104006544910097045607477926117931857828930864512657739235900220846954611779005211666565782216001768346976735256003358726409081852720885284146172547554790354957189484287341178103985147614775711682443704798040986358239409668040363363136482238699618268544818054131856676013510236364050238441662364751466653513262750858633083338063986518190521950431033587336544362582778266450324741247716499060042602316866055852285455003363034515163848411416905250264130288481536314592128561975038801355171465723363519456878836968300205925880979997711023594029734564608285817969596664266817529079097711085838670474457967474160498417364758410376841156021552283911503164896466494951978087693992921150160832295428986210760699250500625803168098616692532231817146890450982734302777071968815066385649469485808494196397013478367707912912938083807204834919452352820659411641979147397542216599823664239171071062086867083903225843345498569304287065813714928651417706028858017756079026344990213812928838868244662035362909705524841155479699714545684262869149610838420079224414932925366338268760247472404209240640882302480719988468137777449605971928365397542820235539344226895481049807703580862782970524979008958875537849835696032176361884904661867426680797379879162747291396040138385225347043964738496676451660218578778012341099654117180378212339852333990294283499025133705660997441149547868548134835941305567131669130794755790618749872078315653237992863154152121966211769614737304313297431931336581384853063400532576176088133948861447172473980276715286001255340807215001260306631665881687277080271026810801232394661259633297872492513047778395733263470327510762749339543038528524924766999043753255668298654270422159293178528700374432730840695243429734929208567592935555240231759459414569192963087638880644882662150646162489020566651211894236147483575393226981066623511493256237968808609403220342665088165711020765168232888861730257789979474089611125709050068852796972360296511777211528431184014123566423155671538346815965467787371920853152823579697842631700702041178767112768924724566318145654374780676267677174546845875998730690561023891919115670682505109064458156977272254112005948038840324662207843058627278907857057608858239772388034580578245566661129138240401676699548487692648672415950064948328670588146893153434726703943059737578001650509122613812562687923600687835470364489403773177785196858460433663956787509600229071150758421182973976670922632068432817060011192527915975281512486595714802942771155140958129750865419027006287682492931491748918582171718444364269175389197054389010919707403652419488143360129006627612973013854909256385593929839196377663759645526351408553053890511349413836327554454781574649400530051102631164781953207429030343840063084325798585987814923050493895258669617408485513516009187251492571076667718861235084158972239519970742083537683150076497114012050308853300847020877435623413050803981148023545271945671353708967408026751635429358087610196797560191808133202572244644566302790039640833355253228266209223110227094876467610631844354550764908387783641700333746118499359042589488315191663634529830219460406549610658846178898124537127283629802736159198788566016122803738237622014016369573495092194011841913892505776921552676681108707059030434444595406351079009377153653334169344079361036496585498919187595393195534851017278809934366789708375929080196970085138605303951543307514437275130108981935379001756668285741372780938785718840248612921014759664031989660278837310142677760556172680613118405775264323605971677786072149779782358114110732710126236724718229465202268319701040895878004814201078577119458013193847000149336929635535041200331052496251931174142669540689590148330093043970604932332331977004222839602171673018008239727918802413884712385294727925817084132122499203643499989237019066108568837481905311131195426386753841234585062590566449567901222271749082019044520332821282132210403995503858488248491982994922466252388497460099637803541268706167345721792434404766866870125749949458481625122657979099077121112358636444070001547135295995451118733278240893682779558799265589778843417082583830188658936716745203578737137626842208115191946778244140584627072024821985033188916237957705766962112984341256102299327141232024091116949363712310206244201543747149536881943971176273591913099602444068293165176801119671348882268046433096792671536193635509647599961519710251042395340465251786888223433637196657176246451403082712456783826533824064617180419150628360487839654988758483464485178364436755532995083431979672576037548743317580393586461179890633966266728543339424072993713763854848035346304458439408506679146666779296531280690236070081415096413878579038392972596314920194033240276205585145166769757675983084993899601721337826079996771630815289479479611576457547812757792686892459777664903113083738993131831759251233558694837296864983338165936560319657002317745822090249188486904704408322689135150730136231731466987750163714451754929787322409485056977098161873516478671878383185615549037561005088258818995159916337697179494358961543285586239555075850073720132579044738388311752722792809800855480564530811262649122857539346406336985960992878781181023908433301485174803626701343066583914468080144284930383588174068633372250765500427844346364900422231684721079927302301566747010442956281163958578272760748475466783157827551032369460308488321383370487798254489594338787467101670787876441635640584312882773289328078677831009431570273297722314668141509305888209633215013313861851932675712345447480549341618523052932187285720207205312868023145443881041696633772262762936496279778220632427659854050609104410898057275252201004557991063084683095655229880005342519263895674452740072958101259778021289516714770966550278053476907123389241109074163394065827471585947837010098661575678230561860902906832183799824441034226402449885000914687759782135188753930180060296699676445996204596723932714724039764390573385830712399720370683992205810203872755883405468321178022027794530099777284997457180381112594640639330976113111142784766717776809711070805899693067623376856235307934364894455624200765074903287814776390215992089856322122762754273251762493453849167959324380786255303488342570028901610514846651987944062944265440838284018348673068205149837556729717151228447118472677533712707669138140248901943678948895519105883068951194850124684749235096458692249550739729939846526213677708967112813097878771869604606865551496532899974175317550675968018768771083722051788378806678316567267386555149637107771980911744468538967683609222540874951615471472142642884144654943381399878179335636771314840408447072099876827183046888969856887331985381177442544328694697283332636117486986166341641586393312823377473300357306717977984752600661579219646144005711630397244365336180317455938746135513551743096576075364028802996640418738157913913482278453640477387705288755458906053214391787838127707128324660310205367810664249171568993304500066432672325411879761802095549425502216511521795388946463780346517710447373460670019914814099828496235422762719433251403439080864959443189588565978159001253483267725478007291615474336858444209994767444837703573050136729227752622884179623800584253698596564431556245870419193820468665990076841630044357229776986204740300197897367429986326347814613851660492045824123828791695380815859581363567292080210589893716325774317287115734103317945490957794705247496424293009279141304973042859527025403218534196039952143451790512112867051215441204402199315885779859270196394603317000937343832782131179805830952631349641563875469099467363726269215509951419974059651283950091385763856893338725815581373241700160441331341039551662200397863667187389486424706105166170391523709139890010648711920320144384343730717845180562512804263657817965215930362096306193495295809821296944066806570046232067433817989270849622324579963810599886318610135228783405225100783726800614449840719147630353659836453486595218363016291330051830834199170792450371378743975121477203024459381007354237616967986079420201862892986321728648756684663866817129465265739309477125424804811328414562681258231394457759994927260789480607894852456499041249419270406671655339608486002943927763105322018658530860877914486735946408046760954496269120916904634949759952741479644987706191486043678375339855723147015517203836028346678972645674270545763362091512672964053147825157989351888830860600053285167174029909496690350877141545480927193660002249285629753332118759232562216542186347981526453640124400786571752789915309022812393784523330548826200527414893742375621129536637995897668174037229550353429814255617246768130073900852010344996085508548570405421345962666567434589124704761561445148802725512748511656106683424410576766020868238377572993854002371684660324341541642531424845329415644227976594220821620531914573826781542506925725775898386627738129128766637717808126505223102856490281012845141836774628069163610797593228804238449051005368099436362376287976543271318447242551523087501851263130196713685143194580031723858562526407809329010907442552102354250484005963854566799218998489835163485625866746877842650704995329010304645192929568154960753512971830997050073705213282480724035120320210341587628411906380143615454363823338538816218091577094575068228400223247598846529712308848157579451350853419766546866582596782083013973414906027854376547270044586472904336611234187870939226334930914798369656694586009274383890165340028608505955532330218458955751322997171454036525493790867947153104602967454012464955563081890659049539399029815468265505050680622408958283686864444830445503050403314085454646009651241401499238880995510641261153855516542758426833092762865624588717138544471461400605324481172135711762414761866208527275919156124566986020097192299075558618307411860551900895948068046797280441634194396181701995890839213620955681296679225050467132926411099599714347253213685275318877639176450018134256242538596252589966358503201823205339124090369748375950081352601927716733677993028611591005639598595964149939913558676505387335563649395305618363542792347602960620887191772052917385058837755063202627402422408176559971691266525023647103804868517109052602064269033794994591216468165789155151824346189852140722634040960524404661558340652790085457507787492265304284347200062852149411001637802318690032496881673462798575519093320473114985470265974055828053016062524058494423589170757053814073402757856528948046563395535697436454627371977447741957358803581276643687906485870312539062481052927917942687542133303376623828047662744138860921805898777799880997310749058846073300241359100245303759605669693318875048237534557550134586998096891169220643385116588526051346261209863474494912782726154514774476250729944966412298639874239459957921065835761702465280718659344876095262840792037461084847990937863326107963353666491365845252308900142223153054498122715846067688927112771150988711249995637364426624168763343936339226202843927754785715799762828754793014264271981872325110571262479985951206446898460815540938533886961965614908441473721960901296657528464549334031392823712515821783661765719305856048382059527621369256653993619520612056962063365427245773781429001509716615156833091949169275587943867647461610595598972541807955512408424682588528784212928634655874553104225279704238777218317443096106166253440336966615747533778334075653935370418581234874201606356949436788880121098734053539979550105897058519532310837719249211435588288856296786682309851105895556925849481866062514469198048307405917355493392555313417998232306591571418430466647095895238997143210405028248819241467595374759526375005843981607073531860080073745392602287926776590023976814721896390583209494503460698914437305103874231346741770792718311222362852443845791381408889277509386916192520842321167785074170005000142414276330508644058952129246223163687906304151698761150856393227536103409464891112424074458535758458923923713822181018679020632367976699973136858406942374755043166091704237183394814351620084134453186452802647046749996110169887395874854168353902088717917248617754767066775419186261659100047003379916705768667438669607052856296372631068102882482977340522485596252014506327880090880212520428186050836111781094559367791322688268238320254570041507432572607533891059079029062295312512264475056676312689118774383520639251044351868372564953142014110868999000442881517928669270779219908706893329331552216843336119968522467121925763428860818082150029393453388689560512513690499836837005456530614115157652316498380084974172340184029538911732558523651940093320840120017361942699415191820851137481796183799123374319034170575565875241965060838362373611617952116308250732546161963644663942194451964004148725625161320554140202320850618698649483285589316773922996295036800337740687666562681901591295207879156962334111477752563320337123486135962286652463991418986621445499407840676938370527929620527899958436355614034768058314205418836902171384832890937848446077730582223587059006821412579409174734490624231902439804369257510426814093231823428184892657722902270114752621575104423916322091946827699491162639621249911347743992365945794811028549290651461940320956289073841908495647037743607271040145236357847091959630472442450341744979432568492705963056999815221340515038186655738430301019857891782862618362954377506822885962152225869022427665362512253215391979334569008502838626577131252610072674263415793309093496173634103997815003056370530237048010252544091977390093137995665394209013475513552854978496482855049626253254632987940841251641325789947806354300867685304227173850183540926810447921598020618238505305030905371023292189025686148668175639289631436854077154628193241498708095315274389896825204892710197047584313573381005744767853890119327277707824869570985051717548180650194902687807852447920142957089387300384200182581793506502053673880009303448919395584067970619862303930201941628937269441587210158171290375761028149906815063190709172822556483185819232914804014269305623420914969836448899604968124133576270825126156439249618145974256255198056588601741319549892999213139490767330576509733113742700623788041766559907742231179665176209170417371681490919714077523955842431741436406833129578628944373263705543538622163177205262102664065428632444784808939665627304065714339742558768329177772797806343790080189556635792752696930977696346090019696314541557528614245821905508059842357252502719868595486948353326198657359132641643336089395575825921031127527600168622993634411752571815289385588840480752032823553528792459713865097231737801341629196298769130290144237100829755271535522900404356966374538089998900936351893834858591085637184135309009794506972936911152806060709799518356533094031747517493416570807360525655454754635370384870338270272852763416636508330331860656059512263671887505049014746554166827294202831215701988066472213472665263914818572461167531168077923674742969454117532210681220907465768386177544263619627060726093608062212567420273102753738724836704590074736570898169792816207345167798079835995754995229388468612829344613345398220340805844949332125135548556196840502365632182350920687697826760078128077566399052343800523507635653383855633641969547270103510759927246606864274309650945611974442729960641737647051683430274012627275540329977862500089187233839135361103117093127659951965967005999552499468030340394821725385775446958702982780435028715456102536819319958541359775818188372631073023526877586915363213214294417678503896921721576645468888951439902798043543664815038089162591255177699790948849684582285429047938380632090139380366739852509846608718828461952342455543573487530243742940261976151857084716664711532476459738946377946079210945188289740437018450614593409600339529637347080474050202267335959896243432035354341016767046476958719452419099595959892309496697556905769004601329813999690110101788979066592824433893485894610010333429304697149013143089551876463149253263300378347024571393200405741525507529642702142085972140823943210228768424342254034598468362502363788662621142140260216342289445927704031653067149901067273550251543390346568731027431818014495039853655901707944687433318082502038624291252339787169695962050161021039284588282580391144773484616913738530100247036103611520828146620582967497323106012881422612019938210137419827812931195291085150606918685787907866111922815606421243433177569479490759622879219199788727031901737264763024581957024992368047252422354124037685927013081248087369541290027221618748779479129270663928991886872270137402749833878123576726614970898706988561593462891421580933339301463421943016899227432203176810963383297646042944742401364418565876250546947058094974668933354802515395680462629510569873053616568812582776810358960510710573063846848621478493040258218476912121381641299635204574702975095359405096680467878275509954835222101034926605286887551760887810859913782379042062303890686478979935691297491055259472936408102182613508224084736378363542802546970742991239498490242417501720623049640573664793724917669333979911069864365979585900734403164348415681992596197286391352978898057067668777044750914387712936270594858540615090586256457294978527259361337027322450566107242985278011027594664404047936746809220301022369134135389142202882568815656633000667946954837799295076726244936712204633372505572510183799071200794680151892218724889252828417660321311301579771747336671183541073909550268707700707122608048453848538193114343135997406993322679863995049649300593188629431930838372371182098095236649268079761940505228239526616612947223487817620073970482400785510664124723893696623114844845777673991202479033849906537552851787962488442456937708253859919374504451037890060946967921431367473293759803656919144256377944693849433273468976674236596755328897018296768741622731651797062164890136973680048837456596358287295894331496515665574861716782990881301340870092022806072224151226942541749626646051138333319807026908230945420544787231571564363377036644292365992523904671518154698710466137534871048441678301886480294482309040367678502545313416254512871281272750463056582094411204556503342818379854467253787668705711700320869361525663391167913026633472370371791136279128660082865144123639983007138575840132435731777617279179016659852851693663692930336885639456461927321607840659161302869596486992438333868120246248725943235172474851594399725544002177854261694456193073671355336149142065187919664162266840088011609643229472034191320365531793633560551757534525610543670724995754816191768673339942811434425564406530110673903249545599973111947134627801118535545284352416406499780638052779476826408595989927614069944873202567452442591106385425992052231712981715775129537300460846358273254039074078846721696062027915588144558117864666495784664710185373748184100109966217411781586698630338108456714665220059435841625062183125433782483570657649103121141744414809354163682191492983449060165691968855672727046535178620203069101847434731191368911262287659299045184871159778051783385565658535698492965983302599170850305612977428019502141182816317304849509131214889213686534424752928491936977227000256912123921990310787993408295557840967472599608298181081891616467431454116053348822491717867145431397801048623249210136176382998778531080490078381690344011464972155033665594439288830617346770466396186158332856595397208158167420530511166556651130483418330345530526962155283842113235067004614153052436340843065145143921940279498666038114781315453050620983430248799603161590327885178716117486387420670769691616698781007382522010605879770102577021812559214184285996220017070411023526247251539664589609207449606922148983717981173556343127430087046045918865418428355285758027267288820382030742564551215574087258414459796196487639840008633719567780581002379169884190174217931909620930019054371399522391014143823058139079892843706669119281505080553844337020307994959105837541847634142454572279529859665673487463273959259753490692657357353747009839311997969025429138173462712352472669766587944398196384503599488420923490247467785921632517271069013679579881972222476610820038279998333871848469164846157109384723733514785183296830533590288784896473000087870966739789804106110990708127063753349795225705962520500767908135584807216175687726620755577885014839034694266206331102624373711170914783847198237434158795593334949572737383997147505219695809295253959090806268193632178096098385764361064407461758019782292358176843885705455333811569378095945831497758986184627286079647072143355205377512379845496694240800266217313730003149742651993918841156120096530311839478963865635654281983916114022421958407232907411292965664179063456132462247589641051534878284429848692440661196747741009201248010647749151195400199733791718235901223997120928310080121855951926382106848749793590006255747170832185298049297161997391821146161674716233320789727301004089922193573691046374041587576074117315540991422198203817806184779691161291272997241615508462109075722254852246769495967756171201506126273129790905375504442491811943187884873693063576973462680339021654576656621720920981508234672039255651310395580594254500463985361000632784397242987357111062820697511679692601790290667052865604050713687461727615412884775761173448732473823681682371347265402909915122199788917177418205079973314785944779369638996812977536374707245693605731325681341763753725151556683911856043558924378037906094806765465372917669022974539163572746491604117865923342598703527662632746972396477328176105014209895840620229618405375455631381330210913036047804824265848498556392715080747124034171737936425985624114213664849638879945097207553321539696836434406590504563664287797844123277865419047146925700675316592804920923987399120918855453924646282574821800151106405554798730848322471178714088871322234221946909845863478448923958531607813678612311186131223907186380035360359097620605417311686494253881867845244371101288509806405400948801545324315982876458106063798962335546221698382047374881401746529599052899312571707220767644351805746847633483480892712374853593635165939858438328183844974682609108407895697557433048599553108806193681457920684041141859230022949593503125119131871798648044478090196958480530391446391956673890940764727579346703298295675221374702681425054762065562724733971398509197133932933249436465737985749578303652074098792610387129619209510515338905572439857705894549416818302265438531403490269039395027341286934577738642315345870294260800232102020331048150102423124278966719496071645795354969625759792112496110769952142981047933817935974875125538605836991487018827974623136352446756100931595599850831240258947059627949940149477503806773074306947697769426973916556870608452606302297422761586844959590156914955165614859644753022378717164601665963096074688021987445364891520970890688900184381075763294369264701166254128963412372436758174182556095106532395972189776442944510891344809112600085773216552283580118061035284009933924254094409740066764653139793880554131085969640381080209685295217932544080286950322964392319157803939709979072956567788327893683419088953581612690806526017072905236065769668126216357160678320538675451612609029784111489839279373679617290142697709143727713605291978570258533197398588584642304585507583996051425076477575268172707469387495510424762181210439430035418902346945981809548820958305984891704999734651809295560831217096196828045646714661003350996720670975915166028965642666148040920651200935845601811451249307348204001415833898234958233307561537171950641461529520025573918892050095385555763713562461324320928663727699130619445349236134352736237328789018648941713687137281276062401202116972813711645015297682183820190406555520335044281694374715583642638180572487485785813963394716976720199973578888222670291763282201656078065892483546078707130442669059225554726156919541149257535327534395646887310523362788645135335584508555487848376311754579324565123433815122639049250446999350949378540394849928300183316502476251976729419847286159547570942857951552165609688202154715236929938442929281395095520490675268898851565710286456790153743092070658402437691528045272716972504952329194815746903242919827935520167222686308959524087385149509249283156392119862490734532916879970712606392931549184467023101628220521918500217812779714826401536682804738460726342473074908995904409980446063913129519751583984611225347149613076600915467522793603766123338057239997313197506549365456366755012035053611010497680263930967943207619017867309377221850847730626239813111177978772266120054658272445079485378107701489153925473545597941920264680464606938185002307418669942786303036852561741662991223683831843966575331643355055259791666908799138007869618550195562260651781271307513238314502497634590118911919928865569015153297276739983933674358327107075427755949959620255442885774282345860769299904866782285664123720918766933715595305125370587846403295871025794317562711519547613110181150176142735031585419793524489609550468343690915339769624657458981321217413399764562156238184427283676477971352387910713152125850793116345179598145756897699187957865267413394827933716847187438310917460841261146664654551607225610540354184585983740257529475914058869112693518769557466894185327058900489543589626049203378668460413403226608563344899530386217443011051686667615290776257435833691796713519195884306867369314726965662901751641842197026834839279822898782743865250058892197036680513723031816978131135387160397733696823406399783071124766089390994470983949380591669440406867815434897479682183542493910479109179774290101387642045435866346944586882051984913794589150396758731978970429158663631757903320866486399607245780870161039442812516019707692355709698066988375111376389428665692726021189237671768880624122230775154741412773244704108360708954176291760067365874537026845480587204558858440110470001396777430349055694227566777389614789337781669999918518455609406014996391438831321675816368904744038969955570033156082296760704554269069644780137556567330465762292123379965287693966889517906040308768038757634280676260250765097452111093949881701053896483467029635342653806557533970599694283025268688833610388077684335185841400142982286145404567225931272007685512571084785746390485725775432632098892635968784441430814135696650424024128208279510866914292245978716316841055831789328555605013362485926979628100474247057443120931289518580268575564785219822477250503973349885805159691481173613733947472017436595805645428548233480113613431337803278319477696460340492674347192038234504175373291253872888912706200062748411631591954646303815713189742448135360410202374517238833882982917328891762404371386848695759067402561168009182466564638125518976321665610064795226688176562168450549099411403659180400913068885823810805523623558387963386182088044394973732068499086147002476098952472733308237029416866892448750567692685856070568760622017030169194824923324671982908560894758580976327960105670765501260028915206113567607268280142193064612597008681229477127541596268488304794912699389716058652075455890959156454491384659597869690993022306284570114899588880967463104556978704773047876873115065786587502739471643268189840198992796818176057564630945252954791018722898623701290706869826878087474934369957151720293932155911265705058084489846616062831125783504196417535250072469548008790892918167862807121671215886249901383236960588161913230825626741458359411223549049381503716062280846294970146812514637995286229926280890188182624701762186784439561941036067860040804439004751841985209478399694177919164113781487146224021339910829163310598962756727803631821015619721837261861841933662955429408299784778897891806414982746265352753923254784731139731599889401757194870384306926930138804428252129070129192311893080266680648669869918493192642613948737496642215347454122243825778258934371528642287496643666991131273075718863931705190136387480627803153830436234988809114642457663425976281370098872823847339727430202510311429664387661843733633035192437505509877883322100489527993726224588917237657623966992116837400775613115488705894019532161506846924197766790369426380864318611446298281428168065715487792297224010346481531221042717088489282197213723995412088531810030342335171845213457627017568821249719896320112184845590012826686473111798804992789475784238370571738512305467769776544039065991911439146843267502667879064570628278117300931764474137394550281110393952137461561452524496875549142800910225967328047261316429340311361457151869408312575154023852867430843810371542973807256602449710593409869874681209907430188050475165306315280356645123652573895519945219318423941196486902317538183761131500774225272328629518027253887082916922206388664500456101123815641760527254271445009318460506791508566802652524121664716710724806798679595578584230481954697772700324600036198229564225964273195877846941845069253060867598025528835624975056530250361576699789808175573444054344892207741023185688305983669780897868539250318169668972043889589221161502421584310788112670164516524560995080296168137812371399635900036119547332785900736614417997329769769014279185209165611813972490307809601783845827041549792097858137242034677981794431402736407304046883888461786126271981611736731697721206221009771550132993291871297751586528840344188207915814529866802945207581664529251040659373908747649017829721254136075539904651532927887447251795800008294198741247501568669020017696387475248617574440016231205284014185540750432563167819930836409129995571194311168350043462682276897560966787404068680759517888702430131219769129777441659230910896473403053536557899922265458449648423666873322279430070855287186658425480107956969934927941750123325378175196457792947932373625049776701826116813374776703402320834119404874556066584918199316705590722290840565172236908549695577186984942925488777456638504431376517393631112147019754144093227913154154404425479499602934957107956166444028619545442138865778190270414033947103718344876458327036726998792632426161590869651323612278374760102535484294355660247480385157139911078764711437312286523502462615008278483917628576966238041073183408851822229429807693660201549805391089178787410795428119504073765261469660047669536635929186456461149875452090397689488068398153832220667240412780437287915778778049257224770312465368947750538338722213761580341554638428534755262961455539988691381410999962041926023723673997513591060266468733204952649802063483971218503163435728877124531114004469897192484436575272685338653617370451932696157836584413190632563353238608056595012252411124632951818584174224063736927785987872673712690014069891974001069146743140944730864187331257611230765661744058208961133677230910736839570028182729471503316345361149784120894350489582192817005444015014718684369106944895342055391594088068399710638828867837769365340660584107284697707668668072098419107318333321547684827691962855522176118923540813326731591741186203292838462806417210806200573639953035561995253133174823874050107556789896220823918532462860095436858559692094991762295559682259072851930427509981775591681802642299250641551306491587869806254841040607579623899928753431593367714374784234425113029689251180669737189357933039921594141662857924806002008921888878905265804268871323498622153205312435844578949642317414088016112067779878086215831520890157276465632622644937626760997638267845154542238075131244163550707190798616275369499882430573263877337011279385064430424061172722413975418221136384511601458866169599560609820517474790631226801619031462943850681412374626045508517686663748922306587512769709857710188431335672668020393893709718225475166133070105590695853769745339242717907581389298619464003310470890905763511823750973158362032608660112583258777413095235922831002678515738241034298060373002931947658893348031366833678834079415227358396403833308438495803200797222160894318173582072822286598298710487666637759682630777808857563790220393920456847957135705804996551592661799954999161238367825243556119663530840068457186361605185659393928449083523460221468205439331720228113113096131410813874879599189333211243173315827649629423515723059439621048858334792338639045879687507259693381624675964289436096175485289292958976988096860690124947115267431230761607287720713663942659536484671830708326357411622191557215229667352071213225406373001567846690461953833831717315378676917801636515060045643778540752366759336675730873756342438911086878318529540091108170308070189080472210036932039583404434216213188605537012782077499995942413949222453437439658758997021600840249740723549034086963958455193846792080432854381238480535730508895142697637247098100097430130704738113942148125897697207369261505074553736935116835419455011184211293267353039503953657002969678952576405020348807455838946424977409958412438396460471627569065231306454516743309271013876580111086658736318426721618315742126930414429690046135244750207621152466259704866420598185211740055126959580926718952830205588434635743493562592105233045987494233775797231137961306445758479207780229540882685947298228737792713672575226736152913483112098682836267894691779772715472548280337563511623759515681607882029598530143370660055370124110394033026971345277382278659751091103218009748548232821388654145567564102628137834060240827015526768381779200229244368652698265708397476663316307661378115126468829118151311789142589210295536145250223429900546368770733362365689341904695663533515180664640201049873767008603719123100137259209101399983784721716219332307677150912679126307368038830606565446992714691041513916583395528697940668212122398703819822727290453156908711849480870153328543660342234099354171959916574094389997135938712242394055163354661500452825402323473551429315332004946131393760136165923466402030309439034023350259323291318863553466812782478204131475624667798431712933726020615087395313870841212793956972223578199415369182564206260743555395008392423073952261458489300949506979971931105570645215252264465888574808079988904545523618834021917545180156916271891580770168498453571702870486799498578932430401140687615984823759720788232383880307440838194816760166431467698156897130562941861060849339295319410284255373215599940584111595416319578905340537751761890997035682783443086395166459216068731414387752086402561756189787735074098860950603948352568581026826902056728396977126130872731212136658077521193305388785964278378203349371573550924295877518826969782462797071121724879165333392601840235678038956363807740424225408565037064677853573124572090006041479276214475779402352924264595436340149649145600246697100596292596178188943854508624062345639069141352912793580165591971974876637649244029273582013406015569373223140662386165830893141174298723242157073342866179545618963524242004979166691798930645734833864821527275449867405164366326488259254904461493122659701772974391050348926790065943646309083466378781152326720854651865800912705652439217464965366351676744193856009449441380887915422661606210447214922108046517589134260257768382118113438460578490300203049083112051401105586199442735997642401839720233323998891732873667693863076058388022098862878862870615970308541328981611169154730512739251873359574164308903054395901407956101792179100853298335275199790778641582276766022812267322309556959865799822435208440371239764246302033203959787730687285764214451735311663836190933872411674962433684191865448743958689770670141988269366461656131598548552945102674785564167115860326178310517516984102838393348726566178685312727389518783723865164366398608993800495582128348949079341744357896628475466682589783957108614594705341917871982215852967267103825630518549977164118095150023642248260911455846330982660648066826984644818625184416023209058373461778471191060099754838163997297103711373385682320945816452199617844049720336926695595439159251482488116552014797983693377299670131802840216431309793721331556224119723265457833212702141870598367632040000371770155836694916478193078405639609998582099685370383224843988468792674598863315277188842654607647329005553515682204092551878675047922199310064392931314222720959151025690450394838146928073700585981878724345067233016732669978110980649222037563109482363604894297533701774766768532228477251301651504977192147518893318925585939166205990542690097247936430032827698149333614694115510698964622424813670434700427834436746119327524860408728349422793008388467662579554777848487620607371672455948404689849838202304267943096280401278765903747940485599357683824181909315945511570050814103003794604230262740872729441998200257128357188892709710741944427183491114291872229743521920713134068045152204617065607659751610379071427882343218265110905712996964990470744086533213791288415948498704892543731026097226223405710398707063928850436317176464446245640924681616668760048550708272844795762207315198728821233477901673922024212681296885386661309674937812202927594631137094160202719099899118737897905783768034719568581903820137793024521920906030746917864005654074046716606642710629782778840348064026757943585443209026429408558374231393355701283610900596567250651891217250312175753876268303910769991488869962139275023256589264049275532111815632296239411611733708891656120520542125400766408127993753524069350474332097489804803344193942541382174000994794898108706750513501662483007521508648244492603623232913951047549530323464755430722039912906657448009606610011826661081205893378882134925893887862371977525798974976352593454562200062398889474431339218896603336243655987725528254178680932894908674311639317155241080432268801060648298927954493423000268181212700615225258475402167465364364258764655958421349537777645033589614170270296162967115817580463336538178313606977644972386605778122286339422169684511319632561026166806575048381122906319459381274650313298477130151441438254530509315423068377327584334019884173506821448274019681120453876473567003803642190410259856470552133967602733747354287087752763725293811582043582740196873972512347203347925036509540284255215448433437443411526619284026644136005814361188965829502723969606934443620406290504359383166089359668147204096987625730293844325684276657603791731005728759356750602774878708285336600490064328514234121553213360566626209403795045149554303122948407965412168861949759061448012317194372107021908951279077311329546948523661271248631896955421352807050948604715378302056574967244327812226363682518619920258794610001071845346420333921660407426197518744467518521544300973744375472095050548073064858787261735618608103369527378557395194230920203665530388841881286048723883648612186023918928612059967604519049315947108409305171110737508763853468438394246154007191343701122475352089448920815564906417527872076693608104081016155898954379137329003251876323045778574147701698041552838787777937500272960840374262544673581182555081394924629004662423985685592536381842614612330323207360352899048589679935464293310731088439243910889365167274485956255423967534966149447505911473360454488793701534347194347966375608139759579799952689628914260030827273983895596771780459193315245006212616517806418407450550297344038485834378813525945911631303356641963928017799510743455150706447430482034042603903161227971957868415525593414803317512805698151111586688242001302814206853368979461966654662377566622456359061790052417852660777016518932369162765088033513483604095324459199766204321423991091069850893334106399156570701343055598540703567646746564743424824741744611829301274322958607263497551064288346423222274677943700730586522222923703014763276847364046563758957498768279489131711696972286605369903504193961224505624956833552412384019416992975578015857501613191526484486679348471039435772143891822941265648291396475292997993769046312455054099870540263473430595949878882559952249575010246493611443281786289647227632750324732950692928589567495177084426477928094667876342657421082510385087031416735103953086851698494504737917814401037843333169672141629156872359368199303498544018458310749934730944997592292030595355624252031867880637009615630677792219893819967473250877785302467852774297122260843031682710599697329206539122222280635582619111154141148825415754157092829813299720912100396044419221200423394092562611360013704893962306877018954456078654892699955721457851115033014978110824827420135073740782332643304355154189430165000317473629390035574446195873181452219408962089573216660038508461188149475731020166431180897704993930211498429319939490015989903183756012449250770290107969482179208714750703514440818746419994696349545041443223895841331216652856138130543372125687168652213126890413389811898223684160247730457620586884635430762293470018348026717679450792467102581467277968692248538172340078379298436453729795343686824030144576348771501613463800563247928756589096366096589630048785530195395836624871155033236024758895494437249420365590463740705397766748090510460377292127489870470299143453560537010141196958406019085467714982388228854985438956893699731101520208183186904596105243459821774161142963879480726037449820753404358457842375729115846066266250395145811803151013138513595495205384769407782346081450560581608871041162553728279352967012631864770223670569081296678823539516254435650287709745249951076589719075844645259460015237132194501365059630253906127347056523492015546063028380388555430664643880672950016795861174886239155797201005719776736724426478981205772698596728304258088572405909474622228404808344822727527087691590170623866329573036331719749084363121832803571037942518086855523038989076220158468276024267829174011668050172951024059706543325042939334586160135432967482290662271249128554825088825191245041528320195894397403504714162900407979571378400331561520503062068934959370401710372972190066564166959447162821964071562021054580720269528782045778663285110139631451353151329906190557114803746099949944250772248009369295293551136590828919823346912612033447582381871047749195231223058628059003153448117839548835984146645447033481921960343293308426229767991944701748161342655915603650990370935254464613847324117732494891466984018838320167496736260721080630176380167268157352937988477469983695410031744094897508282223915975817072429355943882440765874651670542627510414553238606166503971835613462926625409145104075774978834300365089521716691184301092328701908118866952706732713466676975735919236260334453651605737759933143021041722259908813293093542202860195319807923915813979644907126943929370869743941098989742810040203651371262048675609157446740660276723811144175805572340843201597299074457147436340019518141570960885159236267416347356185814355450465910620613365946609086698532533697743789456627248254266717012738826537532000116508385002995462971841691633251358185221576837167230065616013394388468237638486786402047706681320227165486147409305618803780416544551921206583099792528320295119549398143064467661170043792001164721996631961722782861795175613752354521082067524687803096290278296999185777676317486070407884604754689365289347225238737163959416121917368596149785492126658002366125039101916629448136872665171062091115344591160394255512989579224893113864624887954035259932963881996343963882054967396135801506885129553701093037604933911239416788259232250512944938176638682816349115430133985187088774439047628106432596423317357811894474748103155439103356975525205854443482621195666391794425746534503589972375434050522874571557237035385891552687106501100373758659555835418460243013053047651343344522118747179066008874879689898557567497525545041726565245234072739997676692236929979805185093853876126829995126115360747599068497820745802053510010507896683223384622694224989254657393110150146603426986408075633082915364155032911575844570909089329090825737215130190720366807993504340455011800158038379627868111412415509362585484014965913355799311565413657245027440028826351988279063766916195221189910896887357610343633025409493185952535989777002965995571902127182617133851257136692550395843062878764549064250552200112850562881730817313339729766756874453455114396869166750603805057228162617916200590625114541140556285637267234301421560663998136759653703984724006040824714884944325125976170297138952333681607999040642389110022714182525494296377180890386377573292332171517432829270805876815540757262484310640653167289953692139135341397917087218368676961427699073723098044702448377692264873936843728635843930004506224395876836825111833277667766844539982517327332866780084641528506455957078592656616210706585762962260341875373079243798059877495055058001280937410916012536771865707909505437208619251564580695356973049144842707695335519957551706788180530131878195175041928609670626827005773569300383780457261604337147934668849290310095142969037244163158219298671040762187138885572376402291793865057264366774618129457587129884233222230685436241682266773697265119067740721500410776353142849308327085655556905397290568182797595200462334951092494197973249881586060322963036809876680787752910186349169489024701447161495819875004364945531331701087202524169504463262235671671222248078325189268847556109717708417193427747423022750226459019973672139228025265754779872014272032679871050425138184423377259035269699199662240669521014944591667859338866519690267779040414125297442264490745313724512460317534400949757525567603926431859533936242463607752914077687886783469477044094155141066517236135096241918376435071524709396010787171159494613386368799706458463789864569204733324300752051587143045750937826272728881426998153253222403510492192203752299708997376129375331268791134022803523044147224634480948083464867614859045181827597793675586688902257123468424627737431784204777076936427847931183090309536787495548723589353750302735581723721770465620650477201011618328915372060635468743352590995586861264789444149846300489528880549643182672033016656620264051549050405778460463685796801141347836237851935895986757350287416020365485528931156340642819096174717654450504980549394026356936574242654230029311278424030299227627342050722185623736674872009955738682016596744107631216813358364560375480724125290568555937043714431097559339430198038646671256816652425849623807397791811136027965344473006285243333853339685360711945890006675404828870516178466661914617471928674938698399250100814424904037464038225944399754306065353120672777161714218186051176789645984948034332954312612757310928769374011947678851342816364208210489856450994537606406443502686587389298808139152661955868421811001713504538116664273279452620839496463193446887215998250453068150677983417895814818267308012254644021661253738754373560427280555037580579314435516753375358497861431888936353945357925802547950057501021319433235270015484836148119061911464113392254279727814436672836471105411963525707495041771815102247565529496976396214344421501130343219278612011992167379051310227795279127849377037188912490215516978464393943209708053320429250996754068711160537666034693478750473018666048713673289498947499843549473671827152092592888044064988696008793832395425358848353148093255694909127532842075166928775982816862267408237564728322965811633421739364376995494308891050841744884197122866442691533988693135154076359255168723695450592906014230998532193401096087317818948960522356612430391044791732334431513675862589569219267245289462276095440092074831832744650815915520643552027414144598957051398857308775688580218680084003520281496874814980742740176173912663094949721688773324093254150064099701117310624165861750318691994358069172656796287149710200335800603159932274633459829403514593103201374178573291802533202209095740344732756614217026754007886968660374629056538547020534527224601152134803120354450832057748051229454726520932365979231336992077407566675165316792093900062679217582186783169385009582266191787216994528433034635631753264256706372015385680215164426323979128750005642015306960375763144852149493572651192669459909829706306422206612740694539720321482847432456281326303146272719135204354320669989482987387243500179500530400563684902704259418135709865592953355178308295442685459537304444094623382565847250583943282940357172583350912363324264825331466641917685795542043552696992822930655053397568205005604234744159419865131505696572447619291203931042455069819954049182737941803524196397668198094503228705293983759717908584980150618344687226860292913653843915714435681931960815661776444432126563883743460794563129002574029906416888788157144270474680922220296023878218856511122747220366968496297803678779481121085251502585326307792998441078748719511775831654083547762889827977063758322704798575102434613382725653398689121706832515684637304543664138982966499473642942086786050942127829764478801709312287507523322241707209901553102134579157689883410814708957092524883231527003624314900047725633122366523438411868809703693748363967693610768234234497943423448208262359318012645348896478516565775348144861610289058995752890922538486484049487844280803801163954121470659383289022218057125941490946921154268309806486458858567177774723525130762069473866926645610311993994748836557948496361088078237894837047358722718353738107375236438936798328809120404622736753093433285108280370155250129841622433053112727610952626335704272106639260411125411064896445225145700085091995005066273068415448593289023686723541390894356259571254351882020190770583860851467259057903954062663006670594817969258437155190035740674186158699747356184147973602066209132490593915043927367491232147030443359357705492079440822596027463012882247385787699604199618039914665972006736171895417969295653802259180833704353673473046276326751036856244242447458529594215194727894349814366890068876844021762985445769676433064043924053682531173411270578918477828221275382792128305048105075092502930391258534049209666103590494737561204265639751066438214570653138494844224338862019117675019464736412618076116552850411186188246950905093430793743741115188785143555254367805372343535275191722585689131257263817352252958267319133243947304573802199424436593118044591698337623401946320452684653989037677592531109431454327001105867821994614443354936618599051791251067914947592801060468822155249047625536250466575741885760006236680576393124696632525901712307841863016960393220009028178018110380565314905952173506202572082701682535141476992744824933470424389514935611374251670825842189988094624049692347854794873306171671395473052291890962194415023812964257061849258211498364631624412984983898712233181579326544908387823785746673097888408183358800688480040480831722038317669571817724299350121366985343412161132886024856028277776024650034003869838333323084215105049416458848707232317970109793450176771375543127235440950710549000889965565158048776163082201512131122123936334574169582395407549634684329338976529572006288785762976536464699103020854454450106395624559446013860518870250726470059179732669078889195135370899712732319417835480630706028582283500433884876338350870301852686630697092159584189044907988776136643182670052388474721269576382522218525047385752973507087325937833174274810810324575006484090767050226673881652948379734153473075677499317042591730892590292360754524568452883360061691143062221876348207375443835813475349852252343053866847719861650328082560852909426646562021630532421375521540884388303120064871605010211234610650115073703421447321429577495276510197494341506643920771072434923718447530416006027533340247956953835793448107806837804683388042808787177962742594773533227907150565607637686796334538241978802946879210985670009952401273008018051730502537248461153898674227397529615533320794201610924211808533997312157934395628418580174708815494800477294333726999736106739590246714741325881870705459446943206398149905241380001483614380334930693525552279091611279221346416012922470377984632821367642062452409991122097709008123647117907348889796774301515580325063311298126411504888146611618283825047332734307821876686456970263107936239977613179071857106986288182638298318601967249296235653620758310558593551738417082050391791160563199256180800792941685836461613460925009416731273798182578990425032085197409775845331513019821867372068613093519761623767854088852311473095059224904588744707250640391072942032481329189204461591729883502531344187003216772340539400891534295015672213037654798007435667992228576803051606843848341211015461456764172899289800695577258419823746023762288336892259563347659985149974375254635774189059185447778098341229533532040720817302521066605132759518599533046535124075949286187250415415264831967433499378766752647875129889299367231082989248031661329492505654281011597816687249326194449666466178882891328037548102368126395095723310201941938005513008989131133552626423841660905477586059246398545313718436943253892111066307653383748451773542155872674023693577863000776709861916949169509386440107107062026471705901288865851238613428809163381271323027172791821735488698833410453282153815080997779376839178608700933224098167825540316624233628015000256550666128786641869325773183369028447897747759396477709055760704232741400636994027213457819829876691048330938776546486774635624862824797751599366225617631617001472286355991083834667098799063351959304715499036908919351735574362003261146469688097014494123670355772938224841568220633773456244659023854825099709159159131699677083835532798556235643878295790453189383532086242989731163317265484499107141428768023815463690688294128903562474327592557404149563141872018587638711496873504517500950253646223707349470006915531704438997407153714049703501641966270779929356240368875453682846944075542748174618337870042089116265998923781560460752073135220448474578346119564140437278659353052693595404617377356026461014574993082572841878525727933073526889128267839231012672729797771485102242290869532935771133105312955310331663879110842301054192275697746419025896780524977681468756714498950833130220677563363196086659848754383296640840099272071982161559073592088138650155932603274333696663105346699244414394862704068775361021351157650818487311247179677336751269008977198448301922826408124283481875629730342621707260417122797195897226169789852335965490850945394862469439809615011510162004432759958235176308632818128246497646472095997889302423455602755227464884832469603561954353880925520065046628502663456315254185879910008362155880436221045728782120385688449943015263153040859560200787758415610837821599930607629509615915121703505806490071923228813755311693705236543832529785153896296613547308702067747540581272613673358567966458282416439849911130170769465975372177568386787051831593475352998647178586126032302813459348261172946593929843800514160867937404148038162043203710353730250514167437874617876142802226677369309526445188021424577351631907230254174163142998352293493588092408283364931573648846343160383482269388209629443974715334931676506149820548389414199429496942490714236492280979433052665133079400759543676373928451713624481098965423797370284192992147552772832122250655609763276035197715186727072949563373005370718879213212430504425925244114770716581715829452740266865321268032412121458558767118145199859399802597144810882508725266159200257168344288220017644205163407330956330905375158549163809094191331384984828289061325543023122267190747728458076648320223123286932249004468614261677039563375103255569365085895166214958089345648702681854725041596601846500457529588092086221739869088915314816560995900708624905538885568731663290417427811696937244129559546414060461605629909199401667422056419628292953332182184068298765053444833927830222878056455571443948827684599628427738191067130192710978567665714022746734925063754618805986959689104737715103392546052159777523734218727600969470368452736364154022286468937658825232897743442818148228159045494657476366470484127256765523444137946507474114260511210194515863314662047417048686717323796626378907271209476005704407540179053972582840104697536609380803641977748517028531735375497650362205238397077657226006940203627036050596229624552951084444000389378650308138010144561812435851327305619560154331145671704617375492899449136961733373662082551944537117969240917037184983795757920772998951798608586005842271286234962201352917199670558185107652325984584514321612447261445015714446906097157719881987094365276857400767708141004538455889336343729824928623784065786683878872954612436895836636058193245268092634121563216062432702512797043749135345323084882174908531395647115601948250524077336404361133738370722247265914397008715283032624070895836363171443655523320149122889657370858695742466154130967810071201002466124279464198597893845490703623256237719695970656090679580738098337334474068241780294751283612680693143846413978379676039915787128823038045972547357024886921780851421282530429802082090293247076745374303244139667630306526880610154125941116016779242429308228512428158726556728013017133383175053335524669754769485611802611296878166504684652564045457962202653526925132336964747606192353699529999067613627101196674586996747287159518755720898519469506329416883404665958274079022931493411406125926077666376591742829593433984245990168300555423673216076402022340414610364377412141234415652550733789186566531572154629811346492179890807493087276604873997292726157310915867854113821283538781745131035524951875043956341482410866719715997661893509377948529789963919149440927971152180760188334911200425072797125212850110713208218532252968944260334631293299234839358978379556672009322283441010301525414528889899950129930771925251832185988535912828694829757528100620424074771079149420472997754762394992995956010007905578426442403084643991893030281823258995089099373936726355034828976828982117836304657015996567515009548727562168392684215372584828581703104183973739776349706185107759145346598453559081031883519438575361323672412753812580998187358730744770361439900780284823383746407775082812605139711108016167505879279927824182725556387891526495892789806415212276382210854852672634945909417814541109024881742505336150694941871278466479083612160637127787947923074068662321431045553616597625134204875259065484598133887815124055200127732958530177598935561155144214801876909482161421402174942423326960979085741858892992942951725348340604162947797570140394061859226784192130559282324910724865182238601094477068100175489243107787450206055715640800801720521253473834507712938936232582220734435590646266963208761701443818222694024462552222473687005517542019486710940525153135896679135001881887052403835367764719647492256362029148776163239937894683823775553974447863350905724866710157822531136194354370119389204657592926005042363662517643449634306551414921343755420354445288008377370171796782214680341241423125259098635760112860527948150485451857936776127440458689212011366591852305510984599263065380700146845593566562711042299820557849936999445211498791803016736995464365533558051604363355415154009838193692056560076106399496346058038296136964304406931869830812985821447767141573863925289044517263835230434031179190086589111815003808857464680109665891908662439862019785605433586303983949838422395790350029611822857638688420655882825284004031537806000652561704466430099222553228302045004092908507936401950536538446109241785318443950656406634289878508193531406335672161350482997182477273884923171014040695181959279078279379412942421808765810005741824634753749080549845662493535308721692774859809462307250537411441484613746856893331813587218626338543315634453778190040417688192529596350757215800111327164997531196421182052754898973002795551341557559731976734533645187501167100325373971728657951927715522991822588806048852347142069426663931075968870590098277315233456079620522964493462708590631824011235224889555959819795101315704087450584857629203701881887933421764068659243959271188578699864657686925399105009110493261729866366507378384196162964808920650780995284941293020390011113453626667350762558493903212133189568647402663683962336674313642524429714753983599519808119709476324135889416468269041941658913987501531442180396107044542133084800084880402208001813263453489037706424657804931404036295542371178577127705228249698666548375345748422752030144729515639141662838950404976693667918348636645976490023704063109130600150816165126771912947340163154100062426586299001214934561181351851679203288172629776577451625692909725361176128100501659868470093142096118707704033797703110962381760592826448067603506846280657504000522790419517932336590355263875110272827003843610042007522192633388075062502815108467695120670226241231603531670575510648167363773982610342286626741047045524121678808414075505052441049813579812560059834614018586083984306731239584557553573468198001289308337306446773089980182488962215009553877269466471034259476969213923688627088525634780783477185231581737164606209212266430467087091162644982704061298565792076276577418202800668172051423482391705776502925721561034413469344596772418234797195889646362507668742240373937659056237035457883820138768236077718553967691716332061669197935175135674398185254369890577271018118673564953779985456700157640959817833727513251845443014334629067606795779454640675352910111164317371987498686398835054083354130074160103143157939811015140595294308823499849456251649647031525421804762721779531720336452738327786704702201730457405579329763107332747117997075426805370248182858023326734123491665707649340741372071418338891115721309716650607054152907176736278103094215844592185835449400431129013567721589524580099861099167961296110468950191349965107789042582762215973800023439356985348925182270400254683259759675884427654336735629251007809232410525873804900473328942535480256883249378977476284584162949774085425713396528099349275846864732041799285081640464461199791513398426585853838981629198765294585991540313431636854637433953752826359248583383962191132540016863096102039198577553849307905719234250038684810357496664932435252476295875123007330391974268679201027984574004480439137770387413507178570413911395220933300979229543138094124579982637427471893345420396057340114940375149827942174292787503514650885574285657016680454018543309143238766724155045940794214258707256092739856715719135092456972961314423159990982039511626531468393639614573018712178589964713081483340605922601124108517093486716813220473727006406276472528996577759542416934202302656155519454200962531471505634391026632612879796075837336983313059025377243573536708474584090579426667143658809427355510128715350244509937522902802766763235517865998503341763147716719893463052197071879023833519456101043810951689180513869588532030426528365890557771737362645897697033595836389477054685037074375481558507811307300256936278013780035185406313198354320574282939055940204569951613330781284990029332054731100495034106535812404134052592108885972074928125425510175916958840106872320805223261265625190977706382198249639655711237381027799843799921941823954339872266383072946153893769362380895553281414988541962843627598003121539773316029586101061481860505317417827216795309504769958180980675426510883492487458380230993709526554532405485557625801757345031754378108769787268266961882175615353582246547600315865047518987414241955155704777245585899001067354936536329835585878639129847349102068384215296201259110947864415198070691290564071497895357839668211463916330135419843812033781623300392920430141795035361231289537789931042231560828793229027863579608864836471564955929011659311378500980456615005620782803243419078108164309764747152820063101374854858186908280528861426390514061829799442221562115504132350563508000445684019924283312905521720967611808443732103165974685572474658928120990867672416778037570649006741494762451994627925886483154901645048561107830826261131677242905968406838850878235133523715321621013367647354982255770485182040995769481054747861698513859520527864908651187851829817012785527780342679824829981856513821021630921246781699894023523230873174533594278038663497675099681122669576049008848724751328182415412754940259242844444074573422256347484188508639336443598750696628634387446981853443108350674792183062041850700490900483997217643960338077786185857408555252399609056712226166159958790127030719345935287763292364013448865821601490296379290485042481081363176622819480771597577694470036809567778231665497157782195286009044074547725767351047242730062572185545802290221953915792320783946886139301888726291640354851156348009752716420234375590433841096910545438881874473105862132920545273559857293659758886802204343814566399968384682389391118680355556002601984403021857579704174087111713747188048748465580220941018099376975725161749402302328096043024259476375323835544200483803741079854404560505189091989487621125925565941316217726195080254899847978987553348513481752960572904147338775873222594565591344192430140181694535301971137088815377723935692176868195957283440030905823830372429878080722331949210161527475666740208990044906625994152067089732980944586368004306977841364552979201167696551295794992789434478517731922601453339584909384908426962720585710492551877277243803335995137762839492283750134764309618622716717569153253348380010271067001895652510015454379503400339486286924829688541463101466532097162294596383857767775226081154106928466358141984686376882819945131650380011331230430498496052231607932508705971282452824930009166459724533119507657635728179869917465190724551056286040242956187812136080170254845573385161678467466709633919591011330373842741929123146518847019211558141229299037277678193622012492362161841446724867090302161728020831963667735273437769204974820526792598480601784207058520317561239133929883109297692352990768781604340305985283509664370012630975115069106140849988526062877783649816329353480108096336321673246922056464381345163031133338404209283659638562497797318210064668204856319934796264291703299312330702177069149844142250909886430635619056131987473199702259994495414783376020168389855831725443714352940186660883021880244128106079820958153383361742759266987876928916907429216243585918944705176984637563589183087956900147723345622165105961518179928436261488821274785357605104466824690097955289723491074499046099238240466684942525829793826979631649034800494185827599379199459640091541702866312500290002329249227707896165822756256714766928913705364716187055901365399952926497899041414106655485050229134835081494979919016719959726794913528596844183964977159447183927258051474374414617490624854553695092588664633812057178683435677584268983150694058647411749428039132212624553367152775095026293234719115692895248824108851938288156141752640587491532023685922490123526763213006645612540378040960432753562412936660733360909554844912262590406647545072069659526736725097486770551542177094197312815796006803154937027558808563793428727899767610463218207871289301941638997190852282284377397676175204423171450932083233516234636181741845184036455702802948475682686997203935671113298023907330487849188908908332933199143214145938967683711423204679304292987577367746134979075883963935015884858191735419362521729805418894490618138896760729712545238098483798008797731310113057777132134623714256143861329447715246825684007563543026230711092266129476404084685067376944426105032981232356063869042918107972497676944409913130124602425381309120733929114170869682849042095147052814234202175908074621276961842128577827845064007788018839543751001280328869426633317760518530669564777868389796917718617724541547695348483205627456590373933080117273143889299391014195547237678955361179261224082793598250830116253041084140507347485809132149376956500105664000227270343656489889682081784468685283063579014351954295232455958506816473390932545441912614834934214426445593912069073734102132939078685059572223789286636718673929869425618713555614255956612526029976466883305829228050168218019576871587082480442077124694307510857229894151856087732572715933091802817379902434020374474096454737728133853991562600127615451656271200753902931767191527738296922113936031917958369349496311545924830506293220045817399516369056275978162376380874562737103615082403421473805602347136579724826902514600185329753078267487706442553383530258756198810483196991780505229047307000985391495446420881911865521553434716858422092840125889796214599701606617662957347680077265289336531861279847409186816557950203844583850078533288171499959446258662627858682392842424837095531730212194072727415549317270931966229533046538731011269231939923961758224942128999292946760056640097754630681015367533338481035058157003978490307139296386716842503701868132298738810927360173395586056138133578392466032078590686353402655984638898421054605757257219104531405361837056295394833709342690548077688665227258112127236086466866430999309401915777382379666076127146537966951442602703185944899072198626559837611819992071100737651502721701854584092156078362148352218341971764423640632064885692809252099651188234414434747045228745074244378247076422469236978453455165142341381227684496297399158606413726302259661120572999422840517110856328003808839725858188610378931514199820030182028606286603564310638992883785735762025863618338443736136571384143432175746918256070253245339039802579693119439594640420045252664620215710861580875994316824066736693322658339786029069827980094369556438130584999385357735378395664708093209213983551367787576720725765085547549595951707783780869935758766034743143534513179602620995011333869541923226074727674837824462748357798244991761085496298778507960424316388067817358396399576196434289996519322135696744718539627388843756491045303514806706351634213856004419619094905680424177663490180977879128978086716431020994931175957189028801155377415746799402067806788966464104885346418521083612530081989381960713829981609142676533084615051049915390155625650104738601493395392995258334280318005684080315316666551362336823593053106207269967358456506137945133551506755206288345948756513744351048417658084990295641881102662694235754003767036655165276200218953756887030772219469720625099083893611003328954861965114087509066846569917036978327053767752080504574129781439726141067170431855824608431322422615821163407437854637379441211647828098174389599839838355626355529314799371005199767083102026973687855407351034494406149294656658843167394115459720443943735788406086567615987369190422478261021301024964736036577696074168709220823347859283339857646314191473844362529370529809327245567161757543208356892380946043963938883111403754127427502285054989554887813988548120212748698085736871123769954438165776895675505871648799797011738459442608534614527861901024816933107126469533266226688876583828248107125608920795181694688383639159419654682266090281558178033896656997311888630089001538509885298441067140520766173963539131688672862254935342053238476780160525661622257219932656411812822808918655306812652554692908504030541041753431676611537206746401528738906897624695284763386219903037971333092520844278085159192487282857550250655353188404772078809234163606658299971957363453448792498206494442995694824113619171221241897659552565747468428643469612683459233313675894965988105273003618004560449357457375418093000505604672774655530522756463216572242819473946465037733002175653205347615261415557751531961937920905782739596917502519576432219350696632625253851669482255376811560530175356109734462223337871919905756942119863707675883266180874428376190151906303378021880614923759222987811068047510200126045621275420152549814390698535662017515537876618784816794149745752168369100308521626018253392354314266756673433313809434952775451772433082790636642315376741353290759831088866847633807628332561424609857636327283949701023445832383661537471818726426002813579480593456381892974519101473990344982510536435443777607949627868993288280255149347486154213902112125315238647570269086180134397047957115631106176487398977762539205403136845288817144460023568406097080209656212908411134861665637006891003906500478987362113957933246370850570742751743478691822255438207126349095928907443875261402867348258962233775940039245236803125099307642286110727265672453411622272367195408720120739307779299840824323977399672056108122548072893308039813715523572500367280561682219605333605891174665581926514582437181728704892023127203047564893241645741212967295517556767825848837031118399274672696561126032930982233026926758940567105216654030873811980199317384814229959971939185839736769978433718449972782847639228716132232511403227563539929476753620801045277321400305934298954025055116993467925434383719968844898287522659306448270980121972253650007394794011822036942284477640794389090834574615432148323216262283022932931207886658023899124715986860498217522760422404804239090768458930199899312467651985142237368420446410984257772187202890238993900388434471454517733438843573208813754934776422470904457819629971449290693295863434269345011058261242944288709943941392046391293743736135801693313320295451711695611321580310854662594904726674824484532979051720561482588358906549396555750015985992113619437221151909605027485551945742413561680802690454476042275730823745256553360464180507420114778635405649222525830758008344816094412703565910260540661901599853761804407662171948887014599820752102829122664649912018969330349560821670608620337185611303467927420467954316695645363386192307018695930567265203259807191770435726100193888780097530910041160406611670813219619119789791070806886717356979058701724911386863894802572897170063840952243542044214904248598644721706050712986022084237482906395294389532803351108016127672079687037833007691736355492215655359219416285511254595534636826649098267445247178052743283424725874502001213860143771912966811376571118176218679784598844002735061975238620934374519161959576351961034049660861679228757321470826912026622185862352725441375241289520155805965459413326434926759654818631285370427692848735151704235513142175323090835634646637658091052244616266662296468361379485936477569103007771343127349193431944725615920169913441097526705058856615990824688088397358804113435783597600544006057103650588555382519091443589361775884058829235984787456676514243315869542533959029725539687960732275235462212344175989196865584257887508190916430383217539566937206595633237969068113988449912515380755814941948466861284537080277783747508494333303583146689895212128016893952642544045816045343667905368616904915388785596911597667794927561440057514009682836455917575346728232776503396733480799467122156403403871826485472271859142629580160268330430304518707083848931742021464132398517584325440276305707232455845946143991082546322634925408962448107790375266325800988362620486737280488102059638843100050638629722552933023555558985680082230366277456761530464653786560129273561696565297302458363223274803759379651235015692609191111228708692025198324565211271149396637455499877020638162322666046142436194606519353264172614662814620995699374258553887267928257006996360700543564797801647950892469163559398013555084008883500163192576808361541477141846123739196024881896644862696829380909545261541482742787764267704291943373024952585839021721259618637824676576055021119113589612181156443849739002926282542507994468403315710724904032234989451731387779097313092081203665021073974775746138681788789519679679730459984193992297226657842115807274936979498125944199962716956650451136403668904952066588538681200248864329530153627831561871597152539610168376152293726112707027697048896043320024232326383894798292608321767595692964288423247337711336460840204906049810281429755694867209674993218291828425417080799927413831368657225797130206908403844494866380712861966902170419193139948617059691797944230229786283189342936586332907423518830067386983869054910173841111164898684674402309383323578014364746243372647175651977660789751730029053227208944572220967998559591741138760118282117913340984088778391951569505619160379713930562232468656951419055955520415941951186673247845806160356902991560132487629204104597995732910905498612305333403167416726253545236832231296973982100011684475570838438683446591006771785066360975467422927579690371328219649877878918991427571054621955331616765136901324078083307504843966144098831868001205133661291721927623331101087479055925452173256106948770950916849777423989864474457821889472372915957752950333573727469479317475394274407339299878958054123545511117656326049649500347506286419875051707658059449512554018209677046716057716671699985436504271250219526900714933106591663452458260587942828714702463049129801622157219136606143154491017019123025272399771305917334815170023414510897908454806985737688533590246721338452459938712228227596440220819988877344977875800968480722595999430710515699103678667636565069259794446432947791721077434973426377911034669226122117424694824971987674896575367741955959834882673667854969281823543375865710963746210162274951440251971521890816600831935848796392559857299204310228535663365843556700735592666195596545560303443113839805577534620760412537320172563075149158408061956796744526809302744785713612994004647035510899587260825537045914487485233858212267862332333623263073466051634765646629578925205768564477562993858230271822743865669188065112556215953081395759273922659499680678596312553564936102996739133195593857596477853353780555683457432380843523613390196679543935078509233083298777574029015445651372598953846095452265850879773495641353084815924467478003461817291298113758028451991785869481115405860252655457982581446596434944622455669896251877260921608819322764373981888765548322906789279887780807865378415381097093995989147929451716716648438563824561920547559622441032553693129879769994737859415996045406785404301174417661937995745452589612863969920561072239480674446487327742271608853113177938782981288721458155104438253782379827440385006926019894394520370792277928215305639019724954558272504299436169914117320497258780627470117161868925268213965761952873228940722945653198048493099098210098485080617070827072379474431252682649827599718216411144710342028620002304676586092145061463339101045038565414446567610970605369228073950006262295239898550407150399996816370998517656116666984048824937918909008218553364487747105237203427831655175765067254751806241034877304463494342192918529292360677783830774766691256972728573487153617265524245043966985472509897710741677140370697019363273757219430033303642942723108471479931088660596063005295595188450048104934602800328190774052405545306546678950861639953988016431280349968913830590519272855047756524042250337743484496775642658269413750850936611331660089183125643523728162527848017452808613654449246783511981543906659237235801386982421106392214676842641667973251901046896358662421859606584506386457661787709981990524116086660831807187546286776256869895231750312350859773241898486466737831390421875510750791924422068181107945947363375418481026571495238439659355981835398026427196441102314690626896774115527372336859147344736271414468808133580643725818206247196353764481809657845339027125427785697192792799952829987160005198579772371048853671103758082950559804500476805646443633233682453103942945499675930183143090229168246344819682725351749338569290100005504598598306226190729296191984806803964801715289228378905375567244703364176610167001243325108434653924047128416021140194044727979290819084334984146216855263509467301849421038305863921151753087719174834167668986337519693814413665302910384324753243115936528474264393706808750046563475757694198087596428676335252092910791626307323493338994593723247394454597538493371297555259459090582869530401763136407573895848393840420516925592193336202801020024713761692100037899931235254664109041989651593740716626280635215200249188511380493933202693595412044119457007892409556874980561023059603232870842387356800764205733553093687435268507101850657177697073798518484062477175147159625353021217342657182458972261262092515701323560217513207573986815072509185683864419493733739839983173968426108432503212993652071977555454077356016469635016720452334997937528651240295258990481869207986034180893895278837099212337134068737451085639270006014597807482744204530114523996315813821428163767323365688545325658277936520888525188246581996955196089273181458380365443351288182943915073427137745968059789354163462310104316274363304839292102098519319380869663897125288004565499260683848078343861333955609101469645351104930940295478062307137706463977690540319274169021140970481922697043960038019180665048588451069955575954278772442205082904609909851844374761337052109664360871436232003590600407468006501311105104550938695666668824734385598908129797734502674177782381094792371944307215668491887962419608908233282151373372776493299601142976453465087511622516536396620744561405324597346656674895016790290974778069467680710657021539334661346825338425640716139203585315084422200356450089421123279179418377919707639637722533758681081097601872987313496961212566563501325423529703319305015358048451098685889864699457831683536081632785243212826504885152428923582911580619904447380099879460108588532549374849994780705281903789098555576257833427530729766855502491586633808111482011093008840837060506616334402846660419657056070169222679445606675848784815437349058242499653895045183729118920646754737164227058864753287808035988438189203498905850193839537527287741626915083298242519664608649799192736646425094778637254915989275928754093410523565364096217000417532163804137820110196717736472175641401216377603394540053874663677011590816124850785076566253231723018497652786361877163876622079274692612934347222051985060978568460938183771391332829994048741399175368533495986664798893354431978940771688366572811141727679658419951521640785664942048791900405611745725210823163892498193583947039461718835878133285185809732148568375359777478371695083760395053442687083636792830665089110740307890489533596521520347444108955640214733323836792483710376431562414651116607094786285486841509397067561720875837902675575528563863932824806379398015944082724468984128035100217368262950356046331844408010855040736863077184906545747104830193923699367702127591940277563211646358046842185213176620390668949420852311447771728936886223163998396063082371083352643168527218654019647938011394305477560725957306850390421192374818634303770387335776693841282344871525570130787336529959394575043017332323322551110608603107714933978461085885145768226359608882726787176135701185963960732857780082655353977507930058082391284104524923250045730896004588395485335730426345889585645512620054157506251498900800766702118614837635766995876389681296385417002090059718686746840969667037333792413150439001912519767898556960071755222515745153536429863551980939505226912170301862503954722262384686124050849211858627090671382682740814049248093298434779543170601604404435990451695906618425909186837743729947276548091247358837767449253404601575927629761293005436773707424603833653778978139448758231507539111876325672069198880985138923290221697666528364257687815337597833721425773908511391881998457796958495134626466975403905292765564758305611385988903164409618753433752943045527709454154880150029006234467465528156849938507049060665593843134528934908763486338465589282079614864691608045351792245780293228244254258172536397042635743863295018881513643795309418723887038463685713858696788200485646097353556400329539641979313194278345506137045506447756994897614516741447747188298994607336977310705948649613743830765218864469431750855990723204507850301982020112162273108193467140679904656706597354021179190522829279863953675864316762000988040173341451699461847494316258661495347490193593625286370274048061374068355692365690004438239530610015275950370506523655097422235199615822531303984744702216530326928520399365460433996538590834002140020389052630962510945695769296404603794936187997373038208699741985872409678683125426087515061592173908819066782657555745158304705815278759691761309291787112076803099983943801158296680421391501721323579359561995855605555909029053541366957461910347892355027840944237149184228937069617367434882542241798440466999793792832164591177810423777117314652504762826598913617317505321263209844636553140720167694927061573218697886504768742062469500438112367286006615869145532370371408563472126372792106623930381919057615804255113319635459030660894330939733224216567208684883789043284516887353527814528301475978333523642222464914242776438941225558466323540928536050741291536016467227115608536312587797062076671144289872041452298358321132587356312533615358568311600890848914114744281245091954517467211599709330815365764377915904100592170401480180363329032453967052924839307521924418441095558122098493194228013685894033295821376116167014464141535308982692229601153815085884121141791497471440742978448428863033239754311919385873938999530445492991843910963240270472087049144944208580536139215159352219356416079770180634223916655979430717386275996714945198212958457299619482388435130353438255879437049386022659361347280282390118354524312880663083096891997762794323985770419745372173063630708145837363242748791043423734637337773157125458484985568233846965006480663600799507701296737070942591966628891084377098711359839827232317664670832437101134093542696624899590392961500873642197845592664417481612301294144337333617744996187694880845445031759875172015138685511915472119288583689654873404463390564631067932521402563550549609187150987790064076155297416557546568999781925351007196994395285992334199999342129873763947858349902546110411433373263030460109317251613808968510900073493707029349187708706902808255011196683020851484534169519806325824273409097784897697248003568285144886433861307288669297185482346381755410382856930747467720164301901853890282482352348281034196693028696164562626580780787922091199758481258009497136856896399471823334681620218510861080419501703325626970022682093030427713267918680080651552581172978076051398274534470842848802648154272323904145651629779264415714565341551206416495052723974705281145870440722739108239193886892954097512872556817726914785669807300890236981037516154655521084495023451156060539457501796381805235302288399378289406046816959755472702338740476422635198331792761755343621182769665302286481330657871637164796905208504751812763532072606302235195301244028355238082782711113092360557909736353098923282453576951132998419900418384314595079478741201291409522156916454794550484814844105876640765842334965805797902883867125696660018151825671789016851364349518951867324100025082788762187263372314381889250885230491100042328910137304490340842898318188668409058689918283731252782455231419525482199578975903334284372828063223713553605186886703696000325655308588404923036473425665765085795378830106581407361484775964075928559600712621132371110031594893163974952111231963875966122194081231725935349992362805104400398386999000795222000410058755749272956479256179421857585778553600309942189751409366071835426252329295953301592799142251001573145317948329379751880779843004564106190986345876977010846587680863976717978348477436152329809215998850088097792611171616270427146660663321413035638886746418583795953952959456418950320458179157717689568407533971105162470114213367337388694398915864840969275965346239684727479129161982123528089508382727888054668534084729161738290132184446107545943323167455489805312202537563461982457353895884510787445084068882985198806222461259120997953437565475704824545726280917398536470545664532260474532199437717730221560725745440281829528958047146087288426787759572655955586975940783677558740157210129633929833954453108870600811561222268212850503170570649971492617006075036949702895367874711596700724484086901293288336863836826841802552127654267749218341588277632175525683406290315902708065203952757059460358524779593720447975233361887050995527658650900085820395112612773707596178873302013959378760466986036365474527457059055285890252162313217661157795321241529601775363925865180180683019447868407156248853912827523396282102096420698023622030754086428635566446708808103961496039644872788395381955202084819117190811665363360846880323322485867345193644613748859125980277202067129876674780961969950801787659948596427026215704768705807438118269383875514648414267860978287238681614048827807747927345702876130297599704613573028375296540908713591613442201824557636933438252648765933688142377150944049032422266596120809465154274604453288981374597344611209669818290309193005979599664425054676186012934401618484310850087555613286154132040730373889951857404609518749416128083170778621478577636544607629222100652763565885696202533198885347240961359328285245542615461399406265970885193792234151792762567333990839487579845023619853963716538741794722869837457235595790048023558576640020706096641123149535641305400318284337158900755314530400934104236030254466567860222295193066256545725564252017356459630436726776565070822844430462310469593101148921383384542864909806894160697716785983252554778914727191585925853699875098901096026282805943723984194693235124443627667167497608217192815785729127727601701310706626977142525436546509564064979112397886367511569441455945216973172633499230472670275462686556395595644582597050259338729155244573790574518309797457496455511545548443786880822511655768016605108943226910586335625022863436421651671056900848342975295255614184289200392948889672971152122921997409104475345146813066972155980165526508240440269084426119696812050260061014586378408077642389726919188883889522824705575805430185258768497201676213539244389825198369184225131034044619934089755276066393179612535371799837582776895482943735078969086673237359408553684718746170797091584269244005638096886180624335440726361559602367719057562306941076635698197204437839897270420313914447149248652685359351645693372131378143324259777459463212182244716604484029039026549152540370304514593511764975466079402278902143108118503736412029888647860083347456287053901942297970080928577573609829101903938795382294690084792234394597098353819176530167931335435715114367744282836888574045618863541463258013676469795108335267450573265635862560540992843490549449000974463019319534278963334567756553387165509338017476983158129484863866970132067137101960922847151992779792708882783993875463187426380086351941486479701340569895004083534662530803618995546181723373454740502522630075410156656962660620573381109706160625321923101383748048086312410680461943859246301323650609095252727781737257766027445940370874523003685761746026014208443280548615708957235094998174819982290690449788054776657423689580095870823724113544696489577592638162491328934270902218782906100688974357713769996554737229595706828725201461549900892195118218275087741578319392303220388837503968292422674771506782373127604244986196532569556780076964555560528973888028321665148106345658035498786071419013725970644018107216096247226064279032488674411584724526361495393219025586043690503001389606842261246821273337088786864775326368514985848746791508278145910055406511513223580724919687610134987847290624078665298128378588186194117782964863379362377288094123260915293825130718563105868054317090051340747250739573669894983300799330424149869298220047860841633892464562195049980627824647033886103350889886644497076578658089768652425738394216644078407773375384816139906957825532565277627547364601883509096845623298275091593756184474791592477667478547608137668238994311453668013380161802230589872029392297977021778627193691312852213801072593769926323854289371429995005866717157207257461988721908340825523161406647844604255390517698051073518474074092855233506285823599552409755367125281982096820475716762108108772204558616042153591309370167890240346525762817219619129048808966260955954993442462459734119713571412796452300593636522293978356121676924290990422734330182126964071523252397566511905363223514359396908321324689553264427276462405465846882104763266836354099502835376765309703854544265779682561109433647884196294176820230822770900124518771667241609245849796458514497509850478302493810814042218168208756287797837484177223419340958575872101525900080904484985887131467600056321782736559079532092531056190873117128169878211533200075932864727452788152099685447254737575652080770042616369220183926560272122419827689438060403388000975344436423746005671227076023730213223302827130500909912748390976955655976217079358102786705562979732649858427022984675211047644386385920934333877654461623254448809663997492444464326271277636196927514834615691206869182827483835215764010942837916507176883058208568291546267423077156981170079917557872151378483589477073435004582357019305707029845444204616745132347149119256367930262987790631762450723637746180423897992889162369658980410016805185017910456613073528716069237977076555978177357331461724331408307569695544912299058361429928604844947818966921752879667417944745544533749766974862479221531721296624405254414962880484464396347366303275880264370602167005749218206809710664074665114832249206147708576344291537284686968079484449193685373383449684321854191033841611973626929894815069644968045557073946179898603855642330245315552859794914545761998871903773063359284592125460354602056217764202445273683105937437842573283451035475449382596332927842941421956717176158826741819767243070956360506402612736543923889984120017981789102714916500181267893053462791653846810001960698706827204877315939672945140226748442844254818621893474288348475874339934627144890836810715417535647318600148275398203122678069904076066041154336037666055107179639359903385131419596440638835950787009001078485672567139606906690839427646453016027376112078889532500887184173956727375716187001305680262682498950405502611634759942151843742745404397424449928455715718759926729787864654002100960505807474489387872384843813149417458890404368422990509748711179754704750419106650603403056376863905778720822768176090608609587113071053123942034255644596445120180051602192520351408453590191434946876909504681678351094947505023881614498584720289533713698529851972717140125722179059025017382851443104761219847063769058726053174753313116524719873532484548298362204938749279415763692503314949158154190533830438542956132699942110121256202742995271340490759684661325016965582963635261261456363983788073067735424195812912053791090090976673273773462750233307359771888779590508308871170693236983495187588863482583924088583213465481542324975481465053496044331160028622740435718515320203219813246559501881930190800251336483360661849723753696767391362818880971997525425911526653239340957640552390006538416968907601583663586245972198889458965412306972435270237258750017670662885918100213411716254105227731665004192986824169338751191401145742126471692983715938736307202330887283980456527724866620289853153077759273038083126704288036241111980880529867170821201016190337612186858212454794689749695599106789462320341161835933376091067210531309015266430653366261660398996069153644988030217897843228463869667544549577404698675535588136611619453566616797306535085187749680324072444444955590582168322521470643265185449390767663953172936089621791587565011073773626912117564253833851745136149253213586761297534493203253197851334302717988290903264170983986412223668587131746504414933180582144396635223009891250939030120941005410154094344224242360194090564124817766558637788618047088751992280433079346532050379103452448917027566296406057904114942172838444354811101754869875630748008461828888570436105268062129091713833984401940986384909659451778081414601296500898251011831480945963911179363213958388503635849904050062652314442055991431851579293884699273557478398327127715946296224174948454689447811338363899026956160328713320709525005036295627453637622075417566247665406264495034350956164442358127360610131643635948992959012042503155904894201908668578661222384543082715372890279204564501142205502720780800429500876241276268124446164792218913547405201124303266159595839548969618580417914648185569182949478096472616369184168557023625641605425464517358173064054404752686390589224064115045382629267479921886726311163363446155125400806717690758977483839952320591577658234820926799376172687317546419513351240264846374228904137690770673463248710020992653721807581062213386123398057832310635343597604808790095354511404501874291419003834630492626164128484209376171147114027634193551456893673527978107980666197552144053728187856604694976706760201051713492610684238245116224932020431015647871231854281286633068230205440315584454376879443839663997384415546318370352868421171007028441205077042802663818200853306449668355260920966718560386386499033673147811438740353788202450588831747550713924241620207909133640625330063357857880093444927932205699234263719759430625907217109218963292240302917421229376108093435190764198861353806998977951960694220889368734050055612500778065924185282604341171087712318242279861843628247042528512442722958155410983431238106752698349305333963202255330519013718579071210838003122399078146987560259573120271622013120568281268495333839885504761619921253129402271681542547628264467731935050121328443082831114887409857776262849068247499156794714307780303576434236834754709185347001342356138483559067228813185207280839386473771151615048080335144066030794733111938440163372340179532830281384633549967729445683835919556742352978003109313207408402056101557149496181576079347639817970318744832237864480911993758480307496630237765949134922312335700283955607306452536020637144093394033880194208172235045001617396473167793529706509123153848682126633569178851370069371880481361586583021495977245583167220271794219664972045630121046465233605123439844605345215564088483777418359693372557603698837452072397302803667758862744031867319908119773301324738127303314083249138978418713267862735024295744494250837649927069962522051916844097335808852702604671443569152412022964494210906930172442304022458448265441593685118345100866999079159536918320431037881639630688351598600929292349268717556290592137555222063821059297965118827417731396047964764937927729705814789055928897742488761088044730422285923791176020640278475007983028933781567458567606038146362018179798780875438626836018539346645625814541275914125725287805865052099932618944086009310819558120002591116674124257860999560123410487358321095189800902695682502105825443807470784840593149649181976495528659904658201938747286411995087400561357473495347476014347358728344254765052089908842366366200301017124010684755806797234942536929165375145284899581772815146505002338126486670953163002073385456039497965401243301733945884242188629576113606117918125923152909910994153646398268500170491722633207180142857118242512388659900762333840544505543960189450309772734143508868223073744987947153032193337014867130811415680952305789333128246167161298896188149273367589741974215737967062072626923586110079267846707888012212248774931311591562811406861879533445363407233063280995714463714309625189847620263259410100978301855806542899731390725139559678771628734159076915270379758726761696405261064205525971763235632402978311229597150938726465276244866554184215749189277260321893829445768030264973858041254113703513013173499536699173055039119263184247556670681185023579893860560239064040510793082853789882211776217006097147820837582458523952620733183360464180985431982848433831439117366672359086829994044809694122463310764669230431326967854017280873970663171336371513037301702652629859745556344570005904453338501573097245420785742975924738490835825585299229967078377090490746375295669644710297473032447504659041277008253153747073115160597598419430636652262378809592133092496284277655929226741368585519465204724180811298689179313400928022825801832861824148458751372963334873995094692633443053809463064199462278863084323328085399018638754618220442782131045092433085730164673599751741019723159634771150953745337936026585951890690519676041105524389884121255919849843630207301574049640072512020924185994549818044474753365218180961357493484755429388816027767393986213132107998025523210872258783621250825969405221954466711434232841927588703841261415810803768115435382625219541154283189861019651338034281902266426296344111832268185799462817061737430674309819396798710675722582852149555463587438002795299640829401618043331744837261603017894231561634212490634692304991844279731182419399377668050557152711755201513475839701836921017991006729717814032047178171917763620074637495158216890896620501750716950050509458584478598464803174503831439637323793713555886344742453338914594541165502029691279253260991863173256197033451869049305009404171688359237413718441735679458735973041307361623294951935808927439443791581596994917464234812629687840898606322729062257421926733028556315897918627600911414562396647616053622390274670905434920166935546875336183242799862264145956686298904137307539373111756014251625172641991471019802387692498239298308467542266816812099533624725689254377662339535417169474512319727531687936954563400033844143153798886265072577453638221839320075956054608474890472097570784207818901942118796399940677173022125314195426655824621030227598704610495795348564633559875914628818399547044028524864849260827265669038419171326216664367658240171188200665691656306393412942681715855878712823883701032712665617855558878304054427797164899122023137315452463417508372885135146803818787356804098090738042708335065953508145963188007289006070429185278123382010606129657602134821401240849452367870232264131276749985389970676743965969967881725550517947269176367038368450335400121236732345706030218667138254111784541204595338551039479669007434415390174360295529827333881161598861737439779971446148347959177780157177181101695515827086834547019742937614580304203534428131030736768236928807159600257450878644871358437696636725388731632290547185599895990424859095457870886133390203108577662704843472679640651223808296919376580652111627592456749386088853528978192897350468389279246335200746135551409658439944929109956809974383036435238040243054521074094308233039976101272312476466020238375259747744201602338124377120807311974446724565062057084961088000687546371902003580969616940775319356933856961150482075797930343812373086114630604922440419315960417082515953385078442168736126021683321523575149447396521718563816072545657383817829940925598303740774358811176316988294143946227608222367135252640130118068457018720703474863967996208151569850320318788865899294273940933563180348259939199124590397252439076908927735676313099058715500289484581507854738241801510269894307794939972620734967622476914837623465446770830549488615928722235522750267228939315304388588479948225274783865402574175409033371284891767484526924888187328346275849680114424586748834661043199377057463857437099611417534313940781029312866593198497865051716940040442658082975812392301661303871286751440670625167156067119943954672762041643239405391059467489486609099040802863317273289761273335203713540280180519319241762023522867732637978486491028441462294819542219423602131422111665137515914154884082547001489453214380569034673263765933663693315777876703769402694264391836599867712265325000618045501536742872136637493805561839620407536926989863179046096784179992848995617502499953519212054076738413425085840151745179321866260232617290198919760099367999736729525616323305665292703384119694899781924900234404687448138846037281153342316358059374333118812727905433965733025258775280557470721048319229620179113893773645856820418954636179215659932673340258461150023079759973746231095377359841648472677930181186786029790101150233973783634079928363615251661066700313290013456089353489543752653498963538503333834536151147208639117243771107714955235304909937670168678278344454640887035403356508649290415080514709488131429800270494132697175537970005830048762632523096948337258175004968615863630517160761016840784550926689137643159283702096153201682703380735885226399015561136674861735105800000059277587771416124575409952560349404067911515106170608355759091516753201939458186431499007840516900843208756143162224457208933070476864889811660947767712068220920688979031093048228584787658027183719339975619820965527302573769688821164378636741212686383908404713990365985175158081928231023389791879688711016569323177072639312262487059395750426071578027438788664085419321209283712487938020652927491620544455980656103433070507777948565515414495473492505710514950353702193919277294448104711858145784880362384409822190614568262805096966998454977366564908301485310761345876683797842356015039624450605540665712161261379392766091529274668109227489443662518648089126195993621485226792252523890998039920099664552103094420445899991873964528365065671255637809913077090410621046312404734048542852615618481031863381283076081737320148409411244401986262720360648590503622257370413789639659019501531373138988627535538826598930997985961631474368793643041350429189958616776611955722833751632342513149022253749446259003747326159183618883869461077324945903998753324680383597254929128002713839409767295008986698520924046482162894880408812180561658343817839627261057890256358482592847928111265650181730342383764668761518263590796168632386433544582005486098801201693139817104039268141274735702591596001080141542260144201435012857187671296793252447504939004902062174808626780984406175235618801860435951634949932687947638100013604077215966396419853080341539555082367528945578736918738673341736668285946188277628681325770751373767398089193859980115235330542236850195320327723096569508719568075059174912097944416911155477556753974785404121688879853538566379006041496082171782534867750357909630166182312910436369237202521213808901989103790499907260167039859566490346224580499543819350277933147735253146427359550780800271624713958898408692151025941798515418037943196064684624909967324060556586184982722820948616971188521740022808661169907762994902705650896791151343804749152800440492907399741756156220137461923119371254024490973200820752550083039074272438653183097801955313186977015352539009892835689073909912773784927059517436694521391948510540195560693535046243225398996383331648406243230326034763775001447496939164435434370777001402158558567923719935520482442248903757031194231517650248143849359598859404606939194397216608265026877278030236710382427483940292493765212618564096844836073521562837572068595701427079555420047603030076274904584960609562534853275175223956634710959077166623077083264788252527241397213449932485022858218500568678438443653217279195225937584363757023432063103704521371799799322696262410789008717697354990228181120441198679221222626017190122234820423688869032503710438013826269251061202208871297906052619570199355295151967100896293981084783991846175626128235537323764304766956906979286283133305236961609088191150894385689669309683903471680330058060288425195287239020609254671136308468250883387561272103331243586543352424991879974515156389506787000445143893430855380261917352744575712904770969113693812578730216416540514218409218315140153363168371018658402483828917788576233389329879180808281905812874411422584780468650941421960499903689493086123524979115067029135152912948819923763908352699959463251265996202220103721674837120000257725113711055201208336587817462630839142620832705361108752296364749583808339395285434924847728582350951572826298419864848546733299553384320223464240602680021634130318749145595613013560512399393417109798257187437225831508521672258130447918005502699969832765640297400221994877129631099731745745696495335591773878620386100365893419753835859161295462465726272752128817484733115740045714721656126158790612920752474646149272428643682550481080368055202468505607715193089136621223171420697039388112358853991232727441482781850999443811175916693490804207212927800003535140502649827648807659077490399500204210882959798441955942015125788342522897185697048808038471348824827024682461848963909662425571192681406625442723959408926438563639653941216666163696745335643884362281083777962499433220943698167080012542249376834220050737247517540917374039688064025516473629282310740884549018414151780670452607121216752632047652680809834410130471204283415366870803615056168003979507142915324625232182634211950856847925003706511911841297814466623088008480372414943259343683766980746572822838027448335711771411762393593979769271283710189907514774743228466182805242698406479439873554421304938941265356296279093778031856753558409211043466487015757545479786323265061261624468113391730611022247849830860501349894203272326910871264377834744918774600179290178255498385686189622116495686426177129467852037989348717997625278299425208414406757573008569724266884364032028285630078097768132763252549527746831772670966038693861177107127936330600841019466969611356892642182114511969472736292368854752852237145531560432808117411325441584924245360748828478918144807683368246495096353608052013062394987186525277266385225997212937780317377041190131327970279977776621181093011719219107013483392488075904969041880885839908659771416150848617491772277780564154249476188913708339659926416856466639033622301476617211324324408717068695771541814949039237594642554366146111366361752513860635037686490323085352836662558955116453565707057040604261192369204741705078018095580392182839189577329003808853644051905174751366474169003911759454176047474251210315137847533732254915766895481375272986134527494697324633310202868926656418458413287590861734207483182337130405251826655715525444043587393001434850392137577938344914573170616462758409783654810495201137889462250263978728965910219618492634397476027271939381272366591956308662675089375482100996480373563251269973525727353960999640960846619658851503176735474491735308263830294387071673843536876728856881115400887420755920674617535992810070162023787369810127112619323720582309662290564193433754559321180014495052066985479868897177250936804462504513930292752529222017977600414432827631592808405938790457857857192613590203955134651005172723864260781393393818886207856379665268612925476019359858092215911684625229964998891921474342262515276316450102493903571340570438117609593025922196324905675049589471405047642639710704499284697785978076032565422834867612644955707464655403896348989045544804680634000706011620714424282649576151411113289189783370752807126250339579054933751043697918149588732318658538900310901053193644087557173519457318727316373678125049932896374837657577216214726534523177061820317448503372783036590987025355076845888038668109262421145126793970988665219737665513034449720007643845459506485192966889201440113873218916013877253228292017049116889689415055949033799728931854469581189129971885025282407366044237585371224542912771760205405108560573763052372913488444310118007776691041337426802573027971170130332895883923682128923485006739795616612261435031296036608924249288126575996938942242638854888943158116779888287455719209200257672197618033923884310655569988548479131935004838238441790741719887321982609070424372940441588517806086269729733339776777861095759459626655213999970648740754134866863366205491641036409485248588306115051513066595827738702511794271646283389762583006120526751515046397594559840157555729749008177468588070856285645134486190420796435200261629999175372769923956546045040860034670194839149155549034430666562942023614590515928908099841512466967565580926469260938538887053082343135268551273864013378393354235485420210466614569286574229695991404564957216973989091678454431005650580755146553763789138912991850329074046320442001432444071484160040118076183234845047911273618670664740272517968101373593970628498386884231473507210915913557132505481967992130525317542794491696816218140476078715347660799046461712391792225502675500439119206880557004132428861420548665830112774082740661148450089778339887471546873408360003713119156201578125531362910933791467718773862121558236717798084739284078739890654451745742561256946732227367481939555799470136005712157125840237600997897910674999029969097056344781112054132358894129124065203787295495683682642271550453772498181063614134446091441649841546154933157538540729174588912507862898922161761160716266059972516752026840466695537311379257895854797891930723001917612159109151331508551884070267601999163052771404506124321647609483251725573624054169215409999108835000194050840906579522828293268411616926972301581519650854643670408112479141096818913351220028017371138393215023595295991787668783985734176946831655488624606112761816466901472783843559540011247692383478222415678057925470526904745425291049723162063806810364250362019399084262268083566278816743750761643573040072944594470085191869443489355721180071081056086724265038297589390870243285062027883876563580123341158730629672759150007462548725733972032722886648018867368266691351899971360800367104580764130289522797308624429132015800506829747234217789037661458087227755717777691984627631603861327866345551464846078686128036480016934968721065426081393820507110473177513166529225287908828148947695234072932891289297355596111828209188179255938385728675987339118673868411544442902102428713966552939047001033749447419446082507277929966438837696142406956009344964074773336380644924696728675564068825904778379799386321225475886930735586259253849766756676429096701045091567443288593870336379722006946036241165194881940748308675060295606094497178639976408460432443055533720182191904670357785137893644030763006278770345439219898204914518290900163843927303592046752259554416709350916710383626184310526539077053662607668234808363026985978761393413407149077057134062468151361708369058298089440952617087648431541913185866592874626584435343118703505990030064428946280133045926609983938529718875491617219620595373771796985948840193180620964112654031105725408886247210962940397814126872211428882225246119120686977436130804657660225621229716537748206697233941948386380929994979857573714342467273194760641270920377238354276508604271334479151147578577373386398524430075729732063486367414023749288787872495223972325791856569492376696032136271435541100064573164577970327102403564810569641073236823511574797359229029066628323356352604952358280388324701407647003398067935800671573698073410879514990455659563052326190032517049157223265698710467986759204086651039411837197208947000366847251324039623906347732296578258369495157193219452604976784522979263349083071445131784742872736372243052328841759149134657422448645981247752005072950907934989470556759953697350746445526688437963020798106294250585603517956628075348635806334141780947261479809929131556031489176297802283788908390449383498435781390306021975508090308310680044023370736676732233062157304225161188712454393689397416653105352054453129107354159533089356107625918419257436779519474360885783180778496348171656675818190827789564729475072362975469084240182081561809584307221652907300861485232931974534933379560444942498291824711428239216226123670135755048508067416715424236750352965178737128104542270574348690993011317468984240976531471517999335639771787518784095009978754954181387052770820002960641209978465212455494009793342272007890284275688124559799077259148348412784763673372747341436054087956599666636753835134166799029858784983608033778721084150006520008407202187509356712555328469428458201111063690931004717626415026457898959202651525168410315051822969714470079969735887782763358376563934266109988836017215616896202668987844922206740310661971437557543111911905559831619937330761948147653451258791676887166712691079565200985948884871154452339740922820810511342722301916438483038150308978130327803349819436368969349458090083422417040766327816365983830825775823049131625983119897890416865948788053792492741744988547681310172952290788713223578346793842040315015925815129575548948834555688372022431017884119659294117816888600993142922002740450329336898341478511277454255369640147761647270967876392404838331750036265096701817687888157146996992885101841987296804620127046065461499723424507550300246698069862156223354929314801378900279012282240469138351141244628853407277724953844966996770060552282317353488956904357972560704514929483607498576556278575013056404235477147114783343056280725503188149692581952133746527677185203988515991597684097888402857978776613329023601514820857379895489463256100489072646233972823394440518960895484353882169055797121273701156849513097782871128325684289857477118286339515028130067511297399020236330128595157008827024052977863591208775217660785110398284339352122347610836918832771538655119244780182572340054237591629802726232147224096175139595898074061118632079096346253641137470515053281958805491766239886433963223431406193174367352114363497173195853099894945820440142398346326621054196800258297353041097981133058012841310082647335772377751603985498843071162973995608358172770907723079206193371750570023146660242583659362709449550920648628012060823790887799732485407680573776274244839606223215278407117783524775395306214459348471615899748224953451784959227021633573289885021162669971253754371761806627034792095035717329628340433141574629483666277941539637216863878769205062648445944396782713013723650494881539826069852312699803565479048307713114331384599921333823111309531186567163373113289783729299196393714021622843199704480230759038033793443349710603622709509972699157984612402679075579210013920196354665090774398796506109701386767850337308122572149340634855395608342708763544687324835746286619013961126135220257995850627901653983721641478340148333293260137999262959656151099437013875173928749201736292533926834905653832065809150883384974062530798892815978547847631386946314897978936126077473015893939414463430197859165929198304305497139269074240789737908897130301897728788753799806225692630375657035224898435903155154478983991481392703120267757950036092409842444898744348394117050382497833663491728260922554902808591808514932653126773800847215952688937756142263933655713274524062046620411623521800485335237561547361465107922821017521260079063209791700696982022747283295798493530298916702133456584920348352228719674701570181476078275654449479331283168764454312909047606961379784512167982597800396021341110143293515677889168612069342469503325740143241965248926127025817518972461926709998973612399080055599433349687541126178337897031139268621277335330810204363720469306305114838314976132258656290061594131954721487579099430811252651513694549039133530044766504873744228313556284227256353912764044631276721379530999531608337304160840360669657346015540822885608589957620615183151831092337824077545043275828267167841840347423921344458955752088865277074742410632962442087850749820753496350448788805525806049419452831684185086132784103860592681135129462240712091691236226439008829898451975569523074436384582789794127992351587278872728580078076382494912016479395754764736036173208878947518056511722344269974141531907286376951872425676211969521656594188011211546222272301125659412088073291363776882148103011469972077743316745276943161392064037513684376420927182911112299819396973533953276401795935735387804247664035530280813742321709501111713661111328626389877118317869034598848640987189800437109165427478889974418920896991171630286919412706270469506743582193660706412886842654437249273370732759294708032178451572782545385215004392865932855371402758693758766080806458839029645158265275957155620764888773276879734683138932684912311139032956099330564468597869707715455804583139057820493255715324021074883430997331594511294050959348438229080105044091893989038014393459106747439479590699463076991089372097420042776346752923954643912488454230632273851056977083866978067304808620143317960762569485743720843487266379555031601000738818104428096089146573315313265838372826158670836596200103525280041787412465094493083089723700468597638322209434635016368627659319763663824605241533040663918611680453101990378409801089476328559276716514116674873745080877525239062332368182393332594580758017723935935496890877848473600671365842706762082332734405291874182550565042939508485260116946958908053177204988224726693734903038544434084702562555503287370778695361698740906356613027697061614906498381277598498394874268358204336005047172426565115974855094162639247819404845134592320817247644063812920265647370183890449631340688209199828805314299843383214813964666647653377798416249121733304436400075107102008158288124073313185883602385309837313733579801670920941508272265434466306827680148922015112299278893405837660464014573506453012461780410389396919525716758823643108107981924852356486532880171873182964959573181861741198309482721244200016958863277260563792189885496607780745435437494995088580127012891971565314717728401505374043314817557677722446523898010965550909248440549945021041261335479711442356219315401041300090296105740356957402891561498227758672801819290626895865470418530440129066163333103041787077225615809406583341552432386397625750138981882515620928054142321446425438302871169298631196370511973802963013222916842356338644460212674517766180322188190040403221422701642961417897479114776004158516401421148366716910715033021526239766102448794970857435262212299868958109866583619994346559637982741996108076876237153180667342498103879210724052771680907982045412461188162642936723664328475218303208680671020716531724253961915978430788964142214298855436259804596504183971737385695669851329959113003916521200698499921173765270317313991735848414635316470699850216845569289374254463885466593042970991134525955656703590076322974596499084275216373640601760290198896994740385301397553194327192863675246704947989793988849992274349978666667129134726320390471733524501640360590621890816978465718583783859912635112422275031119644559322175382845207755088629931714265835299173950576547048807124981425316249233956424683114650314871559759160996916440930372737809964117044245013035923510707418779051938726002712851066327852164108542592117580242475979163028948922342841965567329335476793645266094314689279331163563050535015344674295169953645460313488833683017241347151869105632768310561001320769039131191427976464573506498983536569439923182345823903551293662626406791781037101782693568347690372825457142269272780866168244944675069577453881369673699733999851590394889627447442884362306078962395152560606556469379615789152158541888981079092479596989795725435868488261505631231525331172901094928879348202056630669738949260238497229030963375327930810345203505595733502868907383799457602653037821413134630844869572761579270978946504996019142835791843297702624492536747195555583400846508138974648307995232405717114281843238501685366560434230409494904637389066603460707325908830643751791109809444781715626144600869446554005880720855075700381259326147304702151381869449823162772894190834516915031947337566681368465120240230590488176126715453018022208041994449632297229443238964463808577913758920568490476119589304395503047042719796314709393183091113057537037825058009343089990748766193329532848128002351750542902572488206745275622093611800378010558318061778084970107915248277619290235441158391580502503125769207291021654411203464430083196762313283237981653942485302073505842204041981373637282508192539438832238482689697219949931624905373580082654775949491169058225181871130103399823781243130346014783806972509787443709336892042746812994638349007516473114916223132599245424797146175628125975399718105360529918581893501287916336199542007793262253122725394934395860586257026685954667457573193073756023646818794232287252198596352072021937603317734603270948825620673513405659304150404482031858602398312704052416861219511647555250958981151816302537192743111787977115378704234451428985422716562806173214226000115132688160697188611400468380486294842525605883051449929763019591650731979895361082827599009695616110204051699726653144696166332602529152100506289898149602504410139232353399242829629448868826078724493483194666274616951990988719880567376588922231971179265472231039000190830968541211532311068007794292085678166731826590402077576072966689786339275172001334544618713056788458036930195061549579018684121037028928140023779897052467437807552452473817568281206184846226882939204074346194904305481057215348862376880384913444193422575717833039595005327022194926849134272966621194425069099828536628175216097787713771534317544701102502624607877200344087207912428740356918856802736721348909291256367380064135426614804862714561259547723767594254519368750377188364841941541752458325249048393980052775571556417288197490965326360599643029429314736476259114049541193720907577262064014294548728913917843421514957987772860799580727465700433814696291113969547530259575415268370302355076204224643408146218871877366113412372349112328184817357542819787412927966939858562790253956671811093568418939650762945606012791416815320929657023820925177497850716122229959349052818006412847493935104597840249334778394090318780297880792055177706107853669639906938788185525067787933154550788675959208062683292760528926663928182228161809956314955792400731285018176588798488081399040746909908459860901772089875238063498301725440812041567832929503967358337270705332424376815725225410414987597724150171990494560617793156548585011068994226915746148304935925604899546509995379255133014740066409113310294098759514247453644972719820493573511145023888777716917606487874436939506807441135882247198265048613918309711845000791815777376978551315563584185475831417636569334323046820265144738999916110487254608431158774995433307641215736366122464322878108181408738927730877763686187247726473365254651547745156950527854819700634849226269063881696277053432725012705588397919123686319939042789185365010317762845488344455192572370404919755425483876773033739043121207777676203880281981462895075275808730509028745897853896777236656079393766972866539779085193779983587797755122300199112315112533589947822508836905829573827507213577049614800294289735832613384530092186032659486266801032843492791770342852010878182508717210754638398412547587814000950711852306603434778240602737860552798898582113516240336745822264810209048598211480057814007062133130989383593055375368328012702660405598194682821994061527914799592643623433122741055810191128358017612513354941392199548801398486162789162206339963794229045247058591630586564849961489960464259386883612761570106334353546517480153727615726943842991128840092615720619178117442462522137858078724044515349437083485093488139970781330907430089701793829481633793484637295273184574174637993367023038085267161748258157098932278635503383893519414293059310692462219808108044247489260965595862578946103576150371668551929320077694306008632731865897910522370013988242807936721288562911482093525536366392155744467164385552759936422987341481246517358374114747258946323980301967554491470715148147085891027865548942233396642118856545427436651862742873105121084186972859994017698396727139288257200389664849041574175465388757056086460768049028020847330892616475541293912149091353162338520621860921512989756178263887484248360301339642035055286098901219050016135140763629791244524262945207937729235542488813104972883097139999999317668842000645774867313920615794975278776543097927936072374543546638973814207637140488430463063415042472124458204243179587049790193858333430625419604152510172844223408228680011467615562957378828156495228084008298953266748273218668131233186746091519657209590821303718574206038324575876623485437463803006829619687036842894460575509305868843069350145760065966613109176390996248800559317149291297245662999360618964217784995841463078313181926101308612228056183741130227591690640550968253898850827576715251933341986035244280956245955225849237340842612441561034132147256512893690552445143119912651738613870269809158005065818931620762395833203047653623155128359194707744550881169796623761890212104372701772335112593459183353018330497360152252840294679839989105710640508613724460962354233142443964788764234720431522320118558869137632389600771079734639892875126497980063537186091806934757539587826755590134918028408912422857984563039868503365503817310219870607536104144723317300276374382761650558545256095930812365221590015840034502688608166655679395076263382068306055904608390555465101983560056377804560121759068869726778553444504226738153699704967314075733780577099012989010962760129099390836795667232006794992716655130415948635909714507267246667782873578189299689640899278993263330242330582762216494472690248467054686544293472366278749460081893713430499397279739216286728093240446552922972120947692988912923531943860817742533022759436048105149994395589582705783365191377407095755894974095864449008440708107879404310676263493918978049169255383233628592163275807059560648263211601447390121759489690537465405693902265004368795191163486486805653899628100421692919334479896669877830133549694169007887522716529153403501807410175126219264719069775699460013634482993266999262534522042063736069850132158704515204287457658227049295559634893647991256617661687748298834094665159864249166334336959966132133116063389668773009749168821652942007442614776387508998294585774955149604743764288913333773669538596293563687629894297518342772618795421372246775178019161124097701847320626866136428666236744073790827440496812129691583718278842057663420331533007976178429956774202333691823252152018192338424937907856005101637229243245007530780462613976418491183693995672551554905328199861410882666070906428410828435608069833175723145432996095863296799888857949486273300115574969106286270261640892900506156779329722596809347494953253055630008783475643042443736228691761337272436251265192304628604417778203679346391032598414724350067714236724910910012734226274066103293864210543632672596589742801547443751531714556123068802336350612846095952579105949702990640696657216580828187200703490568253998887742540216304915303678639324446780064622831177735802661350902571512497595722095152055911032818494966330772987297821195811625739146093227718181009385220657340204938177379871707135020888082972281784111933178897136160825099945315879042869820577771114506776861775081414448668488668261662631457141351210966750791350285261238294670275667320418863631625351344017396472326724977833596579620564047916547566213338843737673775228231082393400213725021432042877605328564260908122181973170898564030266238001754220801510431103708430256879706984649901928496362366580517008214664153238934647547315916218294617690033784120799380255534759716062308325767286627038942377145742928628556891480943252286392011573977288922954263737550040640258420560901788379724743630181491108966463640622676455672709595749099841312437823253481514739331568268861984401790905650035528095692411474298398274903368904044374377674244712114706961450715661111778071942634721698962703433192720695587764912440854625734948282520857774568898461002542304977554633916918809022921158779498492781102839645577352945172310783125160159764113589899301665139873243068229342027038486940900274159764812447296972487901574302514815046345876046031623426704053572126766147660368080259152622942107629171981353510675921899158826511243171786950823670904337459160618869722446208256111074830147186385685051404355081158803215169379567023876061557259047371131940468407448569988778654193434255768741162265228762330007745833921184435458644451690867019113564218026526154147423826289816103551237829122904501087302758031709817534658605346978237880903538727852214916527305854719369751147402020420186406886764901195085813916489253848880060658329955633536973995801226815279825449275591639492315552014840749702529988773045303588686223810988699441131713277603950291616670085559433219175586501517313332875311946065567548324104420443672250905875115884732437383346239967383861931064195695319524669162327356757135778323883680841871010836358972201179758200773221391645671193455795548047330761567614315112057870829513302970402143640294416157815183285027625427010293407943596384698756835906263147583964106124416966344900417708932462523053001790255734164669957789124170451612948027942701164064756725786947735048713987092529163463529751987157593762040764572911822596490536902924149006319248376933080223908976498646313678745945311382582930737223427807335278312305320885493527499714414067283357443952607370511094427058185354925135153606320485224591647565133559571816650543686934876949735852820242962109769014934532893965077965271741557449865475131218712381944282168781422996631578073971699904773267308529311676625531368872626672221974159822003861974685429923303433120508858646116829092776761535005313162882060659890606473267610402688464708397168690949320434254724621590405311036835214792321896720558337029641137424378598324406878339797778603015933118963995764715452755159770834197316948690624961606941898100440353512871333364299186920132999729176179301832402252844187599952170593622312982601009434743699181312377909929869909208396797992431480899008018411666359792229681035215910673044494273344916664767561286061219972625025577912126704433926506828687646066468861014788621384008998153026197420144956776041128024590070928430577865049089345090122031849629454364306972570348894262263425144727384752276531775588975985087328304492109633016883771304472565719082983373847896846078187560299190279839405355141642394257620077569632164320227984283121567094103600847063155289866732303211053361941039526598299491246788138367481574404160239983366614063055726395304472889080963592586177224155115339574489834312248502050188979097782438427782229398512674636039637967190800282427792992035260737510131665035625498797603644385673431984995091721639443179870546249099797585227199444787090053966478925775919441238838047854391732439550282797437515746048204286093900106149723765208147133908935494359775497001246639734073350510692209062693172149101115292716295896256139477632413093224150479000314003686874494676668232019594433112358236313874706476566104100175934729272594731084058620156097660644275267873279932110106532416522945556222318367994172844911054030330300747226417779306564802724250208578007666424159369601645465033205056279177080091379567755985406986892039509343634077193288287136926528311450672290541016224195044972725824378325864360813414016298410012235145413398984155298001699512550285468090484265527734882253774275247093798847450631998326590695577414553816288255686684844056047336810760256770103490820424949543736448329375832342786099757183555081562086141668422198264712391650861458717992913282133940379125213190157582969940764881864050768035553434433205662022803987620519558689843370300919766045163625989576235315656439931843926606925469865367891463528922967610718614110187467483866288977952603624312044877837982107101522681898887620291393187811694371739229738130665893697459460289043552079116857987063834957570953518211978851078268194614229321818253725475301471357353935522583792603147745036041323876044741921192282415074391569182572690579545798478903353642983092234297601760450562683914147024561926999530846149030016061559705980765581985786449532673163288086632063871886946335652560396431729519412831595857845620636771881415149751725319007784961882942673631121627828713095970984527644091782247278139134941512899100094951299490845301316673945177492291713320401093965897279566052494354859678311670377072101237540057644262446392703744918387153491180588907521459635475670256223030014679994391312584431948627170293387752007827170977052093581187957583798465172632978644656081071865033201980166323510732193093668860630052818028055029594871186842451204916242536658648827944626667351366967910026331242202751139754576498760536712853895758326877032528815827835118189593647774599619123745497749286401813302714875949568889422948956052763447447472879003012797092700057769412048188656401311658904033031839179515904648223814101560940607570448982728507566883585547970562653645509720022037815518691829368930183218748788350695914952192703728717750537435013918359764017583371696398249413995268542729189742529717722341194649774431614921414820946398439314748388664566714069053879202762779121551722081656547763438378945788435496498130233401228177933024611487628319610306868016268939044072680914371151013552187699839595224213252085427288204913644916286024663695016303810282748568547076489054910364969711489592611982274339157383858669110030702474012795082332238593343129335314508313430232214869764659467664018692656390331915565887872248983313061357420019416625121636327935950728140073337878928127462871581978962915756636868358637422715438799334165574870457628958645913526199633696636015887976897495254813076769061388859699389360320810075459230926274490937709794352225319635720624439248701172135331113773488627655904577648420533101291477062923080060151067031203478600731070197926375002627129094550361493920681352816856587401295671111292352135776970965085922706543613249244102161581640533101438507924292559321272780604696741537553153666222186128736612880382125010092842114627544953228974248768032441561527975830695659476268934502442250695355098823194825382026063786061181447763814953829266777516762963989158867301481707332872075897133702018566620424730721218336157353976512397247823186644424443992035085556253116939899731382602851749159847422989643092710028283731637880630960986092747881031925456588368774159105757833020388901228949857921093070865284396667478295363075628059276103959766930603498680701306470801313029786800027484736924679903378934423343893829137548394246268828457862768111425527101969211059751262178040761552515403999424350145516266731865911256247375842966932043137321356034227630097046868040289480090425357622270152454991738500652876282082844947232897746221406568486297729134548066316034469825947357775630516155614948782132847032242948928794866944339632944617976682845829101181007034735179487801179223988149144397875134741624875739095613153720413700455216803986883714081602335799444156069410887872638213020338971003799951016335970766613394378645499920248975123249851105355532553697260376806840431030369847624103275144680598482749833518164409364407426106383430813286821838706901670245370646215821240801205054280908116821317559413995529540463378505961526811666007067075116809993103232721917052235278686527253123744565398423714807131269908021498142710907984564962394793103632503932715690214485363939535570996392613413706355283694079855691675861926761861022206910882095003175906255558799044148134393616778698527542429084263952399371565755451748962785200622560015667895265912090638318373362423859988343853824694259664295833241907529342274995126034324233674418833943067302876654357385269541451369333105026535768322846766096520368870279739778370350703717962545742445754051163217724554798081067098055175850952219887619202813077517115927515082176311728768285936435665761256811451194170400407490128413898373142534396718266812187402333410312253279064275345860703992770823166989754655078646555358641595287411267944980475080107549571270721469935283375954060689577249791577530068912962309320095761486922310891028548610054472809101465309502976500108897380505624111300277162749787960668010985853622550375036459585607881915305682408232105734761977447375543574363118277047855678207547357917451284528128929233019603620021968440751077409910672529890205220867476141986504023102491528828879490997516843702839884536884782520558896085978948619912272272442100265425242273619170560112198481877265166850985299865208474531735375591823591271057777366205507409482064859408181593694790264152429184122421578891208191929961882775609985860356636359069252469914184678526388777441479165457023371479473170267499460134216425860667595778199718717717441990038089493463551331933761447158572603076896505991191136417412284829360835010695799059001055607831543748232868730973050111899644412652084907746022176789882108467590939734307859519683086062161338688570880778167957337604105574448328822232366477807112396773278471223644501383798549791847487817888463161170242845486972732738299039515633003689285102102258403151049763730937791859124236745802387383415150174785099316522331078376158978760354156846551124328666277952861718702198668722729283615467690868654416593353062170303791048698373076967563893515294705021327544469916031857051856641071504874103965531180032861058780780640824227321424748062293132720099791019392455082193819018527398366218293196302517133453360812214425341590512815206217840555621251598839345799236917942561607027127565305803012065391861511569671811860224827977457049153466749776919870317884868298775320079992936165622769638960056882530217749980510007109625239664545628488327967528937682725289847695637682766796989588542844392587731814232405154222624633448316487884689217073956997496650461487670803790811272839530625701046413181049118384828472000395344294369187418446927247657161189515737296321205618698034409480452322930151378661227404614838108275923511743550982307614238444892466256080744871547994332924733034827422941928239907697984711308147339657422595031486183468415935397364916358381312970245114734742564328808543011628160712121701195343840167941267824151917706344830344838674833986989553883378623735886837535581021400732452526139976974030200201773593723453393392429604637674022999917173295641451358496115485872715110679979756957211917967312588801233594921452126730768507784660210257263118067807123994165850414444351916218206832707476474435475243635021771387291682498141537447992130352632056642740258454244647829725298376398037073313933734685471907621467615547586944589919407940477286113125924470358104584665737832856247919013146502521873208118597727213601249805643545627251744772072290422368850306213090841086629924481875548787372314464977497853754738686708209265146960181002095391899409058463592927109528879182720553135023121127238958910123529150023735624589869606396223581858235055578139363040675432898604647448081971321996688757725326007369075801025710932151886714288496966744989210878815825441962285031021370219619431877579712157402076818481104388944498331027593512663197408447378850319542251638656224131697049369947514897426205058862349359968235667187965171052669636081131622960729293572368669774797043914178104859912581722777863144079459945374057369324254004890738784761504898658475003647173078144440427356694813250101911717321698784876328438857927180194526200592860132565258766696301089807006587842893680255395136048502311067314223880788293295568432487246776927085422947846905489063074643937315314094471341871409520467339087106627007029590295199334459189171914773019962964526064826708089247749395547240685581130894672545365630238747868483600538986398874434868790750940452174221175525138790488513920601465884456216623117871547230248298036478513626596285502629212096108886336975476876306256280576324993603533884882986531236838968854623516077694354809337149174551265036491906354283294208405553208385378205010028718224950259176349957221719851816336805125162718991883923341976824495693634570197209230919181128116157777228037711970974869137422592538940623672749222749700810195459657628608079773726256392684043473283384785616985256709589244725278213837738712630652707779501342844752394295538387062071776057301950104003718033873134796221525837482328739148834019951170592822353935226059976931803875631460123607550360688341366357697401230519531569025023622561793217578970910798711615056380763810966332580126936200941501263773993545062408401394076897055010505637306881857901604037504030909383091823544926013355251008099472794690497372937944399385070272306340260269283097750572015005342123181682509328551634273450762959462862755370780605288127283378133557246350324824458771328547582050937466024872006242475290408915413616124207405956140175062747442784512587186092166760491578272005949629255429142536506047953602057230555291194143611701340381552346006032186154273703080772848653877633102664805028786437970879599836883209363799688451420581754157675231566841090099568525256656416104842663107948440000584941149317485339348037870826337752806296147240435049361604787433279935226944658487830204686882754154122244111569569230195531919040276163419465486572236882452970287206996509533995486996117631819504286684113199173844023545629828739181134069279017769371151881718989437629033265009589650774875086109512990166037906393608903662143740013836026341808131085251804702815174904132919991692765083129783452359216256611911397695037409555580314780347401466891324971925115736096669642834218373926826818706507935745128274121509300978919378050601304152644585928863516605835455733912680722309478995670604173928240490289515734489914893405957631517905651797527663119949053988902048286930294978715236655527170958042060630898922223596055743804886270707184051263476566267030790257842554653730502623313184499380787870320108670760844081102139939353566955908037204241793541187400568746439796159028189476541138884065087545998920032186479089693965668696520820057714657854838530529382261313145734709405515923484366187264401865418548826237849010636243128813270568434764679920975224531630338019640845645288068045245244514515023896393130245843928566957040244484458891593611311421736056950943895102663835392570746590961968862694114890856239526201598988208353208260526438117750030793808328282276473406876174383785320062525104634885082729766594586420127973099308959760536895157309777115758940644131654585341913414125568426145774041651288120376572771524719801805290275674678871729994710368766953357266268121486919752957442259267040349953251970901482459396169125418992225081783127556771890973789355559372278508095288675107664776681281354353632282569676966346151087561548686976170871191396795507216568082916510301097775383319580594274470574804575043219564416749147895210339062621917727000858700849264604659384270173035731172918136416162634082740790339737327153707463051747743757439711415362201719367434995226224983918626729744241532859806287568737935564445153701275991479765360960759877396742833566193426992333767355423947286702972043221563329716805759917037595278862326092757358481959606682020955777380708573167172922055134108683295874449752129341302574328922106967385465737581846280565341133378804261294788480100297961397881692889165235338146188964952719386086816650995860476469366249004127595940272353168471286058908389766212203739753050715780089995145743521366230612412872216250225066796771675378330497201506327134065857975467786271144514302366374204159536912672649931358104743791049170937185486391746440406087888730362777821702935913610075536338257420530029580489289201510898458291012217130623915998675209017378261995299567291699447036295819089733067974287632431563313983441836332109878054522796417078475967838818023904948721286897119124895304965422485565384802146385731440819295156662860972003546305138139236434432412860953989337054700907195851562661424768681436522718964776562850114503133770823320744935703467688164703323588234893817723990181023619840223298141424465305673681566783887304237886628013059834875564823635001663290054390631014403395759445045968881705350986424869215707256912363475873874462175849876794078361436408749950440603094597818947396471392073356961168650970467748202433835950922434029654864466924661400143782338503537400433391551146236475207252866375888604857317097620142408592076501100133871894249694405847384153548849457684179768628337052088110628050286774169150401919643565116537365159392198572120484457575659406372252338663927798544648869768387219902915723324872462223085820222756363041208385454541941766959462014061617295943411184209844352714984839587615602820690846771732946915552724233000828416382671100782272719647417141115027975237181686790444256149987434050387016103949736529287737992458097032221628634003849734782031045672934678417888623550140336529939660801987188104081213785543757058008175045963078197530157543791791939334932503101048119294725446400273395212364204045434503012152315565186073556081913116660043267679901293696009618078309045877975895025538026777911900748950174074078072414745448750086563652659154854174954872577920480624854838237508273717538016633100303057269577017355975837041990660726200637906973383852709302005873525598676810865829446475304057505837946935172307217527686493680881551323807531911288716974048627458527260806925338295592853154147825780250913401421627723674853857559817054371965016199922388685039041057242862430336233060833860270184726011299904248281437782680336636273005523936225256044071865590622665142779715705797669575775027549597687157812272853888478787810144094990181802975806232911554847205509074253832600983734425971583268962052146792412314729685744106550837455681065201192947126649361601624685568250359779722972263763163902425524238379481448094029046586135744772539537168042166067823778146032873979085975264510226020037165106787733345973099932507233031862048655729190719487710960718498762384815363177870946716760118637093913702431192946271308546524869972348302095296718439697087462449170225039609548191599260603193736792057731394434676667137376839105656068888634523555770000919995198335315608769102525909269108933006194806616257416713888466494082393503336070535048870875787973120334022848271659502138288837734554436445193648021672329217580423545485560464070969960378113718052474995481278362163565100546619847608053873321877283390200178718128371348509910119399289075732819644166528359346307898402913600453531784221160410374042640007658265507849074813721299797392088755292167418199197675814797713012323517524588334805693715422216712484980648507224068590066759751127738005832321353700802219699379318827418499760520113845387489797755870200432767493660483280522929315977510583892708312911286012942953831588052167787216505740303778159462558539666080531903553775652520091153768670120816224372415830858884934288792255919701152107733349065525091688429543573336430750290149092157339119727592058684792839972652644858010592095804154362769869499470028414376677970761449050976440717068524829669513212716369857628730119153576191667023837004294807305829119598991811069654650087829937961362289569238089807126758816994391502753486607912724235123400605383338791312361459260469015193323305232351491918518717711046999810222966455470854163409293555114650803583650354776211963294919994145877266260083541364375891964450720271144172892526205209032825931260691009002448602323159247827905118743503835535974512909851457210605208769490048361126910123246199889859978105790867009831772529750954926896615495804853959622147140446022162217406469988447870971659785001748989169361397112510507564178503827065270497977083007459292522803248698088547191740847599947593782969088056008600529759054897365255028463120920730289994530752493932538757938055599372046365449211837575925928577195060781868298604685567983319837863040265853950610595312223503222561286392986405510653294624814276651654050910762230442313233860846211900242131557137078363527517763772246910293954549934193427303473400265898748185500724326417007247289666318139249797436841329349207324864987534580879171583231009944650526922594339653775731428900981155242629770830396752787253476073445721179931956339432351373137377013847909367453367346051542684656352180662116957270721059368364856235151293038294441235313360094209834781414297237436578711911887429366516130992069089448529892325669466143020121619385257995191338038411861938923677998684932469788436546226997156110270199742636165929500567494065339873740338814735824253224758892674385378098986178158062499857699618895984215859448240312795119798335067557896607451376608933177502595063301665703509721343522252376948131668308292920639123113750792040188711389598424276281048747994457633681552773672373405399550885913224156945209363946119277460981662907195563333031896410272930448276763774547538394005077563010512137574758946574863170528269292044797893005369944154946291163697998742249270303678007499524460019252794290451405434049622522070677241741445901277584930438441916947182446358945359393908307895233788038954338903592229889974445062985891544968134390288308303609166838400036951329341816037308042375738707173245623229304241097201898604530031738996205535781285444182823550617923204408998774129061899731287154216382164682779863542002691228146159742805120051929177922103365539900248915637486703699436121201993317058150848804580802833056463332885595257958852334047613745794534356768209092887939422286804778254854043467904645057712034985042777862667706888210427475487085258418313655594441206241954778069056730881878809491770389781399106624129108546071129649749615329342881802411192148268798924178713535818217620640619517713340538704940168172571209860418763679829155262210532820084775167363916224942063692016101618187879017163339349022220315704649589291566011182078033059720646993709586856267729201104389900059574547657449628553308475776624167508182259030682872750698784882572170084215853048692583175582254683109048691827797411310489291371663678129755520834319214997207746449445113910953534513889266939035433372679185149710866060713492329171429578207809633311128729980942204313428531222055532304746353215032472203944806821418433802655778777043033133916124276625590801411267227639738807135092948016572426573780367193657961980924056177948615228622176079974280610786246068533606400708397071145927423343740372737485271588496450442420388270039859268718785248212867398353405289289638946489391312898011195224571091644014393047425719033507982412995117647694851413181508263358673886961142533238448641359184547935127406486273380176207150104063342624383861959519177583403430874421295095211751903225953718993195008556694514977706164775298537963177889162809818221847934935800872679179866209528238898763806090222672128534831931704537254342220357460882500683634201829000243846826263039778118487191973689157162078124722568025861761446482305117219957393719892222491304113083854324683629364774654809626949116495607809685830806722975916834289023515879905698174038247121748028815052815039776468100661086278281194465439762281332044477238322604164024823807964753964523462583072571175959884875079629897912552095336958419893687718694712660449718799732737349189324501593245418621972925956432945513135020095593376532864796186386628124300921955725776217963945276943281780657183420299465205701794068087388667443842550360803204860691244829170924814787198675757418381547444642829490023445580419645839294738764010631116558215768313731361622629983287154602551970950768287327723220294438892951032186313365263912459463041463489418973175901388472580712807809760515039604043883748261085754901816412360538748930760340322903695936964929469451425781429152059536271856067258650430510369758726414089279125125012463231937512894986416952019757974654634330572566712179517157363123082401069274011957902137714544711776529495602883154062972056898898587666861184383519260797893773097720970633720939693411944254702944148329059833289533187377675594576610899519450421876822960548508989908934536854603525690084796723189723896975867314564452519869254072532764264117538015564163100126592345641903186168919982737870629740081513501467114602123159748285622430871088598991905517385790782664581508023082212061997230249105780995789624529761042262684808537167763715235518695883373348260220685653020477186052252325016538150614441647681501395751101286962465121412628089414515756904747917518253191553642510481739458496435891380096183485860886439884421298577726871054791235512375028337302016247309594761227138988205436616129566245832534267552065511833215646596327312598233162296589609553435495614171862412678187189468866651926836051543672288807031488963683564539028062013278995559593123273480990984951203272580614056057443563101020047340082332334531320625573964608751547245288539941719231695400664347890283973122960821448652398626763717842814035485946205430512289139877051510696482429050516708668812672312014969244709919345223052032744300767649731589477171436896638462262866897871690926118781255386127125212308864075866984306153337081754846010154149335662397749362052181117634175842169026325481168202310961691921920228696824507215059718211502883410313157564219401457887872797176411065628377960867134711778032244025125373598750096513521754847061114851799802471882373217303279862556084181344755881083537175090620838495675530384993938923571019963651341924925687546270707340659096057455464125144620654291720731864147949462700542057142024621631150422919647130188060705065269914451160142936315965278245433470945418594161114411857909968867207854997947468677871408836668304043147069480396422621871123611092174928478543603480559432757951647361905826280666188671910802416365180490245178896013255493864928903024320281256709916436738251298823486515026925744809368685550468198321753699020472699982978504500784100117373854948677002520688421295322598165524537514036425003017763816881198554486249838368281030174011204885129917747185461917497937063773342589312029895921845707049739873081485141510042690350849206673687799144325462097443996223858727217385902174809381744942931190329899673320499501207608846295991577285323204217684633856311316447875560550538144049023379604929496736980771183831649730394472272563666575399422917030713326007292072013106707857021531488618182465857645393551408724645812688054246040334138338171452022768442274749478282098113983993397823205128099769949941414703922788734629590056542573904600057344555286882325162688448301708408414170380056919801265302196925156395683548118037024860016033241653135564470216696515376105303682353215991601198053615624374430804891549087614593063280705439773758017351785298405002639185165888345779609621557705351744288527975573926714267988659452878397442255967952331485016749399208245727890201848989733556863251749420704613725724635511686392410265447620707522051223530556923842542262469082820075202593830192617815994390239132156736988127372591213126053130776062022129449829361877569784632417086625983447647068042514601256868794424455157791088216702384678561612672642998407249438460102519867189173850889113785398684761957511987405603368019341587705276496809521586501438451429876660723476584865151291103242794880816687101728573600352970077009926686733830512017337498316246318933902027112780458975424501814904900284506344242503786069533969397720697860673703729056743621068584343281464840001120414955668363546831283883766859316841167168394790999317218568271857384728653957544567441395299038322361399289853088618538835132645671929328660152781990812536771985012593298994461779414110256729478796569036323539636017631771704377350776687941192958586777104968111542216320223477055601741204684387993359267033892345178276917896278507654515848356670167857270809562394251797801810288005607344336420511144824956628611879504402723204789486957916701711294894589340460774671990916055333845617577656244818103981844322048969678307050004494702395001427148878025727431953499407001465579848669669405899947676539645037210136977205137248500093518010286579939391759930807723978357033120743500819002429349734065290554100970854037569511508468591803157031556814972708862629122825373903107921812347854724662590452711430340831345611367197089771291948096542408679744870482873775256443233211291254992673924476756666125407891548607779510146118514245894358959288471212606367747882925054672881195999033159705896221710430393233538212727552564813302927416351280543225086876674485235180383177565091066333061880028446542767128480254347804630061709457812724731997123516671195522949165033398308690653279847254644479604334913350912982647012006528314357169612590517362033338675487451251605821486751301819672555374176337926678403192972215799007796028305526403424207843181589719496197248239664087499067473861667197549271079660012824577002399811441883066650809939319990753519571645881385371393920048365192976243026331532819822418267733484413510364795252212456037414770100127183003825155734840713832128794443539501058978055708117314677733670854313950810047198859943224568688772998154000849719486345212981252933076062874525131055554197201101500459501276201275447689361984318444207712330812258435671167531808198994413970306906733984491787455809254192697282160881298323493847279127025785464911676874602828079458881264960697340083268243918893742912683680758085035658108798666330070502176158218252515579597476614657884368882714898680254653368428716875845984258844275746897860990118501828263974528873527790861754342615967759505477104704323920668734339623576883221651301838539392339347880682024694548580093614403134394478999260612022858351970753666483115962022485747086496092697797503547621456997058053831598488244157758581164220497804973862336305071306013509847049450670796896595007694961646710924561416272824573341370014343637727857336225457824573724438057572301273621064712826141679918675764891126577637344395061769520885707689448614892208064202668064661014452660452475482364854453628844982477150937005524672316180429659628178381874346490369425565450722755096280167302568420314431589434024654910031307890729021758774338782299166290580783224076694448344714768922115999735595085870415749833019946285546636613785465869198549179168980167105507141808269542188127465621202021971376495523081925934779360781323019857862927933483475372210491174098676926391721051802408882103706270703540624987561676469583175118504171823982646364758285579131483728967873319054939019034259082582995746552034967163858538691006775558309960737265652629685271917179358900768420075551948802103399245642689360524322401133799516798742937475985033820787770864538827243269319639246699012454835199326877139052936624299161362923709050006300467037102129937175298608591785164481166135189368957513966923241971500258602024042346697787732777278174740435981161010706342634751222989699874327188619535067787826371964130903353069819179744012150898566802274058714459591056573560299603681212828129853783171759479929689575492673450153302479356823774313850658707807327428570393080683465501455929612941340956390408192133839699154233144292114313557289001547326410951031661708289005237383050799055074912971339225314337619512303726551403229547632390032904346247345136944274242579024673176748019610437553058218480030888670975580300203944798592259512110142900450074820239305141870715820581704315643461613395208621842385657015020760887982966137778829611045538109903889295748719605216164863671958696195700683835338043418164250947218008599617682953197686315882324472986924600062986350649238673925782538027900344365792476272324883584727466893527167304470331395840846155715632853422861945853562234403535902808692220196996900684322003277151971391627528419750823665153489695597936275135741877925855323516615638382222481264500363965184258273245254643254298163592709275937939176872739841762606136340382594773080217636739033231692507620814650223047848633109368210074475180252445177621983028991274319554925867471689821313245854632220227037937013149040707460343332658552805947866676224565447602252566929472969933695714757042662118271912419452251756415194770528689817950925998424057377421386462334416726580255553236943228336896305571378256357397108647269076072386741424874225158558034532830555053251312328481561140034020990869298410749622181156518970684783084734279476008399862449137405764477050906950987748259528544245503972834945540133235392901484940250007189315626619008377219708488109159033590629482989172228522194344422727221236659748538766720071467310623686998596008328310293968784187836904361470125767383673819639516433573105735545685265716682349289340218211346221727109770149525244757339885462693164471436384296625600202983848742217124742692760446267367705620751469225244915429734539318881140860889625068886967028758540502117338574970887989691609025677187015852875860344484245981390335331530686028616934863449350141931227649775481476910189735515908060026107080314020901546195867548590676224388779824556494070500093048067539383862693004053021952966500889885655102236099419658733088736476476327940536877448297094113581707175447023337160663458639722396590250587543662006081001366556634387485876501469551917578671233851002301197527400425908374799394783291425360036534072469522701134279244242652622844691733896843429731424191377080363790782326403102263732120839866316281442575578910686920004265174170509458628854525661988864600866924305044674816951440367061744497795108994936915845708574708576992999411498604419150054328911323011097953348299698206521621849060614558891507523369597936307691723984499931022536478154342586071809595283003348074817865333019188244545885674780839287563948846828807021423977358510599527663674090580843600362190947011181672818492879705551427514244803754775436839735775838993981395071895405920171883472980484594376749739360665184258920668662124528016270830749944391623652768174319312025121056321242487976480822599097387591931909820300126108898491811619888002591639896230454409961539170364142632831927316506524676148801876215882416454683370343605568590065598046013001962324477874860291525764819605012852773599235610142117642827127035997673194722381165835428867871881725250392961674401013341021808357375859780685489308007359120463267716908526341413286651000623648103220351550508071130914120462354801944427898837028152212535328454036853640803644506514926830386229530727796909536894759213044048556819059245115582155343112578223050011721204029552852395193365545131191969086786683874017343139099277784147683729138231503504304382834280762654796797099221011375968182946306537693218733999732193085615004126426840652997095410848222655654838711899958317093469875193585526122322235400306649943902161686936959538341869103967381130394889581816964304772387136955839563033960354473549594103169437710318772962862274931043707835188323006994668067426723329121140095429033610009126746572895384195693022041362565631340051007707683888931709276089217452708559988300303924626357419883381732442314159866426422690244944806987162050599254712764324305136132570781091311627133785721977318811465243224049458625276892853375769372469311621938233457925407528496943491261585340600247613615344122695875653124085944345231333376371704578620523233668848535029768208376875545949547421885372254736995671462469517832531530197864254893944867820322912527097950883150842430921180239357722095987933299945652042579536921091356993580268490671600986920329129672122431012828561772785963975752274249498683543204413879255573584876646527766714689294111487308527127520453842865865262416348999791179026285870696553576917693293479767998174440357774673601328064912152433195957081894642805969940220097416461552597792428207832406247559802922247672268000494730632159514845849063060544493554411511447219508265072308505979664717221510626656151115516907411412686809293513876995176083889846625594673994360873023504398068746762125767075381407009690934119916559055441570766217773262036684979668263813129252152418835029558399823231259026813585260339230384368842667496008734455317281501031533528936595093590203966932772054073795767690076891429519950165896437964570477380285338348339073117092564921720624320719773734429912287597284820642135518310274804728074284530817947159157553519826467271202960344133024285970804876597499776244968165983199638062355564379434229835192667019685183332652528270115156970992507634354195943316395589542823980376427278165739306019207637215790301261150424451806766262753828119888621626010581794310260403909092375743703074793668738434405744235013582124422250749064880959842198811647671462409445598254943462804554356345404185813236274047086193105741395335602894149799384688028867737762189710030667162938853943343127434369206975303177671726265630912190482316625286789518992982143301073535208181469894091604846987172785473678751859209405393497151084975614905133319348357436523141109873223309208721605013337256727384865751573347914315728837191030286077283981339066356086413749558383108980623811064709690269256862194383224330649499454150905281393120275580651478286564443905910548617936440608067367444027343242553190694538035923172994714699088304231424234265285882375710654220286227648657881644932607781172460015037912850762791733367934376106361783422739934107523430843122380787404353599769625386286243477478405346899480592511513026604299757734744955798775571913234726720724614820635909480988655577202736461005613036502560203814465294692100316155987086482304242632727283974090440461373938404573079770813316331831031524311842185943961094716612666704959948207921026724277065913620038918528686836459533944729200572590618434358807789680146361718258871721977588288996577958813216004068534129634633279420905672692107885313942739093821761807584321574152776254499327605408134386010999651150272008411909100424071071618807008210163030598251410902861771060805547971992090514719865976116852716270860219526824415394482072385821295017622829872975163566702246365046380562838532623239256382794883006913951899473668502669591697678513821428517114757482290864929396368714685334928131035321101149765522917058233336354423954832236102065705311398495461139984827581778276712221335002851174651431598682222090939473897450720402695078320162637322169759603810472470365030934091655044825609091836940892989768097624681753022675426790491545267231434513817128511909384268978968141656539954163665755767939393754092302769708444734052356221353460483178045133745221756232338964672276235076882611005045096750442144673278043090561594811006920144271008130738513075604658647551255928624777772976680692060923293540253894700079374401884687591116529091356848750496223665847043153688055497039883178110179499037428097762030224565216298326985250066896987765331561584288932518772603812068838680377339388385030290146525298799193180328440673348211830625993791085057712650648030666328189304516168414441815495837972918815212440105791775022647761871288830207864658397876823540736617064607381726010245371805418589613077371315762914238647985640423702839211412736138487831799107782990292088814469442193262095578200992372496532767016017774299005809404675761818762631113081752642041142965874321687553018338820333584897177687530533715136857788278089990918632401555052461201973537813557341038929796586388987138354897380713932190939527816273990466944640807444153667101675297945724067360346936193105489526486951328860064841832665644214966604884734505885662377470943300133609953305175795166542676833035691209347599047525829220266545447234334747146922008684186172264626133908204651016161889416363844388875268579799124034772986739085108028594883048477812106960583594083126587270350745235179361467036244759790710044009463844196625619798849478216480799542584561132827309527648782452888031364671296147996731316903770893728418676298707469913153771626902242393644599682198160580219294440762308384671691341286426648516213587132527124415772186527147676962217011325153969991794414974366018493536479219740833118501025815992299881860097375738723567022934130785389719611433237363903116273730349507042196445256896926452293847084281179925107621686527391024619138228693880411938254640455423213132958746376553667695995369728207561487870842642086014045537531409475530811177911820842866865179751514875711144417987740682341135055654125948934365373166752552115811292711575673366032884982619834775257886393876440947234729841967733232614981662398210617216099934831537694273046067468854914610239854853510785156003772698223505469667340079385384071712839362628086833383165643320813624236199372628250166596358601409074562257909239055011967619843105265449651391197791289787849918266788712620788136328606041473831179843228015777604441653698529830994356533245430421759330811115391921709700553880066058173719684647823656798447063614931826994054801958163862688495342461678350939918436242029831777275124213424628069240073402152339983932778411547865372684250026977924038794442583186385581979862931773009327162340876704620040711458185800255141344601603200092981096009294171339604382213220639262251619663464877055935615200117359398991283642779532119454518012452075625630916868446291318754550694916878239169623966240084948300265752592285664687836282351837323897191457716742995577403285169524252684031361574900468524416350625047005114060353732362786988948329083425004264012900731071421525514797210760580982429594264462696260765487104916684087712003542740402158578761646672881518020900379778814190239059361371273143673683132626962006340297148709741099469516876860034116491686702167120823857255731983514768902030349586487721046603778560816508254839034186939655330931657654275548096592900632167693137605677302273632076049243335466630337721496442877896442534167623425396983643729156135888779180218702551919903087051146651709881744458955560678692824306221093916512057714031465192002664504416864162198240294271672443716339375823848322947789161031014439393116276119048765835286661664359565606754970683869883140257354734472858340267232966581758316482171109174063218110261002971679677340313932372141166394372735321182765567197813552947035236944267223606768159555532101084416295363044683489703807902815385022995518300929090961980455112156206102176604629338410815070367450400996566566437848901065153273005873657915303393799980501010703511699555183149524749602629554210286539958877106951709626955217790361065896162639927573776022357310236857330951445040045749255905177471141954507430545870412876562628165832713460622669613290216352068377438704390102404803475597354433388875816768517431836048089082801581678846817966396560111527955742797948938323899488355544375744340525882577118818845531668215562888487828306994764821758006355139623499918675491428481186927512128264293000154137563823142147842804713190867319850263219116536633368639694460073228096557913589603097657409546743250757972866977313561268565575949971755978849719044092224826909235352771433329351875392326404892156965902735817655623909332298556682585279086641388889811556089657951602341639749340926310294176928258111013456628111281543850494157394978209214605449544417724896263606057630081793847869263936525512770818138330804771165796700172447686159964369556029800159321626021257729698438592826129253839500919972500185733944764334658453806934573476163472140463373118493560128478782399653258368219124178279032115060431362814998324409458955535435643619911331106119834935604387492091399778080068656180192778153800198531194452882409332603918403514593454874150369449295690180150433046620175205898439394027228249751196866126425208824805581596151038786204212217329236701779084976291278054334105413690343890610943838913378435663887308550086150986476677395816419263588156755387858186885651382145797606035266479066965254378770412835076929057221607856098539093969227850114695050374751848114288146541150592603594397728403907956344856341049176882165536833101729919149406760784183898958969737923921210716979533044982627140850056107540954379285476355618388129937263660410681069417387568784020105009314707228866911099252129842968299239829611755324670568379118506538781756304610704678477070577955970404718525106151213336162517223521965993268972202488727570681475328498212736759219143764367890533564770167199476610822192521089677138232650393905864358558314210978561963738198800821322625488213454865701656564138837663643953158515514293281054017445197304465700762184321393982135841365814765396500429819031900419403745695425098120401067817095396111140208829915242532665186705228499969109225580558165572108548597783708640026246922537667111330125295861958702795035596475458852848647410912004018194542282084743604873378515722558890161780963704626903179170539393688026215485568693229149453051559024141630710209054773273167503140888670339675137283440586182410398367327827695525696808929388623957574603141711764280420319128254886577075440287047403462927719211704946854034752530958476821061018129337534823030273755277975146917496594292547262473719053419107892713212985991689084322997977695615903042572603259617681763013999373735340230443500484441978907382442837870775297058455381328145669912654413192836759011421524811450281991240904023752364899730266395671987414960025182741083197570033509516000146181033741497300702485375704819316011920605889631890475971788639037907399493420802317959839516533520995972786429807520557939876120956830579092465361619956156457959923993115852791680497975594063834091470794475460299339225094634860817725347835078789940479650859469559039583164461235394728018948588446648505970098382006190362166318787402197669637792961585714886706184668722858347197230892882814557561318948786830580111596934837135156994802367349520480195911228806683534562772381377993732189105626825060057031818218979676259849744995532734934347404786415693985517697363867471119143898705681249207891624966671639083633346697871282880941013396000489703348255354781669642566747368528761027659541875674045861692730901254024099403804127415950798339034113488755638689333228426201648817274245593004856809375517045981672753152668601512531086963479371099240396324680383672899568180793728368486951017757813789966363831421610727071290550680044909943882865634136122595032087410662399448809572936909423005000147956338870302468427173113211730495350287232914738953452557192120996619957107638676562547358738813264155748073377594494690376408008154318193618664459051900517524402266814057980387100405605576873822237531800144540399413524396458188052266063013787018259901973228679002567079563510071445703513771998858435447910556929722367420641623467722570869390404718411057624636835085939899003482272456412119857682647559244657270288583804770173830628620225862617945125801767295325322964457191759013050529323394314810726550048523157158287825173397056373029924090051318122147069200638773613330569079630301563337118830696939081582759657080792555581311388902447514540466422807313334655712996019058584784747624689974120658373073066148525021016926635083811797815061481079615543351113647912503161835607338075996216196802957479555338473412398128749515984260732867732258887892059007834720716319268043522833641824703046218031664219597863131068464869040599842238330813473397266120691690125044409203755277801627243114161045218207245206740280830072433429110909187515172863885321777741646900116069117945642647382829817284527137930147369069274798664058934930018376730334544890873677480127864273749439907359602979106565073309211725384944475895397795255705660367865585637041310956936915962441219437945587864615950715829799195717857962811372983829657551568060692045607703085295111977149374383773421429137569839446177890756804899204260858867971964189171196995869069623161264732991853261802852198076410587897751431852786854480912575601147785580904475221300576389473729657898949996990067007481537322314660523262011348706363874432218238480051719847169696393379433660890323345724155779708465533963245243128266142091503387078013873363046274988666812060121748660451659699238003823149836208876656983492813634402504617977805571998273781179586958702609360098221626315230662226776076269276307447179293230256521567800528201419961342393875310335719994850928220545307300643179438390107681330430524151920619681930469700889576843273406945323538752831702760630481199781692592812494394664973026382136731099721424515782361708583710832263846523570121531617446602557099377861763972733595199746203876484608309981086549508196039728529773904675658525956651461297514816042197010695891397194600851193654871368846484667805927684534760909414687530953207068026838995110957984348615000529051937241054921926958917316407579575584434570375051825140570281188897004625935710287748758862206240035585331211890420859146155621093145943080426300966562204074986556047928977509140069368600958741172612986871999341072562473680485427643923817188652854757550038194485387265472040409693940647691615413856934257951351462854321275816757349421645742707590579370078582801393035660044996935239534475012795129543188719352658954358970858848363616531524425788466501369396558131648782754764586804911813175160415993208097083515136783325568710638732343599359285386575148901862708862499801280858426192901751514486185799350729636893990782229832065117337847865384901465518421116567394836715817905305830667143710436038258388722227001114161804632102252657592734850360043592140424018947564645445026681240761019081990343256719322921831775143283005349652935110868736595945936685603941295436232044418851734698470266026419641225787056604026547579342519471850824404951166756200657693315293659650138191646813466453873910037301736008788330609067201032278019175150403475678213079717463496915111021595716778235507505450190856237732255080121945666706655560649535461695744668578773728676562472731993113699659871437678520192481568841394000011923972198089057360993151316772864772386899904825649117780613646583632483609560238377273078449314936607989246632740954529632517052622735752322827438483143363506359371804682530690304796634169432005846924684513812894404289959555818930419508440986975650844797952942119995515768536012299588885834025939820256806694154285887460842750264622732310356743770589334478213654020774973027731655446701016548854843286801140635462180180941262298077493668023044829133078766265628393184555468068315008405620549870276719770962463998593594259791256367655192452761630088424233882304579818376783629604385239011758630371979259736008297512239542210302994130248785309784356782077558526387809522846709688932741845330918939354903310765597578001298200054936262090880582157156172392008068956944958367461916626175322097585711818499979372954863060901841058694106441861175845384837430636137828707301739874700024223256549305110533469384596632632687943688435724240857011659948979498979741646653230831343316824452341700937428986907875590814923034371731633710680682790340864166899901979672901119848000840645158683529279580610407386325331121032393858619132257896721735611236539042203734293268582153708555857275464126335469109666159896781390164094597480524623787243058097711252180606814161581741944407490864760348442842213998609942085650723672678868536157073291888036388338220524809187913809947762462588012788682559270166609580933645081506726521894420490861490190148822683512649421490581200168242754918085567703147735312019968725929194246725835253557104498580498386194141909770689114390002311643700357219753412893801154098691471723716093943209157798739584366320529827438360202433203387443389735037265213046989577094751708128909065625944601304765921818682351381605101474739474406801318612917365395524097107139025493886654851727487448473132149884667327967196810561183524437397232971272001638173825410139216092687783987353275520262462992210343518996122723077583577038792804275246960955292882708352539744757212577788929600956537901069472179811278971965588468988860865054927891223933897649978846854625405207556799250924702531088089818679980801811459891028152229364392991524811621594835986994592319106656197959508569393050452260614806640113190809151674533609214291437099806136894487397174210960895915969069246100056871224353721670392383891710951481817580928326524546598118125736433304679685646741731036959692184921815893380012463635460903150572950383326652400605683824622141672567367442779651205159310008972763291422983923703384214199895490578559166145320689020594813840804424925803221928041898853004127873253349608383945385904349039583336920034380109398445169300181836631099696977966767426546435130940780496308746123034562010134876476267365978735776763475251320166966573350341855164367428606337391728080433383738772914147578465327367934686484015759071274666964431341774422730282325593529190901029653173381316338608472841763760387635229989879939980366709560786472264752823031511788027907345612060604830919992408224118435872628958194754433066214483701101331842484492870732180712970277482623339299670646996123544924886848610775351770147038828642209186145575628618217143948757944316846308452412293591797597906088131864289366531886670664966827249866400183099860013643521154220220647254587274774551808605122709371412124707838628652849476259091717814121129819084709014434572600010169661199247472123117518761269604308858254366967656112584253974341484618281814975518447069023200345107194514806299851473277271433152442601546639753836727531957525217305751786921708756221701577734559868639790005293204505927197536307049552041633509866620177488145194806303504584975293225497267459516168965505678763213772947356286508090406172546483124562768201256507220700805637565727055387787024211461066202592303169543298840556831223505206375555015775476382033344232276279547125979750657455234418289662384278132006628207761749049884328291788823423870967509507593624549564906804645981825254446034909787525680544616803042461394784909188463718506550992509149439051641529834323080013245527416885713964744613753578770062084286544987158842532020109051823163494164767806379656129230734992228918847411460035432047459447337779547644420189526927801914147212326675265312072019881653366438161164382784445990983435132072576184451261878369492905548992364506140028932151793319044437720175271035078805229762843463529988657875596344491033069669505333902417740624458495514343711016429160971978655428139653982310541337416082235906642807026495083165562648045141673802334120888980483967768537750091443937526414995472019287217665618085864961340575434696935073804316770812792356685044509675802759384832865288245992667838116430246118497468291238768873801840582354352786940433526813678263805273595673010185793089033319780687337296069069093000859808318292570940603238443855489830159560796468462877005890540085308527637826102706541139747263867062846812674444453182043917968871452425165885885849826822404842247255177387294677938624133222132768740353771946647061287890934015084620877780208644338625937169217839144917355235970232491887765523452300553169010387890838811513539348159940795336565084785122344795907488470753888391143606858160329097717407085044927150689309384200271035314989521118974011790786139689772113233740068971932607650117078429232281561273840997580290879403191060842876671121135877032463514855123220273422214419763274214291267688243171082665294490093773753487084620940863500261432479813418818813379409621414029892611269943494570583636744872360549293082819280476332273952397176165083227376466176184522176632046274251831492323538526631699779818345731844732510008365227170370714390978140359460699511806470144960064546972617244792348163617738902103667613726343853672098707013730066813996095384621788003201627743851428856614287537884224746028214749763869327549679527198010211015874486904177427460205147259409165940668486440873731832509095170593544421014125208250006926065419696267590181878248304772029670344610817656840342653054691459990175642634762638709226388458830352977964753749185080483787332036306897850334737137713513270702380617442432841917358827128680471652568489477403209002196222709863603583392781832171243231085470021395268545350031234468911505734129121938448569387770480223928704791454061370325403324016057104575777039019854035354382604893665700033410262005854153146934345724906058797652064501279104287513210869557790049845758979437991051459267669033957458664667658832639303588343860270364744637309473602119064268011550084362189712025999471271985538203073194030739936437243479611418117588416646181579440290404428942872598987284259126873869786911225261806630956715123805901206067712609851798943098054813921371302498087106677886883102164140638479702068827341756646021956080782579837695257024657868940880499369776952425459263584878263682926882833885335895850721376673414622667516590477861369761446656089901116750434576184404555118474127765064072832880437446916128095012458655635138780524271211671889072045579850508452072818092768891975313799952534900343862663548012283652325724684181090451289299908897071987650429369129560390015106937167030765278019764128021381350865881218304733144424759918863083627278579276659000852913418425635792011876682685758304652318695312880164661105082684826544576172244855082635223397679756923045568482845703303828442747272346204889158819224818878871016681756463461036013148643685113916183854331625430783520024020862938567223183936698104771753319742596090522793236530000065804202701225539451082241879513652620161611961513747551814336086634394661705380462007583233964293366885685419570924934992335282843619410522216676816790766527523407992169683393269110095544830118753437278109065260796566935999049538659193600258575481314066399971845110619389630901859399232924366202182887220436671717316147420399664233950714726917978076271449376611314986850471383027455580082308118011871597718267031039205083320534769752739089504184817117117973538824843845553859256632842691712074499636947929106980813100160785403129972379086737012656496981058855086548148559743239719427448395170947470158331096037020675692502330984790297898038429703388588450091029940185895561567325358746842085486095066104214274443412905564826159418621426796526528544638391703615488308246102504724590916416609851239781364993303992041417347842200037873545468847478831067847160645760950787682402417587086770384920084874593935005669664283319778689573480417982489075592641006193527321292854162539108266524308139077775873706781020611195484739355071711094325738913591446645160178989343640262032686254246278681414772719068625293191812905870653406476348003326867216301432884318148892615394896756443555666411781663580422558448436226395545538821959597860053801368920406350904110593195162534622290746473345739187146910719672164315596191009149970340407047748081119223661414927554212246339123234527853151992410718733428347720596452540906510295997813711119171234211437567328760111553025005562508962672378946839092838757092787126651003691487413246468281115105992161773396172749913105240990173206027817031396913826102956062347061936499742156319508397263275307975926726411021463661483997226841904079318991314174102183945041844365712669129664654738204815378690694198584664462346912665973060979482516075355355103395291361452114695638892575422427368306729757906516499905789503318825000207873499818592394652175759918910276603418986047005242263825511043188923949326524574335592340802646793991684430418728941150206748730891555935954175613862232497763743022556827017125649482387889259000871457146054586958692768094039945350428070899393203766514296568497497249831004634317214090590228280028373531865014675755057247009766345435681742998446336698444694122348015739117781066943931397675511202109531888071360598244239802604526056287650666836700255429983763349714696119932222354126242614686566758927542057079454522411779837019786838703121185068449988619339654957791266206579348042280835065432336070139314463239515658424975590752657483440312248281066111032375909099684721801760274383281869873740436640214961141976794732364359739314725764554326616602201687960988775660616695983360597082784788545388232830966560633694868770843818131240187135773104445719494143386514881831296810620572960813613922605674322788640886751845398386763564938412069963307712126119981380783746947499473585240111607554879567011702020957042027140903050479599980771560568468404006927877919954535968850913435023753698691848831529418377014181833974696659820785368404752896968747391142886302697380197256155199859354375617633387596829534231182945796318174037644302214330983405918028186430372919138933317282716096025009018884178072899989041423156230329057329905674823473673213015756605073310381614315333930479364499370995499850045922837896302177276872397749376180124336466703257305767723774179770986889727845490097125655155604461635235701011449686714126021708790833568374646097054283314097107518794617237583705679513831619735834256141032828993093526412990845301213402283367371777531609479501230162909966338446121614606978339637890038713415234822456570707309631604651392567037745430472609409672204811577414645431522230516210670385900711201736212499815569278345791307269996857399020317517491428262797277097335470717392667384845296260542459717825243012251335980885602824344671544343940540731666563854665841271563266870203454748695093989093512908362141892487912789308546054720028043456941189990352327643540279587718003055859605561584970602609699393673295902913115699514227382869680405472877804612378630081554745154068417537254489543991526496540971473823716642985149842316499987495860806905056463383912277328770697000480099516606426271338462436938539958805271747614035138570268351921561652119505772604714759446802065061117517286763490344355975730263605887125896813150637996162005591963867351947776633412012411031324440893659554294667370114880979705458874229309648502172704262761096294129115536439074265492954848232597889095470101805837100352220517712121171967882011186685230391747854880428625868993974417517408202962497558078265131158189754942091848679100112334749237104041251867738301479659108811592249876955125371287456436094977110206686600144372131844034886481386182594455301119322608084473921173506154395619167083103733738022664708529527069108547938819314239989655579346610847914775953201339460183189400216581481937958409985160391935322846656428955674573336885453413559156972014559219540561504893018340393218914113724336819630739259176247137887988571608307618982636644881606926818226508197020543200446668987706970509143561782139375494385506088994855116363028977300860449271090452271829803832556043407220134052765754972896461189084010138622869602359789630770626922644092222040835107144581056985396529276765523953342208374379435435759401076173104116818848468370486363698850092919367165500248482234242871645792792014855261688467965023241657198728820588704076230856856981684991657589000569750227325832635613124806863751828316672095690349802314559217510360226175085928026341976162073312246861721520567790482838305357924467512384028147589583232662392564108321298334963555598546798623141357984340599459087557457872281050403186863833862985018970406813460277707685957457479428245565247084388342022153942157711565254346853386217694114049043483332762452155627500856904620142109484276265563240941697810324325867043608152789966850774460443678227155562955493120215572299168457113627320784151613356869909244737467094085667660609983339575004604129019459376353879867769337297791850967887027694818215023864111496366888302575588193477382411587200337946172119837916087787061820484251832689439663572469135359957269653213110092441404355137600907676247231986363545378719556706977630270741670532777370043456054657944969747464700987472532424046451984911058158536874912145039485563170812322544245517218332626459826724205843971612995618228952546586361814049211459787247074805929648327274035255100517446588334905464260537244234860141197677067064376427218153293856086805237195786002885059606193106573897205641960001195094854352327113892178950562678690839997383529899328837050875010122164999730892443417373973245405138453694408325025629322332796933442674371719544274744793595312770445340495505060819226909976842676746237842531517367041599326793275269244631980348303672807975776052932087944848562672886412552024598936853347360388695175324051593733136795042484279982532894051519456869083238588950737359531084287009324749523158656571969812461608386610993182648692709652886808671581883006944818309574350318392832418420837186536009785971674045677645917929742097962312950001708182890236801519397010984405636484391681888825011023963992901508734419951097142548977458182798865490459426107868643900401800783575810865528290134793436618496836277387041890465053069659445286713727369898599521761504628932479282847640123664015186981007576017675324290573502120027719352064322946788971836612837929719682490174103922545304717303599617661973411062113708932223117459211790139444870471398692661710506988222978404888992920745425338013386637870443720798720260247842134513091522757837659400695544877851683220682765437250622165532766314520682325695613775798777964910816315098616028752618348210493246520757342559826918093760867127101383760134193134868709024924016093044527070575338671814409993041418832420461096706597116468205050149109132476617674320056621127020617893560537157189374852949238949820502082368976418552608436175404994534596331741241251806439849480847586373521025745697850953978273251423018707907178523213593342399588198001942945241939279975618065908309192701175977275539140917206304099288690391418821704355249009622239346495487270919168862428197486512112772282467923996430400327699255113283088353868876586829480981933810151125378975682533170152062956055155733930448966831267695759703812689670244873203405536531645337087771099347880616002605927457585959460024488679504401503120781617482987648806190221699389250838602785877811731733541681088572166874643669634513356783147490838974901173780836214527315692165738938717595655412416417859876006370055204961755022246433263170823209676280765599601708606649829965243988357172164059498178509596354166140758576000291682735285862697288606399666070492125656951324347078584368443447442895059449341434713903637282227474745253319183806974447915853172940682642009841754184697403855940774023450041770457394847685583155319416153887440567213624041325738090681396204064114447438982874669676692325512112657869173936499463322312186398681888550150090839053493426138834894533809185320016920458364102451919467686114116429686418641480747294094670574558479873201298841133361409141031063981924800519865282579758570091576344512357129117686771559011980884373352142005120890323957420051647864336580714662476617256825605854219396050143286319795900605892817951383243119480433018930555603317486437439103685609007405664109006375003575106651291534432235901208904153202609744039153301077623211571383628772303692806470119770882942461307636035264762912736592703815521385657709489843049665129178332452592380738270943188295471198126260073527928217132637904103290903531046530727233983926853254710626446519116805462680430013240427349076148520068752439932838495734520290902968688683471593005709825939664087156970613309245727554000122751450054825635890438824519085409415124903358424752954120284719547504847239050190951298284540005897708046283227689451783926353688448253394417308689894624918442280043510791394535408849659424042322119612354678438215042044239681458299700172859635750221684153518435678753288237296808389414107647275108172488489706855063725143294764254316670256652468130118074762276469945941937079860305328744059832909810260937191751003814967673435887990635722241140259851292914795717598177726334208133074422352061866866798532086641588279152954740779217107048775154436741193669069989126553884077543983053921702270645601401255519867211474630473274343932890507029019354016733411056519730564318841781829137573981024225754685912326698447863231438363403889610452336832197826755630407670371577296390611649798716239127662382673048812886449567073669012330420885651686344439161084025596606610413352213700223538317149632214899871836917218933902892323275683802116878922637450831939466799307397564198325330647264413100654387456239391797086087481779731019297537376133638052932172249541462238324416537199470257479835068250140014434147299676292055681637217012087808944175364578511357265431350470290211176917559458850860842443219157399419298472622587962669774291674928501288397520110841672525212240161579473017002055218249404054636001207430016180532797767646473095494705701257205523292069260225806167179891609744467696483583224420706861243195269844655723913133164316201183666629624392979019682913677377412977887805028017124818582583458272617693945427797312801793546025440510445247021423910008303257932246447422913490073372705465327532393667894797134934016088868616135564786049188568205190721346341972362373167041268534863174428613870487101522323029844849097378464440551043520161113096402336470521129092931681293014622689987919077459343474875466061649071365929327207790504554386393846872565934004458481758293437165887573935629905341043948897366371835972455531173038769512408015958437712056600417220348104753727910985019517493102187051266703433100701786661763886337794357798793266313693399003278173369939462302555031091635266159331963337041958474573257073539658875566036796018822839303690373652538064636894330280578225494027316758695944801926724294881408045631326856298278220635138279017722737196474249424931534794767974419674649777694804423720575839021575912397246126082087236476376557778990213841056008936040974036805243168670290519471267434944580823444170992672384025743974062108827550939034620201353810909993471577801377187679071010253454907018665467999667460844522685441938412065373105211666497824686957102568794552491725785486479123317905298163556608350185681537095570598636067238406530620194545483731353513807961022455808832295915322624050647909457036890497493777097230819053950923504841122731533465485580882607134523725825465702231013380076341803167659184838211380262503623351812347066381334227412910756243262297464092418390599998103249137130910383534457711175321617788353086315768717257993951688615222222758943533864749511955785243611945424440886325224681055406145540824592860962988328077991380699880491337896237691503367318489807619624521479810278624723343293227263548959838282853171103540878539346507777212604015149565666228940556249227295988719043275108213688197663551826233571622254214730192253823145995312098934678742514025127824363129854402780883629069130905121471139135737104157624129682749149977066450333424171991401162037442985534417620483430498317654039047044756655106859029589289814009300723942441780741414931395644994126373708018122458468451353833828243413743575089126505417488531667668535856522322618119544144971707076842803989729183896864077351726999560652216639992016856347450868300843604054377624606443064156929559402139919051044931773553155204250480302786854830881977146284518111194147738393044260907040614766224029243883019533750005656139200477287339671536976296525360789242572002384242005773639743136032739565988612494223108735048505770613940172188642341959090602708342809988787841737091703909960508484724249823909642996543099583579864176843444280455460479991308097018789043585328003190926736283772771100062162971137861000908136257847516945559649296487328349964464472712558940535049501378708003607660002325216086824869737573902551690826313329671152910157707378935885835765510782574190816439623769306721624385095896469478339354600974420579916768883922708133681074692637794493462118336099669486744216780375939356127580376582178773609204312782961745821120851200984399566376125660496411868798104062753445414545500410552991997001060043305498899737209899180949159292679216181158488599484320658296763379149579145194766791351365696992299340009543379028501461416354629444715512937273200983425981128822839264441252061857845525230163785471432642568069566024887124533227765497140748733944531586470404449530062970531767329669452078281667651236782109469055995191382586034569152546532473135618138622208554686519736641612676812300880719024097539999297328174705616146309907661694286296971829707811019925953552937614783346160964164370189703927394301986663894670138168829902881518544041038397756706383532953037732489602310015025732799493627393613255197341743414414620143121218437653772193054971273392515502076855805057789882026777526989976347334233370792318398364941079657658446812409731936863499661701034653440510131190013506266979578784833507754372458812953373673761706336342784522069351336662502731431191739467049103907219605747088929154402924915424843548552234050570649034968582329314429913534978878649869268170116092832907712205782983139433587494238090961076734152404913524287352983702013659684036543317873853578761053167628442397794414480813728099123541475417346734968865702507375841629403048831584892558542191686038387856493655621766997610649547117544099116988677986134210414759344198285642441603668483260410440887120609217285201134230681921435659405066592526250546091054649024561105231324341063044489307619704944736129242358906469729034446942836499645328609604042433853940749995616653794798637060019547214823341593646897249288158572854524735805997831046023250434633297394496225361299345833013697698612496417126779571190927683308920038751777520886283624014417305994402957111750199926675715936566374481828480284082213445276763979295962688282870848403210263846157944342308103833073261837289769939570059511905870794284885843378837497254009509410347124973120105026687278664372808430331157006035203592509274413301175354879264836993244851254987262556487939118091085685649067333513802263048020189175864098010543197258346551444878240986455539884776881881645805750275681282196164306147643831753436682837920361887774279204812252817985561110260184248900938315568295658654689261653315924309312090554151978233874839900969729385910477318500255385812213307148600579616220190827722473261841869617472934381029760495667323612991707097486056214808282822355948764929747868049142044546700121947319896985152504455411976314863092782979688756357834343112962446978328502822851724474001049840715114989288629908278261488128671718363080124685496078637335161189835248998968292704154951034253847658811101482649878542940699756525842068548968911380236277348660664314763717792090393282119555216825226051522737987460790563139087697894213998039568834949946975364913347487352556394629054243902538669256587747983947721064662752390063368590440846372314486317330690834434739311078141727007663606672362636052497483266006480635942323295013587657909340086662503333539810827632166765655764671831605973854742796610334079369227085762413252346299728723862934393590268426104052748679382960682868563361047618891228184374057027724560566618338714557559562550572349593085155984951486126506846928649124145676456253499755930580416265861970040807664056448231645877840538314293733560224523753864618440293093255652742957946034249336484163317843948457677923881630331547775712093716983825059851447769602722701175509178408220305866126996351248612181515989872660476905119738498994139032710806932453099364965172228759111878447802443844316551040385409536563647430841639270418415011596201362217622216585449319863452966652904066182804999710859575227252941298720436157104268543515662917566132187840610042549127405302852307179802015169824746436126950206780315064074982468947341205726541075683514876201597734035921450379957622777965127653848872631637965682917946486753320230549700828895865821514265180746277518955958723039561574704543412684827748433961904401586886312757049054918071315846892633309651863014094959864805252169587178994941723409766820625266433229389454151983540523253675567327884236977391589004238768200977195145127418090345461007468967691708960156332716592870942373083890957573384749580174670363047976163175846187078924956048434318929533962358875233534548834744044550337070690470406264363571050747479826197607220767348743700665477231740742524443150027120095425123426735489023188968482784850931368178840191625179437740224705283539867383110808984225411581674627346893272621280870397179209306100990338124213976211096777722192849851912132563234094118968579158299321652500070570452991104271683296361026806515360701819129781222114641733313570505584428687773695691123743250841935587000689314076745963590695189893394171575906853438286756321417115100344783761843677587172850870186929420908177587306857428027375660102126014577357848352085249507998043215646080538003134052496145187483903380129402132239705480983718728631850355208830346764359083567526720983317732580960903391854437249797357876471567725271571520548969852393820759159740408070163678598235061812345479808134338514875066391870966149231036740198534606282971860608392945777742501338896963911574273154673785703446820811284086486997576707052466945702853908732614207023041468476831418179408347623512627417341713076920623371854691426169986496965654398902632843674868153919392933656458466903616131152984082085709211712849356602270604429771012725977998018097697476559798295667247481245437731728115671987693186348641952218868613357050815048653192700162451539077827074087316245843229829904987545955802564255860105826220752178253688688956111880052530763479595352958254656601855403614593528446284553075566329292991810609177100101434608789143913350791427566463504519572445125798028743677271260987096839936299174137901405504480719680996999225561900739595667270857745987306292995473901355415842610214388606236292936889447012740900523237053474813519658207649708418416232750914426909926220068448033675380481536852028236722920694051779167341121023211953177144845952351942292510445306703295851563563907348544424648577008250317707707561217843140755062946420288493731826047833323585596192750676308981945128401901613602647197911001771166226884493388454578936212357670129486984728312648731316297843063020889770274929477938075822906018143100288004850276670711834294208206677544651286267770143181089267131971264732525769275649749044256405811175944162430219412215812779852842989583431525399462725962858613209391451382758288410564724325003928217952316050667209013576809562622200738330882648137009168835982401827703487989624574173608262672960455837965969023315936103913692255430415267500398593598678189252374790454740826792633617050879302739769147465333480814045028188944631346718389785525584711429696833971460155742047029288719035735558668570000240607916957132978190812191909220502108320286129005598095827048994297298666019291602605633056707199851681930594601979335226928360733996777819010533693090902378075640746159556999591120195842063661507445203423311310123795044935371724598996091746295638643600012960192608771898305675165391740754069943350819614774924348187122356668184481851415566503086066891649621257534785656993849232372208030262461883445631945622998375539002562929901273168087268483982524153315898898706466794470756043588926116151363434566896430178338649831297874581028460148881680399575393588157893441007702344078135234246851106617998005218498302916144084369036992734365390488678960581732792429059733716180230636547558506832253192842756256887682124365170170532157523411314998122332557314634120954754104799184685392722614455406913568412828233578055506782181054484970218482764144244840946398014679125048100214545448948575254290061227566085311143996796254850137090998913209490881866743707624777291330484661491866952717681431056631720007409063797870261490157490201553369691049990199486460675425959914085961625758251173974266887890412023045120218704237717460307618107601528346711461760149034645177103559982399326175531052664053421596096803117052788384150438785802307972188959263258377347788400250759324198545964745146455459674237343557454539132299303696080904046687555404167098295082253325409274810198304238220322270207597272412818618008888482527835621392795009425681320828485373158509381471629806338736753030970160740947203135784392358688507152217970883271136836476353641265027210541225804945129506591759897734984828043731531563075313535803313300744457231842808021151236279756578223182547641499315820954270252562297899689462032861659886249204769202068451618317076448018051708225711708713160535903934432717803474344853978577669351166858562701142178408851851983037261735074451470460609517466926921270547029736390147297424774546800202938637391869459264401736013221720723113727902526277595678622556505614738733650113535617600015871393696766591022804785172902691169520733017992562219127611956437875069264317711497999974607092241554293914913020310690907159166228239769806932471526913380161637967850162224339885438325516065264286349532160787890611333451228923355502356413630207000198886962055212656077106917482035402552094370611953582087156577509820664338142751606846597724451243518183496958085815249199021724208403223404304170516429862058981250503263380042294163119666370126708070872854487956404557999364971857379787521746049966872831467383659731269561636745797501657486675682731388596048296430262713503859405609783047093646088973526794477064076175190983464189579392651532305895997460549928575194554010251927905954708300181091910355301788033803123161034981005060772774061342799177672915241549394405927285199017327931852221275001062995863943043215439172697350886514415783533515012533608609284795982262603459329382205531801044573018204054720930459793872899730719682920004451557288421591001415047125675787350467267944255189098928924932603526091602299032158211631306430319537043342893578400816869911123954498606166452023999724466706849202045910451480149470836855332925733927136456995936123576066085110060320178041613134750211468101894006535812439807774317211871421396301202670391253627859065126771338078662810711940815686712022406848376856457179481432753898802947753522100273598384189139580228659721165709058744634234717760712187518136375213258542804068009572048674705310553878846549308501335746176848251241677650746319966757974022451397595742232258155844427906108694672684599039732119255672614253652107767282654854028996707295122279070882821326122187286137900563453256399051901816768073251480580161231622653753253430718426825370820742829115164074158528354805137269461546350378891292749243592619917652894454059338502488249985257372847124851602094050051309013589094642589335215885042725478537798136603574110181097750601680190950996608457329413724864571668842294084032618990507274884316441454212549508665707441957860078456421706615266869286273570641899993609290992349197924574849900883690194206546186270111837574655487327302371736375299641358282340761478122278912765631216898188538729662231194024744605394724125273854128062153843583009223431044277067487991618496105487321765262291862132900872443195210739389105754100876265571859752285643511658243066946086957169488536574903321391521143851652858392014334210290869276100065593463189683746693437109324251794075636231736409082350245455341529385700328918402234354071236693416281636566821539057947932135445298479247125991267681529388449466764117018889648990524245566757683109834904863541006071427954892048585083137202449901891579130583303148339673402029464797607410829011621546595302541927118493100624720757164300733220172853268452644009572353945714599319797245640463200787655023402933168060586523552743986141687691940739720356783253417988335223903125530040198085660773319542561738965310633856843409037175143995046529037845491407089838785012572480147357770385609503076494916828058861092924975062645351144687550343977288432968792186789092719582514999845497162369615020549183142169799631876142247424019374031876874175462694971112230004087109301019715292398118817976010027240214068199361566514015796076865766167724603171538851746455443031662917351075125702505164362635058442323815621693712349432983944208462298333813250495424080545564578863899138915239713797117515112295487629705566453598964837203505253809669216481713323718020881850206850398571208714972829212469154832482486906916424246114889726406103168802393635702686561718741833445305528914428057697778886250037351319779441772568092914294085374768906532376674951236751070672154359310250795773453943957904958455162680107032412368277475521441726750805444495764746898549265710775324843156598839701238280981048589160246469664460823531194755137755678422707117801230713264846630852658416118589003878266836491934175454427536307281669676232990124575734535388607084245798737650342106828238119704547445887248616291848556704279839922156631978540006976309299629495612805995704826055083451843642922087091126777314061466532574820139943162817894733244676578351489626235134993214781924717187931713918050262218200379123376864547950325603468715824159577006037990820001346540604597075280568734137019529189600629332777288508330548843946556345825971053048205480692755978960329167947518158439425496676712481028033400274205947468194747762704416438006851735814354783275409903924261086254515928668468014172443648980219647757714999235590025476730757440668627759483589216833203376169590226933793403293077214684878683856522310946532021479637195762627499420818180430499495393282202989800773151052440433358792381456082519606976390032437625387641842153851522394880229423309129073088959938482678272211636425967703708089009752958321950911035864199199239795706798416633551334701176041686076746886314611456357617757130514901968151581684806834758235700732931848144353446922151874687348120602465557131114950335543997264389350569174012618602730726175483428937362754071272977180300774252386912358485069587159037822642377326842783190955044666584896694858597950610181232176632705088785018129627024940258054223021706857988607025119742553590686041277159960844807598554358557886449236675462556639373411415297598305777167778121447013992248547709421208059436770133862313137709115024384512472612780630673819842328616736752056272475792687760161653413885727960914352749075644564606475100940087344398059058755224388665748459929292245797167652375540617011800692428949348354881169114111693723138310266629498952059930331841067222570925275508513607736711361081264178203891138855864149104490409634681379640668333082049049941448032279093191434849208059067741272561855290432309583097718000595630520688962491661040475069030193564906674632066600989218191722774737453129325897957257863218920659881489051929679204002841705769088623024568038671350559355590236309380299324226265942662161004544903542365771606838711456242255388984244150700127346317641093864168859269563647688632689910359559173283849765353056335487247285162247030756127240406051327354775484809584637410504480465148533867530477729194028033837177057547380160044613623604156508144105934921549671869286090027799947704709149682970589326275168790494923375717782195499022424325462126662292456013641315878332483012362606405996521375231671879093887683905357122109738946387205261369737681801045747948354047776396285787781044696289903333688122225359959691636777189556890882665737857618910003335354001758896471282313282385139363087242945069182708603434796221566516883784717263517368444981560030709193455271078575262792694128045970433938933385657566391381264469799425751320205006296822398228516014667804602346279580337139962763974399552052756527371497307655180287886127136875866898673256971847006522513623983130888803170581099899074739149314361792051474467530550502536068339061166348635015810188098897204976952734686369488340342899204425837356333826184131317240603189284154884851236989084843279066740004454338081052092617284514416336770158608222730886349806383105010099508048485195422492605879499517258095876176344225411708030382264034768519833876167812405122151475164611030295638062663714276428598571195241475452771504166956543589196552265171842653053943234592433190010944281480442002741767216829761697632336865811887205384132061114712052203649048390622218127471241636731521035695768031234899455574600550254512349685218402823531783679918456797111974280503818763653123483547144803282698672791789413634092741308855231327568152492382976036250658297990081360708822047086398086946265148390871633815658360667039326310989196067061518875967121516914828882824777960701577417977123976898925311906052838476615776879629293357325824214283739591716128056978743997829814056428239033913240825461943998139178403647535042292022820293756221319357866179654998308916139480024238318326900490603521569174652515277995902691196223003000108018414035619487685329748272901181961262913547882417986713018845787724833530371309721585317017397731708445998395040799591095272944676059192922237016013998148143616846798132363774971238473190222877593929695853681141272185294598892944594376716834128713283807049332789608320080373440549761328838709286349864026400556378049130909703559418981464699805855557903866212367061527245301265142286613915086655768179360038890162941319647151129091849861796226415674776630532714716381019542466244903447857374100978597840759905652131219026394277605503995409903031482420142134113296324511316995998862409043050539767889285447827761812197200728132887636571957173482399187600512700515653037742721691984848754888647289088650499674319424857931195681742603384500216689157644048614615919477669015613438438590362291372198176171231585897146251791254441890387153582633243693964069934485287121552430801774671436758679696782668224812200515544350710148040992595438642304436263375802721473967749085341283824854276273139866044354770358294262776449409274551635365112771558199232091123581058107228204309042664913878185979119315465299985636867261487679913799701522588364096847012201593953807352140206070775576850988009650314695839822995889594612984444969128657327492345366882315911891852294004612457511537736964903708972705494173271002335063581037619388629831647784180353172706963383098754421223233270859639124506504255463626094445990269132422087503119838796091477426658857964377506740943039624247008791258785303602282570751341105015089291162108504901797729584824489716294531929558195477036748402331150810255000939301231190929541128530624699858056067808038854965324479507632632600078161390453953941041603993149117657597572832348400631945316383754129641146429558598290967759485539997540047332849461057958811296386647938323042257783057410314738518856748484105784058050362240981618670596158152925908368523231478061720756967050071380581237853845487905236977491832232888432102184521717463407985486613401882915790705110229895219240899232351670475384812796508752853189534469465451050064992488327363171822141939093073398478708961343514189744071115457854815984247757525270334904437659476509301977098668065531161650879283628100497409416626729936344399522039808327595357661852596670029860975545027316394787482440657201124891405071812813814744176910855536062113631720444175888970095701018101114688354502831152807144218262848757955561649670852742881642487439677849244405290760346014109664478787389439380355717066765158857245540591080066420016322961034801532332813534124418455913058291581112149753771459759522421813813551138025970370530155503368672385963739738643371522700166269011237459207003617423406351708771558666217209407965941001137900007263226460414721952707809127736882871091560441445454775274115858660998418642275469896261350971873544460173948186829044231876019365090096187010073172549321403818216284513462186779868852372312566635888694457188620189104636172788621780816655680021018878382883212756919515922749666644100305830953109754000329624124572093940311433191489776204562222307132180529058794432965823853746561348923939221364188612439976091980273876892673789054251385142635794478006749186682084260010948712468626909365809541880027461299197058963243984419730067948818436876888211134960632362500549230642124180695644746725605249538985450539582645502444069414699599716996391881190787820351842187658554063327618543600289606208962823132911504837508561244829946052174122598683059970033661934847317573421180887532417037215706364889080679786594463431720481693249752593667720688504368265591211178165912830435189231865413463534044528623133994075280120405325040652767922003354731445390064311422896741214630462335674560377724711223086259188402880366172474223719048753852994008611848676786973347233823527224878081477508176873517001714381050482035072770840395025560059425733622714170054797065970365645852185194715775920293905323015618138177195483886918592397623463320383244822889837608012604024710001119334964352387496321548469005744129186342215707436594161228639468255659565425254193894877373899148656736870618942300209559232927785840992342911047068708276945417424231827902677255296652419304910822643816119705267757429914501757988448701530833907076551047955752876408108149147585630978237587052389465944406428375066819206805316194579924677902196771421156309016991452095872030326018743138366663015885948243288886287563469297476870638977830773524456756458745621112216339264080577796255865402504554923392390295833212406370847217662321187418617653705859581700953812344312695924764992540891347155126229275895746748632195834745711187709347251416782454558814947685664024663057040548587033209777427169353355224462783899384394578657277328492107949197445330760013298609023276675979051196519342077659855025897753911919612648057721782504877379374491730990343343435365705230309242109135522945991545544556348841794312346659976655782498610184816975845176692002942382573461905334085251220970661191628019799881573201879324883579734384931775734712619011504100738102630292518273850022996487235817494382609891098060531431816608119087293398466443031477360430610338452847181076658428808440407229043255126766178947175372281948009469218319414153543342722520358419568289529115087483785991703887809386111281838222628584985091197862188873632055872051629813022568870776761822171532209627159664584812549230597262240712389854728639623893754214910613760056265673318659414323753792137374409048106800051718084062198806760284679745386735175632786333827045113340169930134921561959355751828812588896672622115054282949548558056408874642663999496625784905325313461725323897773341170761995679388329594282248396423459476761019645872111738603374488268366772338344335868302540675162916695059425229133006881392771562909688513362027265350375955476236952961790881736701155226212236268384904280343900798266666129575654855596867087129294547243171520329367920584732171935061012192709397329556326990458422906684402885955159698049417538126947029898721853705393546515692866792891998730838291937662297288994503785539941409643177423467111436311627782191700364319205168726091749291877297791946609316904473820598043265660122294868019782502947359984794764618878258843195597120674967741878370485886314391635236874617356903370669305122840611348016438988000527011414795985555867085234712316028860904374392869504453390592906971211307535218266270404243472208667246426236019058157198798078154664533800590809992144204186756828755390004494865266278280866729408676198013613060577997648044667551169204672453905042083839912372199969328384021781554432941648449596455801449402204920045328424354812042181169321579114310189971912426219653884981266148336134279240086737233253267714705107797489917019261164604175858927372572921911367071679956930469478904778736791830951145053473702970621235970032362922504651890113063248594329399132533466749890234691767044248447879327952440938182342984004465399352945149060047978010052408773240709396417321200752676030276239280100674281569534736777998898993776348427104280646075257866182698100681667265592720091723455976677201030341254910089664596525920715115110342174711843348657880213342635640475515207876333442189290725466098607897691995195812762633747554292356629711651245702130050187651959228845263029127092097742384496749203929440478933352537521498280341783149577698023563253161629344309931619008364035943853984751339240977899738840021827978641778865635129618414002068324698180280513416726548024933796333663682110670350961687477410793601290860466455546524914436103541373332584043132140901201100013024859631167203261240555889625643330129486955307587796570342736894136842808824181706804268990093218753268545419241772210231327139001433658335920211923764303852053218669346944575198883316072824282403203516809275023402262053949325907379585802955213930919119568640338515709600163997308296130986688647146277580410845516005000811558107977352476962252578696036501602632711413295303911361245871757363422522176073076412620665678293573118748883355060701205383683151745597804529677934584662286290247388786041311115392756204909520616478726323124423514962751813036437780058993904750897924933797582216682033069037948854553501214116242356014523562096628722761064701380258547865779094825751882089846398871683207452553315930547987510096433722514501008886313005996297750584775850355403711202914776565708669768171056893570712744619764082550032272717427212797391239148538277195646139401022368839202282954369892088333545032155676576261097077259755282532181801738056341611794254401127991354520052828104013876908816848965172207188820929542382394898347744877792580105757028098875553551222715793566419332123395227815926119397316222463879075174781364789179582242048645815380267278139120494575072112938598493411094725660327010051031589211375228654239562378332191868006761359677497928234788092554359737380367133169958248174659266324439984770917371531510148965900957715298311058506224107722404271608632989638041599836852671056696441165102691041269968007991342134162584657969392754842176838815727561469282847810689130710718683137857449233297525669508272218239609900208808761887882370903508880489210513541206347503707330286578227117265006638655116423822342421420273767408696236481322988878484354416784966904818358597277318370440035755681020136466090876424345528671147231905771497061612911012250889773087173500706651880957018114191539948483537916833746563846172081244396848207279362813441684820837401464580554186634183695657909940164070274379377937925469370894628850646556687975345200215092935606729347476091336134910076997064148165302418718873375352676867135395661966860139084490582173745021751891800621680975730183965451591944365230581583413864123430109898569208388979194170550708072407802081637952118253758426277084834574153774742084818838687133368789630852350097584577722016486992684645945928484270277743944815866369116830673594492812388684090912390638531504790174462864100476485622402469265556065157347597689407141331220595561074670208157280662615749384517533761010565359836962551012278977890692604600973325731880368305557821586505698920218506251629630915247063574967966941394472425396661659349609070564182014918602735631282684870916123212003520467906805475260042267320345009556479770960994304039196701349616433442285153107358107695265779554443138074368522524976948989202611477172314754452108545435477003972145399498281420281282793553319625317726573115870827995131760904185140765238343338023570636305462715722974892888789835232739284908910599830730255378266728229825001158083453897683890334295301737720083424785644210573765001371169282122022099132243046822473274751653562347368632864003685189609539789194300670108153370786205866536395980172766460912170123404590350166650908632985389264621201738085827605207190022288458176913740788498588998755434599534200331547658026385919962982089450556465114375039287925491873943033367898928870080401856127391212899951265883291879134075532056251733015517648196171355772564858778327376064690055164889486722942154181735901525547887480837925968397011773615910790161852436909873400448854748084955197898473658404867526106894217430741912919903703414162417963061388127725253134479618071386541442200491599337625985226586621757417097086877548583124492658690867200380953409247611427016538668544377622806710657503238204877426329563060288836079232453224231434977398563550862430490442314130432394991417905151335562000189727696101079881532483991831160744098001505872551130651413137144955763901131940361750691047598275063678030184819176137063607237667910998249786243656063500334004113194252296003234982122232920709521216148781069559317611204936837481900792880836548310766545339961983543995349816788087905323856343897731521095301015783386031676775863482795572357761723339333691448186842151133318580525358786372692350031964245613839009341902455245940535387196459340106299179556277621973008719183671363971608978216736903595870851436420704964103118825745095391986901779072062387748036140337725708907878165537147077003874885284720075314573958117870503345899388861136089212606156166756807213499303895602468504592242377469852122582014906110062789129131220959971352834163116982815716021903141525868889110119977841225759651490536284245160647263680650606578636446764090161883819854574845161423756053088518352797512216727380736546704957477590138078850445445125859205970974870692741644360578963360298358830681490323997890359976776579292706717877209831349633928699474160954872310031335849910749137879681954939910036928984557552190943536322180801213685175306594374259249862728511927098313682659786073472832931415448630350665076660013798125110618975794584040796773244198530621041308846694770709196895152007134681572071434961662184881710604188127777698913783728291572629230241762048939259621131342063631391543691634129993163222473579921165995711502480570960093322579210936857164401829271288979653141140912117132429477394303766729389704090533950879833976479987251853742182501234557018266281999276544195104120819969440148684973290400380869678123156495605538835229564606888894763629117626045182235102111560407684555022607563631166204764942996113915964843831520024839668211149016606534756225682207146528934606944833791751016202209871473842202396714994899898338661313699457177302833385396451847607427521796650742478340801573443017932136401141065711480059967430664701759951323847244458068646851154643621019849902370619883349708588464415848987723569585995215805364758224172682921586504964798787763187789375005384245406366753714870783017230197209600851190850531267147494470574212129609897595516713021053278355713871152910592539052076721532867085477000996700649398302005041301631957624791534253225480283669846315572746428233376609882594083274419570450181619448334997385003065828860555578635957669543036550170833635204574794454415869547561192480423135440829115019538290667432888086028058112801433710214016875780623632459011334749815639118766709154124557556299956776695304947089246611157584570270596446130293121918769689142859174363839257553292776093112446626248754409329077047005674311896300984253364208801332104681979785026716565295626475463495323915770292745692479209901549578639194764929244335843318346738075654292219269941818483693748754323851270449646211420367462336055671184011956424495811641301385841117837113606404631080218707081998540274692509232831773509194011670136621071918942174875595295118547643888355138354798316160442575751083687489949211148253905488585772691471076084406973523752677978350707021055231219566380373488663868439657737937893105674610708930096684095347212255554760998189379251949037909684347369345603707241122789574420852126733768642878078312665980969027491307979447365371030359800088123060375171960751821404243210208876093003973710620524040657856127806712041084433036821382098127157032493511932406390722710020809444961573915556287631534494613709014608100910031686045958321977013075009012656141262859911607513599363403919989118482054883989210018845590372625063753647135289243528248332113205330197237067042114647121131977334809681913326430966993882730257029988743770406935171577591475374855449367555801927752151341296872679905047433280294840329196247633420493498766444783815858363166471931982454455408635668955390851351328876541752493984147236555191788216345672426951211351333710666068562186886636650880325531887365288972417565704187665227212560083156653552647848803536011763713516714085136268552866263001424304050381980029314056554807710395338476225999326022174322751947989290471595240487335118366356395486874411552084965830542930592162656611796034087603776172071550662558658143995376163167500724110767032884432189815872187480230031821247305093368009549686880504027853673703412206634110638443736530474729495750277796956547500103636942858429565152379484821810949728656000338876326193644007976829574027351172374772441889427128802508609574490546483607983221100846042296861126707908877093609801094774336829924118084574943781334796722275049594295924144151111300148897090971749104114095024247484876955287735435187555664382266139688287026007924520295588862450971612861449031647827408836420133088029479078943640095565678850952719385345220669694943003571496568942841285825266138392805393267253620432271804846109581716562636348230115298759739389187762137135618505131701917172760880139658389627229983942377950617576616848617846717736391822710183484947581083701840991531592333890835234705529040590437094119945370446611483597384281151413741395095217135558727184266986746339400727630647623037150016136097647296306147127644143881293403914877619505777949586011605150344939367479010807842427685404685298421726152793751120024385075369192944191323851141576784431587682867030243073991833071503411750459787735405700706887433131180741689661345754984544004634836237861024904101011012726135182411783966849450132689443261627580802569083672659286925006268830909528620495608640354357507208858127380928778297288746636557009130605338812737705091426013731315777806347239395101875917137096035463741175063892292909869176540455951441135324172158753138925046162572709559929425959011917103177208567102178473956985137887610224935330188492098693591531729429651205464164998043276130610933508526050014450712151831620976664725415245366828351327291178801078362260017793623733411439363372805457498398248452052700163799566328988492863421828230529937624667857445015464623581358454775626675440341068049691236339372227582382733528352499104078996445388640854501276771410660378246018821168679323703755793633955842448888764278690942636509134570430591651773462741508367885451309976187416413510663260775482904088159883835339844044438883892897046873423652496648273621604813220496387687234662012982228990576678376593111475401310519609530119297450810555268137794400408895652955905005411083351832039569145908010394832593011966947108335708066726380533680315415910168945155373951864077778958539097528738260233384926491853367248463212224046716454362873376959313223598096753487951606723445097797344654097603170472929859857127707584702876576063557267357393404076868497851864353072363284301842013409468529680235082384693661682753127571691396417954008502068246668827656779390837238002335250255149308789335348298334798109981357853318993970371038009167043821610169908977092051731220977881684317971064147236107182005449059468682154795152127850519826739686132770745547021604934362913193782351682364622226410356819401031043549252880296960410407377489483745113331338048673531129582288776048908662688191726717404619888648410541215209360733111861857817781270874820177812422381255310483208162771881466081342307034807987035215822124414113835318605798683423421405852916974938845619602733950912744366718200205117855379584705278232500757480266186505969595415728975148742569284479135030543201968153619901293276642945946323963012546168659155884441653478529874336223997899067981798635615207006215599287663608464813679756580646659295949147366100160720995784639903673863814609334342172427152066118744798518049151013797481130283300780680605064255312944098480647072127725729055547342450953878339633389343918000481452146956636552749498281014067512095909281779127164293952829682406799031218821076278280771230778414916325803153840233552709734108913426659945285577461240110194080195643214053016842252933769939951890875323806800845860402222502923952678985331596019545101717723391016219506302585105546777763946936412611890039917322830074028984970199617235019585130212594046257171155480560545583139047333191148953307835203359049925944468258035594960521695662529895336608765665354379620220652317524993446457631342720320297450327365862740340004503926425157177076321765939057630387049883336046737013764682322555541228610661937904432306002345162373945085743371361650200228100199155345212675305016140923223617182934292964254488830700825748176323742417697680984388734862399893473813816903921974542624405544654154549287184291388122693567891823313351148647012705442814325020206072559735110701124779924744020705685731475968278006607301881143133049213507209724754269544908392107197134082453791004842810438502255967772373943969114803955024270433250973013403546953071363416769546621378189394355376418618446767803639240808568380293432850288439043992995634233179948762226386871785689670089346872571630747779100434787788919551688406514327112862114994396582311418757603255912596098454603218730218455435141413644996273032633722146298790056133112312180537577963472732204097994427688332844003433877440740420403158940496427170554881099721808428686973907666080301086941674748145220009171912941524613047531351263725161633165260259856826079961522460984549735728843450630733230144794003351177193621848961487095194784234730767156360589631222158684814295215258200356728796436857076792725347805889400528399456582876798844715481503235796403233048944466024826653250025867066142748493586736840602736761199809968543564243035905568708827879706030691235708825720882520000042201975390254908213253176092870769283841797044255875250649431704200250474370632865293012210376128129238995269374146875531772269334026205143624594712832114071209646899341771019586820275595084703586924545406091831404325244817621330334469054528896470166680888741132772967291669247489734264524855971504257911100460345198590815625009114869394273628449547698197922291935327373924389674508793345433452889725273186880524654061766743370636916040861003010802494834227287021762648673016967254896726827076692269026667786156816764296600548999061558125865571039350234050192919218009649600097251530107046900196236168402639210340754860186021592167817355539758999528060137801354994291177195128538304279063469093646758705200980521127640691620426934637629686397431589430903875273763953855400652757082174522033176390653287913986720816561247101392289085901631323965387832681457575904466413980667596426149008333868152972726956509255509538480488083039812665118827229165559143814950696825645210239839736838967568153469023363658809650427046863489925270035634240594673751528622542862629995913438390153161129147017203678368382846519439849665528562790384891119784119080349075778367036464630422279712004456756028954736349158799565513072986834389844381105183593153999485674120348544552819174794594376892425316862925493802225662165346946638487481052157881319243562192292144832398748333310800470150541786021486542588821615560523054714299687828687975150397266614974265006619611870845490339563111252863533342386415160973055427281821591472192909125311353201223606638843732446030912397152400237838304729168740925835367658010941137899419521484780027109602655776128041918835720252563772940996953693750599039304697253700414134892831597479491626534176660442631420657513042188339261684307453528560663531324193385719597220442708218293654993934765799621307369032192309401241391270181301199476503797569863609566746813881513406282937970912470165073382050004986827739194780249736911953422886432156419607953816607198870391235603730447083354501621643637557592599481073797439222331933693537117596648463427794260324658607829223330655718031467086135913905004090638848792975184479147336125055607252240786681606740000763055084839022131270544586821798778326355497155721075018398971979316779325686712917894907815369027843332482489931873390793805942564703319631772181323315747496569781707297877701484871519272150323350163758949857334791774504547612823724626672725265522549956805221506501544633150137331451551498161818445312803311541354732327880566413773129340108502834462049856943662591162087501155344774297458838357319246541865873887939301471130036751855635392145396247208180939964244297671810261796868387791900179493541383921893206043208740359016662990608573176493370943127243050403643743487930022324576282315887114342287682012986239437806768918728529191160840861055608778332780351496830565160016349813315954310188116321227853265203299459688156043757185965710357793282171575011040572123750450473575699581396284404594108360463867825361869233444256087783482345301374524042926379348569899154482631840780587415103785966521704787063128240267557503354144308074225149244556728813082068580644509618781467631069772043520686022003008633393067846095291573752800219334943168080666454726056796952197410605193572811107719020798628638341779041468952119958159971833477011156909634674947610744453347669527475009308099095325914467459127743031721827282505880813545284388453698981688030418497387854975185992108375358646975457445780683801405563400587463547285501821909773263016482756041098741297612427211999262595998865685741153282861467297801100681865025988907348673136574850093415587884956170855107337468059912695642305426552910862352655807400109607225238183648634908059279918840693011362957032939544362496228505189076405408032715547061638575683560447488759084954557503710789509441082475702734011199934801958092639463821957021130900320275338272242786364134222348281724909936086855318172561232307227830126563812920663324637946691009342599552305509730420848016885878125888766160442841685853953111638039871065380353610035790605731195307833219409320569166939410094038947119049958239873281865679862953206329882412190899933143884730334351359033597480387946335413772999930199798769690346804406981528920773670031179834435474193427729651297122037673299941863017434700760609805804630431870687259357594458731022765775523904422508281809187011110518278416537127146012426163959345372031618803053727984302916727513975202031695287826865783599995558131272525292373969060948728917335718046328773348067822666174334002762268845740149299245644674466454695570842051763829882712095701952451330262753691155162711182572128062871273178594449534883478640308830406650545421049319329635117578215383047835378500750552850055670720250528960027412885890717336714293871869953227731626269051515982155553209751303080332039786044479205723314418407380358609168606882643256701850263053687044002427288793354727222639509894015097199731186437464413769744278722871076328408738395647965992187039848189582827308287988975107970337917225012070569397500131981782547750454181294338993708344451272877250268217647742675511931939344711699625264463586329691214015327510005844993894815577500386781351915285888473986065192397588137285778779076359994739972308470377224464310813372042363636507699908416069935261632779904171749945149519054522433429344809792473278080564222365115310940041659340348075727506712044245846800136841438438015156471875833676344261571418625241791202038423479801624271155055791364643644530520266177491692142541611939958846385501558511461313884731258883608721795405396879386004302712957113902563797831493532045546341979323141349271301220862116370761356026095182179756236529074025670823917495898128828787108685454453254020969708479186884205229200170507297296793265846306856283314704233453869557262576605104272437311432526619897503025680554083695239303498494998618610186354817849698964746465405453345522478223257051945208403381300832324149509262844999137359811918513545594977813185366983728457095649131911271051176233510452493764661282875492978550357089829183550655909994064512913442429762510687575014122266672782099053292064032939467716157437189203751646397480741192703246146840535216459784859695016955736381725192830414944700721680719915317889273169415379838260276352284532127432096152689791963753081807345550382345132456722637579930636062468419833904635127551246399591122706086920772391163050999954371341702723684111462139656719118469138708497296869124667455224163808417801797219892810078675435985642542353179844715928329952322142467343721088800731321205282436791187169902027540874622952671962569309121137915206557700300713945973187778818300436829429382678403844673208374094616530321194775351597727650100049603009527133908742002227078341389273011990896330253313840225242950275995575393070449891548552966354727135201671960879022981200259264291772136729646684299534032886445016084522062275278071016629534460909344051609661096473342259056481809000642360976499354042064796246695201742581173455554542801857324500496634236689561797228189536798682119704949051626730132046481740427468052236399969997503126304358085691385594541181019990535215398050307418166582723612639572681400978182376012990746902853296919212339720924394443230286604901220650238549423142379499120941259328416258484484585283790579623381372952465502359894800490615772170392871688616351985626140782638532305013629732448749899315402393742976902683339732215319297502599434591715677054141589453529288003183503650089282127553299771737708118757555929566933922459185130074669477016071000248178831010083731560289978381092295175432963611817642933715762487318147559343287521893654390602801475842722998130798953029519631534021164323847906599032765647807619971512758774825399852069490301397758127347892134788010181994262916571460001202573711031126700901325531744517853564961114868726954480699477150358151905302918764639175025663337004496474384876179512895034342643752104092673725270560348455134049011819296464923339308292935135198138393858695086895195224949249063607736805506242540465187834436024714937558072613056974379553045109093710996153518856404536850764770961400565222965538344512243776808729907812161017716159254806551643289311886176631594340849166895680284245990512906754655713556815330293948995658820053377921735161843074864288085690428167962542331247771010662566272227678181930035201850515893072617314171944397566852710698768741972823316415608290505885207520441078824590432487855544925056221436524485818951758945073555865213335201841251877232263543165284667846683386744137042118406427028286024516490297432213077707757207883486930434632757598740047199551155315005630228520494057737072002396833127650954024736471282550188606382000547431789755333559251113771026990705631898880959685874290261975060215390007568920199880866214429722070319482416056039048909966562126082106677380660323073503469116075174888778596373580811062857647742869452456506629457638045087143403052704515458191453196514046513209145883452855340552390399903992811634605664397941651048996107420941663492824016622455449503291041834284878888645208394776366130638227211671566099416909287842992343616161246996248364797676404862706375321932229689269666014388323853552325827406312011452489729692395688734335024519119573028467089261150664865006073981797590361021774478324917302777462860891763522807460973521223817009568547131264535573999775879148404008144872808495841630066003058330451265965429186874958880318583914927070512597971693948814189934395672440360788393129756723757620445453093689898235952140267695682997248190265812033434635000543558919621170758001402180811513878246638293336627203751834993721407936530033936505610117001671516956886522819750755142336135137732659369443547064511444756717827778510970805941678645210380588585757292626367734506639777412475552599308112891212431412246760391120392033219222594075401786676006853669708604647863933983915771665831866068257444064080562384906809812083465626311848099236981072996446323382672036409324209770577897114101345779641203979201700336517904326893588240652247983074209260043768945358368640963780788748736427587322322942412114071059512657578417697969366046306580263812535546741364278416128508632857322812062167307895260151721832933342820563778248091073413245918727569510588412017356841607309235679611583720448747989665007835454152763967525295768753191258991466467826383152330861770228118566248775175637429712971726871643075482674189873170277619339184258727000099197281259257357398798678453506353620909788150444246046748938038314675377710438695368377611217119523213633518460181891546128714179035335230246056313233038893495526017593725926428339880073329875016713846254693297816483719009286245262401992598890593115417540478957022647193308987686308715137905702946263922688547554114896094617394791300416765025285039940125862572914788384332326795238440529911226884428193423612489091374960974412470724144511343847463935698599823656055696481726116282411388648953926416904009247976255938056671700053836429755810897470438850597941097738503920952305440204831004686661347338108344303372668255356254479233125785250454354969407004196601415455357028439952071500535633515377916500063795060198975852132695629939036846697608530863955682430030217219449881858939920850874669616269717826727350689196565973849269662404054068124545721219350443959411488787277941020119657134643411947102584628639944896596220782889190845893137840257207805903676956659437880147094235601868898792687939609471471173526031368002477315211473416964375148352804799581351077777253983658934908324669188521780519784924089194141047629402725238183029490956914471799375495050013497197826800293016755229530214940850041112769496570309951290870145340021629561576136373767613936588244580399883533016762326907604638396905529964667278867085059467601149507502893363587540613739258605881592708443589314249887820464006342860546611674128972411966633684510189024497106007429221301637639261249289043030274843104263853958478856585247321599853567223745098949123262302536243961378115131913799928589099180984487628736060247737012641576350093558305317701627172388359531612546713783007907054059716387872630391438701043873293209679733291822049523076293110873360920772527707723746388938725766811635627497766309998145456218318508728323433606537784620488383230133364159201164014130170689036625289222297573186330858364980098642927814177279076160857355661689722754511108207613872671125302491978031791363503951259716408054008086749078223338648298751907821215047977357894330752597312948979883954333584898702633847597259603955737493099504272007402965435113766602576713351872191080723180590611740780467324225598574746483794143634717162341439807808183607146968165686599780873821346251130573243426203849704380032154789863032485313683659993150196140934434464025598494966241650042843552150630271432696755840964346645297783929350594365768449483641271811774260264642263654404836889012943225330893975886918998973968432812040189005571902994144900098209569950683590413350749072598489508144261930747073639590116138854347439777373220091946350264289542237580742189216358474977316988487737172319153244359640877353294024935086419911036460569836679812879278225979762130666876825591629637987439230745311955646090980671743536080128353213979119804272571208696268887806503823438462348635307999710169830199648036007418702161261995789244429958921788542973333110088670722151668833576249200901031100997609098066525266864442384436076696385917747891554558402079531775090851444527851323721629963744838250502963032499372288235934685352686922121592414039301984636992587330753550649468287491801375232415815020228435829226056211495635574088740929048274113679960617155958444370951770805462539281514382463620364152941036627107381598069667565831358303265265873952775474579068017107396422361952821997921238565709822653718664175929739062965443517651450456535311170551917772236905999512092895459369385043771890083405436321326502790870136700137979498250205731747110470809882353049933341189832923500980217128133576710403608443157409781630642796584166729369000992942296513870287218933808446775579689082317060020286413437769907522634067146042257895238967752243167851332688923857695967024166921242002257839357347073636648282522709983766617598497000262322746868821625811903903796371294540158053140694425595306597684989996491339634750875021799075292429554159989967980386846670537437791372320047340481723877009632430288636001475123687400449802812379561212954427779610501966039746177863488749999214496262911576362323842484377742333145953477189810641701054204022039126124978066279631349595857354798232841749895463986074052063457608076331040997974605551419591441656305749158131433462476078236134202851213974151039718022960719974292445974503767832844774925115530471772864381576516416978332765351889005324499233883587798585785799511654211027728412901805051138076515027191432575007985838143649003976017533986602879688899414915866071265204370969410382719718507246502487395694974028957480303307368236442761495313955040642763960333304537937666178287844462706361063634540758895695296914651549978836805091833098901122147429330884266916446617942094246390920832358461376811701866879521302963763642951792802454258806597811429068218997214045799354069439352786565875643221869326769301291916805536723179528482066339473120901823684316724109090183209486917205713293347184883798199152157522223999850828937114069401164946665866574292713380571248865401112843215444016157638367474526198326213060481923415890885780604563543149196205894820039406577897668913485016442834916328199981571237193237334667268173442642295400761546514900935380972814486586029144945034409364312285242282715320715489332561425803365976222603062400682146535872818912552412428749834180846658124690205856941002826742845237106679505135444450508475704203325106189065530185450648542348634765841680405042497172672586938510161987057592986877017434955242275428899646051462174951754360104163106481620779830946914067692508669924819655700097016987132992740435400693307197653607951235271219855197597592586832219597999842043377794390796718982099716369971360059554570070482563925322024202253703277948425807110946160303302640998648738079707526581332992684913153731759571319772627636701126319957477655537441989279915981222403701867180563280451455644379573415064733122440354479644098389467719564515140834811208010961936353116931766476983351321258307018974365835628419755801127238662324536982269889450832431747272282468638111728386003408756357338265896053910796010517471595353817231181968035720526598986363808759857553668673381364060703412955867006013957613092913318519621924845950374659141095447582664578402990821064801881078629969629212030696813642491571734892627963242246599481674755189542214953076863524945601267070765196612433933072579398557462843829648201272383120090454623373954912410617288863008875674571369442350473431981486341267148467441368333953004133010405298330356095626197046658729597456972353953004345020616216371114662775061554462852380245423522584657460138352340713941302161373462278452833251895410676638336062815622657812492325951730515377903413161150354248764649981401989459213702888302579451504593398381508677581835086885953680315978322130052248089528495040995854881228645819245214537307169632466632625256358192249780161995147341596653170252071669287901868944710127913188620863137053225300187674887214671375236510526714169739623848466498413964695601300104379127674249895596852390386297882338958812745644978020790330648989255566052139581550984399252044420055599537993947281024008824735280009750667240789309900475472545197096283213522235440963730117768320754744921675580572558803527378383640791500064203600907654373835155092217896679782972558423793996167163621030460946649329239207196550105029102338128244352244061176369194702694195205522106663836290681595556748631026451327181852602799355909752989677394347757627791597649496432925704953208383569733223362871607563151068565932241420954305523997757279678962042258064324571762713856944342681341299763795092230786989656036876519219949802416497956433058013628668303022192259043031088533518666998868974659713140191860159836503470452011384131314084441564639345043614400603648107963105333582048004252368141609258227494824280132338014366159664050116729114647050324746678058895225301430379816485985099620300239560420245007679066161312557713689399461003247277162091102345988988259345791963993992783963065875800219877424585287264861591191253936881656058971502744914963296582671450636621053688454555634051763762905698215851139545676155977734356408232668335362375968718885145786072771026383527800333008562478354275331511797820889953426686226868888626373649532530738522888984477612040424848579515315377216535054651258730994462444376647425233461112362039275095970939223504370991630255731943552128088412365866558049839266675468036864904472588182017587045811684859268208771427888962904841897719923823178081430690262544411351627084867954073723118004151578052428696551682663969695101155411137971096019572631955333901475623027703281961961673959805569694971974324736451733216999378041000469725909205542500616427926748160388620409449873642971099457369720288998647349847072956855292742343245953292087359712568933406934694464652876093705954622046553819640754725399027039905933106417792453034689400126988065805733760536811515786966208447060220708662946323948280395593129789021212883891711804938479655148315344857990684599355760056760005938717010802646389648701090143973633445535550205709160058165835889872182240164935198531823397354716174563584641128449959494432531281396441454205083859915727086502350282131240684366646886933082293197929721709884100170825680526787171853488140779097001605382308118504613385927588837373776825471713339734496728957101159251241834214422855585524000856176444723714831333673612418040552398251681545646381737699854950560327787702692694657094172899539809293596578692339305452843243065283208506083587484943467391432727253967219272443702371134507750768456279740048153420065817414821521991163015602771552956240115264627064398532088247542604581340879191849396896813392910165892692403445606084097770434511329458547736701164779796529814230304276504332466387448190269911437412335322975057890774606244308434520912813307814497008170040483894421092993510984676248104958736300215824304765284079067210606324866061687259614647030795091142729482406995978324026406647157253903521932330257567014407882113482050039402863361795792133149840434800472242025389539779277704375761041358012953937708930304868467972328351091302903705068513039346277436426740972871752658258375943942149412242061576864098247543128416296964017866173085268255540429779673431744685814653827646303516860957205267100762511309440942322374155268992585280412052113215055343905514449540764973854146678013639983005009826671574045318628843595308012597302498519277975256949543239359539325858723536760109681412351140365644050203774548332697842367563494832451610157697517593496531816491719587259418248501982697665799650887702886858412202219399473966268234899959124411945198342680865135486453917209684852922382657363327489909267341940819706819634204030069317949675671403234729171906872127925306993996278124268276050208514631057324386325466278727130702524597650113995803127532381433294704899780268725955440646448776584106072950351298174493549025518744135869044471052882798972824062089513044637459105500873642247530982555669793226893012761580409990694024616093626630572321315489529240194444646703992691313368422080721495472729289558220353762243511887418126240624615570797305556272311502478827605710135471332563896411819181355623239754658725951137033159645089240532855096349633873068657124770641798357931327035308138929948886892006713330992742386377110040375514305383083686379300675760332971920302399028126157681543380037320345931454569689078576689350855757664750185665372437008095402064184757290497836400678870831138914888693264159212185172146386704158856561082031591645329680907834360435077012601371293558120050016152283164955789427373162308377758039526727894645542529879086332783546390816385489843650182741141918166935332468485805458603121941522501838891088585827337003154397835848824797029863579813296253772884175722806916677879002859749837749020605183182371301633345441195934037732375026619907057853141407778801725905645559137585034039781694876176799391716042840869400657663978080453525034958913441322977634254189378312342385476768764373145976958783334859693691202354775728127305325634308616861674461198915055828539931246092827039733528189373359706721245682238328955972391048553665289757399312218073301772815313015754684210562915019730917941774550332739177654085335975169593965985228187408871933900057073179262259441990205155601930819254422828775978510239407834639042509689204220842565095506121105182245635517677579126254712691564001691333021580997958728157010198453091677557241623606010982101030027394191737860091466958571465919051331866663621460893983677500315720426430289180586076101828201789136552911057390016109961574067821496750684860581095010393252704749847456258934895191672044826220978762149618656550734777834877724527887397849147212602916169431769715055105049191945598106393150803560075373658418242072111479712821800190034634834402393926895587468923688008912377052071840959258366083592055953895647672231371353400922641035331702686046771221284192001449854140957066310240718935608030311591161160508453572243172454517847867934618122932120192312475118560837578894685450195523472996787902874892240731318594583710187801543908118577187525996752536358878854488943008259659990759351857223852503616974684029549118649865026157334108008562154842084078031299693202021225061909608183136034616517307394047739090645284122927462684591369942072787549025664373711931266707684936237846381015784417275877841224360718276672510592452859955806588982688212539029964991676696495697799450656259474689527322892202143790135895709799037681059663186424609721634911615879405124517383904972944247765122633709460485360486653520790288953113112245542674466515843475931376889713338676264236657366979765733635968857000729619435843493683788918459929075141531797694958049469756473632799866026257091438351742320162342294470672864765571122154860814720195263737289171088442049694229047755555901896949685094998091693599776478960450699653733759740731193855279532996961893001075883533476020031411056226262815792096555632198963525651492346832375074476555054480958907545853095655344620544168371754222028798600376158095823784539594042824750655724500669436212346141623573146930367088758795887583740607512058255342594478558079781806910461284190511223627660214022899034391978415304413297169053473541877366788401393239872177996191686964591014598595546553915011272655675330253940479508480719299956082751204180213692502243741691187824677640649221356245101157900356201749520479383479837279308189955182322813613331596686082382573646690166879427670869801618764791562144151179417775250367670255955405162070949802132346464821341370650026112044999321071410616709127684098126867671007544163736734385312727756585961829127796680955428502066361481175335932386857490873986891577905476625798719038407614379985812543031556287737864109200829969145161247858862967670397845652716294302794085404620003734876875397397905214216410971092832406906451821030324964323800108157262075524637488577909774254733591337933532812099107825802407650251249426701256154671272675521504368267416235636182859879628115078221620072168391002196176638137743247933762104630528076280877297388311023140823901928493121303484394751497158426775280087321335544994515482337737360846529214953074436802790130302484108718732265893238788166433687404440527045876132144982954995972694250035849491701629780557022561674909093492331979003812119424140233158246811199150583370849577120413201470682908708380110159087636605002195368168530969233941235367066690622075982660959002170085307980426583327801414275527859915699251701204912855386166619924807204819098576580561700465491724856952370798381628480198546078810566196743692197746496197938053969634596588730198772734988956993726737947743508124239256923940821341270109202354692906431250064822199455000675663188705070807250193382676074494182222517683317074817989717106995445645072329474190047196995911775765311029247825854004828394545063005239517176609880444229577085386832235795964240607547774826924435782154069003532904582368640254470398839429541300185573221597763844090403030857090045637212106306700708161581798913885215879980258078140827964500062003935348566266046786519096745959249854835880884456856360907317519765876050138520372156445668438146051218414231978552939549481189443466744123730539648166596229980781496858091762955120435680772869462361829731080298636540324081245756474510142979630202302031182533836119342958436377208783820395324785645180366633324333382695937405007220315418309258414185936213847308369828981087927382482445967053109348017704885913109787475345538170908214337417049864260113502384348684387210535984187350780706768041581564294417198121400922347874395058103184898870616817276711694686332879508737407678763381919167387569429393463838312143053426838213440914006205345554342196101142285942967868841705927058360554053294111165547955852097986554872069901214630496173190308808472027295645225725568976247338732629272723230115586738744577694029718247030641603837283949974258590035667958929338617871613372948114367391393443401423849834829477370914403083342060974789624207341546024589139853349041604967072805373265470953405513482470105457233442360249065885010368900743519022063107395174823682814943461693439406452742677960120341783699010982855963057269038340158075499761639751803887404298748520462935168240561548632631349685357406059000365402154221319510726929641894798541760458884004023244057340538666927802009521969100909894145872521315038407276498822421716227199196666905279415879376755714720623253190416466425510540312912089840781659594533034383709852853993575464104687334410724341543016852973078284081440486870618947315860961022398552512912943842821751046776617816720969265235124080659557413016406343466874633751151606058510508949420153154819261094922365980194162549903517306395517565505570702696206864199694642880043809425083576398874089979295116297822182764809075193054564850306232732868092106899048683433565117227835777534310788432148336503831920237199347322039998881151688915020803012476362843983420716795863407625576526515175535640123351012732616728459860573623259498127330338086150931120398612906537484460750119049138115847441852919438162512806985061395355277287036417149025736999903254505852716784696471920067375975552864675220293952513835578283256319292411698768298854200485418625734067045800186567096702314365987142808511801176821103191521059021325982649772085433043991973922015621292981442069202952413539867641947331410168290159259434541720586509556666485855763118998541552351937056959548469670975068641588024879509176478569967923295853361750097154369830592757952263173706148082486275746774980361873926160737537215452971906061360921014377146459990231202201183891511554850096468456340881715935905404441185718284289447593409868978680007809664333655495433514331517492108523436032613455934020531147662809228941633097375768243903604713952397075614890251533403569335562400422480312855431593270487128431549792777792116461540338122070009107093502403849914095427192350172255811592289630348327640575227854865984098290618236158352211828973754366827567910096258418056728610941218330238581192878559025017384328317694073107064485874476094749852139695776319321554304284837029906715885454635741440538124175176919124498344137480673355665813479365091229887360410839318863577680865355361544784244786629116984679059205631086949328775185239118877087335770778875834614052116881779668911060572245500573064885284579111844067989246911664668535739348547579852084271125391488936479746313795413644766266522016034013495204021449262250441077572716441540082197555207358418570950258436514064884965863294423378673124118248822683947576655856996828785418266242880846867361681358234373620195297850501620217087298670002540769328549799334958518775512396048284119500490246706405099021472738824034191090520251140026777993345392353074290176085274236822190644618742837592382862967959690480049561338761016831245644567809086477924599292172510636710312178186231554085663266281628060816982846611659690797888012036398320498995393823782593208299879084277372170589619942375170104806533632470470018155478896194900568232349234368049812459568697489183272012957886371639286367421296922892262109725785717003879570481840797799748128568540555522461353290338287484797943388973008480184853675192909498586293187007834992055433231287330281192381754563624194642615953642055318872206726974405446177119793044003016023461719389986619365848095795537729419215908324443571002848745559454846526266464034129625399864734373245020381879182072022043497466076559948974678074612529810916840139790356392744283382805662001738036303760907200329013429286743505761373245223398716686501970857261437124167623325610094749597412248623967825342758518611754830348409652005995674192648600059789751934960661201648549669731888798079103634207604563746326627611818211673187158558684280242866637020811962946411074898767551102668561972929783832758962269928363396182350395304927705458450935479149419565436881280002103906722110067606951704626580224025275149636989862006863494890952970255585745007534741450266251993375014966531718132406860133069529999025604876236376186227688557654905056578256536280204214859455176771179837052399902957049983722751238874984900343665598095851130408303127378711287692226522101671571012739555358231352243591630936007233569572041044983958837019617375708399200585285509199951287699398432371637852090196481085328886760505986941826357593489444427156843407847759414759660959580708089659167009458688829826106021705158225096743803037241490221521133670885232786062747359053235901146463682157696661192511304491874155242252054685034353349972534346371376561975611565451782703917860867497433923657585544825749165042218560819897034594030756609923628128752908060913075971190909197716132799595845943040152053746992696829536242951163843285498059062970439752414523975071724108503258878408760533164573122362228977918594030121055658584263209237427120744365766539523418632213503406313388406932831460005894942221251202012184994166409688972326958260511177443000940419977792815263713673710726330604946973857996243709883499409933343565187073008011842582235271100606129956581879625491981624478873896484174901067783548149253612769828840548675563460429201391935177378173045211077188461290144522452068384451168483034042668793009993574592117644695878960932386621874110939893909200749789277062060935511946049294414430973683670478899298986482519618587523807022116966088957041984146466864715083934040256473561600106314461826210058422748933948437821506408047141414987747859024457352535854394693107254379100452673297489743058985213820404640079426854086393324904256956161832597352133741127724653833977524273098718968562181502100398670364180442493458584624325216497093243626015484250478696660512422724141322783958920464082513430717710932643793755259103517942939432091202866407169595605669221395940931796913193111979188071759597178374617083784582266718641757472739505877607651170564192035855730789951299772691786153179510367691586010216687306564569418009571102698957143322995575330216003663628325081910841424031051492765968428784062922689702344556566445387034390352696869471482928591897230016753296685327646887648945006403374203544896667029111803924411530335206266626206152571178255466373104427527176061684186355930875811335343758048928683457914090199436683745238682873631370982535661482587834874440941524458826306205964723680308150940756039772283869583344037670805113404206290277271029420583683872592451357411244118087911969923402319551714020566483785453129104187689817452273665436784965265430670625682944303687601751410402738405849242130846431218681670178076833115046689114994223977891829408933618457541110172900300575424498408854626521102859155245114427761088341369147465021625196484362829321539008789356430956462496394644371108788728690892068385921832594227850099114671759808838948537413445638404647308174937876343869973523573205755974077331703156658216285601001838265895084136682979124331982111620849009868532838669595909206313205849359378956860269585837132396496463461682022764518113407436698307854784645728279932853002766203359461173164434001106586360409790175024860578173110046385145691258770347570273061914319433992927318333650356515495395851232066037114057905422242938674071194552986236097248670343871747710462259015901530087452839262024207757733507461099956394246004267946651710992373947097895797959981459405260783264128417421486988697853001835155705559941604815952264907317407433589469379894745637323074245055323203477266319547345978199017901940231883181371580507495932696891870480539874677121483738599030036653927841318154339429665270627671816166491787283054908803470836973442509301133563156995584867574547132408436950703563315066724067577355528109187427321640711194903730530423748120237050009768797552688366841458072107717898311713907244461116436996655708976003612591264945781728422255858244375977648016443550622848387960746919515752057247257442123314625828237530706735184120110776383842877195542942675237280111837471579064171479813493584556196805323728236278584373433870878038995303974902851921152674958717705369808911544126218206537802423970448936143899253465826690067866922510535711846993727915470313626028796252012993880087324879208749286665064265127273486379886161739243824914860345669416348973301878770258866370332284935401157588094101469590727918515152947227520969806340143912438396977161695762263277703100642700493244345540646915282902070510375940715383243465051422358355499154171985815897045011822527406307832198823126713400576089363422966492721796270340314538335191527423786144676776855520854806191395508145983545076848291112415608503458063185735924074822232620693813478398784091975182942305043933325395843340305247264393917809390704384351389345213500176967812453766852980525276178733494814245111189583124523068546193215476398839498142929243528809828188366614268731891802050866328480014848810169248411304936947524914433191799560957461988532197925874704824891556015833811089240846382065403636629346141461341730708445166150389166680221839012879137871656606809543342457762879991640779442215059737836090389375081579016186113609748770811049444230479014038544272965937140727188613483228719341898783436249523616053168672401250516002088545107535618824172013791850109484059802128659634387753932220028861543179779772305151254531408849669098778107392006670138937349004681281395465809828380759688414054404707163564309998615957637196792733538466398239773819756142401951120654053354528476529594782453526611304502198268397550360014222124523129146132003176108588145343642365335756462369497435619460041519225015719840478810152462270814824795873797077191961132013089124647143686327710389291366811108756944532843472534843022633755345746946811208640735581212857126394760377908881599077479634605052698357090651427311629868630883018816849018106572383017977801938939451317186265365638718839382011056016198391723039019647545587016970017294217784356924359620637635547371759780776267106828695597227103313595321347860665657728259157190400178151904236985466970368444390033688655759978130456407232936288792397359687172468581321049206901055249963902601944560212841530954880852007999259135115717060011641239491700853281033392324830842915262668900902138262921386644065213690516503832265630559436608262577100282580411455514372223475269562835572274034338359879800113203888713369668139114729907063178057276321846386276022624624823618840168096630231487693544668164190226665544124845739571267755503727271431358654519363916270566004163035241614114906237667736959698849216336930526965363783555188747664054148948192155339129547878781923520847472134141974448080930463677647825215581150320240971376012634645072882451510165564406853137525261196734675156779779681941110135392540105434858685840126370366971720746582951797422212235398551316014847139409373559541840624878162059703278546055942831590279285787934372777395790274094456130832603725972861242162604300483253687349655093734426030557194560705912475149752219275741588358415347464680650865226913049331118542345836791977683139970770443146167646802474121637255152966782752663869481160324699102355845809193789262226305460680382109361575725175297048569871319907541166601929409694900546676431322329889547622014033466819952081354422950285305903781967917951707561428196156889987867062155191998010997419509727533469313855230422002628300068855819908819833299623408155023687470969156760486058934314761462888404538775033180125618710599842632123049806123075347761021170050034307299761955465438718953648163727738171200444905524388694103097515725535870038881138312413420557783484417674868466405980539468129193325075874258615743782608623221389887404695863693935591823505582571561628361672209446056025288192524759518440749194887994353304018969354741675673563352991983626517340735658716032578054208018675636248401335411918364152323968859735744099719270997935063477864511233346318229037521682204874114270791544001756799265718284711803778810511210025120785427029031976214059955544874107308975456238175173281896318105186996425959991458969981143417710430064796372451776436792681647082582257824955425808804641578631534307079171010044260011177302294109950414326445621115567536603778149970481018841066696902349062340132154858104595820172205510528095549765182819394313318080495635096549542624367479457127198541521804467657814338763617872452528815288263386421826949947962565052446766344120278453394482844725436698922381984680503326008775954382564976465006245674175141759203529230890980453325362180614516405224502827833134740396934846548290363186533521647268045983689253542320036607578811275627712406119152385791788110663990113418128450783839841812823367118376470800015724269167905520883205103394037913478191136247129385537688924156809270247686197706364490766564017474227271696923367335870264708414848490393539765720229774668426407028219190847982241247945316614310054980059052392887667058336885124822061495347109840810441862825548055322346934748149596133427068041169121053360630277921842498216420331065436101517853284471538459027247166289511861993040423234597264399090213531154152325460832991224204247775219478162269037424047748934439810630357712838009549153080840870803663837350997206705454441213029591917742629939514995307237270170415364196528927203728336860329061481527742896236191048328350414062420407000249939225745024617179329408207928353193665269407255944599099806968828827050844399246632574994600792042986449465323973861204179505212427321738063060011785376787169099568996674734130752643167760172233797724498815434102411413756510981799560546677324661474921731037030393983877227026116554878346257874133354569082738530480532738145585631399901294799080605124009685028647067730459209385223939212593555802805042031782216180874065806973058958358899893446350761247416617497556241557990104103085635563439454046265180898151998724996960780701829991808562771548275932182666540597115222527430697758920156535248064161349484507113027375406419583023177320645822322362085324006671864259865625979039238799801894333365487283317457744806936838573126776844059574470969638659651675749481925673792597009710439345222396158494412566761575017759233708418273229773614871591366295890585590376411153882534439167373198598219466370678017951851411602904196076445547003452514323026479291494948671492700771417117797432489607250484326351208157350357582355939189456061147294282739689693804878301611099021894090202740885158808553657645679514075187686321311500998538905612790144078514183788396979952589952465704680640783932815055715172233397693596584527506238484149267776787039826045926869126689635822453294703914662256822802851561478193453581948945103767462027983731742071008558772598597863403534466041621023572018601431037275307446841301262993350868509709192726673483679184041462517825852041770447612902405336123584659939081522770043656225690042709516180555257192148433789507455898369285508758833034171337625114614290752179017096478081800193681807911142629924728821242732029883930184476907613933525904077328399812440080689390030305179520845049421707375674338310822111110579877297107817250939076211691992858784475745131443746570293271350077569159449559561924989615577443435298064210273855545422897355016004223019907905983477026031232674305443512897580784793569477171171209993367829562602667090146130146815389978683455495222407787756743799423313661005284750281162456329350994608421240169587189986179336345741733865461659567652825027255606872910682899887486653335871434790721555426002400963418350270728191815890940684208093412803510965379014215145591296030602362442606798129017675882699896708947240690210978044738198392575106860569495426646856739079906296452779052989899406897278553046150739489568537958243119207358836625191603251710915923788036920088030871145290434879999481603875705686146050889359363195770046918743555816505525656757696075815257145561742704293386439241284552762528352293741022408308692527726158216355284331881245717053556334819538703934481339886537843911482532945624620840491955970373258430202376327505604210553295939711329635273406281585147632861181054105080664171772089470261840116024160464416895575502629517098958409346043801074164849779454757683025500856624974091222090409127274436598266305647991658265608665782693584756588036520502711395102394500904416904492145298172131275995014689516883248587882662646662572738380999590901338216769087904550221514042985090177039407389662887280323496144527404750938537528490051762552904877074861343908707042692377344413633640801430704989914790982241268009879934756379995281449359802433929528592050259521613721233498111332168504952384084865490454022762904400233119536532097049031110883825261482666122925946081261278631121206674013846807374738594264483957891952664679062203086427733042320435503524717833624635088407875331691565603843237338433912434849188271165595889806211360947803835010517313250383515238175744284935994080491815449870897796665204495676902026346974716778444595247108520496114166699028093638116009369070288427517567255017916266663061301515321450671760032588215182459025341711422975575418294901093803076620797107334643945640424816526590157852908103405868694005024761131222930484715008874393840244668094013832291777875138561307051232573485718985167458382283559380655771792956522344433043989688333326415341157444799008021392759900518866071766516733058876038670235753700810961139684111186767655270430035382775302994852210293136384836990889427463164253308775287261411091190833830267869606183583430473819662321326735617599835181375302620378679417970128138767302492147524875762641870014534147663422610189731065777617308949969908832051483971449255125608347204132273193794376483716561539415595909201294149168614480631070874040238598803497306787313404056396175286393521872429742724602364112699652176897857404084745881652671195347337949271707990308053903523878252610816785784116729650661988623781099938863095949210561127553648193668845796961564677129860221477172079179734178109216528652749727591693707223423516028226578389238333755022542540970798184470885789552131500909680205646538951396913950865759562190710945906420746154133845048483763383172903255278880646831658256482390520677181902602230083211204690823430316734865704303107481454693671261402297891308470034534961812932722147365963073381528833559895981863226948319420144498596868684225003791620815296677761634017789106758609981362225799984393373289036383069473965399688225009691703840391422711581991816080889956805606267492915588256674665990109327202281346333569994413348309465146086065771958148660537743159556747259495789704846565523739241908696415619071592075476580828568881090209315847184709503977617089154545383513689604163811712377983089888454918187995805328312689960907515161957161138271141331033901748110541676636234174629620572398076556429961981941734457872895339324062020940859369398459915971922421770967514140729676943042214507686568678027754573428919799188494608116436058446192315679488862714941415426283749278494777996102650407391949655741298753437421947541486302447455145966527499205729588352156159643118954168149259569903294484141072796361398642131063763981259049032409498038422380805105130565559654868548781085189294099281441946997069587233922698499619298638099897896465973050138094891822881644664009048528315868437197528977503266153253853492210378164318224791565844870044750552405805403935508387191133532612769582363443121704953545983000916383163557177923138637157409138604351645146468094965923975007335161771358550034453848077869341617191062611367846793195556531189565736895437128586603474681819069431551465260817262313031424299002065097676347508651504535210467209433704811631643669362241245452790293847979933564676901622677802949234274101879416294890193725996941174500184610907852942425397985063835745460701605268604329778043581679366178262110225273614044289955510253733447790106987554947124500439617353514003809637002332126819997294002931607537513818065205769560449835415848485806062310331902720540679806763449316957481750509833251783371522848714641945211225622428204591544241353188249033128085801758543976968631827764942423506222337791638498850562636068110523709322088028786183391231243618508222196324522095347116133827505658279254871704800345383407410374000064840313966226678104802631870048661095163795203960557696177222852238716327088899125969948276424943084481028101298540728601076988923319431519363542790865842485925578986019530962923384082101025040066505485419459301976950369910255412325267250797990275381645765096274739254329170097763419534257240466541709415319361031106669136007475329120123588689717597450565807745738591147711244637809981124863493326105664641115878219094069687545109844080137144190550766306026769119431754683268997711701566614728546415334562155534322501488465142397715916175306370642649359232585018643136381052021206465676767622255614250740449532321850096606408040657358803078303961444224478266500141064393448858277536571353683815856755295165789673087059675407143987424898146376596772692542527861331189526300140732352161939112860167207813665128593020951243725068898540208399160267007052963190438966439986856199096724560819904317578526694673841378191192527411060979660416938849155890571713357491691853079417981765954716710423550674934603557567926154698019421162712932251213186066813964041905481473585635170827353199119797904646045270663198907452213742036482805374495868628337148354177133267410194695960133594856099437951025313877392050299313922008273902575813914445464817972226908908990346108619788308845189171892035000926201327820258326679418601909673205355172711395643660607171138622735415698355586268716787507796844470746966244034022482994628321034923299752797380685304979835766130242700330487246915747705803175508878352782965877940134706978291065362217479374125484935293566576276720953015698256284121394434704415277640165984832450671707092692857579451146199542495404720414281547460006624914351724954433435287080454375638181609726954376691776738559820345052321271612629789482607934658300547909889363178405571888630188161859975848762804658033439959458201723915159283883879426924467205569685140926700398306421386635583787552331591791661307531918863245057373140655989454161718124670308451898511014225876314995230854982878692560893300769571670202653431977640819436033293722516078974199850954262200543831262210055494963517197093444936198630569836253258450090734294585811400394515557607108609170485774085618353462108770339252123343437013342411955206640240792535482371567921835353711522010758841167262010669197230348840025448216529117750811626504629681998832666134685015304438513205578784447837017854614704054690430188905891276025691950556125827887518684725009762354870848107439603932198383452419642840840931739308027679784177303017596279829176160195446566965085038661235977218980722888240591618484841830071038046748680959829635564835779942717951269198359784217648054381177218678380117623365413318865606471310979393807514883872180991009842623072658201493117665251257100421834640044959905085120424099001187441721365522979288843433884208430772370701071628061774954615762472871717403816250005350406009068105308798663461827817945736293445122393919281700428828575848573223983297735229684165166240388393102367097874537654010435507581651342120795228253656038123418886102170221107471344263996723634867146364958965342113707784366949199962476486360821444454907794972031826490206227898094171315045879481707580414168395903158290729931421627041750414500607351730788119005412179483794105270083946579208248062978922635478283168089495559109589545284153751879353677921721264420548443963235008533609696061698427964561909602789495776223243820288545937385520417916145124487707922170505344774268547489647610451674501078406308091568121283203270300157814898691068291018504574735027134387754857830478289162605250355437678135806630661407495219294342970252091524050311795576324494411541116389162688507118521340801813352105791191452780416687894932451748393571973851810018809623847592488883232689262784976716637553983656138716386476296446120015330815426086492700110840507047694241542416373884907381180435753497506462260123777044023802244131898585532532352316360595626014118174668887414466635122516336586893900784671918598201372068894005056091025961400175241820778685685791962346074437961619971811974723568844158412647690740700310112583727077781192474452415598665134380101560658494282162997426938454300432213633654596564122589489922890923464979447038241775607966212712925542468736416737192422633070014450973491590672172184983173887926072759275235732860471609357290223001737903213814555822322939405577544975306455056200830026489554323986188251725554793630660310877270767645672181642571220765938642622891404297357491173287302584932605059809314226209712596894338045791487103806240767232831272915942394961436692767478284592240711486690384176423827396870291723521491442340337756185321481690051203595091955487585258090821101210972077398974721219904787967948780008243186909535032336490827896911622393219063331854607034726707911601677107150352004026238013630569165191696211040574331688778931077689539128978316143161396445945906937939804447129473502957195842954929935527096049877398024178048120855708925839009978073692033403114597223832048055556454390919949848062705449355333662121930080445155807227287157369713891229257441478738495382217261726587088221472018200636408730774450049261949240937489912110946824275985267780402305624311361337400242320010678394123208979824199757317055652246648118076881319962673698616664017943235999041993108778742237172681520672690394085017475237560397255305804244990373907459834469223104986177231394183807134541383495456514159960638421755708878521028647816164243384616041020096059686823989417367894683466359860548159346960513741812774898134229284886168461776206398080124503486775320517662703897798592536115146153106578340087672191169694471736864230447776278699355587101845999124680708497503641911557880305388830545767004366766389610511736802591617569453692560805687297985118287432244889454848835746494987952124102660873513960191094452660865779294404323384393169016481295034053483651803814889321767904077478050192809907604546213483556743588674965418272238536716094299172888495492802328412251963832462594638196667875450866112799847385633482676329278271184852094021580612862018159168878822928190311807419301301441155028549579667321803184741856558672183023561943111177581303165289124520514325966923899898902451549936287369991698065163667758876478451791140836354063847457470059736105174683499077795282319415059766445601775609878691809978407351225831957573582676101327937365778841093117624355106684231634859179744731806390074952867449036102253025083113995473087893839509674341653712327039363151667629912250314140120034413322580876740770724469276806592699681367911973423281643018081973501498660540832327871517641151816915778798607107638082924982746189017394347708728333105806580877255649309881532127497435161388546736165786830859780091755967853604285071982507434977950396421575971455196834979296607059550825540546157334344060299937007516712781676909189197850938136687947050507120236108507592245045239758411125936821812143368196131842914929855048302737676072560946988985762766843069258908819635104262091134346526778537388758566066508292909601872883657909037816181010455809924548032153515664840858425467507129896902720853806994583114420328448158158765046632345676949989727124478275013040474670689810593744587859257839014551004336481587567809594762293283034489233972378085879769095734425858370955845957296283881282605625338116422633902987649285352848149685516132386716652476901772946080526661628272920683813698946391137242894254062205986700338599866673862686363390920244042918870117815433163616384257234178460865803372939091428634056072575619716659883339522354537259556363331734114860386697640303734266495470302120035055170392780909639566469829733078634698295066802795219628732545081764442691314632972128749772391506353872112282597396414507619010435446723961988971383070520084792059056902491153495144825526441778359540914454855989907047458613696579285016037456291046236116573066764570440250770410751855216155677070975753490865286496984655751461263451632323697334650433395017569584940223115545606643420585359479849141696387549905549615494061878025958141277670520873050209472820618271344371769241420798003584495413558554644205336977166457513596078993767717747323781189113109706568508040143895995249541057661876354865383405790055159728007918919332545246737737505308728350215357540339331259192958998096456452118208526344399307955873111696147212597175736940263688220233048982638597227391294683235496609622030277788006564558523990144116391157988363121485765469605253692369802293744683661083469289759487414869585493544441724611792455832644627398971315532320657304311381630113341663583807805759343465467445625701602773135061497538975524713113828391038387470221899298143814834151502276738355572749747034475765258950012526107681972947337518102321507205622192789876581330190341848578427718690455814666813745402369485554213809784350576376916588580362618188401725574228735883503217898370449388822500705963555283160368121063262572740169831236045173986472116839706824763354492360279409554679179158893354915742789859944511513179044711707372694009724355581261606821784244460636408002519089350375677727988107819448097943716586449450297192146587787399840028841203280949827083087772151965859643925793731630159141853083437636896470749411291899554656622547588206226953114881603904316565833098756987915255520632038501098768034046334630304397161765101868940945225582863651189422338790087619706944929695675247131869710885061432362239522326718621716046923032075990165538719688264690946667188574240800874529163057952984328141950744352842601404174961985254939545917863064084944343858282573362327323090033396559293807339326653816863351114254462890095505278580314750685865257906138667223187289790028336381704756697110788329667000489709699267876072628655090651729263799959291557953947463327056765083683157009416697358344928214379096476377564116842694113000037450365437707227712339837808671247142159731023458370652189087184800724453107204016569388346496384135591401571505938295887791048687184763009120638352591873392590492299703328060313169596595567362611136181719787072434947655152093227735082515232717614508720402136617243278191753051362173214977778295391126153742629220853320300417883442622609455405852224660358775327356653693994174934984642190627988307626219334234639267337314717271404536401296910218851131602736667171899360285193579759142181708690561891830360358312462499976865002367842676274481124306005293244285853168047710338995110952482981192561767649740515605867228818294264934696927459329904485825351819683302529448099991390059710123134736512681217699455336105563743394633631714324036996658414647736621950290428580658521741862825999301521460843891107730017678424820263651271129454112130443063040706997189872182225698064178783731140818483164347865834700895106158325984553982060018111711376496507579618609234670539805761668898293313822522035273606796639485108768854795216307094880342598713793421583791474012502338989107952623406236332065471277819442794028366828693126846093338599423861255685229528786801737681858309382644967946301673709967989593187593106860568605400014243257435792505415100286633469066914729927720124522696413335386165270177216124792446103033803752427298901531233930397458230043469868753890524002887487412245964811428540290437323170365175161604591284435178321910772301470743623310715919594595805854040884257931188785740641032099380757862566745164377827178590770043335145439919761542679634921532303305062532440681740132264523868437463280419079823569354698739092825047002969734553717760858725815620118989566381420513760314111152717472639204793890508814242033653603643254359515958572498877773830254802993756508844860125719146654556258101287675840666018571909647269339631082341449210969575231790190710293864212706173065012705765672424207844501396119812620199718291713551750256256259490846542282844835327768990079039676424017305442958357961105364237526815209122981844566774081942596640596217314295724961222464471794208106146544048457641085494581563075669750412959940346500062985067413497920872329584259068487719978191682427966850533943139093561590996382209000862243457617965909998562096817753239052860432006401028761347343828489471826616528867073408363717772497874327018579156431681788304102404691749112338311265691276530694548825695895248188131886027224227899344422713094326819058630027840048741356926033722740889360256522941011382537469595727828497143246556836845762892134674952990123319112512677107582746086594533185468884746766964687629387523242500951927389495794750677163896042130111237739960419125785891607909976165869149439517837425471277413339241209476830170864021040583596408897183643852000275237578914326189884941003084155699519808125609349862022722853406435375675690723136312121208840945104412337814468432852517366429156697466522740959216632750190511643330684463732478315175835865990751887241991784130762536941137509136613820158121029115021436521611626089598904896413038914430546647838759136403582147218643464917855894164206994156605950560673912091702689005561693892545591234129100437198178628709915829947193085661647773163214184989901397164887866909270091609781282540677895299294664117890238256172050252789378029735023901586724260707193848006512383264104491993132076673159222837811053649567936783978648350891619169454051905035027167422014966612222653952015055933140998119828844520389924918452173561199935281064415865586073347537556746834316001043204602245206571289894315317834560687888819109328289039616743681181531780910310225542230317553514132678264082440094263048098023273463543790124638807653810804330514301658129804764482806989444712169027067198097183665621967942977786033994372015920083651544741595009627891084616776320369117361090159970569206826746891533909265397485925458044708951674191409076101984701256513969748291475523833602547711351482708651745219310340068162446397468841093243576803040462513643628829959940230595742220044895684707514889736827553422996259747344959071796262817462420605886844385476846645715198996730397416803645393495767089716953109234868162170807880474747586879927659352174589317158183487899906679247570666531730812234042686391223869980733687083890626400534156690410618302037494155016899044637735637129399233537057686029083123246117347004520912887552735904096486084134910018619859972445437643580397674005213958520704047617510732313103120129506784886153332503862562030386208561256910471959863314761248342861106406598435590969827949361712655225062630454651673693394675724530004430808431474539551750816997296332265780142861056421039291598973628486203578699310197014181566764239610565816051846641420190932568343321335981686437898017236369721493899082395646069798285007400648578004489663030692689855932081878425784716619609676460466435860498719723235092535326387047208922992007800048755252780225496894425609220625963524524829927857849662863334514956130057879516214928479447942287892682667550795116957723523146681358319734801417948209025112957430515612652070292724397215105083634100646850827350717001183861099311897621457311117098329705470614574696539492765028063772024498080034084767003413700144267114774074683211993431888218798859416473493823247407313122948778855225691509295728054187799271500322188958609075858607425279202256976032571032945319309406091486815393704983829195921734942254275290183109235498483392848316983571696757853815626565910033924676853744801457592800870085560355881277927185394695264367163198598732276339760669581762037499718211943791556432571412591827795236963566613657174832803089869482550302527403389003101808007259303657029034623837812379270404919037376063467648154177256931602428911017404503180835391345341320988092103734270430092369046498830496066693278483588916150051337099155649575419742172380034530752831982531505202962297334615260166451632035574223617308327803153325155796678808924507846388304697675143663970738391894256420984616783648690203330546598873800213791216445301909706044477596440685531981110776013531499280204689609496151213381785690568662298012767152599239329743340158680038431109724947910449827852985693780809533675353582218045706451479741058842011900323172690445694221623260886048651829017975096617273924467258562440942840896318807085880772040214190093010657566178878175826308145208639747577781234713436184423931062764142294660214856243450131935849735072462442667520398795991778547528855692208061584752111859662331211867909319634815957763866824506077226855986593294722494709031954775939116128386059788373010009283252399082924070522952513331319758259788961058562757450528862592712657400803518209397733219401338304387810105410013006385705907384206142250776253172972567373717830708638480537508961831591147438301744110644774428215817652527877605939163110661544839555559291926495542258903288244736012362772187258740024207060088297368329484605532883706237989446260032107439003652867595406190590607036544464641601938405083231614084203284784437926369778741385917946751711516021449184195312602452679259245009323668855954429843204203621019495565885907284427255071914296474841705914392052156473976103474913042755151006896267852132482521676074498603355429016458391815155685481043248882654095552035369326231200499098210175397344501791095813014687815598216334650310166024025863884132717380778459180148896060703261031741893214085833448797972567750370654249917591574372639544884373142554808455901221433219546098198833979413466872659777944085747120298073298254670940307554827976557824993045146091835090141937246373321366562902197221264226479702078310611743829541625714081608201391917048427880052677453077933368887644271344116685227144734073561031079572795493543232510551226153179035930104534547123724316429376700402253440392998665405303728643855318074093146951151400999947798024002621584379203216297811382481748330478659151779353217850577277767457086310441278577321512555548986712349497286334371662663679725239680942606168718201376841976774798938220129920100823873437029931112688039278478101949501715506129760746377258745054031450330004968290338558370845858429128019108181714599460903558952111872238596309654902951684076395836668421507607451683077407415209163762877820593893460969216742872471033870365132892566796634521732540755744071707655615828692104340996880912277443773771950464102037508386620454489154129159057101081694259600112941355399355307176088374242059484384225915642915762131181762218842361349624053171289810248770261478384255687429951999373273929727379956247650561860786050868582858667948196616755220197779518723377843407300863688143098430370656893046263904408147977618772830458935913731726718218719620550028241648710571901077136434664978140750643579691376436442220101575578458728680588418277542508714605362202917341029166186222667017203640301564037661381757571347084003014967876126087166903382502984433984205240357236991225628414572001125821667035747367440762923184599925531560228107289280592957839431000046903040237784277167366257524713140197843138381534891989821444389961196180178608633977089816578941008078287141358592312253547068337709869670436518370842880520439108369382174631319824287798420143719672133158809529551525889054748268125794125987289602963169621756937415231971704138691711119311627733953622561380489157102074872829614984575792315237107145767326476128880886262067094277252001507878966240767433378272501520935388744329440155655259962707077484498367506036143535985980104007815939999745742659072166439135864883124059643244754334913961713338502138175581844092235666052075909740543083999953759803978014163813106065801221590932119373612644503017874824644612398321657969664440073793866205037164817544529335646913042253975102983742041945337813000488598455163573809169001115969104863557406981858373272987792598765027302113857448318685474759689123574423657582038907821657054171718403530020462174910089900580599502924483407544642630603079209327163277495173290276778446460723467523843695561884943786968028580339499719412327937113180772541479232449428846199735038811319925425484161634215953305671407172569637762027865417420844750869078416107630449371012682308556917619133069540194254555689248506885163061661535259472983167673595883356783394166666963504190654426630397576294511596822532849073272635595889790369928133307258911642416317247698030890463726270823572262728291841052310888816661878737487729543223661517485916323645959459558491639237826950781253126001319158423781703087787432318790859216481796431363992248231411703702359910299771576211686744658075288725246935868425457242668794737209168278557720204027482677733424221619409052990305614725499067834035490738039091163401983733456105418897446629470558389473105278428698080649026964142370646111961862484993460852106730283125270268053294488606164023017539408619065559125123660809939312324663519510970888437309945346789904591796532370471982485822899659906697119842075317482037066461803120897216030791751295414585675780388588567265500801293982214602684680921147571939048422353382648574293229105515218132314008673403961563702651904344614990150814913330130360936755860991687590567388105551548882207068189041510734023198083532473064102301497517273648100565586273563782525008717555221544066810944479776681522710262754703942993586551062942662700089516033843840938683096913686251362195774900592880942973715266013935524959469133083271370310180778738596274263441380875183753740970788669801384430686145050065550016828712411851058642463925709603201271363307621929765879682373839296334254267590207768142567145336155707207793866807582169568286130238157989405716684809086464934398080143577587833964312685723686899052550463502070961340443375846207520714644724528565045934385239946927653550318715273266407730494408559172282587271321395292016959694840892747909602644788121421052891044937594828628755809009890910420835989607270090923731204692487311752466959711084837413541167693731992854604820204533358700318074488468409592326481208723801688123945111988448282955724643090039694458419271138134935350231687192055368666843386307755973169710437791308988699095032648894268231195575108836538870991500682929229958635845581272959251498056002092091629100801864704079161739390610325304982951416713658465103811058175184178870186385976854752332912086765305623691322283464605666344042215902272334545737765688702992122930532539708901274115978647527436084947019269925278995867846462280772871996018044122709556767350997654654533432863988102613643934076264410138304438561456898851647021862288811789225695603595758000299928662429867462108892840187914816134158548669102331740650260515972476232720535456966387730660329160433908734172914636677910783394632916025067291677583284052198210891270768208658587643468150074922519145008948884004690079142670259459909415985625039616772827971348299173996099088456507871324449261075461601341852053435874872661627755690410559552687940701392224757594063580798186830336769887915027315691103689299840648735010255923816091338157748225935596926462906645245587813693012234110255645541171798042618199536584746346647697041158779186862209714107826369886270292568666834811036480790890208828331231875198536550737769872245791563983044195832483239819282311020088779664225536386979718786674484175345663910437374163042778716285862152842157206465260647895558368725640053551695350857402311850256692786917896690673802139083481558247491497941060621058076419374923700427131078230119169588334990517301575197535373294543464131971460488810802019336982136008682588969570038750543164665235616936315639828460443471004758706928069543065797056476995217035335382165158208768486955195499125099676206007954393587347464173921937771302977044957795827796028740078292292030552869453346594010091749092977737671592751566911836825465513585808434512937899212951944539720817665670729757019151639007538152180433804990105484625734431096847986481272938782879966472209198241912480514948169861424588666774554731265213950297322106756551988507980918683992599953360578489684255842916770848099392970352400200699327261542701646041711977527630643251167491025973838810977682191330039317231343457211790484348444798988313080289660166971032939893183134378914636057701065668392936983579647278503860243588424151401435895295435029158457214368203212817857375003807038514628499172928374384232438198990664838560707892450378184081277730786517974144069815532147376360186784602052587230873859896352031476275345191169307871364070803494939091760969869352217679445531463237120364627410123893618002988340782353610448792853581524363808447790859914347294301225054198490790328997488141521223286952023780401363523455438464744900067511659763503628500695648050174884402560701855447390305663195020272019069101851612513980796213514916732876821984779504247201937948492681447379659843230853131760614158038204856676823845644687901936758821477572965058389418059701128688324161105951119516100969418890711815469216713825969175278513856164183584809784426286791670849115992205659081194135180413841033100174153685236040621368626792749631089414778365012534636821494387812200363809146944697621585128589269549392742928351452214929447011837690499418733486706021122516129351359074029421043302887424072314548373524250085785106578035421678284165477413933276948128658964156113338509364611297783093714273761391064715223337081201951600694555451478005652003535157627282376717134847905532954256176742671125800327135188389787016273342418214331611374758045655941083340947028757410298357208919644093400724488128075398121134776009573889081376621501446854442423768466355946919124358329307096973043445870377664675141816194472664265621567186116153860898094241266650017196181296465874695051378793064985778549615238701898547193473328184802452091895390988599138809972715486148114773266918642178976150944137217019910236893542355503441959689321063328312342861165067373378874840802057448589766986226831240616757917868136622329085142781412693008670928854999907736616046755888092541139688763829926347986342706573396532156748327639776051602750135800366842699158590963139399369862276354572791383042114733051299433285557194159217766849190844480956757780821273872410420946320842729322547628955757930318648063628279800191662430150516483649243594415702048237025345389416515581260819620750095759606242748348670540258371012242431147577206409950849043023505612364171617602345059412896032698742942988182696136121971814133911189207727633094334764541825650478848119327260081006030386477573862178430746152065340069033425150766048908080552937559933897494856469476674778336544872449811712796918369136706264727501364702710734769446243769375824599548631343094952424770859861017896871797658660288362664718373728520359636219814144959742283959577315292705636715358678963181704522569551074908235756862637613298064322009929323392915964404418961077218816450209644714649171943380085827414599976749671908623834857350174975580175811738212953713116346948727962673468188190957482148076572379817988683051368927797158616197298443138101649429702638708340909424618788535463743080296603257461840587256071082697250420647836711880373793661782338901684773871924911953424451005676036065585757523031596749034557267869022242758961806153701520298306879554723177924518746309277209672631353717011633692120495504272158433460702326007874605722905577804715252871606915853636132337114130499618095987300753406937051796885200674400972102094509348205648122696645848506855670619945839990000029590222143303235218171405775551796465982308338235952682980344692033791262733399593565419365890486794922683903833707073209551473127763236557156757103623885500359405803933943309816809890190206183904786312591974206055303942501714729487113280963123030221874371119557118961567452873424449149687278526248998454294875565888467064106401434089346564336746203327338379767710037865590288577890640133864810965713658318592304043146876034234483648768890880906974786136608599729592643823377679264594228980108542712223837384102778550266986017508976340398483802402496250498566701909259859020789011784532711377495288174951364836115319445463355315679521506133900947525889182449382218596002537989364951990363535566061543564102347671651438429216578343559253357849876675660396342207905878094571193111230648715977187152331926695076277399378084726974462631001481170424712756187537258763938994758306201893185626669332954601552329031832052138816900222396514577476921653865050259003431921476647302138030072461046986217759204122769432146163830632655737684585244677842778581102608976287114320798446337728152527041436354354885378744335951694698419583600066595021190919513322589663882593709678528907439600807746395013151970940684526523712616183235731042857890667098057223378300160822707493194592837862715069021403847061820145470559842831202400280596048251400975238117293769404726549024316434123475959914141373626897059171892727279030742021411836593382186183966073342611316083327987616561682258575693100843389661532980794039611402028716907705860210555615236800178144088955665084642715172586038014422410980626352181373490961862632367993472208719975804640967317135648599770567884006059874511994369577601513543955765650120159657794781894205044140330907145493702666724916500670015373739114278055031333390713783508819662363982772458808806040751130106043349043561181409600889016657778924137852294241246115695275775472132047466510601180921290131623297603051040179852774116427243166986125231662483445429198983308642908097049896850285529481191036069289590108629622151625160003386360079425508200999890226208216597408868084972620126363755862428174295787918507013136061033170012353806192504212793007990684015730082373464639897735413835711785963664470371157299842296521313768316919606560727321782530692643359606938092960604196573043820041073403337039985193229499422186015866060343953784383152128874047288029551748919827629957198722061391529897250454437565644170385393304759116487365698674180773565348211590620562059173160037567576979177913916146402658797436881521789904782702572707289297686856626253789182010656902693240311731252181865652045045854094380246721315209904185918129213360663426368472158496167933841192984613871831721099273706803797820754021193316099046391089477076046633107744545684096573378518643079092237313629626502477657532562336875927604577253978730108847025455691263165140074573333649556086695036030296157278101537175312741377850548355103693680052139882080735054698660983364315939553888235758116772134308963524499929036732342784938797049559316505605339403724677036334840123752913331387735009456685062037797300611313926931822261434091740488160222696604621721015930258249834597639026015965868136284138728120924825689191108344395213497858389142327599716784421653017777810544228093021451678361482170831631118601307814655851810527158259832537663224652486341478173089324747474474944776572660166398765142133116772265845267950271703629228696139920586824860576069986492982783875405704813965583840656817065162393033466856901897700578055359595892382234388743252905091855843970875862432985120047806158897222491576696458558984038770951055591604762163867855390560645873435677431261679247873793365142857318796701730435527893781676184632984872142679904335551520013152123281030584892332738968328807555949342621575998892356702353446284936713633103076206587923953632342654197103798381201091053774364538561850564777643180776962415401491543404518098923328918721471554740653978060659041908468129464796389246032644426003913149807690544133158077168975636680975609802096010198623010734021713366954838828044594078121859298243171368931362440910780180522570882669621542125066421292040616052730282826617890568875332564785263072001723415016146744779272833641709739981987601821397155368632826915258329599837034353980091352418871354661581499123294046096554055407993107682447582299534802943476104619948830558852353417390607078656073166982853556356013530033032013414531366617784161968699421579473925068957465568634189088873932303191919235616871981910209166115084381284453059620926642280761762400775036305026695822706648612605943999145636617027287871316827592178603700039538815907004073681868196285793725065619052445809738735778353941747796286400071472200874058097215201217805725797131983420698027003793743937252718497485274270686215153078635347282351911981807990109936736840533396190280469915123174756439579261594404456108307914486313891309040087418424311332125274492917723007990373947738711543585410862250424977245846718411167983908721907375119165002161262951461498748558971394551278849793478946244940344131694911949959303907297502310364131489517643597204037639741484209332102109886342635981915486844248434062261597233817142571726014838692502132895998309283713687490794633156093158609313340821939090608207717739877130736788002163682384806139486874546575856173834180904419959158467961135276337012852380424694307657690553768367683790730505113587483453708155285405015182143812218583865161612167693058796268642331201256224138355677741598649225231074349061241270305809006004954122875562915776567221108161183885964884562440638880923279476306011996297280511702746036584284470182650173151416721190168526987986012029324333531370194863045600526557489277783387001881160016813552165101516067500938156633852506623135595566795576003377936640048336515730220064543682259398900445033876689098614582563181340541591134321455933002428795689699159878970442882048272233655476522210599278850669912096763532132314339016332268241485293965052303901570004533711882938709388474609655327710620503385870734268635890508908410247228640926431520482493618323423957620556940020257315691743421535209678647874687233993317527043059417291721932596053789744247577019655472968797244391686720021050333604144760708500507747661951000511511269934335053159452026705263109053905530884254501520656106265594065486508674438667245175487412750272077120446111714244357235047725317164018266315690235621857457744734878869072355986312033657738002649229314559645435317130063792190837144178774434490640723009088761776820465913917201035078613483671320225928811927917992265630843941186165869867993280832277978132798640565000709418440843264110550513099586130753144258749956676854097861776843479376571003520052155230186651514530494650611437659273598576331201859580443731045506546540228425363133885457891419471182218899379870897184174256049189268815937535210272139199895666965330070360609181848321947315192879785480024435881503483211601618533936564793950953838433251960467071847435180386365994777548059152134028560349761742100805012662091707619019192760815858179860821294023614494222364589005987113743433748579005765561711831541338096121237993938840249765178077929212287938379358815155742076258929376113532243283508498957611913959351563281293739744617993594683597385545999494652494161619017643525664819067182789754429162661556127137224859275352109818683904561679205221267875238592779487384446858255074114697179187048488557816950376743911366344648034269533974040916687136096393287797410524511250177977818956302535736336237144500182676090158808363563652880777623252285281956520971474932976123480149346794677786056217334741423852076993030590176853331030226142736178841047794981719032875175302073389967529127926222239399585081667589259382899232813431261113462408670480841695413712440315520103392729035954090444843080718516021317046071893273561727396690651527339391723335261136540746972612652562765745578246657871911606080557037103085789808296287978420770177059170594879366887726782686113770420889738183708134660339739242652581716002342457951388508819466325145663603416447379111012326747504057517200280521157656258024592868494228709889957885647102399947048942498618229309225998092029953658582716384586415000589666276389361346349715772516998829855701379056233592847346452144526353551342521507740649824509138538877964697620127064065970311757596962686748563426422524273506653461196777807786126671226976558403366523278173060430982930621841916285539745233579027816914142011162648224133645804806214160568189244381652697940144669830015650136921160499565499110498793653085353133394105159673801911288507538674811753117063176359727827396675978228974529092983666734428356529948724051538448923912587591171706754734598596059517046983854989775446642162763682603717552682621798744141587417472663431051395876022290183607304087876331188673199166629211967648709340214284033380418136631682826007237873909793030124528538166235641588699585537118502121921118605319014175812254149168091668912680683112366611838382393847883895298846297822640176331750926709717234865443176205093081427994345226845300008179114581332912662869779420983993022249893102587141167227017789764586037903231275662409222467575342885653351002611887499897593584062901954116272967252643494766127650638180239637538002932064674539513044224095573820753324273107767118964585097756724070263140048470512079858021307970022016730553096581374467406331114707882404093571364019248439614499233615625731679180186251951678340706519819238161157953390938395103945782282815012714644848424919479796470878141677808029388306127761834041832161146099608267733980303754461131307181662574299180010311993438996613833356455450811831309946291276695020373763914370580873448628794507416584395610987419241692085805720616370706235787073554662417428924224014158431765461890162997241284568530197294675443343161367902189409020979485241763199361439377455551855474110640078715280545723125711980953852629235786496798059983745964675884550338396255920114236374068406349374608486439524433434215715510225500698571704013184357521653644599827029987922335159929261206319542731177310153115402376933860003511148829118943062336451535236414785653028365734180663643587467206745875739197775343284544129052950466176232086257751115506914003407644379216513191313716246401008795021921440785473017131529563007767118979289304183071992487657133763228949788654525558633070733037307058435210129860890244278480562391594968731146872370758653177514548554186140429024134614945376780365082316952165036053523974948920013321065605166659726858746566219640512410152694003053219750051621120167033867195027162590029254190087678981792645977694249832182287592892293149632444646427665856347076554434711401738468973268502777547249955347918305607297223664335833127220413632288782146175563891686207057913641798952324947206225620240329850378687925203575784518529130832234643238372367645391382518852202084252654113902807484310591956525539949833488526529596858086101002131828358249569262771942854863855772697706305032260666756537830916936786210396893273077889902606241075990602596103046730464016981540553536290689468068072865200148676121029517836953028270042080234729148571348111133710350261709743787856714428015029336371630716769734920247718989975605354459758453079971162852844775598660829123285291005956074967791256556393672249831875323635916540855422431448127920802305633357492189969443634691319382361394453250121304297770031876664584340316429596476610685080493045895923032198408082781572027295652512300030066768781166496505863295694084259445851628573739233565192585035723523844882643555359607430004564651584235383606810651446741441001889668958962522357300118317006619416855604676050500606857771366503454076969576746253099712849840301874685793022705336605993446952707556028030431942980523106494235675270598081869569208500807395946902464927207718641231904085790275561044813540481737202533293102530907544591181662601552136576192803893431540565864719072613846867652960219578305348467351193477066024006207600654419284805613950790163335259652292921023966544777660199032553499753065753587859536904851543823929590726792283521546055966934063033422706609131761854863002914754861749806680155210521073120382665530607884419893328887799722203134148986517214380245535916146411201495216869791002350700413126263834092771409097230478583962508176076569404013955835515388136515214843387819346623151194632993920483811006595479411503294330926945626025662344912213424739495181273701847012308923771464440923204379025066472702138972282027761238920878123605242875016840045671863949344100978800241248680223523371369622048439043783100061693078254887902321815159425920487315698619883646192767152468086976087981622872728931480713067781311752442118192254099073623612372102943876047923876226394070130700617995349614594312053022356723068597329589814289504321237181598352366906445889427342915546939350122222439908239316424865570678421315022865773920233605283692880582902145369764410966520506693468591977349166472842271671950028682502933571503118361649579861035780655664843028162277768288228468050184354837078620340823090069744211330262500931579977826825987060606021841652739475630949694423339735879380019841522527530354970429072641827506792502131229546878936403958297944246955911898891812526920509226569838334121092503161644615446866921064848240346667022646136657722882799492980061394789859805567012105239737602179149900713479580859654660564253522402060678540748436757192495123095459964072587724030747608912889944548337726645352141328809315655291343666424405231723903859101881285848089664226571057459518216401201926802010902709247729892128977304939694969736738390532536811425061719119769579312029449746261422766741179968146986940698079148295709210154612217744362444245615290482819882454939733835658679405858910062852165241994666516354666217450109249976451496332947631392057959185482772804334672815067867238501699073967911367915434521830879818586151270660426806272430537158935339997913133923266065703088710398725993650056776364664911383590735782513632517615442636133974040170856839761472931963770820679532764350352618356805109223195010442449042359449193402837612637113934002722543291080612452731499459088370513803410702883609200556876622447401245399182697798623006457376652636203836719848806942794704205996048755173123273441540077340145132122752937032285475100909560925511631125760428478490535808747118477710517639295442711988024494519686799122457248646951281913961533674710469363056736261414462876678279669111452456658129896931003581253702438768495433852989364316306107683205182175565682979943095677094402641182250354130288756781165428692841205478600433735553732938677548033665565789569708710700248212963420727006776825445079540220013652474014712458381082957275616833100372701873259386672788185015082769149702195402407971457535977211161821544782781019146617388702374933823349642936487338236599077207064527153393790677700854751124391165117816594956188128102127853397341082963050727759725665073617984875294404755220237998024505795851645954918347709785045532336614119775836964855500677822623416467894114064589766666823424588278293554735975790597966968460798593828579038354088546891638516347255201821794433143627783176826094572567406526806262136586303984941938302426507780359161062158427955917128460812774246478276312134706059220742101454923518044074246617803980613577890134396485358808526503297946106739660108478210500395034103950611901555522318416970360911866447085000413717558022596810292005015474569078183724180794761416828084262377365333765247259510386077678882653425358713560805826718866230621987156031135995692812221227863011358849818895285470611622408635143723471919845064916367258608343611910774145468495208272702577314161221438192751817295334070771480436955619643617668099768089997858089064777534987165675024996259010652450651903572350578309545539331437828953931330700832195812884065312962728417737899485016834495765609894934313703407205236645771059984253362654084785865368566543896126249146638769659745758854345700703193203404762328685897638561368409641510005230763333529911133437512428938598465177637002541457522670191035034190701618027208375766974970589717728962453167393014683792433668009439053002646964451504964624836722449932486004568754615711786203031370671521901374798616900298085961380159478959767590860939901387812807607711162778415508352821668414143906033431900433198046669247977158249123915939079709473977312659160956625471495068482493181819436983040092166580651670234873335344431251548633407081455279391313946902999093784225824172439794274748951007943163271673922205281804182842905283466364526803532021064351095983986720937857241740934644161271642013906157709049497451514987118907771463332121575795786906251980236866372735458752771331189316589316444682750758448009182687367775819177135676561543906797427503207060743121359532109627323931928244932944136251002230904999122762304426983663839882798992280570698922660535681573773633766990736130777619706444113435831273209581404203919580959953708915195797046451889505623291975596206857017550873719308701399186459170484187414979209257709944677409779063336600094970661482070220970007480928538632686209261746121744831591813071900707843752401915587260521318046580406747102610191904771146769525983920252788939852596329837799004719975128554316835747863772082361811483077074926043731449986093797101583281008911229685531024694483350102890428385437909207307216176958447116629164402518168786636350780497118838156910131713493652174288732547140470328045286421694800840178819156738338572441725118661619553380414893420616053237494360669228862972415326897621004254599022698969895703655558839331729054497857369445111461712139778167128675948735602470520996488512983589669981287942685293857971332226149425171811226665373208542047067194930343413015492364718418210010489140452514096466594540789058835372816066006269246561849853906808485483044652082843259636990678009737921142559101538130535798033791221600622478928351430294566974226338659292578574797154462886435286573800636250519410527201753182334809624245524294116144374574625161145938764035874932671520506798453919912838261353663430440244167408509157693915125683303216718767108159384344399860348931974866987443700289743208561568416816750607266305096955761580280610582244273330366998179702946805442219397541567816178056759310625936576378412915789509766491959324149161953710794300114238710900052201811623571127525109820309139639714020908237665579387586326857057820833562046202542998117799074654810963394569501182024749346392110793740293871727435340720923977612566788093647676250893949837170484076926622557141413649519627495422325055780768275989029451889315437507923615612504808960550805165519480194468965243953134729606018341873976535332939099856718239377519298297641916533330272578076564944517881861129412277722593695007062610655684609405038659119028109249801950834718426339614429619214745269458810302974959085514398482946521469169128940943578123617100303242812497286459761363578531026403758949709762662122824148452950666389101277908667742944535096892659769741286762657097265975959957892262847299918734677906115671802879023081030202231777733475880879693863135113417598071120572891686475360303888304421977567517277229679837256776915788670804920758056467613704486661325817708701083484319002288344751594854024931782056414003100828091160521729263874208371081940735618017929891538611748742390851598229807986415727434981419426641810460660798260632776758831903935947442866178046272784135525602633439916389872416115152115408626327856678721328640219153754724406676950321965922168467352526889072757931542123068545623645769959957935242086408196573653893682063855295378838829972338630639195451419874649630359689997656339393529821781330967764550364013274639214987178935008139018299541318709036594417514012426971880756666091708257584137499800026356955684172550508091314624784276912959337504221430454181269678632991906354771341600339139880340161053706096783262961821087365734424215488641540813869845002504548048553506686360659814071313897277926471051795647996957496189904973820368769369260196388465699506781147753371150872588287643166790027435214758439117028593313337048043652412061403805690141848712709582342903213763761279398076475544726754265765350309335209273524934170505355619085841695880867533308374361552498668329699846299173122173364433946533930251904456090953336204274863448273397945427402729857906135393300633489463672224835064941414368314426157412313239447066808521596800299917341492416697167431239008593672026103919067256073045489592405262990742267668129763283990725112476142415326243745590541637547603967000766013855379911380366435858974309480077246586659573171365355540987193861363439037336983470062402555067005839708230484113571389884340501660303015466396107270939707602976945452411852508923459232531119290063012462727785601337871531248398675294494348500839670503612539628863744176065356697982750595991565203618346841543942599255599247510653573573964645314940122824047133976247250650830803583004180673718209670054020057862178326445731904700330081849408759173823395117657695534233244306686769255118686223844109110170360625040654834734592787829682741282251467369231177994654248216388181285020453404887929041112448769253451045340245995582739235704024941906703417813078470122014138562177915610258838865941044926201432995900965942251969536043822805414847625424301061566145921445641794276637411468666237559381130881298765861815522680713484819243284617525019707870593399048145135584725737060652849954795624001565194883916638311208545939251985932433656147921508551561761208380294842740417911604317923649496568483294077106583072212098367439660715295074563962559775427909227700609174246735157502853161627623523925605484359486986195942485168612503693676451931716685649854521751839124815536403522395423329264946733531579456241677960843877392219493016759866276194404046508377747307651239567922229307257753852924220771042543716306912259031981439570409427506352961762058345773321034458083248195737641573204156414548479315649163659815766239966691528092396030763078660511230907439815049790012471787465251149271829209825644721637781130494582512304422146565577534492506727474382945968856099398246305374126165811763066735415407999718368576489583657413712235194869314963170900766197722487407921834509170089850103692503524188575713848990057549855889971894580625632388541433894597799942625625868764968883798515210143415978305660255553598222508863170007318497750056631656457556441010379947942937395915459476444709751480676223384980746997497785405227568515757189506082102976954711740352819222474517419361694031549462120974594958561321467017607192179701692726330981314488760699450346526205273418171069645414188859683376448043713810669824202073413229807507384439152684623407613936356862207355157086088509645649022184584797007478693606536966423119990398458038645297846514226556115589123519492521242858538357920989699311115243850240769683255439981996591944501704924279711863518103450799676163297947706047156533012241835424881092229135272021011935313503189907275226786143548076734838519992881373451028025563640499759710802251930221369432611174756670319431432091062781606406917825223440466435939934872341166446831678555472628927407859721398856084821181524840077111829776420274820716860433860067375747294681695101726106380847579148903168496633385802039432151563696547015053287183687885449616221944960273067969955837573784266975675949220416893293501254841314642734654739412398603112475442018467777327711514163482552403704861936109912266232865390804367374587497749141216159221891619798051157442215173080657842313521213834560631882812508457966699473570539795962293798151746409071586313669062754304903428760381328285841434220694716249057400613206038171478305726175112905165630271108326992477318788707545476633946629913996457407753876183995627669139861748575294816394182033709221860728217832309364213051124843436417187341506710698458353713875500049353943548310992080935616694943973538846845298165548117263005983218390098377737268773720379879998886111659499578468863478402512896420498299343371732525282824124039202886968154585472625985366980276834424506873696880090960114143162045669181711623857580974370723490207315550975707053605668530791647241265072548176538984659131415400983704323265049214289572999964002579490832848059377436832934805006436507584334850554388977510886640235203869114359159564855497923713971236873807591731098336598339818778005301100094284168700128956829829845103599573162210801009778273246162780318739605454090691397946999079731948615511776823793950892091467704546844785557208689766226865720194578349619919023093518774484092169361792296059802207582061877965240141196886658933425691976528590697972890844115413193945744319537673109360432997641843565752066695929651025773679326128601607722974667105831756457360131533397957130892950956554194554823036919299923516820161947458862900546413884727027824451979034822930412469305428559702655230264119326818566216692207316095563685403265483007206230827837462785873815611747357884919058719161241272661799853978634954916791838669560172337071756827151953879722969464033010807375948103984544101427343280435388405257441748575667467180965065517169311375864189993851605471855861703016031149677112794188620433609575941183252879586194344029607473764204907878766320985941651107470257512231555657706095997521801748965669285113148878782385528431520410217171783871906982138039426365951837495162783377039554195572327374618292687687834882358251379263764120065169182989973776022380747756740578175889757206840275823807997595974630562097496825587542925863754524382470157092078954413796328068825556554503397928705084091829358505870556539433105953211497460065435900578034325865577389012136437343880361895681977337524746997956955514536449783860204029865368936378353780612613072272434832493236534723484176738685244540740271342006805387752999523884310485976147047352751826568950502333395161506541098717150750314336975519500998211102164942966343383200183458453607416307818942903482146780222026064145467917589437823017897964432389978071051842719507141951557316295795571978568641581464437694733187754260321064994469982112795872975549840608804226989871494994287151045053724215656924018965460963311742998699254147759412523872286197473836481677592826566719726793791055827929429106160772109790218589415147407739041603372458679360537187010404720518028407466203091932104008644120930263586213993649691542234665422835627879133266864575028305747504213932436547167131047815941965349816714103166660399849857676642226840685883141386876542577772734262953987009252113162028866654353231783213910027863340258867582159533876767581786966265159776277758174018565605973089504111052764898253720300294485690784905795631256581478192595607181529099099637766873162898506557687477566035595603112166092277678600772543179173303434365049773165168369453261535196477786363511019530939085403202064024505983014736542731873635010889407769412376455961509798365115587680762176125340094014667564844098488937105871708508461966799262511385867065980271057984189105898143505544159247979467964403809119801800212771322443984673358197338843744891677727725322142206371320604110301128975324811687632062791761856452409749428415933884144990855563185273362062872249224225127122658996320183422749000929199422677498275901614562383384345702581239847477486290716232278056302136941279939574463949431795863913591661819171224688658893506359619300913593602132462679654134983960212476903950801316405576705378494261470783367406961537849932669604932202587167689288810711108769634252159883233556706599220772145304170880772332739336330563928757671016239471155547218670140039487466528682186694407881952328150872851260889406149586714216305098411362484655585998309749377467052242008183323380494110860034854151347451133180696079377421347165842497081925450754991718373543524093017166820128668606661998299741011179594591680867536023685959722672916311634295588605774040489943476154041962982840169638029484137637795384475083819302927655694544046226051078588619550298895245065403562728496813436897560724654953457982845164981910824664015216471440593386646966080328105691942080279429940021569538684148317537892295750912424666856593859192775108740951120150651800958732076583040638442253945436544618961617145874103145890288779967335424652017332597377447402309860427033827026158839294955418935570664210953144176584129985443087799901517425830510859644401378650434016607949207963423962694980940906406091542269062575133851335167906118383176821984087900195355694840776871283483965196842743336917534561615701694030589100579519951333813602240696147837224415074744373099202092544677493752415951933520336562971447414471969636068165980415538597594839054246724742101406180480979911910805130154494285842602155121108693510021113351787808520638593660018256305214727897909602426692659812986575490029154909872297490273033173948321345623673562909192379555420359206515497029539673132418654766870214429278120499650919763052744839309507757364538088473895168146934741730138707399917684652737793180358090866774087811806712134261935373270362963119974326017514658809444300631523012418876336092374310688548743959245261916895413673072277788841927527217420520052094026430556972994652407245415009046659154084292861281893397365320648557847873290000072531030496755998515707359444942287550225000332935003897719025858107608979570984081884796283341493113650288746019910977351048385942158665911082124537568517707195600777318618421404743857397731321810442301585444507532746704624773055658220705805703390125748494395698370831864045483479903565927168606261560890596996522837281362309165901194663895705179510916108077119183216948024506098890670388503514364398315412935780611647972906788996927085896793577314417525702774788100544367227242501959338810874355332551726766256681387849191280570315360149362695853640343828344328748720302232966513397093751487059973835164233746970099012267543441599450788608667795371573996377930329649611205373732348405132383024795618041059256864047727640281744968897230883256443054369786507870716186310429349205148337990618210564094745207986798393367382640600839249661807081693496746257613821657448056200127344684053288240995891815402052299906768352415813592393043894511270792792873154151054051909132615197578106952472721506426330282183745134455743963448156257109194723927494689651698411911684583951000887420799686615608838807888543609233087368929144038494996776980452188128750606239813701726125216941911581089442984053047749723839154548817042964644343323575715168745436154326888658936063179792943828202261726498465960877421433921664247255759735531934944643522409470686554905976631306490133382875941725585259221960892181176152226484929288158061838429883565609396948007450176112299034233761137651387624235907703287569160325616485113138580230309037571953666355828739316221661380864473905123722298029796373843780062301415553314728327037844377361738600899846204026239026005150923281694524472313670196810991326690067357307786405475471462841641081488754957930406500257489795863131275294133222474053352725241632271710195974937519564614764050345458768715661639959884215782494517896285181408191925131930953119071625945059375513874953355404325245084909305982152154868530272678382350402323007410350497715522004762234400497679612662261137062825298251423929128705495450701617184689500514746229369298715347501152772871317676739903707973682398076134381341913715668027679683739698303402457666810019465525771067849219763422903084193390337452909609009828313430227300395972050986168497141335957948913355735266790172488131161103613978422957959163403107113303472075744941107660329035707338282326266728435070478370318312099142595822192019751911748198534599701263592522730572000440080554434491098195060382571943161298226523503365012834067496763776912341846876098824820364288011095911421755383690115507855335342301217909755343844061534507701221658064284152463398711807164139777308090464999348309166773756062665265759513347382448021670492115192951071296508178713707704246960266060988459379445212117616529948018012182301071957631351310156544161074361426661240140429575607051288726364651008156856488489678939006625890610748801394748715704273800442445504962493512939427338616680486893228559732605138167838527441171740889661499267027724335840199948997164711058203437863451103113713432226891560306856516930673331437787752567434967110369063867526268285115494815412903936446223388902300919545925325713245402502957490282748427319718725111851547005885184192733094385772387422851432894998514859148509414234705795836311051973657176751555298126918626403449292021724520450314186511283717201391537230879225080300308031896872019859247823407612922274685888251364359522030977410400275773334839557370782894079083929277979646674236305289809244335992551412404025287783871628026638253894994990235051363248291952086239096517253143597456055225515385255704546406454419992365974677325351262918642693785758435312110421037299348568738539994453242802380650157441951710532565585495048388354105877295517879180697653364054798950657704602710183758739952170710998973508255841736234372095352883473469146664035280237147462842804279272292484563497683986821708030005667191622295002864709906360410439919405232585423063973746633337467672519540524609465497904911457345355769862686959372436148895265578451101742738895365055886077854791454644468389926380359777579235786876771590367765957383728722924118828106810421151117989159505277613512638489507280795137338370399197980467581801494035653060436537497105710735397343022076830736404818202276816165686228177929029865975991030389724096056212083417582533533161335127355972650429219864814795541425330701379967535957648030212544081267640678041382761219694250451016427724492443408529767417190160681708829338963628910066289344008976663937954945023361223433253459691710544984420114062819992680370308586036458807893641799245994500568678441438097199491012039025366267447084022053273337308059852263113854103695720685534461862301322251986854338302225780303689361494837618308451958330058191965761388470635520495321208976950685227822018963031274830475148207378700631957654378596955588893733058239742205162324161609179834968091202649543190967378660810067382910019451072812560332743489892909173161520687463376768151438472852824729776983705291371662079300484179157660351936604857149241358996420735199285267009915543249001730492750744526179042249192357308342314674211689651206809025392186725700865951222499867870190801224823663007698148093285368697415225203431929856247792104640665517058462645369745045032649256967760685331468975702749294703021430151450636782351215043513156144321819140779059289203901894567436120334955665188129009082335135755495440214995589398703608787238226716094132461505536142814333699731943714694971722532027614660837546047519682695896681602106064073794154754842497378752091483539025760979965219832389205194037208856195701252802737594451563188810448978215070503950370076642184834758425150496059515610641694394308035082151555552796468959656871699073441339432332471238111171942617108518506353794056538847813534318461432891375472692139525729718630595508868643136991321536128429441063405578969196519257850659907283360960643643889183757606066919929411160262672550636459050048353319266081223159623660090935542311840357814009653845643064303373551576147312676227935197877525448970918422206984235072199391658601194215295530427493926548268626250586547710850075254985610592366565067732181315637280295590177376338849361059350965455570234037593178617692956819671919892818526732100453311403241908957653799688601631038974795665779519534675256232215116401888756861066025163881688667613747772927490635200767518997897204147345069572806429260101795178776532669764932557812020579800004392997150908238997256638619352008109519888289597185814757672046494995734412298134775600745051099982648452211324166992141507065605269805128236226237694229655355798778766775963946872268393055002049975577061180467818855539137844728113106667107555267746101573390198404400717565836749768851027664127247447701627499167683090083836270933492875484090800416647411448670058232819627872414187492976495942867156331469064824007867331831486284900548209833441386761798338667318577341848178540779723432400791518567023041315369794186279950159273895299742782255883725006491863395714188253531148694248984279176806118628009069780165335892516078240281439427472788627042914410520302097526533205430556839551781301299046065940657708915456172843025163459019552730257801505421247413345130999579945925441172872962655655932864654058946755465479528881984697858686999928610466155049978104205753244347293677328137434643264046550774140073597824279514711997704479289792594206285556636497300333767584092031346559071555006276165701419780877318000737466467013411049513468278892592819770064174993111202892808945083676064626084477775200694674902457492874139611053844422782056684617754664606512613848237829067050477099480979816080791718227534336886941597144675858230752774522742499336034866292590189806870117739604614730229750697653564308330272323778499212994274803819462922055349055184409125606985179945921812930073961944643842714526006641390347021284990065213450794883802881546563223881662745408690370414408915143453702878747464594926439706787457711418650730244183466595256726213894669933968660801288839101192649255278501449317605422595447009622765213576292120807378622485559765931210430999543769585258347053240799835303358963935193870374639059312556224265743253430417929978520320881879054037450029992960844507100324379573526415979742805495847036531634220485387462833902673745149003890135557721090454638126943936126099991115171759071782536900172296483073599001478290545811951943658959734796362927919664897904756023271710008845786923770819796862617485059450415922463942364863166290670002671219916125421246400652315277880737148617343086148373930908097011788378105982981889063288992006134310329138966918967650418791264893954278212985053266032241194311394838400344167786336889377974032551810819411803178063833167675408011428622851132251130192551845464064819726357655880221600621093047528348236571060056778023085046064507690259049253658362648998265247659029222346862026916285276536250427753555149735955491421244500836676591442065790315731535813836510805999178212406736636230267908072808029737487072037418543367048121093617138325562376985832569843021106756490279863832346215602239889271782731986744798890851015911070427705609347270417029604438447381634390889484509909238280992451610014591291813150871891883382458945356598659654520848832346508834369982143855975847277692451401373066644901832118286455298464167145277897199743677423474154557942741588395838041795863670429592007205848999515287503806025003311112776009813731502990980826152595955601908653760472014722557268044997821295580862617196294462615210202099825605737057377254909210458033607690014382441725380626480322311792778865327247988782543019372909170701254898054989491164837596426071328530456736257494077247627894413107442408163068116774161173027336194377434820388936757794477565017742907678043173340406856739375947025656238304620129034729444331091521430001788308147672441429976705079659822519910477006587767676478443729326736190299767958263176507622488189845040458983757762437885382449062449083683183568649495176513060376509634571665203941085077720234608198536240881232631630512510879897445903559061506337779508190355481953933289991065578709466754129678813400893274112259156514837381676035565268582498590144604889944816453958794024889052957257149748155645950041163643224887693502353720079293071387993954605181369581502107420036637604235994842896025906792830160714785590745406542870237225124858900259507210258036636680841255854337805999368925845348865426985986593525491220676371372408739553874890440576122814929004882855493649124949243975714540432167756597966651788536110327799797815060484738753758878790961397416156956254642015647406360659758290613952263258139360791242652793731253293341421384292980477346051911069869169596374325433695688184033614783275390049601842984480614748876013951808239172455713650807847947080228938446319221892570810236805111178401193192722194103056249858252663658006248429852009262910187052092762897162120577900001322902690175062864340168943863091618985137906758886809534740845970002374347007695366287615026016524681715347908730464850825527330978100171653642758038538015423571945496232995394385821583250246941298961354718762316321743263418457859769839508097150790144321705622882693021981189509732143767172675753391618258130550754051212223693800037942321063305437133518171569965481054808296372360318045509001139858286729948157512597141619582628544772482436755788114947007537214394905933123063999898195440302260807879020623407600224318448899905418686748485308240253623247956240793397976266036297118034268089641844932546330491796911061376359442230366573907567070930658849144650110141488620595813487906664471197795072921099349480414926265136400282081083998226202763805674410730278014638599143444994986274599531145603337363028099117173276270672264159191491363526543840571946766736674958360210424495146486682605218575189507672290924371021481888399469768025287013253879815972059787405617270331033066318821638528954243139884988421922426882394153713656925181551953501116566611880792628404646648778768926676671022920603124247044944481982681854653068810533132406801237232311084724679811774857192559210662221583729244917236790204222343179004181012898101602027058022158964792800073923970064006795848055905741967330225998605264943885110380410085967797617771626989789477430416823248214934348119923756515775818552104665418884181264671131231826784288692288397345058645760590081543721866999987060978555058403880865707965667627192337287215576798697915485471784216490443178330267362781013605273921458522632156252372146057278330000970530931412387411269947691173090410633457672801751618455606204497571553726916122982611893507594045522637720933395607360624688188220066429833101088028749470427795204347325912791430470772367221592880327782407229532244149758552244293060893068239848664926443891111466313262038077932943188575347153640594275485620581874476642673537656264143151323128880384029961102621558589140924191892311936021776594982239703696500374119662248109320395091182837296829519037266562149103843223637304750894200535481174439877880001711755724986638253976882909197438687982757726931176960252734333744307799073948810649416120204782339557852578694825948398420545422747899438115532415980089381558100495145837863391865232267170796701009349125854839723597936279768126407019586052141327746236235831465410698656679843331523383044721882052276335130499582164870723459983525411566454292196491619154290066996588667204789595569755430076958936038840067538701015284861401493967251241084683626634312204326265520699339815959006382606461669344540635138846773405825551995212180297855715775299137326721520121585131434523936297013631741561273376139226728182279807446416528368626546492333414914184054505463455508126719910442827722757519202870935641889703345242126102824127320227678686032230542313955396217971634346761613174550382603983128111949243430621628457247549657689111520184213363535571554724379511635202172517324958499620870873165176912142161965302764942497568144070943803384166572115358048658242631993650175733376067614240115950771591292676638719682715812251809212849008173349992279525401042015134957735802105300277598692043118550179031454433488646273633699042447445004801940123843845750235523328508333077633296231563324779873308826365732519470427450447136655598537450248866941909424957167990680766053828938623697200125970318631118132341215672846744314731906242843375957429032130453804629601897564676891095545339724205340896298503939117368831099682103649659918329623902751731118611032663805714087664862547553272529582804860292197327536449055756798337287817976158413164725795093559883721906108233952444271954242349408513122488052913492960075264768058119126357722568151758463380932913404511440706323308892548881118498389028131387457248766867951572352689412629581449377357218315462232998903740196127387716147462285759069465065440945645302966540918446627756701389856305179436897977622088193829861609555490012226781132785357800415226235245549670781389355276343284102918725332059303032659976291475367359103444150950716226974545067923129568692196570330115109452372700476584440614635344406203294941258074929150303811436935008174470827722752537489743794022247105147152304750406686644413131603418157288990595471261045072332276322746190148090960852256657146144051177682126302206877208533827720686934616133643161282565694455611039578180732984646811979102449217915066844978278312155093552294693073613056248768606453343584776424088739197595886130781088454523116766123197177244745875746638256278467293613217553133266912303705725512690506236409590794581046703195436275436481048852782406020567124761727045318304713965857230189150849138116700616866723502962690098312254883547333217155244418488931671507226378683884229966214620153991515698520516662050701802409954329124056313049935649976967215464118549009806898707963851874461203952018908945662413052672593806151455447071439027474245148529895183446877798071857674705604394548527479607431958025362120506453423432954552161114782229449107940147450450368821658092093102291506086474584274672690564773717262114566438593445763148346139426818437868398926260886435995795686230498296051756721940974369943235856871260886535725300594806965501400334142826776657834577361686192092951999899630174007388797496917286881228381492254185966108809880807112771601936107793334816118802660993559813013964768769898130073307518125774519967083041224326176791167524081311201242384484636778916925949556718935645256701425528706606801537573335675226833851762966693124299076633987043522753954036070417299460453518748835934596440856886426295355266404264869398077162252156623445601318757126780181492252691543435138855049440133825231341951082949427439681397638986804605934717220710475674073917253246540540753785825093830231781447516119201964893440181665953637286217758876633446995639352449707641343011016508430725514927811612941818538578460942471900099768379288642929402255981753986062180677288526716072912360203388250548270373328177347589609596269307062963706583569596725346908151883823445627962033751233318159888073257009734734591567222654441680034700661527241973974175305387265038657338123564810961952514342259010617788299314281332102287257314893809121712726849449883213703135063910475706636118950438645496582058083971463052333775626420254736399698069494597276421805226951142881402884015069895337658073314368660491036545453631982028337836703647687514832674121711746591739594060653801879817356174514526192721706594781491061607885448842708845767312229118167576906154684592848938987221150710817731316797052360571285264890170277988265603603642594610065431251528431812106914812451484831998474568820012472525771290938952743287430830622654922808818622400979639738989081716217468708196422089991932951634169266509483686189374391157138031555842651579524338838066487544550978842435166577161634368260514444330939819249416670349552287993593458713499696488614683681179095611948140850345929292528654781068481578332835818361561308108391429720740832324345394318360294174283076250042153936645822263510936892054926440924253625930439152976192174259369660027991187914315502317540787836496334982873233730134509207139663585134723663605008069054870351739777066256500278804047308134258738433664409469070080558077133793857309542871060242866230687559270329209484458578790883310301398133130443526505542326808781894384345757574091025846606358984106004760440239667077790030760026075357935575705724627362080548639176124532260993253280883028505157074745904533831161231244082928007104922777520459587937971680116881950697822586046426545286256510689652795216851248608334794728525690222163776718036525896705738378132664531161463457963378547425728868007205049701742178498254765309230968956966255051628508537708409844208308773351748060222108554787261393726279910764265777478586227855497392113981093555634757384416149190932292832250124324022418609288523266434093504036582491183056073481902309477738495825293221323463318701445918057276923280084378916669445748422911182985269593225654182290003608434416281046215341517326282799178398016947321357530278963212873846626508455486717725545165123964038890197672388341075043856887630284935893411945176156418745803313648119160487404555199522686227282577947877509709050765843794918815242655489381200376226412574390346371049195038600312460272777782293479595135713319648660561227368519428936989474926997490054859307405980738536841495384604752448388952420178806959350071591988450267642112885165555880247939630267424743052201708700243039836108086130684547250521397827440584441878192566950171379888353523588529746071710777963267447750729277287149150106563947091780460954024543187514358450782820225147285820820251686062923700486952405732781654793396770674964520066050594883375333418336384283967671496309819061080778792733183270464109295089155736195591929681587694162347061076978120841731904152707088552848033375194741330242790059732839048301200087161783263327346152098224268152823024597496569825261284200013667543671504021612718446212024473182724830267985298975105348388807788763386570514841986642083243111574083432829372676136449339623972277235632327888900973821012044355501502831326104840538415550032971581129825602868110918274694252199616598886179543930710230588636568323201797406556088583887666420684062826918094643388592772212689586321609567802376345998402600400179841686173076809633482119953168840262687003181796985253134656507584019743474051540037019878510606087459944669501454035257003154633431816523119811027008320099381946096157408119121673807689815059910524106719147468375666271260072969272822686565365246997617286025287726271640344125577393506273522374772250014287765897217988093319245907440227980569021426439425481086168706834781625217385057649107268393787014876998215550931416561859524500710257567262825951779284056288297000115464198655953525449968345439919772753675776002110830150881819854147376943459386561069320736797076471298493551694546652267090472942955083615724028048200582573918375295252673650649645328205450827657604678869763297037444556377563785610846727177075808255149645013692166177857654328415028118350315911240444618033661990800521360880357385128406547882769058326681835881607001362946695350710316558569704192778600593507855158952912338204630492181449405205349971310649476157860440032088560288920696153448602331550942690470289809777935378857964955002031765046276517405715406170605568105134056391604287655944926063873322899971410839137121503436133645142259986424829208305648589758160325638312816138096000790893573495731088963146240952801406819093123999898817717638985556218446780301693463530903059279623424021064492948310208506458685594333125395139524838688898062346679486890650903137855452250728662262683870750011352660291818955209926296756920484594326247693852973126710506416863950527379010194329269452764890478789076101263701367943697162134668881418919933639586018003507523118803727252572896666071662171424408019834788470121453447285991555577512065832791400531757815388568471286802773263857857441328392042729527926504880137401784521928995686186829357221339510448464882821735899576651296472563633597571214587783334957251546139860164745399964853976931167328737305519025888352383113578799168019033265227148164217325067043421386099355530931940995602627591368697415261669351800733010073347712770141982593018746435630965905683456340475293323748100923739616575013827683176358962432815247288297789361046954391550350282655915773984763264309029168743432801592361729415367361713300290173713184431270496886756112989693265296594465499667471535768696660558296310995106175792717578161573125856285897128276426779171689316580005721828235775000405956704409109666735779659605250605066683363919020497571063448723449863486714146678229714570703309269151236797430673875819681212986427235416426980698879790931784518059159901930243208904155530493648654898714577652218689894805439176308464525900727523862923607472070158547075540521099650969856640964372287015288533923562639273120465592628647884028387205892498913620141401164387019543641349086337928128164799463794627588889088646470966993849937491719882603931726929203942777681983683313383799583742768183621667987121421190501198920878193839377648862844948556180500608907765075158629277019592599324426192732697272823495911701530980436764138562625573321748096380286868504313937916168857634951731734859223470560443030172884025800753908911364147726027748745994192509770508698070936410551204321934903495578994074185271308762711888243078320238190300769074220833279777961813706633730432712975389193500517891619681353734042655631189602586400670148317603541154297223781992199556023858024503661467838605799056986863555406479548954720405639433339050649679126748131114051073250154080561646590080631515922117440237886515783921898294291755082767093268942903154938069984379333338691105277619859245256477895878482052188521414090323051816901214574000009966442659876813595238437727895869528100085711256186257365201598182562020216357308379209243078670007961373691021915105475735705150114643389612838724254673005051770323442384123571869697410805933505837712707198694359950796304714577450582336507964044785917607165988886808265296963837809706113313717750364278013101079515061628542206320344628466326332745483154440394667243133116032508249449050533238410324934639220218707275933492912672586293348099325318237472392541682113405819999541327517016320636278222271386691383348995336712136091150015173132961707402084824416264549590498444112954551292544778518221199109403287811888690571468617712886053979969818557792215539256717873481631609224827763126606847458353660351597799098967695958557320361292284432925853647979609412054158932642949070141158929111517475146758281987892607050622094077745207466321706415585266170788542750092579516075595593586947342495909558132220441256679434677535044765326501971237373175713833299270897407555978851283513045984552848837255053489638239935222169298830219801658596549312480683722635593267928851785450284402277438542102282490325780200694850277162127665806407460442951754134919521641600726850650926055337896947723965790504615650315545920837999411984047653281131765680767229529044545927040546403015287772775804810676349293171340851049207675359972862966146157420220566537646982643170513804734069779872530883891149438572337401186075160232602027764896907698543365147308227433882738695101099833670024128727413565503727405947236565447771399796685135931621234337544851903148567345541814753513518242417209118014685847208000730862144747606523813023525783587455301825281717171171015718862566712633423725220570050406098467854483788176358108948533115971540207042303614525820590385294533054215525297530558453819167532187528598516214901327719024316381694861068173772189029429012572557985990684019686316410212246831985853112323567481945936102796550518939314502487518074948177301109341947016827082389900261470702361643877766080942041049054468635485493122305933781024330895127082273531440571655947110323005705951169588095477233931840339027767987911592480395689850226115275444158320618765140222224029502054559218094927045766933472596857623787924529781560787343211974293958396751953897593814876988250625385358777662724507546902465810155429989048070089258311713170637950445268840612738875901584142654170475607523030375143208733562082592850178264308775160926789820001390613505871376592462332190404440055410942398267905897885139689547254922622137334991178564280498375609668141840048848730123001296710747784360661237285418203866476349827447715198814305491911669585617410233435433061542496201170954475619736192403103667583443494644378941368106444501687764504945634650421272848731047695308709883688646249809554494260241871226579845785739308975392230739226143943963612127146941410229439763311559861076503823370849856086741013044734018270146996320532480321622612198722761063082967359523544105278378892129976177519117764465881608000653371191361296724344282269125266390925412447450210926065513724173419891767557150588596357598793490197538783563658367697267863568522582833163097474123481253074073733073609998194262287404434549650747294904633417965646870617383984091293859352818225975882143718052913295447657845860573539077705255793937971890446253320489638960187738469072011853132503077041069244186558093130464544826576035620897490872484742374228448213547948834652793400540354495932568472177740979905736395866975286081479810254140777498243821767156774786614116483981123794791015664358048572783671091600862419885755080132281753843595684111703726561147141239651878899697255163722793292460284405767699251361815879579964427553237302394204383780437233958958654624999575196742575521197581872950935410675515939829373521611154333013101218397606197393639476252192033417790399006033197368283958253244627168591687355022612585968559972933286348624787364150024131118383245202231890129755644954732795227621021239612213463903158915659464565170028931151115838995840891206796472853033188981376388587555107786886133363310754707022741418500362131310361840406953168805178895472784920094230420492712867131644669700850727102018463616874856588970410659555414626982879264178083593342725702652032180950707546744984594470135607865478451604595391069748769298974155523133964422645501366382166517787242630974178641994515224617209757080825005108058544470468982995529324944355070541728582642914040967145656221243709004095792166706511165008760646071273762433734212149082582468986038099644176184618689572564502735402238330955425104263133356752324019357512695127790299018595816255206052521411701352429193354046859210129414428254516897691209514436280639457148833982708816842955582352399731139179320095324951789456655108842397799318241086990011684178564668651721746650762843567633742156096164220261201612394682596404506621745643494583273780666610519752481871694062466609695309599806955267300116765997688403728673087740144661789276382246666333464390095509747252303942650540425308932280146775346431203610557794395524480251412231848215988262028259644259967619867396570658675918183077336559266491516066778791051898706158876319019072007999420011210607273526635817597141241824062366925376555868441202675680559817657256665332070202064686575511021574253755022247021517925993343302541345605489426826333314549024487971506727720282217255867715657878582050820252516940114359515637451652608574994595025434389527768003520264717409086892423514519089400530971851647234523173506926172668878267171063688173881578897796060631452183858778693708734540094966693003360135869026540427097270623600492292296081310863820623632371577467779415797402484532798082450639053134742445006798450835594480744769945415906439499475775872651671793542742497006319636964300292292105200671567613966611866628297293707079875606803365449055456174068804328975947443342155278698562973267576655053715029185137102846357706980827329232531502006911852427392874443494647938213496398006129780887756245049988455372403877702348309998608366999859756737106958886271914691941912732072570723773540909339666469882967037862462373727420973226738742059575980803876288431602697568771412581404183550497490594915799545865238939194742639325151091858556902894393469505573066259692265689160715818537236650471672940961573025352126600539121701451300622014702523493475260476741639590659257143976196544752993213729694867219520214964209756903685163739345305181783466573867095348795181729514491253484081074026569849939436800822125995597654213257352321038454869578436312112594619326722053090046149457050825276388969813510186661165397142404647174358655196291359358309791076679204593365410608538223802648413571872993380233429856651508502649340352807197155910794745390065517046281762467044558322562717521852255957354599497783140787677153792536566105478976853462743996130611415112132548466122660618788735716028123226747181921528888523263669210346564873161965422985362182045726235421477498978612133979025337473446140068063972589239787944085099937220744000908744807063865971024146227630512290620085496190713583799561482945690351035198342287315755934262484661615189454945582022679624435043712298667900943181569004169208839726031268939689566193121833197827842142259055221401751680376956490743389418715932175684929262354393738598185338071320516816309514199459009694979363545894808328547660132882941444225114449681992730153750546645843363598289364660036578319172432850390018182148487616941457628961538382188701890863412093856427485936874149446875827103451741492004319567298678413978884786649045991569612881913618107480949910415708977401262815101242861452865802981066090455250499385987919041976120841978698760392527759782707450113483061035018278792965991362851752723479032019734473147292709622215939424347814352262747627307677104696840017100224038852950672410051667635212376481720052110679446599562233491873987483954834823498968805230934707587477385232877924798127896917631344517933729971274456248609576673293825568186446636406996989126898126005869070083209760165167026819637887897604890997230557171338375464999624068723855694875068938295763258938024541153299157039796422302399545609544464111391361006881586731846878265101696570049228345825139404655153170197076456238618238807937131665209078625310811533626689427061220107218041376448324303287477314120240683129201452326119540372701519078486970152181438104354441617173413916318485654737668111070220451081820922128072304433292912463824433630174338482858423379621232347711779389561668723780924251908129602793642419362818497894099020898379893583003242139045626712673457281618636658930624801460950559773473545547501396021732165400967206662905839818061316886700381870593781063857743678633372059557518427694758327773759194631398427243936334188376310834644995756352932716750417168969882165064807624518206250028262449568104264303200387917118195291985312729367041704796315838032793654739398572085571920350866575514020042147702348303894269032124325002588599108839418116497721384616412941855176171449142691293003597079831727614858632501618285460862041791448539282064000545434559730415821169028598568298410504602861296508328508032996786510400956486648671590337193346771943508910657314906780395638888566361201600508059217451379246327838665734472862863030077297595047516604545502407028830628040351382168525730634149438706851595639593652681449696895614564386488049450434990225567116629963924022144099768948708756714323903551413595210372444418463079854168219045043389657246402142570449535626454953662256500666967608460937064825127434811013467273425456479755805739750593124835487637158005602847134660108106254662722333463733430050096210519463672694904787737491240542069988757974221588879683851773214062098711827743157624181718478692679004155875071214336010854001360436143232895302095723593206714156110714319271992678558574157594257706146494556099955240100193058897292726685900152874875466168709224561313318513060175551312607943344023092295379073766331225859904209009467226702598707992776159900009317766531615288044162269427921689762984424627086362210910933759848947170683950956349697338558358260813169567621574933325470773488322048007903394362310808579052949172442306901130111365717413672920313058785551050396310945350309522183127386099095794188764345422171741633418986363999661149871577812195464079775575888464039370771934690870889655369124000306500968949198109100529774388490631250902737856046776237721578555870445997612116416145716077093607546517425995325934710757754435027505367313413114215152323060993839253691385884584655833003289817837400818187507152308062003130045402112608687745282108017140802090250193029041908358993291865938452890400184964371422767592128913492688625668113775493673103222674200933922950328605150189931727102671701377377747806819800920402807786005545214875755294099028732481940136108194281904706891140221425269741810465351455050838822651391945307554897808075542445696932196711005718521638648159809872679331664390265225713819130934736312569789201105396092428236455917047728534181140263932194570340601795388561843629589460649945644568845342602786051263125217008258819382970304457385544133883603080652857032846512716852124442381834142017783679437013947909311434814254859085530727882948450869499354859854127044459615954660370438862007144661875090130426556590695585728080074367020681697218351782742872128902008090696340037770891451901283937746713397396192638653047706793395605192705106723310309545779961252059096069452429750630455911318666948313642589452443235754979677412397647946688159576417355686983614327317002903251618252270030159492806177051119258911537129124482375524571696472676539447486109952415195614705969887214101515802339012397610830882199117404322356008911792084863059073388029852774767535322551612428367376979180054434711723233452009124690800216455917952417426782938515318930690929326615242566058188944196743434560227097273603426626632933324601470604809846778708159393542821003428078125408106755931069647392948262847057518124302884132653959725874119645501633325305025383502914686146161747856213557454385599855368093463342181359924918575130258547603703012881760936433684078290466439790742606578898750702329364093102214121746716513802406997054349858202349025939888642481855526553925237195681271750701842124791424929017032147007243357015970121197448700552340502077325700280387993297047543119931236570682807935238177453920534328898895257299242761304545427194317333299064997025898764184891676828540830611046209341221719867131576864161549942765384099159560690953138315503090920169456133454175784758520633312043580175872093948554165508691518068779796238225215534250322138840544187304695997687703050789524377319416911599888205225049978294065947534576511591007871639854156134567430809161131379633369817885586717413414135624336005447938745116496284313986194980906009398323090090581682947226257215013537238879393781220863079902350973020512392244563289022824925630413749658558184865137308493414924357086848551351597999025032461060202722909388853802613631139399542461648780182793753662504707006914739733170690468496031510552397351757320392674153910273189676771200906388728885368699332052075568758375636033475087415644176010816673029198608400088033630287086900996817485848932184601087058586682486371844389227665524576794164043883183242349829903765408347689537703220186680397101071439047386814021605267569248472784683431609984296552720748579837217695978775669658167622655142631388515000294637781009953999484287585441946943472649341651277938308626649058850081322768050075865491784512927492631282089022021532606498589990953615345428145666498846533354757620512792240078403065881793173496913854190307928714116189047357660246508018393353891710631101272866671634982962423289411483310313279065817329196766494850076768129269935387992768214746059295274887499303726259792961665658778639248638952415117432948621775205417617569093108558889684734942093236655697713176814012501242268464822287504292318369135795969329979172499518621868441296078646960289821200589293098838773815520117565114199952797094114378817494496821374286015622039179923668600485443458907853361191030273780898933525247553523084382458677566219560449284796299467927721354358929881880217667833747715123657426509442778788043350574747406237802259008494111884213829244582144873346591901591205179054776770371230424917211626591339903762208328444273876704783741454723218794233124360758848888277150458615435109390026436016829928031975068093664706662032055524163102898450382546211595787647567302752686929159669618549619044404044662199537289824109617707988366088887654648126634538353278450525419861833767864615055039379026068192114197238414612864245843323529032223609052777550047122985122950344628839055699759817206038916112380601313181051224943283595773306386309259851103472239464574086266531490001290366504156968191023297969769847290863229867362598578480167622526510811201633549021547144293743114197563458656015718299144811861268771834006238785484379786517856829124329539881416237544856686307737661037463235868213275665314854464506820125484535927360936186264766196231991833539147317185822298570171116719811432109085443425099503176679419544859729977895856841240078772661862914416639869008011219683133650969038860766012846159679783292588034904206339882720790699280679033647377681740600058441543858155577277229564975256864386894926154928924228110345016120281478621350616507463182464736997518820209643587802759464918366297821319477141145216382112747785852107367659239130608689985062592111415288971932787013782542713427563429480780133165976264287246002730709459011096433984874585556974092459808988543545431305366477491988150689289768777905239054268193435773863444151334186275763631033092219595620321529096161115368573985024605864701051667709323210306490109121855514008021660147362546999075778934166792448079896732417999250357972806563786242142984341972501788435717694957699239847452513712460184706931481550829969896117205821719110541676653243309567349995153203187845232576132862315817521988296302098228749431147653603993726106635495077815818858030555054266245179384251084726277484094162554341235438326094195159094716809305261858065381049450977858808221410763563947558090577247153072281948735583534654357518873551240091872464167043470873715849315882154843454493042808201465535146952280847830535719695273753237916851949729653135404294904660478288559185148276323948995379556524920114896939445150572700175590680499904065003947364242050546713005019226259136423473958794964703938493641909809853051219162155837004557731041966266250778351244107762562528573898858966021412834895607409325465118135324358760409537552121564336498604710628026520277097731951553539643675705115116692892979220109716562385963251817561593240977312253453310608071791150507230271714827180146896323782989112061027652717898816334541751444147306436543035173162130848676403691437684432001655598776687330187163453401141713568907183170271064144521058494882991153116497612678490939734810685490039497874035632060503073627357032415968708962064371706543639729046912221671642788853534337211583147198240230567161665776917017820475290577344397041284734954520896018554215313628071974078632123165397830129752601273112641440742190610669550525986681355149508384034723103687031255513725938458514992700501327593462777440101118628425525681632980861498878066552975426086042416068298307338181231161496917931406077720247420542528252231077270598641261194141731441168408727921530395179437932503895035037951699792518396227901253204631610971698139706145232722627936600708627139445775879642622991449792254520996097666447707699215361368602523811891922786914548471455312896040030053736331819603329414068654374220773403004603385896262262491435240745645704922504499349336029393087529334927312960091709522486099553748271054785916100513839204764478879768363884657133050932916582064016946942575202960055661957801927674293456677729155953699020610698986542955378559879910619070455826202385215432730319403772987184519126951494320762869532595171151007777683282027496901717925689854567595650741751212876239672473695167419919503611004946799135528840226940093183819564608813169211264965623741383168240623908705567153973971432318196729323968926351431492531224543628906244160658539676882357676474436398014057261425982234256107424316162548863671812353286877819050593006940751292134844398779257762726963544537130722468614513156314962102013883859371440188947792152927765845437734551634389337198873846881110548672335693279400544092121960934349067598389755452480505452080049815274920074787739628419996506533128269618867704334806369178079964625685724551962882319794874896557702147964289452151288336015875191595381037085063979729973568969058400778842970899260848457035518315790089034863718487541668538323460863919827808786123970194710265293188573721480904670776247401432168250261011266761374217089813675123108319176416693486998489202918027785135581501006674431059734383394473556772511783645804646461545117911035124093498491855159386689266593813696113035402406729896121976242710932538586944635942300254175332156565725024360330388461393299393786595927967896404458804607815305947751015115366245441889832989235777566093147716161282180466920613445979929367936650242017966692289797537307364481889831466824555230732125758153503948812726411504231721548244356124418252883500358033278670681387950462790687049011671237607164333985559130240342999861417747169267286880326625575210884784216774529591024550676930304179137524576880252358980974864502464188766637539555366263591538164059621982523587096641377312873933676579012003007305918409633820823033208298953534936324261402901484616291861876522411105377695269456121204618707431234195021931448323638308820027566298684307841806562123609095950078465033641754808098502135473394924775849530454811370207402632998258074096825612791634858851659144758879902921372448472706446119099236664757521149836486586703211095645471578791509217470262724373369697486280741725818514182208355170527063485096004044306843663516306182643746606457513265706074520503721120151516993491127839293391192223962543765447086105664574272556923146518553525426001160832167879442977942496273381357686446694333600035241446649007679870013156026349204756350349524791980428222218527805956930524990249954430939269243612764382468611426819781808350205612543372514508692803650535029843262285550604260319931512793874117318621879698699763447750388690980683604044574372286288057094291917693394898876580983873797269232235966233859693496512337434747699143631867782701148221401664754736561039237275041748176903753936733403246753415362773011550102093427218368909415591086440001909653015395410120690125060393226990181154782950228203223329400518386836450805131954814372720806437531932229698912349248103851284361756020740222655828508511946994884251258886969145458159206565487791233754270709845174793703995690267626201407506480275032723806567059132170827698609186429447506893768382664544559548308948604322257457938002850318627657940696147316281356917444159802799815435592406811490668094670992984574598701548490875924605374229064037360446774285406015761705325875571335683816574071264259324805169137044773568371830712081393035282142944475284234028975225917921516074010804236542628571097486446676357144082072400814533816092326203527981469996749572323657826733215109111802263693991601814712297202380475748395356455319694540800226480342555268090575820611244470175771605826925701851441394468849053607204361009675721280272405209240702361060688187138247651636174261913397763456138318136501256091104766318337722872063736159545647237414747974898359351816265143766971200341355349894683708489379707385024760009911586617429916170723378489353117717077152395776740308339314230502729263063108104270565130286484662539202988532879631677623038229937247272388041187544769765252350782950561525539475940582478242180671858245704699407739498472066385620557323344567434566045846783774213692258907310185599584106883462250352353728534963319528370625094250743576997497027094055747046645219762536141796662444272667694189303906676342859230048152445224261681133173758632783786881621047591537258975966869644976142248371194374904086560255007219893502650158163467368846512877064554251661078288560318969998871266451468410214402319771058241497970439246126604419241140601468338116122742268315690541247152897991464509522966270856875012701926725596500194500691612906696802810447518194292025511547494248704402631188754574476100184791278186581739976927180810007289603084898604618682819856309424121676316136237767714056231946113383280742418495053461686110194604382531930977109152591736005534399731333135849501017289547184952317906566250985046174665577863148875458623872026102194823242877652986385229004252619718067042541172562236071642639707822048598594167952360852817687342773958830828691056331069486623609543505565751216514943726300699722505678302211912865501271465487084140225223153149223497227991353773065966959998750399937809447331906601103781235090389018232562430634496575814744527861854559736247006319403745213472898121526972478109128556522537963473738871671260329930685488860197364027169827259109531924076555588844508157855245841112044490290390695423912848842519042245588371170888162750746147976246189235606500817934947717429070123897987807826051352689926894698419053814626163305900244704715876550365950178939076581413767687372513056774981449385392942166782820255779041732656058322935494834190658600928961029646683578155296421392104059327595406060943826670317269638320413335494679697700418397854342046766321555194844828832254976530807859106030120865055406042113390401326884294830908988458874302308227993023592854783522505718491063812864764548455171809907731790147058800482920620150442067845397717741908020153668160752550314373827952670837612432049105623462576896289194352666108980139562450209518150431998234087432113171069061682401787111226713659666397920101981704274586664036897732827327834824354272650977160431804192252309441298884469731083473896367381090190899526718997193921451058110812718546816370155095825516707124064299341476670161150355441441194041958291773485107112125662979098619999996540849517043900368922001042267078694579723196923585063115708693845969618420301450551502590120510826393703997436549880619703741739219144469416514106636079456974844934847539039281386745821183010667515431840484689692468261959399861571628430139644231095482686990322371644747157274936323184407429819539857799561475922984017440485153041766797849006369942693660002844979797785554026051121305234955737062675825799714395991788544988331066551623665856123359253271839646618237644829731889332984235825957793217130141217875919415974402076397295715318923688230819364762067147790956749070154985003751346191143098492770770798138818879959480224164865802702510746794094352044953103856776649587931702398251039066021471108615831162126071865990081911399381598101920698000241127350474628896671903790748563321428342740092168205493805627071218082873092264983066575219118534647501850135320606417641227128460558544761739453056560746356686442454462741648375569051412067351406096305126451667489406638299294383654360746506143950704968071826849163709545576424848386926818411912110924906610206884689715076660327450577773343041627637106097519790330632956817842597464262878940878385168455964410085119530978589644726690699998440632186762055303418051862939174406365332926189220856314319780999680657067623053407591615808200824362073932301142238256300716736582771093991522624799325280011454563312695691324690032873899391133992497324480045876587713682148976616097269938257076511586663107210828497049649365524129224044583191702848898207178884854389814512916675879078384962096048603692963291475594980370318139786797552893736137354696276157766296220771905122829174297094723387017653443099578431063479542353488058881231657678707058508246500048324511067253389916231431901305221543679126128662126202525285217912171349692406692095581130069997949230374601284527711387700629707699711438037455115057984111004434208922444051637714507618625054223567039996225197559236773789874643199570161360532291164093609531373490049969012995668979555332711001385841753033461134021084582654751012860004887609682955219284748870722926282904573311985604399900510484707663102785911891124646255931909842198789269785184378679504406465847572281723156769562991757576116072033804652994875879330654487129164307524196509275793462442419626650689799486103279273765620052305756620792920167880496283871511510033649592719187955925875040744753907196864979388197621845175826254789534385133481989809513250776516032189367643935789874257182383956741818445356995453150082542133306517010308732535611610693267909309202869922372785468521701628067475994913914993704927888567167506237662414914706279647071773520852781017167335998848281371796097777952941722426332318518355317167332029976303241877644623541759688590251447822207258221934007218347777608119640621380414982008082501255000941766539288008617917781449591615434577247406519542133708763636682423973656328189532210831624585975166149030189591823199426329955963185619311559853962760549639977759717446047517551697607483562759819357200082297757428277619802497403878260857717125856049294600640610936731278999492691310345764588448614990440208426302703669579307438588443140609014361706015410377588673856929793776645755861239978935400010928574449580222935467498754378309709514101261834854838480430241381337637000454392225853714037714479457358529388458142893720019798801308454781892628122220191204628353506938014819743955584677564588334496279172636082592761124865920059989832184060109355402376630907822491629213847591024241141382835251602625353264435600570070840451193106652690687989966771893249269469688345264273090749863838772405283366781231370455336979991957829232134682137696312863543658225069243913089568686769743433408444751908668832572786176711612207847218246948932532339566698857067024691758606989056945060356554952953970519099492885848945584654061082743735606094125813712294849204474005805187302300883740866929461498442748676303167772462752402015402800923415276891706235714025378508790372935560072864595428497327769753982087961076731134800698144794254862088170466743965487214385451904279579068136043166348631745694327734852881015985109045052789531469123475508715627103917239578792875976672215167624262901074540331212909101122408326517693204979603234477416252168222097499159489203371376609450830034334820944250251080004208805754692212049324914127403429149124538021483411683675384194160195388927703325746632749339705687372544875506221412737504640649213672165369431114748332224980621548316159465443908989830964153306958486278581514770351522551461015648556801551451579171818206935769917187560879264686555598801663358261869069835490808352983928611931266539140271238235531596038157786098682416784288288890693542609510793240038698063112279881719911286005237704529594564667943311292991163102690449992080672471691812199441467232776136292296289496335482858224848603562799520842241059144483833519865217233147801642443246680597736859537741343006655165146174903532425119007024957602473505469537643353252384938804584744227983239392758580595390239689382377128329338553787304844239078370583667419665706616550053664516820237450391074911767445963207594520495467434164634611797845336371443010390225650827191102361593236957831240809320998895155122204470251952176890920045776129938899316726391654507353710237411179746774258922953441902229758884688742839679528443198320318470711194684684141244418674970508561815890216317198775898952577134946204731898319068493505905674866560663614941618728148497665304222224413756517627743684453619589500060249813004345098771376246327535562290225970044769356938671757522373733676390238780750847899930466616752568908534675524469403289701167090970019534392103329700631964267401057700803514882977179802089995115543506977191831292101429500041254736983969009262575761741821728545141809026141793758628998405578182986921648866986631102776760131487057459553406360221049384537108679875355230041508447555432838234534050516763673773443574035676936053277563977943001565539664431729241428222037265938281449456457411895825739676360740387567846891913411645736552684482319507168620999899185474081674769652645935244720501915777011345431896086662983278007695170464937418397624783370979143852241854749035997779273001856350306941751766989882833792138425106714026450584079509343179634434521381204570086347894649963250269580681034369398794000636435849990816048453638334593846684604306821525728858261698496419482538499252062893500406988079407983196383923644388329960581825513076830665590931037684876724332038945128234634070124721463796767443527079673639051749836955205547292305437999399246680298206056265586771836565645826240134161312299311007531794300554307567347901103081337301818746142828270948828372872149159666533830549815667552318186115998049376470467035224389150678909051603293915232273611709544075337160374771423268811053826383887246167361662181517805276381066758661986267577132166337505869199618180888580903045341694252260720517428443859272062756313751472968595074280309519797141726331739368010406106613683386129715851165236456497809739048236702156654248307903445966644497733272065401992289497658850565150031452111904901431770577861528261634555817099206035562056217033667168027432739886321890050371041466159293920341691693973206992817664172607351481954815120290805414672497554537181542401480382488040864279774358989161217035450518170433679074493190121638814766882954942828876608440519638061544710060181676041660596784883145328718142018789095975157629660453790175665315024373923787337587718087109727536893918738287009573392549317349702236667547812978338686617231058952304109406748469393549164021972247514735839379894500543078304932829761936243280319206466391934859593118749212023284976750170414465627293769533461492856479056615983854425452090621652206424264316992985078804960356220589226444118381454088794045615260464264608151810079078625380888845916446074929079201477606179165477503645654306371912689705110712995517579886450322539603947757359616065133370982876098967496148109255041634890717208348491303939585615615378851125305845641385089391251684233297716999842655973456886167165268158174420240064763508783612818216146245764132594803567423136139964343639391341065774900547186174599285939120300246620308559430427403215696181508129085323326782725185462465187780806615633539423617509868577530557726034550042428762881600546634843583595060039904048374232549179227916500544384507365226517724890550923721188250852035906151160129108005832634878782391551918855368845810952027781682113357715394386605067906065758733436650066776399521215567248063260984146114249370984658469237868047365230170319631753046786094469740670197545003074758667124714933006072297845429826592232650987135487630297433253651430427110814970016099818708719313381462976448454595220240962884507116348277489935068076152164730916265957673343401497450887778866328091270900688491675220562135645144835055419915430644480354104276187142325027776544431189911367581425664822454676235735261065119791938114585311620670186753063702109736087822532012018554464673878258379121296731505722699189827202924606090100044546492392269582380770226143462997944034550136286013844817056797819407886701875240245429893829278480320850300846892177687808286204417776686730177017185871042244671012124158668524373176833637574357492220971735383985049626591413917747685326343454200227137975153451529123580489295621563226822224004555019828399336003175719854469512017819498312957614400863041232815655054180160807963162948140494288979251684215129764824181604173266777149152918832182159586211377257177752603853583025943134110403128184030970873530774403319317023408316239028481666861443828205988469311366608221758277833047761857555874338707276792649296677645275634370972715245140039695146472948089442719049442216587879628992319808057898295084904484970274447281509450745271463604549181270406897113094725982638469916690985828446348515964571957474578944407803056980341974226514758188059978209972770999706598862946670885107180638851536280870464602330440712025159884078147131924974605367193709794708474680924942967599923974777720127424825622483420742420537952278307759171185302047090615910966807670967756076836866648631330240556440078602058305139592001336342230556040625955097786582611787507002403461414936720303652804845946737160334615807766873947884090531931159130724330351923882682921173336047656376455473570863730090470484091999045310507810308097912261073549684411806572826763050294531961754278047341222072181355338875818569532724358941627772664451915056119882391977301758436463886465837887192915935109682940977399702912747477268317203875898484596916462074049854915110860091884909159063976605535333730424945146397491393940696781596233113231390011909578978470562048255013428117555704031945598367965147606397148041426058973019194363897886275755189751542536627983639864590417523730363891567436238382440057602366932187838525689735121580198183444412481868452727389211497466500583042468420262506486402541878219139964778784476916415206137692839681519556607440953170170399474867273660189469598829382863230047437001384579683642276288720251011558629089065669136066306989948510181638052089690057133633997013542718784972396709954870914126433698471865113698773734881151251241258371799958483485249412167234010487330491821510922260993897612232052493616160850538981942634310351453690444499635886929455288807516205205547894944403472062257299030430729795114830434402889894957635635500244858746228358206114477472765338049936232908061241545240638678848806603419064238251039206580243539168144532613369030955826912462554737709219394241999736723742796487066557346750706400607070243136234437457741053508306220593749920693969496822957083005921539862020341659937695905591332887978625692092567366092492777509437051939962577071486909874731288952765946676723512420875814101893957218581338047732999129265940376049555482483020787801286359330525997965703433323200730551910796732364517779115453503815064244985783081913796043608532565831050490789801651968111359886758448420945664403247233482274835494145619454464159862512350147449202266885801624748427601779809441867044870024681233317777436975659678907265479294439404691076191034701188631435055738898945376389985558901075947658369018547480802237506245255057635947047617439161634483788357533685291032569871564239466742920142828274716367667639608340332272738887088845110392374678368036923051230349780758497525118310557277448670537665947340424791725357367558193757255962884490801106644416754385472289230333036724508557602986985760110791485441673496638583331044843510180256502102335294547631517322922513799804068035012401717977804579593528935574629889180111792315633508051355889695885159466925688150486363732804783668087688357133590908248742358956922512185343213574996949967448983642145812731699905026215893973699290402318538076230520541097717720472966451265405759023672989611023696146597498967090954892106250649552826596127438525911024101230780314979175710726952672813198717985455317823994088577216145394152373052657767392086681091246262941063625834831858605946124673799118769251573372394985549273473570187359572551268222454201697695860720728774609341821909009392646538563864775287414617729961149392590063745356253030831749884329358128178051043222997112244415112082697681674262591267864527727377752739985455610304725145354676022407718081609453226231697729996273144050639354936143003290003702221625088522187079435030074807966724511170619423160130426721963374143478499977155099077423342236550871474125564762886384383165915149903623745866896721484473135668707993901642381118399621747968321608244359564951690145802492552077576731360117385132586323241988634224734264919800004811972347503256158283080913433166505522444352387160082280354094038692142664811021692795411138818127322019991376464395200802035610674747589688462554762473634742050711269857030841782468115305168015516549129186396141292418269922470699157165800134071751365033318877142921405574869504121159279233926168379758768683894730274789614748616762976858299562280101746545101701121561254941301901586035172346473366716830134992480174225139290512294209445599203349276034089460846403387609536759638019091941758655931287396027912510596540449621215177020957897106655259236971933822822674913229071744735892565046166373563236871065191457297909.........まだあるぜ、はぁはぁ。どんどん増やしてください。